"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""

import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import google.protobuf.timestamp_pb2
import protos.v1.models.SystemModels_pb2
import sys
import typing

if sys.version_info >= (3, 10):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _UserRoles:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _UserRolesEnumTypeWrapper(
    google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_UserRoles.ValueType],
    builtins.type,
):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    UserRolesReader: _UserRoles.ValueType  # 0
    UserRolesManager: _UserRoles.ValueType  # 1
    UserRolesOwner: _UserRoles.ValueType  # 2

class UserRoles(_UserRoles, metaclass=_UserRolesEnumTypeWrapper): ...

UserRolesReader: UserRoles.ValueType  # 0
UserRolesManager: UserRoles.ValueType  # 1
UserRolesOwner: UserRoles.ValueType  # 2
Global___UserRoles: typing_extensions.TypeAlias = UserRoles

class _UserStatus:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _UserStatusEnumTypeWrapper(
    google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_UserStatus.ValueType],
    builtins.type,
):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    UserStatusActive: _UserStatus.ValueType  # 0
    UserStatusArchived: _UserStatus.ValueType  # 1

class UserStatus(_UserStatus, metaclass=_UserStatusEnumTypeWrapper): ...

UserStatusActive: UserStatus.ValueType  # 0
UserStatusArchived: UserStatus.ValueType  # 1
Global___UserStatus: typing_extensions.TypeAlias = UserStatus

@typing.final
class GetAccountRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

Global___GetAccountRequest: typing_extensions.TypeAlias = GetAccountRequest

@typing.final
class GetAccountResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ACCOUNT_FIELD_NUMBER: builtins.int
    HASTAXID_FIELD_NUMBER: builtins.int
    HasTaxId: builtins.bool
    @property
    def Account(self) -> Global___Account: ...
    def __init__(
        self,
        *,
        Account: Global___Account | None = ...,
        HasTaxId: builtins.bool = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["Account", b"Account"]
    ) -> builtins.bool: ...
    def ClearField(
        self, field_name: typing.Literal["Account", b"Account", "HasTaxId", b"HasTaxId"]
    ) -> None: ...

Global___GetAccountResponse: typing_extensions.TypeAlias = GetAccountResponse

@typing.final
class UpdateAccountRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ACCOUNT_FIELD_NUMBER: builtins.int
    @property
    def Account(self) -> Global___Account: ...
    def __init__(
        self,
        *,
        Account: Global___Account | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["Account", b"Account"]
    ) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["Account", b"Account"]) -> None: ...

Global___UpdateAccountRequest: typing_extensions.TypeAlias = UpdateAccountRequest

@typing.final
class UpdateAccountResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SUCCESS_FIELD_NUMBER: builtins.int
    MESSAGE_FIELD_NUMBER: builtins.int
    Success: builtins.bool
    Message: builtins.str
    def __init__(
        self,
        *,
        Success: builtins.bool = ...,
        Message: builtins.str | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["Message", b"Message", "_Message", b"_Message"]
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "Message", b"Message", "Success", b"Success", "_Message", b"_Message"
        ],
    ) -> None: ...
    def WhichOneof(
        self, oneof_group: typing.Literal["_Message", b"_Message"]
    ) -> typing.Literal["Message"] | None: ...

Global___UpdateAccountResponse: typing_extensions.TypeAlias = UpdateAccountResponse

@typing.final
class CreateUserRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    USER_FIELD_NUMBER: builtins.int
    ACCOUNTNAME_FIELD_NUMBER: builtins.int
    AccountName: builtins.str
    @property
    def User(self) -> Global___User: ...
    def __init__(
        self,
        *,
        User: Global___User | None = ...,
        AccountName: builtins.str | None = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing.Literal[
            "AccountName",
            b"AccountName",
            "User",
            b"User",
            "_AccountName",
            b"_AccountName",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "AccountName",
            b"AccountName",
            "User",
            b"User",
            "_AccountName",
            b"_AccountName",
        ],
    ) -> None: ...
    def WhichOneof(
        self, oneof_group: typing.Literal["_AccountName", b"_AccountName"]
    ) -> typing.Literal["AccountName"] | None: ...

Global___CreateUserRequest: typing_extensions.TypeAlias = CreateUserRequest

@typing.final
class CreateUserResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SUCCESS_FIELD_NUMBER: builtins.int
    USER_FIELD_NUMBER: builtins.int
    MESSAGE_FIELD_NUMBER: builtins.int
    Success: builtins.bool
    Message: builtins.str
    @property
    def User(self) -> Global___User: ...
    def __init__(
        self,
        *,
        Success: builtins.bool = ...,
        User: Global___User | None = ...,
        Message: builtins.str | None = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing.Literal[
            "Message", b"Message", "User", b"User", "_Message", b"_Message"
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "Message",
            b"Message",
            "Success",
            b"Success",
            "User",
            b"User",
            "_Message",
            b"_Message",
        ],
    ) -> None: ...
    def WhichOneof(
        self, oneof_group: typing.Literal["_Message", b"_Message"]
    ) -> typing.Literal["Message"] | None: ...

Global___CreateUserResponse: typing_extensions.TypeAlias = CreateUserResponse

@typing.final
class GetUserRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    USERID_FIELD_NUMBER: builtins.int
    UserId: builtins.str
    def __init__(
        self,
        *,
        UserId: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["UserId", b"UserId"]) -> None: ...

Global___GetUserRequest: typing_extensions.TypeAlias = GetUserRequest

@typing.final
class GetUserResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    USER_FIELD_NUMBER: builtins.int
    SUCCESS_FIELD_NUMBER: builtins.int
    MESSAGE_FIELD_NUMBER: builtins.int
    Success: builtins.bool
    Message: builtins.str
    @property
    def User(self) -> Global___User: ...
    def __init__(
        self,
        *,
        User: Global___User | None = ...,
        Success: builtins.bool = ...,
        Message: builtins.str | None = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing.Literal[
            "Message", b"Message", "User", b"User", "_Message", b"_Message"
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "Message",
            b"Message",
            "Success",
            b"Success",
            "User",
            b"User",
            "_Message",
            b"_Message",
        ],
    ) -> None: ...
    def WhichOneof(
        self, oneof_group: typing.Literal["_Message", b"_Message"]
    ) -> typing.Literal["Message"] | None: ...

Global___GetUserResponse: typing_extensions.TypeAlias = GetUserResponse

@typing.final
class GetUsersRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PAGING_FIELD_NUMBER: builtins.int
    @property
    def Paging(self) -> protos.v1.models.SystemModels_pb2.PagingInfo: ...
    def __init__(
        self,
        *,
        Paging: protos.v1.models.SystemModels_pb2.PagingInfo | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["Paging", b"Paging"]
    ) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["Paging", b"Paging"]) -> None: ...

Global___GetUsersRequest: typing_extensions.TypeAlias = GetUsersRequest

@typing.final
class GetUsersResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    USERS_FIELD_NUMBER: builtins.int
    TOTALCOUNT_FIELD_NUMBER: builtins.int
    TotalCount: builtins.int
    @property
    def Users(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        Global___User
    ]: ...
    def __init__(
        self,
        *,
        Users: collections.abc.Iterable[Global___User] | None = ...,
        TotalCount: builtins.int = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing.Literal["TotalCount", b"TotalCount", "Users", b"Users"]
    ) -> None: ...

Global___GetUsersResponse: typing_extensions.TypeAlias = GetUsersResponse

@typing.final
class ArchiveUserRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    USERID_FIELD_NUMBER: builtins.int
    UserId: builtins.str
    def __init__(
        self,
        *,
        UserId: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["UserId", b"UserId"]) -> None: ...

Global___ArchiveUserRequest: typing_extensions.TypeAlias = ArchiveUserRequest

@typing.final
class ArchiveUserResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SUCCESS_FIELD_NUMBER: builtins.int
    MESSAGE_FIELD_NUMBER: builtins.int
    Success: builtins.bool
    Message: builtins.str
    def __init__(
        self,
        *,
        Success: builtins.bool = ...,
        Message: builtins.str | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["Message", b"Message", "_Message", b"_Message"]
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "Message", b"Message", "Success", b"Success", "_Message", b"_Message"
        ],
    ) -> None: ...
    def WhichOneof(
        self, oneof_group: typing.Literal["_Message", b"_Message"]
    ) -> typing.Literal["Message"] | None: ...

Global___ArchiveUserResponse: typing_extensions.TypeAlias = ArchiveUserResponse

@typing.final
class UpdateUserRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    USER_FIELD_NUMBER: builtins.int
    @property
    def User(self) -> Global___User: ...
    def __init__(
        self,
        *,
        User: Global___User | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["User", b"User"]
    ) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["User", b"User"]) -> None: ...

Global___UpdateUserRequest: typing_extensions.TypeAlias = UpdateUserRequest

@typing.final
class UpdateUserResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SUCCESS_FIELD_NUMBER: builtins.int
    MESSAGE_FIELD_NUMBER: builtins.int
    Success: builtins.bool
    Message: builtins.str
    def __init__(
        self,
        *,
        Success: builtins.bool = ...,
        Message: builtins.str | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["Message", b"Message", "_Message", b"_Message"]
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "Message", b"Message", "Success", b"Success", "_Message", b"_Message"
        ],
    ) -> None: ...
    def WhichOneof(
        self, oneof_group: typing.Literal["_Message", b"_Message"]
    ) -> typing.Literal["Message"] | None: ...

Global___UpdateUserResponse: typing_extensions.TypeAlias = UpdateUserResponse

@typing.final
class Account(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    TAXID_FIELD_NUMBER: builtins.int
    Id: builtins.str
    Name: builtins.str
    TaxId: builtins.str
    def __init__(
        self,
        *,
        Id: builtins.str = ...,
        Name: builtins.str = ...,
        TaxId: builtins.str | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["TaxId", b"TaxId", "_TaxId", b"_TaxId"]
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "Id", b"Id", "Name", b"Name", "TaxId", b"TaxId", "_TaxId", b"_TaxId"
        ],
    ) -> None: ...
    def WhichOneof(
        self, oneof_group: typing.Literal["_TaxId", b"_TaxId"]
    ) -> typing.Literal["TaxId"] | None: ...

Global___Account: typing_extensions.TypeAlias = Account

@typing.final
class User(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    EMAILADDRESS_FIELD_NUMBER: builtins.int
    PHONE_FIELD_NUMBER: builtins.int
    SOURCE_FIELD_NUMBER: builtins.int
    ROLE_FIELD_NUMBER: builtins.int
    DATEEMAILCONFIRMED_FIELD_NUMBER: builtins.int
    DATEPHONECONFIRMED_FIELD_NUMBER: builtins.int
    ALLOWEDTOLOGIN_FIELD_NUMBER: builtins.int
    ALLOWSMS_FIELD_NUMBER: builtins.int
    ALLOWEMAIL_FIELD_NUMBER: builtins.int
    EMAILLISTS_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    Id: builtins.str
    Name: builtins.str
    EmailAddress: builtins.str
    Phone: builtins.str
    Source: builtins.str
    Role: Global___UserRoles.ValueType
    AllowedToLogin: builtins.bool
    AllowSMS: builtins.bool
    AllowEmail: builtins.bool
    Status: Global___UserStatus.ValueType
    @property
    def DateEmailConfirmed(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def DatePhoneConfirmed(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def EmailLists(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        Global___EmailList
    ]: ...
    def __init__(
        self,
        *,
        Id: builtins.str = ...,
        Name: builtins.str = ...,
        EmailAddress: builtins.str = ...,
        Phone: builtins.str | None = ...,
        Source: builtins.str | None = ...,
        Role: Global___UserRoles.ValueType = ...,
        DateEmailConfirmed: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        DatePhoneConfirmed: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        AllowedToLogin: builtins.bool = ...,
        AllowSMS: builtins.bool = ...,
        AllowEmail: builtins.bool = ...,
        EmailLists: collections.abc.Iterable[Global___EmailList] | None = ...,
        Status: Global___UserStatus.ValueType = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing.Literal[
            "DateEmailConfirmed",
            b"DateEmailConfirmed",
            "DatePhoneConfirmed",
            b"DatePhoneConfirmed",
            "Phone",
            b"Phone",
            "Source",
            b"Source",
            "_DateEmailConfirmed",
            b"_DateEmailConfirmed",
            "_DatePhoneConfirmed",
            b"_DatePhoneConfirmed",
            "_Phone",
            b"_Phone",
            "_Source",
            b"_Source",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "AllowEmail",
            b"AllowEmail",
            "AllowSMS",
            b"AllowSMS",
            "AllowedToLogin",
            b"AllowedToLogin",
            "DateEmailConfirmed",
            b"DateEmailConfirmed",
            "DatePhoneConfirmed",
            b"DatePhoneConfirmed",
            "EmailAddress",
            b"EmailAddress",
            "EmailLists",
            b"EmailLists",
            "Id",
            b"Id",
            "Name",
            b"Name",
            "Phone",
            b"Phone",
            "Role",
            b"Role",
            "Source",
            b"Source",
            "Status",
            b"Status",
            "_DateEmailConfirmed",
            b"_DateEmailConfirmed",
            "_DatePhoneConfirmed",
            b"_DatePhoneConfirmed",
            "_Phone",
            b"_Phone",
            "_Source",
            b"_Source",
        ],
    ) -> None: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing.Literal["_DateEmailConfirmed", b"_DateEmailConfirmed"]
    ) -> typing.Literal["DateEmailConfirmed"] | None: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing.Literal["_DatePhoneConfirmed", b"_DatePhoneConfirmed"]
    ) -> typing.Literal["DatePhoneConfirmed"] | None: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing.Literal["_Phone", b"_Phone"]
    ) -> typing.Literal["Phone"] | None: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing.Literal["_Source", b"_Source"]
    ) -> typing.Literal["Source"] | None: ...

Global___User: typing_extensions.TypeAlias = User

@typing.final
class EmailList(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    Id: builtins.str
    Name: builtins.str
    def __init__(
        self,
        *,
        Id: builtins.str = ...,
        Name: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing.Literal["Id", b"Id", "Name", b"Name"]
    ) -> None: ...

Global___EmailList: typing_extensions.TypeAlias = EmailList
