"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.ads.google_ads.v6.proto.enums.user_identifier_source_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 OfflineUserAddressInfo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    HASHED_FIRST_NAME_FIELD_NUMBER: builtins.int
    HASHED_LAST_NAME_FIELD_NUMBER: builtins.int
    CITY_FIELD_NUMBER: builtins.int
    STATE_FIELD_NUMBER: builtins.int
    COUNTRY_CODE_FIELD_NUMBER: builtins.int
    POSTAL_CODE_FIELD_NUMBER: builtins.int
    hashed_first_name: typing.Text = ...
    hashed_last_name: typing.Text = ...
    city: typing.Text = ...
    state: typing.Text = ...
    country_code: typing.Text = ...
    postal_code: typing.Text = ...
    def __init__(
        self,
        *,
        hashed_first_name: typing.Text = ...,
        hashed_last_name: typing.Text = ...,
        city: typing.Text = ...,
        state: typing.Text = ...,
        country_code: typing.Text = ...,
        postal_code: typing.Text = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions.Literal[
            "_city",
            b"_city",
            "_country_code",
            b"_country_code",
            "_hashed_first_name",
            b"_hashed_first_name",
            "_hashed_last_name",
            b"_hashed_last_name",
            "_postal_code",
            b"_postal_code",
            "_state",
            b"_state",
            "city",
            b"city",
            "country_code",
            b"country_code",
            "hashed_first_name",
            b"hashed_first_name",
            "hashed_last_name",
            b"hashed_last_name",
            "postal_code",
            b"postal_code",
            "state",
            b"state",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "_city",
            b"_city",
            "_country_code",
            b"_country_code",
            "_hashed_first_name",
            b"_hashed_first_name",
            "_hashed_last_name",
            b"_hashed_last_name",
            "_postal_code",
            b"_postal_code",
            "_state",
            b"_state",
            "city",
            b"city",
            "country_code",
            b"country_code",
            "hashed_first_name",
            b"hashed_first_name",
            "hashed_last_name",
            b"hashed_last_name",
            "postal_code",
            b"postal_code",
            "state",
            b"state",
        ],
    ) -> None: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing_extensions.Literal["_city", b"_city"]
    ) -> typing_extensions.Literal["city"]: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing_extensions.Literal["_country_code", b"_country_code"]
    ) -> typing_extensions.Literal["country_code"]: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal[
            "_hashed_first_name", b"_hashed_first_name"
        ],
    ) -> typing_extensions.Literal["hashed_first_name"]: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal[
            "_hashed_last_name", b"_hashed_last_name"
        ],
    ) -> typing_extensions.Literal["hashed_last_name"]: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing_extensions.Literal["_postal_code", b"_postal_code"]
    ) -> typing_extensions.Literal["postal_code"]: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing_extensions.Literal["_state", b"_state"]
    ) -> typing_extensions.Literal["state"]: ...

global___OfflineUserAddressInfo = OfflineUserAddressInfo

class UserIdentifier(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    USER_IDENTIFIER_SOURCE_FIELD_NUMBER: builtins.int
    HASHED_EMAIL_FIELD_NUMBER: builtins.int
    HASHED_PHONE_NUMBER_FIELD_NUMBER: builtins.int
    MOBILE_ID_FIELD_NUMBER: builtins.int
    THIRD_PARTY_USER_ID_FIELD_NUMBER: builtins.int
    ADDRESS_INFO_FIELD_NUMBER: builtins.int
    user_identifier_source: google.ads.google_ads.v6.proto.enums.user_identifier_source_pb2.UserIdentifierSourceEnum.UserIdentifierSource.V = (
        ...
    )
    hashed_email: typing.Text = ...
    hashed_phone_number: typing.Text = ...
    mobile_id: typing.Text = ...
    third_party_user_id: typing.Text = ...
    @property
    def address_info(self) -> global___OfflineUserAddressInfo: ...
    def __init__(
        self,
        *,
        user_identifier_source: google.ads.google_ads.v6.proto.enums.user_identifier_source_pb2.UserIdentifierSourceEnum.UserIdentifierSource.V = ...,
        hashed_email: typing.Text = ...,
        hashed_phone_number: typing.Text = ...,
        mobile_id: typing.Text = ...,
        third_party_user_id: typing.Text = ...,
        address_info: typing.Optional[global___OfflineUserAddressInfo] = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions.Literal[
            "address_info",
            b"address_info",
            "hashed_email",
            b"hashed_email",
            "hashed_phone_number",
            b"hashed_phone_number",
            "identifier",
            b"identifier",
            "mobile_id",
            b"mobile_id",
            "third_party_user_id",
            b"third_party_user_id",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "address_info",
            b"address_info",
            "hashed_email",
            b"hashed_email",
            "hashed_phone_number",
            b"hashed_phone_number",
            "identifier",
            b"identifier",
            "mobile_id",
            b"mobile_id",
            "third_party_user_id",
            b"third_party_user_id",
            "user_identifier_source",
            b"user_identifier_source",
        ],
    ) -> None: ...
    def WhichOneof(
        self, oneof_group: typing_extensions.Literal["identifier", b"identifier"]
    ) -> typing_extensions.Literal[
        "hashed_email",
        "hashed_phone_number",
        "mobile_id",
        "third_party_user_id",
        "address_info",
    ]: ...

global___UserIdentifier = UserIdentifier

class TransactionAttribute(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    TRANSACTION_DATE_TIME_FIELD_NUMBER: builtins.int
    TRANSACTION_AMOUNT_MICROS_FIELD_NUMBER: builtins.int
    CURRENCY_CODE_FIELD_NUMBER: builtins.int
    CONVERSION_ACTION_FIELD_NUMBER: builtins.int
    ORDER_ID_FIELD_NUMBER: builtins.int
    STORE_ATTRIBUTE_FIELD_NUMBER: builtins.int
    CUSTOM_VALUE_FIELD_NUMBER: builtins.int
    transaction_date_time: typing.Text = ...
    transaction_amount_micros: builtins.float = ...
    currency_code: typing.Text = ...
    conversion_action: typing.Text = ...
    order_id: typing.Text = ...
    custom_value: typing.Text = ...
    @property
    def store_attribute(self) -> global___StoreAttribute: ...
    def __init__(
        self,
        *,
        transaction_date_time: typing.Text = ...,
        transaction_amount_micros: builtins.float = ...,
        currency_code: typing.Text = ...,
        conversion_action: typing.Text = ...,
        order_id: typing.Text = ...,
        store_attribute: typing.Optional[global___StoreAttribute] = ...,
        custom_value: typing.Text = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions.Literal[
            "_conversion_action",
            b"_conversion_action",
            "_currency_code",
            b"_currency_code",
            "_custom_value",
            b"_custom_value",
            "_order_id",
            b"_order_id",
            "_transaction_amount_micros",
            b"_transaction_amount_micros",
            "_transaction_date_time",
            b"_transaction_date_time",
            "conversion_action",
            b"conversion_action",
            "currency_code",
            b"currency_code",
            "custom_value",
            b"custom_value",
            "order_id",
            b"order_id",
            "store_attribute",
            b"store_attribute",
            "transaction_amount_micros",
            b"transaction_amount_micros",
            "transaction_date_time",
            b"transaction_date_time",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "_conversion_action",
            b"_conversion_action",
            "_currency_code",
            b"_currency_code",
            "_custom_value",
            b"_custom_value",
            "_order_id",
            b"_order_id",
            "_transaction_amount_micros",
            b"_transaction_amount_micros",
            "_transaction_date_time",
            b"_transaction_date_time",
            "conversion_action",
            b"conversion_action",
            "currency_code",
            b"currency_code",
            "custom_value",
            b"custom_value",
            "order_id",
            b"order_id",
            "store_attribute",
            b"store_attribute",
            "transaction_amount_micros",
            b"transaction_amount_micros",
            "transaction_date_time",
            b"transaction_date_time",
        ],
    ) -> None: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal[
            "_conversion_action", b"_conversion_action"
        ],
    ) -> typing_extensions.Literal["conversion_action"]: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal["_currency_code", b"_currency_code"],
    ) -> typing_extensions.Literal["currency_code"]: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing_extensions.Literal["_custom_value", b"_custom_value"]
    ) -> typing_extensions.Literal["custom_value"]: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing_extensions.Literal["_order_id", b"_order_id"]
    ) -> typing_extensions.Literal["order_id"]: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal[
            "_transaction_amount_micros", b"_transaction_amount_micros"
        ],
    ) -> typing_extensions.Literal["transaction_amount_micros"]: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal[
            "_transaction_date_time", b"_transaction_date_time"
        ],
    ) -> typing_extensions.Literal["transaction_date_time"]: ...

global___TransactionAttribute = TransactionAttribute

class StoreAttribute(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    STORE_CODE_FIELD_NUMBER: builtins.int
    store_code: typing.Text = ...
    def __init__(
        self,
        *,
        store_code: typing.Text = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions.Literal[
            "_store_code", b"_store_code", "store_code", b"store_code"
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "_store_code", b"_store_code", "store_code", b"store_code"
        ],
    ) -> None: ...
    def WhichOneof(
        self, oneof_group: typing_extensions.Literal["_store_code", b"_store_code"]
    ) -> typing_extensions.Literal["store_code"]: ...

global___StoreAttribute = StoreAttribute

class UserData(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    USER_IDENTIFIERS_FIELD_NUMBER: builtins.int
    TRANSACTION_ATTRIBUTE_FIELD_NUMBER: builtins.int
    USER_ATTRIBUTE_FIELD_NUMBER: builtins.int
    @property
    def user_identifiers(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        global___UserIdentifier
    ]: ...
    @property
    def transaction_attribute(self) -> global___TransactionAttribute: ...
    @property
    def user_attribute(self) -> global___UserAttribute: ...
    def __init__(
        self,
        *,
        user_identifiers: typing.Optional[
            typing.Iterable[global___UserIdentifier]
        ] = ...,
        transaction_attribute: typing.Optional[global___TransactionAttribute] = ...,
        user_attribute: typing.Optional[global___UserAttribute] = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions.Literal[
            "transaction_attribute",
            b"transaction_attribute",
            "user_attribute",
            b"user_attribute",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "transaction_attribute",
            b"transaction_attribute",
            "user_attribute",
            b"user_attribute",
            "user_identifiers",
            b"user_identifiers",
        ],
    ) -> None: ...

global___UserData = UserData

class UserAttribute(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    LIFETIME_VALUE_MICROS_FIELD_NUMBER: builtins.int
    LIFETIME_VALUE_BUCKET_FIELD_NUMBER: builtins.int
    lifetime_value_micros: builtins.int = ...
    lifetime_value_bucket: builtins.int = ...
    def __init__(
        self,
        *,
        lifetime_value_micros: builtins.int = ...,
        lifetime_value_bucket: builtins.int = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions.Literal[
            "_lifetime_value_bucket",
            b"_lifetime_value_bucket",
            "_lifetime_value_micros",
            b"_lifetime_value_micros",
            "lifetime_value_bucket",
            b"lifetime_value_bucket",
            "lifetime_value_micros",
            b"lifetime_value_micros",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "_lifetime_value_bucket",
            b"_lifetime_value_bucket",
            "_lifetime_value_micros",
            b"_lifetime_value_micros",
            "lifetime_value_bucket",
            b"lifetime_value_bucket",
            "lifetime_value_micros",
            b"lifetime_value_micros",
        ],
    ) -> None: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal[
            "_lifetime_value_bucket", b"_lifetime_value_bucket"
        ],
    ) -> typing_extensions.Literal["lifetime_value_bucket"]: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal[
            "_lifetime_value_micros", b"_lifetime_value_micros"
        ],
    ) -> typing_extensions.Literal["lifetime_value_micros"]: ...

global___UserAttribute = UserAttribute

class CustomerMatchUserListMetadata(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    USER_LIST_FIELD_NUMBER: builtins.int
    user_list: typing.Text = ...
    def __init__(
        self,
        *,
        user_list: typing.Text = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions.Literal[
            "_user_list", b"_user_list", "user_list", b"user_list"
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "_user_list", b"_user_list", "user_list", b"user_list"
        ],
    ) -> None: ...
    def WhichOneof(
        self, oneof_group: typing_extensions.Literal["_user_list", b"_user_list"]
    ) -> typing_extensions.Literal["user_list"]: ...

global___CustomerMatchUserListMetadata = CustomerMatchUserListMetadata

class StoreSalesMetadata(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    LOYALTY_FRACTION_FIELD_NUMBER: builtins.int
    TRANSACTION_UPLOAD_FRACTION_FIELD_NUMBER: builtins.int
    CUSTOM_KEY_FIELD_NUMBER: builtins.int
    THIRD_PARTY_METADATA_FIELD_NUMBER: builtins.int
    loyalty_fraction: builtins.float = ...
    transaction_upload_fraction: builtins.float = ...
    custom_key: typing.Text = ...
    @property
    def third_party_metadata(self) -> global___StoreSalesThirdPartyMetadata: ...
    def __init__(
        self,
        *,
        loyalty_fraction: builtins.float = ...,
        transaction_upload_fraction: builtins.float = ...,
        custom_key: typing.Text = ...,
        third_party_metadata: typing.Optional[
            global___StoreSalesThirdPartyMetadata
        ] = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions.Literal[
            "_custom_key",
            b"_custom_key",
            "_loyalty_fraction",
            b"_loyalty_fraction",
            "_transaction_upload_fraction",
            b"_transaction_upload_fraction",
            "custom_key",
            b"custom_key",
            "loyalty_fraction",
            b"loyalty_fraction",
            "third_party_metadata",
            b"third_party_metadata",
            "transaction_upload_fraction",
            b"transaction_upload_fraction",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "_custom_key",
            b"_custom_key",
            "_loyalty_fraction",
            b"_loyalty_fraction",
            "_transaction_upload_fraction",
            b"_transaction_upload_fraction",
            "custom_key",
            b"custom_key",
            "loyalty_fraction",
            b"loyalty_fraction",
            "third_party_metadata",
            b"third_party_metadata",
            "transaction_upload_fraction",
            b"transaction_upload_fraction",
        ],
    ) -> None: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing_extensions.Literal["_custom_key", b"_custom_key"]
    ) -> typing_extensions.Literal["custom_key"]: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal[
            "_loyalty_fraction", b"_loyalty_fraction"
        ],
    ) -> typing_extensions.Literal["loyalty_fraction"]: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal[
            "_transaction_upload_fraction", b"_transaction_upload_fraction"
        ],
    ) -> typing_extensions.Literal["transaction_upload_fraction"]: ...

global___StoreSalesMetadata = StoreSalesMetadata

class StoreSalesThirdPartyMetadata(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    ADVERTISER_UPLOAD_DATE_TIME_FIELD_NUMBER: builtins.int
    VALID_TRANSACTION_FRACTION_FIELD_NUMBER: builtins.int
    PARTNER_MATCH_FRACTION_FIELD_NUMBER: builtins.int
    PARTNER_UPLOAD_FRACTION_FIELD_NUMBER: builtins.int
    BRIDGE_MAP_VERSION_ID_FIELD_NUMBER: builtins.int
    PARTNER_ID_FIELD_NUMBER: builtins.int
    advertiser_upload_date_time: typing.Text = ...
    valid_transaction_fraction: builtins.float = ...
    partner_match_fraction: builtins.float = ...
    partner_upload_fraction: builtins.float = ...
    bridge_map_version_id: typing.Text = ...
    partner_id: builtins.int = ...
    def __init__(
        self,
        *,
        advertiser_upload_date_time: typing.Text = ...,
        valid_transaction_fraction: builtins.float = ...,
        partner_match_fraction: builtins.float = ...,
        partner_upload_fraction: builtins.float = ...,
        bridge_map_version_id: typing.Text = ...,
        partner_id: builtins.int = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions.Literal[
            "_advertiser_upload_date_time",
            b"_advertiser_upload_date_time",
            "_bridge_map_version_id",
            b"_bridge_map_version_id",
            "_partner_id",
            b"_partner_id",
            "_partner_match_fraction",
            b"_partner_match_fraction",
            "_partner_upload_fraction",
            b"_partner_upload_fraction",
            "_valid_transaction_fraction",
            b"_valid_transaction_fraction",
            "advertiser_upload_date_time",
            b"advertiser_upload_date_time",
            "bridge_map_version_id",
            b"bridge_map_version_id",
            "partner_id",
            b"partner_id",
            "partner_match_fraction",
            b"partner_match_fraction",
            "partner_upload_fraction",
            b"partner_upload_fraction",
            "valid_transaction_fraction",
            b"valid_transaction_fraction",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "_advertiser_upload_date_time",
            b"_advertiser_upload_date_time",
            "_bridge_map_version_id",
            b"_bridge_map_version_id",
            "_partner_id",
            b"_partner_id",
            "_partner_match_fraction",
            b"_partner_match_fraction",
            "_partner_upload_fraction",
            b"_partner_upload_fraction",
            "_valid_transaction_fraction",
            b"_valid_transaction_fraction",
            "advertiser_upload_date_time",
            b"advertiser_upload_date_time",
            "bridge_map_version_id",
            b"bridge_map_version_id",
            "partner_id",
            b"partner_id",
            "partner_match_fraction",
            b"partner_match_fraction",
            "partner_upload_fraction",
            b"partner_upload_fraction",
            "valid_transaction_fraction",
            b"valid_transaction_fraction",
        ],
    ) -> None: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal[
            "_advertiser_upload_date_time", b"_advertiser_upload_date_time"
        ],
    ) -> typing_extensions.Literal["advertiser_upload_date_time"]: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal[
            "_bridge_map_version_id", b"_bridge_map_version_id"
        ],
    ) -> typing_extensions.Literal["bridge_map_version_id"]: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing_extensions.Literal["_partner_id", b"_partner_id"]
    ) -> typing_extensions.Literal["partner_id"]: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal[
            "_partner_match_fraction", b"_partner_match_fraction"
        ],
    ) -> typing_extensions.Literal["partner_match_fraction"]: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal[
            "_partner_upload_fraction", b"_partner_upload_fraction"
        ],
    ) -> typing_extensions.Literal["partner_upload_fraction"]: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing_extensions.Literal[
            "_valid_transaction_fraction", b"_valid_transaction_fraction"
        ],
    ) -> typing_extensions.Literal["valid_transaction_fraction"]: ...

global___StoreSalesThirdPartyMetadata = StoreSalesThirdPartyMetadata
