"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.ads.google_ads.v6.proto.common.bidding_pb2
import google.ads.google_ads.v6.proto.enums.bidding_strategy_status_pb2
import google.ads.google_ads.v6.proto.enums.bidding_strategy_type_pb2
import google.protobuf.descriptor
import google.protobuf.message
import typing
import typing_extensions

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

class BiddingStrategy(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    RESOURCE_NAME_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    EFFECTIVE_CURRENCY_CODE_FIELD_NUMBER: builtins.int
    CAMPAIGN_COUNT_FIELD_NUMBER: builtins.int
    NON_REMOVED_CAMPAIGN_COUNT_FIELD_NUMBER: builtins.int
    ENHANCED_CPC_FIELD_NUMBER: builtins.int
    MAXIMIZE_CONVERSION_VALUE_FIELD_NUMBER: builtins.int
    MAXIMIZE_CONVERSIONS_FIELD_NUMBER: builtins.int
    TARGET_CPA_FIELD_NUMBER: builtins.int
    TARGET_IMPRESSION_SHARE_FIELD_NUMBER: builtins.int
    TARGET_ROAS_FIELD_NUMBER: builtins.int
    TARGET_SPEND_FIELD_NUMBER: builtins.int
    resource_name: typing.Text = ...
    id: builtins.int = ...
    name: typing.Text = ...
    status: google.ads.google_ads.v6.proto.enums.bidding_strategy_status_pb2.BiddingStrategyStatusEnum.BiddingStrategyStatus.V = (
        ...
    )
    type: google.ads.google_ads.v6.proto.enums.bidding_strategy_type_pb2.BiddingStrategyTypeEnum.BiddingStrategyType.V = (
        ...
    )
    effective_currency_code: typing.Text = ...
    campaign_count: builtins.int = ...
    non_removed_campaign_count: builtins.int = ...
    @property
    def enhanced_cpc(
        self,
    ) -> google.ads.google_ads.v6.proto.common.bidding_pb2.EnhancedCpc: ...
    @property
    def maximize_conversion_value(
        self,
    ) -> google.ads.google_ads.v6.proto.common.bidding_pb2.MaximizeConversionValue: ...
    @property
    def maximize_conversions(
        self,
    ) -> google.ads.google_ads.v6.proto.common.bidding_pb2.MaximizeConversions: ...
    @property
    def target_cpa(
        self,
    ) -> google.ads.google_ads.v6.proto.common.bidding_pb2.TargetCpa: ...
    @property
    def target_impression_share(
        self,
    ) -> google.ads.google_ads.v6.proto.common.bidding_pb2.TargetImpressionShare: ...
    @property
    def target_roas(
        self,
    ) -> google.ads.google_ads.v6.proto.common.bidding_pb2.TargetRoas: ...
    @property
    def target_spend(
        self,
    ) -> google.ads.google_ads.v6.proto.common.bidding_pb2.TargetSpend: ...
    def __init__(
        self,
        *,
        resource_name: typing.Text = ...,
        id: builtins.int = ...,
        name: typing.Text = ...,
        status: google.ads.google_ads.v6.proto.enums.bidding_strategy_status_pb2.BiddingStrategyStatusEnum.BiddingStrategyStatus.V = ...,
        type: google.ads.google_ads.v6.proto.enums.bidding_strategy_type_pb2.BiddingStrategyTypeEnum.BiddingStrategyType.V = ...,
        effective_currency_code: typing.Text = ...,
        campaign_count: builtins.int = ...,
        non_removed_campaign_count: builtins.int = ...,
        enhanced_cpc: typing.Optional[
            google.ads.google_ads.v6.proto.common.bidding_pb2.EnhancedCpc
        ] = ...,
        maximize_conversion_value: typing.Optional[
            google.ads.google_ads.v6.proto.common.bidding_pb2.MaximizeConversionValue
        ] = ...,
        maximize_conversions: typing.Optional[
            google.ads.google_ads.v6.proto.common.bidding_pb2.MaximizeConversions
        ] = ...,
        target_cpa: typing.Optional[
            google.ads.google_ads.v6.proto.common.bidding_pb2.TargetCpa
        ] = ...,
        target_impression_share: typing.Optional[
            google.ads.google_ads.v6.proto.common.bidding_pb2.TargetImpressionShare
        ] = ...,
        target_roas: typing.Optional[
            google.ads.google_ads.v6.proto.common.bidding_pb2.TargetRoas
        ] = ...,
        target_spend: typing.Optional[
            google.ads.google_ads.v6.proto.common.bidding_pb2.TargetSpend
        ] = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions.Literal[
            "_campaign_count",
            b"_campaign_count",
            "_effective_currency_code",
            b"_effective_currency_code",
            "_id",
            b"_id",
            "_name",
            b"_name",
            "_non_removed_campaign_count",
            b"_non_removed_campaign_count",
            "campaign_count",
            b"campaign_count",
            "effective_currency_code",
            b"effective_currency_code",
            "enhanced_cpc",
            b"enhanced_cpc",
            "id",
            b"id",
            "maximize_conversion_value",
            b"maximize_conversion_value",
            "maximize_conversions",
            b"maximize_conversions",
            "name",
            b"name",
            "non_removed_campaign_count",
            b"non_removed_campaign_count",
            "scheme",
            b"scheme",
            "target_cpa",
            b"target_cpa",
            "target_impression_share",
            b"target_impression_share",
            "target_roas",
            b"target_roas",
            "target_spend",
            b"target_spend",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "_campaign_count",
            b"_campaign_count",
            "_effective_currency_code",
            b"_effective_currency_code",
            "_id",
            b"_id",
            "_name",
            b"_name",
            "_non_removed_campaign_count",
            b"_non_removed_campaign_count",
            "campaign_count",
            b"campaign_count",
            "effective_currency_code",
            b"effective_currency_code",
            "enhanced_cpc",
            b"enhanced_cpc",
            "id",
            b"id",
            "maximize_conversion_value",
            b"maximize_conversion_value",
            "maximize_conversions",
            b"maximize_conversions",
            "name",
            b"name",
            "non_removed_campaign_count",
            b"non_removed_campaign_count",
            "resource_name",
            b"resource_name",
            "scheme",
            b"scheme",
            "status",
            b"status",
            "target_cpa",
            b"target_cpa",
            "target_impression_share",
            b"target_impression_share",
            "target_roas",
            b"target_roas",
            "target_spend",
            b"target_spend",
            "type",
            b"type",
        ],
    ) -> None: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal["_campaign_count", b"_campaign_count"],
    ) -> typing_extensions.Literal["campaign_count"]: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal[
            "_effective_currency_code", b"_effective_currency_code"
        ],
    ) -> typing_extensions.Literal["effective_currency_code"]: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing_extensions.Literal["_id", b"_id"]
    ) -> typing_extensions.Literal["id"]: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing_extensions.Literal["_name", b"_name"]
    ) -> typing_extensions.Literal["name"]: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal[
            "_non_removed_campaign_count", b"_non_removed_campaign_count"
        ],
    ) -> typing_extensions.Literal["non_removed_campaign_count"]: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing_extensions.Literal["scheme", b"scheme"]
    ) -> typing_extensions.Literal[
        "enhanced_cpc",
        "maximize_conversion_value",
        "maximize_conversions",
        "target_cpa",
        "target_impression_share",
        "target_roas",
        "target_spend",
    ]: ...

global___BiddingStrategy = BiddingStrategy
