001// Generated by delombok at Sun Sep 26 16:30:34 CEST 2021
002/*
003 * Copyright (c) 2010-2021 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   * Adds a comment
390   * 
391   * @param comment
392   *          the comment that should be added
393   * @return true if the comment was added, false otherwise
394   * @deprecated work on the {@code Comments} object directly instead of using this method
395   */
396  @Deprecated
397  public boolean addComment(Comment comment) {
398    if (getComments() != null) {
399      return getComments().addData(comment);
400    }
401    return false;
402  }
403
404  /**
405   * Adds a comment
406   * 
407   * @param comment
408   *          the comment that should be added
409   * @return true if the comment was added, false otherwise
410   * @deprecated work on the {@code Comments} object directly instead of using this method
411   */
412  @Deprecated
413  public boolean removeComment(Comment comment) {
414    if (getComments() != null) {
415      return getComments().removeData(comment);
416    }
417    return false;
418  }
419
420  /**
421   * The number of likes on this video.
422   * 
423   * you have to fetch the video id with <code>?fields=likes.summary(true)</code> in order to speed up the likes count
424   * generation, you may use <code>?fields=likes.limit(1).summary(true)</code>, so only 1 like is fetched, but the
425   * complete summary
426   *
427   * @return The number of likes on this video.
428   */
429  public Long getLikesCount() {
430    if (getLikes() != null) {
431      return getLikes().getTotalCount();
432    }
433    return 0L;
434  }
435
436  /**
437   * The number of comments of this video.
438   * 
439   * you have to fetch the video id with <code>?fields=comments.summary(true)</code> in order to speed up the comments
440   * count generation, you may use <code>?fields=comments.limit(1).summary(true)</code>, so only 1 comment is fetched,
441   * but the complete summary
442   *
443   * @return The number of comments of this video.
444   */
445  public Long getCommentsCount() {
446    if (getComments() != null) {
447      return getComments().getTotalCount();
448    }
449    return 0L;
450  }
451
452
453  /**
454   * Represents the <a href="https://developers.facebook.com/docs/graph-api/reference/video-thumbnail/">Video Thumbnail
455   * Graph API type</a>.
456   * 
457   * @since 1.10.0
458   */
459  public static class Thumbnail extends AbstractFacebookType {
460    private static final long serialVersionUID = 1L;
461    /**
462     * The name of the thumbnail
463     */
464    @Facebook
465    private String name;
466    /**
467     * The height of the thumbnail
468     */
469    @Facebook
470    private Integer height;
471    /**
472     * The width of the thumbnail
473     */
474    @Facebook
475    private Integer width;
476    /**
477     * The scale of the thumbnail
478     */
479    @Facebook
480    private Float scale;
481    /**
482     * The uri of the thumbnail
483     */
484    @Facebook
485    private String uri;
486    /**
487     * Whether this is the preferred thumbnail for the video
488     */
489    @Facebook("is_preferred")
490    private Boolean isPreferred;
491
492    /**
493     * The name of the thumbnail
494     */
495    @java.lang.SuppressWarnings("all")
496    public String getName() {
497      return this.name;
498    }
499
500    /**
501     * The name of the thumbnail
502     */
503    @java.lang.SuppressWarnings("all")
504    public void setName(final String name) {
505      this.name = name;
506    }
507
508    /**
509     * The height of the thumbnail
510     */
511    @java.lang.SuppressWarnings("all")
512    public Integer getHeight() {
513      return this.height;
514    }
515
516    /**
517     * The height of the thumbnail
518     */
519    @java.lang.SuppressWarnings("all")
520    public void setHeight(final Integer height) {
521      this.height = height;
522    }
523
524    /**
525     * The width of the thumbnail
526     */
527    @java.lang.SuppressWarnings("all")
528    public Integer getWidth() {
529      return this.width;
530    }
531
532    /**
533     * The width of the thumbnail
534     */
535    @java.lang.SuppressWarnings("all")
536    public void setWidth(final Integer width) {
537      this.width = width;
538    }
539
540    /**
541     * The scale of the thumbnail
542     */
543    @java.lang.SuppressWarnings("all")
544    public Float getScale() {
545      return this.scale;
546    }
547
548    /**
549     * The scale of the thumbnail
550     */
551    @java.lang.SuppressWarnings("all")
552    public void setScale(final Float scale) {
553      this.scale = scale;
554    }
555
556    /**
557     * The uri of the thumbnail
558     */
559    @java.lang.SuppressWarnings("all")
560    public String getUri() {
561      return this.uri;
562    }
563
564    /**
565     * The uri of the thumbnail
566     */
567    @java.lang.SuppressWarnings("all")
568    public void setUri(final String uri) {
569      this.uri = uri;
570    }
571
572    /**
573     * Whether this is the preferred thumbnail for the video
574     */
575    @java.lang.SuppressWarnings("all")
576    public Boolean getIsPreferred() {
577      return this.isPreferred;
578    }
579
580    /**
581     * Whether this is the preferred thumbnail for the video
582     */
583    @java.lang.SuppressWarnings("all")
584    public void setIsPreferred(final Boolean isPreferred) {
585      this.isPreferred = isPreferred;
586    }
587  }
588
589
590  /**
591   * Represents the <a href="https://developers.facebook.com/docs/graph-api/reference/video-format/">Video Format Graph
592   * API type</a>.
593   */
594  public static class VideoFormat extends AbstractFacebookType {
595    private static final long serialVersionUID = 1L;
596    /**
597     * HTML to embed the video in this format.
598     * 
599     */
600    @Facebook("embed_html")
601    private String embedHtml;
602    /**
603     * The filter applied to this video format.
604     * 
605     */
606    @Facebook
607    private String filter;
608    /**
609     * The thumbnail for the video in this format.
610     * 
611     */
612    @Facebook
613    private String picture;
614    /**
615     * The width of the video in this format.
616     * 
617     */
618    @Facebook
619    private Integer width;
620    /**
621     * The height of the video in this format.
622     * 
623     */
624    @Facebook
625    private Integer height;
626
627    /**
628     * HTML to embed the video in this format.
629     * 
630     * @return HTML to embed the video in this format.
631     */
632    @java.lang.SuppressWarnings("all")
633    public String getEmbedHtml() {
634      return this.embedHtml;
635    }
636
637    /**
638     * HTML to embed the video in this format.
639     * 
640     */
641    @java.lang.SuppressWarnings("all")
642    public void setEmbedHtml(final String embedHtml) {
643      this.embedHtml = embedHtml;
644    }
645
646    /**
647     * The filter applied to this video format.
648     * 
649     * @return The filter applied to this video format.
650     */
651    @java.lang.SuppressWarnings("all")
652    public String getFilter() {
653      return this.filter;
654    }
655
656    /**
657     * The filter applied to this video format.
658     * 
659     */
660    @java.lang.SuppressWarnings("all")
661    public void setFilter(final String filter) {
662      this.filter = filter;
663    }
664
665    /**
666     * The thumbnail for the video in this format.
667     * 
668     * @return The thumbnail for the video in this format.
669     */
670    @java.lang.SuppressWarnings("all")
671    public String getPicture() {
672      return this.picture;
673    }
674
675    /**
676     * The thumbnail for the video in this format.
677     * 
678     */
679    @java.lang.SuppressWarnings("all")
680    public void setPicture(final String picture) {
681      this.picture = picture;
682    }
683
684    /**
685     * The width of the video in this format.
686     * 
687     * @return The width of the video in this format.
688     */
689    @java.lang.SuppressWarnings("all")
690    public Integer getWidth() {
691      return this.width;
692    }
693
694    /**
695     * The width of the video in this format.
696     * 
697     */
698    @java.lang.SuppressWarnings("all")
699    public void setWidth(final Integer width) {
700      this.width = width;
701    }
702
703    /**
704     * The height of the video in this format.
705     * 
706     * @return The height of the video in this format.
707     */
708    @java.lang.SuppressWarnings("all")
709    public Integer getHeight() {
710      return this.height;
711    }
712
713    /**
714     * The height of the video in this format.
715     * 
716     */
717    @java.lang.SuppressWarnings("all")
718    public void setHeight(final Integer height) {
719      this.height = height;
720    }
721  }
722
723
724  /**
725   * Represents the <a href="https://developers.facebook.com/docs/graph-api/reference/video-status/">Video Status Graph
726   * API type</a>.
727   */
728  public static class VideoStatus extends AbstractFacebookType {
729    private static final long serialVersionUID = 1L;
730    /**
731     * Status of a video.
732     * 
733     * Either "ready" (uploaded, encoded, thumbnails extracted), "processing" (not ready yet) or "error" (processing
734     * failed).
735     * 
736     * @return Status of a video
737     */
738    @Facebook("video_status")
739    private String videoStatus;
740    /**
741     * Video processing progress in percent [int 0 to 100].
742     * 
743     * @return Video processing progress in percent [int 0 to 100].
744     */
745    @Facebook("processing_progress")
746    private Integer processingProgress;
747
748    @java.lang.SuppressWarnings("all")
749    public String getVideoStatus() {
750      return this.videoStatus;
751    }
752
753    @java.lang.SuppressWarnings("all")
754    public void setVideoStatus(final String videoStatus) {
755      this.videoStatus = videoStatus;
756    }
757
758    @java.lang.SuppressWarnings("all")
759    public Integer getProcessingProgress() {
760      return this.processingProgress;
761    }
762
763    @java.lang.SuppressWarnings("all")
764    public void setProcessingProgress(final Integer processingProgress) {
765      this.processingProgress = processingProgress;
766    }
767  }
768
769  /**
770   * An object containing the name and ID of the user who posted the video.
771   * 
772   * @return An object containing the name and ID of the user who posted the video.
773   */
774  @java.lang.SuppressWarnings("all")
775  public From getFrom() {
776    return this.from;
777  }
778
779  /**
780   * An object containing the name and ID of the user who posted the video.
781   * 
782   */
783  @java.lang.SuppressWarnings("all")
784  public void setFrom(final From from) {
785    this.from = from;
786  }
787
788  /**
789   * The video title / caption.
790   * 
791   * @return The video title / caption.
792   * @deprecated FB seems to have removed this field.
793   */
794  @java.lang.Deprecated
795  @Override
796  @java.lang.SuppressWarnings("all")
797  public String getMessage() {
798    return this.message;
799  }
800
801  /**
802   * The video title / caption.
803   * 
804   * @deprecated FB seems to have removed this field.
805   */
806  @java.lang.Deprecated
807  @java.lang.SuppressWarnings("all")
808  public void setMessage(final String message) {
809    this.message = message;
810  }
811
812  /**
813   * The comments for this video.
814   *
815   * @return The comments for this video.
816   */
817  @Override
818  @java.lang.SuppressWarnings("all")
819  public Comments getComments() {
820    return this.comments;
821  }
822
823  /**
824   * The comments for this video.
825   */
826  @java.lang.SuppressWarnings("all")
827  public void setComments(final Comments comments) {
828    this.comments = comments;
829  }
830
831  /**
832   * The long-form HTML description of the video.
833   * 
834   * @return The long-form HTML description of the video.
835   */
836  @java.lang.SuppressWarnings("all")
837  public String getDescription() {
838    return this.description;
839  }
840
841  /**
842   * The long-form HTML description of the video.
843   * 
844   */
845  @java.lang.SuppressWarnings("all")
846  public void setDescription(final String description) {
847    this.description = description;
848  }
849
850  /**
851   * URL to the permalink page of the video
852   *
853   * @return URL to the permalink page of the video
854   */
855  @java.lang.SuppressWarnings("all")
856  public String getPermalinkUrl() {
857    return this.permalinkUrl;
858  }
859
860  /**
861   * URL to the permalink page of the video
862   */
863  @java.lang.SuppressWarnings("all")
864  public void setPermalinkUrl(final String permalinkUrl) {
865    this.permalinkUrl = permalinkUrl;
866  }
867
868  /**
869   * The video title or caption
870   *
871   * @return the video title or caption
872   */
873  @GraphAPI(since = "2.5")
874  @java.lang.SuppressWarnings("all")
875  public String getTitle() {
876    return this.title;
877  }
878
879  /**
880   * The video title or caption
881   */
882  @java.lang.SuppressWarnings("all")
883  public void setTitle(final String title) {
884    this.title = title;
885  }
886
887  @java.lang.SuppressWarnings("all")
888  public Boolean getIsCrosspostVideo() {
889    return this.isCrosspostVideo;
890  }
891
892  @java.lang.SuppressWarnings("all")
893  public void setIsCrosspostVideo(final Boolean isCrosspostVideo) {
894    this.isCrosspostVideo = isCrosspostVideo;
895  }
896
897  /**
898   * Specifies if the video is eligible for crossposting.
899   *
900   * @return Specifies if the video is eligible for crossposting
901   */
902  @GraphAPI(since = "2.6")
903  @java.lang.SuppressWarnings("all")
904  public Boolean getIsCrosspostingEligible() {
905    return this.isCrosspostingEligible;
906  }
907
908  /**
909   * Specifies if the video is eligible for crossposting.
910   */
911  @java.lang.SuppressWarnings("all")
912  public void setIsCrosspostingEligible(final Boolean isCrosspostingEligible) {
913    this.isCrosspostingEligible = isCrosspostingEligible;
914  }
915
916  /**
917   * Whether this video is episode or not.
918   *
919   * @return Whether this video is episode or not.
920   */
921  @java.lang.SuppressWarnings("all")
922  public Boolean getIsEpisode() {
923    return this.isEpisode;
924  }
925
926  /**
927   * Whether this video is episode or not.
928   */
929  @java.lang.SuppressWarnings("all")
930  public void setIsEpisode(final Boolean isEpisode) {
931    this.isEpisode = isEpisode;
932  }
933
934  /**
935   * Whether the video is eligible to be promoted on Instagram
936   *
937   * @return Whether the video is eligible to be promoted on Instagram
938   */
939  @java.lang.SuppressWarnings("all")
940  public Boolean getIsInstagramEligible() {
941    return this.isInstagramEligible;
942  }
943
944  /**
945   * Whether the video is eligible to be promoted on Instagram
946   */
947  @java.lang.SuppressWarnings("all")
948  public void setIsInstagramEligible(final Boolean isInstagramEligible) {
949    this.isInstagramEligible = isInstagramEligible;
950  }
951
952  /**
953   * Whether the video is exclusively used for copyright monitoring.
954   *
955   * @return Whether the video is exclusively used for copyright monitoring
956   */
957  @java.lang.SuppressWarnings("all")
958  public Boolean getIsReferenceOnly() {
959    return this.isReferenceOnly;
960  }
961
962  /**
963   * Whether the video is exclusively used for copyright monitoring.
964   */
965  @java.lang.SuppressWarnings("all")
966  public void setIsReferenceOnly(final Boolean isReferenceOnly) {
967    this.isReferenceOnly = isReferenceOnly;
968  }
969
970  /**
971   * The music video copyright of this video
972   *
973   * because of a missing object description in the graph reference, we use a Map here
974   */
975  @java.lang.SuppressWarnings("all")
976  public MusicVideoCopyright getMusicVideoCopyright() {
977    return this.musicVideoCopyright;
978  }
979
980  /**
981   * The music video copyright of this video
982   *
983   * because of a missing object description in the graph reference, we use a Map here
984   */
985  @java.lang.SuppressWarnings("all")
986  public void setMusicVideoCopyright(final MusicVideoCopyright musicVideoCopyright) {
987    this.musicVideoCopyright = musicVideoCopyright;
988  }
989
990  /**
991   * The public view count of the video post, not aggregated with any other crossposts of the video.
992   */
993  @java.lang.SuppressWarnings("all")
994  public Integer getPostViews() {
995    return this.postViews;
996  }
997
998  /**
999   * The public view count of the video post, not aggregated with any other crossposts of the video.
1000   */
1001  @java.lang.SuppressWarnings("all")
1002  public void setPostViews(final Integer postViews) {
1003    this.postViews = postViews;
1004  }
1005
1006  /**
1007   * The reactions for this video.
1008   *
1009   * @return The reactions for this video.
1010   */
1011  @java.lang.SuppressWarnings("all")
1012  public Reactions getReactions() {
1013    return this.reactions;
1014  }
1015
1016  /**
1017   * The reactions for this video.
1018   */
1019  @java.lang.SuppressWarnings("all")
1020  public void setReactions(final Reactions reactions) {
1021    this.reactions = reactions;
1022  }
1023
1024  /**
1025   * Whether the video is embeddable.
1026   *
1027   * @return Whether the video is embeddable.
1028   */
1029  @GraphAPI(since = "2.4")
1030  @java.lang.SuppressWarnings("all")
1031  public Boolean getEmbeddable() {
1032    return this.embeddable;
1033  }
1034
1035  /**
1036   * Whether the video is embeddable.
1037   */
1038  @java.lang.SuppressWarnings("all")
1039  public void setEmbeddable(final Boolean embeddable) {
1040    this.embeddable = embeddable;
1041  }
1042
1043  /**
1044   * If this object has a place, the event associated with the place.
1045   * 
1046   * @return the event associated with the place
1047   */
1048  @GraphAPI(since = "2.3")
1049  @java.lang.SuppressWarnings("all")
1050  public Event getEvent() {
1051    return this.event;
1052  }
1053
1054  /**
1055   * If this object has a place, the event associated with the place.
1056   * 
1057   */
1058  @java.lang.SuppressWarnings("all")
1059  public void setEvent(final Event event) {
1060    this.event = event;
1061  }
1062
1063  /**
1064   * Whether or not the video is highlighted in Video Channel.
1065   *
1066   * @return Whether or not the video is highlighted in Video Channel.
1067   */
1068  @GraphAPI(since = "2.7")
1069  @java.lang.SuppressWarnings("all")
1070  public String getFeedType() {
1071    return this.feedType;
1072  }
1073
1074  /**
1075   * Whether or not the video is highlighted in Video Channel.
1076   */
1077  @java.lang.SuppressWarnings("all")
1078  public void setFeedType(final String feedType) {
1079    this.feedType = feedType;
1080  }
1081
1082  /**
1083   * The publishers asset management code for this video.
1084   */
1085  @java.lang.SuppressWarnings("all")
1086  public String getUniversalVideoId() {
1087    return this.universalVideoId;
1088  }
1089
1090  /**
1091   * The publishers asset management code for this video.
1092   */
1093  @java.lang.SuppressWarnings("all")
1094  public void setUniversalVideoId(final String universalVideoId) {
1095    this.universalVideoId = universalVideoId;
1096  }
1097
1098  /**
1099   * The public view count of the video.
1100   */
1101  @java.lang.SuppressWarnings("all")
1102  public Integer getViews() {
1103    return this.views;
1104  }
1105
1106  /**
1107   * The public view count of the video.
1108   */
1109  @java.lang.SuppressWarnings("all")
1110  public void setViews(final Integer views) {
1111    this.views = views;
1112  }
1113
1114  /**
1115   * People who like this.
1116   * 
1117   * you need to add the field to the fields query parameter to get the likes list otherwise null is returned
1118   * 
1119   * @return People who like this
1120   */
1121  @java.lang.SuppressWarnings("all")
1122  public Likes getLikes() {
1123    return this.likes;
1124  }
1125
1126  /**
1127   * People who like this.
1128   * 
1129   * you need to add the field to the fields query parameter to get the likes list otherwise null is returned
1130   * 
1131   */
1132  @java.lang.SuppressWarnings("all")
1133  public void setLikes(final Likes likes) {
1134    this.likes = likes;
1135  }
1136
1137  /**
1138   * Location associated with the video, if any.
1139   * 
1140   * @return Location associated with the video, if any.
1141   */
1142  @java.lang.SuppressWarnings("all")
1143  public Place getPlace() {
1144    return this.place;
1145  }
1146
1147  /**
1148   * Location associated with the video, if any.
1149   * 
1150   */
1151  @java.lang.SuppressWarnings("all")
1152  public void setPlace(final Place place) {
1153    this.place = place;
1154  }
1155
1156  /**
1157   * The content category of this video.
1158   * 
1159   * @return The content category of this video.
1160   */
1161  @GraphAPI(since = "2.4")
1162  @java.lang.SuppressWarnings("all")
1163  public String getContentCategory() {
1164    return this.contentCategory;
1165  }
1166
1167  /**
1168   * The content category of this video.
1169   * 
1170   */
1171  @java.lang.SuppressWarnings("all")
1172  public void setContentCategory(final String contentCategory) {
1173    this.contentCategory = contentCategory;
1174  }
1175
1176  /**
1177   * A URL for the thumbnail picture of the video.
1178   * 
1179   * @return A URL for the thumbnail picture of the video.
1180   */
1181  @java.lang.SuppressWarnings("all")
1182  public String getPicture() {
1183    return this.picture;
1184  }
1185
1186  /**
1187   * A URL for the thumbnail picture of the video.
1188   * 
1189   */
1190  @java.lang.SuppressWarnings("all")
1191  public void setPicture(final String picture) {
1192    this.picture = picture;
1193  }
1194
1195  /**
1196   * An icon URL which represents the video.
1197   * 
1198   * @return An icon URL which represents the video.
1199   */
1200  @java.lang.SuppressWarnings("all")
1201  public String getIcon() {
1202    return this.icon;
1203  }
1204
1205  /**
1206   * An icon URL which represents the video.
1207   * 
1208   */
1209  @java.lang.SuppressWarnings("all")
1210  public void setIcon(final String icon) {
1211    this.icon = icon;
1212  }
1213
1214  /**
1215   * A URL to the raw, playable video file.
1216   * 
1217   * @return A URL to the raw, playable video file.
1218   * @since 1.6.5
1219   */
1220  @java.lang.SuppressWarnings("all")
1221  public String getSource() {
1222    return this.source;
1223  }
1224
1225  /**
1226   * A URL to the raw, playable video file.
1227   * 
1228   * @since 1.6.5
1229   */
1230  @java.lang.SuppressWarnings("all")
1231  public void setSource(final String source) {
1232    this.source = source;
1233  }
1234
1235  /**
1236   * HTML that may be used to embed the video on another website.
1237   * 
1238   * @return HTML that may be used to embed the video on another website.
1239   */
1240  @java.lang.SuppressWarnings("all")
1241  public String getEmbedHtml() {
1242    return this.embedHtml;
1243  }
1244
1245  /**
1246   * HTML that may be used to embed the video on another website.
1247   * 
1248   */
1249  @java.lang.SuppressWarnings("all")
1250  public void setEmbedHtml(final String embedHtml) {
1251    this.embedHtml = embedHtml;
1252  }
1253
1254  /**
1255   * The length of the video, in seconds.
1256   * 
1257   * @return The length of the video, in seconds.
1258   */
1259  @java.lang.SuppressWarnings("all")
1260  public Double getLength() {
1261    return this.length;
1262  }
1263
1264  /**
1265   * The length of the video, in seconds.
1266   * 
1267   */
1268  @java.lang.SuppressWarnings("all")
1269  public void setLength(final Double length) {
1270    this.length = length;
1271  }
1272
1273  /**
1274   * Number of unique people who watched the video broadcast when it was live.
1275   *
1276   * @return Number of unique people who watched the video broadcast when it was live.
1277   */
1278  @GraphAPI(since = "2.6")
1279  @java.lang.SuppressWarnings("all")
1280  public Integer getLiveAudienceCount() {
1281    return this.liveAudienceCount;
1282  }
1283
1284  /**
1285   * Number of unique people who watched the video broadcast when it was live.
1286   */
1287  @java.lang.SuppressWarnings("all")
1288  public void setLiveAudienceCount(final Integer liveAudienceCount) {
1289    this.liveAudienceCount = liveAudienceCount;
1290  }
1291
1292  /**
1293   * The live status of the video.
1294   *
1295   * Possible values contain LIVE, LIVE_STOPPED, VOD
1296   *
1297   * @return The live status of the video
1298   */
1299  @GraphAPI(since = "2.6")
1300  @java.lang.SuppressWarnings("all")
1301  public String getLiveStatus() {
1302    return this.liveStatus;
1303  }
1304
1305  /**
1306   * The live status of the video.
1307   *
1308   * Possible values contain LIVE, LIVE_STOPPED, VOD
1309   */
1310  @java.lang.SuppressWarnings("all")
1311  public void setLiveStatus(final String liveStatus) {
1312    this.liveStatus = liveStatus;
1313  }
1314
1315  /**
1316   * Privacy setting for the video.
1317   * 
1318   * @return Privacy setting for the video.
1319   */
1320  @java.lang.SuppressWarnings("all")
1321  public Privacy getPrivacy() {
1322    return this.privacy;
1323  }
1324
1325  /**
1326   * Privacy setting for the video.
1327   * 
1328   */
1329  @java.lang.SuppressWarnings("all")
1330  public void setPrivacy(final Privacy privacy) {
1331    this.privacy = privacy;
1332  }
1333
1334  /**
1335   * The status of the Premiere Watch Party, if any
1336   */
1337  @java.lang.SuppressWarnings("all")
1338  public String getPremiereLivingRoomStatus() {
1339    return this.premiereLivingRoomStatus;
1340  }
1341
1342  /**
1343   * The status of the Premiere Watch Party, if any
1344   */
1345  @java.lang.SuppressWarnings("all")
1346  public void setPremiereLivingRoomStatus(final String premiereLivingRoomStatus) {
1347    this.premiereLivingRoomStatus = premiereLivingRoomStatus;
1348  }
1349
1350  /**
1351   * Object describing the status attributes of a video.
1352   * 
1353   * @return Object describing the status attributes of a video.
1354   */
1355  @java.lang.SuppressWarnings("all")
1356  public VideoStatus getStatus() {
1357    return this.status;
1358  }
1359
1360  /**
1361   * Object describing the status attributes of a video.
1362   * 
1363   */
1364  @java.lang.SuppressWarnings("all")
1365  public void setStatus(final VideoStatus status) {
1366    this.status = status;
1367  }
1368
1369  /**
1370   * Whether a post about this video is published.
1371   * 
1372   * This field is only accessible in Graph API 2.3 or later.
1373   *
1374   * @return whether a post about this video is published.
1375   * @since 1.10.0
1376   */
1377  @GraphAPI(since = "2.3")
1378  @java.lang.SuppressWarnings("all")
1379  public Boolean getPublished() {
1380    return this.published;
1381  }
1382
1383  /**
1384   * Whether a post about this video is published.
1385   * 
1386   * This field is only accessible in Graph API 2.3 or later.
1387   *
1388   * @since 1.10.0
1389   */
1390  @java.lang.SuppressWarnings("all")
1391  public void setPublished(final Boolean published) {
1392    this.published = published;
1393  }
1394
1395  /**
1396   * Back dated time
1397   *
1398   * @since 1.10.0
1399   */
1400  @java.lang.SuppressWarnings("all")
1401  public Date getBackdatedTime() {
1402    return this.backdatedTime;
1403  }
1404
1405  /**
1406   * Back dated time
1407   *
1408   * @since 1.10.0
1409   */
1410  @java.lang.SuppressWarnings("all")
1411  public void setBackdatedTime(final Date backdatedTime) {
1412    this.backdatedTime = backdatedTime;
1413  }
1414
1415  /**
1416   * String that represents the back dated time granularity
1417   *
1418   * @since 1.10.0
1419   */
1420  @java.lang.SuppressWarnings("all")
1421  public String getBackdatedTimeGranularity() {
1422    return this.backdatedTimeGranularity;
1423  }
1424
1425  /**
1426   * String that represents the back dated time granularity
1427   *
1428   * @since 1.10.0
1429   */
1430  @java.lang.SuppressWarnings("all")
1431  public void setBackdatedTimeGranularity(final String backdatedTimeGranularity) {
1432    this.backdatedTimeGranularity = backdatedTimeGranularity;
1433  }
1434
1435  /**
1436   * The time the video was initially published.
1437   * 
1438   * @return The time the video was initially published.
1439   */
1440  @Override
1441  @java.lang.SuppressWarnings("all")
1442  public Date getCreatedTime() {
1443    return this.createdTime;
1444  }
1445
1446  /**
1447   * The time the video was initially published.
1448   * 
1449   */
1450  @java.lang.SuppressWarnings("all")
1451  public void setCreatedTime(final Date createdTime) {
1452    this.createdTime = createdTime;
1453  }
1454
1455  /**
1456   * The last time the video or its caption were updated.
1457   * 
1458   * @return The last time the video or its caption were updated.
1459   */
1460  @java.lang.SuppressWarnings("all")
1461  public Date getUpdatedTime() {
1462    return this.updatedTime;
1463  }
1464
1465  /**
1466   * The last time the video or its caption were updated.
1467   * 
1468   */
1469  @java.lang.SuppressWarnings("all")
1470  public void setUpdatedTime(final Date updatedTime) {
1471    this.updatedTime = updatedTime;
1472  }
1473
1474  /**
1475   * The time that the video is scheduled to be published.
1476   * 
1477   * This field is only accessible in Graph API 2.3 or later.
1478   * 
1479   * @return The time that the video is scheduled to be published.
1480   * @since 1.10.0
1481   */
1482  @GraphAPI(since = "2.3")
1483  @java.lang.SuppressWarnings("all")
1484  public Date getScheduledPublishTime() {
1485    return this.scheduledPublishTime;
1486  }
1487
1488  /**
1489   * The time that the video is scheduled to be published.
1490   * 
1491   * This field is only accessible in Graph API 2.3 or later.
1492   * 
1493   * @since 1.10.0
1494   */
1495  @java.lang.SuppressWarnings("all")
1496  public void setScheduledPublishTime(final Date scheduledPublishTime) {
1497    this.scheduledPublishTime = scheduledPublishTime;
1498  }
1499}