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

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

class Error(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class Unknown(google.protobuf.message.Message):
        """*
        Unknown error. Please consult the Blickfeld support team for further information.
        """
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        DESCRIPTION_FIELD_NUMBER: builtins.int
        description: typing.Text = ...
        """Description of the unknown error"""

        def __init__(self,
            *,
            description : typing.Optional[typing.Text] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"description",b"description"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"description",b"description"]) -> None: ...

    class NotImplemented(google.protobuf.message.Message):
        """*
        The firmware on the device is not compatible with the BSL version. Update the device or downgrade the BSL.
        """
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        REASON_FIELD_NUMBER: builtins.int
        reason: typing.Text = ...
        """Description why this is not implemented"""

        def __init__(self,
            *,
            reason : typing.Optional[typing.Text] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"reason",b"reason"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"reason",b"reason"]) -> None: ...

    class Empty(google.protobuf.message.Message):
        """*
        The server sent an empty message.
        """
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        def __init__(self,
            ) -> None: ...

    class ServerImplementation(google.protobuf.message.Message):
        """*
        The server failed to process the request.
        """
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        def __init__(self,
            ) -> None: ...

    class InvalidRequest(google.protobuf.message.Message):
        """*
        Validation of the sent request failed, please send a request with-in a valid range.
        """
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        VALIDATION_ERROR_FIELD_NUMBER: builtins.int
        CONSTRAINTS_FIELD_NUMBER: builtins.int
        validation_error: typing.Text = ...
        """Validation error string"""

        @property
        def constraints(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[blickfeld.common_pb2.Constraint]:
            """<blockquote>Introduced in BSL v2.14 and firmware v1.14</blockquote> Contains list of failed constraints. The `validation_error` field contains a human-readable output of the constraint validation."""
            pass
        def __init__(self,
            *,
            validation_error : typing.Optional[typing.Text] = ...,
            constraints : typing.Optional[typing.Iterable[blickfeld.common_pb2.Constraint]] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"validation_error",b"validation_error"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"constraints",b"constraints",u"validation_error",b"validation_error"]) -> None: ...

    class ConnectionClosed(google.protobuf.message.Message):
        """*
        The server closed the connection.
        """
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        def __init__(self,
            ) -> None: ...

    class OutdatedServerProtocol(google.protobuf.message.Message):
        """*
        The protocol of the client is too new. Please update the device.
        """
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        REQUIRED_VERSION_FIELD_NUMBER: builtins.int
        required_version: builtins.int = ...
        """Version that is required"""

        def __init__(self,
            *,
            required_version : typing.Optional[builtins.int] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"required_version",b"required_version"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"required_version",b"required_version"]) -> None: ...

    class OutdatedClientProtocol(google.protobuf.message.Message):
        """*
        The protocol of the server is too new. Please update the client software.
        """
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        REQUIRED_VERSION_FIELD_NUMBER: builtins.int
        required_version: builtins.int = ...
        """Version that is required"""

        def __init__(self,
            *,
            required_version : typing.Optional[builtins.int] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"required_version",b"required_version"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"required_version",b"required_version"]) -> None: ...

    class ScannerBusy(google.protobuf.message.Message):
        """*
        The device is currently busy with another operation. Cancel it and try again.
        """
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        def __init__(self,
            ) -> None: ...

    class WrongOperationMode(google.protobuf.message.Message):
        """*
        The device is set to a different operation mode. Perhaps it is currently being used by another application.
        Change the operation mode and try again if no one else is using it.
        """
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        def __init__(self,
            ) -> None: ...

    class NotAllowed(google.protobuf.message.Message):
        """*
        The requested operation is not allowed.
        """
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        def __init__(self,
            ) -> None: ...

    class HardwareError(google.protobuf.message.Message):
        """*
        The device is in an error state and cannot be operated. Attempt to power-cycle the device or use diagnostic software to read out the hardware state.
        """
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        def __init__(self,
            ) -> None: ...

    class SystemStop(google.protobuf.message.Message):
        """*
        The device stopped unexpectedly and can no longer be operated. Attempt to power cycle the device or use diagnostic software to read-out the hardware state.
        """
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        def __init__(self,
            ) -> None: ...

    class NotFound(google.protobuf.message.Message):
        """*
        The requested data is not available. Please check the request parameters.
        """
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        def __init__(self,
            ) -> None: ...

    class TimeSyncFailed(google.protobuf.message.Message):
        """*
        The time synchronization failed. The NTP daemon failed or timed out.
        """
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        NTP_DAEMON_LOG_FIELD_NUMBER: builtins.int
        ntp_daemon_log: typing.Text = ...
        """Log of the NTP daemon"""

        def __init__(self,
            *,
            ntp_daemon_log : typing.Optional[typing.Text] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"ntp_daemon_log",b"ntp_daemon_log"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"ntp_daemon_log",b"ntp_daemon_log"]) -> None: ...

    class NoDeviceDiscovered(google.protobuf.message.Message):
        """*
        No device has been discovered. Check the network connection and power supply of the device. The 'discover' requests may have been blocked by a local or a network firewall.
        """
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        def __init__(self,
            ) -> None: ...

    class UnknownErrorCode(google.protobuf.message.Message):
        """*
        Unknown Error. Please contact the Blickfeld support team and make sure to use compatible BSL and FW versions.
        """
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        ERROR_CODE_FIELD_NUMBER: builtins.int
        error_code: builtins.int = ...
        """Error code"""

        def __init__(self,
            *,
            error_code : typing.Optional[builtins.int] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"error_code",b"error_code"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"error_code",b"error_code"]) -> None: ...

    class NotInRange(google.protobuf.message.Message):
        """*
        The requested parameter is not within the valid range.
        """
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        PARAMETER_FIELD_NUMBER: builtins.int
        MINIMUM_FIELD_NUMBER: builtins.int
        MAXIMUM_FIELD_NUMBER: builtins.int
        REQUESTED_FIELD_NUMBER: builtins.int
        UNIT_FIELD_NUMBER: builtins.int
        parameter: typing.Text = ...
        """The parameter, which was not in range"""

        minimum: builtins.float = ...
        """Minimum value of the parameter"""

        maximum: builtins.float = ...
        """Maximum value of the parameter"""

        requested: builtins.float = ...
        """Requested value of the parameter"""

        unit: typing.Text = ...
        """Unit of the parameter"""

        def __init__(self,
            *,
            parameter : typing.Optional[typing.Text] = ...,
            minimum : typing.Optional[builtins.float] = ...,
            maximum : typing.Optional[builtins.float] = ...,
            requested : typing.Optional[builtins.float] = ...,
            unit : typing.Optional[typing.Text] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"maximum",b"maximum",u"minimum",b"minimum",u"parameter",b"parameter",u"requested",b"requested",u"unit",b"unit"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"maximum",b"maximum",u"minimum",b"minimum",u"parameter",b"parameter",u"requested",b"requested",u"unit",b"unit"]) -> None: ...

    class NotSupported(google.protobuf.message.Message):
        """*
        The action is not supported by the current client or server API. Check the versions of the client and firmware software and read the changelog.
        """
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        REASON_FIELD_NUMBER: builtins.int
        reason: typing.Text = ...
        """Description why this is not supported"""

        def __init__(self,
            *,
            reason : typing.Optional[typing.Text] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"reason",b"reason"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"reason",b"reason"]) -> None: ...

    class ConnectionAbort(google.protobuf.message.Message):
        """*
        During reading, the connection to the device got aborted.
        """
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        DETAILS_FIELD_NUMBER: builtins.int
        details: typing.Text = ...
        def __init__(self,
            *,
            details : typing.Optional[typing.Text] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"details",b"details"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"details",b"details"]) -> None: ...

    UNKNOWN_FIELD_NUMBER: builtins.int
    NOT_IMPLEMENTED_FIELD_NUMBER: builtins.int
    EMPTY_FIELD_NUMBER: builtins.int
    SERVER_IMPLEMENTATION_FIELD_NUMBER: builtins.int
    INVALID_REQUEST_FIELD_NUMBER: builtins.int
    CONNECTION_CLOSED_FIELD_NUMBER: builtins.int
    OUTDATED_SERVER_PROTOCOL_FIELD_NUMBER: builtins.int
    OUTDATED_CLIENT_PROTOCOL_FIELD_NUMBER: builtins.int
    SCANNER_BUSY_FIELD_NUMBER: builtins.int
    WRONG_OPERATION_MODE_FIELD_NUMBER: builtins.int
    NOT_ALLOWED_FIELD_NUMBER: builtins.int
    HARDWARE_ERROR_FIELD_NUMBER: builtins.int
    SYSTEM_STOP_FIELD_NUMBER: builtins.int
    NOT_FOUND_FIELD_NUMBER: builtins.int
    UNKNOWN_ERROR_CODE_FIELD_NUMBER: builtins.int
    NOT_IN_RANGE_FIELD_NUMBER: builtins.int
    TIME_SYNC_FAILED_FIELD_NUMBER: builtins.int
    NO_DEVICE_DISCOVERED_FIELD_NUMBER: builtins.int
    NOT_SUPPORTED_FIELD_NUMBER: builtins.int
    CONNECTION_ABORT_FIELD_NUMBER: builtins.int
    @property
    def unknown(self) -> global___Error.Unknown:
        """Refer to [Unknown](#blickfeld.protocol.Error.Unknown)"""
        pass
    @property
    def not_implemented(self) -> global___Error.NotImplemented:
        """Refer to [NotImplemented](#blickfeld.protocol.Error.NotImplemented)"""
        pass
    @property
    def empty(self) -> global___Error.Empty:
        """Refer to [Empty](#blickfeld.protocol.Error.Empty)"""
        pass
    @property
    def server_implementation(self) -> global___Error.ServerImplementation:
        """Refer to [ServerImplementation](#blickfeld.protocol.Error.ServerImplementation)"""
        pass
    @property
    def invalid_request(self) -> global___Error.InvalidRequest:
        """Refer to [InvalidRequest](#blickfeld.protocol.Error.InvalidRequest)"""
        pass
    @property
    def connection_closed(self) -> global___Error.ConnectionClosed:
        """Refer to [ConnectionClosed](#blickfeld.protocol.Error.ConnectionClosed)"""
        pass
    @property
    def outdated_server_protocol(self) -> global___Error.OutdatedServerProtocol:
        """Refer to [OutdatedServerProtocol](#blickfeld.protocol.Error.OutdatedServerProtocol)"""
        pass
    @property
    def outdated_client_protocol(self) -> global___Error.OutdatedClientProtocol:
        """Refer to [OutdatedClientProtocol](#blickfeld.protocol.Error.OutdatedClientProtocol)"""
        pass
    @property
    def scanner_busy(self) -> global___Error.ScannerBusy:
        """Refer to [ScannerBusy](#blickfeld.protocol.Error.ScannerBusy)"""
        pass
    @property
    def wrong_operation_mode(self) -> global___Error.WrongOperationMode:
        """Refer to [WrongOperationMode](#blickfeld.protocol.Error.WrongOperationMode)"""
        pass
    @property
    def not_allowed(self) -> global___Error.NotAllowed:
        """Refer to [NotAllowed](#blickfeld.protocol.Error.NotAllowed)"""
        pass
    @property
    def hardware_error(self) -> global___Error.HardwareError:
        """Refer to [HardwareError](#blickfeld.protocol.Error.HardwareError)"""
        pass
    @property
    def system_stop(self) -> global___Error.SystemStop:
        """Refer to [SystemStop](#blickfeld.protocol.Error.SystemStop)"""
        pass
    @property
    def not_found(self) -> global___Error.NotFound:
        """Refer to [NotFound](#blickfeld.protocol.Error.NotFound)"""
        pass
    @property
    def unknown_error_code(self) -> global___Error.UnknownErrorCode:
        """Refer to [UnknownErrorCode](#blickfeld.protocol.Error.UnknownErrorCode)"""
        pass
    @property
    def not_in_range(self) -> global___Error.NotInRange:
        """Refer to [NotInRange](#blickfeld.protocol.Error.NotInRange)"""
        pass
    @property
    def time_sync_failed(self) -> global___Error.TimeSyncFailed:
        """Refer to [TimeSyncFailed](#blickfeld.protocol.Error.TimeSyncFailed)"""
        pass
    @property
    def no_device_discovered(self) -> global___Error.NoDeviceDiscovered:
        """Refer to [NoDeviceDiscovered](#blickfeld.protocol.Error.NoDeviceDiscovered)"""
        pass
    @property
    def not_supported(self) -> global___Error.NotSupported:
        """Refer to [NotSupported](#blickfeld.protocol.Error.NotSupported)"""
        pass
    @property
    def connection_abort(self) -> global___Error.ConnectionAbort:
        """Refer to [ConnectionAbort](#blickfeld.protocol.Error.ConnectionAbort)"""
        pass
    def __init__(self,
        *,
        unknown : typing.Optional[global___Error.Unknown] = ...,
        not_implemented : typing.Optional[global___Error.NotImplemented] = ...,
        empty : typing.Optional[global___Error.Empty] = ...,
        server_implementation : typing.Optional[global___Error.ServerImplementation] = ...,
        invalid_request : typing.Optional[global___Error.InvalidRequest] = ...,
        connection_closed : typing.Optional[global___Error.ConnectionClosed] = ...,
        outdated_server_protocol : typing.Optional[global___Error.OutdatedServerProtocol] = ...,
        outdated_client_protocol : typing.Optional[global___Error.OutdatedClientProtocol] = ...,
        scanner_busy : typing.Optional[global___Error.ScannerBusy] = ...,
        wrong_operation_mode : typing.Optional[global___Error.WrongOperationMode] = ...,
        not_allowed : typing.Optional[global___Error.NotAllowed] = ...,
        hardware_error : typing.Optional[global___Error.HardwareError] = ...,
        system_stop : typing.Optional[global___Error.SystemStop] = ...,
        not_found : typing.Optional[global___Error.NotFound] = ...,
        unknown_error_code : typing.Optional[global___Error.UnknownErrorCode] = ...,
        not_in_range : typing.Optional[global___Error.NotInRange] = ...,
        time_sync_failed : typing.Optional[global___Error.TimeSyncFailed] = ...,
        no_device_discovered : typing.Optional[global___Error.NoDeviceDiscovered] = ...,
        not_supported : typing.Optional[global___Error.NotSupported] = ...,
        connection_abort : typing.Optional[global___Error.ConnectionAbort] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"connection_abort",b"connection_abort",u"connection_closed",b"connection_closed",u"empty",b"empty",u"error",b"error",u"hardware_error",b"hardware_error",u"invalid_request",b"invalid_request",u"no_device_discovered",b"no_device_discovered",u"not_allowed",b"not_allowed",u"not_found",b"not_found",u"not_implemented",b"not_implemented",u"not_in_range",b"not_in_range",u"not_supported",b"not_supported",u"outdated_client_protocol",b"outdated_client_protocol",u"outdated_server_protocol",b"outdated_server_protocol",u"scanner_busy",b"scanner_busy",u"server_implementation",b"server_implementation",u"system_stop",b"system_stop",u"time_sync_failed",b"time_sync_failed",u"unknown",b"unknown",u"unknown_error_code",b"unknown_error_code",u"wrong_operation_mode",b"wrong_operation_mode"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"connection_abort",b"connection_abort",u"connection_closed",b"connection_closed",u"empty",b"empty",u"error",b"error",u"hardware_error",b"hardware_error",u"invalid_request",b"invalid_request",u"no_device_discovered",b"no_device_discovered",u"not_allowed",b"not_allowed",u"not_found",b"not_found",u"not_implemented",b"not_implemented",u"not_in_range",b"not_in_range",u"not_supported",b"not_supported",u"outdated_client_protocol",b"outdated_client_protocol",u"outdated_server_protocol",b"outdated_server_protocol",u"scanner_busy",b"scanner_busy",u"server_implementation",b"server_implementation",u"system_stop",b"system_stop",u"time_sync_failed",b"time_sync_failed",u"unknown",b"unknown",u"unknown_error_code",b"unknown_error_code",u"wrong_operation_mode",b"wrong_operation_mode"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal[u"error",b"error"]) -> typing.Optional[typing_extensions.Literal["unknown","not_implemented","empty","server_implementation","invalid_request","connection_closed","outdated_server_protocol","outdated_client_protocol","scanner_busy","wrong_operation_mode","not_allowed","hardware_error","system_stop","not_found","unknown_error_code","not_in_range","time_sync_failed","no_device_discovered","not_supported","connection_abort"]]: ...
global___Error = Error
