# Copyright 2015 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. require 'date' require 'google/apis/core/base_service' require 'google/apis/core/json_representation' require 'google/apis/core/hashable' require 'google/apis/errors' module Google module Apis module YoutubeV3 # class AbuseReport include Google::Apis::Core::Hashable # # Corresponds to the JSON property `abuseTypes` # @return [Array] attr_accessor :abuse_types # # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # # Corresponds to the JSON property `relatedEntities` # @return [Array] attr_accessor :related_entities # # Corresponds to the JSON property `subject` # @return [Google::Apis::YoutubeV3::Entity] attr_accessor :subject def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @abuse_types = args[:abuse_types] if args.key?(:abuse_types) @description = args[:description] if args.key?(:description) @related_entities = args[:related_entities] if args.key?(:related_entities) @subject = args[:subject] if args.key?(:subject) end end # class AbuseType include Google::Apis::Core::Hashable # # Corresponds to the JSON property `id` # @return [String] attr_accessor :id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) end end # Rights management policy for YouTube resources. class AccessPolicy include Google::Apis::Core::Hashable # The value of allowed indicates whether the access to the policy is allowed or # denied by default. # Corresponds to the JSON property `allowed` # @return [Boolean] attr_accessor :allowed alias_method :allowed?, :allowed # A list of region codes that identify countries where the default policy do not # apply. # Corresponds to the JSON property `exception` # @return [Array] attr_accessor :exception def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @allowed = args[:allowed] if args.key?(:allowed) @exception = args[:exception] if args.key?(:exception) end end # An *activity* resource contains information about an action that a particular # channel, or user, has taken on YouTube.The actions reported in activity feeds # include rating a video, sharing a video, marking a video as a favorite, # commenting on a video, uploading a video, and so forth. Each activity resource # identifies the type of action, the channel associated with the action, and the # resource(s) associated with the action, such as the video that was rated or # uploaded. class Activity include Google::Apis::Core::Hashable # Details about the content of an activity: the video that was shared, the # channel that was subscribed to, etc. # Corresponds to the JSON property `contentDetails` # @return [Google::Apis::YoutubeV3::ActivityContentDetails] attr_accessor :content_details # Etag of this resource # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # The ID that YouTube uses to uniquely identify the activity. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # Identifies what kind of resource this is. Value: the fixed string "youtube# # activity". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Basic details about an activity, including title, description, thumbnails, # activity type and group. Next ID: 12 # Corresponds to the JSON property `snippet` # @return [Google::Apis::YoutubeV3::ActivitySnippet] attr_accessor :snippet def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @content_details = args[:content_details] if args.key?(:content_details) @etag = args[:etag] if args.key?(:etag) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @snippet = args[:snippet] if args.key?(:snippet) end end # Details about the content of an activity: the video that was shared, the # channel that was subscribed to, etc. class ActivityContentDetails include Google::Apis::Core::Hashable # Details about a channel bulletin post. # Corresponds to the JSON property `bulletin` # @return [Google::Apis::YoutubeV3::ActivityContentDetailsBulletin] attr_accessor :bulletin # Details about a resource which was added to a channel. # Corresponds to the JSON property `channelItem` # @return [Google::Apis::YoutubeV3::ActivityContentDetailsChannelItem] attr_accessor :channel_item # Information about a resource that received a comment. # Corresponds to the JSON property `comment` # @return [Google::Apis::YoutubeV3::ActivityContentDetailsComment] attr_accessor :comment # Information about a video that was marked as a favorite video. # Corresponds to the JSON property `favorite` # @return [Google::Apis::YoutubeV3::ActivityContentDetailsFavorite] attr_accessor :favorite # Information about a resource that received a positive (like) rating. # Corresponds to the JSON property `like` # @return [Google::Apis::YoutubeV3::ActivityContentDetailsLike] attr_accessor :like # Information about a new playlist item. # Corresponds to the JSON property `playlistItem` # @return [Google::Apis::YoutubeV3::ActivityContentDetailsPlaylistItem] attr_accessor :playlist_item # Details about a resource which is being promoted. # Corresponds to the JSON property `promotedItem` # @return [Google::Apis::YoutubeV3::ActivityContentDetailsPromotedItem] attr_accessor :promoted_item # Information that identifies the recommended resource. # Corresponds to the JSON property `recommendation` # @return [Google::Apis::YoutubeV3::ActivityContentDetailsRecommendation] attr_accessor :recommendation # Details about a social network post. # Corresponds to the JSON property `social` # @return [Google::Apis::YoutubeV3::ActivityContentDetailsSocial] attr_accessor :social # Information about a channel that a user subscribed to. # Corresponds to the JSON property `subscription` # @return [Google::Apis::YoutubeV3::ActivityContentDetailsSubscription] attr_accessor :subscription # Information about the uploaded video. # Corresponds to the JSON property `upload` # @return [Google::Apis::YoutubeV3::ActivityContentDetailsUpload] attr_accessor :upload def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @bulletin = args[:bulletin] if args.key?(:bulletin) @channel_item = args[:channel_item] if args.key?(:channel_item) @comment = args[:comment] if args.key?(:comment) @favorite = args[:favorite] if args.key?(:favorite) @like = args[:like] if args.key?(:like) @playlist_item = args[:playlist_item] if args.key?(:playlist_item) @promoted_item = args[:promoted_item] if args.key?(:promoted_item) @recommendation = args[:recommendation] if args.key?(:recommendation) @social = args[:social] if args.key?(:social) @subscription = args[:subscription] if args.key?(:subscription) @upload = args[:upload] if args.key?(:upload) end end # Details about a channel bulletin post. class ActivityContentDetailsBulletin include Google::Apis::Core::Hashable # A resource id is a generic reference that points to another YouTube resource. # Corresponds to the JSON property `resourceId` # @return [Google::Apis::YoutubeV3::ResourceId] attr_accessor :resource_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @resource_id = args[:resource_id] if args.key?(:resource_id) end end # Details about a resource which was added to a channel. class ActivityContentDetailsChannelItem include Google::Apis::Core::Hashable # A resource id is a generic reference that points to another YouTube resource. # Corresponds to the JSON property `resourceId` # @return [Google::Apis::YoutubeV3::ResourceId] attr_accessor :resource_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @resource_id = args[:resource_id] if args.key?(:resource_id) end end # Information about a resource that received a comment. class ActivityContentDetailsComment include Google::Apis::Core::Hashable # A resource id is a generic reference that points to another YouTube resource. # Corresponds to the JSON property `resourceId` # @return [Google::Apis::YoutubeV3::ResourceId] attr_accessor :resource_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @resource_id = args[:resource_id] if args.key?(:resource_id) end end # Information about a video that was marked as a favorite video. class ActivityContentDetailsFavorite include Google::Apis::Core::Hashable # A resource id is a generic reference that points to another YouTube resource. # Corresponds to the JSON property `resourceId` # @return [Google::Apis::YoutubeV3::ResourceId] attr_accessor :resource_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @resource_id = args[:resource_id] if args.key?(:resource_id) end end # Information about a resource that received a positive (like) rating. class ActivityContentDetailsLike include Google::Apis::Core::Hashable # A resource id is a generic reference that points to another YouTube resource. # Corresponds to the JSON property `resourceId` # @return [Google::Apis::YoutubeV3::ResourceId] attr_accessor :resource_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @resource_id = args[:resource_id] if args.key?(:resource_id) end end # Information about a new playlist item. class ActivityContentDetailsPlaylistItem include Google::Apis::Core::Hashable # The value that YouTube uses to uniquely identify the playlist. # Corresponds to the JSON property `playlistId` # @return [String] attr_accessor :playlist_id # ID of the item within the playlist. # Corresponds to the JSON property `playlistItemId` # @return [String] attr_accessor :playlist_item_id # A resource id is a generic reference that points to another YouTube resource. # Corresponds to the JSON property `resourceId` # @return [Google::Apis::YoutubeV3::ResourceId] attr_accessor :resource_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @playlist_id = args[:playlist_id] if args.key?(:playlist_id) @playlist_item_id = args[:playlist_item_id] if args.key?(:playlist_item_id) @resource_id = args[:resource_id] if args.key?(:resource_id) end end # Details about a resource which is being promoted. class ActivityContentDetailsPromotedItem include Google::Apis::Core::Hashable # The URL the client should fetch to request a promoted item. # Corresponds to the JSON property `adTag` # @return [String] attr_accessor :ad_tag # The URL the client should ping to indicate that the user clicked through on # this promoted item. # Corresponds to the JSON property `clickTrackingUrl` # @return [String] attr_accessor :click_tracking_url # The URL the client should ping to indicate that the user was shown this # promoted item. # Corresponds to the JSON property `creativeViewUrl` # @return [String] attr_accessor :creative_view_url # The type of call-to-action, a message to the user indicating action that can # be taken. # Corresponds to the JSON property `ctaType` # @return [String] attr_accessor :cta_type # The custom call-to-action button text. If specified, it will override the # default button text for the cta_type. # Corresponds to the JSON property `customCtaButtonText` # @return [String] attr_accessor :custom_cta_button_text # The text description to accompany the promoted item. # Corresponds to the JSON property `descriptionText` # @return [String] attr_accessor :description_text # The URL the client should direct the user to, if the user chooses to visit the # advertiser's website. # Corresponds to the JSON property `destinationUrl` # @return [String] attr_accessor :destination_url # The list of forecasting URLs. The client should ping all of these URLs when a # promoted item is not available, to indicate that a promoted item could have # been shown. # Corresponds to the JSON property `forecastingUrl` # @return [Array] attr_accessor :forecasting_url # The list of impression URLs. The client should ping all of these URLs to # indicate that the user was shown this promoted item. # Corresponds to the JSON property `impressionUrl` # @return [Array] attr_accessor :impression_url # The ID that YouTube uses to uniquely identify the promoted video. # Corresponds to the JSON property `videoId` # @return [String] attr_accessor :video_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ad_tag = args[:ad_tag] if args.key?(:ad_tag) @click_tracking_url = args[:click_tracking_url] if args.key?(:click_tracking_url) @creative_view_url = args[:creative_view_url] if args.key?(:creative_view_url) @cta_type = args[:cta_type] if args.key?(:cta_type) @custom_cta_button_text = args[:custom_cta_button_text] if args.key?(:custom_cta_button_text) @description_text = args[:description_text] if args.key?(:description_text) @destination_url = args[:destination_url] if args.key?(:destination_url) @forecasting_url = args[:forecasting_url] if args.key?(:forecasting_url) @impression_url = args[:impression_url] if args.key?(:impression_url) @video_id = args[:video_id] if args.key?(:video_id) end end # Information that identifies the recommended resource. class ActivityContentDetailsRecommendation include Google::Apis::Core::Hashable # The reason that the resource is recommended to the user. # Corresponds to the JSON property `reason` # @return [String] attr_accessor :reason # A resource id is a generic reference that points to another YouTube resource. # Corresponds to the JSON property `resourceId` # @return [Google::Apis::YoutubeV3::ResourceId] attr_accessor :resource_id # A resource id is a generic reference that points to another YouTube resource. # Corresponds to the JSON property `seedResourceId` # @return [Google::Apis::YoutubeV3::ResourceId] attr_accessor :seed_resource_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @reason = args[:reason] if args.key?(:reason) @resource_id = args[:resource_id] if args.key?(:resource_id) @seed_resource_id = args[:seed_resource_id] if args.key?(:seed_resource_id) end end # Details about a social network post. class ActivityContentDetailsSocial include Google::Apis::Core::Hashable # The author of the social network post. # Corresponds to the JSON property `author` # @return [String] attr_accessor :author # An image of the post's author. # Corresponds to the JSON property `imageUrl` # @return [String] attr_accessor :image_url # The URL of the social network post. # Corresponds to the JSON property `referenceUrl` # @return [String] attr_accessor :reference_url # A resource id is a generic reference that points to another YouTube resource. # Corresponds to the JSON property `resourceId` # @return [Google::Apis::YoutubeV3::ResourceId] attr_accessor :resource_id # The name of the social network. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @author = args[:author] if args.key?(:author) @image_url = args[:image_url] if args.key?(:image_url) @reference_url = args[:reference_url] if args.key?(:reference_url) @resource_id = args[:resource_id] if args.key?(:resource_id) @type = args[:type] if args.key?(:type) end end # Information about a channel that a user subscribed to. class ActivityContentDetailsSubscription include Google::Apis::Core::Hashable # A resource id is a generic reference that points to another YouTube resource. # Corresponds to the JSON property `resourceId` # @return [Google::Apis::YoutubeV3::ResourceId] attr_accessor :resource_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @resource_id = args[:resource_id] if args.key?(:resource_id) end end # Information about the uploaded video. class ActivityContentDetailsUpload include Google::Apis::Core::Hashable # The ID that YouTube uses to uniquely identify the uploaded video. # Corresponds to the JSON property `videoId` # @return [String] attr_accessor :video_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @video_id = args[:video_id] if args.key?(:video_id) end end # class ListActivitiesResponse include Google::Apis::Core::Hashable # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # Serialized EventId of the request which produced this response. # Corresponds to the JSON property `eventId` # @return [String] attr_accessor :event_id # # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Identifies what kind of resource this is. Value: the fixed string "youtube# # activityListResponse". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The token that can be used as the value of the pageToken parameter to retrieve # the next page in the result set. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # Paging details for lists of resources, including total number of items # available and number of resources returned in a single page. # Corresponds to the JSON property `pageInfo` # @return [Google::Apis::YoutubeV3::PageInfo] attr_accessor :page_info # The token that can be used as the value of the pageToken parameter to retrieve # the previous page in the result set. # Corresponds to the JSON property `prevPageToken` # @return [String] attr_accessor :prev_page_token # Stub token pagination template to suppress results. # Corresponds to the JSON property `tokenPagination` # @return [Google::Apis::YoutubeV3::TokenPagination] attr_accessor :token_pagination # The visitorId identifies the visitor. # Corresponds to the JSON property `visitorId` # @return [String] attr_accessor :visitor_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @event_id = args[:event_id] if args.key?(:event_id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @page_info = args[:page_info] if args.key?(:page_info) @prev_page_token = args[:prev_page_token] if args.key?(:prev_page_token) @token_pagination = args[:token_pagination] if args.key?(:token_pagination) @visitor_id = args[:visitor_id] if args.key?(:visitor_id) end end # Basic details about an activity, including title, description, thumbnails, # activity type and group. Next ID: 12 class ActivitySnippet include Google::Apis::Core::Hashable # The ID that YouTube uses to uniquely identify the channel associated with the # activity. # Corresponds to the JSON property `channelId` # @return [String] attr_accessor :channel_id # Channel title for the channel responsible for this activity # Corresponds to the JSON property `channelTitle` # @return [String] attr_accessor :channel_title # The description of the resource primarily associated with the activity. @ # mutable youtube.activities.insert # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # The group ID associated with the activity. A group ID identifies user events # that are associated with the same user and resource. For example, if a user # rates a video and marks the same video as a favorite, the entries for those # events would have the same group ID in the user's activity feed. In your user # interface, you can avoid repetition by grouping events with the same groupId # value. # Corresponds to the JSON property `groupId` # @return [String] attr_accessor :group_id # The date and time that the video was uploaded. The value is specified in ISO # 8601 format. # Corresponds to the JSON property `publishedAt` # @return [String] attr_accessor :published_at # Internal representation of thumbnails for a YouTube resource. # Corresponds to the JSON property `thumbnails` # @return [Google::Apis::YoutubeV3::ThumbnailDetails] attr_accessor :thumbnails # The title of the resource primarily associated with the activity. # Corresponds to the JSON property `title` # @return [String] attr_accessor :title # The type of activity that the resource describes. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @channel_id = args[:channel_id] if args.key?(:channel_id) @channel_title = args[:channel_title] if args.key?(:channel_title) @description = args[:description] if args.key?(:description) @group_id = args[:group_id] if args.key?(:group_id) @published_at = args[:published_at] if args.key?(:published_at) @thumbnails = args[:thumbnails] if args.key?(:thumbnails) @title = args[:title] if args.key?(:title) @type = args[:type] if args.key?(:type) end end # A *caption* resource represents a YouTube caption track. A caption track is # associated with exactly one YouTube video. class Caption include Google::Apis::Core::Hashable # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # The ID that YouTube uses to uniquely identify the caption track. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # Identifies what kind of resource this is. Value: the fixed string "youtube# # caption". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Basic details about a caption track, such as its language and name. # Corresponds to the JSON property `snippet` # @return [Google::Apis::YoutubeV3::CaptionSnippet] attr_accessor :snippet def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @snippet = args[:snippet] if args.key?(:snippet) end end # class ListCaptionsResponse include Google::Apis::Core::Hashable # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # Serialized EventId of the request which produced this response. # Corresponds to the JSON property `eventId` # @return [String] attr_accessor :event_id # A list of captions that match the request criteria. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Identifies what kind of resource this is. Value: the fixed string "youtube# # captionListResponse". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The visitorId identifies the visitor. # Corresponds to the JSON property `visitorId` # @return [String] attr_accessor :visitor_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @event_id = args[:event_id] if args.key?(:event_id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @visitor_id = args[:visitor_id] if args.key?(:visitor_id) end end # Basic details about a caption track, such as its language and name. class CaptionSnippet include Google::Apis::Core::Hashable # The type of audio track associated with the caption track. # Corresponds to the JSON property `audioTrackType` # @return [String] attr_accessor :audio_track_type # The reason that YouTube failed to process the caption track. This property is # only present if the state property's value is failed. # Corresponds to the JSON property `failureReason` # @return [String] attr_accessor :failure_reason # Indicates whether YouTube synchronized the caption track to the audio track in # the video. The value will be true if a sync was explicitly requested when the # caption track was uploaded. For example, when calling the captions.insert or # captions.update methods, you can set the sync parameter to true to instruct # YouTube to sync the uploaded track to the video. If the value is false, # YouTube uses the time codes in the uploaded caption track to determine when to # display captions. # Corresponds to the JSON property `isAutoSynced` # @return [Boolean] attr_accessor :is_auto_synced alias_method :is_auto_synced?, :is_auto_synced # Indicates whether the track contains closed captions for the deaf and hard of # hearing. The default value is false. # Corresponds to the JSON property `isCC` # @return [Boolean] attr_accessor :is_cc alias_method :is_cc?, :is_cc # Indicates whether the caption track is a draft. If the value is true, then the # track is not publicly visible. The default value is false. @mutable youtube. # captions.insert youtube.captions.update # Corresponds to the JSON property `isDraft` # @return [Boolean] attr_accessor :is_draft alias_method :is_draft?, :is_draft # Indicates whether caption track is formatted for "easy reader," meaning it is # at a third-grade level for language learners. The default value is false. # Corresponds to the JSON property `isEasyReader` # @return [Boolean] attr_accessor :is_easy_reader alias_method :is_easy_reader?, :is_easy_reader # Indicates whether the caption track uses large text for the vision-impaired. # The default value is false. # Corresponds to the JSON property `isLarge` # @return [Boolean] attr_accessor :is_large alias_method :is_large?, :is_large # The language of the caption track. The property value is a BCP-47 language tag. # Corresponds to the JSON property `language` # @return [String] attr_accessor :language # The date and time when the caption track was last updated. The value is # specified in ISO 8601 format. # Corresponds to the JSON property `lastUpdated` # @return [String] attr_accessor :last_updated # The name of the caption track. The name is intended to be visible to the user # as an option during playback. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The caption track's status. # Corresponds to the JSON property `status` # @return [String] attr_accessor :status # The caption track's type. # Corresponds to the JSON property `trackKind` # @return [String] attr_accessor :track_kind # The ID that YouTube uses to uniquely identify the video associated with the # caption track. @mutable youtube.captions.insert # Corresponds to the JSON property `videoId` # @return [String] attr_accessor :video_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @audio_track_type = args[:audio_track_type] if args.key?(:audio_track_type) @failure_reason = args[:failure_reason] if args.key?(:failure_reason) @is_auto_synced = args[:is_auto_synced] if args.key?(:is_auto_synced) @is_cc = args[:is_cc] if args.key?(:is_cc) @is_draft = args[:is_draft] if args.key?(:is_draft) @is_easy_reader = args[:is_easy_reader] if args.key?(:is_easy_reader) @is_large = args[:is_large] if args.key?(:is_large) @language = args[:language] if args.key?(:language) @last_updated = args[:last_updated] if args.key?(:last_updated) @name = args[:name] if args.key?(:name) @status = args[:status] if args.key?(:status) @track_kind = args[:track_kind] if args.key?(:track_kind) @video_id = args[:video_id] if args.key?(:video_id) end end # Brief description of the live stream cdn settings. class CdnSettings include Google::Apis::Core::Hashable # The format of the video stream that you are sending to Youtube. # Corresponds to the JSON property `format` # @return [String] attr_accessor :format # The frame rate of the inbound video data. # Corresponds to the JSON property `frameRate` # @return [String] attr_accessor :frame_rate # Describes information necessary for ingesting an RTMP or an HTTP stream. # Corresponds to the JSON property `ingestionInfo` # @return [Google::Apis::YoutubeV3::IngestionInfo] attr_accessor :ingestion_info # The method or protocol used to transmit the video stream. # Corresponds to the JSON property `ingestionType` # @return [String] attr_accessor :ingestion_type # The resolution of the inbound video data. # Corresponds to the JSON property `resolution` # @return [String] attr_accessor :resolution def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @format = args[:format] if args.key?(:format) @frame_rate = args[:frame_rate] if args.key?(:frame_rate) @ingestion_info = args[:ingestion_info] if args.key?(:ingestion_info) @ingestion_type = args[:ingestion_type] if args.key?(:ingestion_type) @resolution = args[:resolution] if args.key?(:resolution) end end # A *channel* resource contains information about a YouTube channel. class Channel include Google::Apis::Core::Hashable # The auditDetails object encapsulates channel data that is relevant for YouTube # Partners during the audit process. # Corresponds to the JSON property `auditDetails` # @return [Google::Apis::YoutubeV3::ChannelAuditDetails] attr_accessor :audit_details # Branding properties of a YouTube channel. # Corresponds to the JSON property `brandingSettings` # @return [Google::Apis::YoutubeV3::ChannelBrandingSettings] attr_accessor :branding_settings # Details about the content of a channel. # Corresponds to the JSON property `contentDetails` # @return [Google::Apis::YoutubeV3::ChannelContentDetails] attr_accessor :content_details # The contentOwnerDetails object encapsulates channel data that is relevant for # YouTube Partners linked with the channel. # Corresponds to the JSON property `contentOwnerDetails` # @return [Google::Apis::YoutubeV3::ChannelContentOwnerDetails] attr_accessor :content_owner_details # The conversionPings object encapsulates information about conversion pings # that need to be respected by the channel. # Corresponds to the JSON property `conversionPings` # @return [Google::Apis::YoutubeV3::ChannelConversionPings] attr_accessor :conversion_pings # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # The ID that YouTube uses to uniquely identify the channel. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # Describes an invideo promotion campaign consisting of multiple promoted items. # A campaign belongs to a single channel_id. # Corresponds to the JSON property `invideoPromotion` # @return [Google::Apis::YoutubeV3::InvideoPromotion] attr_accessor :invideo_promotion # Identifies what kind of resource this is. Value: the fixed string "youtube# # channel". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Localizations for different languages # Corresponds to the JSON property `localizations` # @return [Hash] attr_accessor :localizations # Basic details about a channel, including title, description and thumbnails. # Corresponds to the JSON property `snippet` # @return [Google::Apis::YoutubeV3::ChannelSnippet] attr_accessor :snippet # Statistics about a channel: number of subscribers, number of videos in the # channel, etc. # Corresponds to the JSON property `statistics` # @return [Google::Apis::YoutubeV3::ChannelStatistics] attr_accessor :statistics # JSON template for the status part of a channel. # Corresponds to the JSON property `status` # @return [Google::Apis::YoutubeV3::ChannelStatus] attr_accessor :status # Freebase topic information related to the channel. # Corresponds to the JSON property `topicDetails` # @return [Google::Apis::YoutubeV3::ChannelTopicDetails] attr_accessor :topic_details def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @audit_details = args[:audit_details] if args.key?(:audit_details) @branding_settings = args[:branding_settings] if args.key?(:branding_settings) @content_details = args[:content_details] if args.key?(:content_details) @content_owner_details = args[:content_owner_details] if args.key?(:content_owner_details) @conversion_pings = args[:conversion_pings] if args.key?(:conversion_pings) @etag = args[:etag] if args.key?(:etag) @id = args[:id] if args.key?(:id) @invideo_promotion = args[:invideo_promotion] if args.key?(:invideo_promotion) @kind = args[:kind] if args.key?(:kind) @localizations = args[:localizations] if args.key?(:localizations) @snippet = args[:snippet] if args.key?(:snippet) @statistics = args[:statistics] if args.key?(:statistics) @status = args[:status] if args.key?(:status) @topic_details = args[:topic_details] if args.key?(:topic_details) end end # The auditDetails object encapsulates channel data that is relevant for YouTube # Partners during the audit process. class ChannelAuditDetails include Google::Apis::Core::Hashable # Whether or not the channel respects the community guidelines. # Corresponds to the JSON property `communityGuidelinesGoodStanding` # @return [Boolean] attr_accessor :community_guidelines_good_standing alias_method :community_guidelines_good_standing?, :community_guidelines_good_standing # Whether or not the channel has any unresolved claims. # Corresponds to the JSON property `contentIdClaimsGoodStanding` # @return [Boolean] attr_accessor :content_id_claims_good_standing alias_method :content_id_claims_good_standing?, :content_id_claims_good_standing # Whether or not the channel has any copyright strikes. # Corresponds to the JSON property `copyrightStrikesGoodStanding` # @return [Boolean] attr_accessor :copyright_strikes_good_standing alias_method :copyright_strikes_good_standing?, :copyright_strikes_good_standing def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @community_guidelines_good_standing = args[:community_guidelines_good_standing] if args.key?(:community_guidelines_good_standing) @content_id_claims_good_standing = args[:content_id_claims_good_standing] if args.key?(:content_id_claims_good_standing) @copyright_strikes_good_standing = args[:copyright_strikes_good_standing] if args.key?(:copyright_strikes_good_standing) end end # A channel banner returned as the response to a channel_banner.insert call. class ChannelBannerResource include Google::Apis::Core::Hashable # # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # Identifies what kind of resource this is. Value: the fixed string "youtube# # channelBannerResource". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The URL of this banner image. # Corresponds to the JSON property `url` # @return [String] attr_accessor :url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @kind = args[:kind] if args.key?(:kind) @url = args[:url] if args.key?(:url) end end # Branding properties of a YouTube channel. class ChannelBrandingSettings include Google::Apis::Core::Hashable # Branding properties for the channel view. # Corresponds to the JSON property `channel` # @return [Google::Apis::YoutubeV3::ChannelSettings] attr_accessor :channel # Additional experimental branding properties. # Corresponds to the JSON property `hints` # @return [Array] attr_accessor :hints # Branding properties for images associated with the channel. # Corresponds to the JSON property `image` # @return [Google::Apis::YoutubeV3::ImageSettings] attr_accessor :image # Branding properties for the watch. All deprecated. # Corresponds to the JSON property `watch` # @return [Google::Apis::YoutubeV3::WatchSettings] attr_accessor :watch def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @channel = args[:channel] if args.key?(:channel) @hints = args[:hints] if args.key?(:hints) @image = args[:image] if args.key?(:image) @watch = args[:watch] if args.key?(:watch) end end # Details about the content of a channel. class ChannelContentDetails include Google::Apis::Core::Hashable # # Corresponds to the JSON property `relatedPlaylists` # @return [Google::Apis::YoutubeV3::ChannelContentDetails::RelatedPlaylists] attr_accessor :related_playlists def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @related_playlists = args[:related_playlists] if args.key?(:related_playlists) end # class RelatedPlaylists include Google::Apis::Core::Hashable # The ID of the playlist that contains the channel"s favorite videos. Use the # playlistItems.insert and playlistItems.delete to add or remove items from that # list. # Corresponds to the JSON property `favorites` # @return [String] attr_accessor :favorites # The ID of the playlist that contains the channel"s liked videos. Use the # playlistItems.insert and playlistItems.delete to add or remove items from that # list. # Corresponds to the JSON property `likes` # @return [String] attr_accessor :likes # The ID of the playlist that contains the channel"s uploaded videos. Use the # videos.insert method to upload new videos and the videos.delete method to # delete previously uploaded videos. # Corresponds to the JSON property `uploads` # @return [String] attr_accessor :uploads # The ID of the playlist that contains the channel"s watch history. Use the # playlistItems.insert and playlistItems.delete to add or remove items from that # list. # Corresponds to the JSON property `watchHistory` # @return [String] attr_accessor :watch_history # The ID of the playlist that contains the channel"s watch later playlist. Use # the playlistItems.insert and playlistItems.delete to add or remove items from # that list. # Corresponds to the JSON property `watchLater` # @return [String] attr_accessor :watch_later def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @favorites = args[:favorites] if args.key?(:favorites) @likes = args[:likes] if args.key?(:likes) @uploads = args[:uploads] if args.key?(:uploads) @watch_history = args[:watch_history] if args.key?(:watch_history) @watch_later = args[:watch_later] if args.key?(:watch_later) end end end # The contentOwnerDetails object encapsulates channel data that is relevant for # YouTube Partners linked with the channel. class ChannelContentOwnerDetails include Google::Apis::Core::Hashable # The ID of the content owner linked to the channel. # Corresponds to the JSON property `contentOwner` # @return [String] attr_accessor :content_owner # The date and time of when the channel was linked to the content owner. The # value is specified in ISO 8601 format. # Corresponds to the JSON property `timeLinked` # @return [String] attr_accessor :time_linked def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @content_owner = args[:content_owner] if args.key?(:content_owner) @time_linked = args[:time_linked] if args.key?(:time_linked) end end # Pings that the app shall fire (authenticated by biscotti cookie). Each ping # has a context, in which the app must fire the ping, and a url identifying the # ping. class ChannelConversionPing include Google::Apis::Core::Hashable # Defines the context of the ping. # Corresponds to the JSON property `context` # @return [String] attr_accessor :context # The url (without the schema) that the player shall send the ping to. It's at # caller's descretion to decide which schema to use (http vs https) Example of a # returned url: //googleads.g.doubleclick.net/pagead/ viewthroughconversion/ # 962985656/?data=path%3DtHe_path%3Btype%3D cview%3Butuid% # 3DGISQtTNGYqaYl4sKxoVvKA&labe=default The caller must append biscotti # authentication (ms param in case of mobile, for example) to this ping. # Corresponds to the JSON property `conversionUrl` # @return [String] attr_accessor :conversion_url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @context = args[:context] if args.key?(:context) @conversion_url = args[:conversion_url] if args.key?(:conversion_url) end end # The conversionPings object encapsulates information about conversion pings # that need to be respected by the channel. class ChannelConversionPings include Google::Apis::Core::Hashable # Pings that the app shall fire (authenticated by biscotti cookie). Each ping # has a context, in which the app must fire the ping, and a url identifying the # ping. # Corresponds to the JSON property `pings` # @return [Array] attr_accessor :pings def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @pings = args[:pings] if args.key?(:pings) end end # class ListChannelsResponse include Google::Apis::Core::Hashable # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # Serialized EventId of the request which produced this response. # Corresponds to the JSON property `eventId` # @return [String] attr_accessor :event_id # # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Identifies what kind of resource this is. Value: the fixed string "youtube# # channelListResponse". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The token that can be used as the value of the pageToken parameter to retrieve # the next page in the result set. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # Paging details for lists of resources, including total number of items # available and number of resources returned in a single page. # Corresponds to the JSON property `pageInfo` # @return [Google::Apis::YoutubeV3::PageInfo] attr_accessor :page_info # The token that can be used as the value of the pageToken parameter to retrieve # the previous page in the result set. # Corresponds to the JSON property `prevPageToken` # @return [String] attr_accessor :prev_page_token # Stub token pagination template to suppress results. # Corresponds to the JSON property `tokenPagination` # @return [Google::Apis::YoutubeV3::TokenPagination] attr_accessor :token_pagination # The visitorId identifies the visitor. # Corresponds to the JSON property `visitorId` # @return [String] attr_accessor :visitor_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @event_id = args[:event_id] if args.key?(:event_id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @page_info = args[:page_info] if args.key?(:page_info) @prev_page_token = args[:prev_page_token] if args.key?(:prev_page_token) @token_pagination = args[:token_pagination] if args.key?(:token_pagination) @visitor_id = args[:visitor_id] if args.key?(:visitor_id) end end # Channel localization setting class ChannelLocalization include Google::Apis::Core::Hashable # The localized strings for channel's description. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # The localized strings for channel's title. # Corresponds to the JSON property `title` # @return [String] attr_accessor :title def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @description = args[:description] if args.key?(:description) @title = args[:title] if args.key?(:title) end end # class ChannelProfileDetails include Google::Apis::Core::Hashable # The YouTube channel ID. # Corresponds to the JSON property `channelId` # @return [String] attr_accessor :channel_id # The channel's URL. # Corresponds to the JSON property `channelUrl` # @return [String] attr_accessor :channel_url # The channel's display name. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # The channels's avatar URL. # Corresponds to the JSON property `profileImageUrl` # @return [String] attr_accessor :profile_image_url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @channel_id = args[:channel_id] if args.key?(:channel_id) @channel_url = args[:channel_url] if args.key?(:channel_url) @display_name = args[:display_name] if args.key?(:display_name) @profile_image_url = args[:profile_image_url] if args.key?(:profile_image_url) end end # class ChannelSection include Google::Apis::Core::Hashable # Details about a channelsection, including playlists and channels. # Corresponds to the JSON property `contentDetails` # @return [Google::Apis::YoutubeV3::ChannelSectionContentDetails] attr_accessor :content_details # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # The ID that YouTube uses to uniquely identify the channel section. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # Identifies what kind of resource this is. Value: the fixed string "youtube# # channelSection". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Localizations for different languages # Corresponds to the JSON property `localizations` # @return [Hash] attr_accessor :localizations # Basic details about a channel section, including title, style and position. # Corresponds to the JSON property `snippet` # @return [Google::Apis::YoutubeV3::ChannelSectionSnippet] attr_accessor :snippet # ChannelSection targeting setting. # Corresponds to the JSON property `targeting` # @return [Google::Apis::YoutubeV3::ChannelSectionTargeting] attr_accessor :targeting def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @content_details = args[:content_details] if args.key?(:content_details) @etag = args[:etag] if args.key?(:etag) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @localizations = args[:localizations] if args.key?(:localizations) @snippet = args[:snippet] if args.key?(:snippet) @targeting = args[:targeting] if args.key?(:targeting) end end # Details about a channelsection, including playlists and channels. class ChannelSectionContentDetails include Google::Apis::Core::Hashable # The channel ids for type multiple_channels. # Corresponds to the JSON property `channels` # @return [Array] attr_accessor :channels # The playlist ids for type single_playlist and multiple_playlists. For # singlePlaylist, only one playlistId is allowed. # Corresponds to the JSON property `playlists` # @return [Array] attr_accessor :playlists def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @channels = args[:channels] if args.key?(:channels) @playlists = args[:playlists] if args.key?(:playlists) end end # class ListChannelSectionsResponse include Google::Apis::Core::Hashable # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # Serialized EventId of the request which produced this response. # Corresponds to the JSON property `eventId` # @return [String] attr_accessor :event_id # A list of ChannelSections that match the request criteria. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Identifies what kind of resource this is. Value: the fixed string "youtube# # channelSectionListResponse". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The visitorId identifies the visitor. # Corresponds to the JSON property `visitorId` # @return [String] attr_accessor :visitor_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @event_id = args[:event_id] if args.key?(:event_id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @visitor_id = args[:visitor_id] if args.key?(:visitor_id) end end # ChannelSection localization setting class ChannelSectionLocalization include Google::Apis::Core::Hashable # The localized strings for channel section's title. # Corresponds to the JSON property `title` # @return [String] attr_accessor :title def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @title = args[:title] if args.key?(:title) end end # Basic details about a channel section, including title, style and position. class ChannelSectionSnippet include Google::Apis::Core::Hashable # The ID that YouTube uses to uniquely identify the channel that published the # channel section. # Corresponds to the JSON property `channelId` # @return [String] attr_accessor :channel_id # The language of the channel section's default title and description. # Corresponds to the JSON property `defaultLanguage` # @return [String] attr_accessor :default_language # ChannelSection localization setting # Corresponds to the JSON property `localized` # @return [Google::Apis::YoutubeV3::ChannelSectionLocalization] attr_accessor :localized # The position of the channel section in the channel. # Corresponds to the JSON property `position` # @return [Fixnum] attr_accessor :position # The style of the channel section. # Corresponds to the JSON property `style` # @return [String] attr_accessor :style # The channel section's title for multiple_playlists and multiple_channels. # Corresponds to the JSON property `title` # @return [String] attr_accessor :title # The type of the channel section. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @channel_id = args[:channel_id] if args.key?(:channel_id) @default_language = args[:default_language] if args.key?(:default_language) @localized = args[:localized] if args.key?(:localized) @position = args[:position] if args.key?(:position) @style = args[:style] if args.key?(:style) @title = args[:title] if args.key?(:title) @type = args[:type] if args.key?(:type) end end # ChannelSection targeting setting. class ChannelSectionTargeting include Google::Apis::Core::Hashable # The country the channel section is targeting. # Corresponds to the JSON property `countries` # @return [Array] attr_accessor :countries # The language the channel section is targeting. # Corresponds to the JSON property `languages` # @return [Array] attr_accessor :languages # The region the channel section is targeting. # Corresponds to the JSON property `regions` # @return [Array] attr_accessor :regions def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @countries = args[:countries] if args.key?(:countries) @languages = args[:languages] if args.key?(:languages) @regions = args[:regions] if args.key?(:regions) end end # Branding properties for the channel view. class ChannelSettings include Google::Apis::Core::Hashable # The country of the channel. # Corresponds to the JSON property `country` # @return [String] attr_accessor :country # # Corresponds to the JSON property `defaultLanguage` # @return [String] attr_accessor :default_language # Which content tab users should see when viewing the channel. # Corresponds to the JSON property `defaultTab` # @return [String] attr_accessor :default_tab # Specifies the channel description. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Title for the featured channels tab. # Corresponds to the JSON property `featuredChannelsTitle` # @return [String] attr_accessor :featured_channels_title # The list of featured channels. # Corresponds to the JSON property `featuredChannelsUrls` # @return [Array] attr_accessor :featured_channels_urls # Lists keywords associated with the channel, comma-separated. # Corresponds to the JSON property `keywords` # @return [String] attr_accessor :keywords # Whether user-submitted comments left on the channel page need to be approved # by the channel owner to be publicly visible. # Corresponds to the JSON property `moderateComments` # @return [Boolean] attr_accessor :moderate_comments alias_method :moderate_comments?, :moderate_comments # A prominent color that can be rendered on this channel page. # Corresponds to the JSON property `profileColor` # @return [String] attr_accessor :profile_color # Whether the tab to browse the videos should be displayed. # Corresponds to the JSON property `showBrowseView` # @return [Boolean] attr_accessor :show_browse_view alias_method :show_browse_view?, :show_browse_view # Whether related channels should be proposed. # Corresponds to the JSON property `showRelatedChannels` # @return [Boolean] attr_accessor :show_related_channels alias_method :show_related_channels?, :show_related_channels # Specifies the channel title. # Corresponds to the JSON property `title` # @return [String] attr_accessor :title # The ID for a Google Analytics account to track and measure traffic to the # channels. # Corresponds to the JSON property `trackingAnalyticsAccountId` # @return [String] attr_accessor :tracking_analytics_account_id # The trailer of the channel, for users that are not subscribers. # Corresponds to the JSON property `unsubscribedTrailer` # @return [String] attr_accessor :unsubscribed_trailer def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @country = args[:country] if args.key?(:country) @default_language = args[:default_language] if args.key?(:default_language) @default_tab = args[:default_tab] if args.key?(:default_tab) @description = args[:description] if args.key?(:description) @featured_channels_title = args[:featured_channels_title] if args.key?(:featured_channels_title) @featured_channels_urls = args[:featured_channels_urls] if args.key?(:featured_channels_urls) @keywords = args[:keywords] if args.key?(:keywords) @moderate_comments = args[:moderate_comments] if args.key?(:moderate_comments) @profile_color = args[:profile_color] if args.key?(:profile_color) @show_browse_view = args[:show_browse_view] if args.key?(:show_browse_view) @show_related_channels = args[:show_related_channels] if args.key?(:show_related_channels) @title = args[:title] if args.key?(:title) @tracking_analytics_account_id = args[:tracking_analytics_account_id] if args.key?(:tracking_analytics_account_id) @unsubscribed_trailer = args[:unsubscribed_trailer] if args.key?(:unsubscribed_trailer) end end # Basic details about a channel, including title, description and thumbnails. class ChannelSnippet include Google::Apis::Core::Hashable # The country of the channel. # Corresponds to the JSON property `country` # @return [String] attr_accessor :country # The custom url of the channel. # Corresponds to the JSON property `customUrl` # @return [String] attr_accessor :custom_url # The language of the channel's default title and description. # Corresponds to the JSON property `defaultLanguage` # @return [String] attr_accessor :default_language # The description of the channel. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Channel localization setting # Corresponds to the JSON property `localized` # @return [Google::Apis::YoutubeV3::ChannelLocalization] attr_accessor :localized # The date and time that the channel was created. The value is specified in < a # href="//www.w3.org/TR/NOTE-datetime">ISO 8601 format. # Corresponds to the JSON property `publishedAt` # @return [String] attr_accessor :published_at # Internal representation of thumbnails for a YouTube resource. # Corresponds to the JSON property `thumbnails` # @return [Google::Apis::YoutubeV3::ThumbnailDetails] attr_accessor :thumbnails # The channel's title. # Corresponds to the JSON property `title` # @return [String] attr_accessor :title def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @country = args[:country] if args.key?(:country) @custom_url = args[:custom_url] if args.key?(:custom_url) @default_language = args[:default_language] if args.key?(:default_language) @description = args[:description] if args.key?(:description) @localized = args[:localized] if args.key?(:localized) @published_at = args[:published_at] if args.key?(:published_at) @thumbnails = args[:thumbnails] if args.key?(:thumbnails) @title = args[:title] if args.key?(:title) end end # Statistics about a channel: number of subscribers, number of videos in the # channel, etc. class ChannelStatistics include Google::Apis::Core::Hashable # The number of comments for the channel. # Corresponds to the JSON property `commentCount` # @return [Fixnum] attr_accessor :comment_count # Whether or not the number of subscribers is shown for this user. # Corresponds to the JSON property `hiddenSubscriberCount` # @return [Boolean] attr_accessor :hidden_subscriber_count alias_method :hidden_subscriber_count?, :hidden_subscriber_count # The number of subscribers that the channel has. # Corresponds to the JSON property `subscriberCount` # @return [Fixnum] attr_accessor :subscriber_count # The number of videos uploaded to the channel. # Corresponds to the JSON property `videoCount` # @return [Fixnum] attr_accessor :video_count # The number of times the channel has been viewed. # Corresponds to the JSON property `viewCount` # @return [Fixnum] attr_accessor :view_count def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @comment_count = args[:comment_count] if args.key?(:comment_count) @hidden_subscriber_count = args[:hidden_subscriber_count] if args.key?(:hidden_subscriber_count) @subscriber_count = args[:subscriber_count] if args.key?(:subscriber_count) @video_count = args[:video_count] if args.key?(:video_count) @view_count = args[:view_count] if args.key?(:view_count) end end # JSON template for the status part of a channel. class ChannelStatus include Google::Apis::Core::Hashable # If true, then the user is linked to either a YouTube username or G+ account. # Otherwise, the user doesn't have a public YouTube identity. # Corresponds to the JSON property `isLinked` # @return [Boolean] attr_accessor :is_linked alias_method :is_linked?, :is_linked # The long uploads status of this channel. See https://support.google.com/ # youtube/answer/71673 for more information. # Corresponds to the JSON property `longUploadsStatus` # @return [String] attr_accessor :long_uploads_status # # Corresponds to the JSON property `madeForKids` # @return [Boolean] attr_accessor :made_for_kids alias_method :made_for_kids?, :made_for_kids # Privacy status of the channel. # Corresponds to the JSON property `privacyStatus` # @return [String] attr_accessor :privacy_status # # Corresponds to the JSON property `selfDeclaredMadeForKids` # @return [Boolean] attr_accessor :self_declared_made_for_kids alias_method :self_declared_made_for_kids?, :self_declared_made_for_kids def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @is_linked = args[:is_linked] if args.key?(:is_linked) @long_uploads_status = args[:long_uploads_status] if args.key?(:long_uploads_status) @made_for_kids = args[:made_for_kids] if args.key?(:made_for_kids) @privacy_status = args[:privacy_status] if args.key?(:privacy_status) @self_declared_made_for_kids = args[:self_declared_made_for_kids] if args.key?(:self_declared_made_for_kids) end end # Information specific to a store on a merchandising platform linked to a # YouTube channel. class ChannelToStoreLinkDetails include Google::Apis::Core::Hashable # Name of the store. # Corresponds to the JSON property `storeName` # @return [String] attr_accessor :store_name # Landing page of the store. # Corresponds to the JSON property `storeUrl` # @return [String] attr_accessor :store_url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @store_name = args[:store_name] if args.key?(:store_name) @store_url = args[:store_url] if args.key?(:store_url) end end # Freebase topic information related to the channel. class ChannelTopicDetails include Google::Apis::Core::Hashable # A list of Wikipedia URLs that describe the channel's content. # Corresponds to the JSON property `topicCategories` # @return [Array] attr_accessor :topic_categories # A list of Freebase topic IDs associated with the channel. You can retrieve # information about each topic using the Freebase Topic API. # Corresponds to the JSON property `topicIds` # @return [Array] attr_accessor :topic_ids def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @topic_categories = args[:topic_categories] if args.key?(:topic_categories) @topic_ids = args[:topic_ids] if args.key?(:topic_ids) end end # A *comment* represents a single YouTube comment. class Comment include Google::Apis::Core::Hashable # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # The ID that YouTube uses to uniquely identify the comment. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # Identifies what kind of resource this is. Value: the fixed string "youtube# # comment". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Basic details about a comment, such as its author and text. # Corresponds to the JSON property `snippet` # @return [Google::Apis::YoutubeV3::CommentSnippet] attr_accessor :snippet def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @snippet = args[:snippet] if args.key?(:snippet) end end # class ListCommentsResponse include Google::Apis::Core::Hashable # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # Serialized EventId of the request which produced this response. # Corresponds to the JSON property `eventId` # @return [String] attr_accessor :event_id # A list of comments that match the request criteria. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Identifies what kind of resource this is. Value: the fixed string "youtube# # commentListResponse". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The token that can be used as the value of the pageToken parameter to retrieve # the next page in the result set. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # Paging details for lists of resources, including total number of items # available and number of resources returned in a single page. # Corresponds to the JSON property `pageInfo` # @return [Google::Apis::YoutubeV3::PageInfo] attr_accessor :page_info # Stub token pagination template to suppress results. # Corresponds to the JSON property `tokenPagination` # @return [Google::Apis::YoutubeV3::TokenPagination] attr_accessor :token_pagination # The visitorId identifies the visitor. # Corresponds to the JSON property `visitorId` # @return [String] attr_accessor :visitor_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @event_id = args[:event_id] if args.key?(:event_id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @page_info = args[:page_info] if args.key?(:page_info) @token_pagination = args[:token_pagination] if args.key?(:token_pagination) @visitor_id = args[:visitor_id] if args.key?(:visitor_id) end end # Basic details about a comment, such as its author and text. class CommentSnippet include Google::Apis::Core::Hashable # The id of the author's YouTube channel, if any. # Corresponds to the JSON property `authorChannelId` # @return [Google::Apis::YoutubeV3::CommentSnippetAuthorChannelId] attr_accessor :author_channel_id # Link to the author's YouTube channel, if any. # Corresponds to the JSON property `authorChannelUrl` # @return [String] attr_accessor :author_channel_url # The name of the user who posted the comment. # Corresponds to the JSON property `authorDisplayName` # @return [String] attr_accessor :author_display_name # The URL for the avatar of the user who posted the comment. # Corresponds to the JSON property `authorProfileImageUrl` # @return [String] attr_accessor :author_profile_image_url # Whether the current viewer can rate this comment. # Corresponds to the JSON property `canRate` # @return [Boolean] attr_accessor :can_rate alias_method :can_rate?, :can_rate # The id of the corresponding YouTube channel. In case of a channel comment this # is the channel the comment refers to. In case of a video comment it's the # video's channel. # Corresponds to the JSON property `channelId` # @return [String] attr_accessor :channel_id # The total number of likes this comment has received. # Corresponds to the JSON property `likeCount` # @return [Fixnum] attr_accessor :like_count # The comment's moderation status. Will not be set if the comments were # requested through the id filter. # Corresponds to the JSON property `moderationStatus` # @return [String] attr_accessor :moderation_status # The unique id of the parent comment, only set for replies. # Corresponds to the JSON property `parentId` # @return [String] attr_accessor :parent_id # The date and time when the comment was orignally published. The value is # specified in ISO 8601 format. # Corresponds to the JSON property `publishedAt` # @return [String] attr_accessor :published_at # The comment's text. The format is either plain text or HTML dependent on what # has been requested. Even the plain text representation may differ from the # text originally posted in that it may replace video links with video titles # etc. # Corresponds to the JSON property `textDisplay` # @return [String] attr_accessor :text_display # The comment's original raw text as initially posted or last updated. The # original text will only be returned if it is accessible to the viewer, which # is only guaranteed if the viewer is the comment's author. # Corresponds to the JSON property `textOriginal` # @return [String] attr_accessor :text_original # The date and time when was last updated . The value is specified in ISO 8601 # format. # Corresponds to the JSON property `updatedAt` # @return [String] attr_accessor :updated_at # The ID of the video the comment refers to, if any. # Corresponds to the JSON property `videoId` # @return [String] attr_accessor :video_id # The rating the viewer has given to this comment. For the time being this will # never return RATE_TYPE_DISLIKE and instead return RATE_TYPE_NONE. This may # change in the future. # Corresponds to the JSON property `viewerRating` # @return [String] attr_accessor :viewer_rating def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @author_channel_id = args[:author_channel_id] if args.key?(:author_channel_id) @author_channel_url = args[:author_channel_url] if args.key?(:author_channel_url) @author_display_name = args[:author_display_name] if args.key?(:author_display_name) @author_profile_image_url = args[:author_profile_image_url] if args.key?(:author_profile_image_url) @can_rate = args[:can_rate] if args.key?(:can_rate) @channel_id = args[:channel_id] if args.key?(:channel_id) @like_count = args[:like_count] if args.key?(:like_count) @moderation_status = args[:moderation_status] if args.key?(:moderation_status) @parent_id = args[:parent_id] if args.key?(:parent_id) @published_at = args[:published_at] if args.key?(:published_at) @text_display = args[:text_display] if args.key?(:text_display) @text_original = args[:text_original] if args.key?(:text_original) @updated_at = args[:updated_at] if args.key?(:updated_at) @video_id = args[:video_id] if args.key?(:video_id) @viewer_rating = args[:viewer_rating] if args.key?(:viewer_rating) end end # The id of the author's YouTube channel, if any. class CommentSnippetAuthorChannelId include Google::Apis::Core::Hashable # # Corresponds to the JSON property `value` # @return [String] attr_accessor :value def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @value = args[:value] if args.key?(:value) end end # A *comment thread* represents information that applies to a top level comment # and all its replies. It can also include the top level comment itself and some # of the replies. class CommentThread include Google::Apis::Core::Hashable # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # The ID that YouTube uses to uniquely identify the comment thread. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # Identifies what kind of resource this is. Value: the fixed string "youtube# # commentThread". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Comments written in (direct or indirect) reply to the top level comment. # Corresponds to the JSON property `replies` # @return [Google::Apis::YoutubeV3::CommentThreadReplies] attr_accessor :replies # Basic details about a comment thread. # Corresponds to the JSON property `snippet` # @return [Google::Apis::YoutubeV3::CommentThreadSnippet] attr_accessor :snippet def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @replies = args[:replies] if args.key?(:replies) @snippet = args[:snippet] if args.key?(:snippet) end end # class ListCommentThreadsResponse include Google::Apis::Core::Hashable # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # Serialized EventId of the request which produced this response. # Corresponds to the JSON property `eventId` # @return [String] attr_accessor :event_id # A list of comment threads that match the request criteria. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Identifies what kind of resource this is. Value: the fixed string "youtube# # commentThreadListResponse". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The token that can be used as the value of the pageToken parameter to retrieve # the next page in the result set. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # Paging details for lists of resources, including total number of items # available and number of resources returned in a single page. # Corresponds to the JSON property `pageInfo` # @return [Google::Apis::YoutubeV3::PageInfo] attr_accessor :page_info # Stub token pagination template to suppress results. # Corresponds to the JSON property `tokenPagination` # @return [Google::Apis::YoutubeV3::TokenPagination] attr_accessor :token_pagination # The visitorId identifies the visitor. # Corresponds to the JSON property `visitorId` # @return [String] attr_accessor :visitor_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @event_id = args[:event_id] if args.key?(:event_id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @page_info = args[:page_info] if args.key?(:page_info) @token_pagination = args[:token_pagination] if args.key?(:token_pagination) @visitor_id = args[:visitor_id] if args.key?(:visitor_id) end end # Comments written in (direct or indirect) reply to the top level comment. class CommentThreadReplies include Google::Apis::Core::Hashable # A limited number of replies. Unless the number of replies returned equals # total_reply_count in the snippet the returned replies are only a subset of the # total number of replies. # Corresponds to the JSON property `comments` # @return [Array] attr_accessor :comments def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @comments = args[:comments] if args.key?(:comments) end end # Basic details about a comment thread. class CommentThreadSnippet include Google::Apis::Core::Hashable # Whether the current viewer of the thread can reply to it. This is viewer # specific - other viewers may see a different value for this field. # Corresponds to the JSON property `canReply` # @return [Boolean] attr_accessor :can_reply alias_method :can_reply?, :can_reply # The YouTube channel the comments in the thread refer to or the channel with # the video the comments refer to. If video_id isn't set the comments refer to # the channel itself. # Corresponds to the JSON property `channelId` # @return [String] attr_accessor :channel_id # Whether the thread (and therefore all its comments) is visible to all YouTube # users. # Corresponds to the JSON property `isPublic` # @return [Boolean] attr_accessor :is_public alias_method :is_public?, :is_public # A *comment* represents a single YouTube comment. # Corresponds to the JSON property `topLevelComment` # @return [Google::Apis::YoutubeV3::Comment] attr_accessor :top_level_comment # The total number of replies (not including the top level comment). # Corresponds to the JSON property `totalReplyCount` # @return [Fixnum] attr_accessor :total_reply_count # The ID of the video the comments refer to, if any. No video_id implies a # channel discussion comment. # Corresponds to the JSON property `videoId` # @return [String] attr_accessor :video_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @can_reply = args[:can_reply] if args.key?(:can_reply) @channel_id = args[:channel_id] if args.key?(:channel_id) @is_public = args[:is_public] if args.key?(:is_public) @top_level_comment = args[:top_level_comment] if args.key?(:top_level_comment) @total_reply_count = args[:total_reply_count] if args.key?(:total_reply_count) @video_id = args[:video_id] if args.key?(:video_id) end end # Ratings schemes. The country-specific ratings are mostly for movies and shows. # LINT.IfChange class ContentRating include Google::Apis::Core::Hashable # The video's Australian Classification Board (ACB) or Australian Communications # and Media Authority (ACMA) rating. ACMA ratings are used to classify children' # s television programming. # Corresponds to the JSON property `acbRating` # @return [String] attr_accessor :acb_rating # The video's rating from Italy's Autorità per le Garanzie nelle Comunicazioni ( # AGCOM). # Corresponds to the JSON property `agcomRating` # @return [String] attr_accessor :agcom_rating # The video's Anatel (Asociación Nacional de Televisión) rating for Chilean # television. # Corresponds to the JSON property `anatelRating` # @return [String] attr_accessor :anatel_rating # The video's British Board of Film Classification (BBFC) rating. # Corresponds to the JSON property `bbfcRating` # @return [String] attr_accessor :bbfc_rating # The video's rating from Thailand's Board of Film and Video Censors. # Corresponds to the JSON property `bfvcRating` # @return [String] attr_accessor :bfvc_rating # The video's rating from the Austrian Board of Media Classification ( # Bundesministerium für Unterricht, Kunst und Kultur). # Corresponds to the JSON property `bmukkRating` # @return [String] attr_accessor :bmukk_rating # Rating system for Canadian TV - Canadian TV Classification System The video's # rating from the Canadian Radio-Television and Telecommunications Commission ( # CRTC) for Canadian English-language broadcasts. For more information, see the # Canadian Broadcast Standards Council website. # Corresponds to the JSON property `catvRating` # @return [String] attr_accessor :catv_rating # The video's rating from the Canadian Radio-Television and Telecommunications # Commission (CRTC) for Canadian French-language broadcasts. For more # information, see the Canadian Broadcast Standards Council website. # Corresponds to the JSON property `catvfrRating` # @return [String] attr_accessor :catvfr_rating # The video's Central Board of Film Certification (CBFC - India) rating. # Corresponds to the JSON property `cbfcRating` # @return [String] attr_accessor :cbfc_rating # The video's Consejo de Calificación Cinematográfica (Chile) rating. # Corresponds to the JSON property `cccRating` # @return [String] attr_accessor :ccc_rating # The video's rating from Portugal's Comissão de Classificação de Espect´culos. # Corresponds to the JSON property `cceRating` # @return [String] attr_accessor :cce_rating # The video's rating in Switzerland. # Corresponds to the JSON property `chfilmRating` # @return [String] attr_accessor :chfilm_rating # The video's Canadian Home Video Rating System (CHVRS) rating. # Corresponds to the JSON property `chvrsRating` # @return [String] attr_accessor :chvrs_rating # The video's rating from the Commission de Contrôle des Films (Belgium). # Corresponds to the JSON property `cicfRating` # @return [String] attr_accessor :cicf_rating # The video's rating from Romania's CONSILIUL NATIONAL AL AUDIOVIZUALULUI (CNA). # Corresponds to the JSON property `cnaRating` # @return [String] attr_accessor :cna_rating # Rating system in France - Commission de classification cinematographique # Corresponds to the JSON property `cncRating` # @return [String] attr_accessor :cnc_rating # The video's rating from France's Conseil supérieur de l’audiovisuel, which # rates broadcast content. # Corresponds to the JSON property `csaRating` # @return [String] attr_accessor :csa_rating # The video's rating from Luxembourg's Commission de surveillance de la # classification des films (CSCF). # Corresponds to the JSON property `cscfRating` # @return [String] attr_accessor :cscf_rating # The video's rating in the Czech Republic. # Corresponds to the JSON property `czfilmRating` # @return [String] attr_accessor :czfilm_rating # The video's Departamento de Justiça, Classificação, Qualificação e Títulos ( # DJCQT - Brazil) rating. # Corresponds to the JSON property `djctqRating` # @return [String] attr_accessor :djctq_rating # Reasons that explain why the video received its DJCQT (Brazil) rating. # Corresponds to the JSON property `djctqRatingReasons` # @return [Array] attr_accessor :djctq_rating_reasons # Rating system in Turkey - Evaluation and Classification Board of the Ministry # of Culture and Tourism # Corresponds to the JSON property `ecbmctRating` # @return [String] attr_accessor :ecbmct_rating # The video's rating in Estonia. # Corresponds to the JSON property `eefilmRating` # @return [String] attr_accessor :eefilm_rating # The video's rating in Egypt. # Corresponds to the JSON property `egfilmRating` # @return [String] attr_accessor :egfilm_rating # The video's Eirin (映倫) rating. Eirin is the Japanese rating system. # Corresponds to the JSON property `eirinRating` # @return [String] attr_accessor :eirin_rating # The video's rating from Malaysia's Film Censorship Board. # Corresponds to the JSON property `fcbmRating` # @return [String] attr_accessor :fcbm_rating # The video's rating from Hong Kong's Office for Film, Newspaper and Article # Administration. # Corresponds to the JSON property `fcoRating` # @return [String] attr_accessor :fco_rating # This property has been deprecated. Use the contentDetails.contentRating. # cncRating instead. # Corresponds to the JSON property `fmocRating` # @return [String] attr_accessor :fmoc_rating # The video's rating from South Africa's Film and Publication Board. # Corresponds to the JSON property `fpbRating` # @return [String] attr_accessor :fpb_rating # Reasons that explain why the video received its FPB (South Africa) rating. # Corresponds to the JSON property `fpbRatingReasons` # @return [Array] attr_accessor :fpb_rating_reasons # The video's Freiwillige Selbstkontrolle der Filmwirtschaft (FSK - Germany) # rating. # Corresponds to the JSON property `fskRating` # @return [String] attr_accessor :fsk_rating # The video's rating in Greece. # Corresponds to the JSON property `grfilmRating` # @return [String] attr_accessor :grfilm_rating # The video's Instituto de la Cinematografía y de las Artes Audiovisuales (ICAA - # Spain) rating. # Corresponds to the JSON property `icaaRating` # @return [String] attr_accessor :icaa_rating # The video's Irish Film Classification Office (IFCO - Ireland) rating. See the # IFCO website for more information. # Corresponds to the JSON property `ifcoRating` # @return [String] attr_accessor :ifco_rating # The video's rating in Israel. # Corresponds to the JSON property `ilfilmRating` # @return [String] attr_accessor :ilfilm_rating # The video's INCAA (Instituto Nacional de Cine y Artes Audiovisuales - # Argentina) rating. # Corresponds to the JSON property `incaaRating` # @return [String] attr_accessor :incaa_rating # The video's rating from the Kenya Film Classification Board. # Corresponds to the JSON property `kfcbRating` # @return [String] attr_accessor :kfcb_rating # The video's NICAM/Kijkwijzer rating from the Nederlands Instituut voor de # Classificatie van Audiovisuele Media (Netherlands). # Corresponds to the JSON property `kijkwijzerRating` # @return [String] attr_accessor :kijkwijzer_rating # The video's Korea Media Rating Board (영상물등급위원회) rating. The KMRB rates videos # in South Korea. # Corresponds to the JSON property `kmrbRating` # @return [String] attr_accessor :kmrb_rating # The video's rating from Indonesia's Lembaga Sensor Film. # Corresponds to the JSON property `lsfRating` # @return [String] attr_accessor :lsf_rating # The video's rating from Malta's Film Age-Classification Board. # Corresponds to the JSON property `mccaaRating` # @return [String] attr_accessor :mccaa_rating # The video's rating from the Danish Film Institute's (Det Danske Filminstitut) # Media Council for Children and Young People. # Corresponds to the JSON property `mccypRating` # @return [String] attr_accessor :mccyp_rating # The video's rating system for Vietnam - MCST # Corresponds to the JSON property `mcstRating` # @return [String] attr_accessor :mcst_rating # The video's rating from Singapore's Media Development Authority (MDA) and, # specifically, it's Board of Film Censors (BFC). # Corresponds to the JSON property `mdaRating` # @return [String] attr_accessor :mda_rating # The video's rating from Medietilsynet, the Norwegian Media Authority. # Corresponds to the JSON property `medietilsynetRating` # @return [String] attr_accessor :medietilsynet_rating # The video's rating from Finland's Kansallinen Audiovisuaalinen Instituutti ( # National Audiovisual Institute). # Corresponds to the JSON property `mekuRating` # @return [String] attr_accessor :meku_rating # The rating system for MENA countries, a clone of MPAA. It is needed to prevent # titles go live w/o additional QC check, since some of them can be # inappropriate for the countries at all. See b/33408548 for more details. # Corresponds to the JSON property `menaMpaaRating` # @return [String] attr_accessor :mena_mpaa_rating # The video's rating from the Ministero dei Beni e delle Attività Culturali e # del Turismo (Italy). # Corresponds to the JSON property `mibacRating` # @return [String] attr_accessor :mibac_rating # The video's Ministerio de Cultura (Colombia) rating. # Corresponds to the JSON property `mocRating` # @return [String] attr_accessor :moc_rating # The video's rating from Taiwan's Ministry of Culture (文化部). # Corresponds to the JSON property `moctwRating` # @return [String] attr_accessor :moctw_rating # The video's Motion Picture Association of America (MPAA) rating. # Corresponds to the JSON property `mpaaRating` # @return [String] attr_accessor :mpaa_rating # The rating system for trailer, DVD, and Ad in the US. See http://movielabs.com/ # md/ratings/v2.3/html/US_MPAAT_Ratings.html. # Corresponds to the JSON property `mpaatRating` # @return [String] attr_accessor :mpaat_rating # The video's rating from the Movie and Television Review and Classification # Board (Philippines). # Corresponds to the JSON property `mtrcbRating` # @return [String] attr_accessor :mtrcb_rating # The video's rating from the Maldives National Bureau of Classification. # Corresponds to the JSON property `nbcRating` # @return [String] attr_accessor :nbc_rating # The video's rating in Poland. # Corresponds to the JSON property `nbcplRating` # @return [String] attr_accessor :nbcpl_rating # The video's rating from the Bulgarian National Film Center. # Corresponds to the JSON property `nfrcRating` # @return [String] attr_accessor :nfrc_rating # The video's rating from Nigeria's National Film and Video Censors Board. # Corresponds to the JSON property `nfvcbRating` # @return [String] attr_accessor :nfvcb_rating # The video's rating from the Nacionãlais Kino centrs (National Film Centre of # Latvia). # Corresponds to the JSON property `nkclvRating` # @return [String] attr_accessor :nkclv_rating # The National Media Council ratings system for United Arab Emirates. # Corresponds to the JSON property `nmcRating` # @return [String] attr_accessor :nmc_rating # The video's Office of Film and Literature Classification (OFLC - New Zealand) # rating. # Corresponds to the JSON property `oflcRating` # @return [String] attr_accessor :oflc_rating # The video's rating in Peru. # Corresponds to the JSON property `pefilmRating` # @return [String] attr_accessor :pefilm_rating # The video's rating from the Hungarian Nemzeti Filmiroda, the Rating Committee # of the National Office of Film. # Corresponds to the JSON property `rcnofRating` # @return [String] attr_accessor :rcnof_rating # The video's rating in Venezuela. # Corresponds to the JSON property `resorteviolenciaRating` # @return [String] attr_accessor :resorteviolencia_rating # The video's General Directorate of Radio, Television and Cinematography ( # Mexico) rating. # Corresponds to the JSON property `rtcRating` # @return [String] attr_accessor :rtc_rating # The video's rating from Ireland's Raidió Teilifís Éireann. # Corresponds to the JSON property `rteRating` # @return [String] attr_accessor :rte_rating # The video's National Film Registry of the Russian Federation (MKRF - Russia) # rating. # Corresponds to the JSON property `russiaRating` # @return [String] attr_accessor :russia_rating # The video's rating in Slovakia. # Corresponds to the JSON property `skfilmRating` # @return [String] attr_accessor :skfilm_rating # The video's rating in Iceland. # Corresponds to the JSON property `smaisRating` # @return [String] attr_accessor :smais_rating # The video's rating from Statens medieråd (Sweden's National Media Council). # Corresponds to the JSON property `smsaRating` # @return [String] attr_accessor :smsa_rating # The video's TV Parental Guidelines (TVPG) rating. # Corresponds to the JSON property `tvpgRating` # @return [String] attr_accessor :tvpg_rating # A rating that YouTube uses to identify age-restricted content. # Corresponds to the JSON property `ytRating` # @return [String] attr_accessor :yt_rating def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @acb_rating = args[:acb_rating] if args.key?(:acb_rating) @agcom_rating = args[:agcom_rating] if args.key?(:agcom_rating) @anatel_rating = args[:anatel_rating] if args.key?(:anatel_rating) @bbfc_rating = args[:bbfc_rating] if args.key?(:bbfc_rating) @bfvc_rating = args[:bfvc_rating] if args.key?(:bfvc_rating) @bmukk_rating = args[:bmukk_rating] if args.key?(:bmukk_rating) @catv_rating = args[:catv_rating] if args.key?(:catv_rating) @catvfr_rating = args[:catvfr_rating] if args.key?(:catvfr_rating) @cbfc_rating = args[:cbfc_rating] if args.key?(:cbfc_rating) @ccc_rating = args[:ccc_rating] if args.key?(:ccc_rating) @cce_rating = args[:cce_rating] if args.key?(:cce_rating) @chfilm_rating = args[:chfilm_rating] if args.key?(:chfilm_rating) @chvrs_rating = args[:chvrs_rating] if args.key?(:chvrs_rating) @cicf_rating = args[:cicf_rating] if args.key?(:cicf_rating) @cna_rating = args[:cna_rating] if args.key?(:cna_rating) @cnc_rating = args[:cnc_rating] if args.key?(:cnc_rating) @csa_rating = args[:csa_rating] if args.key?(:csa_rating) @cscf_rating = args[:cscf_rating] if args.key?(:cscf_rating) @czfilm_rating = args[:czfilm_rating] if args.key?(:czfilm_rating) @djctq_rating = args[:djctq_rating] if args.key?(:djctq_rating) @djctq_rating_reasons = args[:djctq_rating_reasons] if args.key?(:djctq_rating_reasons) @ecbmct_rating = args[:ecbmct_rating] if args.key?(:ecbmct_rating) @eefilm_rating = args[:eefilm_rating] if args.key?(:eefilm_rating) @egfilm_rating = args[:egfilm_rating] if args.key?(:egfilm_rating) @eirin_rating = args[:eirin_rating] if args.key?(:eirin_rating) @fcbm_rating = args[:fcbm_rating] if args.key?(:fcbm_rating) @fco_rating = args[:fco_rating] if args.key?(:fco_rating) @fmoc_rating = args[:fmoc_rating] if args.key?(:fmoc_rating) @fpb_rating = args[:fpb_rating] if args.key?(:fpb_rating) @fpb_rating_reasons = args[:fpb_rating_reasons] if args.key?(:fpb_rating_reasons) @fsk_rating = args[:fsk_rating] if args.key?(:fsk_rating) @grfilm_rating = args[:grfilm_rating] if args.key?(:grfilm_rating) @icaa_rating = args[:icaa_rating] if args.key?(:icaa_rating) @ifco_rating = args[:ifco_rating] if args.key?(:ifco_rating) @ilfilm_rating = args[:ilfilm_rating] if args.key?(:ilfilm_rating) @incaa_rating = args[:incaa_rating] if args.key?(:incaa_rating) @kfcb_rating = args[:kfcb_rating] if args.key?(:kfcb_rating) @kijkwijzer_rating = args[:kijkwijzer_rating] if args.key?(:kijkwijzer_rating) @kmrb_rating = args[:kmrb_rating] if args.key?(:kmrb_rating) @lsf_rating = args[:lsf_rating] if args.key?(:lsf_rating) @mccaa_rating = args[:mccaa_rating] if args.key?(:mccaa_rating) @mccyp_rating = args[:mccyp_rating] if args.key?(:mccyp_rating) @mcst_rating = args[:mcst_rating] if args.key?(:mcst_rating) @mda_rating = args[:mda_rating] if args.key?(:mda_rating) @medietilsynet_rating = args[:medietilsynet_rating] if args.key?(:medietilsynet_rating) @meku_rating = args[:meku_rating] if args.key?(:meku_rating) @mena_mpaa_rating = args[:mena_mpaa_rating] if args.key?(:mena_mpaa_rating) @mibac_rating = args[:mibac_rating] if args.key?(:mibac_rating) @moc_rating = args[:moc_rating] if args.key?(:moc_rating) @moctw_rating = args[:moctw_rating] if args.key?(:moctw_rating) @mpaa_rating = args[:mpaa_rating] if args.key?(:mpaa_rating) @mpaat_rating = args[:mpaat_rating] if args.key?(:mpaat_rating) @mtrcb_rating = args[:mtrcb_rating] if args.key?(:mtrcb_rating) @nbc_rating = args[:nbc_rating] if args.key?(:nbc_rating) @nbcpl_rating = args[:nbcpl_rating] if args.key?(:nbcpl_rating) @nfrc_rating = args[:nfrc_rating] if args.key?(:nfrc_rating) @nfvcb_rating = args[:nfvcb_rating] if args.key?(:nfvcb_rating) @nkclv_rating = args[:nkclv_rating] if args.key?(:nkclv_rating) @nmc_rating = args[:nmc_rating] if args.key?(:nmc_rating) @oflc_rating = args[:oflc_rating] if args.key?(:oflc_rating) @pefilm_rating = args[:pefilm_rating] if args.key?(:pefilm_rating) @rcnof_rating = args[:rcnof_rating] if args.key?(:rcnof_rating) @resorteviolencia_rating = args[:resorteviolencia_rating] if args.key?(:resorteviolencia_rating) @rtc_rating = args[:rtc_rating] if args.key?(:rtc_rating) @rte_rating = args[:rte_rating] if args.key?(:rte_rating) @russia_rating = args[:russia_rating] if args.key?(:russia_rating) @skfilm_rating = args[:skfilm_rating] if args.key?(:skfilm_rating) @smais_rating = args[:smais_rating] if args.key?(:smais_rating) @smsa_rating = args[:smsa_rating] if args.key?(:smsa_rating) @tvpg_rating = args[:tvpg_rating] if args.key?(:tvpg_rating) @yt_rating = args[:yt_rating] if args.key?(:yt_rating) end end # class Entity include Google::Apis::Core::Hashable # # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # # Corresponds to the JSON property `typeId` # @return [String] attr_accessor :type_id # # Corresponds to the JSON property `url` # @return [String] attr_accessor :url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @type_id = args[:type_id] if args.key?(:type_id) @url = args[:url] if args.key?(:url) end end # Geographical coordinates of a point, in WGS84. class GeoPoint include Google::Apis::Core::Hashable # Altitude above the reference ellipsoid, in meters. # Corresponds to the JSON property `altitude` # @return [Float] attr_accessor :altitude # Latitude in degrees. # Corresponds to the JSON property `latitude` # @return [Float] attr_accessor :latitude # Longitude in degrees. # Corresponds to the JSON property `longitude` # @return [Float] attr_accessor :longitude def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @altitude = args[:altitude] if args.key?(:altitude) @latitude = args[:latitude] if args.key?(:latitude) @longitude = args[:longitude] if args.key?(:longitude) end end # An *i18nLanguage* resource identifies a UI language currently supported by # YouTube. class I18nLanguage include Google::Apis::Core::Hashable # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # The ID that YouTube uses to uniquely identify the i18n language. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # Identifies what kind of resource this is. Value: the fixed string "youtube# # i18nLanguage". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Basic details about an i18n language, such as language code and human-readable # name. # Corresponds to the JSON property `snippet` # @return [Google::Apis::YoutubeV3::I18nLanguageSnippet] attr_accessor :snippet def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @snippet = args[:snippet] if args.key?(:snippet) end end # class ListI18nLanguagesResponse include Google::Apis::Core::Hashable # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # Serialized EventId of the request which produced this response. # Corresponds to the JSON property `eventId` # @return [String] attr_accessor :event_id # A list of supported i18n languages. In this map, the i18n language ID is the # map key, and its value is the corresponding i18nLanguage resource. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Identifies what kind of resource this is. Value: the fixed string "youtube# # i18nLanguageListResponse". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The visitorId identifies the visitor. # Corresponds to the JSON property `visitorId` # @return [String] attr_accessor :visitor_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @event_id = args[:event_id] if args.key?(:event_id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @visitor_id = args[:visitor_id] if args.key?(:visitor_id) end end # Basic details about an i18n language, such as language code and human-readable # name. class I18nLanguageSnippet include Google::Apis::Core::Hashable # A short BCP-47 code that uniquely identifies a language. # Corresponds to the JSON property `hl` # @return [String] attr_accessor :hl # The human-readable name of the language in the language itself. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @hl = args[:hl] if args.key?(:hl) @name = args[:name] if args.key?(:name) end end # A *i18nRegion* resource identifies a region where YouTube is available. class I18nRegion include Google::Apis::Core::Hashable # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # The ID that YouTube uses to uniquely identify the i18n region. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # Identifies what kind of resource this is. Value: the fixed string "youtube# # i18nRegion". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Basic details about an i18n region, such as region code and human-readable # name. # Corresponds to the JSON property `snippet` # @return [Google::Apis::YoutubeV3::I18nRegionSnippet] attr_accessor :snippet def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @snippet = args[:snippet] if args.key?(:snippet) end end # class ListI18nRegionsResponse include Google::Apis::Core::Hashable # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # Serialized EventId of the request which produced this response. # Corresponds to the JSON property `eventId` # @return [String] attr_accessor :event_id # A list of regions where YouTube is available. In this map, the i18n region ID # is the map key, and its value is the corresponding i18nRegion resource. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Identifies what kind of resource this is. Value: the fixed string "youtube# # i18nRegionListResponse". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The visitorId identifies the visitor. # Corresponds to the JSON property `visitorId` # @return [String] attr_accessor :visitor_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @event_id = args[:event_id] if args.key?(:event_id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @visitor_id = args[:visitor_id] if args.key?(:visitor_id) end end # Basic details about an i18n region, such as region code and human-readable # name. class I18nRegionSnippet include Google::Apis::Core::Hashable # The region code as a 2-letter ISO country code. # Corresponds to the JSON property `gl` # @return [String] attr_accessor :gl # The human-readable name of the region. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @gl = args[:gl] if args.key?(:gl) @name = args[:name] if args.key?(:name) end end # Branding properties for images associated with the channel. class ImageSettings include Google::Apis::Core::Hashable # The URL for the background image shown on the video watch page. The image # should be 1200px by 615px, with a maximum file size of 128k. # Corresponds to the JSON property `backgroundImageUrl` # @return [Google::Apis::YoutubeV3::LocalizedProperty] attr_accessor :background_image_url # This is used only in update requests; if it's set, we use this URL to generate # all of the above banner URLs. # Corresponds to the JSON property `bannerExternalUrl` # @return [String] attr_accessor :banner_external_url # Banner image. Desktop size (1060x175). # Corresponds to the JSON property `bannerImageUrl` # @return [String] attr_accessor :banner_image_url # Banner image. Mobile size high resolution (1440x395). # Corresponds to the JSON property `bannerMobileExtraHdImageUrl` # @return [String] attr_accessor :banner_mobile_extra_hd_image_url # Banner image. Mobile size high resolution (1280x360). # Corresponds to the JSON property `bannerMobileHdImageUrl` # @return [String] attr_accessor :banner_mobile_hd_image_url # Banner image. Mobile size (640x175). # Corresponds to the JSON property `bannerMobileImageUrl` # @return [String] attr_accessor :banner_mobile_image_url # Banner image. Mobile size low resolution (320x88). # Corresponds to the JSON property `bannerMobileLowImageUrl` # @return [String] attr_accessor :banner_mobile_low_image_url # Banner image. Mobile size medium/high resolution (960x263). # Corresponds to the JSON property `bannerMobileMediumHdImageUrl` # @return [String] attr_accessor :banner_mobile_medium_hd_image_url # Banner image. Tablet size extra high resolution (2560x424). # Corresponds to the JSON property `bannerTabletExtraHdImageUrl` # @return [String] attr_accessor :banner_tablet_extra_hd_image_url # Banner image. Tablet size high resolution (2276x377). # Corresponds to the JSON property `bannerTabletHdImageUrl` # @return [String] attr_accessor :banner_tablet_hd_image_url # Banner image. Tablet size (1707x283). # Corresponds to the JSON property `bannerTabletImageUrl` # @return [String] attr_accessor :banner_tablet_image_url # Banner image. Tablet size low resolution (1138x188). # Corresponds to the JSON property `bannerTabletLowImageUrl` # @return [String] attr_accessor :banner_tablet_low_image_url # Banner image. TV size high resolution (1920x1080). # Corresponds to the JSON property `bannerTvHighImageUrl` # @return [String] attr_accessor :banner_tv_high_image_url # Banner image. TV size extra high resolution (2120x1192). # Corresponds to the JSON property `bannerTvImageUrl` # @return [String] attr_accessor :banner_tv_image_url # Banner image. TV size low resolution (854x480). # Corresponds to the JSON property `bannerTvLowImageUrl` # @return [String] attr_accessor :banner_tv_low_image_url # Banner image. TV size medium resolution (1280x720). # Corresponds to the JSON property `bannerTvMediumImageUrl` # @return [String] attr_accessor :banner_tv_medium_image_url # The image map script for the large banner image. # Corresponds to the JSON property `largeBrandedBannerImageImapScript` # @return [Google::Apis::YoutubeV3::LocalizedProperty] attr_accessor :large_branded_banner_image_imap_script # The URL for the 854px by 70px image that appears below the video player in the # expanded video view of the video watch page. # Corresponds to the JSON property `largeBrandedBannerImageUrl` # @return [Google::Apis::YoutubeV3::LocalizedProperty] attr_accessor :large_branded_banner_image_url # The image map script for the small banner image. # Corresponds to the JSON property `smallBrandedBannerImageImapScript` # @return [Google::Apis::YoutubeV3::LocalizedProperty] attr_accessor :small_branded_banner_image_imap_script # The URL for the 640px by 70px banner image that appears below the video player # in the default view of the video watch page. The URL for the image that # appears above the top-left corner of the video player. This is a 25-pixel-high # image with a flexible width that cannot exceed 170 pixels. # Corresponds to the JSON property `smallBrandedBannerImageUrl` # @return [Google::Apis::YoutubeV3::LocalizedProperty] attr_accessor :small_branded_banner_image_url # The URL for a 1px by 1px tracking pixel that can be used to collect statistics # for views of the channel or video pages. # Corresponds to the JSON property `trackingImageUrl` # @return [String] attr_accessor :tracking_image_url # # Corresponds to the JSON property `watchIconImageUrl` # @return [String] attr_accessor :watch_icon_image_url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @background_image_url = args[:background_image_url] if args.key?(:background_image_url) @banner_external_url = args[:banner_external_url] if args.key?(:banner_external_url) @banner_image_url = args[:banner_image_url] if args.key?(:banner_image_url) @banner_mobile_extra_hd_image_url = args[:banner_mobile_extra_hd_image_url] if args.key?(:banner_mobile_extra_hd_image_url) @banner_mobile_hd_image_url = args[:banner_mobile_hd_image_url] if args.key?(:banner_mobile_hd_image_url) @banner_mobile_image_url = args[:banner_mobile_image_url] if args.key?(:banner_mobile_image_url) @banner_mobile_low_image_url = args[:banner_mobile_low_image_url] if args.key?(:banner_mobile_low_image_url) @banner_mobile_medium_hd_image_url = args[:banner_mobile_medium_hd_image_url] if args.key?(:banner_mobile_medium_hd_image_url) @banner_tablet_extra_hd_image_url = args[:banner_tablet_extra_hd_image_url] if args.key?(:banner_tablet_extra_hd_image_url) @banner_tablet_hd_image_url = args[:banner_tablet_hd_image_url] if args.key?(:banner_tablet_hd_image_url) @banner_tablet_image_url = args[:banner_tablet_image_url] if args.key?(:banner_tablet_image_url) @banner_tablet_low_image_url = args[:banner_tablet_low_image_url] if args.key?(:banner_tablet_low_image_url) @banner_tv_high_image_url = args[:banner_tv_high_image_url] if args.key?(:banner_tv_high_image_url) @banner_tv_image_url = args[:banner_tv_image_url] if args.key?(:banner_tv_image_url) @banner_tv_low_image_url = args[:banner_tv_low_image_url] if args.key?(:banner_tv_low_image_url) @banner_tv_medium_image_url = args[:banner_tv_medium_image_url] if args.key?(:banner_tv_medium_image_url) @large_branded_banner_image_imap_script = args[:large_branded_banner_image_imap_script] if args.key?(:large_branded_banner_image_imap_script) @large_branded_banner_image_url = args[:large_branded_banner_image_url] if args.key?(:large_branded_banner_image_url) @small_branded_banner_image_imap_script = args[:small_branded_banner_image_imap_script] if args.key?(:small_branded_banner_image_imap_script) @small_branded_banner_image_url = args[:small_branded_banner_image_url] if args.key?(:small_branded_banner_image_url) @tracking_image_url = args[:tracking_image_url] if args.key?(:tracking_image_url) @watch_icon_image_url = args[:watch_icon_image_url] if args.key?(:watch_icon_image_url) end end # Describes information necessary for ingesting an RTMP or an HTTP stream. class IngestionInfo include Google::Apis::Core::Hashable # The backup ingestion URL that you should use to stream video to YouTube. You # have the option of simultaneously streaming the content that you are sending # to the ingestionAddress to this URL. # Corresponds to the JSON property `backupIngestionAddress` # @return [String] attr_accessor :backup_ingestion_address # The primary ingestion URL that you should use to stream video to YouTube. You # must stream video to this URL. Depending on which application or tool you use # to encode your video stream, you may need to enter the stream URL and stream # name separately or you may need to concatenate them in the following format: * # STREAM_URL/STREAM_NAME* # Corresponds to the JSON property `ingestionAddress` # @return [String] attr_accessor :ingestion_address # This ingestion url may be used instead of backupIngestionAddress in order to # stream via RTMPS. Not applicable to non-RTMP streams. # Corresponds to the JSON property `rtmpsBackupIngestionAddress` # @return [String] attr_accessor :rtmps_backup_ingestion_address # This ingestion url may be used instead of ingestionAddress in order to stream # via RTMPS. Not applicable to non-RTMP streams. # Corresponds to the JSON property `rtmpsIngestionAddress` # @return [String] attr_accessor :rtmps_ingestion_address # The HTTP or RTMP stream name that YouTube assigns to the video stream. # Corresponds to the JSON property `streamName` # @return [String] attr_accessor :stream_name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @backup_ingestion_address = args[:backup_ingestion_address] if args.key?(:backup_ingestion_address) @ingestion_address = args[:ingestion_address] if args.key?(:ingestion_address) @rtmps_backup_ingestion_address = args[:rtmps_backup_ingestion_address] if args.key?(:rtmps_backup_ingestion_address) @rtmps_ingestion_address = args[:rtmps_ingestion_address] if args.key?(:rtmps_ingestion_address) @stream_name = args[:stream_name] if args.key?(:stream_name) end end # LINT.IfChange Describes an invideo branding. class InvideoBranding include Google::Apis::Core::Hashable # The bytes the uploaded image. Only used in api to youtube communication. # Corresponds to the JSON property `imageBytes` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :image_bytes # The url of the uploaded image. Only used in apiary to api communication. # Corresponds to the JSON property `imageUrl` # @return [String] attr_accessor :image_url # Describes the spatial position of a visual widget inside a video. It is a # union of various position types, out of which only will be set one. # Corresponds to the JSON property `position` # @return [Google::Apis::YoutubeV3::InvideoPosition] attr_accessor :position # The channel to which this branding links. If not present it defaults to the # current channel. # Corresponds to the JSON property `targetChannelId` # @return [String] attr_accessor :target_channel_id # Describes a temporal position of a visual widget inside a video. # Corresponds to the JSON property `timing` # @return [Google::Apis::YoutubeV3::InvideoTiming] attr_accessor :timing def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @image_bytes = args[:image_bytes] if args.key?(:image_bytes) @image_url = args[:image_url] if args.key?(:image_url) @position = args[:position] if args.key?(:position) @target_channel_id = args[:target_channel_id] if args.key?(:target_channel_id) @timing = args[:timing] if args.key?(:timing) end end # Describes the spatial position of a visual widget inside a video. It is a # union of various position types, out of which only will be set one. class InvideoPosition include Google::Apis::Core::Hashable # Describes in which corner of the video the visual widget will appear. # Corresponds to the JSON property `cornerPosition` # @return [String] attr_accessor :corner_position # Defines the position type. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @corner_position = args[:corner_position] if args.key?(:corner_position) @type = args[:type] if args.key?(:type) end end # Describes an invideo promotion campaign consisting of multiple promoted items. # A campaign belongs to a single channel_id. class InvideoPromotion include Google::Apis::Core::Hashable # Describes a temporal position of a visual widget inside a video. # Corresponds to the JSON property `defaultTiming` # @return [Google::Apis::YoutubeV3::InvideoTiming] attr_accessor :default_timing # List of promoted items in decreasing priority. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Describes the spatial position of a visual widget inside a video. It is a # union of various position types, out of which only will be set one. # Corresponds to the JSON property `position` # @return [Google::Apis::YoutubeV3::InvideoPosition] attr_accessor :position # Indicates whether the channel's promotional campaign uses "smart timing." This # feature attempts to show promotions at a point in the video when they are more # likely to be clicked and less likely to disrupt the viewing experience. This # feature also picks up a single promotion to show on each video. # Corresponds to the JSON property `useSmartTiming` # @return [Boolean] attr_accessor :use_smart_timing alias_method :use_smart_timing?, :use_smart_timing def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @default_timing = args[:default_timing] if args.key?(:default_timing) @items = args[:items] if args.key?(:items) @position = args[:position] if args.key?(:position) @use_smart_timing = args[:use_smart_timing] if args.key?(:use_smart_timing) end end # Describes a temporal position of a visual widget inside a video. class InvideoTiming include Google::Apis::Core::Hashable # Defines the duration in milliseconds for which the promotion should be # displayed. If missing, the client should use the default. # Corresponds to the JSON property `durationMs` # @return [Fixnum] attr_accessor :duration_ms # Defines the time at which the promotion will appear. Depending on the value of # type the value of the offsetMs field will represent a time offset from the # start or from the end of the video, expressed in milliseconds. # Corresponds to the JSON property `offsetMs` # @return [Fixnum] attr_accessor :offset_ms # Describes a timing type. If the value is offsetFromStart, then the offsetMs # field represents an offset from the start of the video. If the value is # offsetFromEnd, then the offsetMs field represents an offset from the end of # the video. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @duration_ms = args[:duration_ms] if args.key?(:duration_ms) @offset_ms = args[:offset_ms] if args.key?(:offset_ms) @type = args[:type] if args.key?(:type) end end # class LanguageTag include Google::Apis::Core::Hashable # # Corresponds to the JSON property `value` # @return [String] attr_accessor :value def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @value = args[:value] if args.key?(:value) end end # class LevelDetails include Google::Apis::Core::Hashable # The name that should be used when referring to this level. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @display_name = args[:display_name] if args.key?(:display_name) end end # A *liveBroadcast* resource represents an event that will be streamed, via live # video, on YouTube. class LiveBroadcast include Google::Apis::Core::Hashable # Detailed settings of a broadcast. # Corresponds to the JSON property `contentDetails` # @return [Google::Apis::YoutubeV3::LiveBroadcastContentDetails] attr_accessor :content_details # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # The ID that YouTube assigns to uniquely identify the broadcast. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # Identifies what kind of resource this is. Value: the fixed string "youtube# # liveBroadcast". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Basic broadcast information. # Corresponds to the JSON property `snippet` # @return [Google::Apis::YoutubeV3::LiveBroadcastSnippet] attr_accessor :snippet # Statistics about the live broadcast. These represent a snapshot of the values # at the time of the request. Statistics are only returned for live broadcasts. # Corresponds to the JSON property `statistics` # @return [Google::Apis::YoutubeV3::LiveBroadcastStatistics] attr_accessor :statistics # Live broadcast state. # Corresponds to the JSON property `status` # @return [Google::Apis::YoutubeV3::LiveBroadcastStatus] attr_accessor :status def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @content_details = args[:content_details] if args.key?(:content_details) @etag = args[:etag] if args.key?(:etag) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @snippet = args[:snippet] if args.key?(:snippet) @statistics = args[:statistics] if args.key?(:statistics) @status = args[:status] if args.key?(:status) end end # Detailed settings of a broadcast. class LiveBroadcastContentDetails include Google::Apis::Core::Hashable # This value uniquely identifies the live stream bound to the broadcast. # Corresponds to the JSON property `boundStreamId` # @return [String] attr_accessor :bound_stream_id # The date and time that the live stream referenced by boundStreamId was last # updated. # Corresponds to the JSON property `boundStreamLastUpdateTimeMs` # @return [String] attr_accessor :bound_stream_last_update_time_ms # # Corresponds to the JSON property `closedCaptionsType` # @return [String] attr_accessor :closed_captions_type # This setting indicates whether auto start is enabled for this broadcast. The # default value for this property is false. This setting can only be used by # Events. # Corresponds to the JSON property `enableAutoStart` # @return [Boolean] attr_accessor :enable_auto_start alias_method :enable_auto_start?, :enable_auto_start # This setting indicates whether auto stop is enabled for this broadcast. The # default value for this property is false. This setting can only be used by # Events. # Corresponds to the JSON property `enableAutoStop` # @return [Boolean] attr_accessor :enable_auto_stop alias_method :enable_auto_stop?, :enable_auto_stop # This setting indicates whether HTTP POST closed captioning is enabled for this # broadcast. The ingestion URL of the closed captions is returned through the # liveStreams API. This is mutually exclusive with using the # closed_captions_type property, and is equivalent to setting # closed_captions_type to CLOSED_CAPTIONS_HTTP_POST. # Corresponds to the JSON property `enableClosedCaptions` # @return [Boolean] attr_accessor :enable_closed_captions alias_method :enable_closed_captions?, :enable_closed_captions # This setting indicates whether YouTube should enable content encryption for # the broadcast. # Corresponds to the JSON property `enableContentEncryption` # @return [Boolean] attr_accessor :enable_content_encryption alias_method :enable_content_encryption?, :enable_content_encryption # This setting determines whether viewers can access DVR controls while watching # the video. DVR controls enable the viewer to control the video playback # experience by pausing, rewinding, or fast forwarding content. The default # value for this property is true. *Important:* You must set the value to true # and also set the enableArchive property's value to true if you want to make # playback available immediately after the broadcast ends. # Corresponds to the JSON property `enableDvr` # @return [Boolean] attr_accessor :enable_dvr alias_method :enable_dvr?, :enable_dvr # This setting indicates whether the broadcast video can be played in an # embedded player. If you choose to archive the video (using the enableArchive # property), this setting will also apply to the archived video. # Corresponds to the JSON property `enableEmbed` # @return [Boolean] attr_accessor :enable_embed alias_method :enable_embed?, :enable_embed # Indicates whether this broadcast has low latency enabled. # Corresponds to the JSON property `enableLowLatency` # @return [Boolean] attr_accessor :enable_low_latency alias_method :enable_low_latency?, :enable_low_latency # If both this and enable_low_latency are set, they must match. LATENCY_NORMAL # should match enable_low_latency=false LATENCY_LOW should match # enable_low_latency=true LATENCY_ULTRA_LOW should have enable_low_latency # omitted. # Corresponds to the JSON property `latencyPreference` # @return [String] attr_accessor :latency_preference # The mesh for projecting the video if projection is mesh. The mesh value must # be a UTF-8 string containing the base-64 encoding of 3D mesh data that follows # the Spherical Video V2 RFC specification for an mshp box, excluding the box # size and type but including the following four reserved zero bytes for the # version and flags. # Corresponds to the JSON property `mesh` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :mesh # Settings and Info of the monitor stream # Corresponds to the JSON property `monitorStream` # @return [Google::Apis::YoutubeV3::MonitorStreamInfo] attr_accessor :monitor_stream # The projection format of this broadcast. This defaults to rectangular. # Corresponds to the JSON property `projection` # @return [String] attr_accessor :projection # Automatically start recording after the event goes live. The default value for # this property is true. *Important:* You must also set the enableDvr property's # value to true if you want the playback to be available immediately after the # broadcast ends. If you set this property's value to true but do not also set # the enableDvr property to true, there may be a delay of around one day before # the archived video will be available for playback. # Corresponds to the JSON property `recordFromStart` # @return [Boolean] attr_accessor :record_from_start alias_method :record_from_start?, :record_from_start # This setting indicates whether the broadcast should automatically begin with # an in-stream slate when you update the broadcast's status to live. After # updating the status, you then need to send a liveCuepoints.insert request that # sets the cuepoint's eventState to end to remove the in-stream slate and make # your broadcast stream visible to viewers. # Corresponds to the JSON property `startWithSlate` # @return [Boolean] attr_accessor :start_with_slate alias_method :start_with_slate?, :start_with_slate def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @bound_stream_id = args[:bound_stream_id] if args.key?(:bound_stream_id) @bound_stream_last_update_time_ms = args[:bound_stream_last_update_time_ms] if args.key?(:bound_stream_last_update_time_ms) @closed_captions_type = args[:closed_captions_type] if args.key?(:closed_captions_type) @enable_auto_start = args[:enable_auto_start] if args.key?(:enable_auto_start) @enable_auto_stop = args[:enable_auto_stop] if args.key?(:enable_auto_stop) @enable_closed_captions = args[:enable_closed_captions] if args.key?(:enable_closed_captions) @enable_content_encryption = args[:enable_content_encryption] if args.key?(:enable_content_encryption) @enable_dvr = args[:enable_dvr] if args.key?(:enable_dvr) @enable_embed = args[:enable_embed] if args.key?(:enable_embed) @enable_low_latency = args[:enable_low_latency] if args.key?(:enable_low_latency) @latency_preference = args[:latency_preference] if args.key?(:latency_preference) @mesh = args[:mesh] if args.key?(:mesh) @monitor_stream = args[:monitor_stream] if args.key?(:monitor_stream) @projection = args[:projection] if args.key?(:projection) @record_from_start = args[:record_from_start] if args.key?(:record_from_start) @start_with_slate = args[:start_with_slate] if args.key?(:start_with_slate) end end # class ListLiveBroadcastsResponse include Google::Apis::Core::Hashable # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # Serialized EventId of the request which produced this response. # Corresponds to the JSON property `eventId` # @return [String] attr_accessor :event_id # A list of broadcasts that match the request criteria. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Identifies what kind of resource this is. Value: the fixed string "youtube# # liveBroadcastListResponse". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The token that can be used as the value of the pageToken parameter to retrieve # the next page in the result set. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # Paging details for lists of resources, including total number of items # available and number of resources returned in a single page. # Corresponds to the JSON property `pageInfo` # @return [Google::Apis::YoutubeV3::PageInfo] attr_accessor :page_info # The token that can be used as the value of the pageToken parameter to retrieve # the previous page in the result set. # Corresponds to the JSON property `prevPageToken` # @return [String] attr_accessor :prev_page_token # Stub token pagination template to suppress results. # Corresponds to the JSON property `tokenPagination` # @return [Google::Apis::YoutubeV3::TokenPagination] attr_accessor :token_pagination # The visitorId identifies the visitor. # Corresponds to the JSON property `visitorId` # @return [String] attr_accessor :visitor_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @event_id = args[:event_id] if args.key?(:event_id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @page_info = args[:page_info] if args.key?(:page_info) @prev_page_token = args[:prev_page_token] if args.key?(:prev_page_token) @token_pagination = args[:token_pagination] if args.key?(:token_pagination) @visitor_id = args[:visitor_id] if args.key?(:visitor_id) end end # Basic broadcast information. class LiveBroadcastSnippet include Google::Apis::Core::Hashable # The date and time that the broadcast actually ended. This information is only # available once the broadcast's state is complete. The value is specified in # ISO 8601 format. # Corresponds to the JSON property `actualEndTime` # @return [String] attr_accessor :actual_end_time # The date and time that the broadcast actually started. This information is # only available once the broadcast's state is live. The value is specified in # ISO 8601 format. # Corresponds to the JSON property `actualStartTime` # @return [String] attr_accessor :actual_start_time # The ID that YouTube uses to uniquely identify the channel that is publishing # the broadcast. # Corresponds to the JSON property `channelId` # @return [String] attr_accessor :channel_id # The broadcast's description. As with the title, you can set this field by # modifying the broadcast resource or by setting the description field of the # corresponding video resource. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Indicates whether this broadcast is the default broadcast. Internal only. # Corresponds to the JSON property `isDefaultBroadcast` # @return [Boolean] attr_accessor :is_default_broadcast alias_method :is_default_broadcast?, :is_default_broadcast # The id of the live chat for this broadcast. # Corresponds to the JSON property `liveChatId` # @return [String] attr_accessor :live_chat_id # The date and time that the broadcast was added to YouTube's live broadcast # schedule. The value is specified in ISO 8601 format. # Corresponds to the JSON property `publishedAt` # @return [String] attr_accessor :published_at # The date and time that the broadcast is scheduled to end. The value is # specified in ISO 8601 format. # Corresponds to the JSON property `scheduledEndTime` # @return [String] attr_accessor :scheduled_end_time # The date and time that the broadcast is scheduled to start. The value is # specified in ISO 8601 format. # Corresponds to the JSON property `scheduledStartTime` # @return [String] attr_accessor :scheduled_start_time # Internal representation of thumbnails for a YouTube resource. # Corresponds to the JSON property `thumbnails` # @return [Google::Apis::YoutubeV3::ThumbnailDetails] attr_accessor :thumbnails # The broadcast's title. Note that the broadcast represents exactly one YouTube # video. You can set this field by modifying the broadcast resource or by # setting the title field of the corresponding video resource. # Corresponds to the JSON property `title` # @return [String] attr_accessor :title def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @actual_end_time = args[:actual_end_time] if args.key?(:actual_end_time) @actual_start_time = args[:actual_start_time] if args.key?(:actual_start_time) @channel_id = args[:channel_id] if args.key?(:channel_id) @description = args[:description] if args.key?(:description) @is_default_broadcast = args[:is_default_broadcast] if args.key?(:is_default_broadcast) @live_chat_id = args[:live_chat_id] if args.key?(:live_chat_id) @published_at = args[:published_at] if args.key?(:published_at) @scheduled_end_time = args[:scheduled_end_time] if args.key?(:scheduled_end_time) @scheduled_start_time = args[:scheduled_start_time] if args.key?(:scheduled_start_time) @thumbnails = args[:thumbnails] if args.key?(:thumbnails) @title = args[:title] if args.key?(:title) end end # Statistics about the live broadcast. These represent a snapshot of the values # at the time of the request. Statistics are only returned for live broadcasts. class LiveBroadcastStatistics include Google::Apis::Core::Hashable # The total number of live chat messages currently on the broadcast. The # property and its value will be present if the broadcast is public, has the # live chat feature enabled, and has at least one message. Note that this field # will not be filled after the broadcast ends. So this property would not # identify the number of chat messages for an archived video of a completed live # broadcast. # Corresponds to the JSON property `totalChatCount` # @return [Fixnum] attr_accessor :total_chat_count def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @total_chat_count = args[:total_chat_count] if args.key?(:total_chat_count) end end # Live broadcast state. class LiveBroadcastStatus include Google::Apis::Core::Hashable # The broadcast's status. The status can be updated using the API's # liveBroadcasts.transition method. # Corresponds to the JSON property `lifeCycleStatus` # @return [String] attr_accessor :life_cycle_status # Priority of the live broadcast event (internal state). # Corresponds to the JSON property `liveBroadcastPriority` # @return [String] attr_accessor :live_broadcast_priority # Whether the broadcast is made for kids or not, decided by YouTube instead of # the creator. This field is read only. # Corresponds to the JSON property `madeForKids` # @return [Boolean] attr_accessor :made_for_kids alias_method :made_for_kids?, :made_for_kids # The broadcast's privacy status. Note that the broadcast represents exactly one # YouTube video, so the privacy settings are identical to those supported for # videos. In addition, you can set this field by modifying the broadcast # resource or by setting the privacyStatus field of the corresponding video # resource. # Corresponds to the JSON property `privacyStatus` # @return [String] attr_accessor :privacy_status # The broadcast's recording status. # Corresponds to the JSON property `recordingStatus` # @return [String] attr_accessor :recording_status # This field will be set to True if the creator declares the broadcast to be # kids only: go/live-cw-work. # Corresponds to the JSON property `selfDeclaredMadeForKids` # @return [Boolean] attr_accessor :self_declared_made_for_kids alias_method :self_declared_made_for_kids?, :self_declared_made_for_kids def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @life_cycle_status = args[:life_cycle_status] if args.key?(:life_cycle_status) @live_broadcast_priority = args[:live_broadcast_priority] if args.key?(:live_broadcast_priority) @made_for_kids = args[:made_for_kids] if args.key?(:made_for_kids) @privacy_status = args[:privacy_status] if args.key?(:privacy_status) @recording_status = args[:recording_status] if args.key?(:recording_status) @self_declared_made_for_kids = args[:self_declared_made_for_kids] if args.key?(:self_declared_made_for_kids) end end # A `__liveChatBan__` resource represents a ban for a YouTube live chat. class LiveChatBan include Google::Apis::Core::Hashable # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # The ID that YouTube assigns to uniquely identify the ban. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # Identifies what kind of resource this is. Value: the fixed string `"youtube# # liveChatBan"`. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The `snippet` object contains basic details about the ban. # Corresponds to the JSON property `snippet` # @return [Google::Apis::YoutubeV3::LiveChatBanSnippet] attr_accessor :snippet def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @snippet = args[:snippet] if args.key?(:snippet) end end # class LiveChatBanSnippet include Google::Apis::Core::Hashable # The duration of a ban, only filled if the ban has type TEMPORARY. # Corresponds to the JSON property `banDurationSeconds` # @return [Fixnum] attr_accessor :ban_duration_seconds # # Corresponds to the JSON property `bannedUserDetails` # @return [Google::Apis::YoutubeV3::ChannelProfileDetails] attr_accessor :banned_user_details # The chat this ban is pertinent to. # Corresponds to the JSON property `liveChatId` # @return [String] attr_accessor :live_chat_id # The type of ban. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ban_duration_seconds = args[:ban_duration_seconds] if args.key?(:ban_duration_seconds) @banned_user_details = args[:banned_user_details] if args.key?(:banned_user_details) @live_chat_id = args[:live_chat_id] if args.key?(:live_chat_id) @type = args[:type] if args.key?(:type) end end # class LiveChatFanFundingEventDetails include Google::Apis::Core::Hashable # A rendered string that displays the fund amount and currency to the user. # Corresponds to the JSON property `amountDisplayString` # @return [String] attr_accessor :amount_display_string # The amount of the fund. # Corresponds to the JSON property `amountMicros` # @return [Fixnum] attr_accessor :amount_micros # The currency in which the fund was made. # Corresponds to the JSON property `currency` # @return [String] attr_accessor :currency # The comment added by the user to this fan funding event. # Corresponds to the JSON property `userComment` # @return [String] attr_accessor :user_comment def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @amount_display_string = args[:amount_display_string] if args.key?(:amount_display_string) @amount_micros = args[:amount_micros] if args.key?(:amount_micros) @currency = args[:currency] if args.key?(:currency) @user_comment = args[:user_comment] if args.key?(:user_comment) end end # A *liveChatMessage* resource represents a chat message in a YouTube Live Chat. class LiveChatMessage include Google::Apis::Core::Hashable # The authorDetails object contains basic details about the user that posted # this message. # Corresponds to the JSON property `authorDetails` # @return [Google::Apis::YoutubeV3::LiveChatMessageAuthorDetails] attr_accessor :author_details # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # The ID that YouTube assigns to uniquely identify the message. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # Identifies what kind of resource this is. Value: the fixed string "youtube# # liveChatMessage". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The snippet object contains basic details about the message. # Corresponds to the JSON property `snippet` # @return [Google::Apis::YoutubeV3::LiveChatMessageSnippet] attr_accessor :snippet def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @author_details = args[:author_details] if args.key?(:author_details) @etag = args[:etag] if args.key?(:etag) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @snippet = args[:snippet] if args.key?(:snippet) end end # class LiveChatMessageAuthorDetails include Google::Apis::Core::Hashable # The YouTube channel ID. # Corresponds to the JSON property `channelId` # @return [String] attr_accessor :channel_id # The channel's URL. # Corresponds to the JSON property `channelUrl` # @return [String] attr_accessor :channel_url # The channel's display name. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Whether the author is a moderator of the live chat. # Corresponds to the JSON property `isChatModerator` # @return [Boolean] attr_accessor :is_chat_moderator alias_method :is_chat_moderator?, :is_chat_moderator # Whether the author is the owner of the live chat. # Corresponds to the JSON property `isChatOwner` # @return [Boolean] attr_accessor :is_chat_owner alias_method :is_chat_owner?, :is_chat_owner # Whether the author is a sponsor of the live chat. # Corresponds to the JSON property `isChatSponsor` # @return [Boolean] attr_accessor :is_chat_sponsor alias_method :is_chat_sponsor?, :is_chat_sponsor # Whether the author's identity has been verified by YouTube. # Corresponds to the JSON property `isVerified` # @return [Boolean] attr_accessor :is_verified alias_method :is_verified?, :is_verified # The channels's avatar URL. # Corresponds to the JSON property `profileImageUrl` # @return [String] attr_accessor :profile_image_url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @channel_id = args[:channel_id] if args.key?(:channel_id) @channel_url = args[:channel_url] if args.key?(:channel_url) @display_name = args[:display_name] if args.key?(:display_name) @is_chat_moderator = args[:is_chat_moderator] if args.key?(:is_chat_moderator) @is_chat_owner = args[:is_chat_owner] if args.key?(:is_chat_owner) @is_chat_sponsor = args[:is_chat_sponsor] if args.key?(:is_chat_sponsor) @is_verified = args[:is_verified] if args.key?(:is_verified) @profile_image_url = args[:profile_image_url] if args.key?(:profile_image_url) end end # class LiveChatMessageDeletedDetails include Google::Apis::Core::Hashable # # Corresponds to the JSON property `deletedMessageId` # @return [String] attr_accessor :deleted_message_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @deleted_message_id = args[:deleted_message_id] if args.key?(:deleted_message_id) end end # class LiveChatMessageListResponse include Google::Apis::Core::Hashable # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # Serialized EventId of the request which produced this response. # Corresponds to the JSON property `eventId` # @return [String] attr_accessor :event_id # # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Identifies what kind of resource this is. Value: the fixed string "youtube# # liveChatMessageListResponse". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # The date and time when the underlying stream went offline. The value is # specified in ISO 8601 format. # Corresponds to the JSON property `offlineAt` # @return [String] attr_accessor :offline_at # Paging details for lists of resources, including total number of items # available and number of resources returned in a single page. # Corresponds to the JSON property `pageInfo` # @return [Google::Apis::YoutubeV3::PageInfo] attr_accessor :page_info # The amount of time the client should wait before polling again. # Corresponds to the JSON property `pollingIntervalMillis` # @return [Fixnum] attr_accessor :polling_interval_millis # Stub token pagination template to suppress results. # Corresponds to the JSON property `tokenPagination` # @return [Google::Apis::YoutubeV3::TokenPagination] attr_accessor :token_pagination # The visitorId identifies the visitor. # Corresponds to the JSON property `visitorId` # @return [String] attr_accessor :visitor_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @event_id = args[:event_id] if args.key?(:event_id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @offline_at = args[:offline_at] if args.key?(:offline_at) @page_info = args[:page_info] if args.key?(:page_info) @polling_interval_millis = args[:polling_interval_millis] if args.key?(:polling_interval_millis) @token_pagination = args[:token_pagination] if args.key?(:token_pagination) @visitor_id = args[:visitor_id] if args.key?(:visitor_id) end end # class LiveChatMessageRetractedDetails include Google::Apis::Core::Hashable # # Corresponds to the JSON property `retractedMessageId` # @return [String] attr_accessor :retracted_message_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @retracted_message_id = args[:retracted_message_id] if args.key?(:retracted_message_id) end end # class LiveChatMessageSnippet include Google::Apis::Core::Hashable # The ID of the user that authored this message, this field is not always filled. # textMessageEvent - the user that wrote the message fanFundingEvent - the user # that funded the broadcast newSponsorEvent - the user that just became a # sponsor messageDeletedEvent - the moderator that took the action # messageRetractedEvent - the author that retracted their message # userBannedEvent - the moderator that took the action superChatEvent - the user # that made the purchase # Corresponds to the JSON property `authorChannelId` # @return [String] attr_accessor :author_channel_id # Contains a string that can be displayed to the user. If this field is not # present the message is silent, at the moment only messages of type TOMBSTONE # and CHAT_ENDED_EVENT are silent. # Corresponds to the JSON property `displayMessage` # @return [String] attr_accessor :display_message # Details about the funding event, this is only set if the type is ' # fanFundingEvent'. # Corresponds to the JSON property `fanFundingEventDetails` # @return [Google::Apis::YoutubeV3::LiveChatFanFundingEventDetails] attr_accessor :fan_funding_event_details # Whether the message has display content that should be displayed to users. # Corresponds to the JSON property `hasDisplayContent` # @return [Boolean] attr_accessor :has_display_content alias_method :has_display_content?, :has_display_content # # Corresponds to the JSON property `liveChatId` # @return [String] attr_accessor :live_chat_id # # Corresponds to the JSON property `messageDeletedDetails` # @return [Google::Apis::YoutubeV3::LiveChatMessageDeletedDetails] attr_accessor :message_deleted_details # # Corresponds to the JSON property `messageRetractedDetails` # @return [Google::Apis::YoutubeV3::LiveChatMessageRetractedDetails] attr_accessor :message_retracted_details # The date and time when the message was orignally published. The value is # specified in ISO 8601 format. # Corresponds to the JSON property `publishedAt` # @return [String] attr_accessor :published_at # Details about the Super Chat event, this is only set if the type is ' # superChatEvent'. # Corresponds to the JSON property `superChatDetails` # @return [Google::Apis::YoutubeV3::LiveChatSuperChatDetails] attr_accessor :super_chat_details # Details about the Super Sticker event, this is only set if the type is ' # superStickerEvent'. # Corresponds to the JSON property `superStickerDetails` # @return [Google::Apis::YoutubeV3::LiveChatSuperStickerDetails] attr_accessor :super_sticker_details # Details about the text message, this is only set if the type is ' # textMessageEvent'. # Corresponds to the JSON property `textMessageDetails` # @return [Google::Apis::YoutubeV3::LiveChatTextMessageDetails] attr_accessor :text_message_details # The type of message, this will always be present, it determines the contents # of the message as well as which fields will be present. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # # Corresponds to the JSON property `userBannedDetails` # @return [Google::Apis::YoutubeV3::LiveChatUserBannedMessageDetails] attr_accessor :user_banned_details def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @author_channel_id = args[:author_channel_id] if args.key?(:author_channel_id) @display_message = args[:display_message] if args.key?(:display_message) @fan_funding_event_details = args[:fan_funding_event_details] if args.key?(:fan_funding_event_details) @has_display_content = args[:has_display_content] if args.key?(:has_display_content) @live_chat_id = args[:live_chat_id] if args.key?(:live_chat_id) @message_deleted_details = args[:message_deleted_details] if args.key?(:message_deleted_details) @message_retracted_details = args[:message_retracted_details] if args.key?(:message_retracted_details) @published_at = args[:published_at] if args.key?(:published_at) @super_chat_details = args[:super_chat_details] if args.key?(:super_chat_details) @super_sticker_details = args[:super_sticker_details] if args.key?(:super_sticker_details) @text_message_details = args[:text_message_details] if args.key?(:text_message_details) @type = args[:type] if args.key?(:type) @user_banned_details = args[:user_banned_details] if args.key?(:user_banned_details) end end # A *liveChatModerator* resource represents a moderator for a YouTube live chat. # A chat moderator has the ability to ban/unban users from a chat, remove # message, etc. class LiveChatModerator include Google::Apis::Core::Hashable # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # The ID that YouTube assigns to uniquely identify the moderator. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # Identifies what kind of resource this is. Value: the fixed string "youtube# # liveChatModerator". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The snippet object contains basic details about the moderator. # Corresponds to the JSON property `snippet` # @return [Google::Apis::YoutubeV3::LiveChatModeratorSnippet] attr_accessor :snippet def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @snippet = args[:snippet] if args.key?(:snippet) end end # class LiveChatModeratorListResponse include Google::Apis::Core::Hashable # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # Serialized EventId of the request which produced this response. # Corresponds to the JSON property `eventId` # @return [String] attr_accessor :event_id # A list of moderators that match the request criteria. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Identifies what kind of resource this is. Value: the fixed string "youtube# # liveChatModeratorListResponse". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The token that can be used as the value of the pageToken parameter to retrieve # the next page in the result set. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # Paging details for lists of resources, including total number of items # available and number of resources returned in a single page. # Corresponds to the JSON property `pageInfo` # @return [Google::Apis::YoutubeV3::PageInfo] attr_accessor :page_info # The token that can be used as the value of the pageToken parameter to retrieve # the previous page in the result set. # Corresponds to the JSON property `prevPageToken` # @return [String] attr_accessor :prev_page_token # Stub token pagination template to suppress results. # Corresponds to the JSON property `tokenPagination` # @return [Google::Apis::YoutubeV3::TokenPagination] attr_accessor :token_pagination # The visitorId identifies the visitor. # Corresponds to the JSON property `visitorId` # @return [String] attr_accessor :visitor_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @event_id = args[:event_id] if args.key?(:event_id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @page_info = args[:page_info] if args.key?(:page_info) @prev_page_token = args[:prev_page_token] if args.key?(:prev_page_token) @token_pagination = args[:token_pagination] if args.key?(:token_pagination) @visitor_id = args[:visitor_id] if args.key?(:visitor_id) end end # class LiveChatModeratorSnippet include Google::Apis::Core::Hashable # The ID of the live chat this moderator can act on. # Corresponds to the JSON property `liveChatId` # @return [String] attr_accessor :live_chat_id # Details about the moderator. # Corresponds to the JSON property `moderatorDetails` # @return [Google::Apis::YoutubeV3::ChannelProfileDetails] attr_accessor :moderator_details def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @live_chat_id = args[:live_chat_id] if args.key?(:live_chat_id) @moderator_details = args[:moderator_details] if args.key?(:moderator_details) end end # class LiveChatSuperChatDetails include Google::Apis::Core::Hashable # A rendered string that displays the fund amount and currency to the user. # Corresponds to the JSON property `amountDisplayString` # @return [String] attr_accessor :amount_display_string # The amount purchased by the user, in micros (1,750,000 micros = 1.75). # Corresponds to the JSON property `amountMicros` # @return [Fixnum] attr_accessor :amount_micros # The currency in which the purchase was made. # Corresponds to the JSON property `currency` # @return [String] attr_accessor :currency # The tier in which the amount belongs. Lower amounts belong to lower tiers. The # lowest tier is 1. # Corresponds to the JSON property `tier` # @return [Fixnum] attr_accessor :tier # The comment added by the user to this Super Chat event. # Corresponds to the JSON property `userComment` # @return [String] attr_accessor :user_comment def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @amount_display_string = args[:amount_display_string] if args.key?(:amount_display_string) @amount_micros = args[:amount_micros] if args.key?(:amount_micros) @currency = args[:currency] if args.key?(:currency) @tier = args[:tier] if args.key?(:tier) @user_comment = args[:user_comment] if args.key?(:user_comment) end end # class LiveChatSuperStickerDetails include Google::Apis::Core::Hashable # A rendered string that displays the fund amount and currency to the user. # Corresponds to the JSON property `amountDisplayString` # @return [String] attr_accessor :amount_display_string # The amount purchased by the user, in micros (1,750,000 micros = 1.75). # Corresponds to the JSON property `amountMicros` # @return [Fixnum] attr_accessor :amount_micros # The currency in which the purchase was made. # Corresponds to the JSON property `currency` # @return [String] attr_accessor :currency # Information about the Super Sticker. # Corresponds to the JSON property `superStickerMetadata` # @return [Google::Apis::YoutubeV3::SuperStickerMetadata] attr_accessor :super_sticker_metadata # The tier in which the amount belongs. Lower amounts belong to lower tiers. The # lowest tier is 1. # Corresponds to the JSON property `tier` # @return [Fixnum] attr_accessor :tier def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @amount_display_string = args[:amount_display_string] if args.key?(:amount_display_string) @amount_micros = args[:amount_micros] if args.key?(:amount_micros) @currency = args[:currency] if args.key?(:currency) @super_sticker_metadata = args[:super_sticker_metadata] if args.key?(:super_sticker_metadata) @tier = args[:tier] if args.key?(:tier) end end # class LiveChatTextMessageDetails include Google::Apis::Core::Hashable # The user's message. # Corresponds to the JSON property `messageText` # @return [String] attr_accessor :message_text def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @message_text = args[:message_text] if args.key?(:message_text) end end # class LiveChatUserBannedMessageDetails include Google::Apis::Core::Hashable # The duration of the ban. This property is only present if the banType is # temporary. # Corresponds to the JSON property `banDurationSeconds` # @return [Fixnum] attr_accessor :ban_duration_seconds # The type of ban. # Corresponds to the JSON property `banType` # @return [String] attr_accessor :ban_type # The details of the user that was banned. # Corresponds to the JSON property `bannedUserDetails` # @return [Google::Apis::YoutubeV3::ChannelProfileDetails] attr_accessor :banned_user_details def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ban_duration_seconds = args[:ban_duration_seconds] if args.key?(:ban_duration_seconds) @ban_type = args[:ban_type] if args.key?(:ban_type) @banned_user_details = args[:banned_user_details] if args.key?(:banned_user_details) end end # A live stream describes a live ingestion point. class LiveStream include Google::Apis::Core::Hashable # Brief description of the live stream cdn settings. # Corresponds to the JSON property `cdn` # @return [Google::Apis::YoutubeV3::CdnSettings] attr_accessor :cdn # Detailed settings of a stream. # Corresponds to the JSON property `contentDetails` # @return [Google::Apis::YoutubeV3::LiveStreamContentDetails] attr_accessor :content_details # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # The ID that YouTube assigns to uniquely identify the stream. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # Identifies what kind of resource this is. Value: the fixed string "youtube# # liveStream". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The snippet object contains basic details about the stream, including its # channel, title, and description. # Corresponds to the JSON property `snippet` # @return [Google::Apis::YoutubeV3::LiveStreamSnippet] attr_accessor :snippet # Brief description of the live stream status. # Corresponds to the JSON property `status` # @return [Google::Apis::YoutubeV3::LiveStreamStatus] attr_accessor :status def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @cdn = args[:cdn] if args.key?(:cdn) @content_details = args[:content_details] if args.key?(:content_details) @etag = args[:etag] if args.key?(:etag) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @snippet = args[:snippet] if args.key?(:snippet) @status = args[:status] if args.key?(:status) end end # class LiveStreamConfigurationIssue include Google::Apis::Core::Hashable # The long-form description of the issue and how to resolve it. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # The short-form reason for this issue. # Corresponds to the JSON property `reason` # @return [String] attr_accessor :reason # How severe this issue is to the stream. # Corresponds to the JSON property `severity` # @return [String] attr_accessor :severity # The kind of error happening. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @description = args[:description] if args.key?(:description) @reason = args[:reason] if args.key?(:reason) @severity = args[:severity] if args.key?(:severity) @type = args[:type] if args.key?(:type) end end # Detailed settings of a stream. class LiveStreamContentDetails include Google::Apis::Core::Hashable # The ingestion URL where the closed captions of this stream are sent. # Corresponds to the JSON property `closedCaptionsIngestionUrl` # @return [String] attr_accessor :closed_captions_ingestion_url # Indicates whether the stream is reusable, which means that it can be bound to # multiple broadcasts. It is common for broadcasters to reuse the same stream # for many different broadcasts if those broadcasts occur at different times. If # you set this value to false, then the stream will not be reusable, which means # that it can only be bound to one broadcast. Non-reusable streams differ from # reusable streams in the following ways: - A non-reusable stream can only be # bound to one broadcast. - A non-reusable stream might be deleted by an # automated process after the broadcast ends. - The liveStreams.list method does # not list non-reusable streams if you call the method and set the mine # parameter to true. The only way to use that method to retrieve the resource # for a non-reusable stream is to use the id parameter to identify the stream. # Corresponds to the JSON property `isReusable` # @return [Boolean] attr_accessor :is_reusable alias_method :is_reusable?, :is_reusable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @closed_captions_ingestion_url = args[:closed_captions_ingestion_url] if args.key?(:closed_captions_ingestion_url) @is_reusable = args[:is_reusable] if args.key?(:is_reusable) end end # class LiveStreamHealthStatus include Google::Apis::Core::Hashable # The configurations issues on this stream # Corresponds to the JSON property `configurationIssues` # @return [Array] attr_accessor :configuration_issues # The last time this status was updated (in seconds) # Corresponds to the JSON property `lastUpdateTimeSeconds` # @return [Fixnum] attr_accessor :last_update_time_seconds # The status code of this stream # Corresponds to the JSON property `status` # @return [String] attr_accessor :status def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @configuration_issues = args[:configuration_issues] if args.key?(:configuration_issues) @last_update_time_seconds = args[:last_update_time_seconds] if args.key?(:last_update_time_seconds) @status = args[:status] if args.key?(:status) end end # class ListLiveStreamsResponse include Google::Apis::Core::Hashable # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # Serialized EventId of the request which produced this response. # Corresponds to the JSON property `eventId` # @return [String] attr_accessor :event_id # A list of live streams that match the request criteria. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Identifies what kind of resource this is. Value: the fixed string "youtube# # liveStreamListResponse". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The token that can be used as the value of the pageToken parameter to retrieve # the next page in the result set. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # Paging details for lists of resources, including total number of items # available and number of resources returned in a single page. # Corresponds to the JSON property `pageInfo` # @return [Google::Apis::YoutubeV3::PageInfo] attr_accessor :page_info # The token that can be used as the value of the pageToken parameter to retrieve # the previous page in the result set. # Corresponds to the JSON property `prevPageToken` # @return [String] attr_accessor :prev_page_token # Stub token pagination template to suppress results. # Corresponds to the JSON property `tokenPagination` # @return [Google::Apis::YoutubeV3::TokenPagination] attr_accessor :token_pagination # The visitorId identifies the visitor. # Corresponds to the JSON property `visitorId` # @return [String] attr_accessor :visitor_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @event_id = args[:event_id] if args.key?(:event_id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @page_info = args[:page_info] if args.key?(:page_info) @prev_page_token = args[:prev_page_token] if args.key?(:prev_page_token) @token_pagination = args[:token_pagination] if args.key?(:token_pagination) @visitor_id = args[:visitor_id] if args.key?(:visitor_id) end end # class LiveStreamSnippet include Google::Apis::Core::Hashable # The ID that YouTube uses to uniquely identify the channel that is transmitting # the stream. # Corresponds to the JSON property `channelId` # @return [String] attr_accessor :channel_id # The stream's description. The value cannot be longer than 10000 characters. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # # Corresponds to the JSON property `isDefaultStream` # @return [Boolean] attr_accessor :is_default_stream alias_method :is_default_stream?, :is_default_stream # The date and time that the stream was created. The value is specified in ISO # 8601 format. # Corresponds to the JSON property `publishedAt` # @return [String] attr_accessor :published_at # The stream's title. The value must be between 1 and 128 characters long. # Corresponds to the JSON property `title` # @return [String] attr_accessor :title def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @channel_id = args[:channel_id] if args.key?(:channel_id) @description = args[:description] if args.key?(:description) @is_default_stream = args[:is_default_stream] if args.key?(:is_default_stream) @published_at = args[:published_at] if args.key?(:published_at) @title = args[:title] if args.key?(:title) end end # Brief description of the live stream status. class LiveStreamStatus include Google::Apis::Core::Hashable # The health status of the stream. # Corresponds to the JSON property `healthStatus` # @return [Google::Apis::YoutubeV3::LiveStreamHealthStatus] attr_accessor :health_status # # Corresponds to the JSON property `streamStatus` # @return [String] attr_accessor :stream_status def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @health_status = args[:health_status] if args.key?(:health_status) @stream_status = args[:stream_status] if args.key?(:stream_status) end end # class LocalizedProperty include Google::Apis::Core::Hashable # # Corresponds to the JSON property `default` # @return [String] attr_accessor :default # The language of the default property. # Corresponds to the JSON property `defaultLanguage` # @return [Google::Apis::YoutubeV3::LanguageTag] attr_accessor :default_language # # Corresponds to the JSON property `localized` # @return [Array] attr_accessor :localized def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @default = args[:default] if args.key?(:default) @default_language = args[:default_language] if args.key?(:default_language) @localized = args[:localized] if args.key?(:localized) end end # class LocalizedString include Google::Apis::Core::Hashable # # Corresponds to the JSON property `language` # @return [String] attr_accessor :language # # Corresponds to the JSON property `value` # @return [String] attr_accessor :value def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @language = args[:language] if args.key?(:language) @value = args[:value] if args.key?(:value) end end # A *member* resource represents a member for a YouTube channel. A member # provides recurring monetary support to a creator and receives special benefits. class Member include Google::Apis::Core::Hashable # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # Identifies what kind of resource this is. Value: the fixed string "youtube# # member". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The snippet object contains basic details about the member. # Corresponds to the JSON property `snippet` # @return [Google::Apis::YoutubeV3::MemberSnippet] attr_accessor :snippet def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @kind = args[:kind] if args.key?(:kind) @snippet = args[:snippet] if args.key?(:snippet) end end # class MemberListResponse include Google::Apis::Core::Hashable # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # Serialized EventId of the request which produced this response. # Corresponds to the JSON property `eventId` # @return [String] attr_accessor :event_id # A list of members that match the request criteria. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Identifies what kind of resource this is. Value: the fixed string "youtube# # memberListResponse". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The token that can be used as the value of the pageToken parameter to retrieve # the next page in the result set. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # Paging details for lists of resources, including total number of items # available and number of resources returned in a single page. # Corresponds to the JSON property `pageInfo` # @return [Google::Apis::YoutubeV3::PageInfo] attr_accessor :page_info # Stub token pagination template to suppress results. # Corresponds to the JSON property `tokenPagination` # @return [Google::Apis::YoutubeV3::TokenPagination] attr_accessor :token_pagination # The visitorId identifies the visitor. # Corresponds to the JSON property `visitorId` # @return [String] attr_accessor :visitor_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @event_id = args[:event_id] if args.key?(:event_id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @page_info = args[:page_info] if args.key?(:page_info) @token_pagination = args[:token_pagination] if args.key?(:token_pagination) @visitor_id = args[:visitor_id] if args.key?(:visitor_id) end end # class MemberSnippet include Google::Apis::Core::Hashable # The id of the channel that's offering memberships. # Corresponds to the JSON property `creatorChannelId` # @return [String] attr_accessor :creator_channel_id # Details about the member. # Corresponds to the JSON property `memberDetails` # @return [Google::Apis::YoutubeV3::ChannelProfileDetails] attr_accessor :member_details # Details about the user's membership. # Corresponds to the JSON property `membershipsDetails` # @return [Google::Apis::YoutubeV3::MembershipsDetails] attr_accessor :memberships_details def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @creator_channel_id = args[:creator_channel_id] if args.key?(:creator_channel_id) @member_details = args[:member_details] if args.key?(:member_details) @memberships_details = args[:memberships_details] if args.key?(:memberships_details) end end # class MembershipsDetails include Google::Apis::Core::Hashable # Ids of all levels that the user has access to. This includes the currently # active level and all other levels that are included because of a higher # purchase. # Corresponds to the JSON property `accessibleLevels` # @return [Array] attr_accessor :accessible_levels # Id of the highest level that the user has access to at the moment. # Corresponds to the JSON property `highestAccessibleLevel` # @return [String] attr_accessor :highest_accessible_level # Display name for the highest level that the user has access to at the moment. # Corresponds to the JSON property `highestAccessibleLevelDisplayName` # @return [String] attr_accessor :highest_accessible_level_display_name # Data about memberships duration without taking into consideration pricing # levels. # Corresponds to the JSON property `membershipsDuration` # @return [Google::Apis::YoutubeV3::MembershipsDuration] attr_accessor :memberships_duration # Data about memberships duration on particular pricing levels. # Corresponds to the JSON property `membershipsDurationAtLevels` # @return [Array] attr_accessor :memberships_duration_at_levels def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @accessible_levels = args[:accessible_levels] if args.key?(:accessible_levels) @highest_accessible_level = args[:highest_accessible_level] if args.key?(:highest_accessible_level) @highest_accessible_level_display_name = args[:highest_accessible_level_display_name] if args.key?(:highest_accessible_level_display_name) @memberships_duration = args[:memberships_duration] if args.key?(:memberships_duration) @memberships_duration_at_levels = args[:memberships_duration_at_levels] if args.key?(:memberships_duration_at_levels) end end # class MembershipsDuration include Google::Apis::Core::Hashable # The date and time when the user became a continuous member across all levels. # Corresponds to the JSON property `memberSince` # @return [String] attr_accessor :member_since # The cumulative time the user has been a member across all levels in complete # months (the time is rounded down to the nearest integer). # Corresponds to the JSON property `memberTotalDurationMonths` # @return [Fixnum] attr_accessor :member_total_duration_months def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @member_since = args[:member_since] if args.key?(:member_since) @member_total_duration_months = args[:member_total_duration_months] if args.key?(:member_total_duration_months) end end # class MembershipsDurationAtLevel include Google::Apis::Core::Hashable # Pricing level ID. # Corresponds to the JSON property `level` # @return [String] attr_accessor :level # The date and time when the user became a continuous member for the given level. # Corresponds to the JSON property `memberSince` # @return [String] attr_accessor :member_since # The cumulative time the user has been a member for the given level in complete # months (the time is rounded down to the nearest integer). # Corresponds to the JSON property `memberTotalDurationMonths` # @return [Fixnum] attr_accessor :member_total_duration_months def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @level = args[:level] if args.key?(:level) @member_since = args[:member_since] if args.key?(:member_since) @member_total_duration_months = args[:member_total_duration_months] if args.key?(:member_total_duration_months) end end # A *membershipsLevel* resource represents an offer made by YouTube creators for # their fans. Users can become members of the channel by joining one of the # available levels. They will provide recurring monetary support and receives # special benefits. class MembershipsLevel include Google::Apis::Core::Hashable # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # The ID that YouTube assigns to uniquely identify the memberships level. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # Identifies what kind of resource this is. Value: the fixed string "youtube# # membershipsLevelListResponse". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The snippet object contains basic details about the level. # Corresponds to the JSON property `snippet` # @return [Google::Apis::YoutubeV3::MembershipsLevelSnippet] attr_accessor :snippet def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @snippet = args[:snippet] if args.key?(:snippet) end end # class MembershipsLevelListResponse include Google::Apis::Core::Hashable # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # Serialized EventId of the request which produced this response. # Corresponds to the JSON property `eventId` # @return [String] attr_accessor :event_id # A list of pricing levels offered by a creator to the fans. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Identifies what kind of resource this is. Value: the fixed string "youtube# # membershipsLevelListResponse". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The visitorId identifies the visitor. # Corresponds to the JSON property `visitorId` # @return [String] attr_accessor :visitor_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @event_id = args[:event_id] if args.key?(:event_id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @visitor_id = args[:visitor_id] if args.key?(:visitor_id) end end # class MembershipsLevelSnippet include Google::Apis::Core::Hashable # The id of the channel that's offering channel memberships. # Corresponds to the JSON property `creatorChannelId` # @return [String] attr_accessor :creator_channel_id # Details about the pricing level. # Corresponds to the JSON property `levelDetails` # @return [Google::Apis::YoutubeV3::LevelDetails] attr_accessor :level_details def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @creator_channel_id = args[:creator_channel_id] if args.key?(:creator_channel_id) @level_details = args[:level_details] if args.key?(:level_details) end end # Settings and Info of the monitor stream class MonitorStreamInfo include Google::Apis::Core::Hashable # If you have set the enableMonitorStream property to true, then this property # determines the length of the live broadcast delay. # Corresponds to the JSON property `broadcastStreamDelayMs` # @return [Fixnum] attr_accessor :broadcast_stream_delay_ms # HTML code that embeds a player that plays the monitor stream. # Corresponds to the JSON property `embedHtml` # @return [String] attr_accessor :embed_html # This value determines whether the monitor stream is enabled for the broadcast. # If the monitor stream is enabled, then YouTube will broadcast the event # content on a special stream intended only for the broadcaster's consumption. # The broadcaster can use the stream to review the event content and also to # identify the optimal times to insert cuepoints. You need to set this value to # true if you intend to have a broadcast delay for your event. *Note:* This # property cannot be updated once the broadcast is in the testing or live state. # Corresponds to the JSON property `enableMonitorStream` # @return [Boolean] attr_accessor :enable_monitor_stream alias_method :enable_monitor_stream?, :enable_monitor_stream def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @broadcast_stream_delay_ms = args[:broadcast_stream_delay_ms] if args.key?(:broadcast_stream_delay_ms) @embed_html = args[:embed_html] if args.key?(:embed_html) @enable_monitor_stream = args[:enable_monitor_stream] if args.key?(:enable_monitor_stream) end end # Paging details for lists of resources, including total number of items # available and number of resources returned in a single page. class PageInfo include Google::Apis::Core::Hashable # The number of results included in the API response. # Corresponds to the JSON property `resultsPerPage` # @return [Fixnum] attr_accessor :results_per_page # The total number of results in the result set. # Corresponds to the JSON property `totalResults` # @return [Fixnum] attr_accessor :total_results def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @results_per_page = args[:results_per_page] if args.key?(:results_per_page) @total_results = args[:total_results] if args.key?(:total_results) end end # A *playlist* resource represents a YouTube playlist. A playlist is a # collection of videos that can be viewed sequentially and shared with other # users. A playlist can contain up to 200 videos, and YouTube does not limit the # number of playlists that each user creates. By default, playlists are publicly # visible to other users, but playlists can be public or private. YouTube also # uses playlists to identify special collections of videos for a channel, such # as: - uploaded videos - favorite videos - positively rated (liked) videos - # watch history - watch later To be more specific, these lists are associated # with a channel, which is a collection of a person, group, or company's videos, # playlists, and other YouTube information. You can retrieve the playlist IDs # for each of these lists from the channel resource for a given channel. You can # then use the playlistItems.list method to retrieve any of those lists. You can # also add or remove items from those lists by calling the playlistItems.insert # and playlistItems.delete methods. class Playlist include Google::Apis::Core::Hashable # The contentDetails object contains information like video count. # Corresponds to the JSON property `contentDetails` # @return [Google::Apis::YoutubeV3::PlaylistContentDetails] attr_accessor :content_details # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # The ID that YouTube uses to uniquely identify the playlist. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # Identifies what kind of resource this is. Value: the fixed string "youtube# # playlist". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Localizations for different languages # Corresponds to the JSON property `localizations` # @return [Hash] attr_accessor :localizations # The player object contains information that you would use to play the playlist # in an embedded player. # Corresponds to the JSON property `player` # @return [Google::Apis::YoutubeV3::PlaylistPlayer] attr_accessor :player # Basic details about a playlist, including title, description and thumbnails. # Corresponds to the JSON property `snippet` # @return [Google::Apis::YoutubeV3::PlaylistSnippet] attr_accessor :snippet # The status object contains status information for the playlist. # Corresponds to the JSON property `status` # @return [Google::Apis::YoutubeV3::PlaylistStatus] attr_accessor :status def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @content_details = args[:content_details] if args.key?(:content_details) @etag = args[:etag] if args.key?(:etag) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @localizations = args[:localizations] if args.key?(:localizations) @player = args[:player] if args.key?(:player) @snippet = args[:snippet] if args.key?(:snippet) @status = args[:status] if args.key?(:status) end end # class PlaylistContentDetails include Google::Apis::Core::Hashable # The number of videos in the playlist. # Corresponds to the JSON property `itemCount` # @return [Fixnum] attr_accessor :item_count def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @item_count = args[:item_count] if args.key?(:item_count) end end # A *playlistItem* resource identifies another resource, such as a video, that # is included in a playlist. In addition, the playlistItem resource contains # details about the included resource that pertain specifically to how that # resource is used in that playlist. YouTube uses playlists to identify special # collections of videos for a channel, such as: - uploaded videos - favorite # videos - positively rated (liked) videos - watch history - watch later To be # more specific, these lists are associated with a channel, which is a # collection of a person, group, or company's videos, playlists, and other # YouTube information. You can retrieve the playlist IDs for each of these lists # from the channel resource for a given channel. You can then use the # playlistItems.list method to retrieve any of those lists. You can also add or # remove items from those lists by calling the playlistItems.insert and # playlistItems.delete methods. For example, if a user gives a positive rating # to a video, you would insert that video into the liked videos playlist for # that user's channel. class PlaylistItem include Google::Apis::Core::Hashable # The contentDetails object is included in the resource if the included item is # a YouTube video. The object contains additional information about the video. # Corresponds to the JSON property `contentDetails` # @return [Google::Apis::YoutubeV3::PlaylistItemContentDetails] attr_accessor :content_details # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # The ID that YouTube uses to uniquely identify the playlist item. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # Identifies what kind of resource this is. Value: the fixed string "youtube# # playlistItem". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Basic details about a playlist, including title, description and thumbnails. # Basic details of a YouTube Playlist item provided by the author. Next ID: 13 # Corresponds to the JSON property `snippet` # @return [Google::Apis::YoutubeV3::PlaylistItemSnippet] attr_accessor :snippet # Information about the playlist item's privacy status. # Corresponds to the JSON property `status` # @return [Google::Apis::YoutubeV3::PlaylistItemStatus] attr_accessor :status def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @content_details = args[:content_details] if args.key?(:content_details) @etag = args[:etag] if args.key?(:etag) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @snippet = args[:snippet] if args.key?(:snippet) @status = args[:status] if args.key?(:status) end end # class PlaylistItemContentDetails include Google::Apis::Core::Hashable # The time, measured in seconds from the start of the video, when the video # should stop playing. (The playlist owner can specify the times when the video # should start and stop playing when the video is played in the context of the # playlist.) By default, assume that the video.endTime is the end of the video. # Corresponds to the JSON property `endAt` # @return [String] attr_accessor :end_at # A user-generated note for this item. # Corresponds to the JSON property `note` # @return [String] attr_accessor :note # The time, measured in seconds from the start of the video, when the video # should start playing. (The playlist owner can specify the times when the video # should start and stop playing when the video is played in the context of the # playlist.) The default value is 0. # Corresponds to the JSON property `startAt` # @return [String] attr_accessor :start_at # The ID that YouTube uses to uniquely identify a video. To retrieve the video # resource, set the id query parameter to this value in your API request. # Corresponds to the JSON property `videoId` # @return [String] attr_accessor :video_id # The date and time that the video was published to YouTube. The value is # specified in ISO 8601 format. # Corresponds to the JSON property `videoPublishedAt` # @return [String] attr_accessor :video_published_at def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @end_at = args[:end_at] if args.key?(:end_at) @note = args[:note] if args.key?(:note) @start_at = args[:start_at] if args.key?(:start_at) @video_id = args[:video_id] if args.key?(:video_id) @video_published_at = args[:video_published_at] if args.key?(:video_published_at) end end # class ListPlaylistItemsResponse include Google::Apis::Core::Hashable # # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # Serialized EventId of the request which produced this response. # Corresponds to the JSON property `eventId` # @return [String] attr_accessor :event_id # A list of playlist items that match the request criteria. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Identifies what kind of resource this is. Value: the fixed string "youtube# # playlistItemListResponse". Etag of this resource. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The token that can be used as the value of the pageToken parameter to retrieve # the next page in the result set. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # Paging details for lists of resources, including total number of items # available and number of resources returned in a single page. # Corresponds to the JSON property `pageInfo` # @return [Google::Apis::YoutubeV3::PageInfo] attr_accessor :page_info # The token that can be used as the value of the pageToken parameter to retrieve # the previous page in the result set. # Corresponds to the JSON property `prevPageToken` # @return [String] attr_accessor :prev_page_token # Stub token pagination template to suppress results. # Corresponds to the JSON property `tokenPagination` # @return [Google::Apis::YoutubeV3::TokenPagination] attr_accessor :token_pagination # The visitorId identifies the visitor. # Corresponds to the JSON property `visitorId` # @return [String] attr_accessor :visitor_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @event_id = args[:event_id] if args.key?(:event_id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @page_info = args[:page_info] if args.key?(:page_info) @prev_page_token = args[:prev_page_token] if args.key?(:prev_page_token) @token_pagination = args[:token_pagination] if args.key?(:token_pagination) @visitor_id = args[:visitor_id] if args.key?(:visitor_id) end end # Basic details about a playlist, including title, description and thumbnails. # Basic details of a YouTube Playlist item provided by the author. Next ID: 13 class PlaylistItemSnippet include Google::Apis::Core::Hashable # The ID that YouTube uses to uniquely identify the user that added the item to # the playlist. # Corresponds to the JSON property `channelId` # @return [String] attr_accessor :channel_id # Channel title for the channel that the playlist item belongs to. # Corresponds to the JSON property `channelTitle` # @return [String] attr_accessor :channel_title # The item's description. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # The ID that YouTube uses to uniquely identify thGe playlist that the playlist # item is in. # Corresponds to the JSON property `playlistId` # @return [String] attr_accessor :playlist_id # The order in which the item appears in the playlist. The value uses a zero- # based index, so the first item has a position of 0, the second item has a # position of 1, and so forth. # Corresponds to the JSON property `position` # @return [Fixnum] attr_accessor :position # The date and time that the item was added to the playlist. The value is # specified in ISO 8601 format. # Corresponds to the JSON property `publishedAt` # @return [String] attr_accessor :published_at # A resource id is a generic reference that points to another YouTube resource. # Corresponds to the JSON property `resourceId` # @return [Google::Apis::YoutubeV3::ResourceId] attr_accessor :resource_id # Internal representation of thumbnails for a YouTube resource. # Corresponds to the JSON property `thumbnails` # @return [Google::Apis::YoutubeV3::ThumbnailDetails] attr_accessor :thumbnails # The item's title. # Corresponds to the JSON property `title` # @return [String] attr_accessor :title def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @channel_id = args[:channel_id] if args.key?(:channel_id) @channel_title = args[:channel_title] if args.key?(:channel_title) @description = args[:description] if args.key?(:description) @playlist_id = args[:playlist_id] if args.key?(:playlist_id) @position = args[:position] if args.key?(:position) @published_at = args[:published_at] if args.key?(:published_at) @resource_id = args[:resource_id] if args.key?(:resource_id) @thumbnails = args[:thumbnails] if args.key?(:thumbnails) @title = args[:title] if args.key?(:title) end end # Information about the playlist item's privacy status. class PlaylistItemStatus include Google::Apis::Core::Hashable # This resource's privacy status. # Corresponds to the JSON property `privacyStatus` # @return [String] attr_accessor :privacy_status def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @privacy_status = args[:privacy_status] if args.key?(:privacy_status) end end # class ListPlaylistResponse include Google::Apis::Core::Hashable # Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # Serialized EventId of the request which produced this response. # Corresponds to the JSON property `eventId` # @return [String] attr_accessor :event_id # A list of playlists that match the request criteria # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Identifies what kind of resource this is. Value: the fixed string "youtube# # playlistListResponse". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The token that can be used as the value of the pageToken parameter to retrieve # the next page in the result set. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # Paging details for lists of resources, including total number of items # available and number of resources returned in a single page. # Corresponds to the JSON property `pageInfo` # @return [Google::Apis::YoutubeV3::PageInfo] attr_accessor :page_info # The token that can be used as the value of the pageToken parameter to retrieve # the previous page in the result set. # Corresponds to the JSON property `prevPageToken` # @return [String] attr_accessor :prev_page_token # Stub token pagination template to suppress results. # Corresponds to the JSON property `tokenPagination` # @return [Google::Apis::YoutubeV3::TokenPagination] attr_accessor :token_pagination # The visitorId identifies the visitor. # Corresponds to the JSON property `visitorId` # @return [String] attr_accessor :visitor_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @event_id = args[:event_id] if args.key?(:event_id) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @page_info = args[:page_info] if args.key?(:page_info) @prev_page_token = args[:prev_page_token] if args.key?(:prev_page_token) @token_pagination = args[:token_pagination] if args.key?(:token_pagination) @visitor_id = args[:visitor_id] if args.key?(:visitor_id) end end # Playlist localization setting class PlaylistLocalization include Google::Apis::Core::Hashable # The localized strings for playlist's description. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # The localized strings for playlist's title. # Corresponds to the JSON property `title` # @return [String] attr_accessor :title def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @description = args[:description] if args.key?(:description) @title = args[:title] if args.key?(:title) end end # class PlaylistPlayer include Google::Apis::Core::Hashable # An