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