# 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 SearchconsoleV1 # 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] 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 # A filter test to be applied to each row in the data set, where a match can # return the row. Filters are string comparisons, and values and dimension names # are not case-sensitive. Individual filters are either AND'ed or OR'ed within # their parent filter group, according to the group's group type. You do not # need to group by a specified dimension to filter against it. 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 # A set of dimension value filters to test against each row. Only rows that pass # all filter groups will be returned. All results within a filter group are # either AND'ed or OR'ed together, depending on the group type selected. All # filter groups are AND'ed together. class ApiDimensionFilterGroup include Google::Apis::Core::Hashable # # Corresponds to the JSON property `filters` # @return [Array] 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 # Blocked resource. class BlockedResource include Google::Apis::Core::Hashable # URL of the blocked resource. # 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) @url = args[:url] if args.key?(:url) end end # Describe image data. class Image include Google::Apis::Core::Hashable # Image data in format determined by the mime type. Currently, the format will # always be "image/png", but this might change in the future. # Corresponds to the JSON property `data` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :data # The mime-type of the image data. # Corresponds to the JSON property `mimeType` # @return [String] attr_accessor :mime_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @data = args[:data] if args.key?(:data) @mime_type = args[:mime_type] if args.key?(:mime_type) end end # Mobile-friendly issue. class MobileFriendlyIssue include Google::Apis::Core::Hashable # Rule violated. # Corresponds to the JSON property `rule` # @return [String] attr_accessor :rule def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @rule = args[:rule] if args.key?(:rule) end end # Information about a resource with issue. class ResourceIssue include Google::Apis::Core::Hashable # Blocked resource. # Corresponds to the JSON property `blockedResource` # @return [Google::Apis::SearchconsoleV1::BlockedResource] attr_accessor :blocked_resource def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @blocked_resource = args[:blocked_resource] if args.key?(:blocked_resource) end end # Mobile-friendly test request. class RunMobileFriendlyTestRequest include Google::Apis::Core::Hashable # Whether or not screenshot is requested. Default is false. # Corresponds to the JSON property `requestScreenshot` # @return [Boolean] attr_accessor :request_screenshot alias_method :request_screenshot?, :request_screenshot # URL for inspection. # 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) @request_screenshot = args[:request_screenshot] if args.key?(:request_screenshot) @url = args[:url] if args.key?(:url) end end # Mobile-friendly test response, including mobile-friendly issues and resource # issues. class RunMobileFriendlyTestResponse include Google::Apis::Core::Hashable # Test verdict, whether the page is mobile friendly or not. # Corresponds to the JSON property `mobileFriendliness` # @return [String] attr_accessor :mobile_friendliness # List of mobile-usability issues. # Corresponds to the JSON property `mobileFriendlyIssues` # @return [Array] attr_accessor :mobile_friendly_issues # Information about embedded resources issues. # Corresponds to the JSON property `resourceIssues` # @return [Array] attr_accessor :resource_issues # Describe image data. # Corresponds to the JSON property `screenshot` # @return [Google::Apis::SearchconsoleV1::Image] attr_accessor :screenshot # Final state of the test, including error details if necessary. # Corresponds to the JSON property `testStatus` # @return [Google::Apis::SearchconsoleV1::TestStatus] attr_accessor :test_status def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @mobile_friendliness = args[:mobile_friendliness] if args.key?(:mobile_friendliness) @mobile_friendly_issues = args[:mobile_friendly_issues] if args.key?(:mobile_friendly_issues) @resource_issues = args[:resource_issues] if args.key?(:resource_issues) @screenshot = args[:screenshot] if args.key?(:screenshot) @test_status = args[:test_status] if args.key?(:test_status) 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 # The data state to be fetched, can be full or all, the latter including full # and partial 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] 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] 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 25,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] 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 SitemapsListResponse include Google::Apis::Core::Hashable # Contains detailed information about a specific URL submitted as a [sitemap]( # https://support.google.com/webmasters/answer/156184). # Corresponds to the JSON property `sitemap` # @return [Array] 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 SitesListResponse include Google::Apis::Core::Hashable # Contains permission level information about a Search Console site. For more # information, see [Permissions in Search Console](https://support.google.com/ # webmasters/answer/2451999). # Corresponds to the JSON property `siteEntry` # @return [Array] 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 # Final state of the test, including error details if necessary. class TestStatus include Google::Apis::Core::Hashable # Error details if applicable. # Corresponds to the JSON property `details` # @return [String] attr_accessor :details # Status of the test. # 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) @details = args[:details] if args.key?(:details) @status = args[:status] if args.key?(:status) end end # Contains permission level information about a Search Console site. For more # information, see [Permissions in Search Console](https://support.google.com/ # webmasters/answer/2451999). 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]( # https://support.google.com/webmasters/answer/156184). class WmxSitemap include Google::Apis::Core::Hashable # The various content types in the sitemap. # Corresponds to the JSON property `contents` # @return [Array] 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 [String] 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 [String] 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