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