# 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 YoutubeAnalyticsV2 # Empty response. class EmptyResponse include Google::Apis::Core::Hashable # Request Error information. # The presence of an error field signals that the operation # has failed. # Corresponds to the JSON property `errors` # @return [Google::Apis::YoutubeAnalyticsV2::Errors] attr_accessor :errors def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @errors = args[:errors] if args.key?(:errors) end end # Describes one specific error. class ErrorProto include Google::Apis::Core::Hashable # Error arguments, to be used when building user-friendly error messages # given the error domain and code. Different error codes require different # arguments. # Corresponds to the JSON property `argument` # @return [Array] attr_accessor :argument # Error code in the error domain. This should correspond to # a value of the enum type whose name is in domain. See # the core error domain in error_domain.proto. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # Debugging information, which should not be # shared externally. # Corresponds to the JSON property `debugInfo` # @return [String] attr_accessor :debug_info # Error domain. RoSy services can define their own # domain and error codes. This should normally be # the name of an enum type, such as: gdata.CoreErrorDomain # Corresponds to the JSON property `domain` # @return [String] attr_accessor :domain # A short explanation for the error, which can be shared outside Google. # Please set domain, code and arguments whenever possible instead of this # error message so that external APIs can build safe error messages # themselves. # External messages built in a RoSy interface will most likely refer to # information and concepts that are not available externally and should not # be exposed. It is safer if external APIs can understand the errors and # decide what the error message should look like. # Corresponds to the JSON property `externalErrorMessage` # @return [String] attr_accessor :external_error_message # Location of the error, as specified by the location type. # If location_type is PATH, this should be a path to a field that's # relative to the request, using FieldPath notation # (net/proto2/util/public/field_path.h). # Examples: # authenticated_user.gaia_id # resource.address[2].country # Corresponds to the JSON property `location` # @return [String] attr_accessor :location # # Corresponds to the JSON property `locationType` # @return [String] attr_accessor :location_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @argument = args[:argument] if args.key?(:argument) @code = args[:code] if args.key?(:code) @debug_info = args[:debug_info] if args.key?(:debug_info) @domain = args[:domain] if args.key?(:domain) @external_error_message = args[:external_error_message] if args.key?(:external_error_message) @location = args[:location] if args.key?(:location) @location_type = args[:location_type] if args.key?(:location_type) end end # Request Error information. # The presence of an error field signals that the operation # has failed. class Errors include Google::Apis::Core::Hashable # Global error code. Deprecated and ignored. # Set custom error codes in ErrorProto.domain and ErrorProto.code # instead. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # Specific error description and codes # Corresponds to the JSON property `error` # @return [Array] attr_accessor :error # Request identifier generated by the service, which can be # used to identify the error in the logs # Corresponds to the JSON property `requestId` # @return [String] attr_accessor :request_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @error = args[:error] if args.key?(:error) @request_id = args[:request_id] if args.key?(:request_id) end end # A group. class Group include Google::Apis::Core::Hashable # A group's content details. # Corresponds to the JSON property `contentDetails` # @return [Google::Apis::YoutubeAnalyticsV2::GroupContentDetails] attr_accessor :content_details # Request Error information. # The presence of an error field signals that the operation # has failed. # Corresponds to the JSON property `errors` # @return [Google::Apis::YoutubeAnalyticsV2::Errors] attr_accessor :errors # The Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # The ID that YouTube uses to uniquely identify the group. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # Identifies the API resource's type. The value will be `youtube#group`. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # A group snippet. # Corresponds to the JSON property `snippet` # @return [Google::Apis::YoutubeAnalyticsV2::GroupSnippet] 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) @errors = args[:errors] if args.key?(:errors) @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 # A group's content details. class GroupContentDetails include Google::Apis::Core::Hashable # The number of items in the group. # Corresponds to the JSON property `itemCount` # @return [Fixnum] attr_accessor :item_count # The type of resources that the group contains. # Valid values for this property are: # * `youtube#channel` # * `youtube#playlist` # * `youtube#video` # * `youtubePartner#asset` # Corresponds to the JSON property `itemType` # @return [String] attr_accessor :item_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @item_count = args[:item_count] if args.key?(:item_count) @item_type = args[:item_type] if args.key?(:item_type) end end # A group item. class GroupItem include Google::Apis::Core::Hashable # Request Error information. # The presence of an error field signals that the operation # has failed. # Corresponds to the JSON property `errors` # @return [Google::Apis::YoutubeAnalyticsV2::Errors] attr_accessor :errors # The Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # The ID that YouTube uses to uniquely identify the group that contains the # item. # Corresponds to the JSON property `groupId` # @return [String] attr_accessor :group_id # The ID that YouTube uses to uniquely identify the `channel`, `video`, # `playlist`, or `asset` resource that is included in the group. Note that # this ID refers specifically to the inclusion of that resource in a # particular group and is different than the channel ID, video ID, # playlist ID, or asset ID that uniquely identifies the resource itself. # The `resource.id` property's value specifies the unique channel, video, # playlist, or asset ID. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # Identifies the API resource's type. The value will be `youtube#groupItem`. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The `resource` object contains information that identifies the item being # added to the group. # Corresponds to the JSON property `resource` # @return [Google::Apis::YoutubeAnalyticsV2::GroupItemResource] attr_accessor :resource def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @errors = args[:errors] if args.key?(:errors) @etag = args[:etag] if args.key?(:etag) @group_id = args[:group_id] if args.key?(:group_id) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @resource = args[:resource] if args.key?(:resource) end end # class GroupItemResource include Google::Apis::Core::Hashable # The channel, video, playlist, or asset ID that YouTube uses to uniquely # identify the item that is being added to the group. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # Identifies the type of resource being added to the group. # Valid values for this property are: # * `youtube#channel` # * `youtube#playlist` # * `youtube#video` # * `youtubePartner#asset` # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) end end # A group snippet. class GroupSnippet include Google::Apis::Core::Hashable # The date and time that the group was created. The value is specified in # ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. # Corresponds to the JSON property `publishedAt` # @return [String] attr_accessor :published_at # The group name. The value must be a non-empty string. # 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) @published_at = args[:published_at] if args.key?(:published_at) @title = args[:title] if args.key?(:title) end end # Response message for GroupsService.ListGroupItems. class ListGroupItemsResponse include Google::Apis::Core::Hashable # Request Error information. # The presence of an error field signals that the operation # has failed. # Corresponds to the JSON property `errors` # @return [Google::Apis::YoutubeAnalyticsV2::Errors] attr_accessor :errors # The Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # A list of groups that match the API request parameters. Each item in the # list represents a `groupItem` resource. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Identifies the API resource's type. The value will be # `youtube#groupItemListResponse`. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @errors = args[:errors] if args.key?(:errors) @etag = args[:etag] if args.key?(:etag) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) end end # Response message for GroupsService.ListGroups. class ListGroupsResponse include Google::Apis::Core::Hashable # Request Error information. # The presence of an error field signals that the operation # has failed. # Corresponds to the JSON property `errors` # @return [Google::Apis::YoutubeAnalyticsV2::Errors] attr_accessor :errors # The Etag of this resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # A list of groups that match the API request parameters. Each item in the # list represents a `group` resource. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # Identifies the API resource's type. The value will be # `youtube#groupListResponse`. # 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 def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @errors = args[:errors] if args.key?(:errors) @etag = args[:etag] if args.key?(:etag) @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) end end # Response message for TargetedQueriesService.Query. class QueryResponse include Google::Apis::Core::Hashable # This value specifies information about the data returned in the `rows` # fields. Each item in the `columnHeaders` list identifies a field returned # in the `rows` value, which contains a list of comma-delimited data. The # `columnHeaders` list will begin with the dimensions specified in the API # request, which will be followed by the metrics specified in the API # request. The order of both dimensions and metrics will match the ordering # in the API request. For example, if the API request contains the parameters # `dimensions=ageGroup,gender&metrics=viewerPercentage`, the API response # will return columns in this order: `ageGroup`, `gender`, # `viewerPercentage`. # Corresponds to the JSON property `columnHeaders` # @return [Array] attr_accessor :column_headers # Request Error information. # The presence of an error field signals that the operation # has failed. # Corresponds to the JSON property `errors` # @return [Google::Apis::YoutubeAnalyticsV2::Errors] attr_accessor :errors # This value specifies the type of data included in the API response. # For the query method, the kind property value will be # `youtubeAnalytics#resultTable`. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The list contains all rows of the result table. Each item in the list is # an array that contains comma-delimited data corresponding to a single row # of data. The order of the comma-delimited data fields will match the # order of the columns listed in the `columnHeaders` field. # If no data is available for the given query, the `rows` element will be # omitted from the response. # The response for a query with the `day` dimension will not contain rows for # the most recent days. # Corresponds to the JSON property `rows` # @return [Array>] attr_accessor :rows def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @column_headers = args[:column_headers] if args.key?(:column_headers) @errors = args[:errors] if args.key?(:errors) @kind = args[:kind] if args.key?(:kind) @rows = args[:rows] if args.key?(:rows) end end # The description of a column of the result table. class ResultTableColumnHeader include Google::Apis::Core::Hashable # The type of the column (`DIMENSION` or `METRIC`). # Corresponds to the JSON property `columnType` # @return [String] attr_accessor :column_type # The type of the data in the column (`STRING`, `INTEGER`, `FLOAT`, etc.). # Corresponds to the JSON property `dataType` # @return [String] attr_accessor :data_type # The name of the dimension or metric. # 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) @column_type = args[:column_type] if args.key?(:column_type) @data_type = args[:data_type] if args.key?(:data_type) @name = args[:name] if args.key?(:name) end end end end end