"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.ads.google_ads.v4.proto.common.user_lists_pb2
import google.ads.google_ads.v4.proto.enums.access_reason_pb2
import google.ads.google_ads.v4.proto.enums.user_list_access_status_pb2
import google.ads.google_ads.v4.proto.enums.user_list_closing_reason_pb2
import google.ads.google_ads.v4.proto.enums.user_list_membership_status_pb2
import google.ads.google_ads.v4.proto.enums.user_list_size_range_pb2
import google.ads.google_ads.v4.proto.enums.user_list_type_pb2
import google.protobuf.descriptor
import google.protobuf.message
import google.protobuf.wrappers_pb2
import typing
import typing_extensions

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

class UserList(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    RESOURCE_NAME_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    READ_ONLY_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    MEMBERSHIP_STATUS_FIELD_NUMBER: builtins.int
    INTEGRATION_CODE_FIELD_NUMBER: builtins.int
    MEMBERSHIP_LIFE_SPAN_FIELD_NUMBER: builtins.int
    SIZE_FOR_DISPLAY_FIELD_NUMBER: builtins.int
    SIZE_RANGE_FOR_DISPLAY_FIELD_NUMBER: builtins.int
    SIZE_FOR_SEARCH_FIELD_NUMBER: builtins.int
    SIZE_RANGE_FOR_SEARCH_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    CLOSING_REASON_FIELD_NUMBER: builtins.int
    ACCESS_REASON_FIELD_NUMBER: builtins.int
    ACCOUNT_USER_LIST_STATUS_FIELD_NUMBER: builtins.int
    ELIGIBLE_FOR_SEARCH_FIELD_NUMBER: builtins.int
    ELIGIBLE_FOR_DISPLAY_FIELD_NUMBER: builtins.int
    CRM_BASED_USER_LIST_FIELD_NUMBER: builtins.int
    SIMILAR_USER_LIST_FIELD_NUMBER: builtins.int
    RULE_BASED_USER_LIST_FIELD_NUMBER: builtins.int
    LOGICAL_USER_LIST_FIELD_NUMBER: builtins.int
    BASIC_USER_LIST_FIELD_NUMBER: builtins.int
    resource_name: typing.Text = ...
    membership_status: google.ads.google_ads.v4.proto.enums.user_list_membership_status_pb2.UserListMembershipStatusEnum.UserListMembershipStatus.V = (
        ...
    )
    size_range_for_display: google.ads.google_ads.v4.proto.enums.user_list_size_range_pb2.UserListSizeRangeEnum.UserListSizeRange.V = (
        ...
    )
    size_range_for_search: google.ads.google_ads.v4.proto.enums.user_list_size_range_pb2.UserListSizeRangeEnum.UserListSizeRange.V = (
        ...
    )
    type: google.ads.google_ads.v4.proto.enums.user_list_type_pb2.UserListTypeEnum.UserListType.V = (
        ...
    )
    closing_reason: google.ads.google_ads.v4.proto.enums.user_list_closing_reason_pb2.UserListClosingReasonEnum.UserListClosingReason.V = (
        ...
    )
    access_reason: google.ads.google_ads.v4.proto.enums.access_reason_pb2.AccessReasonEnum.AccessReason.V = (
        ...
    )
    account_user_list_status: google.ads.google_ads.v4.proto.enums.user_list_access_status_pb2.UserListAccessStatusEnum.UserListAccessStatus.V = (
        ...
    )
    @property
    def id(self) -> google.protobuf.wrappers_pb2.Int64Value: ...
    @property
    def read_only(self) -> google.protobuf.wrappers_pb2.BoolValue: ...
    @property
    def name(self) -> google.protobuf.wrappers_pb2.StringValue: ...
    @property
    def description(self) -> google.protobuf.wrappers_pb2.StringValue: ...
    @property
    def integration_code(self) -> google.protobuf.wrappers_pb2.StringValue: ...
    @property
    def membership_life_span(self) -> google.protobuf.wrappers_pb2.Int64Value: ...
    @property
    def size_for_display(self) -> google.protobuf.wrappers_pb2.Int64Value: ...
    @property
    def size_for_search(self) -> google.protobuf.wrappers_pb2.Int64Value: ...
    @property
    def eligible_for_search(self) -> google.protobuf.wrappers_pb2.BoolValue: ...
    @property
    def eligible_for_display(self) -> google.protobuf.wrappers_pb2.BoolValue: ...
    @property
    def crm_based_user_list(
        self,
    ) -> google.ads.google_ads.v4.proto.common.user_lists_pb2.CrmBasedUserListInfo: ...
    @property
    def similar_user_list(
        self,
    ) -> google.ads.google_ads.v4.proto.common.user_lists_pb2.SimilarUserListInfo: ...
    @property
    def rule_based_user_list(
        self,
    ) -> google.ads.google_ads.v4.proto.common.user_lists_pb2.RuleBasedUserListInfo: ...
    @property
    def logical_user_list(
        self,
    ) -> google.ads.google_ads.v4.proto.common.user_lists_pb2.LogicalUserListInfo: ...
    @property
    def basic_user_list(
        self,
    ) -> google.ads.google_ads.v4.proto.common.user_lists_pb2.BasicUserListInfo: ...
    def __init__(
        self,
        *,
        resource_name: typing.Text = ...,
        id: typing.Optional[google.protobuf.wrappers_pb2.Int64Value] = ...,
        read_only: typing.Optional[google.protobuf.wrappers_pb2.BoolValue] = ...,
        name: typing.Optional[google.protobuf.wrappers_pb2.StringValue] = ...,
        description: typing.Optional[google.protobuf.wrappers_pb2.StringValue] = ...,
        membership_status: google.ads.google_ads.v4.proto.enums.user_list_membership_status_pb2.UserListMembershipStatusEnum.UserListMembershipStatus.V = ...,
        integration_code: typing.Optional[
            google.protobuf.wrappers_pb2.StringValue
        ] = ...,
        membership_life_span: typing.Optional[
            google.protobuf.wrappers_pb2.Int64Value
        ] = ...,
        size_for_display: typing.Optional[
            google.protobuf.wrappers_pb2.Int64Value
        ] = ...,
        size_range_for_display: google.ads.google_ads.v4.proto.enums.user_list_size_range_pb2.UserListSizeRangeEnum.UserListSizeRange.V = ...,
        size_for_search: typing.Optional[google.protobuf.wrappers_pb2.Int64Value] = ...,
        size_range_for_search: google.ads.google_ads.v4.proto.enums.user_list_size_range_pb2.UserListSizeRangeEnum.UserListSizeRange.V = ...,
        type: google.ads.google_ads.v4.proto.enums.user_list_type_pb2.UserListTypeEnum.UserListType.V = ...,
        closing_reason: google.ads.google_ads.v4.proto.enums.user_list_closing_reason_pb2.UserListClosingReasonEnum.UserListClosingReason.V = ...,
        access_reason: google.ads.google_ads.v4.proto.enums.access_reason_pb2.AccessReasonEnum.AccessReason.V = ...,
        account_user_list_status: google.ads.google_ads.v4.proto.enums.user_list_access_status_pb2.UserListAccessStatusEnum.UserListAccessStatus.V = ...,
        eligible_for_search: typing.Optional[
            google.protobuf.wrappers_pb2.BoolValue
        ] = ...,
        eligible_for_display: typing.Optional[
            google.protobuf.wrappers_pb2.BoolValue
        ] = ...,
        crm_based_user_list: typing.Optional[
            google.ads.google_ads.v4.proto.common.user_lists_pb2.CrmBasedUserListInfo
        ] = ...,
        similar_user_list: typing.Optional[
            google.ads.google_ads.v4.proto.common.user_lists_pb2.SimilarUserListInfo
        ] = ...,
        rule_based_user_list: typing.Optional[
            google.ads.google_ads.v4.proto.common.user_lists_pb2.RuleBasedUserListInfo
        ] = ...,
        logical_user_list: typing.Optional[
            google.ads.google_ads.v4.proto.common.user_lists_pb2.LogicalUserListInfo
        ] = ...,
        basic_user_list: typing.Optional[
            google.ads.google_ads.v4.proto.common.user_lists_pb2.BasicUserListInfo
        ] = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions.Literal[
            "basic_user_list",
            b"basic_user_list",
            "crm_based_user_list",
            b"crm_based_user_list",
            "description",
            b"description",
            "eligible_for_display",
            b"eligible_for_display",
            "eligible_for_search",
            b"eligible_for_search",
            "id",
            b"id",
            "integration_code",
            b"integration_code",
            "logical_user_list",
            b"logical_user_list",
            "membership_life_span",
            b"membership_life_span",
            "name",
            b"name",
            "read_only",
            b"read_only",
            "rule_based_user_list",
            b"rule_based_user_list",
            "similar_user_list",
            b"similar_user_list",
            "size_for_display",
            b"size_for_display",
            "size_for_search",
            b"size_for_search",
            "user_list",
            b"user_list",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "access_reason",
            b"access_reason",
            "account_user_list_status",
            b"account_user_list_status",
            "basic_user_list",
            b"basic_user_list",
            "closing_reason",
            b"closing_reason",
            "crm_based_user_list",
            b"crm_based_user_list",
            "description",
            b"description",
            "eligible_for_display",
            b"eligible_for_display",
            "eligible_for_search",
            b"eligible_for_search",
            "id",
            b"id",
            "integration_code",
            b"integration_code",
            "logical_user_list",
            b"logical_user_list",
            "membership_life_span",
            b"membership_life_span",
            "membership_status",
            b"membership_status",
            "name",
            b"name",
            "read_only",
            b"read_only",
            "resource_name",
            b"resource_name",
            "rule_based_user_list",
            b"rule_based_user_list",
            "similar_user_list",
            b"similar_user_list",
            "size_for_display",
            b"size_for_display",
            "size_for_search",
            b"size_for_search",
            "size_range_for_display",
            b"size_range_for_display",
            "size_range_for_search",
            b"size_range_for_search",
            "type",
            b"type",
            "user_list",
            b"user_list",
        ],
    ) -> None: ...
    def WhichOneof(
        self, oneof_group: typing_extensions.Literal["user_list", b"user_list"]
    ) -> typing_extensions.Literal[
        "crm_based_user_list",
        "similar_user_list",
        "rule_based_user_list",
        "logical_user_list",
        "basic_user_list",
    ]: ...

global___UserList = UserList
