"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import authority_pb2
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 recover_account(google.protobuf.message.Message):
    """This operation is part of the recovery account process (more information in request_account_recovery).
    After creating by recovery account the operation request_account_recovery,
    the user has HIVE_ACCOUNT_RECOVERY_REQUEST_EXPIRATION_PERIOD hours to respond using
    operation recover_account_operation and set a new owner authority.
    The operation recover_account_operation has to be signed using the two owner authorities,
    the old one (maybe compromised) and the new one (see request_account_recovery).
    There must be at least 60 minutes (HIVE_OWNER_UPDATE_LIMIT) between executions of operation recover_account_operation.

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

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ACCOUNT_TO_RECOVER_FIELD_NUMBER: builtins.int
    NEW_OWNER_AUTHORITY_FIELD_NUMBER: builtins.int
    RECENT_OWNER_AUTHORITY_FIELD_NUMBER: builtins.int
    EXTENSIONS_FIELD_NUMBER: builtins.int
    account_to_recover: builtins.str
    """@param {string} account_to_recover - The account to be recovered."""
    @property
    def new_owner_authority(self) -> authority_pb2.authority:
        """@param {authority} new_owner_authority - The new owner authority as specified in the request account recovery operation."""
    @property
    def recent_owner_authority(self) -> authority_pb2.authority:
        """@param {authority} recent_owner_authority - A previous owner's authority, may be compromised.
                                                    If the operation change_recovery_account_operation was generated,
                                                    it has not been yet 30 days since its creation.
        """
    @property
    def extensions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[future_extensions_pb2.future_extensions]:
        """@param {future_extensions} extensions - Not currently used."""
    def __init__(
        self,
        *,
        account_to_recover: builtins.str | None = ...,
        new_owner_authority: authority_pb2.authority | None = ...,
        recent_owner_authority: authority_pb2.authority | 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_owner_authority", b"new_owner_authority", "recent_owner_authority", b"recent_owner_authority"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["account_to_recover", b"account_to_recover", "extensions", b"extensions", "new_owner_authority", b"new_owner_authority", "recent_owner_authority", b"recent_owner_authority"]) -> None: ...

global___recover_account = recover_account
