# frozen_string_literal: true

# Copyright 2025 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
#
#     https://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.

# Auto-generated by gapic-generator-ruby. DO NOT EDIT!


module Google
  module Ads
    module AdManager
      module V1
        # The `Report` resource.
        # @!attribute [rw] name
        #   @return [::String]
        #     Identifier. The resource name of the report.
        #     Report resource name have the form:
        #     `networks/{network_code}/reports/{report_id}`
        # @!attribute [r] report_id
        #   @return [::Integer]
        #     Output only. Report ID.
        # @!attribute [rw] visibility
        #   @return [::Google::Ads::AdManager::V1::Report::Visibility]
        #     Optional. The visibility of a report.
        # @!attribute [rw] report_definition
        #   @return [::Google::Ads::AdManager::V1::ReportDefinition]
        #     Required. The report definition of the report.
        # @!attribute [rw] display_name
        #   @return [::String]
        #     Optional. Display name for the report.
        # @!attribute [r] update_time
        #   @return [::Google::Protobuf::Timestamp]
        #     Output only. The instant this report was last modified.
        # @!attribute [r] create_time
        #   @return [::Google::Protobuf::Timestamp]
        #     Output only. The instant this report was created.
        # @!attribute [r] locale
        #   @return [::String]
        #     Output only. The locale of this report. Locale is set from the user's
        #     locale at the time of the request. Locale can not be modified.
        # @!attribute [rw] schedule_options
        #   @return [::Google::Ads::AdManager::V1::ScheduleOptions]
        #     Optional. The schedule options of this report.
        class Report
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods

          # Represents a single value in a report.
          # @!attribute [rw] int_value
          #   @return [::Integer]
          #     For integer values.
          #
          #     Note: The following fields are mutually exclusive: `int_value`, `double_value`, `string_value`, `bool_value`, `int_list_value`, `string_list_value`, `bytes_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
          # @!attribute [rw] double_value
          #   @return [::Float]
          #     For double values.
          #
          #     Note: The following fields are mutually exclusive: `double_value`, `int_value`, `string_value`, `bool_value`, `int_list_value`, `string_list_value`, `bytes_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
          # @!attribute [rw] string_value
          #   @return [::String]
          #     For string values.
          #
          #     Note: The following fields are mutually exclusive: `string_value`, `int_value`, `double_value`, `bool_value`, `int_list_value`, `string_list_value`, `bytes_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
          # @!attribute [rw] bool_value
          #   @return [::Boolean]
          #     For boolean values.
          #
          #     Note: The following fields are mutually exclusive: `bool_value`, `int_value`, `double_value`, `string_value`, `int_list_value`, `string_list_value`, `bytes_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
          # @!attribute [rw] int_list_value
          #   @return [::Google::Ads::AdManager::V1::Report::Value::IntList]
          #     For lists of integer values.
          #
          #     Note: The following fields are mutually exclusive: `int_list_value`, `int_value`, `double_value`, `string_value`, `bool_value`, `string_list_value`, `bytes_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
          # @!attribute [rw] string_list_value
          #   @return [::Google::Ads::AdManager::V1::Report::Value::StringList]
          #     For lists of string values.
          #
          #     Note: The following fields are mutually exclusive: `string_list_value`, `int_value`, `double_value`, `string_value`, `bool_value`, `int_list_value`, `bytes_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
          # @!attribute [rw] bytes_value
          #   @return [::String]
          #     For bytes values.
          #
          #     Note: The following fields are mutually exclusive: `bytes_value`, `int_value`, `double_value`, `string_value`, `bool_value`, `int_list_value`, `string_list_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
          class Value
            include ::Google::Protobuf::MessageExts
            extend ::Google::Protobuf::MessageExts::ClassMethods

            # A list of integer values.
            # @!attribute [rw] values
            #   @return [::Array<::Integer>]
            #     The values
            class IntList
              include ::Google::Protobuf::MessageExts
              extend ::Google::Protobuf::MessageExts::ClassMethods
            end

            # A list of string values.
            # @!attribute [rw] values
            #   @return [::Array<::String>]
            #     The values
            class StringList
              include ::Google::Protobuf::MessageExts
              extend ::Google::Protobuf::MessageExts::ClassMethods
            end
          end

          # Represents a sorting in a report.
          # @!attribute [rw] field
          #   @return [::Google::Ads::AdManager::V1::Report::Field]
          #     Required. A field (dimension or metric) to sort by.
          # @!attribute [rw] descending
          #   @return [::Boolean]
          #     Optional. The sort order. If true the sort will be descending.
          # @!attribute [rw] slice
          #   @return [::Google::Ads::AdManager::V1::Report::Slice]
          #     Optional. Use to sort on a specific slice of data.
          # @!attribute [rw] time_period_index
          #   @return [::Integer]
          #     Optional. When using time period columns, use this to sort on a specific
          #     column.
          # @!attribute [rw] metric_value_type
          #   @return [::Google::Ads::AdManager::V1::Report::MetricValueType]
          #     Optional. Use to specify which metric value type to sort on. Defaults to
          #     PRIMARY.
          class Sort
            include ::Google::Protobuf::MessageExts
            extend ::Google::Protobuf::MessageExts::ClassMethods
          end

          # A table containing report data including dimension and metric values.
          class DataTable
            include ::Google::Protobuf::MessageExts
            extend ::Google::Protobuf::MessageExts::ClassMethods

            # A row of report data.
            # @!attribute [rw] dimension_values
            #   @return [::Array<::Google::Ads::AdManager::V1::Report::Value>]
            #     The order of the dimension values is the same as the order of the
            #     dimensions specified in the request.
            # @!attribute [rw] metric_value_groups
            #   @return [::Array<::Google::Ads::AdManager::V1::Report::DataTable::MetricValueGroup>]
            #     The length of the metric_value_groups
            #     field will be equal to the length of the date_ranges field in the
            #     fetch response. The metric_value_groups field is
            #     ordered such that each index corresponds to the date_range at the same
            #     index. For example, given date_ranges [x, y], metric_value_groups will
            #     have a length of two. The first entry in metric_value_groups represents
            #     the metrics for date x and the second entry in metric_value_groups
            #     represents the metrics for date y.
            class Row
              include ::Google::Protobuf::MessageExts
              extend ::Google::Protobuf::MessageExts::ClassMethods
            end

            # Contains all metric values requested for a single date range and set of
            # column dimension values (returned in the columns field of the response).
            # The order of the metrics in each field corresponds to the order of the
            # metrics specified in the request.
            # @!attribute [rw] primary_values
            #   @return [::Array<::Google::Ads::AdManager::V1::Report::Value>]
            #     Data for the PRIMARY MetricValueType.
            # @!attribute [rw] primary_percent_of_total_values
            #   @return [::Array<::Google::Ads::AdManager::V1::Report::Value>]
            #     Data for the PRIMARY_PERCENT_OF_TOTAL MetricValueType.
            # @!attribute [rw] comparison_values
            #   @return [::Array<::Google::Ads::AdManager::V1::Report::Value>]
            #     Data for the COMPARISON MetricValueType.
            # @!attribute [rw] comparison_percent_of_total_values
            #   @return [::Array<::Google::Ads::AdManager::V1::Report::Value>]
            #     Data for the COMPARISON_PERCENT_OF_TOTAL MetricValueType.
            # @!attribute [rw] absolute_change_values
            #   @return [::Array<::Google::Ads::AdManager::V1::Report::Value>]
            #     Data for the ABSOLUTE_CHANGE MetricValueType.
            # @!attribute [rw] relative_change_values
            #   @return [::Array<::Google::Ads::AdManager::V1::Report::Value>]
            #     Data for the RELATIVE_CHANGE MetricValueType.
            # @!attribute [rw] flag_values
            #   @return [::Array<::Boolean>]
            #     If true, the flag's conditions are met. If false, the flag's
            #     conditions are not met. flag_values has the same length as
            #     flags and index i of flag_values represents the flag at index i
            #     of flags.
            class MetricValueGroup
              include ::Google::Protobuf::MessageExts
              extend ::Google::Protobuf::MessageExts::ClassMethods
            end
          end

          # A dimension or a metric in a report.
          # @!attribute [rw] dimension
          #   @return [::Google::Ads::AdManager::V1::Report::Dimension]
          #     The dimension this field represents.
          #
          #     Note: The following fields are mutually exclusive: `dimension`, `metric`. If a field in that set is populated, all other fields in the set will automatically be cleared.
          # @!attribute [rw] metric
          #   @return [::Google::Ads::AdManager::V1::Report::Metric]
          #     The metric this field represents.
          #
          #     Note: The following fields are mutually exclusive: `metric`, `dimension`. If a field in that set is populated, all other fields in the set will automatically be cleared.
          class Field
            include ::Google::Protobuf::MessageExts
            extend ::Google::Protobuf::MessageExts::ClassMethods
          end

          # Use to specify a slice of data.
          #
          # For example, in a report, to focus on just data from the US, specify
          # `COUNTRY_NAME` for dimension and value: `"United States"`.
          # @!attribute [rw] dimension
          #   @return [::Google::Ads::AdManager::V1::Report::Dimension]
          #     Required. The dimension to slice on.
          # @!attribute [rw] value
          #   @return [::Google::Ads::AdManager::V1::Report::Value]
          #     Required. The value of the dimension.
          class Slice
            include ::Google::Protobuf::MessageExts
            extend ::Google::Protobuf::MessageExts::ClassMethods
          end

          # A filter over one or more fields.
          # @!attribute [rw] field_filter
          #   @return [::Google::Ads::AdManager::V1::Report::Filter::FieldFilter]
          #     A filter on a single field.
          #
          #     Note: The following fields are mutually exclusive: `field_filter`, `not_filter`, `and_filter`, `or_filter`. If a field in that set is populated, all other fields in the set will automatically be cleared.
          # @!attribute [rw] not_filter
          #   @return [::Google::Ads::AdManager::V1::Report::Filter]
          #     A filter whose result is negated.
          #
          #     Note: The following fields are mutually exclusive: `not_filter`, `field_filter`, `and_filter`, `or_filter`. If a field in that set is populated, all other fields in the set will automatically be cleared.
          # @!attribute [rw] and_filter
          #   @return [::Google::Ads::AdManager::V1::Report::Filter::FilterList]
          #     A list of filters whose results are AND-ed.
          #
          #     Note: The following fields are mutually exclusive: `and_filter`, `field_filter`, `not_filter`, `or_filter`. If a field in that set is populated, all other fields in the set will automatically be cleared.
          # @!attribute [rw] or_filter
          #   @return [::Google::Ads::AdManager::V1::Report::Filter::FilterList]
          #     A list of filters whose results are OR-ed.
          #
          #     Note: The following fields are mutually exclusive: `or_filter`, `field_filter`, `not_filter`, `and_filter`. If a field in that set is populated, all other fields in the set will automatically be cleared.
          class Filter
            include ::Google::Protobuf::MessageExts
            extend ::Google::Protobuf::MessageExts::ClassMethods

            # A filter on a specific field.
            # @!attribute [rw] field
            #   @return [::Google::Ads::AdManager::V1::Report::Field]
            #     Required. The field to filter on.
            # @!attribute [rw] operation
            #   @return [::Google::Ads::AdManager::V1::Report::Filter::Operation]
            #     Required. The operation of this filter.
            # @!attribute [rw] values
            #   @return [::Array<::Google::Ads::AdManager::V1::Report::Value>]
            #     Required. Values to filter to.
            # @!attribute [rw] slice
            #   @return [::Google::Ads::AdManager::V1::Report::Slice]
            #     Optional. Use to filter on a specific slice of data.
            # @!attribute [rw] time_period_index
            #   @return [::Integer]
            #     Optional. When using time period columns, use this to filter on a
            #     specific column.
            # @!attribute [rw] metric_value_type
            #   @return [::Google::Ads::AdManager::V1::Report::MetricValueType]
            #     Optional. Use to specify which metric value type to filter on. Defaults
            #     to PRIMARY.
            class FieldFilter
              include ::Google::Protobuf::MessageExts
              extend ::Google::Protobuf::MessageExts::ClassMethods
            end

            # A list of filters.
            # @!attribute [rw] filters
            #   @return [::Array<::Google::Ads::AdManager::V1::Report::Filter>]
            #     Required. A list of filters.
            class FilterList
              include ::Google::Protobuf::MessageExts
              extend ::Google::Protobuf::MessageExts::ClassMethods
            end

            # Supported filter operations.
            module Operation
              # For scalar operands, checks if the operand is in the set of provided
              # filter values.
              #
              # For list operands, checks if any element in the operand is in the set
              # of provided filter values.
              #
              # Default value.
              IN = 0

              # For scalar operands, checks that the operand is not in the set of
              # provided filter values.
              #
              # For list operands, checks that none of the elements in the operand
              # is in the set of provided filter values.
              NOT_IN = 1

              # For scalar string operands, checks if the operand contains any of the
              # provided filter substrings.
              #
              # For string list operands, checks if any string in the operand contains
              # any of the provided filter substrings.
              CONTAINS = 2

              # For scalar string operands, checks that the operand contains none of
              # the provided filter substrings.
              #
              # For string list operands, checks that none of the strings in the
              # operand contain none of the provided filter substrings.
              NOT_CONTAINS = 3

              # Operand is less than the provided filter value.
              LESS_THAN = 4

              # Operand is less than or equal to provided filter value.
              LESS_THAN_EQUALS = 5

              # Operand is greater than provided filter value.
              GREATER_THAN = 6

              # Operand is greater than or equal to provided filter value.
              GREATER_THAN_EQUALS = 7

              # Operand is between provided filter values.
              BETWEEN = 8

              # Operand matches against a regex or set of regexes (one must match)
              MATCHES = 9

              # Operand negative matches against a regex or set of regexes (none must
              # match)
              NOT_MATCHES = 10
            end
          end

          # A flag for a report. Flags are used show if certain thresholds are met.
          # Result rows that match the filter will have the corresponding
          # [MetricValueGroup.flagValues][MetricValueGroup] index set to true.
          # For more information about flags see:
          # https://support.google.com/admanager/answer/15079975
          # @!attribute [rw] filters
          #   @return [::Array<::Google::Ads::AdManager::V1::Report::Filter>]
          #     Required. Filters to apply for the flag.
          # @!attribute [rw] name
          #   @return [::String]
          #     Optional. Name of the flag.
          #     The flag names RED, YELLOW, GREEN, BLUE, PURPLE, and GREY correspond to
          #     the colored flags that appear in the UI. The UI will not display flags
          #     with other names, but they are available for use by API clients.
          class Flag
            include ::Google::Protobuf::MessageExts
            extend ::Google::Protobuf::MessageExts::ClassMethods
          end

          # A date range for a report.
          # @!attribute [rw] fixed
          #   @return [::Google::Ads::AdManager::V1::Report::DateRange::FixedDateRange]
          #     A fixed date range.
          #
          #     Note: The following fields are mutually exclusive: `fixed`, `relative`. If a field in that set is populated, all other fields in the set will automatically be cleared.
          # @!attribute [rw] relative
          #   @return [::Google::Ads::AdManager::V1::Report::DateRange::RelativeDateRange]
          #     A relative date range.
          #
          #     Note: The following fields are mutually exclusive: `relative`, `fixed`. If a field in that set is populated, all other fields in the set will automatically be cleared.
          class DateRange
            include ::Google::Protobuf::MessageExts
            extend ::Google::Protobuf::MessageExts::ClassMethods

            # A date range between two fixed dates (inclusive of end date).
            # @!attribute [rw] start_date
            #   @return [::Google::Type::Date]
            #     Required. The start date of this date range.
            # @!attribute [rw] end_date
            #   @return [::Google::Type::Date]
            #     Required. The end date (inclusive) of this date range.
            class FixedDateRange
              include ::Google::Protobuf::MessageExts
              extend ::Google::Protobuf::MessageExts::ClassMethods
            end

            # Options for relative date ranges.
            module RelativeDateRange
              # Default value. This value is unused.
              RELATIVE_DATE_RANGE_UNSPECIFIED = 0

              # The date the report is run.
              TODAY = 1

              # The date a day before the date that the report is run.
              YESTERDAY = 2

              # The full week in which this report is run. Could include dates in
              # the future.
              THIS_WEEK = 3

              # From the beginning of the calendar week (Monday to Sunday) in which the
              # up to and including the day the report is run.
              THIS_WEEK_TO_DATE = 29

              # The full month in which this report is run. Could include dates in
              # the future.
              THIS_MONTH = 4

              # From the beginning of the calendar month in which the report is run, to
              # up to and including the day the report is run.
              THIS_MONTH_TO_DATE = 26

              # The full quarter in which this report is run. Could include dates
              # in the future.
              THIS_QUARTER = 5

              # From the beginning of the calendar quarter in which the report is run,
              # up to and including the day the report is run.
              THIS_QUARTER_TO_DATE = 27

              # The full year in which this report is run. Could include dates in
              # the future.
              THIS_YEAR = 6

              # From the beginning of the calendar year in which the report is run, to
              # up to and including the day the report is run.
              THIS_YEAR_TO_DATE = 28

              # The entire previous calendar week, Monday to Sunday (inclusive),
              # preceding the calendar week the report is run.
              LAST_WEEK = 7

              # The entire previous calendar month preceding the calendar month the
              # report is run.
              LAST_MONTH = 8

              # The entire previous calendar quarter preceding the calendar quarter the
              # report is run.
              LAST_QUARTER = 9

              # The entire previous calendar year preceding the calendar year the
              # report is run.
              LAST_YEAR = 10

              # The 7 days preceding the day the report is run.
              LAST_7_DAYS = 11

              # The 30 days preceding the day the report is run.
              LAST_30_DAYS = 12

              # The 60 days preceding the day the report is run.
              LAST_60_DAYS = 13

              # The 90 days preceding the day the report is run.
              LAST_90_DAYS = 14

              # The 180 days preceding the day the report is run.
              LAST_180_DAYS = 15

              # The 360 days preceding the day the report is run.
              LAST_360_DAYS = 16

              # The 365 days preceding the day the report is run.
              LAST_365_DAYS = 17

              # The entire previous 3 calendar months preceding the calendar month the
              # report is run.
              LAST_3_MONTHS = 18

              # The entire previous 6 calendar months preceding the calendar month the
              # report is run.
              LAST_6_MONTHS = 19

              # The entire previous 6 calendar months preceding the calendar month the
              # report is run.
              LAST_12_MONTHS = 20

              # From 3 years before the report is run, to the day before the report is
              # run, inclusive.
              ALL_AVAILABLE = 21

              # Only valid when used in the comparison_date_range field. The complete
              # period preceding the date period provided in date_range.
              #
              # In the case where date_range is a FixedDateRange of N days, this will
              # be a period of N days where the end date is the date preceding the
              # start date of the date_range.
              #
              # In the case where date_range is a RelativeDateRange, this will be a
              # period of the same time frame preceding the date_range. In the case
              # where the date_range does not capture the full period because a report
              # is run in the middle of that period, this will still be the full
              # preceding period. For example, if date_range is THIS_WEEK, but the
              # report is run on a Wednesday, THIS_WEEK will be Monday - Wednesday, but
              # PREVIOUS_PERIOD will be Monday - Sunday.
              PREVIOUS_PERIOD = 22

              # Only valid when used in the comparison_date_range field. The period
              # starting 1 year prior to the date period provided in date_range.
              #
              # In the case where date_range is a FixedDateRange, this will be a date
              # range starting 1 year prior to the date_range start date and ending 1
              # year prior to the date_range end date.
              #
              # In the case where date_range is a RelativeDateRange, this will be a
              # period of the same time frame exactly 1 year prior to the date_range.
              # In the case where the date_range does not capture the full period
              # because a report is run in the middle of that period, this will still
              # be the full period 1 year prior. For example, if date range is
              # THIS_WEEK, but the report is run on a Wednesday, THIS_WEEK will be
              # Monday - Wednesday, but SAME_PERIOD_PREVIOUS_YEAR will be Monday -
              # Sunday.
              SAME_PERIOD_PREVIOUS_YEAR = 24
            end
          end

          # Valid time period columns.
          module TimePeriodColumn
            # Default value. Report will have no time period column.
            TIME_PERIOD_COLUMN_UNSPECIFIED = 0

            # A column for each date in the report.
            TIME_PERIOD_COLUMN_DATE = 1

            # A column for each week in the report.
            TIME_PERIOD_COLUMN_WEEK = 2

            # A column for each month in the report.
            TIME_PERIOD_COLUMN_MONTH = 3

            # A column for each quarter in the report.
            TIME_PERIOD_COLUMN_QUARTER = 4
          end

          # Reporting dimensions.
          module Dimension
            # Default value. This value is unused.
            DIMENSION_UNSPECIFIED = 0

            # The domain name of the advertiser.
            ADVERTISER_DOMAIN_NAME = 242

            # The ID used in an external system for advertiser identification
            ADVERTISER_EXTERNAL_ID = 228

            # The ID of an advertiser company assigned to an order
            ADVERTISER_ID = 131

            # Labels applied to the advertiser
            # can be used for either competitive exclusion or ad exclusion
            ADVERTISER_LABELS = 230

            # Label ids applied to the advertiser
            # can be used for either competitive exclusion or ad exclusion
            ADVERTISER_LABEL_IDS = 229

            # The name of an advertiser company assigned to an order
            ADVERTISER_NAME = 132

            # The name of the contact associated with an advertiser company
            ADVERTISER_PRIMARY_CONTACT = 227

            # Shows an ENUM value describing whether a given piece of publisher
            # inventory was above (ATF) or below the fold (BTF) of a page.
            AD_LOCATION = 390

            # Shows a localized string describing whether a given piece of publisher
            # inventory was above (ATF) or below the fold (BTF) of a page.
            AD_LOCATION_NAME = 391

            # The code of the ad unit where the ad was requested.
            AD_UNIT_CODE = 64

            # The code of the first level ad unit of the ad unit where the ad was
            # requested.
            AD_UNIT_CODE_LEVEL_1 = 65

            # The code of the tenth level ad unit of the ad unit where the ad was
            # requested.
            AD_UNIT_CODE_LEVEL_10 = 74

            # The code of the eleventh level ad unit of the ad unit where the ad was
            # requested.
            AD_UNIT_CODE_LEVEL_11 = 75

            # The code of the twelfth level ad unit of the ad unit where the ad was
            # requested.
            AD_UNIT_CODE_LEVEL_12 = 76

            # The code of the thirteenth level ad unit of the ad unit where the ad was
            # requested.
            AD_UNIT_CODE_LEVEL_13 = 77

            # The code of the fourteenth level ad unit of the ad unit where the ad was
            # requested.
            AD_UNIT_CODE_LEVEL_14 = 78

            # The code of the fifteenth level ad unit of the ad unit where the ad was
            # requested.
            AD_UNIT_CODE_LEVEL_15 = 79

            # The code of the sixteenth level ad unit of the ad unit where the ad was
            # requested.
            AD_UNIT_CODE_LEVEL_16 = 80

            # The code of the second level ad unit of the ad unit where the ad was
            # requested.
            AD_UNIT_CODE_LEVEL_2 = 66

            # The code of the third level ad unit of the ad unit where the ad was
            # requested.
            AD_UNIT_CODE_LEVEL_3 = 67

            # The code of the fourth level ad unit of the ad unit where the ad was
            # requested.
            AD_UNIT_CODE_LEVEL_4 = 68

            # The code of the fifth level ad unit of the ad unit where the ad was
            # requested.
            AD_UNIT_CODE_LEVEL_5 = 69

            # The code of the sixth level ad unit of the ad unit where the ad was
            # requested.
            AD_UNIT_CODE_LEVEL_6 = 70

            # The code of the seventh level ad unit of the ad unit where the ad was
            # requested.
            AD_UNIT_CODE_LEVEL_7 = 71

            # The code of the eighth level ad unit of the ad unit where the ad was
            # requested.
            AD_UNIT_CODE_LEVEL_8 = 72

            # The code of the ninth level ad unit of the ad unit where the ad was
            # requested.
            AD_UNIT_CODE_LEVEL_9 = 73

            # The depth of the ad unit's hierarchy
            AD_UNIT_DEPTH = 101

            # The ID of the ad unit where the ad was requested.
            AD_UNIT_ID = 25

            # The full hierarchy of ad unit IDs where the ad was requested, from
            # root to leaf, excluding the root ad unit ID.
            AD_UNIT_ID_ALL_LEVEL = 27

            # The first level ad unit ID of the ad unit where the ad was requested.
            AD_UNIT_ID_LEVEL_1 = 30

            # The tenth level ad unit ID of the ad unit where the ad was requested.
            AD_UNIT_ID_LEVEL_10 = 48

            # The eleventh level ad unit ID of the ad unit where the ad was requested.
            AD_UNIT_ID_LEVEL_11 = 50

            # The twelfth level ad unit ID of the ad unit where the ad was requested.
            AD_UNIT_ID_LEVEL_12 = 52

            # The thirteenth level ad unit ID of the ad unit where the ad was
            # requested.
            AD_UNIT_ID_LEVEL_13 = 54

            # The fourteenth level ad unit ID of the ad unit where the ad was
            # requested.
            AD_UNIT_ID_LEVEL_14 = 56

            # The fifteenth level ad unit ID of the ad unit where the ad was requested.
            AD_UNIT_ID_LEVEL_15 = 58

            # The sixteenth level ad unit ID of the ad unit where the ad was requested.
            AD_UNIT_ID_LEVEL_16 = 60

            # The second level ad unit ID of the ad unit where the ad was requested.
            AD_UNIT_ID_LEVEL_2 = 32

            # The third level ad unit ID of the ad unit where the ad was requested.
            AD_UNIT_ID_LEVEL_3 = 34

            # The fourth level ad unit ID of the ad unit where the ad was requested.
            AD_UNIT_ID_LEVEL_4 = 36

            # The fifth level ad unit ID of the ad unit where the ad was requested.
            AD_UNIT_ID_LEVEL_5 = 38

            # The sixth level ad unit ID of the ad unit where the ad was requested.
            AD_UNIT_ID_LEVEL_6 = 40

            # The seventh level ad unit ID of the ad unit where the ad was requested.
            AD_UNIT_ID_LEVEL_7 = 42

            # The eighth level ad unit ID of the ad unit where the ad was requested.
            AD_UNIT_ID_LEVEL_8 = 44

            # The ninth level ad unit ID of the ad unit where the ad was requested.
            AD_UNIT_ID_LEVEL_9 = 46

            # The top-level ad unit ID of the ad unit where the ad was requested.
            AD_UNIT_ID_TOP_LEVEL = 142

            # The name of the ad unit where the ad was requested.
            AD_UNIT_NAME = 26

            # The full hierarchy of ad unit names where the ad was requested, from
            # root to leaf, excluding the root ad unit name.
            AD_UNIT_NAME_ALL_LEVEL = 29

            # The first level ad unit name of the ad unit where the ad was requested.
            AD_UNIT_NAME_LEVEL_1 = 31

            # The tenth level ad unit name of the ad unit where the ad was requested.
            AD_UNIT_NAME_LEVEL_10 = 49

            # The eleventh level ad unit name of the ad unit where the ad was
            # requested.
            AD_UNIT_NAME_LEVEL_11 = 51

            # The twelfth level ad unit name of the ad unit where the ad was requested.
            AD_UNIT_NAME_LEVEL_12 = 53

            # The thirteenth level ad unit name of the ad unit where the ad was
            # requested.
            AD_UNIT_NAME_LEVEL_13 = 55

            # The fourteenth level ad unit name of the ad unit where the ad was
            # requested.
            AD_UNIT_NAME_LEVEL_14 = 57

            # The fifteenth level ad unit name of the ad unit where the ad was
            # requested.
            AD_UNIT_NAME_LEVEL_15 = 59

            # The sixteenth level ad unit name of the ad unit where the ad was
            # requested.
            AD_UNIT_NAME_LEVEL_16 = 61

            # The second level ad unit name of the ad unit where the ad was requested.
            AD_UNIT_NAME_LEVEL_2 = 33

            # The third level ad unit name of the ad unit where the ad was requested.
            AD_UNIT_NAME_LEVEL_3 = 35

            # The fourth level ad unit name of the ad unit where the ad was requested.
            AD_UNIT_NAME_LEVEL_4 = 37

            # The fifth level ad unit name of the ad unit where the ad was requested.
            AD_UNIT_NAME_LEVEL_5 = 39

            # The sixth level ad unit name of the ad unit where the ad was requested.
            AD_UNIT_NAME_LEVEL_6 = 41

            # The seventh level ad unit name of the ad unit where the ad was requested.
            AD_UNIT_NAME_LEVEL_7 = 43

            # The eighth level ad unit name of the ad unit where the ad was requested.
            AD_UNIT_NAME_LEVEL_8 = 45

            # The ninth level ad unit name of the ad unit where the ad was requested.
            AD_UNIT_NAME_LEVEL_9 = 47

            # The top-level ad unit name of the ad unit where the ad was requested.
            AD_UNIT_NAME_TOP_LEVEL = 143

            # The reward amount of the ad unit where the ad was requested.
            AD_UNIT_REWARD_AMOUNT = 63

            # The reward type of the ad unit where the ad was requested.
            AD_UNIT_REWARD_TYPE = 62

            # The status of the ad unit
            AD_UNIT_STATUS = 206

            # The name of the status of the ad unit
            AD_UNIT_STATUS_NAME = 207

            # The app version.
            APP_VERSION = 392

            # The ID used in an external system for advertiser identification
            BACKFILL_ADVERTISER_EXTERNAL_ID = 349

            # The ID of an advertiser company assigned to a backfill order
            BACKFILL_ADVERTISER_ID = 346

            # Labels applied to the advertiser
            # can be used for either competitive exclusion or ad exclusion
            BACKFILL_ADVERTISER_LABELS = 351

            # Label ids applied to the advertiser
            # can be used for either competitive exclusion or ad exclusion
            BACKFILL_ADVERTISER_LABEL_IDS = 350

            # The name of an advertiser company assigned to a backfill order
            BACKFILL_ADVERTISER_NAME = 347

            # The name of the contact associated with an advertiser company
            BACKFILL_ADVERTISER_PRIMARY_CONTACT = 348

            # Enum value of Backfill creative billing type
            BACKFILL_CREATIVE_BILLING_TYPE = 378

            # Localized string value of Backfill creative billing type
            BACKFILL_CREATIVE_BILLING_TYPE_NAME = 379

            # Represents the click-through URL of a Backfill creative
            BACKFILL_CREATIVE_CLICK_THROUGH_URL = 376

            # The ID of a Backfill creative
            BACKFILL_CREATIVE_ID = 370

            # Backfill creative name
            BACKFILL_CREATIVE_NAME = 371

            # Third party vendor name of a Backfill creative
            BACKFILL_CREATIVE_THIRD_PARTY_VENDOR = 377

            # Enum value of Backfill creative type
            BACKFILL_CREATIVE_TYPE = 374

            # Localized string name of Backfill creative type
            BACKFILL_CREATIVE_TYPE_NAME = 375

            # Whether a Backfill line item is archived.
            BACKFILL_LINE_ITEM_ARCHIVED = 278

            # Backfill line item comanion delivery option ENUM value.
            BACKFILL_LINE_ITEM_COMPANION_DELIVERY_OPTION = 258

            # Localized Backfill line item comanion delivery option name.
            BACKFILL_LINE_ITEM_COMPANION_DELIVERY_OPTION_NAME = 259

            # The computed status of the BackfillLineItem.
            BACKFILL_LINE_ITEM_COMPUTED_STATUS = 296

            # The localized name of the computed status of the BackfillLineItem.
            BACKFILL_LINE_ITEM_COMPUTED_STATUS_NAME = 297

            # The contracted units bought for the Backfill line item.
            BACKFILL_LINE_ITEM_CONTRACTED_QUANTITY = 280

            # The cost per unit of the Backfill line item.
            BACKFILL_LINE_ITEM_COST_PER_UNIT = 272

            # Backfill line item cost type ENUM value.
            BACKFILL_LINE_ITEM_COST_TYPE = 264

            # Localized Backfill line item cost type name.
            BACKFILL_LINE_ITEM_COST_TYPE_NAME = 265

            # Represent the end date of a Backfill creative associated with a Backfill
            # line item
            BACKFILL_LINE_ITEM_CREATIVE_END_DATE = 381

            # The creative rotation type of the BackfillLineItem.
            BACKFILL_LINE_ITEM_CREATIVE_ROTATION_TYPE = 290

            # The localized name of the creative rotation type of the BackfillLineItem.
            BACKFILL_LINE_ITEM_CREATIVE_ROTATION_TYPE_NAME = 291

            # Represent the start date of a Backfill creative associated with a
            # Backfill line item
            BACKFILL_LINE_ITEM_CREATIVE_START_DATE = 380

            # The 3 letter currency code of the Backfill line item
            BACKFILL_LINE_ITEM_CURRENCY_CODE = 288

            # The progress made for the delivery of the Backfill line item.
            BACKFILL_LINE_ITEM_DELIVERY_INDICATOR = 274

            # The delivery rate type of the BackfillLineItem.
            BACKFILL_LINE_ITEM_DELIVERY_RATE_TYPE = 292

            # The localized name of the delivery rate type of the BackfillLineItem.
            BACKFILL_LINE_ITEM_DELIVERY_RATE_TYPE_NAME = 293

            # The discount of the BackfillLineItem in whole units in the
            # BackfillLineItem's currency code, or if unspecified the Network's
            # currency code.
            BACKFILL_LINE_ITEM_DISCOUNT_ABSOLUTE = 294

            # The discount of the BackfillLineItem in percentage.
            BACKFILL_LINE_ITEM_DISCOUNT_PERCENTAGE = 295

            # The end date of the Backfill line item.
            BACKFILL_LINE_ITEM_END_DATE = 267

            # The end date and time of the Backfill line item.
            BACKFILL_LINE_ITEM_END_DATE_TIME = 269

            # The ENUM value of the environment a Backfill line item is targeting.
            BACKFILL_LINE_ITEM_ENVIRONMENT_TYPE = 302

            # The localized name of the environment a Backfill line item is targeting.
            BACKFILL_LINE_ITEM_ENVIRONMENT_TYPE_NAME = 257

            # The deal ID of the Backfill line item. Set for Programmatic Direct
            # campaigns.
            BACKFILL_LINE_ITEM_EXTERNAL_DEAL_ID = 285

            # The external ID of the Backfill line item.
            BACKFILL_LINE_ITEM_EXTERNAL_ID = 273

            # The frequency cap of the Backfill line item (descriptive string).
            BACKFILL_LINE_ITEM_FREQUENCY_CAP = 303

            # Backfill line item ID.
            BACKFILL_LINE_ITEM_ID = 298

            # The application that last modified the Backfill line item.
            BACKFILL_LINE_ITEM_LAST_MODIFIED_BY_APP = 289

            # The total number of clicks delivered of the lifetime of the Backfill line
            # item.
            BACKFILL_LINE_ITEM_LIFETIME_CLICKS = 283

            # The total number of impressions delivered over the lifetime of the
            # Backfill line item.
            BACKFILL_LINE_ITEM_LIFETIME_IMPRESSIONS = 282

            # The total number of viewable impressions delivered over the lifetime of
            # the Backfill line item.
            BACKFILL_LINE_ITEM_LIFETIME_VIEWABLE_IMPRESSIONS = 284

            # Whether or not the Backfill line item is Makegood. Makegood refers to
            # free inventory offered to buyers to compensate for mistakes or
            # under-delivery in the original campaigns.
            BACKFILL_LINE_ITEM_MAKEGOOD = 276

            # Backfill line item name.
            BACKFILL_LINE_ITEM_NAME = 299

            # The cost of booking for the Backfill line item (non-CPD).
            BACKFILL_LINE_ITEM_NON_CPD_BOOKED_REVENUE = 286

            # Whether a Backfill line item is eligible for opitimization.
            BACKFILL_LINE_ITEM_OPTIMIZABLE = 277

            # Goal type ENUM value of the primary goal of the Backfill line item.
            BACKFILL_LINE_ITEM_PRIMARY_GOAL_TYPE = 262

            # Localized goal type name of the primary goal of the Backfill line item.
            BACKFILL_LINE_ITEM_PRIMARY_GOAL_TYPE_NAME = 263

            # Unit type ENUM value of the primary goal of the Backfill line item.
            BACKFILL_LINE_ITEM_PRIMARY_GOAL_UNIT_TYPE = 260

            # Localized unit type name of the primary goal of the Backfill line item.
            BACKFILL_LINE_ITEM_PRIMARY_GOAL_UNIT_TYPE_NAME = 261

            # The priority of this Backfill line item as a value between 1 and 16.
            # In general, a lower priority means more serving priority for the
            # Backfill line item.
            BACKFILL_LINE_ITEM_PRIORITY = 266

            # ENUM value describing the state of inventory reservation for the
            # BackfillLineItem.
            BACKFILL_LINE_ITEM_RESERVATION_STATUS = 306

            # Localized string describing the state of inventory reservation for the
            # BackfillLineItem.
            BACKFILL_LINE_ITEM_RESERVATION_STATUS_NAME = 307

            # The start date of the Backfill line item.
            BACKFILL_LINE_ITEM_START_DATE = 268

            # The start date and time of the Backfill line item.
            BACKFILL_LINE_ITEM_START_DATE_TIME = 270

            # Backfill line item type ENUM value.
            BACKFILL_LINE_ITEM_TYPE = 300

            # Localized Backfill line item type name.
            BACKFILL_LINE_ITEM_TYPE_NAME = 301

            # Whether the Backfill line item end time and end date is set to
            # effectively never end.
            BACKFILL_LINE_ITEM_UNLIMITED_END = 271

            # The artificial cost per unit used by the Ad server to help rank
            # inventory.
            BACKFILL_LINE_ITEM_VALUE_COST_PER_UNIT = 275

            # The web property code used for dynamic allocation Backfill line items.
            BACKFILL_LINE_ITEM_WEB_PROPERTY_CODE = 287

            # The ID of Backfill creative, includes regular creatives, and master and
            # companions in case of creative sets
            BACKFILL_MASTER_COMPANION_CREATIVE_ID = 372

            # Name of Backfill creative, includes regular creatives, and master and
            # companions in case of creative sets
            BACKFILL_MASTER_COMPANION_CREATIVE_NAME = 373

            # Backfill order agency.
            BACKFILL_ORDER_AGENCY = 313

            # Backfill order agency ID.
            BACKFILL_ORDER_AGENCY_ID = 314

            # Backfill order booked CPC.
            BACKFILL_ORDER_BOOKED_CPC = 315

            # Backfill order booked CPM.
            BACKFILL_ORDER_BOOKED_CPM = 316

            # Backfill order delivery status ENUM value.
            BACKFILL_ORDER_DELIVERY_STATUS = 340

            # Backfill order delivery status localized name.
            BACKFILL_ORDER_DELIVERY_STATUS_NAME = 341

            # Backfill order end date.
            BACKFILL_ORDER_END_DATE = 317

            # Backfill order end date and time.
            BACKFILL_ORDER_END_DATE_TIME = 319

            # Backfill order external ID.
            BACKFILL_ORDER_EXTERNAL_ID = 320

            # Backfill order id.
            BACKFILL_ORDER_ID = 338

            # Backfill order labels.
            BACKFILL_ORDER_LABELS = 334

            # Backfill order labels IDs.
            BACKFILL_ORDER_LABEL_IDS = 335

            # Backfill order lifetime clicks.
            BACKFILL_ORDER_LIFETIME_CLICKS = 322

            # Backfill order lifetime impressions.
            BACKFILL_ORDER_LIFETIME_IMPRESSIONS = 323

            # Backfill order name.
            BACKFILL_ORDER_NAME = 339

            # Backfill order PO number.
            BACKFILL_ORDER_PO_NUMBER = 324

            # Whether the Backfill order is programmatic.
            BACKFILL_ORDER_PROGRAMMATIC = 321

            # Backfill order sales person.
            BACKFILL_ORDER_SALESPERSON = 325

            # Backfill order secondary sales people.
            BACKFILL_ORDER_SECONDARY_SALESPEOPLE = 329

            # Backfill order secondary sales people ID.
            BACKFILL_ORDER_SECONDARY_SALESPEOPLE_ID = 328

            # Backfill order secondary traffickers.
            BACKFILL_ORDER_SECONDARY_TRAFFICKERS = 331

            # Backfill order secondary traffickers ID.
            BACKFILL_ORDER_SECONDARY_TRAFFICKERS_ID = 330

            # Backfill order start date.
            BACKFILL_ORDER_START_DATE = 332

            # Backfill order start date and time.
            BACKFILL_ORDER_START_DATE_TIME = 333

            # Backfill order trafficker.
            BACKFILL_ORDER_TRAFFICKER = 326

            # Backfill order trafficker ID.
            BACKFILL_ORDER_TRAFFICKER_ID = 327

            # Whether the Backfill order end time and end date is set to effectively
            # never end.
            BACKFILL_ORDER_UNLIMITED_END = 318

            # The ID of the buyer on a backfill programmatic proposal.
            BACKFILL_PROGRAMMATIC_BUYER_ID = 336

            # The name of the buyer on a backfill programmatic proposal.
            BACKFILL_PROGRAMMATIC_BUYER_NAME = 337

            # The amount of information about the Publisher's page sent to the buyer
            # who purchased the impressions.
            BRANDING_TYPE = 383

            # The localized version of branding type, the amount of information about
            # the Publisher's page sent to the buyer who purchased the impressions.
            BRANDING_TYPE_NAME = 384

            # Browser category.
            BROWSER_CATEGORY = 119

            # Browser category name.
            BROWSER_CATEGORY_NAME = 120

            # The ID of the browser.
            BROWSER_ID = 235

            # The name of the browser.
            BROWSER_NAME = 236

            # Mobile carrier ID.
            CARRIER_ID = 369

            # Name of the mobile carrier.
            CARRIER_NAME = 368

            # The ID of an advertiser, classified by Google, associated with a creative
            # transacted
            CLASSIFIED_ADVERTISER_ID = 133

            # The name of an advertiser, classified by Google, associated with a
            # creative transacted
            CLASSIFIED_ADVERTISER_NAME = 134

            # ID of the brand, as classified by Google,
            CLASSIFIED_BRAND_ID = 243

            # Name of the brand, as classified by Google,
            CLASSIFIED_BRAND_NAME = 244

            # ID of the video content served.
            CONTENT_ID = 246

            # Name of the video content served.
            CONTENT_NAME = 247

            # The criteria ID of the country in which the ad served.
            COUNTRY_ID = 11

            # The name of the country in which the ad served.
            COUNTRY_NAME = 12

            # Enum value of creative billing type
            CREATIVE_BILLING_TYPE = 366

            # Localized string value of creative billing type
            CREATIVE_BILLING_TYPE_NAME = 367

            # Represents the click-through URL of a creative
            CREATIVE_CLICK_THROUGH_URL = 174

            # The ID of a creative
            CREATIVE_ID = 138

            # Creative name
            CREATIVE_NAME = 139

            # Creative technology ENUM
            CREATIVE_TECHNOLOGY = 148

            # Creative technology locallized name
            CREATIVE_TECHNOLOGY_NAME = 149

            # Third party vendor name of a creative
            CREATIVE_THIRD_PARTY_VENDOR = 361

            # Enum value of creative type
            CREATIVE_TYPE = 344

            # Localized string name of creative type
            CREATIVE_TYPE_NAME = 345

            # Breaks down reporting data by date.
            DATE = 3

            # Breaks down reporting data by day of the week. Monday is 1 and 7 is
            # Sunday.
            DAY_OF_WEEK = 4

            # Demand channel.
            DEMAND_CHANNEL = 9

            # Demand channel name.
            DEMAND_CHANNEL_NAME = 10

            # Demand subchannel.
            DEMAND_SUBCHANNEL = 22

            # Demand subchannel name.
            DEMAND_SUBCHANNEL_NAME = 23

            # The device on which an ad was served.
            DEVICE = 226

            # The device category to which an ad is being targeted.
            DEVICE_CATEGORY = 15

            # The name of the category of device (smartphone, feature phone, tablet, or
            # desktop) to which an ad is being targeted.
            DEVICE_CATEGORY_NAME = 16

            # The localized name of the device on which an ad was served.
            DEVICE_NAME = 225

            # ID of the yield partner as classified by Google
            EXCHANGE_THIRD_PARTY_COMPANY_ID = 185

            # Name of the yield partner as classified by Google
            EXCHANGE_THIRD_PARTY_COMPANY_NAME = 186

            # The ID of the first look pricing rule.
            FIRST_LOOK_PRICING_RULE_ID = 248

            # The name of the first look pricing rule.
            FIRST_LOOK_PRICING_RULE_NAME = 249

            # Breaks down reporting data by hour in one day.
            HOUR = 100

            # The interaction type of an ad.
            INTERACTION_TYPE = 223

            # The localized name of the interaction type of an ad.
            INTERACTION_TYPE_NAME = 224

            # Inventory format.
            # The format of the ad unit (e.g, banner) where the ad was requested.
            INVENTORY_FORMAT = 17

            # Inventory format name.
            # The format of the ad unit (e.g, banner) where the ad was requested.
            INVENTORY_FORMAT_NAME = 18

            # Inventory type.
            # The kind of web page or device where the ad was requested.
            INVENTORY_TYPE = 19

            # Inventory type name.
            # The kind of web page or device where the ad was requested.
            INVENTORY_TYPE_NAME = 20

            # Whether traffic is Adx Direct.
            IS_ADX_DIRECT = 382

            # Whether traffic is First Look.
            IS_FIRST_LOOK_DEAL = 401

            # The Custom Targeting Value ID
            KEY_VALUES_ID = 214

            # The Custom Targeting Value formatted like <key_name>=<value_name>
            KEY_VALUES_NAME = 215

            # Whether a Line item is archived.
            LINE_ITEM_ARCHIVED = 188

            # Line item comanion delivery option ENUM value.
            LINE_ITEM_COMPANION_DELIVERY_OPTION = 204

            # Localized line item comanion delivery option name.
            LINE_ITEM_COMPANION_DELIVERY_OPTION_NAME = 205

            # The computed status of the LineItem.
            LINE_ITEM_COMPUTED_STATUS = 250

            # The localized name of the computed status of the LineItem.
            LINE_ITEM_COMPUTED_STATUS_NAME = 251

            # The contracted units bought for the Line item.
            LINE_ITEM_CONTRACTED_QUANTITY = 92

            # The cost per unit of the Line item.
            LINE_ITEM_COST_PER_UNIT = 85

            # Line item cost type ENUM value.
            LINE_ITEM_COST_TYPE = 212

            # Localized line item cost type name.
            LINE_ITEM_COST_TYPE_NAME = 213

            # Represent the end date of a creative associated with line item
            LINE_ITEM_CREATIVE_END_DATE = 176

            # The creative rotation type of the LineItem.
            LINE_ITEM_CREATIVE_ROTATION_TYPE = 189

            # The localized name of the creative rotation type of the LineItem.
            LINE_ITEM_CREATIVE_ROTATION_TYPE_NAME = 190

            # Represent the start date of a creative associated with line item
            LINE_ITEM_CREATIVE_START_DATE = 175

            # The 3 letter currency code of the Line Item
            LINE_ITEM_CURRENCY_CODE = 180

            # The progress made for the delivery of the Line item.
            LINE_ITEM_DELIVERY_INDICATOR = 87

            # The delivery rate type of the LineItem.
            LINE_ITEM_DELIVERY_RATE_TYPE = 191

            # The localized name of the delivery rate type of the LineItem.
            LINE_ITEM_DELIVERY_RATE_TYPE_NAME = 192

            # The discount of the LineItem in whole units in the LineItem's currency
            # code, or if unspecified the Network's currency code.
            LINE_ITEM_DISCOUNT_ABSOLUTE = 195

            # The discount of the LineItem in percentage.
            LINE_ITEM_DISCOUNT_PERCENTAGE = 196

            # The end date of the Line item.
            LINE_ITEM_END_DATE = 81

            # The end date and time of the Line item.
            LINE_ITEM_END_DATE_TIME = 83

            # The ENUM value of the environment a LineItem is targeting.
            LINE_ITEM_ENVIRONMENT_TYPE = 201

            # The localized name of the environment a LineItem is targeting.
            LINE_ITEM_ENVIRONMENT_TYPE_NAME = 202

            # The deal ID of the Line item. Set for Programmatic Direct campaigns.
            LINE_ITEM_EXTERNAL_DEAL_ID = 97

            # The external ID of the Line item.
            LINE_ITEM_EXTERNAL_ID = 86

            # The frequency cap of the Line item (descriptive string).
            LINE_ITEM_FREQUENCY_CAP = 256

            # Line item ID.
            LINE_ITEM_ID = 1

            # The application that last modified the Line Item.
            LINE_ITEM_LAST_MODIFIED_BY_APP = 181

            # The total number of clicks delivered of the lifetime of the Line item.
            LINE_ITEM_LIFETIME_CLICKS = 95

            # The total number of impressions delivered over the lifetime of the
            # Line item.
            LINE_ITEM_LIFETIME_IMPRESSIONS = 94

            # The total number of viewable impressions delivered over the lifetime of
            # the Line item.
            LINE_ITEM_LIFETIME_VIEWABLE_IMPRESSIONS = 96

            # Whether or not the Line item is Makegood. Makegood refers to free
            # inventory offered to buyers to compensate for mistakes or under-delivery
            # in the original campaigns.
            LINE_ITEM_MAKEGOOD = 89

            # Line item Name.
            LINE_ITEM_NAME = 2

            # The cost of booking for the Line item (non-CPD).
            LINE_ITEM_NON_CPD_BOOKED_REVENUE = 98

            # Whether a Line item is eligible for opitimization.
            LINE_ITEM_OPTIMIZABLE = 90

            # Goal type ENUM value of the primary goal of the line item.
            LINE_ITEM_PRIMARY_GOAL_TYPE = 210

            # Localized goal type name of the primary goal of the line item.
            LINE_ITEM_PRIMARY_GOAL_TYPE_NAME = 211

            # The total number of impressions or clicks that are reserved for a
            # line item. For line items of type BULK or PRICE_PRIORITY, this represents
            # the number of remaining impressions reserved. If the line item has an
            # impression cap goal, this represents the number of impressions or
            # conversions that the line item will stop serving at if reached.
            LINE_ITEM_PRIMARY_GOAL_UNITS_ABSOLUTE = 93

            # The percentage of impressions or clicks that are reserved for a
            # line item. For line items of type SPONSORSHIP, this represents the
            # percentage of available impressions reserved. For line items of type
            # NETWORK or HOUSE, this represents the percentage of remaining impressions
            # reserved.
            LINE_ITEM_PRIMARY_GOAL_UNITS_PERCENTAGE = 396

            # Unit type ENUM value of the primary goal of the line item.
            LINE_ITEM_PRIMARY_GOAL_UNIT_TYPE = 208

            # Localized unit type name of the primary goal of the line item.
            LINE_ITEM_PRIMARY_GOAL_UNIT_TYPE_NAME = 209

            # The priority of this Line item as a value between 1 and 16.
            # In general, a lower priority means more serving priority for the
            # Line item.
            LINE_ITEM_PRIORITY = 24

            # ENUM value describing the state of inventory reservation for the
            # LineItem.
            LINE_ITEM_RESERVATION_STATUS = 304

            # Localized string describing the state of inventory reservation for the
            # LineItem.
            LINE_ITEM_RESERVATION_STATUS_NAME = 305

            # The start date of the Line item.
            LINE_ITEM_START_DATE = 82

            # The start date and time of the Line item.
            LINE_ITEM_START_DATE_TIME = 84

            # Line item type ENUM value.
            LINE_ITEM_TYPE = 193

            # Localized line item type name.
            LINE_ITEM_TYPE_NAME = 194

            # Whether the Line item end time and end date is set to effectively never
            # end.
            LINE_ITEM_UNLIMITED_END = 187

            # The artificial cost per unit used by the Ad server to help rank
            # inventory.
            LINE_ITEM_VALUE_COST_PER_UNIT = 88

            # The web property code used for dynamic allocation Line Items.
            LINE_ITEM_WEB_PROPERTY_CODE = 179

            # The ID of creative, includes regular creatives, and master and companions
            # in case of creative sets
            MASTER_COMPANION_CREATIVE_ID = 140

            # Name of creative, includes regular creatives, and master and companions
            # in case of creative sets
            MASTER_COMPANION_CREATIVE_NAME = 141

            # Whether the mobile app is free.
            MOBILE_APP_FREE = 128

            # URL of app icon for the mobile app.
            MOBILE_APP_ICON_URL = 129

            # The ID of the Mobile App.
            MOBILE_APP_ID = 123

            # The name of the mobile app.
            MOBILE_APP_NAME = 127

            # Ownership status of the mobile app.
            MOBILE_APP_OWNERSHIP_STATUS = 311

            # Ownership status of the mobile app.
            MOBILE_APP_OWNERSHIP_STATUS_NAME = 312

            # The App Store of the mobile app.
            MOBILE_APP_STORE = 125

            # The localized name of the mobile app store.
            MOBILE_APP_STORE_NAME = 245

            # Mobile inventory type.
            # Identifies whether a mobile ad came from a regular web page, an AMP web
            # page, or a mobile app.
            # Values match the Inventory type dimension available in the Overview Home
            # dashboard. Note: Video takes precedence over any other value, for
            # example, if there is an in-stream video impression on a desktop device,
            # it will be attributed to in-stream video and not desktop web.
            MOBILE_INVENTORY_TYPE = 99

            # Mobile inventory type name.
            # Identifies whether a mobile ad came from a regular web page, an AMP web
            # page, or a mobile app.
            MOBILE_INVENTORY_TYPE_NAME = 21

            # SDK version of the mobile device.
            MOBILE_SDK_VERSION_NAME = 130

            # Breaks down reporting data by month and year.
            MONTH_YEAR = 6

            # Native ad format ID.
            NATIVE_AD_FORMAT_ID = 255

            # Native ad format name.
            NATIVE_AD_FORMAT_NAME = 254

            # Native style ID.
            NATIVE_STYLE_ID = 253

            # Native style name.
            NATIVE_STYLE_NAME = 252

            # Operating system category.
            OPERATING_SYSTEM_CATEGORY = 117

            # Operating system category name.
            OPERATING_SYSTEM_CATEGORY_NAME = 118

            # ID of the operating system version.
            OPERATING_SYSTEM_VERSION_ID = 238

            # Details of the operating system, including version.
            OPERATING_SYSTEM_VERSION_NAME = 237

            # Order agency.
            ORDER_AGENCY = 150

            # Order agency ID.
            ORDER_AGENCY_ID = 151

            # Order booked CPC.
            ORDER_BOOKED_CPC = 152

            # Order booked CPM.
            ORDER_BOOKED_CPM = 153

            # Order delivery status ENUM value.
            ORDER_DELIVERY_STATUS = 231

            # Order delivery status localized name.
            ORDER_DELIVERY_STATUS_NAME = 239

            # Order end date.
            ORDER_END_DATE = 154

            # Order end date and time.
            ORDER_END_DATE_TIME = 155

            # Order external ID.
            ORDER_EXTERNAL_ID = 156

            # Order id.
            ORDER_ID = 7

            # Order labels.
            ORDER_LABELS = 170

            # Order labels IDs.
            ORDER_LABEL_IDS = 171

            # Order lifetime clicks.
            ORDER_LIFETIME_CLICKS = 158

            # Order lifetime impressions.
            ORDER_LIFETIME_IMPRESSIONS = 159

            # Order name.
            ORDER_NAME = 8

            # Order PO number.
            ORDER_PO_NUMBER = 160

            # Whether the Order is programmatic.
            ORDER_PROGRAMMATIC = 157

            # Order sales person.
            ORDER_SALESPERSON = 161

            # Order secondary sales people.
            ORDER_SECONDARY_SALESPEOPLE = 164

            # Order secondary sales people ID.
            ORDER_SECONDARY_SALESPEOPLE_ID = 165

            # Order secondary traffickers.
            ORDER_SECONDARY_TRAFFICKERS = 166

            # Order secondary traffickers ID.
            ORDER_SECONDARY_TRAFFICKERS_ID = 167

            # Order start date.
            ORDER_START_DATE = 168

            # Order start date and time.
            ORDER_START_DATE_TIME = 169

            # Order trafficker.
            ORDER_TRAFFICKER = 162

            # Order trafficker ID.
            ORDER_TRAFFICKER_ID = 163

            # Whether the Order end time and end date is set to effectively never
            # end.
            ORDER_UNLIMITED_END = 203

            # Placement ID
            PLACEMENT_ID = 113

            # The full list of placement IDs associated with the ad unit.
            PLACEMENT_ID_ALL = 144

            # Placement name
            PLACEMENT_NAME = 114

            # The full list of placement names associated with the ad unit.
            PLACEMENT_NAME_ALL = 145

            # Placement status ENUM value
            PLACEMENT_STATUS = 362

            # The full list of placement status ENUM values associated with the ad
            # unit.
            PLACEMENT_STATUS_ALL = 363

            # Localized placement status name.
            PLACEMENT_STATUS_NAME = 364

            # The full list of localized placement status names associated with the ad
            # unit.
            PLACEMENT_STATUS_NAME_ALL = 365

            # The ID of the buyer on a programmatic proposal.
            PROGRAMMATIC_BUYER_ID = 240

            # The name of the buyer on a programmatic proposal.
            PROGRAMMATIC_BUYER_NAME = 241

            # Programmatic channel.
            # The type of transaction that occurred in Ad Exchange.
            PROGRAMMATIC_CHANNEL = 13

            # Programmatic channel name.
            # The type of transaction that occurred in Ad Exchange.
            PROGRAMMATIC_CHANNEL_NAME = 14

            # The size of a rendered creative, It can differ with the creative's size
            # if a creative is shown in an ad slot of a different size.
            RENDERED_CREATIVE_SIZE = 343

            # Inventory Requested Ad Sizes dimension
            REQUESTED_AD_SIZES = 352

            # Request type ENUM
            REQUEST_TYPE = 146

            # Request type locallized name
            REQUEST_TYPE_NAME = 147

            # Indicates if a request was eligible for server-side unwrapping.
            SERVER_SIDE_UNWRAPPING_ELIGIBLE = 597

            # Information about domain or subdomains.
            SITE = 387

            # The ID of the browser, device or other environment into which a line item
            # or creative was served.
            TARGETING_ID = 232

            # Information about the browser, device and other environments into which
            # a line item or creative was served.
            TARGETING_NAME = 233

            # The way in which advertisers targeted their ads.
            TARGETING_TYPE = 385

            # The localized name of the way in which advertisers targeted their ads.
            TARGETING_TYPE_NAME = 386

            # Inventory Traffic source dimension
            TRAFFIC_SOURCE = 388

            # Inventory Traffic source dimension name
            TRAFFIC_SOURCE_NAME = 389

            # Unified pricing rule ID dimension
            UNIFIED_PRICING_RULE_ID = 393

            # Unified pricing rule name dimension
            UNIFIED_PRICING_RULE_NAME = 394

            # The video placement enum as defined by ADCOM 1.0-202303.
            VIDEO_PLCMT = 172

            # The localized name of the video placement as defined by ADCOM 1.0-202303.
            VIDEO_PLCMT_NAME = 173

            # Breaks down reporting data by week of the year.
            WEEK = 5

            # Name of the company within a yield group
            YIELD_GROUP_BUYER_NAME = 184

            # ID of the group of ad networks or exchanges used for Mediation and Open
            # Bidding
            YIELD_GROUP_ID = 182

            # Name of the group of ad networks or exchanges used for Mediation and Open
            # Bidding
            YIELD_GROUP_NAME = 183

            # Custom field option ID for Line Item with custom field ID equal to the ID
            # in index 0 of `ReportDefinition.line_item_custom_field_ids`.
            LINE_ITEM_CUSTOM_FIELD_0_OPTION_ID = 10_000

            # Custom field option ID for Line Item with custom field ID equal to the ID
            # in index 1 of `ReportDefinition.line_item_custom_field_ids`.
            LINE_ITEM_CUSTOM_FIELD_1_OPTION_ID = 10_001

            # Custom field option ID for Line Item with custom field ID equal to the ID
            # in index 2 of `ReportDefinition.line_item_custom_field_ids`.
            LINE_ITEM_CUSTOM_FIELD_2_OPTION_ID = 10_002

            # Custom field option ID for Line Item with custom field ID equal to the ID
            # in index 3 of `ReportDefinition.line_item_custom_field_ids`.
            LINE_ITEM_CUSTOM_FIELD_3_OPTION_ID = 10_003

            # Custom field option ID for Line Item with custom field ID equal to the ID
            # in index 4 of `ReportDefinition.line_item_custom_field_ids`.
            LINE_ITEM_CUSTOM_FIELD_4_OPTION_ID = 10_004

            # Custom field option ID for Line Item with custom field ID equal to the ID
            # in index 5 of `ReportDefinition.line_item_custom_field_ids`.
            LINE_ITEM_CUSTOM_FIELD_5_OPTION_ID = 10_005

            # Custom field option ID for Line Item with custom field ID equal to the ID
            # in index 6 of `ReportDefinition.line_item_custom_field_ids`.
            LINE_ITEM_CUSTOM_FIELD_6_OPTION_ID = 10_006

            # Custom field option ID for Line Item with custom field ID equal to the ID
            # in index 7 of `ReportDefinition.line_item_custom_field_ids`.
            LINE_ITEM_CUSTOM_FIELD_7_OPTION_ID = 10_007

            # Custom field option ID for Line Item with custom field ID equal to the ID
            # in index 8 of `ReportDefinition.line_item_custom_field_ids`.
            LINE_ITEM_CUSTOM_FIELD_8_OPTION_ID = 10_008

            # Custom field option ID for Line Item with custom field ID equal to the ID
            # in index 9 of `ReportDefinition.line_item_custom_field_ids`.
            LINE_ITEM_CUSTOM_FIELD_9_OPTION_ID = 10_009

            # Custom field option ID for Line Item with custom field ID equal to the ID
            # in index 10 of `ReportDefinition.line_item_custom_field_ids`.
            LINE_ITEM_CUSTOM_FIELD_10_OPTION_ID = 10_010

            # Custom field option ID for Line Item with custom field ID equal to the ID
            # in index 11 of `ReportDefinition.line_item_custom_field_ids`.
            LINE_ITEM_CUSTOM_FIELD_11_OPTION_ID = 10_011

            # Custom field option ID for Line Item with custom field ID equal to the ID
            # in index 12 of `ReportDefinition.line_item_custom_field_ids`.
            LINE_ITEM_CUSTOM_FIELD_12_OPTION_ID = 10_012

            # Custom field option ID for Line Item with custom field ID equal to the ID
            # in index 13 of `ReportDefinition.line_item_custom_field_ids`.
            LINE_ITEM_CUSTOM_FIELD_13_OPTION_ID = 10_013

            # Custom field option ID for Line Item with custom field ID equal to the ID
            # in index 14 of `ReportDefinition.line_item_custom_field_ids`.
            LINE_ITEM_CUSTOM_FIELD_14_OPTION_ID = 10_014

            # Custom field value for Line Item with custom field ID equal to the ID
            # in index 0 of `ReportDefinition.line_item_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 0 is of
            # type STRING or DROPDOWN.
            LINE_ITEM_CUSTOM_FIELD_0_VALUE = 11_000

            # Custom field value for Line Item with custom field ID equal to the ID
            # in index 1 of `ReportDefinition.line_item_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 1 is of
            # type STRING or DROPDOWN.
            LINE_ITEM_CUSTOM_FIELD_1_VALUE = 11_001

            # Custom field value for Line Item with custom field ID equal to the ID
            # in index 2 of `ReportDefinition.line_item_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 2 is of
            # type STRING or DROPDOWN.
            LINE_ITEM_CUSTOM_FIELD_2_VALUE = 11_002

            # Custom field value for Line Item with custom field ID equal to the ID
            # in index 3 of `ReportDefinition.line_item_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 3 is of
            # type STRING or DROPDOWN.
            LINE_ITEM_CUSTOM_FIELD_3_VALUE = 11_003

            # Custom field value for Line Item with custom field ID equal to the ID
            # in index 4 of `ReportDefinition.line_item_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 4 is of
            # type STRING or DROPDOWN.
            LINE_ITEM_CUSTOM_FIELD_4_VALUE = 11_004

            # Custom field value for Line Item with custom field ID equal to the ID
            # in index 5 of `ReportDefinition.line_item_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 5 is of
            # type STRING or DROPDOWN.
            LINE_ITEM_CUSTOM_FIELD_5_VALUE = 11_005

            # Custom field value for Line Item with custom field ID equal to the ID
            # in index 6 of `ReportDefinition.line_item_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 6 is of
            # type STRING or DROPDOWN.
            LINE_ITEM_CUSTOM_FIELD_6_VALUE = 11_006

            # Custom field value for Line Item with custom field ID equal to the ID
            # in index 7 of `ReportDefinition.line_item_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 7 is of
            # type STRING or DROPDOWN.
            LINE_ITEM_CUSTOM_FIELD_7_VALUE = 11_007

            # Custom field value for Line Item with custom field ID equal to the ID
            # in index 8 of `ReportDefinition.line_item_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 8 is of
            # type STRING or DROPDOWN.
            LINE_ITEM_CUSTOM_FIELD_8_VALUE = 11_008

            # Custom field value for Line Item with custom field ID equal to the ID
            # in index 9 of `ReportDefinition.line_item_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 9 is of
            # type STRING or DROPDOWN.
            LINE_ITEM_CUSTOM_FIELD_9_VALUE = 11_009

            # Custom field value for Line Item with custom field ID equal to the ID
            # in index 10 of `ReportDefinition.line_item_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 10 is of
            # type STRING or DROPDOWN.
            LINE_ITEM_CUSTOM_FIELD_10_VALUE = 11_010

            # Custom field value for Line Item with custom field ID equal to the ID
            # in index 11 of `ReportDefinition.line_item_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 11 is of
            # type STRING or DROPDOWN.
            LINE_ITEM_CUSTOM_FIELD_11_VALUE = 11_011

            # Custom field value for Line Item with custom field ID equal to the ID
            # in index 12 of `ReportDefinition.line_item_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 12 is of
            # type STRING or DROPDOWN.
            LINE_ITEM_CUSTOM_FIELD_12_VALUE = 11_012

            # Custom field value for Line Item with custom field ID equal to the ID
            # in index 13 of `ReportDefinition.line_item_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 13 is of
            # type STRING or DROPDOWN.
            LINE_ITEM_CUSTOM_FIELD_13_VALUE = 11_013

            # Custom field value for Line Item with custom field ID equal to the ID
            # in index 14 of `ReportDefinition.line_item_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 14 is of
            # type STRING or DROPDOWN.
            LINE_ITEM_CUSTOM_FIELD_14_VALUE = 11_014

            # Custom field option ID for Order with custom field ID equal to the ID
            # in index 0 of `ReportDefinition.order_custom_field_ids`.
            ORDER_CUSTOM_FIELD_0_OPTION_ID = 12_000

            # Custom field option ID for Order with custom field ID equal to the ID
            # in index 1 of `ReportDefinition.order_custom_field_ids`.
            ORDER_CUSTOM_FIELD_1_OPTION_ID = 12_001

            # Custom field option ID for Order with custom field ID equal to the ID
            # in index 2 of `ReportDefinition.order_custom_field_ids`.
            ORDER_CUSTOM_FIELD_2_OPTION_ID = 12_002

            # Custom field option ID for Order with custom field ID equal to the ID
            # in index 3 of `ReportDefinition.order_custom_field_ids`.
            ORDER_CUSTOM_FIELD_3_OPTION_ID = 12_003

            # Custom field option ID for Order with custom field ID equal to the ID
            # in index 4 of `ReportDefinition.order_custom_field_ids`.
            ORDER_CUSTOM_FIELD_4_OPTION_ID = 12_004

            # Custom field option ID for Order with custom field ID equal to the ID
            # in index 5 of `ReportDefinition.order_custom_field_ids`.
            ORDER_CUSTOM_FIELD_5_OPTION_ID = 12_005

            # Custom field option ID for Order with custom field ID equal to the ID
            # in index 6 of `ReportDefinition.order_custom_field_ids`.
            ORDER_CUSTOM_FIELD_6_OPTION_ID = 12_006

            # Custom field option ID for Order with custom field ID equal to the ID
            # in index 7 of `ReportDefinition.order_custom_field_ids`.
            ORDER_CUSTOM_FIELD_7_OPTION_ID = 12_007

            # Custom field option ID for Order with custom field ID equal to the ID
            # in index 8 of `ReportDefinition.order_custom_field_ids`.
            ORDER_CUSTOM_FIELD_8_OPTION_ID = 12_008

            # Custom field option ID for Order with custom field ID equal to the ID
            # in index 9 of `ReportDefinition.order_custom_field_ids`.
            ORDER_CUSTOM_FIELD_9_OPTION_ID = 12_009

            # Custom field option ID for Order with custom field ID equal to the ID
            # in index 10 of `ReportDefinition.order_custom_field_ids`.
            ORDER_CUSTOM_FIELD_10_OPTION_ID = 12_010

            # Custom field option ID for Order with custom field ID equal to the ID
            # in index 11 of `ReportDefinition.order_custom_field_ids`.
            ORDER_CUSTOM_FIELD_11_OPTION_ID = 12_011

            # Custom field option ID for Order with custom field ID equal to the ID
            # in index 12 of `ReportDefinition.order_custom_field_ids`.
            ORDER_CUSTOM_FIELD_12_OPTION_ID = 12_012

            # Custom field option ID for Order with custom field ID equal to the ID
            # in index 13 of `ReportDefinition.order_custom_field_ids`.
            ORDER_CUSTOM_FIELD_13_OPTION_ID = 12_013

            # Custom field option ID for Order with custom field ID equal to the ID
            # in index 14 of `ReportDefinition.order_custom_field_ids`.
            ORDER_CUSTOM_FIELD_14_OPTION_ID = 12_014

            # Custom field value for Order with custom field ID equal to the ID
            # in index 0 of `ReportDefinition.order_custom_field_ids`. Treats the value
            # as a string. Can only be used if the custom field at index 0 is of type
            # STRING.
            ORDER_CUSTOM_FIELD_0_VALUE = 13_000

            # Custom field value for Order with custom field ID equal to the ID
            # in index 1 of `ReportDefinition.order_custom_field_ids`. Treats the value
            # as a string. Can only be used if the custom field at index 1 is of type
            # STRING.
            ORDER_CUSTOM_FIELD_1_VALUE = 13_001

            # Custom field value for Order with custom field ID equal to the ID
            # in index 2 of `ReportDefinition.order_custom_field_ids`. Treats the value
            # as a string. Can only be used if the custom field at index 2 is of type
            # STRING.
            ORDER_CUSTOM_FIELD_2_VALUE = 13_002

            # Custom field value for Order with custom field ID equal to the ID
            # in index 3 of `ReportDefinition.order_custom_field_ids`. Treats the value
            # as a string. Can only be used if the custom field at index 3 is of type
            # STRING.
            ORDER_CUSTOM_FIELD_3_VALUE = 13_003

            # Custom field value for Order with custom field ID equal to the ID
            # in index 4 of `ReportDefinition.order_custom_field_ids`. Treats the value
            # as a string. Can only be used if the custom field at index 4 is of type
            # STRING.
            ORDER_CUSTOM_FIELD_4_VALUE = 13_004

            # Custom field value for Order with custom field ID equal to the ID
            # in index 5 of `ReportDefinition.order_custom_field_ids`. Treats the value
            # as a string. Can only be used if the custom field at index 5 is of type
            # STRING.
            ORDER_CUSTOM_FIELD_5_VALUE = 13_005

            # Custom field value for Order with custom field ID equal to the ID
            # in index 6 of `ReportDefinition.order_custom_field_ids`. Treats the value
            # as a string. Can only be used if the custom field at index 6 is of type
            # STRING.
            ORDER_CUSTOM_FIELD_6_VALUE = 13_006

            # Custom field value for Order with custom field ID equal to the ID
            # in index 7 of `ReportDefinition.order_custom_field_ids`. Treats the value
            # as a string. Can only be used if the custom field at index 7 is of type
            # STRING.
            ORDER_CUSTOM_FIELD_7_VALUE = 13_007

            # Custom field value for Order with custom field ID equal to the ID
            # in index 8 of `ReportDefinition.order_custom_field_ids`. Treats the value
            # as a string. Can only be used if the custom field at index 8 is of type
            # STRING.
            ORDER_CUSTOM_FIELD_8_VALUE = 13_008

            # Custom field value for Order with custom field ID equal to the ID
            # in index 9 of `ReportDefinition.order_custom_field_ids`. Treats the value
            # as a string. Can only be used if the custom field at index 9 is of type
            # STRING.
            ORDER_CUSTOM_FIELD_9_VALUE = 13_009

            # Custom field value for Order with custom field ID equal to the ID
            # in index 10 of `ReportDefinition.order_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 10 is of
            # type STRING.
            ORDER_CUSTOM_FIELD_10_VALUE = 13_010

            # Custom field value for Order with custom field ID equal to the ID
            # in index 11 of `ReportDefinition.order_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 11 is of
            # type STRING.
            ORDER_CUSTOM_FIELD_11_VALUE = 13_011

            # Custom field value for Order with custom field ID equal to the ID
            # in index 12 of `ReportDefinition.order_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 12 is of
            # type STRING.
            ORDER_CUSTOM_FIELD_12_VALUE = 13_012

            # Custom field value for Order with custom field ID equal to the ID
            # in index 13 of `ReportDefinition.order_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 13 is of
            # type STRING.
            ORDER_CUSTOM_FIELD_13_VALUE = 13_013

            # Custom field value for Order with custom field ID equal to the ID
            # in index 14 of `ReportDefinition.order_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 14 is of
            # type STRING.
            ORDER_CUSTOM_FIELD_14_VALUE = 13_014

            # Custom field option ID for Creative with custom field ID equal to the ID
            # in index 0 of `ReportDefinition.creative_custom_field_ids`.
            CREATIVE_CUSTOM_FIELD_0_OPTION_ID = 14_000

            # Custom field option ID for Creative with custom field ID equal to the ID
            # in index 1 of `ReportDefinition.creative_custom_field_ids`.
            CREATIVE_CUSTOM_FIELD_1_OPTION_ID = 14_001

            # Custom field option ID for Creative with custom field ID equal to the ID
            # in index 2 of `ReportDefinition.creative_custom_field_ids`.
            CREATIVE_CUSTOM_FIELD_2_OPTION_ID = 14_002

            # Custom field option ID for Creative with custom field ID equal to the ID
            # in index 3 of `ReportDefinition.creative_custom_field_ids`.
            CREATIVE_CUSTOM_FIELD_3_OPTION_ID = 14_003

            # Custom field option ID for Creative with custom field ID equal to the ID
            # in index 4 of `ReportDefinition.creative_custom_field_ids`.
            CREATIVE_CUSTOM_FIELD_4_OPTION_ID = 14_004

            # Custom field option ID for Creative with custom field ID equal to the ID
            # in index 5 of `ReportDefinition.creative_custom_field_ids`.
            CREATIVE_CUSTOM_FIELD_5_OPTION_ID = 14_005

            # Custom field option ID for Creative with custom field ID equal to the ID
            # in index 6 of `ReportDefinition.creative_custom_field_ids`.
            CREATIVE_CUSTOM_FIELD_6_OPTION_ID = 14_006

            # Custom field option ID for Creative with custom field ID equal to the ID
            # in index 7 of `ReportDefinition.creative_custom_field_ids`.
            CREATIVE_CUSTOM_FIELD_7_OPTION_ID = 14_007

            # Custom field option ID for Creative with custom field ID equal to the ID
            # in index 8 of `ReportDefinition.creative_custom_field_ids`.
            CREATIVE_CUSTOM_FIELD_8_OPTION_ID = 14_008

            # Custom field option ID for Creative with custom field ID equal to the ID
            # in index 9 of `ReportDefinition.creative_custom_field_ids`.
            CREATIVE_CUSTOM_FIELD_9_OPTION_ID = 14_009

            # Custom field option ID for Creative with custom field ID equal to the ID
            # in index 10 of `ReportDefinition.creative_custom_field_ids`.
            CREATIVE_CUSTOM_FIELD_10_OPTION_ID = 14_010

            # Custom field option ID for Creative with custom field ID equal to the ID
            # in index 11 of `ReportDefinition.creative_custom_field_ids`.
            CREATIVE_CUSTOM_FIELD_11_OPTION_ID = 14_011

            # Custom field option ID for Creative with custom field ID equal to the ID
            # in index 12 of `ReportDefinition.creative_custom_field_ids`.
            CREATIVE_CUSTOM_FIELD_12_OPTION_ID = 14_012

            # Custom field option ID for Creative with custom field ID equal to the ID
            # in index 13 of `ReportDefinition.creative_custom_field_ids`.
            CREATIVE_CUSTOM_FIELD_13_OPTION_ID = 14_013

            # Custom field option ID for Creative with custom field ID equal to the ID
            # in index 14 of `ReportDefinition.creative_custom_field_ids`.
            CREATIVE_CUSTOM_FIELD_14_OPTION_ID = 14_014

            # Custom field value for Creative with custom field ID equal to the ID
            # in index 0 of `ReportDefinition.creative_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 0 is of
            # type STRING.
            CREATIVE_CUSTOM_FIELD_0_VALUE = 15_000

            # Custom field value for Creative with custom field ID equal to the ID
            # in index 1 of `ReportDefinition.creative_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 1 is of
            # type STRING.
            CREATIVE_CUSTOM_FIELD_1_VALUE = 15_001

            # Custom field value for Creative with custom field ID equal to the ID
            # in index 2 of `ReportDefinition.creative_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 2 is of
            # type STRING.
            CREATIVE_CUSTOM_FIELD_2_VALUE = 15_002

            # Custom field value for Creative with custom field ID equal to the ID
            # in index 3 of `ReportDefinition.creative_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 3 is of
            # type STRING.
            CREATIVE_CUSTOM_FIELD_3_VALUE = 15_003

            # Custom field value for Creative with custom field ID equal to the ID
            # in index 4 of `ReportDefinition.creative_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 4 is of
            # type STRING.
            CREATIVE_CUSTOM_FIELD_4_VALUE = 15_004

            # Custom field value for Creative with custom field ID equal to the ID
            # in index 5 of `ReportDefinition.creative_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 5 is of
            # type STRING.
            CREATIVE_CUSTOM_FIELD_5_VALUE = 15_005

            # Custom field value for Creative with custom field ID equal to the ID
            # in index 6 of `ReportDefinition.creative_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 6 is of
            # type STRING.
            CREATIVE_CUSTOM_FIELD_6_VALUE = 15_006

            # Custom field value for Creative with custom field ID equal to the ID
            # in index 7 of `ReportDefinition.creative_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 7 is of
            # type STRING.
            CREATIVE_CUSTOM_FIELD_7_VALUE = 15_007

            # Custom field value for Creative with custom field ID equal to the ID
            # in index 8 of `ReportDefinition.creative_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 8 is of
            # type STRING.
            CREATIVE_CUSTOM_FIELD_8_VALUE = 15_008

            # Custom field value for Creative with custom field ID equal to the ID
            # in index 9 of `ReportDefinition.creative_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 9 is of
            # type STRING.
            CREATIVE_CUSTOM_FIELD_9_VALUE = 15_009

            # Custom field value for Creative with custom field ID equal to the ID
            # in index 10 of `ReportDefinition.creative_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 10 is of
            # type STRING.
            CREATIVE_CUSTOM_FIELD_10_VALUE = 15_010

            # Custom field value for Creative with custom field ID equal to the ID
            # in index 11 of `ReportDefinition.creative_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 11 is of
            # type STRING.
            CREATIVE_CUSTOM_FIELD_11_VALUE = 15_011

            # Custom field value for Creative with custom field ID equal to the ID
            # in index 12 of `ReportDefinition.creative_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 12 is of
            # type STRING.
            CREATIVE_CUSTOM_FIELD_12_VALUE = 15_012

            # Custom field value for Creative with custom field ID equal to the ID
            # in index 13 of `ReportDefinition.creative_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 13 is of
            # type STRING.
            CREATIVE_CUSTOM_FIELD_13_VALUE = 15_013

            # Custom field value for Creative with custom field ID equal to the ID
            # in index 14 of `ReportDefinition.creative_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 14 is of
            # type STRING.
            CREATIVE_CUSTOM_FIELD_14_VALUE = 15_014

            # Custom field option ID for Backfill line item with custom field ID equal
            # to the ID in index 0 of `ReportDefinition.line_item_custom_field_ids`.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_0_OPTION_ID = 16_000

            # Custom field option ID for Backfill line item with custom field ID equal
            # to the ID in index 1 of `ReportDefinition.line_item_custom_field_ids`.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_1_OPTION_ID = 16_001

            # Custom field option ID for Backfill line item with custom field ID equal
            # to the ID in index 2 of `ReportDefinition.line_item_custom_field_ids`.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_2_OPTION_ID = 16_002

            # Custom field option ID for Backfill line item with custom field ID equal
            # to the ID in index 3 of `ReportDefinition.line_item_custom_field_ids`.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_3_OPTION_ID = 16_003

            # Custom field option ID for Backfill line item with custom field ID equal
            # to the ID in index 4 of `ReportDefinition.line_item_custom_field_ids`.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_4_OPTION_ID = 16_004

            # Custom field option ID for Backfill line item with custom field ID equal
            # to the ID in index 5 of `ReportDefinition.line_item_custom_field_ids`.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_5_OPTION_ID = 16_005

            # Custom field option ID for Backfill line item with custom field ID equal
            # to the ID in index 6 of `ReportDefinition.line_item_custom_field_ids`.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_6_OPTION_ID = 16_006

            # Custom field option ID for Backfill line item with custom field ID equal
            # to the ID in index 7 of `ReportDefinition.line_item_custom_field_ids`.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_7_OPTION_ID = 16_007

            # Custom field option ID for Backfill line item with custom field ID equal
            # to the ID in index 8 of `ReportDefinition.line_item_custom_field_ids`.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_8_OPTION_ID = 16_008

            # Custom field option ID for Backfill line item with custom field ID equal
            # to the ID in index 9 of `ReportDefinition.line_item_custom_field_ids`.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_9_OPTION_ID = 16_009

            # Custom field option ID for Backfill line item with custom field ID equal
            # to the ID in index 10 of `ReportDefinition.line_item_custom_field_ids`.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_10_OPTION_ID = 16_010

            # Custom field option ID for Backfill line item with custom field ID equal
            # to the ID in index 11 of `ReportDefinition.line_item_custom_field_ids`.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_11_OPTION_ID = 16_011

            # Custom field option ID for Backfill line item with custom field ID equal
            # to the ID in index 12 of `ReportDefinition.line_item_custom_field_ids`.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_12_OPTION_ID = 16_012

            # Custom field option ID for Backfill line item with custom field ID equal
            # to the ID in index 13 of `ReportDefinition.line_item_custom_field_ids`.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_13_OPTION_ID = 16_013

            # Custom field option ID for Backfill line item with custom field ID equal
            # to the ID in index 14 of `ReportDefinition.line_item_custom_field_ids`.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_14_OPTION_ID = 16_014

            # Custom field value for Backfill line item with custom field ID equal to
            # the ID in index 0 of `ReportDefinition.line_item_custom_field_ids`.
            # Treats the value as a string. Can only be used if the custom field at
            # index 0 is of type STRING or DROPDOWN.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_0_VALUE = 17_000

            # Custom field value for Backfill line item with custom field ID equal to
            # the ID in index 1 of `ReportDefinition.line_item_custom_field_ids`.
            # Treats the value as a string. Can only be used if the custom field at
            # index 1 is of type STRING or DROPDOWN.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_1_VALUE = 17_001

            # Custom field value for Backfill line item with custom field ID equal to
            # the ID in index 2 of `ReportDefinition.line_item_custom_field_ids`.
            # Treats the value as a string. Can only be used if the custom field at
            # index 2 is of type STRING or DROPDOWN.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_2_VALUE = 17_002

            # Custom field value for Backfill line item with custom field ID equal to
            # the ID in index 3 of `ReportDefinition.line_item_custom_field_ids`.
            # Treats the value as a string. Can only be used if the custom field at
            # index 3 is of type STRING or DROPDOWN.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_3_VALUE = 17_003

            # Custom field value for Backfill line item with custom field ID equal to
            # the ID in index 4 of `ReportDefinition.line_item_custom_field_ids`.
            # Treats the value as a string. Can only be used if the custom field at
            # index 4 is of type STRING or DROPDOWN.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_4_VALUE = 17_004

            # Custom field value for Backfill line item with custom field ID equal to
            # the ID in index 5 of `ReportDefinition.line_item_custom_field_ids`.
            # Treats the value as a string. Can only be used if the custom field at
            # index 5 is of type STRING or DROPDOWN.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_5_VALUE = 17_005

            # Custom field value for Backfill line item with custom field ID equal to
            # the ID in index 6 of `ReportDefinition.line_item_custom_field_ids`.
            # Treats the value as a string. Can only be used if the custom field at
            # index 6 is of type STRING or DROPDOWN.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_6_VALUE = 17_006

            # Custom field value for Backfill line item with custom field ID equal to
            # the ID in index 7 of `ReportDefinition.line_item_custom_field_ids`.
            # Treats the value as a string. Can only be used if the custom field at
            # index 7 is of type STRING or DROPDOWN.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_7_VALUE = 17_007

            # Custom field value for Backfill line item with custom field ID equal to
            # the ID in index 8 of `ReportDefinition.line_item_custom_field_ids`.
            # Treats the value as a string. Can only be used if the custom field at
            # index 8 is of type STRING or DROPDOWN.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_8_VALUE = 17_008

            # Custom field value for Backfill line item with custom field ID equal to
            # the ID in index 9 of `ReportDefinition.line_item_custom_field_ids`.
            # Treats the value as a string. Can only be used if the custom field at
            # index 9 is of type STRING or DROPDOWN.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_9_VALUE = 17_009

            # Custom field value for Backfill line item with custom field ID equal to
            # the ID in index 10 of `ReportDefinition.line_item_custom_field_ids`.
            # Treats the value as a string. Can only be used if the custom field at
            # index 10 is of type STRING or DROPDOWN.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_10_VALUE = 17_010

            # Custom field value for Backfill line item with custom field ID equal to
            # the ID in index 11 of `ReportDefinition.line_item_custom_field_ids`.
            # Treats the value as a string. Can only be used if the custom field at
            # index 11 is of type STRING or DROPDOWN.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_11_VALUE = 17_011

            # Custom field value for Backfill line item with custom field ID equal to
            # the ID in index 12 of `ReportDefinition.line_item_custom_field_ids`.
            # Treats the value as a string. Can only be used if the custom field at
            # index 12 is of type STRING or DROPDOWN.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_12_VALUE = 17_012

            # Custom field value for Backfill line item with custom field ID equal to
            # the ID in index 13 of `ReportDefinition.line_item_custom_field_ids`.
            # Treats the value as a string. Can only be used if the custom field at
            # index 13 is of type STRING or DROPDOWN.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_13_VALUE = 17_013

            # Custom field value for Backfill line item with custom field ID equal to
            # the ID in index 14 of `ReportDefinition.line_item_custom_field_ids`.
            # Treats the value as a string. Can only be used if the custom field at
            # index 14 is of type STRING or DROPDOWN.
            BACKFILL_LINE_ITEM_CUSTOM_FIELD_14_VALUE = 17_014

            # Custom field option ID for Backfill order with custom field ID equal to
            # the ID in index 0 of `ReportDefinition.order_custom_field_ids`.
            BACKFILL_ORDER_CUSTOM_FIELD_0_OPTION_ID = 18_000

            # Custom field option ID for Backfill order with custom field ID equal to
            # the ID in index 1 of `ReportDefinition.order_custom_field_ids`.
            BACKFILL_ORDER_CUSTOM_FIELD_1_OPTION_ID = 18_001

            # Custom field option ID for Backfill order with custom field ID equal to
            # the ID in index 2 of `ReportDefinition.order_custom_field_ids`.
            BACKFILL_ORDER_CUSTOM_FIELD_2_OPTION_ID = 18_002

            # Custom field option ID for Backfill order with custom field ID equal to
            # the ID in index 3 of `ReportDefinition.order_custom_field_ids`.
            BACKFILL_ORDER_CUSTOM_FIELD_3_OPTION_ID = 18_003

            # Custom field option ID for Backfill order with custom field ID equal to
            # the ID in index 4 of `ReportDefinition.order_custom_field_ids`.
            BACKFILL_ORDER_CUSTOM_FIELD_4_OPTION_ID = 18_004

            # Custom field option ID for Backfill order with custom field ID equal to
            # the ID in index 5 of `ReportDefinition.order_custom_field_ids`.
            BACKFILL_ORDER_CUSTOM_FIELD_5_OPTION_ID = 18_005

            # Custom field option ID for Backfill order with custom field ID equal to
            # the ID in index 6 of `ReportDefinition.order_custom_field_ids`.
            BACKFILL_ORDER_CUSTOM_FIELD_6_OPTION_ID = 18_006

            # Custom field option ID for Backfill order with custom field ID equal to
            # the ID in index 7 of `ReportDefinition.order_custom_field_ids`.
            BACKFILL_ORDER_CUSTOM_FIELD_7_OPTION_ID = 18_007

            # Custom field option ID for Backfill order with custom field ID equal to
            # the ID in index 8 of `ReportDefinition.order_custom_field_ids`.
            BACKFILL_ORDER_CUSTOM_FIELD_8_OPTION_ID = 18_008

            # Custom field option ID for Backfill order with custom field ID equal to
            # the ID in index 9 of `ReportDefinition.order_custom_field_ids`.
            BACKFILL_ORDER_CUSTOM_FIELD_9_OPTION_ID = 18_009

            # Custom field option ID for Backfill order with custom field ID equal to
            # the ID in index 10 of `ReportDefinition.order_custom_field_ids`.
            BACKFILL_ORDER_CUSTOM_FIELD_10_OPTION_ID = 18_010

            # Custom field option ID for Backfill order with custom field ID equal to
            # the ID in index 11 of `ReportDefinition.order_custom_field_ids`.
            BACKFILL_ORDER_CUSTOM_FIELD_11_OPTION_ID = 18_011

            # Custom field option ID for Backfill order with custom field ID equal to
            # the ID in index 12 of `ReportDefinition.order_custom_field_ids`.
            BACKFILL_ORDER_CUSTOM_FIELD_12_OPTION_ID = 18_012

            # Custom field option ID for Backfill order with custom field ID equal to
            # the ID in index 13 of `ReportDefinition.order_custom_field_ids`.
            BACKFILL_ORDER_CUSTOM_FIELD_13_OPTION_ID = 18_013

            # Custom field option ID for Backfill order with custom field ID equal to
            # the ID in index 14 of `ReportDefinition.order_custom_field_ids`.
            BACKFILL_ORDER_CUSTOM_FIELD_14_OPTION_ID = 18_014

            # Custom field value for Backfill order with custom field ID equal to the
            # ID
            # in index 0 of `ReportDefinition.order_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 0 is of
            # type STRING or DROPDOWN.
            BACKFILL_ORDER_CUSTOM_FIELD_0_VALUE = 19_000

            # Custom field value for Backfill order with custom field ID equal to the
            # ID in index 1 of `ReportDefinition.order_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 1 is of
            # type STRING or DROPDOWN.
            BACKFILL_ORDER_CUSTOM_FIELD_1_VALUE = 19_001

            # Custom field value for Backfill order with custom field ID equal to the
            # ID in index 2 of `ReportDefinition.order_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 2 is of
            # type STRING or DROPDOWN.
            BACKFILL_ORDER_CUSTOM_FIELD_2_VALUE = 19_002

            # Custom field value for Backfill order with custom field ID equal to the
            # ID in index 3 of `ReportDefinition.order_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 3 is of
            # type STRING or DROPDOWN.
            BACKFILL_ORDER_CUSTOM_FIELD_3_VALUE = 19_003

            # Custom field value for Backfill order with custom field ID equal to the
            # ID in index 4 of `ReportDefinition.order_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 4 is of
            # type STRING or DROPDOWN.
            BACKFILL_ORDER_CUSTOM_FIELD_4_VALUE = 19_004

            # Custom field value for Backfill order with custom field ID equal to the
            # ID in index 5 of `ReportDefinition.order_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 5 is of
            # type STRING or DROPDOWN.
            BACKFILL_ORDER_CUSTOM_FIELD_5_VALUE = 19_005

            # Custom field value for Backfill order with custom field ID equal to the
            # ID in index 6 of `ReportDefinition.order_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 6 is of
            # type STRING or DROPDOWN.
            BACKFILL_ORDER_CUSTOM_FIELD_6_VALUE = 19_006

            # Custom field value for Backfill order with custom field ID equal to the
            # ID in index 7 of `ReportDefinition.order_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 7 is of
            # type STRING or DROPDOWN.
            BACKFILL_ORDER_CUSTOM_FIELD_7_VALUE = 19_007

            # Custom field value for Backfill order with custom field ID equal to the
            # ID in index 8 of `ReportDefinition.order_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 8 is of
            # type STRING or DROPDOWN.
            BACKFILL_ORDER_CUSTOM_FIELD_8_VALUE = 19_008

            # Custom field value for Backfill order with custom field ID equal to the
            # ID in index 9 of `ReportDefinition.order_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 9 is of
            # type STRING or DROPDOWN.
            BACKFILL_ORDER_CUSTOM_FIELD_9_VALUE = 19_009

            # Custom field value for Backfill order with custom field ID equal to the
            # ID in index 10 of `ReportDefinition.order_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 10 is of
            # type STRING or DROPDOWN.
            BACKFILL_ORDER_CUSTOM_FIELD_10_VALUE = 19_010

            # Custom field value for Backfill order with custom field ID equal to the
            # ID in index 11 of `ReportDefinition.order_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 11 is of
            # type STRING or DROPDOWN.
            BACKFILL_ORDER_CUSTOM_FIELD_11_VALUE = 19_011

            # Custom field value for Backfill order with custom field ID equal to the
            # ID in index 12 of `ReportDefinition.order_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 12 is of
            # type STRING or DROPDOWN.
            BACKFILL_ORDER_CUSTOM_FIELD_12_VALUE = 19_012

            # Custom field value for Backfill order with custom field ID equal to the
            # ID in index 13 of `ReportDefinition.order_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 13 is of
            # type STRING or DROPDOWN.
            BACKFILL_ORDER_CUSTOM_FIELD_13_VALUE = 19_013

            # Custom field value for Backfill order with custom field ID equal to the
            # ID in index 14 of `ReportDefinition.order_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 14 is of
            # type STRING or DROPDOWN.
            BACKFILL_ORDER_CUSTOM_FIELD_14_VALUE = 19_014

            # Custom field option ID for Backfill creative with custom field ID equal
            # to the ID in index 0 of `ReportDefinition.creative_custom_field_ids`.
            BACKFILL_CREATIVE_CUSTOM_FIELD_0_OPTION_ID = 20_000

            # Custom field option ID for Backfill creative with custom field ID equal
            # to the ID in index 1 of `ReportDefinition.creative_custom_field_ids`.
            BACKFILL_CREATIVE_CUSTOM_FIELD_1_OPTION_ID = 20_001

            # Custom field option ID for Backfill creative with custom field ID equal
            # to the ID in index 2 of `ReportDefinition.creative_custom_field_ids`.
            BACKFILL_CREATIVE_CUSTOM_FIELD_2_OPTION_ID = 20_002

            # Custom field option ID for Backfill creative with custom field ID equal
            # to the ID in index 3 of `ReportDefinition.creative_custom_field_ids`.
            BACKFILL_CREATIVE_CUSTOM_FIELD_3_OPTION_ID = 20_003

            # Custom field option ID for Backfill creative with custom field ID equal
            # to the ID in index 4 of `ReportDefinition.creative_custom_field_ids`.
            BACKFILL_CREATIVE_CUSTOM_FIELD_4_OPTION_ID = 20_004

            # Custom field option ID for Backfill creative with custom field ID equal
            # to the ID in index 5 of `ReportDefinition.creative_custom_field_ids`.
            BACKFILL_CREATIVE_CUSTOM_FIELD_5_OPTION_ID = 20_005

            # Custom field option ID for Backfill creative with custom field ID equal
            # to the ID in index 6 of `ReportDefinition.creative_custom_field_ids`.
            BACKFILL_CREATIVE_CUSTOM_FIELD_6_OPTION_ID = 20_006

            # Custom field option ID for Backfill creative with custom field ID equal
            # to the ID in index 7 of `ReportDefinition.creative_custom_field_ids`.
            BACKFILL_CREATIVE_CUSTOM_FIELD_7_OPTION_ID = 20_007

            # Custom field option ID for Backfill creative with custom field ID equal
            # to the ID in index 8 of `ReportDefinition.creative_custom_field_ids`.
            BACKFILL_CREATIVE_CUSTOM_FIELD_8_OPTION_ID = 20_008

            # Custom field option ID for Backfill creative with custom field ID equal
            # to the ID in index 9 of `ReportDefinition.creative_custom_field_ids`.
            BACKFILL_CREATIVE_CUSTOM_FIELD_9_OPTION_ID = 20_009

            # Custom field option ID for Backfill creative with custom field ID equal
            # to the ID in index 10 of `ReportDefinition.creative_custom_field_ids`.
            BACKFILL_CREATIVE_CUSTOM_FIELD_10_OPTION_ID = 20_010

            # Custom field option ID for Backfill creative with custom field ID equal
            # to the ID in index 11 of `ReportDefinition.creative_custom_field_ids`.
            BACKFILL_CREATIVE_CUSTOM_FIELD_11_OPTION_ID = 20_011

            # Custom field option ID for Backfill creative with custom field ID equal
            # to the ID in index 12 of `ReportDefinition.creative_custom_field_ids`.
            BACKFILL_CREATIVE_CUSTOM_FIELD_12_OPTION_ID = 20_012

            # Custom field option ID for Backfill creative with custom field ID equal
            # to the ID in index 13 of `ReportDefinition.creative_custom_field_ids`.
            BACKFILL_CREATIVE_CUSTOM_FIELD_13_OPTION_ID = 20_013

            # Custom field option ID for Backfill creative with custom field ID equal
            # to the ID in index 14 of `ReportDefinition.creative_custom_field_ids`.
            BACKFILL_CREATIVE_CUSTOM_FIELD_14_OPTION_ID = 20_014

            # Custom field value for Backfill creative with custom field ID equal to
            # the ID
            # in index 0 of `ReportDefinition.creative_custom_field_ids`. Treats the
            # value as a string. Can only be used if the custom field at index 0 is of
            # type STRING or DROPDOWN.
            BACKFILL_CREATIVE_CUSTOM_FIELD_0_VALUE = 21_000

            # Custom field value for Backfill creative with custom field ID equal to
            # the ID in index 1 of `ReportDefinition.creative_custom_field_ids`. Treats
            # the value as a string. Can only be used if the custom field at index 1 is
            # of type STRING or DROPDOWN.
            BACKFILL_CREATIVE_CUSTOM_FIELD_1_VALUE = 21_001

            # Custom field value for Backfill creative with custom field ID equal to
            # the ID in index 2 of `ReportDefinition.creative_custom_field_ids`. Treats
            # the value as a string. Can only be used if the custom field at index 2 is
            # of type STRING or DROPDOWN.
            BACKFILL_CREATIVE_CUSTOM_FIELD_2_VALUE = 21_002

            # Custom field value for Backfill creative with custom field ID equal to
            # the ID in index 3 of `ReportDefinition.creative_custom_field_ids`. Treats
            # the value as a string. Can only be used if the custom field at index 3 is
            # of type STRING or DROPDOWN.
            BACKFILL_CREATIVE_CUSTOM_FIELD_3_VALUE = 21_003

            # Custom field value for Backfill creative with custom field ID equal to
            # the ID in index 4 of `ReportDefinition.creative_custom_field_ids`. Treats
            # the value as a string. Can only be used if the custom field at index 4 is
            # of type STRING or DROPDOWN.
            BACKFILL_CREATIVE_CUSTOM_FIELD_4_VALUE = 21_004

            # Custom field value for Backfill creative with custom field ID equal to
            # the ID in index 5 of `ReportDefinition.creative_custom_field_ids`. Treats
            # the value as a string. Can only be used if the custom field at index 5 is
            # of type STRING or DROPDOWN.
            BACKFILL_CREATIVE_CUSTOM_FIELD_5_VALUE = 21_005

            # Custom field value for Backfill creative with custom field ID equal to
            # the ID in index 6 of `ReportDefinition.creative_custom_field_ids`. Treats
            # the value as a string. Can only be used if the custom field at index 6 is
            # of type STRING or DROPDOWN.
            BACKFILL_CREATIVE_CUSTOM_FIELD_6_VALUE = 21_006

            # Custom field value for Backfill creative with custom field ID equal to
            # the ID in index 7 of `ReportDefinition.creative_custom_field_ids`. Treats
            # the value as a string. Can only be used if the custom field at index 7 is
            # of type STRING or DROPDOWN.
            BACKFILL_CREATIVE_CUSTOM_FIELD_7_VALUE = 21_007

            # Custom field value for Backfill creative with custom field ID equal to
            # the ID in index 8 of `ReportDefinition.creative_custom_field_ids`. Treats
            # the value as a string. Can only be used if the custom field at index 8 is
            # of type STRING or DROPDOWN.
            BACKFILL_CREATIVE_CUSTOM_FIELD_8_VALUE = 21_008

            # Custom field value for Backfill creative with custom field ID equal to
            # the ID in index 9 of `ReportDefinition.creative_custom_field_ids`. Treats
            # the value as a string. Can only be used if the custom field at index 9 is
            # of type STRING or DROPDOWN.
            BACKFILL_CREATIVE_CUSTOM_FIELD_9_VALUE = 21_009

            # Custom field value for Backfill creative with custom field ID equal to
            # the ID in index 10 of `ReportDefinition.creative_custom_field_ids`.
            # Treats the value as a string. Can only be used if the custom field at
            # index 10 is of type STRING or DROPDOWN.
            BACKFILL_CREATIVE_CUSTOM_FIELD_10_VALUE = 21_010

            # Custom field value for Backfill creative with custom field ID equal to
            # the ID in index 11 of `ReportDefinition.creative_custom_field_ids`.
            # Treats the value as a string. Can only be used if the custom field at
            # index 11 is of type STRING or DROPDOWN.
            BACKFILL_CREATIVE_CUSTOM_FIELD_11_VALUE = 21_011

            # Custom field value for Backfill creative with custom field ID equal to
            # the ID in index 12 of `ReportDefinition.creative_custom_field_ids`.
            # Treats the value as a string. Can only be used if the custom field at
            # index 12 is of type STRING or DROPDOWN.
            BACKFILL_CREATIVE_CUSTOM_FIELD_12_VALUE = 21_012

            # Custom field value for Backfill creative with custom field ID equal to
            # the ID in index 13 of `ReportDefinition.creative_custom_field_ids`.
            # Treats the value as a string. Can only be used if the custom field at
            # index 13 is of type STRING or DROPDOWN.
            BACKFILL_CREATIVE_CUSTOM_FIELD_13_VALUE = 21_013

            # Custom field value for Backfill creative with custom field ID equal to
            # the ID in index 14 of `ReportDefinition.creative_custom_field_ids`.
            # Treats the value as a string. Can only be used if the custom field at
            # index 14 is of type STRING or DROPDOWN.
            BACKFILL_CREATIVE_CUSTOM_FIELD_14_VALUE = 21_014

            # Custom Dimension Value ID for Custom Dimension with key equal to the key
            # in index 0 of `ReportDefinition.custom_dimension_key_ids`.
            CUSTOM_DIMENSION_0_VALUE_ID = 100_000

            # Custom Dimension Value ID for Custom Dimension with key equal to the key
            # in index 1 of `ReportDefinition.custom_dimension_key_ids`.
            CUSTOM_DIMENSION_1_VALUE_ID = 100_001

            # Custom Dimension Value ID for Custom Dimension with key equal to the key
            # in index 2 of `ReportDefinition.custom_dimension_key_ids`.
            CUSTOM_DIMENSION_2_VALUE_ID = 100_002

            # Custom Dimension Value ID for Custom Dimension with key equal to the key
            # in index 3 of `ReportDefinition.custom_dimension_key_ids`.
            CUSTOM_DIMENSION_3_VALUE_ID = 100_003

            # Custom Dimension Value ID for Custom Dimension with key equal to the key
            # in index 4 of `ReportDefinition.custom_dimension_key_ids`.
            CUSTOM_DIMENSION_4_VALUE_ID = 100_004

            # Custom Dimension Value ID for Custom Dimension with key equal to the key
            # in index 5 of `ReportDefinition.custom_dimension_key_ids`.
            CUSTOM_DIMENSION_5_VALUE_ID = 100_005

            # Custom Dimension Value ID for Custom Dimension with key equal to the key
            # in index 6 of `ReportDefinition.custom_dimension_key_ids`.
            CUSTOM_DIMENSION_6_VALUE_ID = 100_006

            # Custom Dimension Value ID for Custom Dimension with key equal to the key
            # in index 9 of `ReportDefinition.custom_dimension_key_ids`.
            CUSTOM_DIMENSION_7_VALUE_ID = 100_007

            # Custom Dimension Value ID for Custom Dimension with key equal to the key
            # in index 8 of `ReportDefinition.custom_dimension_key_ids`.
            CUSTOM_DIMENSION_8_VALUE_ID = 100_008

            # Custom Dimension Value ID for Custom Dimension with key equal to the key
            # in index 9 of `ReportDefinition.custom_dimension_key_ids`.
            CUSTOM_DIMENSION_9_VALUE_ID = 100_009

            # Custom Dimension Value name for Custom Dimension with key equal to the
            # id in index 0 of `ReportDefinition.custom_dimension_key_ids`.
            CUSTOM_DIMENSION_0_VALUE = 101_000

            # Custom Dimension Value name for Custom Dimension with key equal to the
            # id in index 1 of `ReportDefinition.custom_dimension_key_ids`.
            CUSTOM_DIMENSION_1_VALUE = 101_001

            # Custom Dimension Value name for Custom Dimension with key equal to the
            # id in index 2 of `ReportDefinition.custom_dimension_key_ids`.
            CUSTOM_DIMENSION_2_VALUE = 101_002

            # Custom Dimension Value name for Custom Dimension with key equal to the
            # id in index 3 of `ReportDefinition.custom_dimension_key_ids`.
            CUSTOM_DIMENSION_3_VALUE = 101_003

            # Custom Dimension Value name for Custom Dimension with key equal to the
            # id in index 4 of `ReportDefinition.custom_dimension_key_ids`.
            CUSTOM_DIMENSION_4_VALUE = 101_004

            # Custom Dimension Value name for Custom Dimension with key equal to the
            # id in index 5 of `ReportDefinition.custom_dimension_key_ids`.
            CUSTOM_DIMENSION_5_VALUE = 101_005

            # Custom Dimension Value name for Custom Dimension with key equal to the
            # id in index 6 of `ReportDefinition.custom_dimension_key_ids`.
            CUSTOM_DIMENSION_6_VALUE = 101_006

            # Custom Dimension Value name for Custom Dimension with key equal to the
            # id in index 7 of `ReportDefinition.custom_dimension_key_ids`.
            CUSTOM_DIMENSION_7_VALUE = 101_007

            # Custom Dimension Value name for Custom Dimension with key equal to the
            # id in index 8 of `ReportDefinition.custom_dimension_key_ids`.
            CUSTOM_DIMENSION_8_VALUE = 101_008

            # Custom Dimension Value name for Custom Dimension with key equal to the
            # id in index 9 of `ReportDefinition.custom_dimension_key_ids`.
            CUSTOM_DIMENSION_9_VALUE = 101_009
          end

          # Reporting metrics.
          module Metric
            # Default value. This value is unused.
            METRIC_UNSPECIFIED = 0

            # Active View total average time in seconds that specific impressions are
            # reported as being viewable.
            ACTIVE_VIEW_AVERAGE_VIEWABLE_TIME = 61

            # Total number of impressions that were eligible to measure viewability.
            ACTIVE_VIEW_ELIGIBLE_IMPRESSIONS = 58

            # The total number of impressions that were sampled and measured by active
            # view.
            ACTIVE_VIEW_MEASURABLE_IMPRESSIONS = 57

            # The percentage of total impressions that were measurable by active view
            # (out of all the total impressions sampled for active view).
            ACTIVE_VIEW_MEASURABLE_IMPRESSIONS_RATE = 60

            # The total number of impressions viewed on the user's screen.
            ACTIVE_VIEW_VIEWABLE_IMPRESSIONS = 56

            # The percentage of total impressions viewed on the user's screen (out of
            # the total impressions measurable by active view).
            ACTIVE_VIEW_VIEWABLE_IMPRESSIONS_RATE = 59

            # Active View AdSense average time in seconds that specific impressions are
            # reported as being viewable.
            ADSENSE_ACTIVE_VIEW_AVERAGE_VIEWABLE_TIME = 73

            # Total number of impressions delivered by AdSense that were eligible to
            # measure viewability.
            ADSENSE_ACTIVE_VIEW_ELIGIBLE_IMPRESSIONS = 70

            # The number of impressions delivered by AdSense that were sampled, and
            # measurable by active view.
            ADSENSE_ACTIVE_VIEW_MEASURABLE_IMPRESSIONS = 69

            # The percentage of impressions delivered by AdSense that were measurable
            # by active view (out of all AdSense impressions sampled for active view).
            ADSENSE_ACTIVE_VIEW_MEASURABLE_IMPRESSIONS_RATE = 72

            # The number of impressions delivered by AdSense viewed on the user's
            # screen.
            ADSENSE_ACTIVE_VIEW_VIEWABLE_IMPRESSIONS = 68

            # The percentage of impressions delivered by AdSense viewed on the user's
            # screen (out of AdSense impressions measurable by active view).
            ADSENSE_ACTIVE_VIEW_VIEWABLE_IMPRESSIONS_RATE = 71

            # The average effective cost-per-thousand-impressions earned from the ads
            # delivered by AdSense through line item dynamic allocation.
            ADSENSE_AVERAGE_ECPM = 26

            # Number of clicks delivered by AdSense demand channel.
            ADSENSE_CLICKS = 23

            # The ratio of impressions served by AdSense that resulted in users
            # clicking on an ad. The clickthrough rate (CTR) is updated nightly. The
            # AdSense CTR is calculated as: (AdSense clicks / AdSense impressions).
            ADSENSE_CTR = 24

            # Total impressions delivered by AdSense.
            ADSENSE_IMPRESSIONS = 22

            # Ratio of clicks delivered by AdSense through line item dynamic allocation
            # in relation to the total clicks delivered.
            ADSENSE_PERCENT_CLICKS = 28

            # Ratio of impressions delivered by AdSense through line item dynamic
            # allocation in relation to the total impressions delivered.
            ADSENSE_PERCENT_IMPRESSIONS = 27

            # Ratio of revenue generated by AdSense through line item dynamic
            # allocation in relation to the total revenue.
            ADSENSE_PERCENT_REVENUE = 29

            # Ratio of revenue generated by AdSense through line item dynamic
            # allocation in relation to the total revenue (excluding CPD).
            ADSENSE_PERCENT_REVENUE_WITHOUT_CPD = 30

            # The total number of times that an AdSense ad is delivered.
            ADSENSE_RESPONSES_SERVED = 41

            # Revenue generated from AdSense through line item dynamic allocation,
            # calculated in the network's currency and time zone.
            ADSENSE_REVENUE = 25

            # Active View AdExchange average time in seconds that specific impressions
            # are reported as being viewable.
            AD_EXCHANGE_ACTIVE_VIEW_AVERAGE_VIEWABLE_TIME = 79

            # Total number of impressions delivered by Ad Exchange that were eligible
            # to measure viewability.
            AD_EXCHANGE_ACTIVE_VIEW_ELIGIBLE_IMPRESSIONS = 76

            # The number of impressions delivered by Ad Exchange that were sampled, and
            # measurable by active view.
            AD_EXCHANGE_ACTIVE_VIEW_MEASURABLE_IMPRESSIONS = 75

            # The percentage of impressions delivered by Ad Exchange that were
            # measurable by active view (out of all Ad Exchange impressions sampled for
            # active view).
            AD_EXCHANGE_ACTIVE_VIEW_MEASURABLE_IMPRESSIONS_RATE = 78

            # The number of impressions delivered by Ad Exchange viewed on the user's
            # screen.
            AD_EXCHANGE_ACTIVE_VIEW_VIEWABLE_IMPRESSIONS = 74

            # The percentage of impressions delivered by Ad Exchange viewed on the
            # user's screen (out of Ad Exchange impressions measurable by active view).
            AD_EXCHANGE_ACTIVE_VIEW_VIEWABLE_IMPRESSIONS_RATE = 77

            # The average effective cost-per-thousand-impressions earned from the ads
            # delivered by Ad Exchange through line item dynamic allocation.
            AD_EXCHANGE_AVERAGE_ECPM = 18

            # Number of clicks delivered by the Ad Exchange.
            AD_EXCHANGE_CLICKS = 15

            # The ratio of impressions served by the Ad Exchange that resulted in users
            # clicking on an ad. The clickthrough rate (CTR) is updated nightly. Ad
            # Exchange CTR is calculated as: (Ad Exchange clicks / Ad Exchange
            # impressions).
            AD_EXCHANGE_CTR = 16

            # Total impressions delivered by the Ad Exchange.
            AD_EXCHANGE_IMPRESSIONS = 14

            # Ratio of clicks delivered by Ad Exchange through line item dynamic
            # allocation in relation to the total clicks delivered.
            AD_EXCHANGE_PERCENT_CLICKS = 20

            # Ratio of impressions delivered by Ad Exchange through line item dynamic
            # allocation in relation to the total impressions delivered.
            AD_EXCHANGE_PERCENT_IMPRESSIONS = 19

            # Ratio of revenue generated by Ad Exchange through line item dynamic
            # allocation in relation to the total revenue.
            AD_EXCHANGE_PERCENT_REVENUE = 21

            # Ratio of revenue generated by Ad Exchange through line item dynamic
            # allocation in relation to the total revenue (excluding CPD).
            AD_EXCHANGE_PERCENT_REVENUE_WITHOUT_CPD = 31

            # The total number of times that an Ad Exchange ad is delivered.
            AD_EXCHANGE_RESPONSES_SERVED = 42

            # Revenue generated from the Ad Exchange through line item dynamic
            # allocation, calculated in your network's currency and time zone.
            AD_EXCHANGE_REVENUE = 17

            # The total number of times that an ad request is sent to the ad server
            # including dynamic allocation.
            AD_REQUESTS = 38

            # Active View ad server average time in seconds that specific impressions
            # are reported as being viewable.
            AD_SERVER_ACTIVE_VIEW_AVERAGE_VIEWABLE_TIME = 67

            # Total number of impressions delivered by the ad server that were eligible
            # to measure viewability.
            AD_SERVER_ACTIVE_VIEW_ELIGIBLE_IMPRESSIONS = 64

            # The number of impressions delivered by the ad server that were sampled,
            # and measurable by active view.
            AD_SERVER_ACTIVE_VIEW_MEASURABLE_IMPRESSIONS = 63

            # The percentage of impressions delivered by the ad server that were
            # measurable by active view (out of all the ad server impressions sampled
            # for active view).
            AD_SERVER_ACTIVE_VIEW_MEASURABLE_IMPRESSIONS_RATE = 66

            # The number of impressions delivered by the ad server viewed on the user's
            # screen.
            AD_SERVER_ACTIVE_VIEW_VIEWABLE_IMPRESSIONS = 62

            # The percentage of impressions delivered by the ad server viewed on the
            # user's screen (out of the ad server impressions measurable by active
            # view).
            AD_SERVER_ACTIVE_VIEW_VIEWABLE_IMPRESSIONS_RATE = 65

            # Average effective cost-per-thousand-impressions earned from the ads
            # delivered by the Google Ad Manager server.
            AD_SERVER_AVERAGE_ECPM = 34

            # Average effective cost-per-thousand-impressions earned from the ads
            # delivered by the Google Ad Manager server, excluding CPD value.
            AD_SERVER_AVERAGE_ECPM_WITHOUT_CPD = 10

            # Total raw impressions counted when creative begins to render or the
            # first frame of a video is shown.
            AD_SERVER_BEGIN_TO_RENDER_IMPRESSIONS = 262

            # Total clicks served by the Google Ad Manager server. It usually takes
            # about 30 minutes for new clicks to be recorded and added to the total
            # displayed in reporting.
            AD_SERVER_CLICKS = 7

            # CPD revenue earned, calculated in your network's currency, for
            # the ads delivered by the Google Ad Manager server. Sum of all booked
            # revenue.
            AD_SERVER_CPD_REVENUE = 32

            # Ratio of impressions served by the Google Ad Manager server that resulted
            # in users clicking on an ad. The clickthrough rate (CTR) is updated
            # nightly. The ad server CTR is calculated as: (Ad server clicks / Ad
            # server impressions).
            AD_SERVER_CTR = 8

            # Total impressions delivered by the Ad Server.
            AD_SERVER_IMPRESSIONS = 6

            # Ratio of clicks delivered by the Google Ad Manager server in relation to
            # the total clicks delivered.
            AD_SERVER_PERCENT_CLICKS = 12

            # Ratio of impressions delivered by the Google Ad Manager server in
            # relation to the total impressions delivered.
            AD_SERVER_PERCENT_IMPRESSIONS = 11

            # Ratio of revenue generated by the Google Ad Manager server in relation
            # to the total revenue.
            AD_SERVER_PERCENT_REVENUE = 35

            # Ratio of revenue generated by the Google Ad Manager server (excluding
            # CPD) in relation to the total revenue.
            AD_SERVER_PERCENT_REVENUE_WITHOUT_CPD = 13

            # The total number of times that an ad is served by the ad server.
            AD_SERVER_RESPONSES_SERVED = 40

            # All CPM, CPC, and CPD revenue earned, calculated in your network's
            # currency, for the ads delivered by the Google Ad Manager server.
            # Sum of all booked revenue.
            AD_SERVER_REVENUE = 33

            # Revenue (excluding CPD) earned, calculated in your network's currency,
            # for the ads delivered by the Google Ad Manager server. Sum of all booked
            # revenue.
            AD_SERVER_REVENUE_WITHOUT_CPD = 9

            # The number of tracked ads delivered by the ad server.
            AD_SERVER_TRACKED_ADS = 264

            # Total raw impressions counted when creative begins to render or the
            # first frame of a video is shown, before invalid traffic filtrations by
            # Ad Server.
            AD_SERVER_UNFILTERED_BEGIN_TO_RENDER_IMPRESSIONS = 261

            # Total clicks delivered by the Ad Server before spam filtering.
            AD_SERVER_UNFILTERED_CLICKS = 259

            # Total impressions delivered by the Ad Server before spam filtering.
            AD_SERVER_UNFILTERED_IMPRESSIONS = 260

            # The number of tracked ads delivered by the ad server before invalid
            # traffic filtrations.
            AD_SERVER_UNFILTERED_TRACKED_ADS = 263

            # eCPM averaged across the Google Ad Manager server, AdSense,
            # and Ad Exchange.
            AVERAGE_ECPM = 37

            # eCPM averaged across the Google Ad Manager server (excluding CPD),
            # AdSense, and Ad Exchange.
            AVERAGE_ECPM_WITHOUT_CPD = 5

            # The number of times a user clicked on an ad.
            CLICKS = 2

            # The total number of times that the code for an ad is served by the ad
            # server including dynamic allocation.
            CODE_SERVED_COUNT = 44

            # For standard ads, your ad clickthrough rate (CTR) is the number of ad
            # clicks divided by the number of individual ad impressions expressed as a
            # fraction. Ad CTR = Clicks / Ad impressions.
            CTR = 3

            # The number of coviewed impressions sold by Google in partner sales.
            GOOGLE_SOLD_AUCTION_COVIEWED_IMPRESSIONS = 129

            # The number of auction impressions sold by Google in partner sales.
            GOOGLE_SOLD_AUCTION_IMPRESSIONS = 128

            # The number of coviewed impressions sold by Google in partner sales.
            GOOGLE_SOLD_COVIEWED_IMPRESSIONS = 131

            # The number of impressions sold by Google in partner sales.
            GOOGLE_SOLD_IMPRESSIONS = 130

            # The number of coviewed impressions sold by Google in partner sales.
            GOOGLE_SOLD_RESERVATION_COVIEWED_IMPRESSIONS = 127

            # The number of reservation impressions sold by Google in partner sales.
            GOOGLE_SOLD_RESERVATION_IMPRESSIONS = 126

            # Total impressions from the Google Ad Manager server, AdSense,
            # Ad Exchange, and yield group partners.
            IMPRESSIONS = 1

            # The number of filled pod requests (filled by partner or Google) in
            # partner sales.
            PARTNER_SALES_FILLED_POD_REQUESTS = 135

            # The percent of filled requests to total ad requests in
            # partner sales.
            PARTNER_SALES_FILL_RATE = 136

            # The percent of partner filled requests to total ad requests
            # in partner sales.
            PARTNER_SALES_PARTNER_MATCH_RATE = 137

            # The number of queries eligible for partner sales.
            PARTNER_SALES_QUERIES = 132

            # The number of partner unfilled impressions in partner sales.
            # If a pod request is not filled by partner but filled by Google, this
            # metric will still count 1.
            PARTNER_SALES_UNFILLED_IMPRESSIONS = 133

            # The number of partner unmatched queries in partner sales.
            # If an ad request is not filled by partner but filled by Google, this
            # metric will still count 1.
            PARTNER_SALES_UNMATCHED_QUERIES = 134

            # The number of code served sold by partner in partner sales.
            PARTNER_SOLD_CODE_SERVED = 125

            # The number of coviewed impressions sold by partner in partner sales.
            PARTNER_SOLD_COVIEWED_IMPRESSIONS = 124

            # The number of impressions sold by partner in partner sales.
            PARTNER_SOLD_IMPRESSIONS = 123

            # The total number of ad requests eligible for programmatic inventory,
            # including Programmatic Guaranteed, Preferred Deals, backfill, and open
            # auction.
            PROGRAMMATIC_ELIGIBLE_AD_REQUESTS = 177

            # The number of programmatic responses served divided by the number of
            # programmatic eligible ad requests. Includes Ad Exchange, Open Bidding,
            # and Preferred Deals.
            PROGRAMMATIC_MATCH_RATE = 178

            # Total number of ad responses served from programmatic demand sources.
            # Includes Ad Exchange, Open Bidding, and Preferred Deals.
            #
            # Differs from AD_EXCHANGE_RESPONSES_SERVED, which doesn't include Open
            # Bidding ad requests.
            PROGRAMMATIC_RESPONSES_SERVED = 176

            # The total number of times that an ad is served by the ad server including
            # dynamic allocation.
            RESPONSES_SERVED = 39

            # Total amount of CPM, CPC, and CPD revenue based on the number of units
            # served by the Google Ad Manager server, AdSense, Ad Exchange, and
            # third-party Mediation networks.
            REVENUE = 36

            # Total amount of revenue (excluding CPD) based on the number of units
            # served by the Google Ad Manager server, AdSense, Ad Exchange, and
            # third-party Mediation networks.
            REVENUE_WITHOUT_CPD = 4

            # The average latency in milliseconds across all server-side unwrapping
            # callout requests. There is no special handling for error or timeout
            # responses. This reflects the entire chain of a parent callout request,
            # which may result in multiple child callouts. This metric is not sliced by
            # child callout dimensions.
            SERVER_SIDE_UNWRAPPING_AVERAGE_LATENCY_MS = 434

            # The total number of server-side unwrapping callout requests.
            SERVER_SIDE_UNWRAPPING_CALLOUTS = 435

            # The total number of server-side unwrapping callouts that returned an
            # empty response. Timeouts are not considered empty responses.
            SERVER_SIDE_UNWRAPPING_EMPTY_RESPONSES = 436

            # The total number of server-side unwrapping callouts that returned an
            # error response. Timeouts and empty responses are not considered errors.
            SERVER_SIDE_UNWRAPPING_ERROR_RESPONSES = 437

            # The total number of successfully unwrapped, non-empty server-side
            # wrapping callouts. Successful unwrapping does not indicate that the
            # resulting creative was served.
            SERVER_SIDE_UNWRAPPING_SUCCESSFUL_RESPONSES = 438

            # The total number of server-side unwrapping callouts that timed out before
            # returning a response.
            SERVER_SIDE_UNWRAPPING_TIMEOUTS = 439

            # The total number of missed impressions due to the ad servers' inability
            # to find ads to serve including dynamic allocation.
            UNFILLED_IMPRESSIONS = 45

            # The total number of times that an ad is not returned by the ad server.
            UNMATCHED_AD_REQUESTS = 43

            # Number of times an Offerwall message was shown to users.
            USER_MESSAGES_OFFERWALL_MESSAGES_SHOWN = 121

            # The number of messages where the user gained an entitlement.
            USER_MESSAGES_OFFERWALL_SUCCESSFUL_ENGAGEMENTS = 122

            # The number of user interactions with a video, on average, such as pause,
            # full screen, mute, etc.
            VIDEO_INTERACTION_AVERAGE_INTERACTION_RATE = 92

            # The number of times a user collapses a video, either to its original size
            # or to a different size.
            VIDEO_INTERACTION_COLLAPSES = 93

            # The number of times a user expands a video.
            VIDEO_INTERACTION_EXPANDS = 95

            # The number of times ad clip played in full screen mode.
            VIDEO_INTERACTION_FULL_SCREENS = 96

            # The number of times video player was in mute state during play of ad
            # clip.
            VIDEO_INTERACTION_MUTES = 97

            # The number of times user paused ad clip.
            VIDEO_INTERACTION_PAUSES = 98

            # The number of times the user unpaused the video.
            VIDEO_INTERACTION_RESUMES = 99

            # The number of times a user rewinds the video.
            VIDEO_INTERACTION_REWINDS = 100

            # The number of times a user unmutes the video.
            VIDEO_INTERACTION_UNMUTES = 101

            # The number of times a skippable video is skipped.
            VIDEO_INTERACTION_VIDEO_SKIPS = 102

            # The number of total creative serves in video realtime reporting.
            VIDEO_REAL_TIME_CREATIVE_SERVES = 139

            # The number of errors of type 100 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_100_COUNT = 143

            # The number of errors of type 101 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_101_COUNT = 144

            # The number of errors of type 102 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_102_COUNT = 145

            # The number of errors of type 200 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_200_COUNT = 146

            # The number of errors of type 201 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_201_COUNT = 147

            # The number of errors of type 202 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_202_COUNT = 148

            # The number of errors of type 203 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_203_COUNT = 149

            # The number of errors of type 300 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_300_COUNT = 150

            # The number of errors of type 301 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_301_COUNT = 151

            # The number of errors of type 302 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_302_COUNT = 152

            # The number of errors of type 303 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_303_COUNT = 153

            # The number of errors of type 400 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_400_COUNT = 154

            # The number of errors of type 401 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_401_COUNT = 155

            # The number of errors of type 402 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_402_COUNT = 156

            # The number of errors of type 403 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_403_COUNT = 157

            # The number of errors of type 405 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_405_COUNT = 158

            # The number of errors of type 406 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_406_COUNT = 159

            # The number of errors of type 407 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_407_COUNT = 160

            # The number of errors of type 408 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_408_COUNT = 161

            # The number of errors of type 409 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_409_COUNT = 162

            # The number of errors of type 410 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_410_COUNT = 163

            # The number of errors of type 500 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_500_COUNT = 164

            # The number of errors of type 501 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_501_COUNT = 165

            # The number of errors of type 502 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_502_COUNT = 166

            # The number of errors of type 503 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_503_COUNT = 167

            # The number of errors of type 600 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_600_COUNT = 168

            # The number of errors of type 601 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_601_COUNT = 169

            # The number of errors of type 602 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_602_COUNT = 170

            # The number of errors of type 603 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_603_COUNT = 171

            # The number of errors of type 604 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_604_COUNT = 172

            # The number of errors of type 900 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_900_COUNT = 173

            # The number of errors of type 901 in video realtime reporting.
            VIDEO_REAL_TIME_ERROR_901_COUNT = 174

            # The number of total impressions in video realtime reporting.
            VIDEO_REAL_TIME_IMPRESSIONS = 138

            # The number of matched queries in video realtime reporting.
            VIDEO_REAL_TIME_MATCHED_QUERIES = 140

            # The number of all errors in video realtime reporting.
            VIDEO_REAL_TIME_TOTAL_ERROR_COUNT = 175

            # The number of total queries in video realtime reporting.
            VIDEO_REAL_TIME_TOTAL_QUERIES = 142

            # The number of unmatched queries in video realtime reporting.
            VIDEO_REAL_TIME_UNMATCHED_QUERIES = 141

            # Number of times that the publisher specified a video ad played
            # automatically.
            VIDEO_VIEWERSHIP_AUTO_PLAYS = 103

            # Average percentage of the video watched by users.
            VIDEO_VIEWERSHIP_AVERAGE_VIEW_RATE = 104

            # Average time(seconds) users watched the video.
            VIDEO_VIEWERSHIP_AVERAGE_VIEW_TIME = 105

            # Number of times that the publisher specified a video ad was clicked to
            # play.
            VIDEO_VIEWERSHIP_CLICK_TO_PLAYS = 106

            # The number of times the video played to completion.
            VIDEO_VIEWERSHIP_COMPLETES = 107

            # Percentage of times the video played to the end.
            VIDEO_VIEWERSHIP_COMPLETION_RATE = 108

            # The number of engaged views: ad is viewed to completion or for 30s,
            # whichever comes first.
            VIDEO_VIEWERSHIP_ENGAGED_VIEWS = 109

            # The number of times the video played to 25% of its length.
            VIDEO_VIEWERSHIP_FIRST_QUARTILES = 110

            # The number of times the video reached its midpoint during play.
            VIDEO_VIEWERSHIP_MIDPOINTS = 111

            # The number of times a skip button is shown in video.
            VIDEO_VIEWERSHIP_SKIP_BUTTONS_SHOWN = 112

            # The number of impressions where the video was played.
            VIDEO_VIEWERSHIP_STARTS = 113

            # The number of times the video played to 75% of its length.
            VIDEO_VIEWERSHIP_THIRD_QUARTILES = 114

            # The number of times an error occurred, such as a VAST redirect error, a
            # video playback error, or an invalid response error.
            VIDEO_VIEWERSHIP_TOTAL_ERROR_COUNT = 115

            # The percentage of video error count.
            VIDEO_VIEWERSHIP_TOTAL_ERROR_RATE = 94

            # Duration of the video creative.
            VIDEO_VIEWERSHIP_VIDEO_LENGTH = 116

            # View-through rate represented as a percentage.
            VIDEO_VIEWERSHIP_VIEW_THROUGH_RATE = 117

            # Number of winning bids received from Open Bidding buyers, even when the
            # winning bid is placed at the end of a mediation for mobile apps chain.
            YIELD_GROUP_AUCTIONS_WON = 80

            # Number of bids received from Open Bidding buyers, regardless of whether
            # the returned bid competes in an auction.
            YIELD_GROUP_BIDS = 81

            # Number of bids received from Open Bidding buyers that competed in
            # the auction.
            YIELD_GROUP_BIDS_IN_AUCTION = 82

            # Number of times a yield partner is asked to return bid to fill
            # a yield group request.
            YIELD_GROUP_CALLOUTS = 83

            # The estimated net rate for yield groups or individual
            # yield group partners.
            YIELD_GROUP_ESTIMATED_CPM = 88

            # Total net revenue earned by a yield group, based upon the yield group
            # estimated CPM and yield group impressions recorded.
            YIELD_GROUP_ESTIMATED_REVENUE = 87

            # Number of matched yield group requests where a yield partner delivered
            # their ad to publisher inventory.
            YIELD_GROUP_IMPRESSIONS = 85

            # Yield group Mediation fill rate indicating how often a network
            # fills an ad request.
            YIELD_GROUP_MEDIATION_FILL_RATE = 89

            # Total requests where a Mediation chain was served.
            YIELD_GROUP_MEDIATION_MATCHED_QUERIES = 86

            # The number of mediation chain passback across all channels.
            YIELD_GROUP_MEDIATION_PASSBACKS = 118

            # Revenue per thousand impressions based on data collected by Ad Manager
            # from third-party ad network reports.
            YIELD_GROUP_MEDIATION_THIRD_PARTY_ECPM = 90

            # Number of times a yield group buyer successfully returned a bid in
            # response to a yield group callout.
            YIELD_GROUP_SUCCESSFUL_RESPONSES = 84
          end

          # Possible metric value types to add.
          module MetricValueType
            # The values for the primary date_range.
            PRIMARY = 0

            # Each metrics' percent of the total for the primary date_range.
            PRIMARY_PERCENT_OF_TOTAL = 1

            # The values for the comparison_date_range.
            COMPARISON = 2

            # Each metrics' percent of the total for the comparison_date_range.
            COMPARISON_PERCENT_OF_TOTAL = 3

            # The absolute change between the primary and comparison date ranges.
            ABSOLUTE_CHANGE = 4

            # The relative change between the primary and comparison date ranges.
            RELATIVE_CHANGE = 5
          end

          # Supported report types.
          module ReportType
            # Default value. This value is unused.
            REPORT_TYPE_UNSPECIFIED = 0

            # Historical.
            HISTORICAL = 1
          end

          # The visibility of a report.
          module Visibility
            # Default value. Reports with hidden visibility will not appear in the Ad
            # Manager UI.
            HIDDEN = 0

            # Reports with draft visibility will appear in the Ad Manager UI only if
            # the user has configured the UI to show them.
            DRAFT = 1

            # Reports with saved visibility will appear in the Ad Manager UI by
            # default.
            SAVED = 2
          end

          # The source to determine the time zone for the report.
          module TimeZoneSource
            # Unspecified default value.
            TIME_ZONE_SOURCE_UNSPECIFIED = 0

            # Use the publisher's time zone in network settings.
            PUBLISHER = 1

            # Use the time zone of the ad exchange.
            # Only compatible with Ad Exchange dimensions and metrics.
            AD_EXCHANGE = 2

            # Use UTC time zone.
            # Only compatible with Revenue Verification reports.
            UTC = 3

            # Use the time zone provided in the ReportDefinition.time_zone field.
            # Has limited dimension and metric compatibility compared with PUBLISHER,
            # and reports may take longer to run since the dates are dynamically
            # calculated at request time.
            PROVIDED = 4
          end
        end

        # The definition of how a report should be run.
        # @!attribute [rw] dimensions
        #   @return [::Array<::Google::Ads::AdManager::V1::Report::Dimension>]
        #     Required. The list of dimensions to report on. If empty, the report will
        #     have no dimensions, and any metrics will be totals.
        # @!attribute [rw] metrics
        #   @return [::Array<::Google::Ads::AdManager::V1::Report::Metric>]
        #     Required. The list of metrics to report on. If empty, the report will have
        #     no metrics.
        # @!attribute [rw] filters
        #   @return [::Array<::Google::Ads::AdManager::V1::Report::Filter>]
        #     Optional. The filters for this report.
        # @!attribute [rw] time_zone_source
        #   @return [::Google::Ads::AdManager::V1::Report::TimeZoneSource]
        #     Optional. Where to get the time zone for this report. Defaults to using the
        #     network time zone setting (PUBLISHER). If source is PROVIDED, the time_zone
        #     field in the report definition must also be provided with the desired time
        #     zone.
        # @!attribute [rw] time_zone
        #   @return [::String]
        #     Optional. If time_zone_source is PROVIDED, this is the time zone to use for
        #     this report. Leave empty for any other time zone source. Time zone in IANA
        #     format (e.g. "America/New_York").
        # @!attribute [rw] currency_code
        #   @return [::String]
        #     Optional. The ISO 4217 currency code for this report. Defaults to publisher
        #     currency code if not specified.
        # @!attribute [rw] date_range
        #   @return [::Google::Ads::AdManager::V1::Report::DateRange]
        #     Required. The primary date range of this report.
        # @!attribute [rw] comparison_date_range
        #   @return [::Google::Ads::AdManager::V1::Report::DateRange]
        #     Optional. The comparison date range of this report. If unspecified, the
        #     report will not have any comparison metrics.
        # @!attribute [rw] custom_dimension_key_ids
        #   @return [::Array<::Integer>]
        #     Optional. Custom Dimension keys that represent CUSTOM_DIMENSION_*
        #     dimensions. The index of this repeated field corresponds to the index on
        #     each dimension. For example, custom_dimension_key_ids[0] describes
        #     CUSTOM_DIMENSION_0_VALUE_ID and CUSTOM_DIMENSION_0_VALUE.
        # @!attribute [rw] line_item_custom_field_ids
        #   @return [::Array<::Integer>]
        #     Optional. Custom field IDs that represent LINE_ITEM_CUSTOM_FIELD_*
        #     dimensions. The index of this repeated field corresponds to the index on
        #     each dimension. For example, line_item_custom_field_ids[0] describes
        #     LINE_ITEM_CUSTOM_FIELD_0_OPTION_ID and LINE_ITEM_CUSTOM_FIELD_0_VALUE.
        # @!attribute [rw] order_custom_field_ids
        #   @return [::Array<::Integer>]
        #     Optional. Custom field IDs that represent ORDER_CUSTOM_FIELD_*
        #     dimensions. The index of this repeated field corresponds to the index on
        #     each dimension. For example, order_custom_field_ids[0] describes
        #     ORDER_CUSTOM_FIELD_0_OPTION_ID and ORDER_CUSTOM_FIELD_0_VALUE.
        # @!attribute [rw] creative_custom_field_ids
        #   @return [::Array<::Integer>]
        #     Optional. Custom field IDs that represent CREATIVE_CUSTOM_FIELD_*
        #     dimensions. The index of this repeated field corresponds to the index on
        #     each dimension. For example, creative_custom_field_ids[0] describes
        #     CREATIVE_CUSTOM_FIELD_0_OPTION_ID and CREATIVE_CUSTOM_FIELD_0_VALUE.
        # @!attribute [rw] report_type
        #   @return [::Google::Ads::AdManager::V1::Report::ReportType]
        #     Required. The type of this report.
        # @!attribute [rw] time_period_column
        #   @return [::Google::Ads::AdManager::V1::Report::TimePeriodColumn]
        #     Optional. Include a time period column to introduce comparison columns in
        #     the report for each generated period. For example, set to  "QUARTERS" here
        #     to have a column for each quarter present in the primary date range. If
        #     "PREVIOUS PERIOD" is specified in comparison_date_range, then each quarter
        #     column will also include comparison values for its relative previous
        #     quarter.
        # @!attribute [rw] flags
        #   @return [::Array<::Google::Ads::AdManager::V1::Report::Flag>]
        #     Optional. List of flags for this report. Used to flag rows in a result set
        #     based on a set of defined filters.
        # @!attribute [rw] sorts
        #   @return [::Array<::Google::Ads::AdManager::V1::Report::Sort>]
        #     Optional. Default sorts to apply to this report.
        class ReportDefinition
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # The options for a scheduled report.
        # @!attribute [rw] schedule
        #   @return [::Google::Ads::AdManager::V1::Schedule]
        #     Information pertaining to schedule itself.
        # @!attribute [rw] delivery_condition
        #   @return [::Google::Ads::AdManager::V1::ScheduleOptions::DeliveryCondition]
        #     Option for when to deliver the scheduled report.
        # @!attribute [rw] flags
        #   @return [::Array<::Google::Ads::AdManager::V1::Report::Flag>]
        #     Optional. The flags evaluated when ReportDeliveryOption.WHEN_FLAG_PRESENT
        #     is specified.
        class ScheduleOptions
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods

          # Condition for when to email the scheduled report.
          module DeliveryCondition
            # Never deliver report.
            NEVER = 0

            # Always deliver report.
            ALWAYS = 1

            # Deliver report when flag's conditions are met.
            WHEN_FLAG_CONDITIONS_MET = 2
          end
        end

        # The schedule for the report
        # @!attribute [rw] weekly_schedule
        #   @return [::Google::Ads::AdManager::V1::Schedule::WeeklySchedule]
        #     Days of week to schedule report run.
        #
        #     Note: The following fields are mutually exclusive: `weekly_schedule`, `monthly_schedule`. If a field in that set is populated, all other fields in the set will automatically be cleared.
        # @!attribute [rw] monthly_schedule
        #   @return [::Google::Ads::AdManager::V1::Schedule::MonthlySchedule]
        #     Days of month to schedule report run.
        #
        #     Note: The following fields are mutually exclusive: `monthly_schedule`, `weekly_schedule`. If a field in that set is populated, all other fields in the set will automatically be cleared.
        # @!attribute [rw] start_date
        #   @return [::Google::Type::Date]
        #     Date for the first run of the report.
        # @!attribute [rw] end_date
        #   @return [::Google::Type::Date]
        #     Date for the final run of the report.
        # @!attribute [rw] frequency
        #   @return [::Google::Ads::AdManager::V1::Schedule::Frequency]
        #     Frequency to run report.
        # @!attribute [rw] start_time
        #   @return [::Google::Type::TimeOfDay]
        #     Indicates start time for schedule to run
        #     Will use the time_zone from `ReportDefinition`. Defaults
        #     to the publisher's time zone if not specified.
        #
        #     For HOURLY, TWO_TIMES_DAILY, THREE_TIMES_DAILY, or FOUR_TIMES_DAILY, this
        #     will be the time of day that the first report will run on the first day.
        #     For example, if the start time is 2:00 PM, and the frequency is
        #     THREE_TIMES_DAILY, the first day will have reports scheduled at 2:00 PM,
        #     10:00 PM. Each subsequent day will have reports scheduled at 6:00 AM,
        #     2:00 PM, 10:00 PM.
        class Schedule
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods

          # Days of week to schedule report run.
          # @!attribute [rw] weekly_scheduled_days
          #   @return [::Array<::Google::Type::DayOfWeek>]
          #     Specifies days of the week on which to run report.
          class WeeklySchedule
            include ::Google::Protobuf::MessageExts
            extend ::Google::Protobuf::MessageExts::ClassMethods
          end

          # Days of Month to schedule report run.
          # @!attribute [rw] monthly_scheduled_days
          #   @return [::Array<::Integer>]
          #     Specifies days of the month to run report. Range is from 1-31.
          #     Will ignore days that are not valid for the given month.
          class MonthlySchedule
            include ::Google::Protobuf::MessageExts
            extend ::Google::Protobuf::MessageExts::ClassMethods
          end

          # Frequency to run report.
          module Frequency
            # No Frequency specified.
            FREQUENCY_UNSPECIFIED = 0

            # Schedule report to run every hour.
            HOURLY = 1

            # Schedule report to run twice a day (every 12 hours).
            TWO_TIMES_DAILY = 2

            # Schedule report to run three times a day (every 8 hours).
            THREE_TIMES_DAILY = 3

            # Schedule report to run four times a day (every 6 hours).
            FOUR_TIMES_DAILY = 4

            # Schedule report to run on a daily basis.
            DAILY = 5

            # Schedule report to run on a weekly basis.
            WEEKLY = 6

            # Schedule report to run on a monthly basis.
            MONTHLY = 7
          end
        end
      end
    end
  end
end
