# 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 AdmobV1 # Represents a whole or partial calendar date, e.g. a birthday. The time of day # and time zone are either specified elsewhere or are not significant. The date # is relative to the Proleptic Gregorian Calendar. This can represent: # * A full date, with non-zero year, month and day values # * A month and day value, with a zero year, e.g. an anniversary # * A year on its own, with zero month and day values # * A year and month value, with a zero day, e.g. a credit card expiration date # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. class Date include Google::Apis::Core::Hashable # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 # if specifying a year by itself or a year and month where the day is not # significant. # Corresponds to the JSON property `day` # @return [Fixnum] attr_accessor :day # Month of year. Must be from 1 to 12, or 0 if specifying a year without a # month and day. # Corresponds to the JSON property `month` # @return [Fixnum] attr_accessor :month # Year of date. Must be from 1 to 9999, or 0 if specifying a date without # a year. # Corresponds to the JSON property `year` # @return [Fixnum] attr_accessor :year def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @day = args[:day] if args.key?(:day) @month = args[:month] if args.key?(:month) @year = args[:year] if args.key?(:year) end end # Specification of a single date range. Both dates are inclusive. class DateRange include Google::Apis::Core::Hashable # Represents a whole or partial calendar date, e.g. a birthday. The time of day # and time zone are either specified elsewhere or are not significant. The date # is relative to the Proleptic Gregorian Calendar. This can represent: # * A full date, with non-zero year, month and day values # * A month and day value, with a zero year, e.g. an anniversary # * A year on its own, with zero month and day values # * A year and month value, with a zero day, e.g. a credit card expiration date # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # Corresponds to the JSON property `endDate` # @return [Google::Apis::AdmobV1::Date] attr_accessor :end_date # Represents a whole or partial calendar date, e.g. a birthday. The time of day # and time zone are either specified elsewhere or are not significant. The date # is relative to the Proleptic Gregorian Calendar. This can represent: # * A full date, with non-zero year, month and day values # * A month and day value, with a zero year, e.g. an anniversary # * A year on its own, with zero month and day values # * A year and month value, with a zero day, e.g. a credit card expiration date # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # Corresponds to the JSON property `startDate` # @return [Google::Apis::AdmobV1::Date] attr_accessor :start_date def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @end_date = args[:end_date] if args.key?(:end_date) @start_date = args[:start_date] if args.key?(:start_date) end end # Request to generate an AdMob Mediation report. class GenerateMediationReportRequest include Google::Apis::Core::Hashable # The specification for generating an AdMob Mediation report. # For example, the specification to get observed ECPM sliced by ad source and # app for the 'US' and 'CN' countries can look like the following example: # ` # "date_range": ` # "start_date": `"year": 2018, "month": 9, "day": 1`, # "end_date": `"year": 2018, "month": 9, "day": 30` # `, # "dimensions": ["AD_SOURCE", "APP", "COUNTRY"], # "metrics": ["OBSERVED_ECPM"], # "dimension_filters": [ # ` # "dimension": "COUNTRY", # "matches_any": `"values": [`"value": "US", "value": "CN"`]` # ` # ], # "sort_conditions": [ # `"dimension":"APP", order: "ASCENDING"` # ], # "localization_settings": ` # "currency_code": "USD", # "language_code": "en-US" # ` # ` # For a better understanding, you can treat the preceding specification like # the following pseudo SQL: # SELECT AD_SOURCE, APP, COUNTRY, OBSERVED_ECPM # FROM MEDIATION_REPORT # WHERE DATE >= '2018-09-01' AND DATE <= '2018-09-30' # AND COUNTRY IN ('US', 'CN') # GROUP BY AD_SOURCE, APP, COUNTRY # ORDER BY APP ASC; # Corresponds to the JSON property `reportSpec` # @return [Google::Apis::AdmobV1::MediationReportSpec] attr_accessor :report_spec def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @report_spec = args[:report_spec] if args.key?(:report_spec) end end # The streaming response for the AdMob Mediation report where the first # response contains the report header, then a stream of row responses, and # finally a footer as the last response message. # For example: # [` # "header": ` # "date_range": ` # "start_date": `"year": 2018, "month": 9, "day": 1`, # "end_date": `"year": 2018, "month": 9, "day": 1` # `, # "localization_settings": ` # "currency_code": "USD", # "language_code": "en-US" # ` # ` # `, # ` # "row": ` # "dimension_values": ` # "DATE": `"value": "20180918"`, # "APP": ` # "value": "ca-app-pub-8123415297019784~1001342552", # "display_label": "My app name!" # ` # `, # "metric_values": ` # "ESTIMATED_EARNINGS": `"decimal_value": "1324746"` # ` # ` # `, # ` # "footer": `"matching_row_count": 1` # `] class GenerateMediationReportResponse include Google::Apis::Core::Hashable # Groups data available after report generation, for example, warnings and row # counts. Always sent as the last message in the stream response. # Corresponds to the JSON property `footer` # @return [Google::Apis::AdmobV1::ReportFooter] attr_accessor :footer # Groups data helps to treat the generated report. Always sent as a first # message in the stream response. # Corresponds to the JSON property `header` # @return [Google::Apis::AdmobV1::ReportHeader] attr_accessor :header # A row of the returning report. # Corresponds to the JSON property `row` # @return [Google::Apis::AdmobV1::ReportRow] attr_accessor :row def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @footer = args[:footer] if args.key?(:footer) @header = args[:header] if args.key?(:header) @row = args[:row] if args.key?(:row) end end # Request to generate an AdMob Network report. class GenerateNetworkReportRequest include Google::Apis::Core::Hashable # The specification for generating an AdMob Network report. # For example, the specification to get clicks and estimated earnings for only # the 'US' and 'CN' countries can look like the following example: # ` # 'date_range': ` # 'start_date': `'year': 2018, 'month': 9, 'day': 1`, # 'end_date': `'year': 2018, 'month': 9, 'day': 30` # `, # 'dimensions': ['DATE', 'APP', 'COUNTRY'], # 'metrics': ['CLICKS', 'ESTIMATED_EARNINGS'], # 'dimension_filters': [ # ` # 'dimension': 'COUNTRY', # 'matches_any': `'values': [`'value': 'US', 'value': 'CN'`]` # ` # ], # 'sort_conditions': [ # `'dimension':'APP', order: 'ASCENDING'`, # `'metric':'CLICKS', order: 'DESCENDING'` # ], # 'localization_settings': ` # 'currency_code': 'USD', # 'language_code': 'en-US' # ` # ` # For a better understanding, you can treat the preceding specification like # the following pseudo SQL: # SELECT DATE, APP, COUNTRY, CLICKS, ESTIMATED_EARNINGS # FROM NETWORK_REPORT # WHERE DATE >= '2018-09-01' AND DATE <= '2018-09-30' # AND COUNTRY IN ('US', 'CN') # GROUP BY DATE, APP, COUNTRY # ORDER BY APP ASC, CLICKS DESC; # Corresponds to the JSON property `reportSpec` # @return [Google::Apis::AdmobV1::NetworkReportSpec] attr_accessor :report_spec def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @report_spec = args[:report_spec] if args.key?(:report_spec) end end # The streaming response for the AdMob Network report where the first response # contains the report header, then a stream of row responses, and finally a # footer as the last response message. # For example: # [` # "header": ` # "dateRange": ` # "startDate": `"year": 2018, "month": 9, "day": 1`, # "endDate": `"year": 2018, "month": 9, "day": 1` # `, # "localizationSettings": ` # "currencyCode": "USD", # "languageCode": "en-US" # ` # ` # `, # ` # "row": ` # "dimensionValues": ` # "DATE": `"value": "20180918"`, # "APP": ` # "value": "ca-app-pub-8123415297019784~1001342552", # displayLabel: "My app name!" # ` # `, # "metricValues": ` # "ESTIMATED_EARNINGS": `"microsValue": 6500000` # ` # ` # `, # ` # "footer": `"matchingRowCount": 1` # `] class GenerateNetworkReportResponse include Google::Apis::Core::Hashable # Groups data available after report generation, for example, warnings and row # counts. Always sent as the last message in the stream response. # Corresponds to the JSON property `footer` # @return [Google::Apis::AdmobV1::ReportFooter] attr_accessor :footer # Groups data helps to treat the generated report. Always sent as a first # message in the stream response. # Corresponds to the JSON property `header` # @return [Google::Apis::AdmobV1::ReportHeader] attr_accessor :header # A row of the returning report. # Corresponds to the JSON property `row` # @return [Google::Apis::AdmobV1::ReportRow] attr_accessor :row def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @footer = args[:footer] if args.key?(:footer) @header = args[:header] if args.key?(:header) @row = args[:row] if args.key?(:row) end end # Response for the publisher account list request. class ListPublisherAccountsResponse include Google::Apis::Core::Hashable # Publisher that the client credentials can access. # Corresponds to the JSON property `account` # @return [Array] attr_accessor :account # If not empty, indicates that there might be more accounts for the request; # you must pass this value in a new `ListPublisherAccountsRequest`. # 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) @account = args[:account] if args.key?(:account) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # Localization settings for reports, such as currency and language. It affects # how metrics are calculated. class LocalizationSettings include Google::Apis::Core::Hashable # Currency code of the earning related metrics, which is the 3-letter code # defined in ISO 4217. The daily average rate is used for the currency # conversion. Defaults to the account currency code if unspecified. # Corresponds to the JSON property `currencyCode` # @return [String] attr_accessor :currency_code # Language used for any localized text, such as some dimension value display # labels. The language tag defined in the IETF BCP47. Defaults to 'en-US' if # unspecified. # Corresponds to the JSON property `languageCode` # @return [String] attr_accessor :language_code def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @currency_code = args[:currency_code] if args.key?(:currency_code) @language_code = args[:language_code] if args.key?(:language_code) end end # The specification for generating an AdMob Mediation report. # For example, the specification to get observed ECPM sliced by ad source and # app for the 'US' and 'CN' countries can look like the following example: # ` # "date_range": ` # "start_date": `"year": 2018, "month": 9, "day": 1`, # "end_date": `"year": 2018, "month": 9, "day": 30` # `, # "dimensions": ["AD_SOURCE", "APP", "COUNTRY"], # "metrics": ["OBSERVED_ECPM"], # "dimension_filters": [ # ` # "dimension": "COUNTRY", # "matches_any": `"values": [`"value": "US", "value": "CN"`]` # ` # ], # "sort_conditions": [ # `"dimension":"APP", order: "ASCENDING"` # ], # "localization_settings": ` # "currency_code": "USD", # "language_code": "en-US" # ` # ` # For a better understanding, you can treat the preceding specification like # the following pseudo SQL: # SELECT AD_SOURCE, APP, COUNTRY, OBSERVED_ECPM # FROM MEDIATION_REPORT # WHERE DATE >= '2018-09-01' AND DATE <= '2018-09-30' # AND COUNTRY IN ('US', 'CN') # GROUP BY AD_SOURCE, APP, COUNTRY # ORDER BY APP ASC; class MediationReportSpec include Google::Apis::Core::Hashable # Specification of a single date range. Both dates are inclusive. # Corresponds to the JSON property `dateRange` # @return [Google::Apis::AdmobV1::DateRange] attr_accessor :date_range # Describes which report rows to match based on their dimension values. # Corresponds to the JSON property `dimensionFilters` # @return [Array] attr_accessor :dimension_filters # List of dimensions of the report. The value combination of these dimensions # determines the row of the report. If no dimensions are specified, the # report returns a single row of requested metrics for the entire account. # Corresponds to the JSON property `dimensions` # @return [Array] attr_accessor :dimensions # Localization settings for reports, such as currency and language. It affects # how metrics are calculated. # Corresponds to the JSON property `localizationSettings` # @return [Google::Apis::AdmobV1::LocalizationSettings] attr_accessor :localization_settings # Maximum number of report data rows to return. If the value is not set, the # API returns as many rows as possible, up to 100000. Acceptable values are # 1-100000, inclusive. Any other values are treated as 100000. # Corresponds to the JSON property `maxReportRows` # @return [Fixnum] attr_accessor :max_report_rows # List of metrics of the report. A report must specify at least one metric. # Corresponds to the JSON property `metrics` # @return [Array] attr_accessor :metrics # Describes the sorting of report rows. The order of the condition in the # list defines its precedence; the earlier the condition, the higher its # precedence. If no sort conditions are specified, the row ordering is # undefined. # Corresponds to the JSON property `sortConditions` # @return [Array] attr_accessor :sort_conditions # A report time zone. Accepts an IANA TZ name values, such as # "America/Los_Angeles." If no time zone is defined, the account default # takes effect. Check default value by the get account action. # **Warning:** The "America/Los_Angeles" is the only supported value at # the moment. # Corresponds to the JSON property `timeZone` # @return [String] attr_accessor :time_zone def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @date_range = args[:date_range] if args.key?(:date_range) @dimension_filters = args[:dimension_filters] if args.key?(:dimension_filters) @dimensions = args[:dimensions] if args.key?(:dimensions) @localization_settings = args[:localization_settings] if args.key?(:localization_settings) @max_report_rows = args[:max_report_rows] if args.key?(:max_report_rows) @metrics = args[:metrics] if args.key?(:metrics) @sort_conditions = args[:sort_conditions] if args.key?(:sort_conditions) @time_zone = args[:time_zone] if args.key?(:time_zone) end end # Describes which report rows to match based on their dimension values. class MediationReportSpecDimensionFilter include Google::Apis::Core::Hashable # Applies the filter criterion to the specified dimension. # Corresponds to the JSON property `dimension` # @return [String] attr_accessor :dimension # List of string values. # Corresponds to the JSON property `matchesAny` # @return [Google::Apis::AdmobV1::StringList] attr_accessor :matches_any def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @dimension = args[:dimension] if args.key?(:dimension) @matches_any = args[:matches_any] if args.key?(:matches_any) end end # Sorting direction to be applied on a dimension or a metric. class MediationReportSpecSortCondition include Google::Apis::Core::Hashable # Sort by the specified dimension. # Corresponds to the JSON property `dimension` # @return [String] attr_accessor :dimension # Sort by the specified metric. # Corresponds to the JSON property `metric` # @return [String] attr_accessor :metric # Sorting order of the dimension or metric. # Corresponds to the JSON property `order` # @return [String] attr_accessor :order def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @dimension = args[:dimension] if args.key?(:dimension) @metric = args[:metric] if args.key?(:metric) @order = args[:order] if args.key?(:order) end end # The specification for generating an AdMob Network report. # For example, the specification to get clicks and estimated earnings for only # the 'US' and 'CN' countries can look like the following example: # ` # 'date_range': ` # 'start_date': `'year': 2018, 'month': 9, 'day': 1`, # 'end_date': `'year': 2018, 'month': 9, 'day': 30` # `, # 'dimensions': ['DATE', 'APP', 'COUNTRY'], # 'metrics': ['CLICKS', 'ESTIMATED_EARNINGS'], # 'dimension_filters': [ # ` # 'dimension': 'COUNTRY', # 'matches_any': `'values': [`'value': 'US', 'value': 'CN'`]` # ` # ], # 'sort_conditions': [ # `'dimension':'APP', order: 'ASCENDING'`, # `'metric':'CLICKS', order: 'DESCENDING'` # ], # 'localization_settings': ` # 'currency_code': 'USD', # 'language_code': 'en-US' # ` # ` # For a better understanding, you can treat the preceding specification like # the following pseudo SQL: # SELECT DATE, APP, COUNTRY, CLICKS, ESTIMATED_EARNINGS # FROM NETWORK_REPORT # WHERE DATE >= '2018-09-01' AND DATE <= '2018-09-30' # AND COUNTRY IN ('US', 'CN') # GROUP BY DATE, APP, COUNTRY # ORDER BY APP ASC, CLICKS DESC; class NetworkReportSpec include Google::Apis::Core::Hashable # Specification of a single date range. Both dates are inclusive. # Corresponds to the JSON property `dateRange` # @return [Google::Apis::AdmobV1::DateRange] attr_accessor :date_range # Describes which report rows to match based on their dimension values. # Corresponds to the JSON property `dimensionFilters` # @return [Array] attr_accessor :dimension_filters # List of dimensions of the report. The value combination of these dimensions # determines the row of the report. If no dimensions are specified, the # report returns a single row of requested metrics for the entire account. # Corresponds to the JSON property `dimensions` # @return [Array] attr_accessor :dimensions # Localization settings for reports, such as currency and language. It affects # how metrics are calculated. # Corresponds to the JSON property `localizationSettings` # @return [Google::Apis::AdmobV1::LocalizationSettings] attr_accessor :localization_settings # Maximum number of report data rows to return. If the value is not set, the # API returns as many rows as possible, up to 100000. Acceptable values are # 1-100000, inclusive. Any other values are treated as 100000. # Corresponds to the JSON property `maxReportRows` # @return [Fixnum] attr_accessor :max_report_rows # List of metrics of the report. A report must specify at least one metric. # Corresponds to the JSON property `metrics` # @return [Array] attr_accessor :metrics # Describes the sorting of report rows. The order of the condition in the # list defines its precedence; the earlier the condition, the higher its # precedence. If no sort conditions are specified, the row ordering is # undefined. # Corresponds to the JSON property `sortConditions` # @return [Array] attr_accessor :sort_conditions # A report time zone. Accepts an IANA TZ name values, such as # "America/Los_Angeles." If no time zone is defined, the account default # takes effect. Check default value by the get account action. # **Warning:** The "America/Los_Angeles" is the only supported value at # the moment. # Corresponds to the JSON property `timeZone` # @return [String] attr_accessor :time_zone def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @date_range = args[:date_range] if args.key?(:date_range) @dimension_filters = args[:dimension_filters] if args.key?(:dimension_filters) @dimensions = args[:dimensions] if args.key?(:dimensions) @localization_settings = args[:localization_settings] if args.key?(:localization_settings) @max_report_rows = args[:max_report_rows] if args.key?(:max_report_rows) @metrics = args[:metrics] if args.key?(:metrics) @sort_conditions = args[:sort_conditions] if args.key?(:sort_conditions) @time_zone = args[:time_zone] if args.key?(:time_zone) end end # Describes which report rows to match based on their dimension values. class NetworkReportSpecDimensionFilter include Google::Apis::Core::Hashable # Applies the filter criterion to the specified dimension. # Corresponds to the JSON property `dimension` # @return [String] attr_accessor :dimension # List of string values. # Corresponds to the JSON property `matchesAny` # @return [Google::Apis::AdmobV1::StringList] attr_accessor :matches_any def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @dimension = args[:dimension] if args.key?(:dimension) @matches_any = args[:matches_any] if args.key?(:matches_any) end end # Sorting direction to be applied on a dimension or a metric. class NetworkReportSpecSortCondition include Google::Apis::Core::Hashable # Sort by the specified dimension. # Corresponds to the JSON property `dimension` # @return [String] attr_accessor :dimension # Sort by the specified metric. # Corresponds to the JSON property `metric` # @return [String] attr_accessor :metric # Sorting order of the dimension or metric. # Corresponds to the JSON property `order` # @return [String] attr_accessor :order def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @dimension = args[:dimension] if args.key?(:dimension) @metric = args[:metric] if args.key?(:metric) @order = args[:order] if args.key?(:order) end end # A publisher account contains information relevant to the use of this API, # such as the time zone used for the reports. class PublisherAccount include Google::Apis::Core::Hashable # Currency code of the earning-related metrics, which is the 3-letter code # defined in ISO 4217. The daily average rate is used for the currency # conversion. # Corresponds to the JSON property `currencyCode` # @return [String] attr_accessor :currency_code # Resource name of this account. # Format is accounts/`publisher_id`. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The unique ID by which this publisher account can be identified # in the API requests (for example, pub-1234567890). # Corresponds to the JSON property `publisherId` # @return [String] attr_accessor :publisher_id # The time zone that is used in reports that are generated for this account. # The value is a time-zone ID as specified by the CLDR project, # for example, "America/Los_Angeles". # Corresponds to the JSON property `reportingTimeZone` # @return [String] attr_accessor :reporting_time_zone def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @currency_code = args[:currency_code] if args.key?(:currency_code) @name = args[:name] if args.key?(:name) @publisher_id = args[:publisher_id] if args.key?(:publisher_id) @reporting_time_zone = args[:reporting_time_zone] if args.key?(:reporting_time_zone) end end # Groups data available after report generation, for example, warnings and row # counts. Always sent as the last message in the stream response. class ReportFooter include Google::Apis::Core::Hashable # Total number of rows that matched the request. # Warning: This count does NOT always match the number of rows in the # response. Do not make that assumption when processing the response. # Corresponds to the JSON property `matchingRowCount` # @return [Fixnum] attr_accessor :matching_row_count # Warnings associated with generation of the report. # Corresponds to the JSON property `warnings` # @return [Array] attr_accessor :warnings def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @matching_row_count = args[:matching_row_count] if args.key?(:matching_row_count) @warnings = args[:warnings] if args.key?(:warnings) end end # Groups data helps to treat the generated report. Always sent as a first # message in the stream response. class ReportHeader include Google::Apis::Core::Hashable # Specification of a single date range. Both dates are inclusive. # Corresponds to the JSON property `dateRange` # @return [Google::Apis::AdmobV1::DateRange] attr_accessor :date_range # Localization settings for reports, such as currency and language. It affects # how metrics are calculated. # Corresponds to the JSON property `localizationSettings` # @return [Google::Apis::AdmobV1::LocalizationSettings] attr_accessor :localization_settings # The report time zone. The value is a time-zone ID as specified by the CLDR # project, for example, "America/Los_Angeles". # Corresponds to the JSON property `reportingTimeZone` # @return [String] attr_accessor :reporting_time_zone def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @date_range = args[:date_range] if args.key?(:date_range) @localization_settings = args[:localization_settings] if args.key?(:localization_settings) @reporting_time_zone = args[:reporting_time_zone] if args.key?(:reporting_time_zone) end end # A row of the returning report. class ReportRow include Google::Apis::Core::Hashable # Map of dimension values in a row, with keys as enum name of the dimensions. # Corresponds to the JSON property `dimensionValues` # @return [Hash] attr_accessor :dimension_values # Map of metric values in a row, with keys as enum name of the metrics. If # a metric being requested has no value returned, the map will not include # it. # Corresponds to the JSON property `metricValues` # @return [Hash] attr_accessor :metric_values def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @dimension_values = args[:dimension_values] if args.key?(:dimension_values) @metric_values = args[:metric_values] if args.key?(:metric_values) end end # Representation of a dimension value. class ReportRowDimensionValue include Google::Apis::Core::Hashable # The localized string representation of the value. If unspecified, the # display label should be derived from the value. # Corresponds to the JSON property `displayLabel` # @return [String] attr_accessor :display_label # Dimension value in the format specified in the report's spec Dimension # enum. # 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) @display_label = args[:display_label] if args.key?(:display_label) @value = args[:value] if args.key?(:value) end end # Representation of a metric value. class ReportRowMetricValue include Google::Apis::Core::Hashable # Double precision (approximate) decimal values. Rates are from 0 to 1. # Corresponds to the JSON property `doubleValue` # @return [Float] attr_accessor :double_value # Metric integer value. # Corresponds to the JSON property `integerValue` # @return [Fixnum] attr_accessor :integer_value # Amount in micros. One million is equivalent to one unit. Currency value # is in the unit (USD, EUR or other) specified by the request. # For example, $6.50 whould be represented as 6500000 micros. # Corresponds to the JSON property `microsValue` # @return [Fixnum] attr_accessor :micros_value def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @double_value = args[:double_value] if args.key?(:double_value) @integer_value = args[:integer_value] if args.key?(:integer_value) @micros_value = args[:micros_value] if args.key?(:micros_value) end end # Warnings associated with generation of the report. class ReportWarning include Google::Apis::Core::Hashable # Describes the details of the warning message, in English. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Type of the warning. # 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) @type = args[:type] if args.key?(:type) end end # List of string values. class StringList include Google::Apis::Core::Hashable # The string values. # Corresponds to the JSON property `values` # @return [Array] attr_accessor :values def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @values = args[:values] if args.key?(:values) end end end end end