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