"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.ads.google_ads.v6.proto.common.criteria_pb2
import google.ads.google_ads.v6.proto.common.extensions_pb2
import google.ads.google_ads.v6.proto.enums.keyword_match_type_pb2
import google.ads.google_ads.v6.proto.enums.recommendation_type_pb2
import google.ads.google_ads.v6.proto.enums.target_cpa_opt_in_recommendation_goal_pb2
import google.ads.google_ads.v6.proto.resources.ad_pb2
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import typing
import typing_extensions

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

class Recommendation(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class RecommendationImpact(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        BASE_METRICS_FIELD_NUMBER: builtins.int
        POTENTIAL_METRICS_FIELD_NUMBER: builtins.int
        @property
        def base_metrics(self) -> global___Recommendation.RecommendationMetrics: ...
        @property
        def potential_metrics(
            self,
        ) -> global___Recommendation.RecommendationMetrics: ...
        def __init__(
            self,
            *,
            base_metrics: typing.Optional[
                global___Recommendation.RecommendationMetrics
            ] = ...,
            potential_metrics: typing.Optional[
                global___Recommendation.RecommendationMetrics
            ] = ...,
        ) -> None: ...
        def HasField(
            self,
            field_name: typing_extensions.Literal[
                "base_metrics",
                b"base_metrics",
                "potential_metrics",
                b"potential_metrics",
            ],
        ) -> builtins.bool: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal[
                "base_metrics",
                b"base_metrics",
                "potential_metrics",
                b"potential_metrics",
            ],
        ) -> None: ...
    class RecommendationMetrics(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        IMPRESSIONS_FIELD_NUMBER: builtins.int
        CLICKS_FIELD_NUMBER: builtins.int
        COST_MICROS_FIELD_NUMBER: builtins.int
        CONVERSIONS_FIELD_NUMBER: builtins.int
        VIDEO_VIEWS_FIELD_NUMBER: builtins.int
        impressions: builtins.float = ...
        clicks: builtins.float = ...
        cost_micros: builtins.int = ...
        conversions: builtins.float = ...
        video_views: builtins.float = ...
        def __init__(
            self,
            *,
            impressions: builtins.float = ...,
            clicks: builtins.float = ...,
            cost_micros: builtins.int = ...,
            conversions: builtins.float = ...,
            video_views: builtins.float = ...,
        ) -> None: ...
        def HasField(
            self,
            field_name: typing_extensions.Literal[
                "_clicks",
                b"_clicks",
                "_conversions",
                b"_conversions",
                "_cost_micros",
                b"_cost_micros",
                "_impressions",
                b"_impressions",
                "_video_views",
                b"_video_views",
                "clicks",
                b"clicks",
                "conversions",
                b"conversions",
                "cost_micros",
                b"cost_micros",
                "impressions",
                b"impressions",
                "video_views",
                b"video_views",
            ],
        ) -> builtins.bool: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal[
                "_clicks",
                b"_clicks",
                "_conversions",
                b"_conversions",
                "_cost_micros",
                b"_cost_micros",
                "_impressions",
                b"_impressions",
                "_video_views",
                b"_video_views",
                "clicks",
                b"clicks",
                "conversions",
                b"conversions",
                "cost_micros",
                b"cost_micros",
                "impressions",
                b"impressions",
                "video_views",
                b"video_views",
            ],
        ) -> None: ...
        @typing.overload
        def WhichOneof(
            self, oneof_group: typing_extensions.Literal["_clicks", b"_clicks"]
        ) -> typing_extensions.Literal["clicks"]: ...
        @typing.overload
        def WhichOneof(
            self,
            oneof_group: typing_extensions.Literal["_conversions", b"_conversions"],
        ) -> typing_extensions.Literal["conversions"]: ...
        @typing.overload
        def WhichOneof(
            self,
            oneof_group: typing_extensions.Literal["_cost_micros", b"_cost_micros"],
        ) -> typing_extensions.Literal["cost_micros"]: ...
        @typing.overload
        def WhichOneof(
            self,
            oneof_group: typing_extensions.Literal["_impressions", b"_impressions"],
        ) -> typing_extensions.Literal["impressions"]: ...
        @typing.overload
        def WhichOneof(
            self,
            oneof_group: typing_extensions.Literal["_video_views", b"_video_views"],
        ) -> typing_extensions.Literal["video_views"]: ...
    class CampaignBudgetRecommendation(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        class CampaignBudgetRecommendationOption(google.protobuf.message.Message):
            DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
            BUDGET_AMOUNT_MICROS_FIELD_NUMBER: builtins.int
            IMPACT_FIELD_NUMBER: builtins.int
            budget_amount_micros: builtins.int = ...
            @property
            def impact(self) -> global___Recommendation.RecommendationImpact: ...
            def __init__(
                self,
                *,
                budget_amount_micros: builtins.int = ...,
                impact: typing.Optional[
                    global___Recommendation.RecommendationImpact
                ] = ...,
            ) -> None: ...
            def HasField(
                self,
                field_name: typing_extensions.Literal[
                    "_budget_amount_micros",
                    b"_budget_amount_micros",
                    "budget_amount_micros",
                    b"budget_amount_micros",
                    "impact",
                    b"impact",
                ],
            ) -> builtins.bool: ...
            def ClearField(
                self,
                field_name: typing_extensions.Literal[
                    "_budget_amount_micros",
                    b"_budget_amount_micros",
                    "budget_amount_micros",
                    b"budget_amount_micros",
                    "impact",
                    b"impact",
                ],
            ) -> None: ...
            def WhichOneof(
                self,
                oneof_group: typing_extensions.Literal[
                    "_budget_amount_micros", b"_budget_amount_micros"
                ],
            ) -> typing_extensions.Literal["budget_amount_micros"]: ...
        CURRENT_BUDGET_AMOUNT_MICROS_FIELD_NUMBER: builtins.int
        RECOMMENDED_BUDGET_AMOUNT_MICROS_FIELD_NUMBER: builtins.int
        BUDGET_OPTIONS_FIELD_NUMBER: builtins.int
        current_budget_amount_micros: builtins.int = ...
        recommended_budget_amount_micros: builtins.int = ...
        @property
        def budget_options(
            self,
        ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
            global___Recommendation.CampaignBudgetRecommendation.CampaignBudgetRecommendationOption
        ]: ...
        def __init__(
            self,
            *,
            current_budget_amount_micros: builtins.int = ...,
            recommended_budget_amount_micros: builtins.int = ...,
            budget_options: typing.Optional[
                typing.Iterable[
                    global___Recommendation.CampaignBudgetRecommendation.CampaignBudgetRecommendationOption
                ]
            ] = ...,
        ) -> None: ...
        def HasField(
            self,
            field_name: typing_extensions.Literal[
                "_current_budget_amount_micros",
                b"_current_budget_amount_micros",
                "_recommended_budget_amount_micros",
                b"_recommended_budget_amount_micros",
                "current_budget_amount_micros",
                b"current_budget_amount_micros",
                "recommended_budget_amount_micros",
                b"recommended_budget_amount_micros",
            ],
        ) -> builtins.bool: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal[
                "_current_budget_amount_micros",
                b"_current_budget_amount_micros",
                "_recommended_budget_amount_micros",
                b"_recommended_budget_amount_micros",
                "budget_options",
                b"budget_options",
                "current_budget_amount_micros",
                b"current_budget_amount_micros",
                "recommended_budget_amount_micros",
                b"recommended_budget_amount_micros",
            ],
        ) -> None: ...
        @typing.overload
        def WhichOneof(
            self,
            oneof_group: typing_extensions.Literal[
                "_current_budget_amount_micros", b"_current_budget_amount_micros"
            ],
        ) -> typing_extensions.Literal["current_budget_amount_micros"]: ...
        @typing.overload
        def WhichOneof(
            self,
            oneof_group: typing_extensions.Literal[
                "_recommended_budget_amount_micros",
                b"_recommended_budget_amount_micros",
            ],
        ) -> typing_extensions.Literal["recommended_budget_amount_micros"]: ...
    class KeywordRecommendation(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        KEYWORD_FIELD_NUMBER: builtins.int
        RECOMMENDED_CPC_BID_MICROS_FIELD_NUMBER: builtins.int
        recommended_cpc_bid_micros: builtins.int = ...
        @property
        def keyword(
            self,
        ) -> google.ads.google_ads.v6.proto.common.criteria_pb2.KeywordInfo: ...
        def __init__(
            self,
            *,
            keyword: typing.Optional[
                google.ads.google_ads.v6.proto.common.criteria_pb2.KeywordInfo
            ] = ...,
            recommended_cpc_bid_micros: builtins.int = ...,
        ) -> None: ...
        def HasField(
            self,
            field_name: typing_extensions.Literal[
                "_recommended_cpc_bid_micros",
                b"_recommended_cpc_bid_micros",
                "keyword",
                b"keyword",
                "recommended_cpc_bid_micros",
                b"recommended_cpc_bid_micros",
            ],
        ) -> builtins.bool: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal[
                "_recommended_cpc_bid_micros",
                b"_recommended_cpc_bid_micros",
                "keyword",
                b"keyword",
                "recommended_cpc_bid_micros",
                b"recommended_cpc_bid_micros",
            ],
        ) -> None: ...
        def WhichOneof(
            self,
            oneof_group: typing_extensions.Literal[
                "_recommended_cpc_bid_micros", b"_recommended_cpc_bid_micros"
            ],
        ) -> typing_extensions.Literal["recommended_cpc_bid_micros"]: ...
    class TextAdRecommendation(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        AD_FIELD_NUMBER: builtins.int
        CREATION_DATE_FIELD_NUMBER: builtins.int
        AUTO_APPLY_DATE_FIELD_NUMBER: builtins.int
        creation_date: typing.Text = ...
        auto_apply_date: typing.Text = ...
        @property
        def ad(self) -> google.ads.google_ads.v6.proto.resources.ad_pb2.Ad: ...
        def __init__(
            self,
            *,
            ad: typing.Optional[
                google.ads.google_ads.v6.proto.resources.ad_pb2.Ad
            ] = ...,
            creation_date: typing.Text = ...,
            auto_apply_date: typing.Text = ...,
        ) -> None: ...
        def HasField(
            self,
            field_name: typing_extensions.Literal[
                "_auto_apply_date",
                b"_auto_apply_date",
                "_creation_date",
                b"_creation_date",
                "ad",
                b"ad",
                "auto_apply_date",
                b"auto_apply_date",
                "creation_date",
                b"creation_date",
            ],
        ) -> builtins.bool: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal[
                "_auto_apply_date",
                b"_auto_apply_date",
                "_creation_date",
                b"_creation_date",
                "ad",
                b"ad",
                "auto_apply_date",
                b"auto_apply_date",
                "creation_date",
                b"creation_date",
            ],
        ) -> None: ...
        @typing.overload
        def WhichOneof(
            self,
            oneof_group: typing_extensions.Literal[
                "_auto_apply_date", b"_auto_apply_date"
            ],
        ) -> typing_extensions.Literal["auto_apply_date"]: ...
        @typing.overload
        def WhichOneof(
            self,
            oneof_group: typing_extensions.Literal["_creation_date", b"_creation_date"],
        ) -> typing_extensions.Literal["creation_date"]: ...
    class ResponsiveSearchAdRecommendation(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        AD_FIELD_NUMBER: builtins.int
        @property
        def ad(self) -> google.ads.google_ads.v6.proto.resources.ad_pb2.Ad: ...
        def __init__(
            self,
            *,
            ad: typing.Optional[
                google.ads.google_ads.v6.proto.resources.ad_pb2.Ad
            ] = ...,
        ) -> None: ...
        def HasField(
            self, field_name: typing_extensions.Literal["ad", b"ad"]
        ) -> builtins.bool: ...
        def ClearField(
            self, field_name: typing_extensions.Literal["ad", b"ad"]
        ) -> None: ...
    class TargetCpaOptInRecommendation(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        class TargetCpaOptInRecommendationOption(google.protobuf.message.Message):
            DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
            GOAL_FIELD_NUMBER: builtins.int
            TARGET_CPA_MICROS_FIELD_NUMBER: builtins.int
            REQUIRED_CAMPAIGN_BUDGET_AMOUNT_MICROS_FIELD_NUMBER: builtins.int
            IMPACT_FIELD_NUMBER: builtins.int
            goal: google.ads.google_ads.v6.proto.enums.target_cpa_opt_in_recommendation_goal_pb2.TargetCpaOptInRecommendationGoalEnum.TargetCpaOptInRecommendationGoal.V = (
                ...
            )
            target_cpa_micros: builtins.int = ...
            required_campaign_budget_amount_micros: builtins.int = ...
            @property
            def impact(self) -> global___Recommendation.RecommendationImpact: ...
            def __init__(
                self,
                *,
                goal: google.ads.google_ads.v6.proto.enums.target_cpa_opt_in_recommendation_goal_pb2.TargetCpaOptInRecommendationGoalEnum.TargetCpaOptInRecommendationGoal.V = ...,
                target_cpa_micros: builtins.int = ...,
                required_campaign_budget_amount_micros: builtins.int = ...,
                impact: typing.Optional[
                    global___Recommendation.RecommendationImpact
                ] = ...,
            ) -> None: ...
            def HasField(
                self,
                field_name: typing_extensions.Literal[
                    "_required_campaign_budget_amount_micros",
                    b"_required_campaign_budget_amount_micros",
                    "_target_cpa_micros",
                    b"_target_cpa_micros",
                    "impact",
                    b"impact",
                    "required_campaign_budget_amount_micros",
                    b"required_campaign_budget_amount_micros",
                    "target_cpa_micros",
                    b"target_cpa_micros",
                ],
            ) -> builtins.bool: ...
            def ClearField(
                self,
                field_name: typing_extensions.Literal[
                    "_required_campaign_budget_amount_micros",
                    b"_required_campaign_budget_amount_micros",
                    "_target_cpa_micros",
                    b"_target_cpa_micros",
                    "goal",
                    b"goal",
                    "impact",
                    b"impact",
                    "required_campaign_budget_amount_micros",
                    b"required_campaign_budget_amount_micros",
                    "target_cpa_micros",
                    b"target_cpa_micros",
                ],
            ) -> None: ...
            @typing.overload
            def WhichOneof(
                self,
                oneof_group: typing_extensions.Literal[
                    "_required_campaign_budget_amount_micros",
                    b"_required_campaign_budget_amount_micros",
                ],
            ) -> typing_extensions.Literal[
                "required_campaign_budget_amount_micros"
            ]: ...
            @typing.overload
            def WhichOneof(
                self,
                oneof_group: typing_extensions.Literal[
                    "_target_cpa_micros", b"_target_cpa_micros"
                ],
            ) -> typing_extensions.Literal["target_cpa_micros"]: ...
        OPTIONS_FIELD_NUMBER: builtins.int
        RECOMMENDED_TARGET_CPA_MICROS_FIELD_NUMBER: builtins.int
        recommended_target_cpa_micros: builtins.int = ...
        @property
        def options(
            self,
        ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
            global___Recommendation.TargetCpaOptInRecommendation.TargetCpaOptInRecommendationOption
        ]: ...
        def __init__(
            self,
            *,
            options: typing.Optional[
                typing.Iterable[
                    global___Recommendation.TargetCpaOptInRecommendation.TargetCpaOptInRecommendationOption
                ]
            ] = ...,
            recommended_target_cpa_micros: builtins.int = ...,
        ) -> None: ...
        def HasField(
            self,
            field_name: typing_extensions.Literal[
                "_recommended_target_cpa_micros",
                b"_recommended_target_cpa_micros",
                "recommended_target_cpa_micros",
                b"recommended_target_cpa_micros",
            ],
        ) -> builtins.bool: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal[
                "_recommended_target_cpa_micros",
                b"_recommended_target_cpa_micros",
                "options",
                b"options",
                "recommended_target_cpa_micros",
                b"recommended_target_cpa_micros",
            ],
        ) -> None: ...
        def WhichOneof(
            self,
            oneof_group: typing_extensions.Literal[
                "_recommended_target_cpa_micros", b"_recommended_target_cpa_micros"
            ],
        ) -> typing_extensions.Literal["recommended_target_cpa_micros"]: ...
    class MaximizeConversionsOptInRecommendation(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        RECOMMENDED_BUDGET_AMOUNT_MICROS_FIELD_NUMBER: builtins.int
        recommended_budget_amount_micros: builtins.int = ...
        def __init__(
            self,
            *,
            recommended_budget_amount_micros: builtins.int = ...,
        ) -> None: ...
        def HasField(
            self,
            field_name: typing_extensions.Literal[
                "_recommended_budget_amount_micros",
                b"_recommended_budget_amount_micros",
                "recommended_budget_amount_micros",
                b"recommended_budget_amount_micros",
            ],
        ) -> builtins.bool: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal[
                "_recommended_budget_amount_micros",
                b"_recommended_budget_amount_micros",
                "recommended_budget_amount_micros",
                b"recommended_budget_amount_micros",
            ],
        ) -> None: ...
        def WhichOneof(
            self,
            oneof_group: typing_extensions.Literal[
                "_recommended_budget_amount_micros",
                b"_recommended_budget_amount_micros",
            ],
        ) -> typing_extensions.Literal["recommended_budget_amount_micros"]: ...
    class CalloutExtensionRecommendation(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        RECOMMENDED_EXTENSIONS_FIELD_NUMBER: builtins.int
        @property
        def recommended_extensions(
            self,
        ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
            google.ads.google_ads.v6.proto.common.extensions_pb2.CalloutFeedItem
        ]: ...
        def __init__(
            self,
            *,
            recommended_extensions: typing.Optional[
                typing.Iterable[
                    google.ads.google_ads.v6.proto.common.extensions_pb2.CalloutFeedItem
                ]
            ] = ...,
        ) -> None: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal[
                "recommended_extensions", b"recommended_extensions"
            ],
        ) -> None: ...
    class EnhancedCpcOptInRecommendation(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        def __init__(
            self,
        ) -> None: ...
    class SearchPartnersOptInRecommendation(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        def __init__(
            self,
        ) -> None: ...
    class MaximizeClicksOptInRecommendation(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        RECOMMENDED_BUDGET_AMOUNT_MICROS_FIELD_NUMBER: builtins.int
        recommended_budget_amount_micros: builtins.int = ...
        def __init__(
            self,
            *,
            recommended_budget_amount_micros: builtins.int = ...,
        ) -> None: ...
        def HasField(
            self,
            field_name: typing_extensions.Literal[
                "_recommended_budget_amount_micros",
                b"_recommended_budget_amount_micros",
                "recommended_budget_amount_micros",
                b"recommended_budget_amount_micros",
            ],
        ) -> builtins.bool: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal[
                "_recommended_budget_amount_micros",
                b"_recommended_budget_amount_micros",
                "recommended_budget_amount_micros",
                b"recommended_budget_amount_micros",
            ],
        ) -> None: ...
        def WhichOneof(
            self,
            oneof_group: typing_extensions.Literal[
                "_recommended_budget_amount_micros",
                b"_recommended_budget_amount_micros",
            ],
        ) -> typing_extensions.Literal["recommended_budget_amount_micros"]: ...
    class MoveUnusedBudgetRecommendation(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        EXCESS_CAMPAIGN_BUDGET_FIELD_NUMBER: builtins.int
        BUDGET_RECOMMENDATION_FIELD_NUMBER: builtins.int
        excess_campaign_budget: typing.Text = ...
        @property
        def budget_recommendation(
            self,
        ) -> global___Recommendation.CampaignBudgetRecommendation: ...
        def __init__(
            self,
            *,
            excess_campaign_budget: typing.Text = ...,
            budget_recommendation: typing.Optional[
                global___Recommendation.CampaignBudgetRecommendation
            ] = ...,
        ) -> None: ...
        def HasField(
            self,
            field_name: typing_extensions.Literal[
                "_excess_campaign_budget",
                b"_excess_campaign_budget",
                "budget_recommendation",
                b"budget_recommendation",
                "excess_campaign_budget",
                b"excess_campaign_budget",
            ],
        ) -> builtins.bool: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal[
                "_excess_campaign_budget",
                b"_excess_campaign_budget",
                "budget_recommendation",
                b"budget_recommendation",
                "excess_campaign_budget",
                b"excess_campaign_budget",
            ],
        ) -> None: ...
        def WhichOneof(
            self,
            oneof_group: typing_extensions.Literal[
                "_excess_campaign_budget", b"_excess_campaign_budget"
            ],
        ) -> typing_extensions.Literal["excess_campaign_budget"]: ...
    class OptimizeAdRotationRecommendation(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        def __init__(
            self,
        ) -> None: ...
    class SitelinkExtensionRecommendation(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        RECOMMENDED_EXTENSIONS_FIELD_NUMBER: builtins.int
        @property
        def recommended_extensions(
            self,
        ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
            google.ads.google_ads.v6.proto.common.extensions_pb2.SitelinkFeedItem
        ]: ...
        def __init__(
            self,
            *,
            recommended_extensions: typing.Optional[
                typing.Iterable[
                    google.ads.google_ads.v6.proto.common.extensions_pb2.SitelinkFeedItem
                ]
            ] = ...,
        ) -> None: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal[
                "recommended_extensions", b"recommended_extensions"
            ],
        ) -> None: ...
    class KeywordMatchTypeRecommendation(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        KEYWORD_FIELD_NUMBER: builtins.int
        RECOMMENDED_MATCH_TYPE_FIELD_NUMBER: builtins.int
        recommended_match_type: google.ads.google_ads.v6.proto.enums.keyword_match_type_pb2.KeywordMatchTypeEnum.KeywordMatchType.V = (
            ...
        )
        @property
        def keyword(
            self,
        ) -> google.ads.google_ads.v6.proto.common.criteria_pb2.KeywordInfo: ...
        def __init__(
            self,
            *,
            keyword: typing.Optional[
                google.ads.google_ads.v6.proto.common.criteria_pb2.KeywordInfo
            ] = ...,
            recommended_match_type: google.ads.google_ads.v6.proto.enums.keyword_match_type_pb2.KeywordMatchTypeEnum.KeywordMatchType.V = ...,
        ) -> None: ...
        def HasField(
            self, field_name: typing_extensions.Literal["keyword", b"keyword"]
        ) -> builtins.bool: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal[
                "keyword",
                b"keyword",
                "recommended_match_type",
                b"recommended_match_type",
            ],
        ) -> None: ...
    class CallExtensionRecommendation(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        RECOMMENDED_EXTENSIONS_FIELD_NUMBER: builtins.int
        @property
        def recommended_extensions(
            self,
        ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
            google.ads.google_ads.v6.proto.common.extensions_pb2.CallFeedItem
        ]: ...
        def __init__(
            self,
            *,
            recommended_extensions: typing.Optional[
                typing.Iterable[
                    google.ads.google_ads.v6.proto.common.extensions_pb2.CallFeedItem
                ]
            ] = ...,
        ) -> None: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal[
                "recommended_extensions", b"recommended_extensions"
            ],
        ) -> None: ...
    class TargetRoasOptInRecommendation(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        RECOMMENDED_TARGET_ROAS_FIELD_NUMBER: builtins.int
        REQUIRED_CAMPAIGN_BUDGET_AMOUNT_MICROS_FIELD_NUMBER: builtins.int
        recommended_target_roas: builtins.float = ...
        required_campaign_budget_amount_micros: builtins.int = ...
        def __init__(
            self,
            *,
            recommended_target_roas: builtins.float = ...,
            required_campaign_budget_amount_micros: builtins.int = ...,
        ) -> None: ...
        def HasField(
            self,
            field_name: typing_extensions.Literal[
                "_recommended_target_roas",
                b"_recommended_target_roas",
                "_required_campaign_budget_amount_micros",
                b"_required_campaign_budget_amount_micros",
                "recommended_target_roas",
                b"recommended_target_roas",
                "required_campaign_budget_amount_micros",
                b"required_campaign_budget_amount_micros",
            ],
        ) -> builtins.bool: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal[
                "_recommended_target_roas",
                b"_recommended_target_roas",
                "_required_campaign_budget_amount_micros",
                b"_required_campaign_budget_amount_micros",
                "recommended_target_roas",
                b"recommended_target_roas",
                "required_campaign_budget_amount_micros",
                b"required_campaign_budget_amount_micros",
            ],
        ) -> None: ...
        @typing.overload
        def WhichOneof(
            self,
            oneof_group: typing_extensions.Literal[
                "_recommended_target_roas", b"_recommended_target_roas"
            ],
        ) -> typing_extensions.Literal["recommended_target_roas"]: ...
        @typing.overload
        def WhichOneof(
            self,
            oneof_group: typing_extensions.Literal[
                "_required_campaign_budget_amount_micros",
                b"_required_campaign_budget_amount_micros",
            ],
        ) -> typing_extensions.Literal["required_campaign_budget_amount_micros"]: ...
    RESOURCE_NAME_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    IMPACT_FIELD_NUMBER: builtins.int
    CAMPAIGN_BUDGET_FIELD_NUMBER: builtins.int
    CAMPAIGN_FIELD_NUMBER: builtins.int
    AD_GROUP_FIELD_NUMBER: builtins.int
    DISMISSED_FIELD_NUMBER: builtins.int
    CAMPAIGN_BUDGET_RECOMMENDATION_FIELD_NUMBER: builtins.int
    FORECASTING_CAMPAIGN_BUDGET_RECOMMENDATION_FIELD_NUMBER: builtins.int
    KEYWORD_RECOMMENDATION_FIELD_NUMBER: builtins.int
    TEXT_AD_RECOMMENDATION_FIELD_NUMBER: builtins.int
    TARGET_CPA_OPT_IN_RECOMMENDATION_FIELD_NUMBER: builtins.int
    MAXIMIZE_CONVERSIONS_OPT_IN_RECOMMENDATION_FIELD_NUMBER: builtins.int
    ENHANCED_CPC_OPT_IN_RECOMMENDATION_FIELD_NUMBER: builtins.int
    SEARCH_PARTNERS_OPT_IN_RECOMMENDATION_FIELD_NUMBER: builtins.int
    MAXIMIZE_CLICKS_OPT_IN_RECOMMENDATION_FIELD_NUMBER: builtins.int
    OPTIMIZE_AD_ROTATION_RECOMMENDATION_FIELD_NUMBER: builtins.int
    CALLOUT_EXTENSION_RECOMMENDATION_FIELD_NUMBER: builtins.int
    SITELINK_EXTENSION_RECOMMENDATION_FIELD_NUMBER: builtins.int
    CALL_EXTENSION_RECOMMENDATION_FIELD_NUMBER: builtins.int
    KEYWORD_MATCH_TYPE_RECOMMENDATION_FIELD_NUMBER: builtins.int
    MOVE_UNUSED_BUDGET_RECOMMENDATION_FIELD_NUMBER: builtins.int
    TARGET_ROAS_OPT_IN_RECOMMENDATION_FIELD_NUMBER: builtins.int
    RESPONSIVE_SEARCH_AD_RECOMMENDATION_FIELD_NUMBER: builtins.int
    resource_name: typing.Text = ...
    type: google.ads.google_ads.v6.proto.enums.recommendation_type_pb2.RecommendationTypeEnum.RecommendationType.V = (
        ...
    )
    campaign_budget: typing.Text = ...
    campaign: typing.Text = ...
    ad_group: typing.Text = ...
    dismissed: builtins.bool = ...
    @property
    def impact(self) -> global___Recommendation.RecommendationImpact: ...
    @property
    def campaign_budget_recommendation(
        self,
    ) -> global___Recommendation.CampaignBudgetRecommendation: ...
    @property
    def forecasting_campaign_budget_recommendation(
        self,
    ) -> global___Recommendation.CampaignBudgetRecommendation: ...
    @property
    def keyword_recommendation(
        self,
    ) -> global___Recommendation.KeywordRecommendation: ...
    @property
    def text_ad_recommendation(
        self,
    ) -> global___Recommendation.TextAdRecommendation: ...
    @property
    def target_cpa_opt_in_recommendation(
        self,
    ) -> global___Recommendation.TargetCpaOptInRecommendation: ...
    @property
    def maximize_conversions_opt_in_recommendation(
        self,
    ) -> global___Recommendation.MaximizeConversionsOptInRecommendation: ...
    @property
    def enhanced_cpc_opt_in_recommendation(
        self,
    ) -> global___Recommendation.EnhancedCpcOptInRecommendation: ...
    @property
    def search_partners_opt_in_recommendation(
        self,
    ) -> global___Recommendation.SearchPartnersOptInRecommendation: ...
    @property
    def maximize_clicks_opt_in_recommendation(
        self,
    ) -> global___Recommendation.MaximizeClicksOptInRecommendation: ...
    @property
    def optimize_ad_rotation_recommendation(
        self,
    ) -> global___Recommendation.OptimizeAdRotationRecommendation: ...
    @property
    def callout_extension_recommendation(
        self,
    ) -> global___Recommendation.CalloutExtensionRecommendation: ...
    @property
    def sitelink_extension_recommendation(
        self,
    ) -> global___Recommendation.SitelinkExtensionRecommendation: ...
    @property
    def call_extension_recommendation(
        self,
    ) -> global___Recommendation.CallExtensionRecommendation: ...
    @property
    def keyword_match_type_recommendation(
        self,
    ) -> global___Recommendation.KeywordMatchTypeRecommendation: ...
    @property
    def move_unused_budget_recommendation(
        self,
    ) -> global___Recommendation.MoveUnusedBudgetRecommendation: ...
    @property
    def target_roas_opt_in_recommendation(
        self,
    ) -> global___Recommendation.TargetRoasOptInRecommendation: ...
    @property
    def responsive_search_ad_recommendation(
        self,
    ) -> global___Recommendation.ResponsiveSearchAdRecommendation: ...
    def __init__(
        self,
        *,
        resource_name: typing.Text = ...,
        type: google.ads.google_ads.v6.proto.enums.recommendation_type_pb2.RecommendationTypeEnum.RecommendationType.V = ...,
        impact: typing.Optional[global___Recommendation.RecommendationImpact] = ...,
        campaign_budget: typing.Text = ...,
        campaign: typing.Text = ...,
        ad_group: typing.Text = ...,
        dismissed: builtins.bool = ...,
        campaign_budget_recommendation: typing.Optional[
            global___Recommendation.CampaignBudgetRecommendation
        ] = ...,
        forecasting_campaign_budget_recommendation: typing.Optional[
            global___Recommendation.CampaignBudgetRecommendation
        ] = ...,
        keyword_recommendation: typing.Optional[
            global___Recommendation.KeywordRecommendation
        ] = ...,
        text_ad_recommendation: typing.Optional[
            global___Recommendation.TextAdRecommendation
        ] = ...,
        target_cpa_opt_in_recommendation: typing.Optional[
            global___Recommendation.TargetCpaOptInRecommendation
        ] = ...,
        maximize_conversions_opt_in_recommendation: typing.Optional[
            global___Recommendation.MaximizeConversionsOptInRecommendation
        ] = ...,
        enhanced_cpc_opt_in_recommendation: typing.Optional[
            global___Recommendation.EnhancedCpcOptInRecommendation
        ] = ...,
        search_partners_opt_in_recommendation: typing.Optional[
            global___Recommendation.SearchPartnersOptInRecommendation
        ] = ...,
        maximize_clicks_opt_in_recommendation: typing.Optional[
            global___Recommendation.MaximizeClicksOptInRecommendation
        ] = ...,
        optimize_ad_rotation_recommendation: typing.Optional[
            global___Recommendation.OptimizeAdRotationRecommendation
        ] = ...,
        callout_extension_recommendation: typing.Optional[
            global___Recommendation.CalloutExtensionRecommendation
        ] = ...,
        sitelink_extension_recommendation: typing.Optional[
            global___Recommendation.SitelinkExtensionRecommendation
        ] = ...,
        call_extension_recommendation: typing.Optional[
            global___Recommendation.CallExtensionRecommendation
        ] = ...,
        keyword_match_type_recommendation: typing.Optional[
            global___Recommendation.KeywordMatchTypeRecommendation
        ] = ...,
        move_unused_budget_recommendation: typing.Optional[
            global___Recommendation.MoveUnusedBudgetRecommendation
        ] = ...,
        target_roas_opt_in_recommendation: typing.Optional[
            global___Recommendation.TargetRoasOptInRecommendation
        ] = ...,
        responsive_search_ad_recommendation: typing.Optional[
            global___Recommendation.ResponsiveSearchAdRecommendation
        ] = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions.Literal[
            "_ad_group",
            b"_ad_group",
            "_campaign",
            b"_campaign",
            "_campaign_budget",
            b"_campaign_budget",
            "_dismissed",
            b"_dismissed",
            "ad_group",
            b"ad_group",
            "call_extension_recommendation",
            b"call_extension_recommendation",
            "callout_extension_recommendation",
            b"callout_extension_recommendation",
            "campaign",
            b"campaign",
            "campaign_budget",
            b"campaign_budget",
            "campaign_budget_recommendation",
            b"campaign_budget_recommendation",
            "dismissed",
            b"dismissed",
            "enhanced_cpc_opt_in_recommendation",
            b"enhanced_cpc_opt_in_recommendation",
            "forecasting_campaign_budget_recommendation",
            b"forecasting_campaign_budget_recommendation",
            "impact",
            b"impact",
            "keyword_match_type_recommendation",
            b"keyword_match_type_recommendation",
            "keyword_recommendation",
            b"keyword_recommendation",
            "maximize_clicks_opt_in_recommendation",
            b"maximize_clicks_opt_in_recommendation",
            "maximize_conversions_opt_in_recommendation",
            b"maximize_conversions_opt_in_recommendation",
            "move_unused_budget_recommendation",
            b"move_unused_budget_recommendation",
            "optimize_ad_rotation_recommendation",
            b"optimize_ad_rotation_recommendation",
            "recommendation",
            b"recommendation",
            "responsive_search_ad_recommendation",
            b"responsive_search_ad_recommendation",
            "search_partners_opt_in_recommendation",
            b"search_partners_opt_in_recommendation",
            "sitelink_extension_recommendation",
            b"sitelink_extension_recommendation",
            "target_cpa_opt_in_recommendation",
            b"target_cpa_opt_in_recommendation",
            "target_roas_opt_in_recommendation",
            b"target_roas_opt_in_recommendation",
            "text_ad_recommendation",
            b"text_ad_recommendation",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "_ad_group",
            b"_ad_group",
            "_campaign",
            b"_campaign",
            "_campaign_budget",
            b"_campaign_budget",
            "_dismissed",
            b"_dismissed",
            "ad_group",
            b"ad_group",
            "call_extension_recommendation",
            b"call_extension_recommendation",
            "callout_extension_recommendation",
            b"callout_extension_recommendation",
            "campaign",
            b"campaign",
            "campaign_budget",
            b"campaign_budget",
            "campaign_budget_recommendation",
            b"campaign_budget_recommendation",
            "dismissed",
            b"dismissed",
            "enhanced_cpc_opt_in_recommendation",
            b"enhanced_cpc_opt_in_recommendation",
            "forecasting_campaign_budget_recommendation",
            b"forecasting_campaign_budget_recommendation",
            "impact",
            b"impact",
            "keyword_match_type_recommendation",
            b"keyword_match_type_recommendation",
            "keyword_recommendation",
            b"keyword_recommendation",
            "maximize_clicks_opt_in_recommendation",
            b"maximize_clicks_opt_in_recommendation",
            "maximize_conversions_opt_in_recommendation",
            b"maximize_conversions_opt_in_recommendation",
            "move_unused_budget_recommendation",
            b"move_unused_budget_recommendation",
            "optimize_ad_rotation_recommendation",
            b"optimize_ad_rotation_recommendation",
            "recommendation",
            b"recommendation",
            "resource_name",
            b"resource_name",
            "responsive_search_ad_recommendation",
            b"responsive_search_ad_recommendation",
            "search_partners_opt_in_recommendation",
            b"search_partners_opt_in_recommendation",
            "sitelink_extension_recommendation",
            b"sitelink_extension_recommendation",
            "target_cpa_opt_in_recommendation",
            b"target_cpa_opt_in_recommendation",
            "target_roas_opt_in_recommendation",
            b"target_roas_opt_in_recommendation",
            "text_ad_recommendation",
            b"text_ad_recommendation",
            "type",
            b"type",
        ],
    ) -> None: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing_extensions.Literal["_ad_group", b"_ad_group"]
    ) -> typing_extensions.Literal["ad_group"]: ...
    @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["_campaign_budget", b"_campaign_budget"],
    ) -> typing_extensions.Literal["campaign_budget"]: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing_extensions.Literal["_dismissed", b"_dismissed"]
    ) -> typing_extensions.Literal["dismissed"]: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal["recommendation", b"recommendation"],
    ) -> typing_extensions.Literal[
        "campaign_budget_recommendation",
        "forecasting_campaign_budget_recommendation",
        "keyword_recommendation",
        "text_ad_recommendation",
        "target_cpa_opt_in_recommendation",
        "maximize_conversions_opt_in_recommendation",
        "enhanced_cpc_opt_in_recommendation",
        "search_partners_opt_in_recommendation",
        "maximize_clicks_opt_in_recommendation",
        "optimize_ad_rotation_recommendation",
        "callout_extension_recommendation",
        "sitelink_extension_recommendation",
        "call_extension_recommendation",
        "keyword_match_type_recommendation",
        "move_unused_budget_recommendation",
        "target_roas_opt_in_recommendation",
        "responsive_search_ad_recommendation",
    ]: ...

global___Recommendation = Recommendation
