# @generated by mypy-protobuf.  Do not edit manually!
import sys
from typing import (
    Iterable as typing___Iterable,
    Optional as typing___Optional,
    Text as typing___Text,
)

from google.protobuf.descriptor import (
    Descriptor as google___protobuf___descriptor___Descriptor,
    FileDescriptor as google___protobuf___descriptor___FileDescriptor,
)
from google.protobuf.internal.containers import (
    RepeatedCompositeFieldContainer as google___protobuf___internal___containers___RepeatedCompositeFieldContainer,
)
from google.protobuf.message import Message as google___protobuf___message___Message
from google.protobuf.wrappers_pb2 import (
    Int64Value as google___protobuf___wrappers_pb2___Int64Value,
    StringValue as google___protobuf___wrappers_pb2___StringValue,
)
from google.rpc.status_pb2 import Status as google___rpc___status_pb2___Status
from typing_extensions import Literal as typing_extensions___Literal

from google.ads.google_ads.v3.proto.common.extensions_pb2 import (
    CallFeedItem as google___ads___googleads___v3___common___extensions_pb2___CallFeedItem,
    CalloutFeedItem as google___ads___googleads___v3___common___extensions_pb2___CalloutFeedItem,
    SitelinkFeedItem as google___ads___googleads___v3___common___extensions_pb2___SitelinkFeedItem,
)
from google.ads.google_ads.v3.proto.enums.keyword_match_type_pb2 import (
    KeywordMatchTypeEnum as google___ads___googleads___v3___enums___keyword_match_type_pb2___KeywordMatchTypeEnum,
)
from google.ads.google_ads.v3.proto.resources.ad_pb2 import (
    Ad as google___ads___googleads___v3___resources___ad_pb2___Ad,
)

builtin___bool = bool
builtin___bytes = bytes
builtin___float = float
builtin___int = int

DESCRIPTOR: google___protobuf___descriptor___FileDescriptor = ...

class GetRecommendationRequest(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    resource_name: typing___Text = ...
    def __init__(
        self, *, resource_name: typing___Optional[typing___Text] = None,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions___Literal["resource_name", b"resource_name"]
    ) -> None: ...

type___GetRecommendationRequest = GetRecommendationRequest

class ApplyRecommendationRequest(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    customer_id: typing___Text = ...
    partial_failure: builtin___bool = ...
    @property
    def operations(
        self,
    ) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[
        type___ApplyRecommendationOperation
    ]: ...
    def __init__(
        self,
        *,
        customer_id: typing___Optional[typing___Text] = None,
        operations: typing___Optional[
            typing___Iterable[type___ApplyRecommendationOperation]
        ] = None,
        partial_failure: typing___Optional[builtin___bool] = None,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions___Literal[
            "customer_id",
            b"customer_id",
            "operations",
            b"operations",
            "partial_failure",
            b"partial_failure",
        ],
    ) -> None: ...

type___ApplyRecommendationRequest = ApplyRecommendationRequest

class ApplyRecommendationOperation(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    class CampaignBudgetParameters(google___protobuf___message___Message):
        DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
        @property
        def new_budget_amount_micros(
            self,
        ) -> google___protobuf___wrappers_pb2___Int64Value: ...
        def __init__(
            self,
            *,
            new_budget_amount_micros: typing___Optional[
                google___protobuf___wrappers_pb2___Int64Value
            ] = None,
        ) -> None: ...
        def HasField(
            self,
            field_name: typing_extensions___Literal[
                "new_budget_amount_micros", b"new_budget_amount_micros"
            ],
        ) -> builtin___bool: ...
        def ClearField(
            self,
            field_name: typing_extensions___Literal[
                "new_budget_amount_micros", b"new_budget_amount_micros"
            ],
        ) -> None: ...
    type___CampaignBudgetParameters = CampaignBudgetParameters
    class TextAdParameters(google___protobuf___message___Message):
        DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
        @property
        def ad(self) -> google___ads___googleads___v3___resources___ad_pb2___Ad: ...
        def __init__(
            self,
            *,
            ad: typing___Optional[
                google___ads___googleads___v3___resources___ad_pb2___Ad
            ] = None,
        ) -> None: ...
        def HasField(
            self, field_name: typing_extensions___Literal["ad", b"ad"]
        ) -> builtin___bool: ...
        def ClearField(
            self, field_name: typing_extensions___Literal["ad", b"ad"]
        ) -> None: ...
    type___TextAdParameters = TextAdParameters
    class KeywordParameters(google___protobuf___message___Message):
        DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
        match_type: google___ads___googleads___v3___enums___keyword_match_type_pb2___KeywordMatchTypeEnum.KeywordMatchTypeValue = ...
        @property
        def ad_group(self) -> google___protobuf___wrappers_pb2___StringValue: ...
        @property
        def cpc_bid_micros(self) -> google___protobuf___wrappers_pb2___Int64Value: ...
        def __init__(
            self,
            *,
            ad_group: typing___Optional[
                google___protobuf___wrappers_pb2___StringValue
            ] = None,
            match_type: typing___Optional[
                google___ads___googleads___v3___enums___keyword_match_type_pb2___KeywordMatchTypeEnum.KeywordMatchTypeValue
            ] = None,
            cpc_bid_micros: typing___Optional[
                google___protobuf___wrappers_pb2___Int64Value
            ] = None,
        ) -> None: ...
        def HasField(
            self,
            field_name: typing_extensions___Literal[
                "ad_group", b"ad_group", "cpc_bid_micros", b"cpc_bid_micros"
            ],
        ) -> builtin___bool: ...
        def ClearField(
            self,
            field_name: typing_extensions___Literal[
                "ad_group",
                b"ad_group",
                "cpc_bid_micros",
                b"cpc_bid_micros",
                "match_type",
                b"match_type",
            ],
        ) -> None: ...
    type___KeywordParameters = KeywordParameters
    class TargetCpaOptInParameters(google___protobuf___message___Message):
        DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
        @property
        def target_cpa_micros(
            self,
        ) -> google___protobuf___wrappers_pb2___Int64Value: ...
        @property
        def new_campaign_budget_amount_micros(
            self,
        ) -> google___protobuf___wrappers_pb2___Int64Value: ...
        def __init__(
            self,
            *,
            target_cpa_micros: typing___Optional[
                google___protobuf___wrappers_pb2___Int64Value
            ] = None,
            new_campaign_budget_amount_micros: typing___Optional[
                google___protobuf___wrappers_pb2___Int64Value
            ] = None,
        ) -> None: ...
        def HasField(
            self,
            field_name: typing_extensions___Literal[
                "new_campaign_budget_amount_micros",
                b"new_campaign_budget_amount_micros",
                "target_cpa_micros",
                b"target_cpa_micros",
            ],
        ) -> builtin___bool: ...
        def ClearField(
            self,
            field_name: typing_extensions___Literal[
                "new_campaign_budget_amount_micros",
                b"new_campaign_budget_amount_micros",
                "target_cpa_micros",
                b"target_cpa_micros",
            ],
        ) -> None: ...
    type___TargetCpaOptInParameters = TargetCpaOptInParameters
    class CalloutExtensionParameters(google___protobuf___message___Message):
        DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
        @property
        def callout_extensions(
            self,
        ) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[
            google___ads___googleads___v3___common___extensions_pb2___CalloutFeedItem
        ]: ...
        def __init__(
            self,
            *,
            callout_extensions: typing___Optional[
                typing___Iterable[
                    google___ads___googleads___v3___common___extensions_pb2___CalloutFeedItem
                ]
            ] = None,
        ) -> None: ...
        def ClearField(
            self,
            field_name: typing_extensions___Literal[
                "callout_extensions", b"callout_extensions"
            ],
        ) -> None: ...
    type___CalloutExtensionParameters = CalloutExtensionParameters
    class CallExtensionParameters(google___protobuf___message___Message):
        DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
        @property
        def call_extensions(
            self,
        ) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[
            google___ads___googleads___v3___common___extensions_pb2___CallFeedItem
        ]: ...
        def __init__(
            self,
            *,
            call_extensions: typing___Optional[
                typing___Iterable[
                    google___ads___googleads___v3___common___extensions_pb2___CallFeedItem
                ]
            ] = None,
        ) -> None: ...
        def ClearField(
            self,
            field_name: typing_extensions___Literal[
                "call_extensions", b"call_extensions"
            ],
        ) -> None: ...
    type___CallExtensionParameters = CallExtensionParameters
    class SitelinkExtensionParameters(google___protobuf___message___Message):
        DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
        @property
        def sitelink_extensions(
            self,
        ) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[
            google___ads___googleads___v3___common___extensions_pb2___SitelinkFeedItem
        ]: ...
        def __init__(
            self,
            *,
            sitelink_extensions: typing___Optional[
                typing___Iterable[
                    google___ads___googleads___v3___common___extensions_pb2___SitelinkFeedItem
                ]
            ] = None,
        ) -> None: ...
        def ClearField(
            self,
            field_name: typing_extensions___Literal[
                "sitelink_extensions", b"sitelink_extensions"
            ],
        ) -> None: ...
    type___SitelinkExtensionParameters = SitelinkExtensionParameters
    class MoveUnusedBudgetParameters(google___protobuf___message___Message):
        DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
        @property
        def budget_micros_to_move(
            self,
        ) -> google___protobuf___wrappers_pb2___Int64Value: ...
        def __init__(
            self,
            *,
            budget_micros_to_move: typing___Optional[
                google___protobuf___wrappers_pb2___Int64Value
            ] = None,
        ) -> None: ...
        def HasField(
            self,
            field_name: typing_extensions___Literal[
                "budget_micros_to_move", b"budget_micros_to_move"
            ],
        ) -> builtin___bool: ...
        def ClearField(
            self,
            field_name: typing_extensions___Literal[
                "budget_micros_to_move", b"budget_micros_to_move"
            ],
        ) -> None: ...
    type___MoveUnusedBudgetParameters = MoveUnusedBudgetParameters

    resource_name: typing___Text = ...
    @property
    def campaign_budget(
        self,
    ) -> type___ApplyRecommendationOperation.CampaignBudgetParameters: ...
    @property
    def text_ad(self) -> type___ApplyRecommendationOperation.TextAdParameters: ...
    @property
    def keyword(self) -> type___ApplyRecommendationOperation.KeywordParameters: ...
    @property
    def target_cpa_opt_in(
        self,
    ) -> type___ApplyRecommendationOperation.TargetCpaOptInParameters: ...
    @property
    def callout_extension(
        self,
    ) -> type___ApplyRecommendationOperation.CalloutExtensionParameters: ...
    @property
    def call_extension(
        self,
    ) -> type___ApplyRecommendationOperation.CallExtensionParameters: ...
    @property
    def sitelink_extension(
        self,
    ) -> type___ApplyRecommendationOperation.SitelinkExtensionParameters: ...
    @property
    def move_unused_budget(
        self,
    ) -> type___ApplyRecommendationOperation.MoveUnusedBudgetParameters: ...
    def __init__(
        self,
        *,
        resource_name: typing___Optional[typing___Text] = None,
        campaign_budget: typing___Optional[
            type___ApplyRecommendationOperation.CampaignBudgetParameters
        ] = None,
        text_ad: typing___Optional[
            type___ApplyRecommendationOperation.TextAdParameters
        ] = None,
        keyword: typing___Optional[
            type___ApplyRecommendationOperation.KeywordParameters
        ] = None,
        target_cpa_opt_in: typing___Optional[
            type___ApplyRecommendationOperation.TargetCpaOptInParameters
        ] = None,
        callout_extension: typing___Optional[
            type___ApplyRecommendationOperation.CalloutExtensionParameters
        ] = None,
        call_extension: typing___Optional[
            type___ApplyRecommendationOperation.CallExtensionParameters
        ] = None,
        sitelink_extension: typing___Optional[
            type___ApplyRecommendationOperation.SitelinkExtensionParameters
        ] = None,
        move_unused_budget: typing___Optional[
            type___ApplyRecommendationOperation.MoveUnusedBudgetParameters
        ] = None,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions___Literal[
            "apply_parameters",
            b"apply_parameters",
            "call_extension",
            b"call_extension",
            "callout_extension",
            b"callout_extension",
            "campaign_budget",
            b"campaign_budget",
            "keyword",
            b"keyword",
            "move_unused_budget",
            b"move_unused_budget",
            "sitelink_extension",
            b"sitelink_extension",
            "target_cpa_opt_in",
            b"target_cpa_opt_in",
            "text_ad",
            b"text_ad",
        ],
    ) -> builtin___bool: ...
    def ClearField(
        self,
        field_name: typing_extensions___Literal[
            "apply_parameters",
            b"apply_parameters",
            "call_extension",
            b"call_extension",
            "callout_extension",
            b"callout_extension",
            "campaign_budget",
            b"campaign_budget",
            "keyword",
            b"keyword",
            "move_unused_budget",
            b"move_unused_budget",
            "resource_name",
            b"resource_name",
            "sitelink_extension",
            b"sitelink_extension",
            "target_cpa_opt_in",
            b"target_cpa_opt_in",
            "text_ad",
            b"text_ad",
        ],
    ) -> None: ...
    def WhichOneof(
        self,
        oneof_group: typing_extensions___Literal[
            "apply_parameters", b"apply_parameters"
        ],
    ) -> typing_extensions___Literal[
        "campaign_budget",
        "text_ad",
        "keyword",
        "target_cpa_opt_in",
        "callout_extension",
        "call_extension",
        "sitelink_extension",
        "move_unused_budget",
    ]: ...

type___ApplyRecommendationOperation = ApplyRecommendationOperation

class ApplyRecommendationResponse(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    @property
    def results(
        self,
    ) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[
        type___ApplyRecommendationResult
    ]: ...
    @property
    def partial_failure_error(self) -> google___rpc___status_pb2___Status: ...
    def __init__(
        self,
        *,
        results: typing___Optional[
            typing___Iterable[type___ApplyRecommendationResult]
        ] = None,
        partial_failure_error: typing___Optional[
            google___rpc___status_pb2___Status
        ] = None,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions___Literal[
            "partial_failure_error", b"partial_failure_error"
        ],
    ) -> builtin___bool: ...
    def ClearField(
        self,
        field_name: typing_extensions___Literal[
            "partial_failure_error", b"partial_failure_error", "results", b"results"
        ],
    ) -> None: ...

type___ApplyRecommendationResponse = ApplyRecommendationResponse

class ApplyRecommendationResult(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    resource_name: typing___Text = ...
    def __init__(
        self, *, resource_name: typing___Optional[typing___Text] = None,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions___Literal["resource_name", b"resource_name"]
    ) -> None: ...

type___ApplyRecommendationResult = ApplyRecommendationResult

class DismissRecommendationRequest(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    class DismissRecommendationOperation(google___protobuf___message___Message):
        DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
        resource_name: typing___Text = ...
        def __init__(
            self, *, resource_name: typing___Optional[typing___Text] = None,
        ) -> None: ...
        def ClearField(
            self,
            field_name: typing_extensions___Literal["resource_name", b"resource_name"],
        ) -> None: ...
    type___DismissRecommendationOperation = DismissRecommendationOperation

    customer_id: typing___Text = ...
    partial_failure: builtin___bool = ...
    @property
    def operations(
        self,
    ) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[
        type___DismissRecommendationRequest.DismissRecommendationOperation
    ]: ...
    def __init__(
        self,
        *,
        customer_id: typing___Optional[typing___Text] = None,
        operations: typing___Optional[
            typing___Iterable[
                type___DismissRecommendationRequest.DismissRecommendationOperation
            ]
        ] = None,
        partial_failure: typing___Optional[builtin___bool] = None,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions___Literal[
            "customer_id",
            b"customer_id",
            "operations",
            b"operations",
            "partial_failure",
            b"partial_failure",
        ],
    ) -> None: ...

type___DismissRecommendationRequest = DismissRecommendationRequest

class DismissRecommendationResponse(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    class DismissRecommendationResult(google___protobuf___message___Message):
        DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
        resource_name: typing___Text = ...
        def __init__(
            self, *, resource_name: typing___Optional[typing___Text] = None,
        ) -> None: ...
        def ClearField(
            self,
            field_name: typing_extensions___Literal["resource_name", b"resource_name"],
        ) -> None: ...
    type___DismissRecommendationResult = DismissRecommendationResult
    @property
    def results(
        self,
    ) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[
        type___DismissRecommendationResponse.DismissRecommendationResult
    ]: ...
    @property
    def partial_failure_error(self) -> google___rpc___status_pb2___Status: ...
    def __init__(
        self,
        *,
        results: typing___Optional[
            typing___Iterable[
                type___DismissRecommendationResponse.DismissRecommendationResult
            ]
        ] = None,
        partial_failure_error: typing___Optional[
            google___rpc___status_pb2___Status
        ] = None,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions___Literal[
            "partial_failure_error", b"partial_failure_error"
        ],
    ) -> builtin___bool: ...
    def ClearField(
        self,
        field_name: typing_extensions___Literal[
            "partial_failure_error", b"partial_failure_error", "results", b"results"
        ],
    ) -> None: ...

type___DismissRecommendationResponse = DismissRecommendationResponse
