"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import future_extensions_pb2
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import sys

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing_extensions.final
class change_recovery_account(google.protobuf.message.Message):
    """The operation change_recovery_account_operation allows a user to update their recovery account.
    It is important to keep it actual, because only a recovery account may create a request
    account recovery in case of compromised the owner authority.
    By default the recovery account is set to the account creator or it is empty if it was created by temp account or mined.
    In order to cancel the change_recovery_account_operation, the operation change_recovery_account_operation,
    the operation should be created with {new_recovery_account} set to the old one.
    The operation is done with a 30 days (HIVE_OWNER_AUTH_RECOVERY_PERIOD) delay.

    Description https://gitlab.syncad.com/hive/hive/-/blob/develop/doc/devs/operations/26_change_recovery_account.md?ref_type=heads
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ACCOUNT_TO_RECOVER_FIELD_NUMBER: builtins.int
    NEW_RECOVERY_ACCOUNT_FIELD_NUMBER: builtins.int
    EXTENSIONS_FIELD_NUMBER: builtins.int
    account_to_recover: builtins.str
    """@param {string} account_to_recover"""
    new_recovery_account: builtins.str
    """@param {string} new_recovery_account"""
    @property
    def extensions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[future_extensions_pb2.future_extensions]:
        """@param {future_extensions} extensions"""
    def __init__(
        self,
        *,
        account_to_recover: builtins.str | None = ...,
        new_recovery_account: builtins.str | None = ...,
        extensions: collections.abc.Iterable[future_extensions_pb2.future_extensions] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["account_to_recover", b"account_to_recover", "new_recovery_account", b"new_recovery_account"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["account_to_recover", b"account_to_recover", "extensions", b"extensions", "new_recovery_account", b"new_recovery_account"]) -> None: ...

global___change_recovery_account = change_recovery_account
