# 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 # 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. # 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 # A list of activities, or events, 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# # 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. 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. # 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 (YYYY-MM-DDThh:mm:ss.sZ) format. # Corresponds to the JSON property `publishedAt` # @return [DateTime] 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. # 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 (YYYY-MM-DDThh:mm:ss.sZ) format. # Corresponds to the JSON property `lastUpdated` # @return [DateTime] 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. # 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 # 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 def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @format = args[:format] if args.key?(:format) @ingestion_info = args[:ingestion_info] if args.key?(:ingestion_info) @ingestion_type = args[:ingestion_type] if args.key?(:ingestion_type) 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 # Describes the general state of the channel. This field will always show if # there are any issues whatsoever with the channel. Currently this field # represents the result of the logical and operation over the community # guidelines good standing, the copyright strikes good standing and the content # ID claims good standing, but this may change in the future. # Corresponds to the JSON property `overallGoodStanding` # @return [Boolean] attr_accessor :overall_good_standing alias_method :overall_good_standing?, :overall_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) @overall_good_standing = args[:overall_good_standing] if args.key?(:overall_good_standing) end end # A channel banner returned as the response to a channel_banner.insert call. class ChannelBannerResource 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# # 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. # 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 # The googlePlusUserId object identifies the Google+ profile ID associated with # this channel. # Corresponds to the JSON property `googlePlusUserId` # @return [String] attr_accessor :google_plus_user_id # # 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) @google_plus_user_id = args[:google_plus_user_id] if args.key?(:google_plus_user_id) @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 (YYYY-MM-DDThh:mm:ss.sZ) format. # Corresponds to the JSON property `timeLinked` # @return [DateTime] 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 # A list of channels 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# # 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 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 ISO # 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. # Corresponds to the JSON property `publishedAt` # @return [DateTime] 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) @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 [String] 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 [String] attr_accessor :subscriber_count # The number of videos uploaded to the channel. # Corresponds to the JSON property `videoCount` # @return [String] attr_accessor :video_count # The number of times the channel has been viewed. # Corresponds to the JSON property `viewCount` # @return [String] 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 # Corresponds to the JSON property `longUploadsStatus` # @return [String] attr_accessor :long_uploads_status # Privacy status of the channel. # 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) @is_linked = args[:is_linked] if args.key?(:is_linked) @long_uploads_status = args[:long_uploads_status] if args.key?(:long_uploads_status) @privacy_status = args[:privacy_status] if args.key?(:privacy_status) end end # Freebase topic information related to the channel. class ChannelTopicDetails include Google::Apis::Core::Hashable # 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_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 [Object] 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 # Link to the author's Google+ profile, if any. # Corresponds to the JSON property `authorGoogleplusProfileUrl` # @return [String] attr_accessor :author_googleplus_profile_url # 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 (YYYY-MM-DDThh:mm:ss.sZ) format. # Corresponds to the JSON property `publishedAt` # @return [DateTime] 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 ( # YYYY-MM-DDThh:mm:ss.sZ) format. # Corresponds to the JSON property `updatedAt` # @return [DateTime] 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_googleplus_profile_url = args[:author_googleplus_profile_url] if args.key?(:author_googleplus_profile_url) @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 # 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. # NEXT_ID: 67 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 # 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 # 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 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 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 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 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) @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) @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) @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) @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) @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 # A fanFundingEvent resource represents a fan funding event on a YouTube channel. # Fan funding events occur when a user gives one-time monetary support to the # channel owner. class FanFundingEvent 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 fan funding event. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # Identifies what kind of resource this is. Value: the fixed string "youtube# # fanFundingEvent". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The snippet object contains basic details about the fan funding event. # Corresponds to the JSON property `snippet` # @return [Google::Apis::YoutubeV3::FanFundingEventSnippet] 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 FanFundingEventListResponse 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 fan funding events 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# # fanFundingEventListResponse". # 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 FanFundingEventSnippet include Google::Apis::Core::Hashable # The amount of funding in micros of fund_currency. e.g., 1 is represented # Corresponds to the JSON property `amountMicros` # @return [String] attr_accessor :amount_micros # Channel id where the funding event occurred. # Corresponds to the JSON property `channelId` # @return [String] attr_accessor :channel_id # The text contents of the comment left by the user. # Corresponds to the JSON property `commentText` # @return [String] attr_accessor :comment_text # The date and time when the funding occurred. The value is specified in ISO # 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. # Corresponds to the JSON property `createdAt` # @return [DateTime] attr_accessor :created_at # The currency in which the fund was made. ISO 4217. # Corresponds to the JSON property `currency` # @return [String] attr_accessor :currency # A rendered string that displays the fund amount and currency (e.g., "$1.00"). # The string is rendered for the given language. # Corresponds to the JSON property `displayString` # @return [String] attr_accessor :display_string # Details about the supporter. Only filled if the event was made public by the # user. # Corresponds to the JSON property `supporterDetails` # @return [Google::Apis::YoutubeV3::ChannelProfileDetails] attr_accessor :supporter_details def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @amount_micros = args[:amount_micros] if args.key?(:amount_micros) @channel_id = args[:channel_id] if args.key?(:channel_id) @comment_text = args[:comment_text] if args.key?(:comment_text) @created_at = args[:created_at] if args.key?(:created_at) @currency = args[:currency] if args.key?(:currency) @display_string = args[:display_string] if args.key?(:display_string) @supporter_details = args[:supporter_details] if args.key?(:supporter_details) 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 # A guideCategory resource identifies a category that YouTube algorithmically # assigns based on a channel's content or other indicators, such as the channel' # s popularity. The list is similar to video categories, with the difference # being that a video's uploader can assign a video category but only YouTube can # assign a channel category. class GuideCategory 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 guide category. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # Identifies what kind of resource this is. Value: the fixed string "youtube# # guideCategory". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Basic details about a guide category. # Corresponds to the JSON property `snippet` # @return [Google::Apis::YoutubeV3::GuideCategorySnippet] 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 ListGuideCategoriesResponse 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 categories that can be associated with YouTube channels. In this map, # the category ID is the map key, and its value is the corresponding # guideCategory resource. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Identifies what kind of resource this is. Value: the fixed string "youtube# # guideCategoryListResponse". # 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 guide category. class GuideCategorySnippet include Google::Apis::Core::Hashable # # Corresponds to the JSON property `channelId` # @return [String] attr_accessor :channel_id # Description of the guide category. # 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) @title = args[:title] if args.key?(:title) 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. # 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 # 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 `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 # 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) @stream_name = args[:stream_name] if args.key?(:stream_name) end end # class InvideoBranding include Google::Apis::Core::Hashable # # Corresponds to the JSON property `imageBytes` # @return [String] attr_accessor :image_bytes # # 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 # # 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 [String] 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 [String] 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 # 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 # The snippet object contains basic details about the event, including its title, # description, start time, and end time. # 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 # The status object contains information about the event's status. # Corresponds to the JSON property `status` # @return [Google::Apis::YoutubeV3::LiveBroadcastStatus] attr_accessor :status # # Corresponds to the JSON property `topicDetails` # @return [Google::Apis::YoutubeV3::LiveBroadcastTopicDetails] attr_accessor :topic_details 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) @topic_details = args[:topic_details] if args.key?(:topic_details) 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 # # Corresponds to the JSON property `closedCaptionsType` # @return [String] attr_accessor :closed_captions_type # 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 # Settings and Info of the monitor stream # Corresponds to the JSON property `monitorStream` # @return [Google::Apis::YoutubeV3::MonitorStreamInfo] attr_accessor :monitor_stream # 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) @closed_captions_type = args[:closed_captions_type] if args.key?(:closed_captions_type) @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) @monitor_stream = args[:monitor_stream] if args.key?(:monitor_stream) @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 # 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 (YYYY-MM-DDThh:mm:ss.sZ) format. # Corresponds to the JSON property `actualEndTime` # @return [DateTime] 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 (YYYY-MM-DDThh:mm:ss.sZ) format. # Corresponds to the JSON property `actualStartTime` # @return [DateTime] 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 # # 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 (YYYY-MM-DDThh:mm:ss.sZ) format. # Corresponds to the JSON property `publishedAt` # @return [DateTime] attr_accessor :published_at # The date and time that the broadcast is scheduled to end. The value is # specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. # Corresponds to the JSON property `scheduledEndTime` # @return [DateTime] attr_accessor :scheduled_end_time # The date and time that the broadcast is scheduled to start. The value is # specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. # Corresponds to the JSON property `scheduledStartTime` # @return [DateTime] 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 number of viewers currently watching the broadcast. The property and its # value will be present if the broadcast has current viewers and the broadcast # owner has not hidden the viewcount for the video. Note that YouTube stops # tracking the number of concurrent viewers for a broadcast when the broadcast # ends. So, this property would not identify the number of viewers watching an # archived video of a live broadcast that already ended. # Corresponds to the JSON property `concurrentViewers` # @return [String] attr_accessor :concurrent_viewers # 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 [String] attr_accessor :total_chat_count def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @concurrent_viewers = args[:concurrent_viewers] if args.key?(:concurrent_viewers) @total_chat_count = args[:total_chat_count] if args.key?(:total_chat_count) end end # 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 # 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 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) @privacy_status = args[:privacy_status] if args.key?(:privacy_status) @recording_status = args[:recording_status] if args.key?(:recording_status) end end # class LiveBroadcastTopic include Google::Apis::Core::Hashable # Information about the topic matched. # Corresponds to the JSON property `snippet` # @return [Google::Apis::YoutubeV3::LiveBroadcastTopicSnippet] attr_accessor :snippet # The type of the topic. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # If this flag is set it means that we have not been able to match the topic # title and type provided to a known entity. # Corresponds to the JSON property `unmatched` # @return [Boolean] attr_accessor :unmatched alias_method :unmatched?, :unmatched def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @snippet = args[:snippet] if args.key?(:snippet) @type = args[:type] if args.key?(:type) @unmatched = args[:unmatched] if args.key?(:unmatched) end end # class LiveBroadcastTopicDetails include Google::Apis::Core::Hashable # # Corresponds to the JSON property `topics` # @return [Array] attr_accessor :topics def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @topics = args[:topics] if args.key?(:topics) end end # class LiveBroadcastTopicSnippet include Google::Apis::Core::Hashable # The name of the topic. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The date at which the topic was released. Filled for types: videoGame # Corresponds to the JSON property `releaseDate` # @return [String] attr_accessor :release_date def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @name = args[:name] if args.key?(:name) @release_date = args[:release_date] if args.key?(:release_date) 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 [String] 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 [String] 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 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 # A list of live chat messages. # 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 # 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 # The date and time when the underlying stream went offline. The value is # specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. # Corresponds to the JSON property `offlineAt` # @return [DateTime] 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 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 # 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 # The date and time when the message was orignally published. The value is # specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. # Corresponds to the JSON property `publishedAt` # @return [DateTime] attr_accessor :published_at # 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 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) @published_at = args[:published_at] if args.key?(:published_at) @text_message_details = args[:text_message_details] if args.key?(:text_message_details) @type = args[:type] if args.key?(:type) 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 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 # 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 [String] 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 (YYYY-MM-DDThh:mm:ss.sZ) format. # Corresponds to the JSON property `publishedAt` # @return [DateTime] 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 # 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. # 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 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) end end # class ListPlaylistItemsResponse 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 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". # 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. 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 the 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 (YYYY-MM-DDThh:mm:ss.sZ) format. # Corresponds to the JSON property `publishedAt` # @return [DateTime] 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