001// Generated by delombok at Thu Aug 13 13:56:44 UTC 2026
002/*
003 * Copyright (c) 2010-2026 Mark Allen, Norbert Bartels.
004 *
005 * Permission is hereby granted, free of charge, to any person obtaining a copy
006 * of this software and associated documentation files (the "Software"), to deal
007 * in the Software without restriction, including without limitation the rights
008 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
009 * copies of the Software, and to permit persons to whom the Software is
010 * furnished to do so, subject to the following conditions:
011 *
012 * The above copyright notice and this permission notice shall be included in
013 * all copies or substantial portions of the Software.
014 *
015 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
016 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
017 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
018 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
019 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
020 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
021 * THE SOFTWARE.
022 */
023package com.restfb.types.threads;
024
025import java.util.ArrayList;
026import java.util.Date;
027import java.util.List;
028import com.restfb.Facebook;
029import com.restfb.types.FacebookType;
030
031/**
032 * Represents the <a href="https://developers.facebook.com/docs/threads/reply-moderation">Reply or Conversation type</a>
033 */
034public class TdReply extends FacebookType {
035  private static final long serialVersionUID = 1L;
036  /**
037   * Represents text for a Threads reply. This is optional on image, video, and carousel replies.
038   */
039  @Facebook
040  private String text;
041  /**
042   * Instagram username who created the post. Note: This only works for public users or your own user.
043   */
044  @Facebook
045  private String username;
046  /**
047   * Permanent link to the post. Will be omitted if the media contains copyrighted material or has been flagged for a
048   * copyright violation. Note: This only works for public users or your own user.
049   */
050  @Facebook
051  private String permalink;
052  /**
053   * The publish date and time of the post in ISO 8601 format.
054   */
055  @Facebook
056  private Date timestamp;
057  /**
058   * Surface where the media is published. In the case of Threads, the value is THREADS.
059   */
060  @Facebook("media_product_type")
061  private String mediaProductType;
062  /**
063   * The media type for a Threads reply. Values: TEXT_POST, IMAGE, VIDEO, CAROUSEL_ALBUM
064   */
065  @Facebook("media_type")
066  private TdMediaType mediaType;
067  /**
068   * The post’s media URL. This only shows for image, video, and carousel replies.
069   */
070  @Facebook("media_url")
071  private String mediaUrl;
072  /**
073   * Shortcode of the media.
074   */
075  @Facebook
076  private String shortcode;
077  /**
078   * URL of thumbnail. This only shows for Threads replies with video.
079   */
080  @Facebook("thumbnail_url")
081  private String thumbnailUrl;
082  /**
083   * List of child posts. This only shows for carousel replies.
084   */
085  @Facebook
086  private List<TdReply> children = new ArrayList<>();
087  /**
088   * Indicates if the media is a quoted reply made by another user.
089   */
090  @Facebook("is_quote_post")
091  private Boolean isQuotePost;
092  /**
093   * true if the Threads post or reply has replies that you can see.
094   */
095  @Facebook("has_replies")
096  private Boolean hasReplies;
097  /**
098   * Media ID of the top-level post or original thread in the reply tree. Note: This only appears on replies.
099   */
100  @Facebook("root_post")
101  private TdReply rootPost;
102  /**
103   * Media ID of the immediate parent of the reply. Note: This only appears on replies.
104   */
105  @Facebook("replied_to")
106  private TdReply repliedTo;
107  /**
108   * true if the Threads media is a reply. false if the Threads media is a top-level post.
109   */
110  @Facebook("is_reply")
111  private Boolean isReply;
112  /**
113   * {@code true} if your user is the owner of the Threads reply. <br>
114   * {@code false} if another user is the owner of the Threads reply.
115   */
116  @Facebook("is_reply_owned_by_me")
117  private Boolean isReplyOwnedByMe;
118  /**
119   * Whether or not the reply is hidden. Values: NOT_HUSHED, UNHUSHED, HIDDEN, COVERED, BLOCKED, RESTRICTED
120   */
121  @Facebook("hide_status")
122  private TdHideStatus hideStatus;
123  /**
124   * Who can reply to your post.
125   */
126  @Facebook("reply_audience")
127  private TdReplyAudience replyAudience;
128
129
130  public enum TdHideStatus {
131    NOT_HUSHED, UNHUSHED, HIDDEN, COVERED, BLOCKED, RESTRICTED;
132  }
133
134
135  public enum TdReplyAudience {
136    EVERYONE,  //
137    ACCOUNTS_YOU_FOLLOW,  //
138    MENTIONED_ONLY,  //
139    PARENT_POST_AUTHOR_ONLY,  //
140    FOLLOWERS_ONLY;
141  }
142
143  /**
144   * Represents text for a Threads reply. This is optional on image, video, and carousel replies.
145   */
146  @java.lang.SuppressWarnings("all")
147  @lombok.Generated
148  public String getText() {
149    return this.text;
150  }
151
152  /**
153   * Represents text for a Threads reply. This is optional on image, video, and carousel replies.
154   */
155  @java.lang.SuppressWarnings("all")
156  @lombok.Generated
157  public void setText(final String text) {
158    this.text = text;
159  }
160
161  /**
162   * Instagram username who created the post. Note: This only works for public users or your own user.
163   */
164  @java.lang.SuppressWarnings("all")
165  @lombok.Generated
166  public String getUsername() {
167    return this.username;
168  }
169
170  /**
171   * Instagram username who created the post. Note: This only works for public users or your own user.
172   */
173  @java.lang.SuppressWarnings("all")
174  @lombok.Generated
175  public void setUsername(final String username) {
176    this.username = username;
177  }
178
179  /**
180   * Permanent link to the post. Will be omitted if the media contains copyrighted material or has been flagged for a
181   * copyright violation. Note: This only works for public users or your own user.
182   */
183  @java.lang.SuppressWarnings("all")
184  @lombok.Generated
185  public String getPermalink() {
186    return this.permalink;
187  }
188
189  /**
190   * Permanent link to the post. Will be omitted if the media contains copyrighted material or has been flagged for a
191   * copyright violation. Note: This only works for public users or your own user.
192   */
193  @java.lang.SuppressWarnings("all")
194  @lombok.Generated
195  public void setPermalink(final String permalink) {
196    this.permalink = permalink;
197  }
198
199  /**
200   * The publish date and time of the post in ISO 8601 format.
201   */
202  @java.lang.SuppressWarnings("all")
203  @lombok.Generated
204  public Date getTimestamp() {
205    return this.timestamp;
206  }
207
208  /**
209   * The publish date and time of the post in ISO 8601 format.
210   */
211  @java.lang.SuppressWarnings("all")
212  @lombok.Generated
213  public void setTimestamp(final Date timestamp) {
214    this.timestamp = timestamp;
215  }
216
217  /**
218   * Surface where the media is published. In the case of Threads, the value is THREADS.
219   */
220  @java.lang.SuppressWarnings("all")
221  @lombok.Generated
222  public String getMediaProductType() {
223    return this.mediaProductType;
224  }
225
226  /**
227   * Surface where the media is published. In the case of Threads, the value is THREADS.
228   */
229  @java.lang.SuppressWarnings("all")
230  @lombok.Generated
231  public void setMediaProductType(final String mediaProductType) {
232    this.mediaProductType = mediaProductType;
233  }
234
235  /**
236   * The media type for a Threads reply. Values: TEXT_POST, IMAGE, VIDEO, CAROUSEL_ALBUM
237   */
238  @java.lang.SuppressWarnings("all")
239  @lombok.Generated
240  public TdMediaType getMediaType() {
241    return this.mediaType;
242  }
243
244  /**
245   * The media type for a Threads reply. Values: TEXT_POST, IMAGE, VIDEO, CAROUSEL_ALBUM
246   */
247  @java.lang.SuppressWarnings("all")
248  @lombok.Generated
249  public void setMediaType(final TdMediaType mediaType) {
250    this.mediaType = mediaType;
251  }
252
253  /**
254   * The post’s media URL. This only shows for image, video, and carousel replies.
255   */
256  @java.lang.SuppressWarnings("all")
257  @lombok.Generated
258  public String getMediaUrl() {
259    return this.mediaUrl;
260  }
261
262  /**
263   * The post’s media URL. This only shows for image, video, and carousel replies.
264   */
265  @java.lang.SuppressWarnings("all")
266  @lombok.Generated
267  public void setMediaUrl(final String mediaUrl) {
268    this.mediaUrl = mediaUrl;
269  }
270
271  /**
272   * Shortcode of the media.
273   */
274  @java.lang.SuppressWarnings("all")
275  @lombok.Generated
276  public String getShortcode() {
277    return this.shortcode;
278  }
279
280  /**
281   * Shortcode of the media.
282   */
283  @java.lang.SuppressWarnings("all")
284  @lombok.Generated
285  public void setShortcode(final String shortcode) {
286    this.shortcode = shortcode;
287  }
288
289  /**
290   * URL of thumbnail. This only shows for Threads replies with video.
291   */
292  @java.lang.SuppressWarnings("all")
293  @lombok.Generated
294  public String getThumbnailUrl() {
295    return this.thumbnailUrl;
296  }
297
298  /**
299   * URL of thumbnail. This only shows for Threads replies with video.
300   */
301  @java.lang.SuppressWarnings("all")
302  @lombok.Generated
303  public void setThumbnailUrl(final String thumbnailUrl) {
304    this.thumbnailUrl = thumbnailUrl;
305  }
306
307  /**
308   * List of child posts. This only shows for carousel replies.
309   */
310  @java.lang.SuppressWarnings("all")
311  @lombok.Generated
312  public List<TdReply> getChildren() {
313    return this.children;
314  }
315
316  /**
317   * List of child posts. This only shows for carousel replies.
318   */
319  @java.lang.SuppressWarnings("all")
320  @lombok.Generated
321  public void setChildren(final List<TdReply> children) {
322    this.children = children;
323  }
324
325  /**
326   * Indicates if the media is a quoted reply made by another user.
327   */
328  @java.lang.SuppressWarnings("all")
329  @lombok.Generated
330  public Boolean getIsQuotePost() {
331    return this.isQuotePost;
332  }
333
334  /**
335   * Indicates if the media is a quoted reply made by another user.
336   */
337  @java.lang.SuppressWarnings("all")
338  @lombok.Generated
339  public void setIsQuotePost(final Boolean isQuotePost) {
340    this.isQuotePost = isQuotePost;
341  }
342
343  /**
344   * true if the Threads post or reply has replies that you can see.
345   */
346  @java.lang.SuppressWarnings("all")
347  @lombok.Generated
348  public Boolean getHasReplies() {
349    return this.hasReplies;
350  }
351
352  /**
353   * true if the Threads post or reply has replies that you can see.
354   */
355  @java.lang.SuppressWarnings("all")
356  @lombok.Generated
357  public void setHasReplies(final Boolean hasReplies) {
358    this.hasReplies = hasReplies;
359  }
360
361  /**
362   * Media ID of the top-level post or original thread in the reply tree. Note: This only appears on replies.
363   */
364  @java.lang.SuppressWarnings("all")
365  @lombok.Generated
366  public TdReply getRootPost() {
367    return this.rootPost;
368  }
369
370  /**
371   * Media ID of the top-level post or original thread in the reply tree. Note: This only appears on replies.
372   */
373  @java.lang.SuppressWarnings("all")
374  @lombok.Generated
375  public void setRootPost(final TdReply rootPost) {
376    this.rootPost = rootPost;
377  }
378
379  /**
380   * Media ID of the immediate parent of the reply. Note: This only appears on replies.
381   */
382  @java.lang.SuppressWarnings("all")
383  @lombok.Generated
384  public TdReply getRepliedTo() {
385    return this.repliedTo;
386  }
387
388  /**
389   * Media ID of the immediate parent of the reply. Note: This only appears on replies.
390   */
391  @java.lang.SuppressWarnings("all")
392  @lombok.Generated
393  public void setRepliedTo(final TdReply repliedTo) {
394    this.repliedTo = repliedTo;
395  }
396
397  /**
398   * true if the Threads media is a reply. false if the Threads media is a top-level post.
399   */
400  @java.lang.SuppressWarnings("all")
401  @lombok.Generated
402  public Boolean getIsReply() {
403    return this.isReply;
404  }
405
406  /**
407   * true if the Threads media is a reply. false if the Threads media is a top-level post.
408   */
409  @java.lang.SuppressWarnings("all")
410  @lombok.Generated
411  public void setIsReply(final Boolean isReply) {
412    this.isReply = isReply;
413  }
414
415  /**
416   * {@code true} if your user is the owner of the Threads reply. <br>
417   * {@code false} if another user is the owner of the Threads reply.
418   */
419  @java.lang.SuppressWarnings("all")
420  @lombok.Generated
421  public Boolean getIsReplyOwnedByMe() {
422    return this.isReplyOwnedByMe;
423  }
424
425  /**
426   * {@code true} if your user is the owner of the Threads reply. <br>
427   * {@code false} if another user is the owner of the Threads reply.
428   */
429  @java.lang.SuppressWarnings("all")
430  @lombok.Generated
431  public void setIsReplyOwnedByMe(final Boolean isReplyOwnedByMe) {
432    this.isReplyOwnedByMe = isReplyOwnedByMe;
433  }
434
435  /**
436   * Whether or not the reply is hidden. Values: NOT_HUSHED, UNHUSHED, HIDDEN, COVERED, BLOCKED, RESTRICTED
437   */
438  @java.lang.SuppressWarnings("all")
439  @lombok.Generated
440  public TdHideStatus getHideStatus() {
441    return this.hideStatus;
442  }
443
444  /**
445   * Whether or not the reply is hidden. Values: NOT_HUSHED, UNHUSHED, HIDDEN, COVERED, BLOCKED, RESTRICTED
446   */
447  @java.lang.SuppressWarnings("all")
448  @lombok.Generated
449  public void setHideStatus(final TdHideStatus hideStatus) {
450    this.hideStatus = hideStatus;
451  }
452
453  /**
454   * Who can reply to your post.
455   */
456  @java.lang.SuppressWarnings("all")
457  @lombok.Generated
458  public TdReplyAudience getReplyAudience() {
459    return this.replyAudience;
460  }
461
462  /**
463   * Who can reply to your post.
464   */
465  @java.lang.SuppressWarnings("all")
466  @lombok.Generated
467  public void setReplyAudience(final TdReplyAudience replyAudience) {
468    this.replyAudience = replyAudience;
469  }
470}