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