# @generated by generate_proto_mypy_stubs.py.  Do not edit!
import sys
from google.ads.google_ads.v2.proto.common.keyword_plan_common_pb2 import (
    KeywordPlanHistoricalMetrics as google___ads___googleads___v2___common___keyword_plan_common_pb2___KeywordPlanHistoricalMetrics,
)

from google.ads.google_ads.v2.proto.resources.keyword_plan_pb2 import (
    KeywordPlan as google___ads___googleads___v2___resources___keyword_plan_pb2___KeywordPlan,
)

from google.protobuf.descriptor import (
    Descriptor as google___protobuf___descriptor___Descriptor,
)

from google.protobuf.field_mask_pb2 import (
    FieldMask as google___protobuf___field_mask_pb2___FieldMask,
)

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 (
    DoubleValue as google___protobuf___wrappers_pb2___DoubleValue,
    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 import (
    Iterable as typing___Iterable,
    Optional as typing___Optional,
    Text as typing___Text,
)

from typing_extensions import (
    Literal as typing_extensions___Literal,
)


class GetKeywordPlanRequest(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    resource_name = ... # type: typing___Text

    def __init__(self,
        *,
        resource_name : typing___Optional[typing___Text] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> GetKeywordPlanRequest: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def ClearField(self, field_name: typing_extensions___Literal[u"resource_name"]) -> None: ...
    else:
        def ClearField(self, field_name: typing_extensions___Literal[u"resource_name",b"resource_name"]) -> None: ...

class MutateKeywordPlansRequest(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    customer_id = ... # type: typing___Text
    partial_failure = ... # type: bool
    validate_only = ... # type: bool

    @property
    def operations(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[KeywordPlanOperation]: ...

    def __init__(self,
        *,
        customer_id : typing___Optional[typing___Text] = None,
        operations : typing___Optional[typing___Iterable[KeywordPlanOperation]] = None,
        partial_failure : typing___Optional[bool] = None,
        validate_only : typing___Optional[bool] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> MutateKeywordPlansRequest: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def ClearField(self, field_name: typing_extensions___Literal[u"customer_id",u"operations",u"partial_failure",u"validate_only"]) -> None: ...
    else:
        def ClearField(self, field_name: typing_extensions___Literal[u"customer_id",b"customer_id",u"operations",b"operations",u"partial_failure",b"partial_failure",u"validate_only",b"validate_only"]) -> None: ...

class KeywordPlanOperation(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    remove = ... # type: typing___Text

    @property
    def update_mask(self) -> google___protobuf___field_mask_pb2___FieldMask: ...

    @property
    def create(self) -> google___ads___googleads___v2___resources___keyword_plan_pb2___KeywordPlan: ...

    @property
    def update(self) -> google___ads___googleads___v2___resources___keyword_plan_pb2___KeywordPlan: ...

    def __init__(self,
        *,
        update_mask : typing___Optional[google___protobuf___field_mask_pb2___FieldMask] = None,
        create : typing___Optional[google___ads___googleads___v2___resources___keyword_plan_pb2___KeywordPlan] = None,
        update : typing___Optional[google___ads___googleads___v2___resources___keyword_plan_pb2___KeywordPlan] = None,
        remove : typing___Optional[typing___Text] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> KeywordPlanOperation: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def HasField(self, field_name: typing_extensions___Literal[u"create",u"operation",u"remove",u"update",u"update_mask"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"create",u"operation",u"remove",u"update",u"update_mask"]) -> None: ...
    else:
        def HasField(self, field_name: typing_extensions___Literal[u"create",b"create",u"operation",b"operation",u"remove",b"remove",u"update",b"update",u"update_mask",b"update_mask"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"create",b"create",u"operation",b"operation",u"remove",b"remove",u"update",b"update",u"update_mask",b"update_mask"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions___Literal[u"operation",b"operation"]) -> typing_extensions___Literal["create","update","remove"]: ...

class MutateKeywordPlansResponse(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    @property
    def partial_failure_error(self) -> google___rpc___status_pb2___Status: ...

    @property
    def results(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[MutateKeywordPlansResult]: ...

    def __init__(self,
        *,
        partial_failure_error : typing___Optional[google___rpc___status_pb2___Status] = None,
        results : typing___Optional[typing___Iterable[MutateKeywordPlansResult]] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> MutateKeywordPlansResponse: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def HasField(self, field_name: typing_extensions___Literal[u"partial_failure_error"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"partial_failure_error",u"results"]) -> None: ...
    else:
        def HasField(self, field_name: typing_extensions___Literal[u"partial_failure_error",b"partial_failure_error"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"partial_failure_error",b"partial_failure_error",u"results",b"results"]) -> None: ...

class MutateKeywordPlansResult(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    resource_name = ... # type: typing___Text

    def __init__(self,
        *,
        resource_name : typing___Optional[typing___Text] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> MutateKeywordPlansResult: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def ClearField(self, field_name: typing_extensions___Literal[u"resource_name"]) -> None: ...
    else:
        def ClearField(self, field_name: typing_extensions___Literal[u"resource_name",b"resource_name"]) -> None: ...

class GenerateForecastMetricsRequest(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    keyword_plan = ... # type: typing___Text

    def __init__(self,
        *,
        keyword_plan : typing___Optional[typing___Text] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> GenerateForecastMetricsRequest: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def ClearField(self, field_name: typing_extensions___Literal[u"keyword_plan"]) -> None: ...
    else:
        def ClearField(self, field_name: typing_extensions___Literal[u"keyword_plan",b"keyword_plan"]) -> None: ...

class GenerateForecastMetricsResponse(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    @property
    def campaign_forecasts(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[KeywordPlanCampaignForecast]: ...

    @property
    def ad_group_forecasts(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[KeywordPlanAdGroupForecast]: ...

    @property
    def keyword_forecasts(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[KeywordPlanKeywordForecast]: ...

    def __init__(self,
        *,
        campaign_forecasts : typing___Optional[typing___Iterable[KeywordPlanCampaignForecast]] = None,
        ad_group_forecasts : typing___Optional[typing___Iterable[KeywordPlanAdGroupForecast]] = None,
        keyword_forecasts : typing___Optional[typing___Iterable[KeywordPlanKeywordForecast]] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> GenerateForecastMetricsResponse: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def ClearField(self, field_name: typing_extensions___Literal[u"ad_group_forecasts",u"campaign_forecasts",u"keyword_forecasts"]) -> None: ...
    else:
        def ClearField(self, field_name: typing_extensions___Literal[u"ad_group_forecasts",b"ad_group_forecasts",u"campaign_forecasts",b"campaign_forecasts",u"keyword_forecasts",b"keyword_forecasts"]) -> None: ...

class KeywordPlanCampaignForecast(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    @property
    def keyword_plan_campaign(self) -> google___protobuf___wrappers_pb2___StringValue: ...

    @property
    def campaign_forecast(self) -> ForecastMetrics: ...

    def __init__(self,
        *,
        keyword_plan_campaign : typing___Optional[google___protobuf___wrappers_pb2___StringValue] = None,
        campaign_forecast : typing___Optional[ForecastMetrics] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> KeywordPlanCampaignForecast: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def HasField(self, field_name: typing_extensions___Literal[u"campaign_forecast",u"keyword_plan_campaign"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"campaign_forecast",u"keyword_plan_campaign"]) -> None: ...
    else:
        def HasField(self, field_name: typing_extensions___Literal[u"campaign_forecast",b"campaign_forecast",u"keyword_plan_campaign",b"keyword_plan_campaign"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"campaign_forecast",b"campaign_forecast",u"keyword_plan_campaign",b"keyword_plan_campaign"]) -> None: ...

class KeywordPlanAdGroupForecast(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    @property
    def keyword_plan_ad_group(self) -> google___protobuf___wrappers_pb2___StringValue: ...

    @property
    def ad_group_forecast(self) -> ForecastMetrics: ...

    def __init__(self,
        *,
        keyword_plan_ad_group : typing___Optional[google___protobuf___wrappers_pb2___StringValue] = None,
        ad_group_forecast : typing___Optional[ForecastMetrics] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> KeywordPlanAdGroupForecast: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def HasField(self, field_name: typing_extensions___Literal[u"ad_group_forecast",u"keyword_plan_ad_group"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"ad_group_forecast",u"keyword_plan_ad_group"]) -> None: ...
    else:
        def HasField(self, field_name: typing_extensions___Literal[u"ad_group_forecast",b"ad_group_forecast",u"keyword_plan_ad_group",b"keyword_plan_ad_group"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"ad_group_forecast",b"ad_group_forecast",u"keyword_plan_ad_group",b"keyword_plan_ad_group"]) -> None: ...

class KeywordPlanKeywordForecast(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    @property
    def keyword_plan_ad_group_keyword(self) -> google___protobuf___wrappers_pb2___StringValue: ...

    @property
    def keyword_forecast(self) -> ForecastMetrics: ...

    def __init__(self,
        *,
        keyword_plan_ad_group_keyword : typing___Optional[google___protobuf___wrappers_pb2___StringValue] = None,
        keyword_forecast : typing___Optional[ForecastMetrics] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> KeywordPlanKeywordForecast: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def HasField(self, field_name: typing_extensions___Literal[u"keyword_forecast",u"keyword_plan_ad_group_keyword"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"keyword_forecast",u"keyword_plan_ad_group_keyword"]) -> None: ...
    else:
        def HasField(self, field_name: typing_extensions___Literal[u"keyword_forecast",b"keyword_forecast",u"keyword_plan_ad_group_keyword",b"keyword_plan_ad_group_keyword"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"keyword_forecast",b"keyword_forecast",u"keyword_plan_ad_group_keyword",b"keyword_plan_ad_group_keyword"]) -> None: ...

class ForecastMetrics(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    @property
    def impressions(self) -> google___protobuf___wrappers_pb2___DoubleValue: ...

    @property
    def ctr(self) -> google___protobuf___wrappers_pb2___DoubleValue: ...

    @property
    def average_cpc(self) -> google___protobuf___wrappers_pb2___Int64Value: ...

    @property
    def clicks(self) -> google___protobuf___wrappers_pb2___DoubleValue: ...

    @property
    def cost_micros(self) -> google___protobuf___wrappers_pb2___Int64Value: ...

    def __init__(self,
        *,
        impressions : typing___Optional[google___protobuf___wrappers_pb2___DoubleValue] = None,
        ctr : typing___Optional[google___protobuf___wrappers_pb2___DoubleValue] = None,
        average_cpc : typing___Optional[google___protobuf___wrappers_pb2___Int64Value] = None,
        clicks : typing___Optional[google___protobuf___wrappers_pb2___DoubleValue] = None,
        cost_micros : typing___Optional[google___protobuf___wrappers_pb2___Int64Value] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> ForecastMetrics: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def HasField(self, field_name: typing_extensions___Literal[u"average_cpc",u"clicks",u"cost_micros",u"ctr",u"impressions"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"average_cpc",u"clicks",u"cost_micros",u"ctr",u"impressions"]) -> None: ...
    else:
        def HasField(self, field_name: typing_extensions___Literal[u"average_cpc",b"average_cpc",u"clicks",b"clicks",u"cost_micros",b"cost_micros",u"ctr",b"ctr",u"impressions",b"impressions"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"average_cpc",b"average_cpc",u"clicks",b"clicks",u"cost_micros",b"cost_micros",u"ctr",b"ctr",u"impressions",b"impressions"]) -> None: ...

class GenerateHistoricalMetricsRequest(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    keyword_plan = ... # type: typing___Text

    def __init__(self,
        *,
        keyword_plan : typing___Optional[typing___Text] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> GenerateHistoricalMetricsRequest: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def ClearField(self, field_name: typing_extensions___Literal[u"keyword_plan"]) -> None: ...
    else:
        def ClearField(self, field_name: typing_extensions___Literal[u"keyword_plan",b"keyword_plan"]) -> None: ...

class GenerateHistoricalMetricsResponse(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    @property
    def metrics(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[KeywordPlanKeywordHistoricalMetrics]: ...

    def __init__(self,
        *,
        metrics : typing___Optional[typing___Iterable[KeywordPlanKeywordHistoricalMetrics]] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> GenerateHistoricalMetricsResponse: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def ClearField(self, field_name: typing_extensions___Literal[u"metrics"]) -> None: ...
    else:
        def ClearField(self, field_name: typing_extensions___Literal[u"metrics",b"metrics"]) -> None: ...

class KeywordPlanKeywordHistoricalMetrics(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    @property
    def search_query(self) -> google___protobuf___wrappers_pb2___StringValue: ...

    @property
    def keyword_metrics(self) -> google___ads___googleads___v2___common___keyword_plan_common_pb2___KeywordPlanHistoricalMetrics: ...

    def __init__(self,
        *,
        search_query : typing___Optional[google___protobuf___wrappers_pb2___StringValue] = None,
        keyword_metrics : typing___Optional[google___ads___googleads___v2___common___keyword_plan_common_pb2___KeywordPlanHistoricalMetrics] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> KeywordPlanKeywordHistoricalMetrics: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def HasField(self, field_name: typing_extensions___Literal[u"keyword_metrics",u"search_query"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"keyword_metrics",u"search_query"]) -> None: ...
    else:
        def HasField(self, field_name: typing_extensions___Literal[u"keyword_metrics",b"keyword_metrics",u"search_query",b"search_query"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"keyword_metrics",b"keyword_metrics",u"search_query",b"search_query"]) -> None: ...
