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