# @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,
    overload as typing___overload,
)

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 typing_extensions import Literal as typing_extensions___Literal

from google.ads.google_ads.v5.proto.common.tag_snippet_pb2 import (
    TagSnippet as google___ads___googleads___v5___common___tag_snippet_pb2___TagSnippet,
)
from google.ads.google_ads.v5.proto.enums.attribution_model_pb2 import (
    AttributionModelEnum as google___ads___googleads___v5___enums___attribution_model_pb2___AttributionModelEnum,
)
from google.ads.google_ads.v5.proto.enums.conversion_action_category_pb2 import (
    ConversionActionCategoryEnum as google___ads___googleads___v5___enums___conversion_action_category_pb2___ConversionActionCategoryEnum,
)
from google.ads.google_ads.v5.proto.enums.conversion_action_counting_type_pb2 import (
    ConversionActionCountingTypeEnum as google___ads___googleads___v5___enums___conversion_action_counting_type_pb2___ConversionActionCountingTypeEnum,
)
from google.ads.google_ads.v5.proto.enums.conversion_action_status_pb2 import (
    ConversionActionStatusEnum as google___ads___googleads___v5___enums___conversion_action_status_pb2___ConversionActionStatusEnum,
)
from google.ads.google_ads.v5.proto.enums.conversion_action_type_pb2 import (
    ConversionActionTypeEnum as google___ads___googleads___v5___enums___conversion_action_type_pb2___ConversionActionTypeEnum,
)
from google.ads.google_ads.v5.proto.enums.data_driven_model_status_pb2 import (
    DataDrivenModelStatusEnum as google___ads___googleads___v5___enums___data_driven_model_status_pb2___DataDrivenModelStatusEnum,
)
from google.ads.google_ads.v5.proto.enums.mobile_app_vendor_pb2 import (
    MobileAppVendorEnum as google___ads___googleads___v5___enums___mobile_app_vendor_pb2___MobileAppVendorEnum,
)

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

DESCRIPTOR: google___protobuf___descriptor___FileDescriptor = ...

class ConversionAction(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    class AttributionModelSettings(google___protobuf___message___Message):
        DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
        attribution_model: google___ads___googleads___v5___enums___attribution_model_pb2___AttributionModelEnum.AttributionModelValue = ...
        data_driven_model_status: google___ads___googleads___v5___enums___data_driven_model_status_pb2___DataDrivenModelStatusEnum.DataDrivenModelStatusValue = ...
        def __init__(
            self,
            *,
            attribution_model: typing___Optional[
                google___ads___googleads___v5___enums___attribution_model_pb2___AttributionModelEnum.AttributionModelValue
            ] = None,
            data_driven_model_status: typing___Optional[
                google___ads___googleads___v5___enums___data_driven_model_status_pb2___DataDrivenModelStatusEnum.DataDrivenModelStatusValue
            ] = None,
        ) -> None: ...
        def ClearField(
            self,
            field_name: typing_extensions___Literal[
                "attribution_model",
                b"attribution_model",
                "data_driven_model_status",
                b"data_driven_model_status",
            ],
        ) -> None: ...
    type___AttributionModelSettings = AttributionModelSettings
    class ValueSettings(google___protobuf___message___Message):
        DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
        default_value: builtin___float = ...
        default_currency_code: typing___Text = ...
        always_use_default_value: builtin___bool = ...
        def __init__(
            self,
            *,
            default_value: typing___Optional[builtin___float] = None,
            default_currency_code: typing___Optional[typing___Text] = None,
            always_use_default_value: typing___Optional[builtin___bool] = None,
        ) -> None: ...
        def HasField(
            self,
            field_name: typing_extensions___Literal[
                "_always_use_default_value",
                b"_always_use_default_value",
                "_default_currency_code",
                b"_default_currency_code",
                "_default_value",
                b"_default_value",
                "always_use_default_value",
                b"always_use_default_value",
                "default_currency_code",
                b"default_currency_code",
                "default_value",
                b"default_value",
            ],
        ) -> builtin___bool: ...
        def ClearField(
            self,
            field_name: typing_extensions___Literal[
                "_always_use_default_value",
                b"_always_use_default_value",
                "_default_currency_code",
                b"_default_currency_code",
                "_default_value",
                b"_default_value",
                "always_use_default_value",
                b"always_use_default_value",
                "default_currency_code",
                b"default_currency_code",
                "default_value",
                b"default_value",
            ],
        ) -> None: ...
        @typing___overload
        def WhichOneof(
            self,
            oneof_group: typing_extensions___Literal[
                "_always_use_default_value", b"_always_use_default_value"
            ],
        ) -> typing_extensions___Literal["always_use_default_value"]: ...
        @typing___overload
        def WhichOneof(
            self,
            oneof_group: typing_extensions___Literal[
                "_default_currency_code", b"_default_currency_code"
            ],
        ) -> typing_extensions___Literal["default_currency_code"]: ...
        @typing___overload
        def WhichOneof(
            self,
            oneof_group: typing_extensions___Literal[
                "_default_value", b"_default_value"
            ],
        ) -> typing_extensions___Literal["default_value"]: ...
    type___ValueSettings = ValueSettings
    class ThirdPartyAppAnalyticsSettings(google___protobuf___message___Message):
        DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
        event_name: typing___Text = ...
        def __init__(
            self, *, event_name: typing___Optional[typing___Text] = None,
        ) -> None: ...
        def HasField(
            self,
            field_name: typing_extensions___Literal[
                "_event_name", b"_event_name", "event_name", b"event_name"
            ],
        ) -> builtin___bool: ...
        def ClearField(
            self,
            field_name: typing_extensions___Literal[
                "_event_name", b"_event_name", "event_name", b"event_name"
            ],
        ) -> None: ...
        def WhichOneof(
            self,
            oneof_group: typing_extensions___Literal["_event_name", b"_event_name"],
        ) -> typing_extensions___Literal["event_name"]: ...
    type___ThirdPartyAppAnalyticsSettings = ThirdPartyAppAnalyticsSettings
    class FirebaseSettings(google___protobuf___message___Message):
        DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
        event_name: typing___Text = ...
        project_id: typing___Text = ...
        def __init__(
            self,
            *,
            event_name: typing___Optional[typing___Text] = None,
            project_id: typing___Optional[typing___Text] = None,
        ) -> None: ...
        def HasField(
            self,
            field_name: typing_extensions___Literal[
                "_event_name",
                b"_event_name",
                "_project_id",
                b"_project_id",
                "event_name",
                b"event_name",
                "project_id",
                b"project_id",
            ],
        ) -> builtin___bool: ...
        def ClearField(
            self,
            field_name: typing_extensions___Literal[
                "_event_name",
                b"_event_name",
                "_project_id",
                b"_project_id",
                "event_name",
                b"event_name",
                "project_id",
                b"project_id",
            ],
        ) -> None: ...
        @typing___overload
        def WhichOneof(
            self,
            oneof_group: typing_extensions___Literal["_event_name", b"_event_name"],
        ) -> typing_extensions___Literal["event_name"]: ...
        @typing___overload
        def WhichOneof(
            self,
            oneof_group: typing_extensions___Literal["_project_id", b"_project_id"],
        ) -> typing_extensions___Literal["project_id"]: ...
    type___FirebaseSettings = FirebaseSettings

    resource_name: typing___Text = ...
    id: builtin___int = ...
    name: typing___Text = ...
    status: google___ads___googleads___v5___enums___conversion_action_status_pb2___ConversionActionStatusEnum.ConversionActionStatusValue = ...
    type: google___ads___googleads___v5___enums___conversion_action_type_pb2___ConversionActionTypeEnum.ConversionActionTypeValue = ...
    category: google___ads___googleads___v5___enums___conversion_action_category_pb2___ConversionActionCategoryEnum.ConversionActionCategoryValue = ...
    owner_customer: typing___Text = ...
    include_in_conversions_metric: builtin___bool = ...
    click_through_lookback_window_days: builtin___int = ...
    view_through_lookback_window_days: builtin___int = ...
    counting_type: google___ads___googleads___v5___enums___conversion_action_counting_type_pb2___ConversionActionCountingTypeEnum.ConversionActionCountingTypeValue = ...
    phone_call_duration_seconds: builtin___int = ...
    app_id: typing___Text = ...
    mobile_app_vendor: google___ads___googleads___v5___enums___mobile_app_vendor_pb2___MobileAppVendorEnum.MobileAppVendorValue = ...
    @property
    def value_settings(self) -> type___ConversionAction.ValueSettings: ...
    @property
    def attribution_model_settings(
        self,
    ) -> type___ConversionAction.AttributionModelSettings: ...
    @property
    def tag_snippets(
        self,
    ) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[
        google___ads___googleads___v5___common___tag_snippet_pb2___TagSnippet
    ]: ...
    @property
    def firebase_settings(self) -> type___ConversionAction.FirebaseSettings: ...
    @property
    def third_party_app_analytics_settings(
        self,
    ) -> type___ConversionAction.ThirdPartyAppAnalyticsSettings: ...
    def __init__(
        self,
        *,
        resource_name: typing___Optional[typing___Text] = None,
        id: typing___Optional[builtin___int] = None,
        name: typing___Optional[typing___Text] = None,
        status: typing___Optional[
            google___ads___googleads___v5___enums___conversion_action_status_pb2___ConversionActionStatusEnum.ConversionActionStatusValue
        ] = None,
        type: typing___Optional[
            google___ads___googleads___v5___enums___conversion_action_type_pb2___ConversionActionTypeEnum.ConversionActionTypeValue
        ] = None,
        category: typing___Optional[
            google___ads___googleads___v5___enums___conversion_action_category_pb2___ConversionActionCategoryEnum.ConversionActionCategoryValue
        ] = None,
        owner_customer: typing___Optional[typing___Text] = None,
        include_in_conversions_metric: typing___Optional[builtin___bool] = None,
        click_through_lookback_window_days: typing___Optional[builtin___int] = None,
        view_through_lookback_window_days: typing___Optional[builtin___int] = None,
        value_settings: typing___Optional[type___ConversionAction.ValueSettings] = None,
        counting_type: typing___Optional[
            google___ads___googleads___v5___enums___conversion_action_counting_type_pb2___ConversionActionCountingTypeEnum.ConversionActionCountingTypeValue
        ] = None,
        attribution_model_settings: typing___Optional[
            type___ConversionAction.AttributionModelSettings
        ] = None,
        tag_snippets: typing___Optional[
            typing___Iterable[
                google___ads___googleads___v5___common___tag_snippet_pb2___TagSnippet
            ]
        ] = None,
        phone_call_duration_seconds: typing___Optional[builtin___int] = None,
        app_id: typing___Optional[typing___Text] = None,
        mobile_app_vendor: typing___Optional[
            google___ads___googleads___v5___enums___mobile_app_vendor_pb2___MobileAppVendorEnum.MobileAppVendorValue
        ] = None,
        firebase_settings: typing___Optional[
            type___ConversionAction.FirebaseSettings
        ] = None,
        third_party_app_analytics_settings: typing___Optional[
            type___ConversionAction.ThirdPartyAppAnalyticsSettings
        ] = None,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions___Literal[
            "_app_id",
            b"_app_id",
            "_click_through_lookback_window_days",
            b"_click_through_lookback_window_days",
            "_id",
            b"_id",
            "_include_in_conversions_metric",
            b"_include_in_conversions_metric",
            "_name",
            b"_name",
            "_owner_customer",
            b"_owner_customer",
            "_phone_call_duration_seconds",
            b"_phone_call_duration_seconds",
            "_view_through_lookback_window_days",
            b"_view_through_lookback_window_days",
            "app_id",
            b"app_id",
            "attribution_model_settings",
            b"attribution_model_settings",
            "click_through_lookback_window_days",
            b"click_through_lookback_window_days",
            "firebase_settings",
            b"firebase_settings",
            "id",
            b"id",
            "include_in_conversions_metric",
            b"include_in_conversions_metric",
            "name",
            b"name",
            "owner_customer",
            b"owner_customer",
            "phone_call_duration_seconds",
            b"phone_call_duration_seconds",
            "third_party_app_analytics_settings",
            b"third_party_app_analytics_settings",
            "value_settings",
            b"value_settings",
            "view_through_lookback_window_days",
            b"view_through_lookback_window_days",
        ],
    ) -> builtin___bool: ...
    def ClearField(
        self,
        field_name: typing_extensions___Literal[
            "_app_id",
            b"_app_id",
            "_click_through_lookback_window_days",
            b"_click_through_lookback_window_days",
            "_id",
            b"_id",
            "_include_in_conversions_metric",
            b"_include_in_conversions_metric",
            "_name",
            b"_name",
            "_owner_customer",
            b"_owner_customer",
            "_phone_call_duration_seconds",
            b"_phone_call_duration_seconds",
            "_view_through_lookback_window_days",
            b"_view_through_lookback_window_days",
            "app_id",
            b"app_id",
            "attribution_model_settings",
            b"attribution_model_settings",
            "category",
            b"category",
            "click_through_lookback_window_days",
            b"click_through_lookback_window_days",
            "counting_type",
            b"counting_type",
            "firebase_settings",
            b"firebase_settings",
            "id",
            b"id",
            "include_in_conversions_metric",
            b"include_in_conversions_metric",
            "mobile_app_vendor",
            b"mobile_app_vendor",
            "name",
            b"name",
            "owner_customer",
            b"owner_customer",
            "phone_call_duration_seconds",
            b"phone_call_duration_seconds",
            "resource_name",
            b"resource_name",
            "status",
            b"status",
            "tag_snippets",
            b"tag_snippets",
            "third_party_app_analytics_settings",
            b"third_party_app_analytics_settings",
            "type",
            b"type",
            "value_settings",
            b"value_settings",
            "view_through_lookback_window_days",
            b"view_through_lookback_window_days",
        ],
    ) -> None: ...
    @typing___overload
    def WhichOneof(
        self, oneof_group: typing_extensions___Literal["_app_id", b"_app_id"]
    ) -> typing_extensions___Literal["app_id"]: ...
    @typing___overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions___Literal[
            "_click_through_lookback_window_days",
            b"_click_through_lookback_window_days",
        ],
    ) -> typing_extensions___Literal["click_through_lookback_window_days"]: ...
    @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[
            "_include_in_conversions_metric", b"_include_in_conversions_metric"
        ],
    ) -> typing_extensions___Literal["include_in_conversions_metric"]: ...
    @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["_owner_customer", b"_owner_customer"],
    ) -> typing_extensions___Literal["owner_customer"]: ...
    @typing___overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions___Literal[
            "_phone_call_duration_seconds", b"_phone_call_duration_seconds"
        ],
    ) -> typing_extensions___Literal["phone_call_duration_seconds"]: ...
    @typing___overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions___Literal[
            "_view_through_lookback_window_days", b"_view_through_lookback_window_days"
        ],
    ) -> typing_extensions___Literal["view_through_lookback_window_days"]: ...

type___ConversionAction = ConversionAction
