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