413 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			413 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| # Copyright 2020 Google LLC
 | |
| #
 | |
| # 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 WebmastersV3
 | |
|       
 | |
|       # 
 | |
|       class ApiDataRow
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # 
 | |
|         # Corresponds to the JSON property `clicks`
 | |
|         # @return [Float]
 | |
|         attr_accessor :clicks
 | |
|       
 | |
|         # 
 | |
|         # Corresponds to the JSON property `ctr`
 | |
|         # @return [Float]
 | |
|         attr_accessor :ctr
 | |
|       
 | |
|         # 
 | |
|         # Corresponds to the JSON property `impressions`
 | |
|         # @return [Float]
 | |
|         attr_accessor :impressions
 | |
|       
 | |
|         # 
 | |
|         # Corresponds to the JSON property `keys`
 | |
|         # @return [Array<String>]
 | |
|         attr_accessor :keys
 | |
|       
 | |
|         # 
 | |
|         # Corresponds to the JSON property `position`
 | |
|         # @return [Float]
 | |
|         attr_accessor :position
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @clicks = args[:clicks] if args.key?(:clicks)
 | |
|           @ctr = args[:ctr] if args.key?(:ctr)
 | |
|           @impressions = args[:impressions] if args.key?(:impressions)
 | |
|           @keys = args[:keys] if args.key?(:keys)
 | |
|           @position = args[:position] if args.key?(:position)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # 
 | |
|       class ApiDimensionFilter
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # 
 | |
|         # Corresponds to the JSON property `dimension`
 | |
|         # @return [String]
 | |
|         attr_accessor :dimension
 | |
|       
 | |
|         # 
 | |
|         # Corresponds to the JSON property `expression`
 | |
|         # @return [String]
 | |
|         attr_accessor :expression
 | |
|       
 | |
|         # 
 | |
|         # Corresponds to the JSON property `operator`
 | |
|         # @return [String]
 | |
|         attr_accessor :operator
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @dimension = args[:dimension] if args.key?(:dimension)
 | |
|           @expression = args[:expression] if args.key?(:expression)
 | |
|           @operator = args[:operator] if args.key?(:operator)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # 
 | |
|       class ApiDimensionFilterGroup
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # 
 | |
|         # Corresponds to the JSON property `filters`
 | |
|         # @return [Array<Google::Apis::WebmastersV3::ApiDimensionFilter>]
 | |
|         attr_accessor :filters
 | |
|       
 | |
|         # 
 | |
|         # Corresponds to the JSON property `groupType`
 | |
|         # @return [String]
 | |
|         attr_accessor :group_type
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @filters = args[:filters] if args.key?(:filters)
 | |
|           @group_type = args[:group_type] if args.key?(:group_type)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # 
 | |
|       class SearchAnalyticsQueryRequest
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # [Optional; Default is "auto"] How data is aggregated. If aggregated by
 | |
|         # property, all data for the same property is aggregated; if aggregated by page,
 | |
|         # all data is aggregated by canonical URI. If you filter or group by page,
 | |
|         # choose AUTO; otherwise you can aggregate either by property or by page,
 | |
|         # depending on how you want your data calculated; see  the help documentation to
 | |
|         # learn how data is calculated differently by site versus by page.
 | |
|         # Note: If you group or filter by page, you cannot aggregate by property.
 | |
|         # If you specify any value other than AUTO, the aggregation type in the result
 | |
|         # will match the requested type, or if you request an invalid type, you will get
 | |
|         # an error. The API will never change your aggregation type if the requested
 | |
|         # type is invalid.
 | |
|         # Corresponds to the JSON property `aggregationType`
 | |
|         # @return [String]
 | |
|         attr_accessor :aggregation_type
 | |
|       
 | |
|         # [Optional] If "all" (case-insensitive), data will include fresh data. If "
 | |
|         # final" (case-insensitive) or if this parameter is omitted, the returned data
 | |
|         # will include only finalized data.
 | |
|         # Corresponds to the JSON property `dataState`
 | |
|         # @return [String]
 | |
|         attr_accessor :data_state
 | |
|       
 | |
|         # [Optional] Zero or more filters to apply to the dimension grouping values; for
 | |
|         # example, 'query contains "buy"' to see only data where the query string
 | |
|         # contains the substring "buy" (not case-sensitive). You can filter by a
 | |
|         # dimension without grouping by it.
 | |
|         # Corresponds to the JSON property `dimensionFilterGroups`
 | |
|         # @return [Array<Google::Apis::WebmastersV3::ApiDimensionFilterGroup>]
 | |
|         attr_accessor :dimension_filter_groups
 | |
|       
 | |
|         # [Optional] Zero or more dimensions to group results by. Dimensions are the
 | |
|         # group-by values in the Search Analytics page. Dimensions are combined to
 | |
|         # create a unique row key for each row. Results are grouped in the order that
 | |
|         # you supply these dimensions.
 | |
|         # Corresponds to the JSON property `dimensions`
 | |
|         # @return [Array<String>]
 | |
|         attr_accessor :dimensions
 | |
|       
 | |
|         # [Required] End date of the requested date range, in YYYY-MM-DD format, in PST (
 | |
|         # UTC - 8:00). Must be greater than or equal to the start date. This value is
 | |
|         # included in the range.
 | |
|         # Corresponds to the JSON property `endDate`
 | |
|         # @return [String]
 | |
|         attr_accessor :end_date
 | |
|       
 | |
|         # [Optional; Default is 1000] The maximum number of rows to return. Must be a
 | |
|         # number from 1 to 5,000 (inclusive).
 | |
|         # Corresponds to the JSON property `rowLimit`
 | |
|         # @return [Fixnum]
 | |
|         attr_accessor :row_limit
 | |
|       
 | |
|         # [Optional; Default is "web"] The search type to filter for.
 | |
|         # Corresponds to the JSON property `searchType`
 | |
|         # @return [String]
 | |
|         attr_accessor :search_type
 | |
|       
 | |
|         # [Required] Start date of the requested date range, in YYYY-MM-DD format, in
 | |
|         # PST time (UTC - 8:00). Must be less than or equal to the end date. This value
 | |
|         # is included in the range.
 | |
|         # Corresponds to the JSON property `startDate`
 | |
|         # @return [String]
 | |
|         attr_accessor :start_date
 | |
|       
 | |
|         # [Optional; Default is 0] Zero-based index of the first row in the response.
 | |
|         # Must be a non-negative number.
 | |
|         # Corresponds to the JSON property `startRow`
 | |
|         # @return [Fixnum]
 | |
|         attr_accessor :start_row
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @aggregation_type = args[:aggregation_type] if args.key?(:aggregation_type)
 | |
|           @data_state = args[:data_state] if args.key?(:data_state)
 | |
|           @dimension_filter_groups = args[:dimension_filter_groups] if args.key?(:dimension_filter_groups)
 | |
|           @dimensions = args[:dimensions] if args.key?(:dimensions)
 | |
|           @end_date = args[:end_date] if args.key?(:end_date)
 | |
|           @row_limit = args[:row_limit] if args.key?(:row_limit)
 | |
|           @search_type = args[:search_type] if args.key?(:search_type)
 | |
|           @start_date = args[:start_date] if args.key?(:start_date)
 | |
|           @start_row = args[:start_row] if args.key?(:start_row)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # A list of rows, one per result, grouped by key. Metrics in each row are
 | |
|       # aggregated for all data grouped by that key either by page or property, as
 | |
|       # specified by the aggregation type parameter.
 | |
|       class SearchAnalyticsQueryResponse
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # How the results were aggregated.
 | |
|         # Corresponds to the JSON property `responseAggregationType`
 | |
|         # @return [String]
 | |
|         attr_accessor :response_aggregation_type
 | |
|       
 | |
|         # A list of rows grouped by the key values in the order given in the query.
 | |
|         # Corresponds to the JSON property `rows`
 | |
|         # @return [Array<Google::Apis::WebmastersV3::ApiDataRow>]
 | |
|         attr_accessor :rows
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @response_aggregation_type = args[:response_aggregation_type] if args.key?(:response_aggregation_type)
 | |
|           @rows = args[:rows] if args.key?(:rows)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # List of sitemaps.
 | |
|       class ListSitemapsResponse
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # Contains detailed information about a specific URL submitted as a sitemap.
 | |
|         # Corresponds to the JSON property `sitemap`
 | |
|         # @return [Array<Google::Apis::WebmastersV3::WmxSitemap>]
 | |
|         attr_accessor :sitemap
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @sitemap = args[:sitemap] if args.key?(:sitemap)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # List of sites with access level information.
 | |
|       class ListSitesResponse
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # Contains permission level information about a Search Console site. For more
 | |
|         # information, see Permissions in Search Console.
 | |
|         # Corresponds to the JSON property `siteEntry`
 | |
|         # @return [Array<Google::Apis::WebmastersV3::WmxSite>]
 | |
|         attr_accessor :site_entry
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @site_entry = args[:site_entry] if args.key?(:site_entry)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # Contains permission level information about a Search Console site. For more
 | |
|       # information, see  Permissions in Search Console.
 | |
|       class WmxSite
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # The user's permission level for the site.
 | |
|         # Corresponds to the JSON property `permissionLevel`
 | |
|         # @return [String]
 | |
|         attr_accessor :permission_level
 | |
|       
 | |
|         # The URL of the site.
 | |
|         # Corresponds to the JSON property `siteUrl`
 | |
|         # @return [String]
 | |
|         attr_accessor :site_url
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @permission_level = args[:permission_level] if args.key?(:permission_level)
 | |
|           @site_url = args[:site_url] if args.key?(:site_url)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # Contains detailed information about a specific URL submitted as a sitemap.
 | |
|       class WmxSitemap
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # The various content types in the sitemap.
 | |
|         # Corresponds to the JSON property `contents`
 | |
|         # @return [Array<Google::Apis::WebmastersV3::WmxSitemapContent>]
 | |
|         attr_accessor :contents
 | |
|       
 | |
|         # Number of errors in the sitemap. These are issues with the sitemap itself that
 | |
|         # need to be fixed before it can be processed correctly.
 | |
|         # Corresponds to the JSON property `errors`
 | |
|         # @return [Fixnum]
 | |
|         attr_accessor :errors
 | |
|       
 | |
|         # If true, the sitemap has not been processed.
 | |
|         # Corresponds to the JSON property `isPending`
 | |
|         # @return [Boolean]
 | |
|         attr_accessor :is_pending
 | |
|         alias_method :is_pending?, :is_pending
 | |
|       
 | |
|         # If true, the sitemap is a collection of sitemaps.
 | |
|         # Corresponds to the JSON property `isSitemapsIndex`
 | |
|         # @return [Boolean]
 | |
|         attr_accessor :is_sitemaps_index
 | |
|         alias_method :is_sitemaps_index?, :is_sitemaps_index
 | |
|       
 | |
|         # Date & time in which this sitemap was last downloaded. Date format is in RFC
 | |
|         # 3339 format (yyyy-mm-dd).
 | |
|         # Corresponds to the JSON property `lastDownloaded`
 | |
|         # @return [DateTime]
 | |
|         attr_accessor :last_downloaded
 | |
|       
 | |
|         # Date & time in which this sitemap was submitted. Date format is in RFC 3339
 | |
|         # format (yyyy-mm-dd).
 | |
|         # Corresponds to the JSON property `lastSubmitted`
 | |
|         # @return [DateTime]
 | |
|         attr_accessor :last_submitted
 | |
|       
 | |
|         # The url of the sitemap.
 | |
|         # Corresponds to the JSON property `path`
 | |
|         # @return [String]
 | |
|         attr_accessor :path
 | |
|       
 | |
|         # The type of the sitemap. For example: rssFeed.
 | |
|         # Corresponds to the JSON property `type`
 | |
|         # @return [String]
 | |
|         attr_accessor :type
 | |
|       
 | |
|         # Number of warnings for the sitemap. These are generally non-critical issues
 | |
|         # with URLs in the sitemaps.
 | |
|         # Corresponds to the JSON property `warnings`
 | |
|         # @return [Fixnum]
 | |
|         attr_accessor :warnings
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @contents = args[:contents] if args.key?(:contents)
 | |
|           @errors = args[:errors] if args.key?(:errors)
 | |
|           @is_pending = args[:is_pending] if args.key?(:is_pending)
 | |
|           @is_sitemaps_index = args[:is_sitemaps_index] if args.key?(:is_sitemaps_index)
 | |
|           @last_downloaded = args[:last_downloaded] if args.key?(:last_downloaded)
 | |
|           @last_submitted = args[:last_submitted] if args.key?(:last_submitted)
 | |
|           @path = args[:path] if args.key?(:path)
 | |
|           @type = args[:type] if args.key?(:type)
 | |
|           @warnings = args[:warnings] if args.key?(:warnings)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # Information about the various content types in the sitemap.
 | |
|       class WmxSitemapContent
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # The number of URLs from the sitemap that were indexed (of the content type).
 | |
|         # Corresponds to the JSON property `indexed`
 | |
|         # @return [Fixnum]
 | |
|         attr_accessor :indexed
 | |
|       
 | |
|         # The number of URLs in the sitemap (of the content type).
 | |
|         # Corresponds to the JSON property `submitted`
 | |
|         # @return [Fixnum]
 | |
|         attr_accessor :submitted
 | |
|       
 | |
|         # The specific type of content in this sitemap. For example: web.
 | |
|         # 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)
 | |
|           @indexed = args[:indexed] if args.key?(:indexed)
 | |
|           @submitted = args[:submitted] if args.key?(:submitted)
 | |
|           @type = args[:type] if args.key?(:type)
 | |
|         end
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 |