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

import builtins
import google.protobuf.descriptor
import google.protobuf.empty_pb2
import google.protobuf.message
import google.protobuf.wrappers_pb2
import typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

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

    DISABLED_FIELD_NUMBER: builtins.int
    TLS_FIELD_NUMBER: builtins.int
    @property
    def disabled(self) -> google.protobuf.empty_pb2.Empty: ...
    @property
    def tls(self) -> global___TLSConfig: ...
    def __init__(
        self,
        *,
        disabled: google.protobuf.empty_pb2.Empty | None = ...,
        tls: global___TLSConfig | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["disabled", b"disabled", "tls", b"tls", "tls_mode", b"tls_mode"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["disabled", b"disabled", "tls", b"tls", "tls_mode", b"tls_mode"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["tls_mode", b"tls_mode"]) -> typing.Literal["disabled", "tls"] | None: ...

global___TLSParams = TLSParams

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

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

global___TLSConfig = TLSConfig

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

    RAW_FIELD_NUMBER: builtins.int
    PASSWORD_GENERATION_OPTIONS_FIELD_NUMBER: builtins.int
    LOCKBOX_SECRET_KEY_FIELD_NUMBER: builtins.int
    raw: builtins.str
    """When creating/updating Password, the field "raw" is mutually exclusive
    with "password_generation_options". In order to switch to the "raw"
    password you have to explicitly clear the "password_generation_options"
    field.
    """
    lockbox_secret_key: builtins.str
    """Read-only. Do not fill this field in create/update requests."""
    @property
    def password_generation_options(self) -> global___PasswordGenerationOptions:
        """When creating/updating Password, the field "password_generation_options"
        is mutually exclusive with "raw". In order to switch to the
        "password_generation_options" you have to explicitly clear the "raw"
        field.
        """

    def __init__(
        self,
        *,
        raw: builtins.str = ...,
        password_generation_options: global___PasswordGenerationOptions | None = ...,
        lockbox_secret_key: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["lockbox_secret_key", b"lockbox_secret_key", "password_generation_options", b"password_generation_options", "secret_key", b"secret_key"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["lockbox_secret_key", b"lockbox_secret_key", "password_generation_options", b"password_generation_options", "raw", b"raw", "secret_key", b"secret_key"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["secret_key", b"secret_key"]) -> typing.Literal["lockbox_secret_key"] | None: ...

global___Password = Password

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

    COOKIE_FIELD_NUMBER: builtins.int
    LOCKBOX_PASSWORD_GENERATION_OPTIONS_FIELD_NUMBER: builtins.int
    cookie: builtins.str
    """Cookie is an arbitrary non-sensitive string that is saved with the
    password. When updating PasswordGenerationOptions, if the cookie passed
    in the update request differs from the cookie in the current
    PasswordGenerationOptions, the password will be re-generated. If the
    same cookie is passed, the password will not change.
    """
    @property
    def lockbox_password_generation_options(self) -> global___LockboxPasswordGenerationOptions: ...
    def __init__(
        self,
        *,
        cookie: builtins.str = ...,
        lockbox_password_generation_options: global___LockboxPasswordGenerationOptions | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["lockbox_password_generation_options", b"lockbox_password_generation_options", "password_generation_options", b"password_generation_options"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["cookie", b"cookie", "lockbox_password_generation_options", b"lockbox_password_generation_options", "password_generation_options", b"password_generation_options"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["password_generation_options", b"password_generation_options"]) -> typing.Literal["lockbox_password_generation_options"] | None: ...

global___PasswordGenerationOptions = PasswordGenerationOptions

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

    LENGTH_FIELD_NUMBER: builtins.int
    INCLUDE_UPPERCASE_FIELD_NUMBER: builtins.int
    INCLUDE_LOWERCASE_FIELD_NUMBER: builtins.int
    INCLUDE_DIGITS_FIELD_NUMBER: builtins.int
    INCLUDE_PUNCTUATION_FIELD_NUMBER: builtins.int
    INCLUDED_PUNCTUATION_FIELD_NUMBER: builtins.int
    EXCLUDED_PUNCTUATION_FIELD_NUMBER: builtins.int
    length: builtins.int
    """password length; by default, a reasonable length will be decided"""
    included_punctuation: builtins.str
    """If include_punctuation is true, one of these two fields (not both) may be used optionally to customize the punctuation:
    a string of specific punctuation characters to use
    """
    excluded_punctuation: builtins.str
    """a string of punctuation characters to exclude from the default"""
    @property
    def include_uppercase(self) -> google.protobuf.wrappers_pb2.BoolValue:
        """whether at least one A..Z character is included in the password, true by default"""

    @property
    def include_lowercase(self) -> google.protobuf.wrappers_pb2.BoolValue:
        """whether at least one a..z character is included in the password, true by default"""

    @property
    def include_digits(self) -> google.protobuf.wrappers_pb2.BoolValue:
        """whether at least one 0..9 character is included in the password, true by default"""

    @property
    def include_punctuation(self) -> google.protobuf.wrappers_pb2.BoolValue:
        """whether at least one punctuation character is included in the password, true by default
        punctuation characters by default: !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~
        to customize the punctuation characters, see included_punctuation and excluded_punctuation below
        """

    def __init__(
        self,
        *,
        length: builtins.int = ...,
        include_uppercase: google.protobuf.wrappers_pb2.BoolValue | None = ...,
        include_lowercase: google.protobuf.wrappers_pb2.BoolValue | None = ...,
        include_digits: google.protobuf.wrappers_pb2.BoolValue | None = ...,
        include_punctuation: google.protobuf.wrappers_pb2.BoolValue | None = ...,
        included_punctuation: builtins.str = ...,
        excluded_punctuation: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["include_digits", b"include_digits", "include_lowercase", b"include_lowercase", "include_punctuation", b"include_punctuation", "include_uppercase", b"include_uppercase"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["excluded_punctuation", b"excluded_punctuation", "include_digits", b"include_digits", "include_lowercase", b"include_lowercase", "include_punctuation", b"include_punctuation", "include_uppercase", b"include_uppercase", "included_punctuation", b"included_punctuation", "length", b"length"]) -> None: ...

global___LockboxPasswordGenerationOptions = LockboxPasswordGenerationOptions

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

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

global___UserPasswordAuth = UserPasswordAuth
