"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.ads.google_ads.v5.proto.common.criteria_pb2
import google.ads.google_ads.v5.proto.enums.campaign_criterion_status_pb2
import google.ads.google_ads.v5.proto.enums.criterion_type_pb2
import google.protobuf.descriptor
import google.protobuf.message
import typing
import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor = ...

class CampaignCriterion(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    RESOURCE_NAME_FIELD_NUMBER: builtins.int
    CAMPAIGN_FIELD_NUMBER: builtins.int
    CRITERION_ID_FIELD_NUMBER: builtins.int
    BID_MODIFIER_FIELD_NUMBER: builtins.int
    NEGATIVE_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    KEYWORD_FIELD_NUMBER: builtins.int
    PLACEMENT_FIELD_NUMBER: builtins.int
    MOBILE_APP_CATEGORY_FIELD_NUMBER: builtins.int
    MOBILE_APPLICATION_FIELD_NUMBER: builtins.int
    LOCATION_FIELD_NUMBER: builtins.int
    DEVICE_FIELD_NUMBER: builtins.int
    AD_SCHEDULE_FIELD_NUMBER: builtins.int
    AGE_RANGE_FIELD_NUMBER: builtins.int
    GENDER_FIELD_NUMBER: builtins.int
    INCOME_RANGE_FIELD_NUMBER: builtins.int
    PARENTAL_STATUS_FIELD_NUMBER: builtins.int
    USER_LIST_FIELD_NUMBER: builtins.int
    YOUTUBE_VIDEO_FIELD_NUMBER: builtins.int
    YOUTUBE_CHANNEL_FIELD_NUMBER: builtins.int
    PROXIMITY_FIELD_NUMBER: builtins.int
    TOPIC_FIELD_NUMBER: builtins.int
    LISTING_SCOPE_FIELD_NUMBER: builtins.int
    LANGUAGE_FIELD_NUMBER: builtins.int
    IP_BLOCK_FIELD_NUMBER: builtins.int
    CONTENT_LABEL_FIELD_NUMBER: builtins.int
    CARRIER_FIELD_NUMBER: builtins.int
    USER_INTEREST_FIELD_NUMBER: builtins.int
    WEBPAGE_FIELD_NUMBER: builtins.int
    OPERATING_SYSTEM_VERSION_FIELD_NUMBER: builtins.int
    MOBILE_DEVICE_FIELD_NUMBER: builtins.int
    LOCATION_GROUP_FIELD_NUMBER: builtins.int
    CUSTOM_AFFINITY_FIELD_NUMBER: builtins.int
    resource_name: typing.Text = ...
    campaign: typing.Text = ...
    criterion_id: builtins.int = ...
    bid_modifier: builtins.float = ...
    negative: builtins.bool = ...
    type: google.ads.google_ads.v5.proto.enums.criterion_type_pb2.CriterionTypeEnum.CriterionType.V = (
        ...
    )
    status: google.ads.google_ads.v5.proto.enums.campaign_criterion_status_pb2.CampaignCriterionStatusEnum.CampaignCriterionStatus.V = (
        ...
    )
    @property
    def keyword(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.KeywordInfo: ...
    @property
    def placement(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.PlacementInfo: ...
    @property
    def mobile_app_category(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.MobileAppCategoryInfo: ...
    @property
    def mobile_application(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.MobileApplicationInfo: ...
    @property
    def location(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.LocationInfo: ...
    @property
    def device(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.DeviceInfo: ...
    @property
    def ad_schedule(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.AdScheduleInfo: ...
    @property
    def age_range(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.AgeRangeInfo: ...
    @property
    def gender(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.GenderInfo: ...
    @property
    def income_range(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.IncomeRangeInfo: ...
    @property
    def parental_status(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.ParentalStatusInfo: ...
    @property
    def user_list(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.UserListInfo: ...
    @property
    def youtube_video(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.YouTubeVideoInfo: ...
    @property
    def youtube_channel(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.YouTubeChannelInfo: ...
    @property
    def proximity(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.ProximityInfo: ...
    @property
    def topic(self) -> google.ads.google_ads.v5.proto.common.criteria_pb2.TopicInfo: ...
    @property
    def listing_scope(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.ListingScopeInfo: ...
    @property
    def language(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.LanguageInfo: ...
    @property
    def ip_block(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.IpBlockInfo: ...
    @property
    def content_label(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.ContentLabelInfo: ...
    @property
    def carrier(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.CarrierInfo: ...
    @property
    def user_interest(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.UserInterestInfo: ...
    @property
    def webpage(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.WebpageInfo: ...
    @property
    def operating_system_version(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.OperatingSystemVersionInfo: ...
    @property
    def mobile_device(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.MobileDeviceInfo: ...
    @property
    def location_group(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.LocationGroupInfo: ...
    @property
    def custom_affinity(
        self,
    ) -> google.ads.google_ads.v5.proto.common.criteria_pb2.CustomAffinityInfo: ...
    def __init__(
        self,
        *,
        resource_name: typing.Text = ...,
        campaign: typing.Text = ...,
        criterion_id: builtins.int = ...,
        bid_modifier: builtins.float = ...,
        negative: builtins.bool = ...,
        type: google.ads.google_ads.v5.proto.enums.criterion_type_pb2.CriterionTypeEnum.CriterionType.V = ...,
        status: google.ads.google_ads.v5.proto.enums.campaign_criterion_status_pb2.CampaignCriterionStatusEnum.CampaignCriterionStatus.V = ...,
        keyword: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.KeywordInfo
        ] = ...,
        placement: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.PlacementInfo
        ] = ...,
        mobile_app_category: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.MobileAppCategoryInfo
        ] = ...,
        mobile_application: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.MobileApplicationInfo
        ] = ...,
        location: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.LocationInfo
        ] = ...,
        device: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.DeviceInfo
        ] = ...,
        ad_schedule: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.AdScheduleInfo
        ] = ...,
        age_range: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.AgeRangeInfo
        ] = ...,
        gender: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.GenderInfo
        ] = ...,
        income_range: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.IncomeRangeInfo
        ] = ...,
        parental_status: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.ParentalStatusInfo
        ] = ...,
        user_list: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.UserListInfo
        ] = ...,
        youtube_video: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.YouTubeVideoInfo
        ] = ...,
        youtube_channel: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.YouTubeChannelInfo
        ] = ...,
        proximity: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.ProximityInfo
        ] = ...,
        topic: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.TopicInfo
        ] = ...,
        listing_scope: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.ListingScopeInfo
        ] = ...,
        language: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.LanguageInfo
        ] = ...,
        ip_block: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.IpBlockInfo
        ] = ...,
        content_label: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.ContentLabelInfo
        ] = ...,
        carrier: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.CarrierInfo
        ] = ...,
        user_interest: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.UserInterestInfo
        ] = ...,
        webpage: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.WebpageInfo
        ] = ...,
        operating_system_version: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.OperatingSystemVersionInfo
        ] = ...,
        mobile_device: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.MobileDeviceInfo
        ] = ...,
        location_group: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.LocationGroupInfo
        ] = ...,
        custom_affinity: typing.Optional[
            google.ads.google_ads.v5.proto.common.criteria_pb2.CustomAffinityInfo
        ] = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions.Literal[
            "_bid_modifier",
            b"_bid_modifier",
            "_campaign",
            b"_campaign",
            "_criterion_id",
            b"_criterion_id",
            "_negative",
            b"_negative",
            "ad_schedule",
            b"ad_schedule",
            "age_range",
            b"age_range",
            "bid_modifier",
            b"bid_modifier",
            "campaign",
            b"campaign",
            "carrier",
            b"carrier",
            "content_label",
            b"content_label",
            "criterion",
            b"criterion",
            "criterion_id",
            b"criterion_id",
            "custom_affinity",
            b"custom_affinity",
            "device",
            b"device",
            "gender",
            b"gender",
            "income_range",
            b"income_range",
            "ip_block",
            b"ip_block",
            "keyword",
            b"keyword",
            "language",
            b"language",
            "listing_scope",
            b"listing_scope",
            "location",
            b"location",
            "location_group",
            b"location_group",
            "mobile_app_category",
            b"mobile_app_category",
            "mobile_application",
            b"mobile_application",
            "mobile_device",
            b"mobile_device",
            "negative",
            b"negative",
            "operating_system_version",
            b"operating_system_version",
            "parental_status",
            b"parental_status",
            "placement",
            b"placement",
            "proximity",
            b"proximity",
            "topic",
            b"topic",
            "user_interest",
            b"user_interest",
            "user_list",
            b"user_list",
            "webpage",
            b"webpage",
            "youtube_channel",
            b"youtube_channel",
            "youtube_video",
            b"youtube_video",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "_bid_modifier",
            b"_bid_modifier",
            "_campaign",
            b"_campaign",
            "_criterion_id",
            b"_criterion_id",
            "_negative",
            b"_negative",
            "ad_schedule",
            b"ad_schedule",
            "age_range",
            b"age_range",
            "bid_modifier",
            b"bid_modifier",
            "campaign",
            b"campaign",
            "carrier",
            b"carrier",
            "content_label",
            b"content_label",
            "criterion",
            b"criterion",
            "criterion_id",
            b"criterion_id",
            "custom_affinity",
            b"custom_affinity",
            "device",
            b"device",
            "gender",
            b"gender",
            "income_range",
            b"income_range",
            "ip_block",
            b"ip_block",
            "keyword",
            b"keyword",
            "language",
            b"language",
            "listing_scope",
            b"listing_scope",
            "location",
            b"location",
            "location_group",
            b"location_group",
            "mobile_app_category",
            b"mobile_app_category",
            "mobile_application",
            b"mobile_application",
            "mobile_device",
            b"mobile_device",
            "negative",
            b"negative",
            "operating_system_version",
            b"operating_system_version",
            "parental_status",
            b"parental_status",
            "placement",
            b"placement",
            "proximity",
            b"proximity",
            "resource_name",
            b"resource_name",
            "status",
            b"status",
            "topic",
            b"topic",
            "type",
            b"type",
            "user_interest",
            b"user_interest",
            "user_list",
            b"user_list",
            "webpage",
            b"webpage",
            "youtube_channel",
            b"youtube_channel",
            "youtube_video",
            b"youtube_video",
        ],
    ) -> None: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing_extensions.Literal["_bid_modifier", b"_bid_modifier"]
    ) -> typing_extensions.Literal["bid_modifier"]: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing_extensions.Literal["_campaign", b"_campaign"]
    ) -> typing_extensions.Literal["campaign"]: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing_extensions.Literal["_criterion_id", b"_criterion_id"]
    ) -> typing_extensions.Literal["criterion_id"]: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing_extensions.Literal["_negative", b"_negative"]
    ) -> typing_extensions.Literal["negative"]: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing_extensions.Literal["criterion", b"criterion"]
    ) -> typing_extensions.Literal[
        "keyword",
        "placement",
        "mobile_app_category",
        "mobile_application",
        "location",
        "device",
        "ad_schedule",
        "age_range",
        "gender",
        "income_range",
        "parental_status",
        "user_list",
        "youtube_video",
        "youtube_channel",
        "proximity",
        "topic",
        "listing_scope",
        "language",
        "ip_block",
        "content_label",
        "carrier",
        "user_interest",
        "webpage",
        "operating_system_version",
        "mobile_device",
        "location_group",
        "custom_affinity",
    ]: ...

global___CampaignCriterion = CampaignCriterion
