001// Generated by delombok at Fri Feb 03 22:42:46 CET 2023
002/*
003 * Copyright (c) 2010-2023 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;
024
025import static java.util.Collections.unmodifiableList;
026import java.util.*;
027import com.restfb.Facebook;
028import com.restfb.annotation.GraphAPI;
029import com.restfb.types.features.HasComments;
030import com.restfb.types.features.HasCreatedTime;
031import com.restfb.types.features.HasMessage;
032
033/**
034 * Represents the <a href="https://developers.facebook.com/docs/reference/api/video">Video Graph API type</a>.
035 * 
036 * @author <a href="http://restfb.com">Mark Allen</a>
037 * @since 1.5
038 */
039public class Video extends NamedFacebookType implements HasComments, HasCreatedTime, HasMessage {
040  /**
041   * An object containing the name and ID of the user who posted the video.
042   * 
043   */
044  @Facebook
045  private From from;
046  /**
047   * The video title / caption.
048   * 
049   * @deprecated FB seems to have removed this field.
050   */
051  @Facebook
052  @Deprecated
053  private String message;
054  /**
055   * The comments for this video.
056   */
057  @Facebook
058  private Comments comments;
059  /**
060   * The long-form HTML description of the video.
061   * 
062   */
063  @Facebook
064  private String description;
065  /**
066   * URL to the permalink page of the video
067   */
068  @Facebook("permalink_url")
069  private String permalinkUrl;
070  /**
071   * The video title or caption
072   */
073  @Facebook("title")
074  @GraphAPI(since = "2.5")
075  private String title;
076  @Facebook("is_crosspost_video")
077  private Boolean isCrosspostVideo;
078  /**
079   * Specifies if the video is eligible for crossposting.
080   */
081  @Facebook("is_crossposting_eligible")
082  @GraphAPI(since = "2.6")
083  private Boolean isCrosspostingEligible;
084  /**
085   * Whether this video is episode or not.
086   */
087  @Facebook("is_episode")
088  private Boolean isEpisode;
089  /**
090   * Whether the video is eligible to be promoted on Instagram
091   */
092  @Facebook("is_instagram_eligible")
093  private Boolean isInstagramEligible;
094  /**
095   * Whether the video is exclusively used for copyright monitoring.
096   */
097  @Facebook("is_reference_only")
098  private Boolean isReferenceOnly;
099  /**
100   * The music video copyright of this video
101   *
102   * because of a missing object description in the graph reference, we use a Map here
103   */
104  @Facebook("music_video_copyright")
105  private MusicVideoCopyright musicVideoCopyright;
106  /**
107   * The public view count of the video post, not aggregated with any other crossposts of the video.
108   */
109  @Facebook("post_views")
110  private Integer postViews;
111  /**
112   * The reactions for this video.
113   */
114  @Facebook
115  private Reactions reactions;
116  /**
117   * Whether the video is embeddable.
118   */
119  @Facebook
120  @GraphAPI(since = "2.4")
121  private Boolean embeddable;
122  @Facebook("content_tags")
123  private List<String> contentTags = new ArrayList<>();
124  /**
125   * If this object has a place, the event associated with the place.
126   * 
127   */
128  @Facebook
129  @GraphAPI(since = "2.3")
130  private Event event;
131  /**
132   * Whether or not the video is highlighted in Video Channel.
133   */
134  @Facebook("feed_type")
135  @GraphAPI(since = "2.7")
136  private String feedType;
137  /**
138   * The publishers asset management code for this video.
139   */
140  @Facebook("universal_video_id")
141  private String universalVideoId;
142  /**
143   * The public view count of the video.
144   */
145  @Facebook
146  private Integer views;
147  @Facebook
148  private List<VideoFormat> format = new ArrayList<>();
149  /**
150   * People who like this.
151   * 
152   * you need to add the field to the fields query parameter to get the likes list otherwise null is returned
153   * 
154   */
155  @Facebook
156  private Likes likes;
157  /**
158   * Location associated with the video, if any.
159   * 
160   */
161  @Facebook
162  private Place place;
163  /**
164   * The content category of this video.
165   * 
166   */
167  @Facebook("content_category")
168  @GraphAPI(since = "2.4")
169  private String contentCategory;
170  /**
171   * A URL for the thumbnail picture of the video.
172   * 
173   */
174  @Facebook
175  private String picture;
176  /**
177   * An icon URL which represents the video.
178   * 
179   */
180  @Facebook
181  private String icon;
182  /**
183   * A URL to the raw, playable video file.
184   * 
185   * @since 1.6.5
186   */
187  @Facebook
188  private String source;
189  /**
190   * HTML that may be used to embed the video on another website.
191   * 
192   */
193  @Facebook("embed_html")
194  private String embedHtml;
195  /**
196   * The length of the video, in seconds.
197   * 
198   */
199  @Facebook
200  private Double length;
201  /**
202   * Number of unique people who watched the video broadcast when it was live.
203   */
204  @Facebook("live_audience_count")
205  @GraphAPI(since = "2.6")
206  private Integer liveAudienceCount;
207  /**
208   * The live status of the video.
209   *
210   * Possible values contain LIVE, LIVE_STOPPED, VOD
211   */
212  @Facebook("live_status")
213  @GraphAPI(since = "2.6")
214  private String liveStatus;
215  /**
216   * Privacy setting for the video.
217   * 
218   */
219  @Facebook
220  private Privacy privacy;
221  /**
222   * The status of the Premiere Watch Party, if any
223   */
224  @Facebook("premiere_living_room_status")
225  private String premiereLivingRoomStatus;
226  /**
227   * Object describing the status attributes of a video.
228   * 
229   */
230  @Facebook
231  private VideoStatus status;
232  /**
233   * Whether a post about this video is published.
234   * 
235   * This field is only accessible in Graph API 2.3 or later.
236   *
237   * @since 1.10.0
238   */
239  @Facebook
240  @GraphAPI(since = "2.3")
241  private Boolean published;
242  /**
243   * Back dated time
244   *
245   * @since 1.10.0
246   */
247  @Facebook("backdated_time")
248  private Date backdatedTime;
249  /**
250   * String that represents the back dated time granularity
251   *
252   * @since 1.10.0
253   */
254  @Facebook("backdated_time_granularity")
255  private String backdatedTimeGranularity;
256  /**
257   * The time the video was initially published.
258   * 
259   */
260  @Facebook("created_time")
261  private Date createdTime;
262  /**
263   * The last time the video or its caption were updated.
264   * 
265   */
266  @Facebook("updated_time")
267  private Date updatedTime;
268  /**
269   * The time that the video is scheduled to be published.
270   * 
271   * This field is only accessible in Graph API 2.3 or later.
272   * 
273   * @since 1.10.0
274   */
275  @Facebook("scheduled_publish_time")
276  @GraphAPI(since = "2.3")
277  private Date scheduledPublishTime;
278  @Facebook
279  private List<VideoCaption> captions = new ArrayList<>();
280  @Facebook
281  private List<NamedFacebookType> tags = new ArrayList<>();
282  @Facebook("ad_breaks")
283  private List<Integer> adBreaks = new ArrayList<>();
284  @Facebook("custom_labels")
285  private List<String> customLabels = new ArrayList<>();
286  private static final long serialVersionUID = 1L;
287
288  public List<VideoCaption> getCaptions() {
289    return unmodifiableList(captions);
290  }
291
292  public boolean addCaption(VideoCaption caption) {
293    return captions.add(caption);
294  }
295
296  public boolean removeCaption(VideoCaption caption) {
297    return captions.remove(caption);
298  }
299
300  /**
301   * The different formats of the video.
302   * 
303   * @return The different formats of the video.
304   */
305  public List<VideoFormat> getFormat() {
306    return unmodifiableList(format);
307  }
308
309  public boolean addFormat(VideoFormat videoFormat) {
310    return format.add(videoFormat);
311  }
312
313  public boolean removeFormat(VideoFormat videoFormat) {
314    return format.remove(videoFormat);
315  }
316
317  /**
318   * Tags for the video.
319   * 
320   * @return Tags for the video.
321   * @since 1.6.5
322   */
323  public List<NamedFacebookType> getTags() {
324    return unmodifiableList(tags);
325  }
326
327  public boolean addTag(NamedFacebookType tag) {
328    return tags.add(tag);
329  }
330
331  public boolean removeTag(NamedFacebookType tag) {
332    return tags.remove(tag);
333  }
334
335  /**
336   * Tags that describe the contents of the video.
337   *
338   * @return Tags that describe the contents of the video.
339   */
340  public List<String> getContentTags() {
341    return unmodifiableList(contentTags);
342  }
343
344  public boolean addContentTag(String contentTag) {
345    return contentTags.add(contentTag);
346  }
347
348  public boolean removeContentTag(String contentTag) {
349    return contentTags.remove(contentTag);
350  }
351
352  /**
353   * Time offsets of ad breaks in milliseconds. Ad breaks are short ads that play within a video.
354   *
355   * @return Time offsets of ad breaks in milliseconds. Ad breaks are short ads that play within a video.
356   */
357  public List<Integer> getAdBreaks() {
358    return unmodifiableList(adBreaks);
359  }
360
361  public boolean addAdBreak(Integer adBreak) {
362    return adBreaks.add(adBreak);
363  }
364
365  public boolean removeAdBreak(Integer adBreak) {
366    return adBreaks.remove(adBreak);
367  }
368
369  /**
370   * Labels used to describe the video.
371   *
372   * Unlike content tags, custom labels are not published and only appear in insights data.
373   *
374   * @return Labels used to describe the video.
375   */
376  public List<String> getCustomLabels() {
377    return unmodifiableList(customLabels);
378  }
379
380  public boolean addCustomLabel(String customLabel) {
381    return customLabels.add(customLabel);
382  }
383
384  public boolean removeCustomLabel(String customLabel) {
385    return customLabels.remove(customLabel);
386  }
387
388  /**
389   * The number of likes on this video.
390   * 
391   * you have to fetch the video id with <code>?fields=likes.summary(true)</code> in order to speed up the likes count
392   * generation, you may use <code>?fields=likes.limit(1).summary(true)</code>, so only 1 like is fetched, but the
393   * complete summary
394   *
395   * @return The number of likes on this video.
396   */
397  public Long getLikesCount() {
398    if (getLikes() != null) {
399      return getLikes().getTotalCount();
400    }
401    return 0L;
402  }
403
404  /**
405   * The number of comments of this video.
406   * 
407   * you have to fetch the video id with <code>?fields=comments.summary(true)</code> in order to speed up the comments
408   * count generation, you may use <code>?fields=comments.limit(1).summary(true)</code>, so only 1 comment is fetched,
409   * but the complete summary
410   *
411   * @return The number of comments of this video.
412   */
413  public Long getCommentsCount() {
414    if (getComments() != null) {
415      return getComments().getTotalCount();
416    }
417    return 0L;
418  }
419
420
421  /**
422   * Represents the <a href="https://developers.facebook.com/docs/graph-api/reference/video-thumbnail/">Video Thumbnail
423   * Graph API type</a>.
424   * 
425   * @since 1.10.0
426   */
427  public static class Thumbnail extends AbstractFacebookType {
428    private static final long serialVersionUID = 1L;
429    /**
430     * The name of the thumbnail
431     */
432    @Facebook
433    private String name;
434    /**
435     * The height of the thumbnail
436     */
437    @Facebook
438    private Integer height;
439    /**
440     * The width of the thumbnail
441     */
442    @Facebook
443    private Integer width;
444    /**
445     * The scale of the thumbnail
446     */
447    @Facebook
448    private Float scale;
449    /**
450     * The uri of the thumbnail
451     */
452    @Facebook
453    private String uri;
454    /**
455     * Whether this is the preferred thumbnail for the video
456     */
457    @Facebook("is_preferred")
458    private Boolean isPreferred;
459
460    /**
461     * The name of the thumbnail
462     */
463    @java.lang.SuppressWarnings("all")
464    public String getName() {
465      return this.name;
466    }
467
468    /**
469     * The name of the thumbnail
470     */
471    @java.lang.SuppressWarnings("all")
472    public void setName(final String name) {
473      this.name = name;
474    }
475
476    /**
477     * The height of the thumbnail
478     */
479    @java.lang.SuppressWarnings("all")
480    public Integer getHeight() {
481      return this.height;
482    }
483
484    /**
485     * The height of the thumbnail
486     */
487    @java.lang.SuppressWarnings("all")
488    public void setHeight(final Integer height) {
489      this.height = height;
490    }
491
492    /**
493     * The width of the thumbnail
494     */
495    @java.lang.SuppressWarnings("all")
496    public Integer getWidth() {
497      return this.width;
498    }
499
500    /**
501     * The width of the thumbnail
502     */
503    @java.lang.SuppressWarnings("all")
504    public void setWidth(final Integer width) {
505      this.width = width;
506    }
507
508    /**
509     * The scale of the thumbnail
510     */
511    @java.lang.SuppressWarnings("all")
512    public Float getScale() {
513      return this.scale;
514    }
515
516    /**
517     * The scale of the thumbnail
518     */
519    @java.lang.SuppressWarnings("all")
520    public void setScale(final Float scale) {
521      this.scale = scale;
522    }
523
524    /**
525     * The uri of the thumbnail
526     */
527    @java.lang.SuppressWarnings("all")
528    public String getUri() {
529      return this.uri;
530    }
531
532    /**
533     * The uri of the thumbnail
534     */
535    @java.lang.SuppressWarnings("all")
536    public void setUri(final String uri) {
537      this.uri = uri;
538    }
539
540    /**
541     * Whether this is the preferred thumbnail for the video
542     */
543    @java.lang.SuppressWarnings("all")
544    public Boolean getIsPreferred() {
545      return this.isPreferred;
546    }
547
548    /**
549     * Whether this is the preferred thumbnail for the video
550     */
551    @java.lang.SuppressWarnings("all")
552    public void setIsPreferred(final Boolean isPreferred) {
553      this.isPreferred = isPreferred;
554    }
555  }
556
557
558  /**
559   * Represents the <a href="https://developers.facebook.com/docs/graph-api/reference/video-format/">Video Format Graph
560   * API type</a>.
561   */
562  public static class VideoFormat extends AbstractFacebookType {
563    private static final long serialVersionUID = 1L;
564    /**
565     * HTML to embed the video in this format.
566     * 
567     */
568    @Facebook("embed_html")
569    private String embedHtml;
570    /**
571     * The filter applied to this video format.
572     * 
573     */
574    @Facebook
575    private String filter;
576    /**
577     * The thumbnail for the video in this format.
578     * 
579     */
580    @Facebook
581    private String picture;
582    /**
583     * The width of the video in this format.
584     * 
585     */
586    @Facebook
587    private Integer width;
588    /**
589     * The height of the video in this format.
590     * 
591     */
592    @Facebook
593    private Integer height;
594
595    /**
596     * HTML to embed the video in this format.
597     * 
598     * @return HTML to embed the video in this format.
599     */
600    @java.lang.SuppressWarnings("all")
601    public String getEmbedHtml() {
602      return this.embedHtml;
603    }
604
605    /**
606     * HTML to embed the video in this format.
607     * 
608     */
609    @java.lang.SuppressWarnings("all")
610    public void setEmbedHtml(final String embedHtml) {
611      this.embedHtml = embedHtml;
612    }
613
614    /**
615     * The filter applied to this video format.
616     * 
617     * @return The filter applied to this video format.
618     */
619    @java.lang.SuppressWarnings("all")
620    public String getFilter() {
621      return this.filter;
622    }
623
624    /**
625     * The filter applied to this video format.
626     * 
627     */
628    @java.lang.SuppressWarnings("all")
629    public void setFilter(final String filter) {
630      this.filter = filter;
631    }
632
633    /**
634     * The thumbnail for the video in this format.
635     * 
636     * @return The thumbnail for the video in this format.
637     */
638    @java.lang.SuppressWarnings("all")
639    public String getPicture() {
640      return this.picture;
641    }
642
643    /**
644     * The thumbnail for the video in this format.
645     * 
646     */
647    @java.lang.SuppressWarnings("all")
648    public void setPicture(final String picture) {
649      this.picture = picture;
650    }
651
652    /**
653     * The width of the video in this format.
654     * 
655     * @return The width of the video in this format.
656     */
657    @java.lang.SuppressWarnings("all")
658    public Integer getWidth() {
659      return this.width;
660    }
661
662    /**
663     * The width of the video in this format.
664     * 
665     */
666    @java.lang.SuppressWarnings("all")
667    public void setWidth(final Integer width) {
668      this.width = width;
669    }
670
671    /**
672     * The height of the video in this format.
673     * 
674     * @return The height of the video in this format.
675     */
676    @java.lang.SuppressWarnings("all")
677    public Integer getHeight() {
678      return this.height;
679    }
680
681    /**
682     * The height of the video in this format.
683     * 
684     */
685    @java.lang.SuppressWarnings("all")
686    public void setHeight(final Integer height) {
687      this.height = height;
688    }
689  }
690
691
692  /**
693   * Represents the <a href="https://developers.facebook.com/docs/graph-api/reference/video-status/">Video Status Graph
694   * API type</a>.
695   */
696  public static class VideoStatus extends AbstractFacebookType {
697    private static final long serialVersionUID = 1L;
698    /**
699     * Status of a video.
700     * 
701     * Either "ready" (uploaded, encoded, thumbnails extracted), "processing" (not ready yet) or "error" (processing
702     * failed).
703     * 
704     * @return Status of a video
705     */
706    @Facebook("video_status")
707    private String videoStatus;
708    /**
709     * Video processing progress in percent [int 0 to 100].
710     * 
711     * @return Video processing progress in percent [int 0 to 100].
712     */
713    @Facebook("processing_progress")
714    private Integer processingProgress;
715
716    @java.lang.SuppressWarnings("all")
717    public String getVideoStatus() {
718      return this.videoStatus;
719    }
720
721    @java.lang.SuppressWarnings("all")
722    public void setVideoStatus(final String videoStatus) {
723      this.videoStatus = videoStatus;
724    }
725
726    @java.lang.SuppressWarnings("all")
727    public Integer getProcessingProgress() {
728      return this.processingProgress;
729    }
730
731    @java.lang.SuppressWarnings("all")
732    public void setProcessingProgress(final Integer processingProgress) {
733      this.processingProgress = processingProgress;
734    }
735  }
736
737  /**
738   * An object containing the name and ID of the user who posted the video.
739   * 
740   * @return An object containing the name and ID of the user who posted the video.
741   */
742  @java.lang.SuppressWarnings("all")
743  public From getFrom() {
744    return this.from;
745  }
746
747  /**
748   * An object containing the name and ID of the user who posted the video.
749   * 
750   */
751  @java.lang.SuppressWarnings("all")
752  public void setFrom(final From from) {
753    this.from = from;
754  }
755
756  /**
757   * The video title / caption.
758   * 
759   * @return The video title / caption.
760   * @deprecated FB seems to have removed this field.
761   */
762  @java.lang.Deprecated
763  @Override
764  @java.lang.SuppressWarnings("all")
765  public String getMessage() {
766    return this.message;
767  }
768
769  /**
770   * The video title / caption.
771   * 
772   * @deprecated FB seems to have removed this field.
773   */
774  @java.lang.Deprecated
775  @java.lang.SuppressWarnings("all")
776  public void setMessage(final String message) {
777    this.message = message;
778  }
779
780  /**
781   * The comments for this video.
782   *
783   * @return The comments for this video.
784   */
785  @Override
786  @java.lang.SuppressWarnings("all")
787  public Comments getComments() {
788    return this.comments;
789  }
790
791  /**
792   * The comments for this video.
793   */
794  @java.lang.SuppressWarnings("all")
795  public void setComments(final Comments comments) {
796    this.comments = comments;
797  }
798
799  /**
800   * The long-form HTML description of the video.
801   * 
802   * @return The long-form HTML description of the video.
803   */
804  @java.lang.SuppressWarnings("all")
805  public String getDescription() {
806    return this.description;
807  }
808
809  /**
810   * The long-form HTML description of the video.
811   * 
812   */
813  @java.lang.SuppressWarnings("all")
814  public void setDescription(final String description) {
815    this.description = description;
816  }
817
818  /**
819   * URL to the permalink page of the video
820   *
821   * @return URL to the permalink page of the video
822   */
823  @java.lang.SuppressWarnings("all")
824  public String getPermalinkUrl() {
825    return this.permalinkUrl;
826  }
827
828  /**
829   * URL to the permalink page of the video
830   */
831  @java.lang.SuppressWarnings("all")
832  public void setPermalinkUrl(final String permalinkUrl) {
833    this.permalinkUrl = permalinkUrl;
834  }
835
836  /**
837   * The video title or caption
838   *
839   * @return the video title or caption
840   */
841  @GraphAPI(since = "2.5")
842  @java.lang.SuppressWarnings("all")
843  public String getTitle() {
844    return this.title;
845  }
846
847  /**
848   * The video title or caption
849   */
850  @java.lang.SuppressWarnings("all")
851  public void setTitle(final String title) {
852    this.title = title;
853  }
854
855  @java.lang.SuppressWarnings("all")
856  public Boolean getIsCrosspostVideo() {
857    return this.isCrosspostVideo;
858  }
859
860  @java.lang.SuppressWarnings("all")
861  public void setIsCrosspostVideo(final Boolean isCrosspostVideo) {
862    this.isCrosspostVideo = isCrosspostVideo;
863  }
864
865  /**
866   * Specifies if the video is eligible for crossposting.
867   *
868   * @return Specifies if the video is eligible for crossposting
869   */
870  @GraphAPI(since = "2.6")
871  @java.lang.SuppressWarnings("all")
872  public Boolean getIsCrosspostingEligible() {
873    return this.isCrosspostingEligible;
874  }
875
876  /**
877   * Specifies if the video is eligible for crossposting.
878   */
879  @java.lang.SuppressWarnings("all")
880  public void setIsCrosspostingEligible(final Boolean isCrosspostingEligible) {
881    this.isCrosspostingEligible = isCrosspostingEligible;
882  }
883
884  /**
885   * Whether this video is episode or not.
886   *
887   * @return Whether this video is episode or not.
888   */
889  @java.lang.SuppressWarnings("all")
890  public Boolean getIsEpisode() {
891    return this.isEpisode;
892  }
893
894  /**
895   * Whether this video is episode or not.
896   */
897  @java.lang.SuppressWarnings("all")
898  public void setIsEpisode(final Boolean isEpisode) {
899    this.isEpisode = isEpisode;
900  }
901
902  /**
903   * Whether the video is eligible to be promoted on Instagram
904   *
905   * @return Whether the video is eligible to be promoted on Instagram
906   */
907  @java.lang.SuppressWarnings("all")
908  public Boolean getIsInstagramEligible() {
909    return this.isInstagramEligible;
910  }
911
912  /**
913   * Whether the video is eligible to be promoted on Instagram
914   */
915  @java.lang.SuppressWarnings("all")
916  public void setIsInstagramEligible(final Boolean isInstagramEligible) {
917    this.isInstagramEligible = isInstagramEligible;
918  }
919
920  /**
921   * Whether the video is exclusively used for copyright monitoring.
922   *
923   * @return Whether the video is exclusively used for copyright monitoring
924   */
925  @java.lang.SuppressWarnings("all")
926  public Boolean getIsReferenceOnly() {
927    return this.isReferenceOnly;
928  }
929
930  /**
931   * Whether the video is exclusively used for copyright monitoring.
932   */
933  @java.lang.SuppressWarnings("all")
934  public void setIsReferenceOnly(final Boolean isReferenceOnly) {
935    this.isReferenceOnly = isReferenceOnly;
936  }
937
938  /**
939   * The music video copyright of this video
940   *
941   * because of a missing object description in the graph reference, we use a Map here
942   */
943  @java.lang.SuppressWarnings("all")
944  public MusicVideoCopyright getMusicVideoCopyright() {
945    return this.musicVideoCopyright;
946  }
947
948  /**
949   * The music video copyright of this video
950   *
951   * because of a missing object description in the graph reference, we use a Map here
952   */
953  @java.lang.SuppressWarnings("all")
954  public void setMusicVideoCopyright(final MusicVideoCopyright musicVideoCopyright) {
955    this.musicVideoCopyright = musicVideoCopyright;
956  }
957
958  /**
959   * The public view count of the video post, not aggregated with any other crossposts of the video.
960   */
961  @java.lang.SuppressWarnings("all")
962  public Integer getPostViews() {
963    return this.postViews;
964  }
965
966  /**
967   * The public view count of the video post, not aggregated with any other crossposts of the video.
968   */
969  @java.lang.SuppressWarnings("all")
970  public void setPostViews(final Integer postViews) {
971    this.postViews = postViews;
972  }
973
974  /**
975   * The reactions for this video.
976   *
977   * @return The reactions for this video.
978   */
979  @java.lang.SuppressWarnings("all")
980  public Reactions getReactions() {
981    return this.reactions;
982  }
983
984  /**
985   * The reactions for this video.
986   */
987  @java.lang.SuppressWarnings("all")
988  public void setReactions(final Reactions reactions) {
989    this.reactions = reactions;
990  }
991
992  /**
993   * Whether the video is embeddable.
994   *
995   * @return Whether the video is embeddable.
996   */
997  @GraphAPI(since = "2.4")
998  @java.lang.SuppressWarnings("all")
999  public Boolean getEmbeddable() {
1000    return this.embeddable;
1001  }
1002
1003  /**
1004   * Whether the video is embeddable.
1005   */
1006  @java.lang.SuppressWarnings("all")
1007  public void setEmbeddable(final Boolean embeddable) {
1008    this.embeddable = embeddable;
1009  }
1010
1011  /**
1012   * If this object has a place, the event associated with the place.
1013   * 
1014   * @return the event associated with the place
1015   */
1016  @GraphAPI(since = "2.3")
1017  @java.lang.SuppressWarnings("all")
1018  public Event getEvent() {
1019    return this.event;
1020  }
1021
1022  /**
1023   * If this object has a place, the event associated with the place.
1024   * 
1025   */
1026  @java.lang.SuppressWarnings("all")
1027  public void setEvent(final Event event) {
1028    this.event = event;
1029  }
1030
1031  /**
1032   * Whether or not the video is highlighted in Video Channel.
1033   *
1034   * @return Whether or not the video is highlighted in Video Channel.
1035   */
1036  @GraphAPI(since = "2.7")
1037  @java.lang.SuppressWarnings("all")
1038  public String getFeedType() {
1039    return this.feedType;
1040  }
1041
1042  /**
1043   * Whether or not the video is highlighted in Video Channel.
1044   */
1045  @java.lang.SuppressWarnings("all")
1046  public void setFeedType(final String feedType) {
1047    this.feedType = feedType;
1048  }
1049
1050  /**
1051   * The publishers asset management code for this video.
1052   */
1053  @java.lang.SuppressWarnings("all")
1054  public String getUniversalVideoId() {
1055    return this.universalVideoId;
1056  }
1057
1058  /**
1059   * The publishers asset management code for this video.
1060   */
1061  @java.lang.SuppressWarnings("all")
1062  public void setUniversalVideoId(final String universalVideoId) {
1063    this.universalVideoId = universalVideoId;
1064  }
1065
1066  /**
1067   * The public view count of the video.
1068   */
1069  @java.lang.SuppressWarnings("all")
1070  public Integer getViews() {
1071    return this.views;
1072  }
1073
1074  /**
1075   * The public view count of the video.
1076   */
1077  @java.lang.SuppressWarnings("all")
1078  public void setViews(final Integer views) {
1079    this.views = views;
1080  }
1081
1082  /**
1083   * People who like this.
1084   * 
1085   * you need to add the field to the fields query parameter to get the likes list otherwise null is returned
1086   * 
1087   * @return People who like this
1088   */
1089  @java.lang.SuppressWarnings("all")
1090  public Likes getLikes() {
1091    return this.likes;
1092  }
1093
1094  /**
1095   * People who like this.
1096   * 
1097   * you need to add the field to the fields query parameter to get the likes list otherwise null is returned
1098   * 
1099   */
1100  @java.lang.SuppressWarnings("all")
1101  public void setLikes(final Likes likes) {
1102    this.likes = likes;
1103  }
1104
1105  /**
1106   * Location associated with the video, if any.
1107   * 
1108   * @return Location associated with the video, if any.
1109   */
1110  @java.lang.SuppressWarnings("all")
1111  public Place getPlace() {
1112    return this.place;
1113  }
1114
1115  /**
1116   * Location associated with the video, if any.
1117   * 
1118   */
1119  @java.lang.SuppressWarnings("all")
1120  public void setPlace(final Place place) {
1121    this.place = place;
1122  }
1123
1124  /**
1125   * The content category of this video.
1126   * 
1127   * @return The content category of this video.
1128   */
1129  @GraphAPI(since = "2.4")
1130  @java.lang.SuppressWarnings("all")
1131  public String getContentCategory() {
1132    return this.contentCategory;
1133  }
1134
1135  /**
1136   * The content category of this video.
1137   * 
1138   */
1139  @java.lang.SuppressWarnings("all")
1140  public void setContentCategory(final String contentCategory) {
1141    this.contentCategory = contentCategory;
1142  }
1143
1144  /**
1145   * A URL for the thumbnail picture of the video.
1146   * 
1147   * @return A URL for the thumbnail picture of the video.
1148   */
1149  @java.lang.SuppressWarnings("all")
1150  public String getPicture() {
1151    return this.picture;
1152  }
1153
1154  /**
1155   * A URL for the thumbnail picture of the video.
1156   * 
1157   */
1158  @java.lang.SuppressWarnings("all")
1159  public void setPicture(final String picture) {
1160    this.picture = picture;
1161  }
1162
1163  /**
1164   * An icon URL which represents the video.
1165   * 
1166   * @return An icon URL which represents the video.
1167   */
1168  @java.lang.SuppressWarnings("all")
1169  public String getIcon() {
1170    return this.icon;
1171  }
1172
1173  /**
1174   * An icon URL which represents the video.
1175   * 
1176   */
1177  @java.lang.SuppressWarnings("all")
1178  public void setIcon(final String icon) {
1179    this.icon = icon;
1180  }
1181
1182  /**
1183   * A URL to the raw, playable video file.
1184   * 
1185   * @return A URL to the raw, playable video file.
1186   * @since 1.6.5
1187   */
1188  @java.lang.SuppressWarnings("all")
1189  public String getSource() {
1190    return this.source;
1191  }
1192
1193  /**
1194   * A URL to the raw, playable video file.
1195   * 
1196   * @since 1.6.5
1197   */
1198  @java.lang.SuppressWarnings("all")
1199  public void setSource(final String source) {
1200    this.source = source;
1201  }
1202
1203  /**
1204   * HTML that may be used to embed the video on another website.
1205   * 
1206   * @return HTML that may be used to embed the video on another website.
1207   */
1208  @java.lang.SuppressWarnings("all")
1209  public String getEmbedHtml() {
1210    return this.embedHtml;
1211  }
1212
1213  /**
1214   * HTML that may be used to embed the video on another website.
1215   * 
1216   */
1217  @java.lang.SuppressWarnings("all")
1218  public void setEmbedHtml(final String embedHtml) {
1219    this.embedHtml = embedHtml;
1220  }
1221
1222  /**
1223   * The length of the video, in seconds.
1224   * 
1225   * @return The length of the video, in seconds.
1226   */
1227  @java.lang.SuppressWarnings("all")
1228  public Double getLength() {
1229    return this.length;
1230  }
1231
1232  /**
1233   * The length of the video, in seconds.
1234   * 
1235   */
1236  @java.lang.SuppressWarnings("all")
1237  public void setLength(final Double length) {
1238    this.length = length;
1239  }
1240
1241  /**
1242   * Number of unique people who watched the video broadcast when it was live.
1243   *
1244   * @return Number of unique people who watched the video broadcast when it was live.
1245   */
1246  @GraphAPI(since = "2.6")
1247  @java.lang.SuppressWarnings("all")
1248  public Integer getLiveAudienceCount() {
1249    return this.liveAudienceCount;
1250  }
1251
1252  /**
1253   * Number of unique people who watched the video broadcast when it was live.
1254   */
1255  @java.lang.SuppressWarnings("all")
1256  public void setLiveAudienceCount(final Integer liveAudienceCount) {
1257    this.liveAudienceCount = liveAudienceCount;
1258  }
1259
1260  /**
1261   * The live status of the video.
1262   *
1263   * Possible values contain LIVE, LIVE_STOPPED, VOD
1264   *
1265   * @return The live status of the video
1266   */
1267  @GraphAPI(since = "2.6")
1268  @java.lang.SuppressWarnings("all")
1269  public String getLiveStatus() {
1270    return this.liveStatus;
1271  }
1272
1273  /**
1274   * The live status of the video.
1275   *
1276   * Possible values contain LIVE, LIVE_STOPPED, VOD
1277   */
1278  @java.lang.SuppressWarnings("all")
1279  public void setLiveStatus(final String liveStatus) {
1280    this.liveStatus = liveStatus;
1281  }
1282
1283  /**
1284   * Privacy setting for the video.
1285   * 
1286   * @return Privacy setting for the video.
1287   */
1288  @java.lang.SuppressWarnings("all")
1289  public Privacy getPrivacy() {
1290    return this.privacy;
1291  }
1292
1293  /**
1294   * Privacy setting for the video.
1295   * 
1296   */
1297  @java.lang.SuppressWarnings("all")
1298  public void setPrivacy(final Privacy privacy) {
1299    this.privacy = privacy;
1300  }
1301
1302  /**
1303   * The status of the Premiere Watch Party, if any
1304   */
1305  @java.lang.SuppressWarnings("all")
1306  public String getPremiereLivingRoomStatus() {
1307    return this.premiereLivingRoomStatus;
1308  }
1309
1310  /**
1311   * The status of the Premiere Watch Party, if any
1312   */
1313  @java.lang.SuppressWarnings("all")
1314  public void setPremiereLivingRoomStatus(final String premiereLivingRoomStatus) {
1315    this.premiereLivingRoomStatus = premiereLivingRoomStatus;
1316  }
1317
1318  /**
1319   * Object describing the status attributes of a video.
1320   * 
1321   * @return Object describing the status attributes of a video.
1322   */
1323  @java.lang.SuppressWarnings("all")
1324  public VideoStatus getStatus() {
1325    return this.status;
1326  }
1327
1328  /**
1329   * Object describing the status attributes of a video.
1330   * 
1331   */
1332  @java.lang.SuppressWarnings("all")
1333  public void setStatus(final VideoStatus status) {
1334    this.status = status;
1335  }
1336
1337  /**
1338   * Whether a post about this video is published.
1339   * 
1340   * This field is only accessible in Graph API 2.3 or later.
1341   *
1342   * @return whether a post about this video is published.
1343   * @since 1.10.0
1344   */
1345  @GraphAPI(since = "2.3")
1346  @java.lang.SuppressWarnings("all")
1347  public Boolean getPublished() {
1348    return this.published;
1349  }
1350
1351  /**
1352   * Whether a post about this video is published.
1353   * 
1354   * This field is only accessible in Graph API 2.3 or later.
1355   *
1356   * @since 1.10.0
1357   */
1358  @java.lang.SuppressWarnings("all")
1359  public void setPublished(final Boolean published) {
1360    this.published = published;
1361  }
1362
1363  /**
1364   * Back dated time
1365   *
1366   * @since 1.10.0
1367   */
1368  @java.lang.SuppressWarnings("all")
1369  public Date getBackdatedTime() {
1370    return this.backdatedTime;
1371  }
1372
1373  /**
1374   * Back dated time
1375   *
1376   * @since 1.10.0
1377   */
1378  @java.lang.SuppressWarnings("all")
1379  public void setBackdatedTime(final Date backdatedTime) {
1380    this.backdatedTime = backdatedTime;
1381  }
1382
1383  /**
1384   * String that represents the back dated time granularity
1385   *
1386   * @since 1.10.0
1387   */
1388  @java.lang.SuppressWarnings("all")
1389  public String getBackdatedTimeGranularity() {
1390    return this.backdatedTimeGranularity;
1391  }
1392
1393  /**
1394   * String that represents the back dated time granularity
1395   *
1396   * @since 1.10.0
1397   */
1398  @java.lang.SuppressWarnings("all")
1399  public void setBackdatedTimeGranularity(final String backdatedTimeGranularity) {
1400    this.backdatedTimeGranularity = backdatedTimeGranularity;
1401  }
1402
1403  /**
1404   * The time the video was initially published.
1405   * 
1406   * @return The time the video was initially published.
1407   */
1408  @Override
1409  @java.lang.SuppressWarnings("all")
1410  public Date getCreatedTime() {
1411    return this.createdTime;
1412  }
1413
1414  /**
1415   * The time the video was initially published.
1416   * 
1417   */
1418  @java.lang.SuppressWarnings("all")
1419  public void setCreatedTime(final Date createdTime) {
1420    this.createdTime = createdTime;
1421  }
1422
1423  /**
1424   * The last time the video or its caption were updated.
1425   * 
1426   * @return The last time the video or its caption were updated.
1427   */
1428  @java.lang.SuppressWarnings("all")
1429  public Date getUpdatedTime() {
1430    return this.updatedTime;
1431  }
1432
1433  /**
1434   * The last time the video or its caption were updated.
1435   * 
1436   */
1437  @java.lang.SuppressWarnings("all")
1438  public void setUpdatedTime(final Date updatedTime) {
1439    this.updatedTime = updatedTime;
1440  }
1441
1442  /**
1443   * The time that the video is scheduled to be published.
1444   * 
1445   * This field is only accessible in Graph API 2.3 or later.
1446   * 
1447   * @return The time that the video is scheduled to be published.
1448   * @since 1.10.0
1449   */
1450  @GraphAPI(since = "2.3")
1451  @java.lang.SuppressWarnings("all")
1452  public Date getScheduledPublishTime() {
1453    return this.scheduledPublishTime;
1454  }
1455
1456  /**
1457   * The time that the video is scheduled to be published.
1458   * 
1459   * This field is only accessible in Graph API 2.3 or later.
1460   * 
1461   * @since 1.10.0
1462   */
1463  @java.lang.SuppressWarnings("all")
1464  public void setScheduledPublishTime(final Date scheduledPublishTime) {
1465    this.scheduledPublishTime = scheduledPublishTime;
1466  }
1467}