"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.protobuf.any_pb2
import google.protobuf.descriptor
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import typing
import typing_extensions

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

class BundledUpdateState(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class Enum(_Enum, metaclass=_EnumEnumTypeWrapper):
        pass
    class _Enum:
        V = typing.NewType('V', builtins.int)
    class _EnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Enum.V], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
        # Not an expected state in the OTA system; only for proto.
        UNKNOWN = BundledUpdateState.Enum.V(0)
        # Valid methods in this state: Start()
        #
        # Transition:
        #   Start() succeeds --> TRANSFERRING
        #   Start() fails    --> FINISHED
        INACTIVE = BundledUpdateState.Enum.V(1)
        # Valid methods in this state: GetStatus(), Abort().
        #
        # Transitions:
        #   Transfer completes --> TRANSFERRED
        #   Transfer fails     --> FINISHED
        #   Abort() called     --> ABORTING
        TRANSFERRING = BundledUpdateState.Enum.V(2)
        # Valid methods in this state: GetStatus(), Abort(), Verify().
        #
        # Transitions:
        #   Verify() called    --> VERIFYING
        #   Apply() called     --> VERIFYING
        #   Abort() called     --> ABORTING
        TRANSFERRED = BundledUpdateState.Enum.V(3)
        # Valid methods in this state: GetStatus(), Abort().
        #
        # Transitions:
        #   Verifying finished --> VERIFIED
        #   Verifying failed   --> FINISHED
        #   Abort() called     --> ABORTING
        VERIFYING = BundledUpdateState.Enum.V(4)
        # Valid methods in this state: GetStatus(), Abort(), Apply().
        #
        # Transitions:
        #   Apply() called --> APPLYING
        #   Abort() called --> ABORTING
        VERIFIED = BundledUpdateState.Enum.V(5)
        # Valid methods in this state: GetStatus().
        #
        # Transitions:
        #   Apply() finished --> FINISHED; may require persisting across a reboot.
        #   Apply() failed   --> FINISHED; with error set.
        APPLYING = BundledUpdateState.Enum.V(6)
        # Valid methods in this state: GetStatus().
        #
        # Transitions:
        #   Abort finishes --> FINISHED
        #   Abort fails    --> FINISHED
        ABORTING = BundledUpdateState.Enum.V(7)
        # Valid methods in this state: GetStatus(), Reset().
        #
        # Terminal state indicating a finished update; whether successful or
        # not. Additional termination information available in completion_state
        # and possibly note.
        #
        # Transitions:
        #   Reset() succeeds --> INACTIVE
        #   Reset() fails    --> FINISHED
        FINISHED = BundledUpdateState.Enum.V(8)

    # Not an expected state in the OTA system; only for proto.
    UNKNOWN = BundledUpdateState.Enum.V(0)
    # Valid methods in this state: Start()
    #
    # Transition:
    #   Start() succeeds --> TRANSFERRING
    #   Start() fails    --> FINISHED
    INACTIVE = BundledUpdateState.Enum.V(1)
    # Valid methods in this state: GetStatus(), Abort().
    #
    # Transitions:
    #   Transfer completes --> TRANSFERRED
    #   Transfer fails     --> FINISHED
    #   Abort() called     --> ABORTING
    TRANSFERRING = BundledUpdateState.Enum.V(2)
    # Valid methods in this state: GetStatus(), Abort(), Verify().
    #
    # Transitions:
    #   Verify() called    --> VERIFYING
    #   Apply() called     --> VERIFYING
    #   Abort() called     --> ABORTING
    TRANSFERRED = BundledUpdateState.Enum.V(3)
    # Valid methods in this state: GetStatus(), Abort().
    #
    # Transitions:
    #   Verifying finished --> VERIFIED
    #   Verifying failed   --> FINISHED
    #   Abort() called     --> ABORTING
    VERIFYING = BundledUpdateState.Enum.V(4)
    # Valid methods in this state: GetStatus(), Abort(), Apply().
    #
    # Transitions:
    #   Apply() called --> APPLYING
    #   Abort() called --> ABORTING
    VERIFIED = BundledUpdateState.Enum.V(5)
    # Valid methods in this state: GetStatus().
    #
    # Transitions:
    #   Apply() finished --> FINISHED; may require persisting across a reboot.
    #   Apply() failed   --> FINISHED; with error set.
    APPLYING = BundledUpdateState.Enum.V(6)
    # Valid methods in this state: GetStatus().
    #
    # Transitions:
    #   Abort finishes --> FINISHED
    #   Abort fails    --> FINISHED
    ABORTING = BundledUpdateState.Enum.V(7)
    # Valid methods in this state: GetStatus(), Reset().
    #
    # Terminal state indicating a finished update; whether successful or
    # not. Additional termination information available in completion_state
    # and possibly note.
    #
    # Transitions:
    #   Reset() succeeds --> INACTIVE
    #   Reset() fails    --> FINISHED
    FINISHED = BundledUpdateState.Enum.V(8)

    def __init__(self,
        ) -> None: ...
global___BundledUpdateState = BundledUpdateState

class BundledUpdateResult(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class Enum(_Enum, metaclass=_EnumEnumTypeWrapper):
        pass
    class _Enum:
        V = typing.NewType('V', builtins.int)
    class _EnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Enum.V], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
        UNKNOWN = BundledUpdateResult.Enum.V(0)
        SUCCESS = BundledUpdateResult.Enum.V(1)
        UNKNOWN_ERROR = BundledUpdateResult.Enum.V(2)
        ABORTED = BundledUpdateResult.Enum.V(3)
        TRANSFER_FAILED = BundledUpdateResult.Enum.V(4)
        VERIFY_FAILED = BundledUpdateResult.Enum.V(5)
        APPLY_FAILED = BundledUpdateResult.Enum.V(6)

    UNKNOWN = BundledUpdateResult.Enum.V(0)
    SUCCESS = BundledUpdateResult.Enum.V(1)
    UNKNOWN_ERROR = BundledUpdateResult.Enum.V(2)
    ABORTED = BundledUpdateResult.Enum.V(3)
    TRANSFER_FAILED = BundledUpdateResult.Enum.V(4)
    VERIFY_FAILED = BundledUpdateResult.Enum.V(5)
    APPLY_FAILED = BundledUpdateResult.Enum.V(6)

    def __init__(self,
        ) -> None: ...
global___BundledUpdateResult = BundledUpdateResult

class BundledUpdateStatus(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    STATE_FIELD_NUMBER: builtins.int
    RESULT_FIELD_NUMBER: builtins.int
    CURRENT_STATE_PROGRESS_HUNDRETH_PERCENT_FIELD_NUMBER: builtins.int
    TRANSFER_ID_FIELD_NUMBER: builtins.int
    BUNDLE_FILENAME_FIELD_NUMBER: builtins.int
    NOTE_FIELD_NUMBER: builtins.int
    EXTENDED_STATUS_FIELD_NUMBER: builtins.int
    state: global___BundledUpdateState.Enum.V = ...
    result: global___BundledUpdateResult.Enum.V = ...
    # This is the percentage of estimated progress for the current update
    # state in hundreths of a percent. (e.g. 5.00% = 500u)
    current_state_progress_hundreth_percent: builtins.int = ...
    # If present, the active transfer ID for the update.
    transfer_id: builtins.int = ...
    # The name of the update bundle. Not present when in INACTIVE state. This is
    # useful for enabling resuming of transfers across reboots or disconnects,
    # without transferring an expensive manifest.
    bundle_filename: typing.Text = ...
    # Additional information related to the state may be provided here.
    # Examples: "Failed verifying: ml_model.bin", "Flash partition couldn't be
    # acquired and was busy", etc. Can provide more granular information than
    # just the completion result.
    note: builtins.bytes = ...
    # Custom application data.
    @property
    def extended_status(self) -> google.protobuf.any_pb2.Any: ...
    def __init__(self,
        *,
        state : global___BundledUpdateState.Enum.V = ...,
        result : global___BundledUpdateResult.Enum.V = ...,
        current_state_progress_hundreth_percent : builtins.int = ...,
        transfer_id : builtins.int = ...,
        bundle_filename : typing.Text = ...,
        note : builtins.bytes = ...,
        extended_status : typing.Optional[google.protobuf.any_pb2.Any] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"_bundle_filename",b"_bundle_filename",u"_current_state_progress_hundreth_percent",b"_current_state_progress_hundreth_percent",u"_extended_status",b"_extended_status",u"_note",b"_note",u"_result",b"_result",u"_transfer_id",b"_transfer_id",u"bundle_filename",b"bundle_filename",u"current_state_progress_hundreth_percent",b"current_state_progress_hundreth_percent",u"extended_status",b"extended_status",u"note",b"note",u"result",b"result",u"transfer_id",b"transfer_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"_bundle_filename",b"_bundle_filename",u"_current_state_progress_hundreth_percent",b"_current_state_progress_hundreth_percent",u"_extended_status",b"_extended_status",u"_note",b"_note",u"_result",b"_result",u"_transfer_id",b"_transfer_id",u"bundle_filename",b"bundle_filename",u"current_state_progress_hundreth_percent",b"current_state_progress_hundreth_percent",u"extended_status",b"extended_status",u"note",b"note",u"result",b"result",u"state",b"state",u"transfer_id",b"transfer_id"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal[u"_bundle_filename",b"_bundle_filename"]) -> typing.Optional[typing_extensions.Literal["bundle_filename"]]: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal[u"_current_state_progress_hundreth_percent",b"_current_state_progress_hundreth_percent"]) -> typing.Optional[typing_extensions.Literal["current_state_progress_hundreth_percent"]]: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal[u"_extended_status",b"_extended_status"]) -> typing.Optional[typing_extensions.Literal["extended_status"]]: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal[u"_note",b"_note"]) -> typing.Optional[typing_extensions.Literal["note"]]: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal[u"_result",b"_result"]) -> typing.Optional[typing_extensions.Literal["result"]]: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal[u"_transfer_id",b"_transfer_id"]) -> typing.Optional[typing_extensions.Literal["transfer_id"]]: ...
global___BundledUpdateStatus = BundledUpdateStatus

class StartRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    BUNDLE_FILENAME_FIELD_NUMBER: builtins.int
    # If present, the filename for the staged file. This should persist across
    # reboots, and will be returned from GetStatus() until either the update
    # applies or is aborted.
    bundle_filename: typing.Text = ...
    def __init__(self,
        *,
        bundle_filename : typing.Text = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"_bundle_filename",b"_bundle_filename",u"bundle_filename",b"bundle_filename"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"_bundle_filename",b"_bundle_filename",u"bundle_filename",b"bundle_filename"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal[u"_bundle_filename",b"_bundle_filename"]) -> typing.Optional[typing_extensions.Literal["bundle_filename"]]: ...
global___StartRequest = StartRequest
