# 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 PagespeedonlineV1 # class Result include Google::Apis::Core::Hashable # The captcha verify result # Corresponds to the JSON property `captchaResult` # @return [String] attr_accessor :captcha_result # Localized PageSpeed results. Contains a ruleResults entry for each PageSpeed # rule instantiated and run by the server. # Corresponds to the JSON property `formattedResults` # @return [Google::Apis::PagespeedonlineV1::Result::FormattedResults] attr_accessor :formatted_results # Canonicalized and final URL for the document, after following page redirects ( # if any). # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # List of rules that were specified in the request, but which the server did not # know how to instantiate. # Corresponds to the JSON property `invalidRules` # @return [Array] attr_accessor :invalid_rules # Kind of result. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Summary statistics for the page, such as number of JavaScript bytes, number of # HTML bytes, etc. # Corresponds to the JSON property `pageStats` # @return [Google::Apis::PagespeedonlineV1::Result::PageStats] attr_accessor :page_stats # Response code for the document. 200 indicates a normal page load. 4xx/5xx # indicates an error. # Corresponds to the JSON property `responseCode` # @return [Fixnum] attr_accessor :response_code # The PageSpeed Score (0-100), which indicates how much faster a page could be. # A high score indicates little room for improvement, while a lower score # indicates more room for improvement. # Corresponds to the JSON property `score` # @return [Fixnum] attr_accessor :score # Base64-encoded screenshot of the page that was analyzed. # Corresponds to the JSON property `screenshot` # @return [Google::Apis::PagespeedonlineV1::Result::Screenshot] attr_accessor :screenshot # Title of the page, as displayed in the browser's title bar. # Corresponds to the JSON property `title` # @return [String] attr_accessor :title # The version of PageSpeed used to generate these results. # Corresponds to the JSON property `version` # @return [Google::Apis::PagespeedonlineV1::Result::Version] attr_accessor :version def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @captcha_result = args[:captcha_result] if args.key?(:captcha_result) @formatted_results = args[:formatted_results] if args.key?(:formatted_results) @id = args[:id] if args.key?(:id) @invalid_rules = args[:invalid_rules] if args.key?(:invalid_rules) @kind = args[:kind] if args.key?(:kind) @page_stats = args[:page_stats] if args.key?(:page_stats) @response_code = args[:response_code] if args.key?(:response_code) @score = args[:score] if args.key?(:score) @screenshot = args[:screenshot] if args.key?(:screenshot) @title = args[:title] if args.key?(:title) @version = args[:version] if args.key?(:version) end # Localized PageSpeed results. Contains a ruleResults entry for each PageSpeed # rule instantiated and run by the server. class FormattedResults include Google::Apis::Core::Hashable # The locale of the formattedResults, e.g. "en_US". # Corresponds to the JSON property `locale` # @return [String] attr_accessor :locale # Dictionary of formatted rule results, with one entry for each PageSpeed rule # instantiated and run by the server. # Corresponds to the JSON property `ruleResults` # @return [Hash] attr_accessor :rule_results def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @locale = args[:locale] if args.key?(:locale) @rule_results = args[:rule_results] if args.key?(:rule_results) end # The enum-like identifier for this rule. For instance "EnableKeepAlive" or " # AvoidCssImport". Not localized. class RuleResult include Google::Apis::Core::Hashable # Localized name of the rule, intended for presentation to a user. # Corresponds to the JSON property `localizedRuleName` # @return [String] attr_accessor :localized_rule_name # The impact (unbounded floating point value) that implementing the suggestions # for this rule would have on making the page faster. Impact is comparable # between rules to determine which rule's suggestions would have a higher or # lower impact on making a page faster. For instance, if enabling compression # would save 1MB, while optimizing images would save 500kB, the enable # compression rule would have 2x the impact of the image optimization rule, all # other things being equal. # Corresponds to the JSON property `ruleImpact` # @return [Float] attr_accessor :rule_impact # List of blocks of URLs. Each block may contain a heading and a list of URLs. # Each URL may optionally include additional details. # Corresponds to the JSON property `urlBlocks` # @return [Array] attr_accessor :url_blocks def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @localized_rule_name = args[:localized_rule_name] if args.key?(:localized_rule_name) @rule_impact = args[:rule_impact] if args.key?(:rule_impact) @url_blocks = args[:url_blocks] if args.key?(:url_blocks) end # class UrlBlock include Google::Apis::Core::Hashable # Heading to be displayed with the list of URLs. # Corresponds to the JSON property `header` # @return [Google::Apis::PagespeedonlineV1::Result::FormattedResults::RuleResult::UrlBlock::Header] attr_accessor :header # List of entries that provide information about URLs in the url block. Optional. # Corresponds to the JSON property `urls` # @return [Array] attr_accessor :urls def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @header = args[:header] if args.key?(:header) @urls = args[:urls] if args.key?(:urls) end # Heading to be displayed with the list of URLs. class Header include Google::Apis::Core::Hashable # List of arguments for the format string. # Corresponds to the JSON property `args` # @return [Array] attr_accessor :args # A localized format string with $N placeholders, where N is the 1-indexed # argument number, e.g. 'Minifying the following $1 resources would save a total # of $2 bytes'. # Corresponds to the JSON property `format` # @return [String] attr_accessor :format def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @args = args[:args] if args.key?(:args) @format = args[:format] if args.key?(:format) end # class Arg include Google::Apis::Core::Hashable # Type of argument. One of URL, STRING_LITERAL, INT_LITERAL, BYTES, or DURATION. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # Argument value, as a localized string. # 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) @type = args[:type] if args.key?(:type) @value = args[:value] if args.key?(:value) end end end # class Url include Google::Apis::Core::Hashable # List of entries that provide additional details about a single URL. Optional. # Corresponds to the JSON property `details` # @return [Array] attr_accessor :details # A format string that gives information about the URL, and a list of arguments # for that format string. # Corresponds to the JSON property `result` # @return [Google::Apis::PagespeedonlineV1::Result::FormattedResults::RuleResult::UrlBlock::Url::Result] attr_accessor :result def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @details = args[:details] if args.key?(:details) @result = args[:result] if args.key?(:result) end # class Detail include Google::Apis::Core::Hashable # List of arguments for the format string. # Corresponds to the JSON property `args` # @return [Array] attr_accessor :args # A localized format string with $N placeholders, where N is the 1-indexed # argument number, e.g. 'Unnecessary metadata for this resource adds an # additional $1 bytes to its download size'. # Corresponds to the JSON property `format` # @return [String] attr_accessor :format def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @args = args[:args] if args.key?(:args) @format = args[:format] if args.key?(:format) end # class Arg include Google::Apis::Core::Hashable # Type of argument. One of URL, STRING_LITERAL, INT_LITERAL, BYTES, or DURATION. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # Argument value, as a localized string. # 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) @type = args[:type] if args.key?(:type) @value = args[:value] if args.key?(:value) end end end # A format string that gives information about the URL, and a list of arguments # for that format string. class Result include Google::Apis::Core::Hashable # List of arguments for the format string. # Corresponds to the JSON property `args` # @return [Array] attr_accessor :args # A localized format string with $N placeholders, where N is the 1-indexed # argument number, e.g. 'Minifying the resource at URL $1 can save $2 bytes'. # Corresponds to the JSON property `format` # @return [String] attr_accessor :format def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @args = args[:args] if args.key?(:args) @format = args[:format] if args.key?(:format) end # class Arg include Google::Apis::Core::Hashable # Type of argument. One of URL, STRING_LITERAL, INT_LITERAL, BYTES, or DURATION. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # Argument value, as a localized string. # 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) @type = args[:type] if args.key?(:type) @value = args[:value] if args.key?(:value) end end end end end end end # Summary statistics for the page, such as number of JavaScript bytes, number of # HTML bytes, etc. class PageStats include Google::Apis::Core::Hashable # Number of uncompressed response bytes for CSS resources on the page. # Corresponds to the JSON property `cssResponseBytes` # @return [Fixnum] attr_accessor :css_response_bytes # Number of response bytes for flash resources on the page. # Corresponds to the JSON property `flashResponseBytes` # @return [Fixnum] attr_accessor :flash_response_bytes # Number of uncompressed response bytes for the main HTML document and all # iframes on the page. # Corresponds to the JSON property `htmlResponseBytes` # @return [Fixnum] attr_accessor :html_response_bytes # Number of response bytes for image resources on the page. # Corresponds to the JSON property `imageResponseBytes` # @return [Fixnum] attr_accessor :image_response_bytes # Number of uncompressed response bytes for JS resources on the page. # Corresponds to the JSON property `javascriptResponseBytes` # @return [Fixnum] attr_accessor :javascript_response_bytes # Number of CSS resources referenced by the page. # Corresponds to the JSON property `numberCssResources` # @return [Fixnum] attr_accessor :number_css_resources # Number of unique hosts referenced by the page. # Corresponds to the JSON property `numberHosts` # @return [Fixnum] attr_accessor :number_hosts # Number of JavaScript resources referenced by the page. # Corresponds to the JSON property `numberJsResources` # @return [Fixnum] attr_accessor :number_js_resources # Number of HTTP resources loaded by the page. # Corresponds to the JSON property `numberResources` # @return [Fixnum] attr_accessor :number_resources # Number of static (i.e. cacheable) resources on the page. # Corresponds to the JSON property `numberStaticResources` # @return [Fixnum] attr_accessor :number_static_resources # Number of response bytes for other resources on the page. # Corresponds to the JSON property `otherResponseBytes` # @return [Fixnum] attr_accessor :other_response_bytes # Number of uncompressed response bytes for text resources not covered by other # statistics (i.e non-HTML, non-script, non-CSS resources) on the page. # Corresponds to the JSON property `textResponseBytes` # @return [Fixnum] attr_accessor :text_response_bytes # Total size of all request bytes sent by the page. # Corresponds to the JSON property `totalRequestBytes` # @return [Fixnum] attr_accessor :total_request_bytes def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @css_response_bytes = args[:css_response_bytes] if args.key?(:css_response_bytes) @flash_response_bytes = args[:flash_response_bytes] if args.key?(:flash_response_bytes) @html_response_bytes = args[:html_response_bytes] if args.key?(:html_response_bytes) @image_response_bytes = args[:image_response_bytes] if args.key?(:image_response_bytes) @javascript_response_bytes = args[:javascript_response_bytes] if args.key?(:javascript_response_bytes) @number_css_resources = args[:number_css_resources] if args.key?(:number_css_resources) @number_hosts = args[:number_hosts] if args.key?(:number_hosts) @number_js_resources = args[:number_js_resources] if args.key?(:number_js_resources) @number_resources = args[:number_resources] if args.key?(:number_resources) @number_static_resources = args[:number_static_resources] if args.key?(:number_static_resources) @other_response_bytes = args[:other_response_bytes] if args.key?(:other_response_bytes) @text_response_bytes = args[:text_response_bytes] if args.key?(:text_response_bytes) @total_request_bytes = args[:total_request_bytes] if args.key?(:total_request_bytes) end end # Base64-encoded screenshot of the page that was analyzed. class Screenshot include Google::Apis::Core::Hashable # Image data base64 encoded. # Corresponds to the JSON property `data` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :data # Height of screenshot in pixels. # Corresponds to the JSON property `height` # @return [Fixnum] attr_accessor :height # Mime type of image data. E.g. "image/jpeg". # Corresponds to the JSON property `mime_type` # @return [String] attr_accessor :mime_type # Width of screenshot in pixels. # Corresponds to the JSON property `width` # @return [Fixnum] attr_accessor :width def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @data = args[:data] if args.key?(:data) @height = args[:height] if args.key?(:height) @mime_type = args[:mime_type] if args.key?(:mime_type) @width = args[:width] if args.key?(:width) end end # The version of PageSpeed used to generate these results. class Version include Google::Apis::Core::Hashable # The major version number of PageSpeed used to generate these results. # Corresponds to the JSON property `major` # @return [Fixnum] attr_accessor :major # The minor version number of PageSpeed used to generate these results. # Corresponds to the JSON property `minor` # @return [Fixnum] attr_accessor :minor def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @major = args[:major] if args.key?(:major) @minor = args[:minor] if args.key?(:minor) end end end end end end