# frozen_string_literal: true

# Copyright 2021 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 GoogleAds
      module V7
        module Resources
          # A campaign criterion.
          # @!attribute [rw] resource_name
          #   @return [::String]
          #     Immutable. The resource name of the campaign criterion.
          #     Campaign criterion resource names have the form:
          #
          #     `customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id}`
          # @!attribute [rw] campaign
          #   @return [::String]
          #     Immutable. The campaign to which the criterion belongs.
          # @!attribute [r] criterion_id
          #   @return [::Integer]
          #     Output only. The ID of the criterion.
          #
          #     This field is ignored during mutate.
          # @!attribute [r] display_name
          #   @return [::String]
          #     Output only. The display name of the criterion.
          #
          #     This field is ignored for mutates.
          # @!attribute [rw] bid_modifier
          #   @return [::Float]
          #     The modifier for the bids when the criterion matches. The modifier must be
          #     in the range: 0.1 - 10.0. Most targetable criteria types support modifiers.
          #     Use 0 to opt out of a Device type.
          # @!attribute [rw] negative
          #   @return [::Boolean]
          #     Immutable. Whether to target (`false`) or exclude (`true`) the criterion.
          # @!attribute [r] type
          #   @return [::Google::Ads::GoogleAds::V7::Enums::CriterionTypeEnum::CriterionType]
          #     Output only. The type of the criterion.
          # @!attribute [rw] status
          #   @return [::Google::Ads::GoogleAds::V7::Enums::CampaignCriterionStatusEnum::CampaignCriterionStatus]
          #     The status of the criterion.
          # @!attribute [rw] keyword
          #   @return [::Google::Ads::GoogleAds::V7::Common::KeywordInfo]
          #     Immutable. Keyword.
          # @!attribute [rw] placement
          #   @return [::Google::Ads::GoogleAds::V7::Common::PlacementInfo]
          #     Immutable. Placement.
          # @!attribute [rw] mobile_app_category
          #   @return [::Google::Ads::GoogleAds::V7::Common::MobileAppCategoryInfo]
          #     Immutable. Mobile app category.
          # @!attribute [rw] mobile_application
          #   @return [::Google::Ads::GoogleAds::V7::Common::MobileApplicationInfo]
          #     Immutable. Mobile application.
          # @!attribute [rw] location
          #   @return [::Google::Ads::GoogleAds::V7::Common::LocationInfo]
          #     Immutable. Location.
          # @!attribute [rw] device
          #   @return [::Google::Ads::GoogleAds::V7::Common::DeviceInfo]
          #     Immutable. Device.
          # @!attribute [rw] ad_schedule
          #   @return [::Google::Ads::GoogleAds::V7::Common::AdScheduleInfo]
          #     Immutable. Ad Schedule.
          # @!attribute [rw] age_range
          #   @return [::Google::Ads::GoogleAds::V7::Common::AgeRangeInfo]
          #     Immutable. Age range.
          # @!attribute [rw] gender
          #   @return [::Google::Ads::GoogleAds::V7::Common::GenderInfo]
          #     Immutable. Gender.
          # @!attribute [rw] income_range
          #   @return [::Google::Ads::GoogleAds::V7::Common::IncomeRangeInfo]
          #     Immutable. Income range.
          # @!attribute [rw] parental_status
          #   @return [::Google::Ads::GoogleAds::V7::Common::ParentalStatusInfo]
          #     Immutable. Parental status.
          # @!attribute [rw] user_list
          #   @return [::Google::Ads::GoogleAds::V7::Common::UserListInfo]
          #     Immutable. User List.
          # @!attribute [rw] youtube_video
          #   @return [::Google::Ads::GoogleAds::V7::Common::YouTubeVideoInfo]
          #     Immutable. YouTube Video.
          # @!attribute [rw] youtube_channel
          #   @return [::Google::Ads::GoogleAds::V7::Common::YouTubeChannelInfo]
          #     Immutable. YouTube Channel.
          # @!attribute [rw] proximity
          #   @return [::Google::Ads::GoogleAds::V7::Common::ProximityInfo]
          #     Immutable. Proximity.
          # @!attribute [rw] topic
          #   @return [::Google::Ads::GoogleAds::V7::Common::TopicInfo]
          #     Immutable. Topic.
          # @!attribute [rw] listing_scope
          #   @return [::Google::Ads::GoogleAds::V7::Common::ListingScopeInfo]
          #     Immutable. Listing scope.
          # @!attribute [rw] language
          #   @return [::Google::Ads::GoogleAds::V7::Common::LanguageInfo]
          #     Immutable. Language.
          # @!attribute [rw] ip_block
          #   @return [::Google::Ads::GoogleAds::V7::Common::IpBlockInfo]
          #     Immutable. IpBlock.
          # @!attribute [rw] content_label
          #   @return [::Google::Ads::GoogleAds::V7::Common::ContentLabelInfo]
          #     Immutable. ContentLabel.
          # @!attribute [rw] carrier
          #   @return [::Google::Ads::GoogleAds::V7::Common::CarrierInfo]
          #     Immutable. Carrier.
          # @!attribute [rw] user_interest
          #   @return [::Google::Ads::GoogleAds::V7::Common::UserInterestInfo]
          #     Immutable. User Interest.
          # @!attribute [rw] webpage
          #   @return [::Google::Ads::GoogleAds::V7::Common::WebpageInfo]
          #     Immutable. Webpage.
          # @!attribute [rw] operating_system_version
          #   @return [::Google::Ads::GoogleAds::V7::Common::OperatingSystemVersionInfo]
          #     Immutable. Operating system version.
          # @!attribute [rw] mobile_device
          #   @return [::Google::Ads::GoogleAds::V7::Common::MobileDeviceInfo]
          #     Immutable. Mobile Device.
          # @!attribute [rw] location_group
          #   @return [::Google::Ads::GoogleAds::V7::Common::LocationGroupInfo]
          #     Immutable. Location Group
          # @!attribute [rw] custom_affinity
          #   @return [::Google::Ads::GoogleAds::V7::Common::CustomAffinityInfo]
          #     Immutable. Custom Affinity.
          # @!attribute [rw] custom_audience
          #   @return [::Google::Ads::GoogleAds::V7::Common::CustomAudienceInfo]
          #     Immutable. Custom Audience
          # @!attribute [rw] combined_audience
          #   @return [::Google::Ads::GoogleAds::V7::Common::CombinedAudienceInfo]
          #     Immutable. Combined Audience.
          class CampaignCriterion
            include ::Google::Protobuf::MessageExts
            extend ::Google::Protobuf::MessageExts::ClassMethods
          end
        end
      end
    end
  end
end
