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

import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import sys
import typing

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _DeviceStatus:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _DeviceStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_DeviceStatus.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    DEVICE_STATUS_UNSPECIFIED: _DeviceStatus.ValueType  # 0
    DEVICE_STATUS_ONLINE: _DeviceStatus.ValueType  # 1
    DEVICE_STATUS_OFFLINE: _DeviceStatus.ValueType  # 2

class DeviceStatus(_DeviceStatus, metaclass=_DeviceStatusEnumTypeWrapper):
    """--- Enums ---"""

DEVICE_STATUS_UNSPECIFIED: DeviceStatus.ValueType  # 0
DEVICE_STATUS_ONLINE: DeviceStatus.ValueType  # 1
DEVICE_STATUS_OFFLINE: DeviceStatus.ValueType  # 2
Global___DeviceStatus: typing_extensions.TypeAlias = DeviceStatus

class _ValueType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _ValueTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ValueType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    VALUE_TYPE_UNSPECIFIED: _ValueType.ValueType  # 0
    VALUE_TYPE_NUMBER: _ValueType.ValueType  # 1
    VALUE_TYPE_BOOLEAN: _ValueType.ValueType  # 2
    VALUE_TYPE_ENUM: _ValueType.ValueType  # 3

class ValueType(_ValueType, metaclass=_ValueTypeEnumTypeWrapper): ...

VALUE_TYPE_UNSPECIFIED: ValueType.ValueType  # 0
VALUE_TYPE_NUMBER: ValueType.ValueType  # 1
VALUE_TYPE_BOOLEAN: ValueType.ValueType  # 2
VALUE_TYPE_ENUM: ValueType.ValueType  # 3
Global___ValueType: typing_extensions.TypeAlias = ValueType

class _ThresholdType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _ThresholdTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ThresholdType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    THRESHOLD_TYPE_UNSPECIFIED: _ThresholdType.ValueType  # 0
    THRESHOLD_TYPE_MIN: _ThresholdType.ValueType  # 1
    THRESHOLD_TYPE_MAX: _ThresholdType.ValueType  # 2

class ThresholdType(_ThresholdType, metaclass=_ThresholdTypeEnumTypeWrapper): ...

THRESHOLD_TYPE_UNSPECIFIED: ThresholdType.ValueType  # 0
THRESHOLD_TYPE_MIN: ThresholdType.ValueType  # 1
THRESHOLD_TYPE_MAX: ThresholdType.ValueType  # 2
Global___ThresholdType: typing_extensions.TypeAlias = ThresholdType

class _ThresholdSeverity:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _ThresholdSeverityEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ThresholdSeverity.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    THRESHOLD_SEVERITY_UNSPECIFIED: _ThresholdSeverity.ValueType  # 0
    THRESHOLD_SEVERITY_WARNING: _ThresholdSeverity.ValueType  # 1
    THRESHOLD_SEVERITY_CRITICAL: _ThresholdSeverity.ValueType  # 2

class ThresholdSeverity(_ThresholdSeverity, metaclass=_ThresholdSeverityEnumTypeWrapper): ...

THRESHOLD_SEVERITY_UNSPECIFIED: ThresholdSeverity.ValueType  # 0
THRESHOLD_SEVERITY_WARNING: ThresholdSeverity.ValueType  # 1
THRESHOLD_SEVERITY_CRITICAL: ThresholdSeverity.ValueType  # 2
Global___ThresholdSeverity: typing_extensions.TypeAlias = ThresholdSeverity

@typing.final
class DeviceInfo(google.protobuf.message.Message):
    """--- Device messages ---"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DEVICE_ID_FIELD_NUMBER: builtins.int
    PLACE_ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    LAST_SEEN_AT_FIELD_NUMBER: builtins.int
    CREATED_AT_FIELD_NUMBER: builtins.int
    UPDATED_AT_FIELD_NUMBER: builtins.int
    SENSORS_FIELD_NUMBER: builtins.int
    ACTUATORS_FIELD_NUMBER: builtins.int
    device_id: builtins.str
    place_id: builtins.str
    name: builtins.str
    status: Global___DeviceStatus.ValueType
    last_seen_at: builtins.str
    created_at: builtins.str
    updated_at: builtins.str
    @property
    def sensors(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___SensorInfo]: ...
    @property
    def actuators(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___ActuatorInfo]: ...
    def __init__(
        self,
        *,
        device_id: builtins.str = ...,
        place_id: builtins.str = ...,
        name: builtins.str = ...,
        status: Global___DeviceStatus.ValueType = ...,
        last_seen_at: builtins.str = ...,
        created_at: builtins.str = ...,
        updated_at: builtins.str = ...,
        sensors: collections.abc.Iterable[Global___SensorInfo] | None = ...,
        actuators: collections.abc.Iterable[Global___ActuatorInfo] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["actuators", b"actuators", "created_at", b"created_at", "device_id", b"device_id", "last_seen_at", b"last_seen_at", "name", b"name", "place_id", b"place_id", "sensors", b"sensors", "status", b"status", "updated_at", b"updated_at"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___DeviceInfo: typing_extensions.TypeAlias = DeviceInfo

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

    DEVICE_ID_FIELD_NUMBER: builtins.int
    PLACE_ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    LAST_SEEN_AT_FIELD_NUMBER: builtins.int
    device_id: builtins.str
    place_id: builtins.str
    name: builtins.str
    status: Global___DeviceStatus.ValueType
    last_seen_at: builtins.str
    def __init__(
        self,
        *,
        device_id: builtins.str = ...,
        place_id: builtins.str = ...,
        name: builtins.str = ...,
        status: Global___DeviceStatus.ValueType = ...,
        last_seen_at: builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["device_id", b"device_id", "last_seen_at", b"last_seen_at", "name", b"name", "place_id", b"place_id", "status", b"status"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___DeviceSummary: typing_extensions.TypeAlias = DeviceSummary

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

    USER_ID_FIELD_NUMBER: builtins.int
    PLACE_ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    user_id: builtins.str
    place_id: builtins.str
    name: builtins.str
    def __init__(
        self,
        *,
        user_id: builtins.str = ...,
        place_id: builtins.str = ...,
        name: builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["name", b"name", "place_id", b"place_id", "user_id", b"user_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___CreateDeviceRequest: typing_extensions.TypeAlias = CreateDeviceRequest

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

    DEVICE_ID_FIELD_NUMBER: builtins.int
    TOKEN_FIELD_NUMBER: builtins.int
    device_id: builtins.str
    token: builtins.str
    def __init__(
        self,
        *,
        device_id: builtins.str = ...,
        token: builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["device_id", b"device_id", "token", b"token"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___CreateDeviceResponse: typing_extensions.TypeAlias = CreateDeviceResponse

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

    USER_ID_FIELD_NUMBER: builtins.int
    PLACE_ID_FIELD_NUMBER: builtins.int
    DEVICE_ID_FIELD_NUMBER: builtins.int
    user_id: builtins.str
    place_id: builtins.str
    device_id: builtins.str
    def __init__(
        self,
        *,
        user_id: builtins.str = ...,
        place_id: builtins.str = ...,
        device_id: builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["device_id", b"device_id", "place_id", b"place_id", "user_id", b"user_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___GetDeviceRequest: typing_extensions.TypeAlias = GetDeviceRequest

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

    DEVICE_FIELD_NUMBER: builtins.int
    @property
    def device(self) -> Global___DeviceInfo: ...
    def __init__(
        self,
        *,
        device: Global___DeviceInfo | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["device", b"device"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["device", b"device"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___GetDeviceResponse: typing_extensions.TypeAlias = GetDeviceResponse

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

    USER_ID_FIELD_NUMBER: builtins.int
    PLACE_ID_FIELD_NUMBER: builtins.int
    PAGE_FIELD_NUMBER: builtins.int
    PER_PAGE_FIELD_NUMBER: builtins.int
    user_id: builtins.str
    place_id: builtins.str
    page: builtins.int
    per_page: builtins.int
    def __init__(
        self,
        *,
        user_id: builtins.str = ...,
        place_id: builtins.str = ...,
        page: builtins.int = ...,
        per_page: builtins.int = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["page", b"page", "per_page", b"per_page", "place_id", b"place_id", "user_id", b"user_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ListDevicesRequest: typing_extensions.TypeAlias = ListDevicesRequest

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

    DEVICES_FIELD_NUMBER: builtins.int
    TOTAL_FIELD_NUMBER: builtins.int
    total: builtins.int
    @property
    def devices(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___DeviceSummary]: ...
    def __init__(
        self,
        *,
        devices: collections.abc.Iterable[Global___DeviceSummary] | None = ...,
        total: builtins.int = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["devices", b"devices", "total", b"total"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ListDevicesResponse: typing_extensions.TypeAlias = ListDevicesResponse

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

    USER_ID_FIELD_NUMBER: builtins.int
    PLACE_ID_FIELD_NUMBER: builtins.int
    DEVICE_ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    user_id: builtins.str
    place_id: builtins.str
    device_id: builtins.str
    name: builtins.str
    def __init__(
        self,
        *,
        user_id: builtins.str = ...,
        place_id: builtins.str = ...,
        device_id: builtins.str = ...,
        name: builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["device_id", b"device_id", "name", b"name", "place_id", b"place_id", "user_id", b"user_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___UpdateDeviceRequest: typing_extensions.TypeAlias = UpdateDeviceRequest

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

    DEVICE_ID_FIELD_NUMBER: builtins.int
    device_id: builtins.str
    def __init__(
        self,
        *,
        device_id: builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["device_id", b"device_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___UpdateDeviceResponse: typing_extensions.TypeAlias = UpdateDeviceResponse

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

    USER_ID_FIELD_NUMBER: builtins.int
    PLACE_ID_FIELD_NUMBER: builtins.int
    DEVICE_ID_FIELD_NUMBER: builtins.int
    user_id: builtins.str
    place_id: builtins.str
    device_id: builtins.str
    def __init__(
        self,
        *,
        user_id: builtins.str = ...,
        place_id: builtins.str = ...,
        device_id: builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["device_id", b"device_id", "place_id", b"place_id", "user_id", b"user_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___DeleteDeviceRequest: typing_extensions.TypeAlias = DeleteDeviceRequest

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

    SUCCESS_FIELD_NUMBER: builtins.int
    success: builtins.bool
    def __init__(
        self,
        *,
        success: builtins.bool = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["success", b"success"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___DeleteDeviceResponse: typing_extensions.TypeAlias = DeleteDeviceResponse

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

    USER_ID_FIELD_NUMBER: builtins.int
    PLACE_ID_FIELD_NUMBER: builtins.int
    DEVICE_ID_FIELD_NUMBER: builtins.int
    user_id: builtins.str
    place_id: builtins.str
    device_id: builtins.str
    def __init__(
        self,
        *,
        user_id: builtins.str = ...,
        place_id: builtins.str = ...,
        device_id: builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["device_id", b"device_id", "place_id", b"place_id", "user_id", b"user_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___RegenerateDeviceTokenRequest: typing_extensions.TypeAlias = RegenerateDeviceTokenRequest

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

    TOKEN_FIELD_NUMBER: builtins.int
    token: builtins.str
    def __init__(
        self,
        *,
        token: builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["token", b"token"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___RegenerateDeviceTokenResponse: typing_extensions.TypeAlias = RegenerateDeviceTokenResponse

@typing.final
class SensorInfo(google.protobuf.message.Message):
    """--- Sensor messages ---"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SENSOR_ID_FIELD_NUMBER: builtins.int
    DEVICE_ID_FIELD_NUMBER: builtins.int
    KEY_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    VALUE_TYPE_FIELD_NUMBER: builtins.int
    UNIT_LABEL_FIELD_NUMBER: builtins.int
    PRECISION_FIELD_NUMBER: builtins.int
    sensor_id: builtins.str
    device_id: builtins.str
    key: builtins.str
    name: builtins.str
    value_type: Global___ValueType.ValueType
    unit_label: builtins.str
    precision: builtins.int
    def __init__(
        self,
        *,
        sensor_id: builtins.str = ...,
        device_id: builtins.str = ...,
        key: builtins.str = ...,
        name: builtins.str = ...,
        value_type: Global___ValueType.ValueType = ...,
        unit_label: builtins.str = ...,
        precision: builtins.int = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["device_id", b"device_id", "key", b"key", "name", b"name", "precision", b"precision", "sensor_id", b"sensor_id", "unit_label", b"unit_label", "value_type", b"value_type"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___SensorInfo: typing_extensions.TypeAlias = SensorInfo

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

    USER_ID_FIELD_NUMBER: builtins.int
    PLACE_ID_FIELD_NUMBER: builtins.int
    DEVICE_ID_FIELD_NUMBER: builtins.int
    KEY_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    VALUE_TYPE_FIELD_NUMBER: builtins.int
    UNIT_LABEL_FIELD_NUMBER: builtins.int
    PRECISION_FIELD_NUMBER: builtins.int
    user_id: builtins.str
    place_id: builtins.str
    device_id: builtins.str
    key: builtins.str
    name: builtins.str
    value_type: Global___ValueType.ValueType
    unit_label: builtins.str
    precision: builtins.int
    def __init__(
        self,
        *,
        user_id: builtins.str = ...,
        place_id: builtins.str = ...,
        device_id: builtins.str = ...,
        key: builtins.str = ...,
        name: builtins.str = ...,
        value_type: Global___ValueType.ValueType = ...,
        unit_label: builtins.str = ...,
        precision: builtins.int = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["device_id", b"device_id", "key", b"key", "name", b"name", "place_id", b"place_id", "precision", b"precision", "unit_label", b"unit_label", "user_id", b"user_id", "value_type", b"value_type"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___CreateSensorRequest: typing_extensions.TypeAlias = CreateSensorRequest

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

    SENSOR_ID_FIELD_NUMBER: builtins.int
    sensor_id: builtins.str
    def __init__(
        self,
        *,
        sensor_id: builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["sensor_id", b"sensor_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___CreateSensorResponse: typing_extensions.TypeAlias = CreateSensorResponse

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

    USER_ID_FIELD_NUMBER: builtins.int
    PLACE_ID_FIELD_NUMBER: builtins.int
    DEVICE_ID_FIELD_NUMBER: builtins.int
    user_id: builtins.str
    place_id: builtins.str
    device_id: builtins.str
    def __init__(
        self,
        *,
        user_id: builtins.str = ...,
        place_id: builtins.str = ...,
        device_id: builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["device_id", b"device_id", "place_id", b"place_id", "user_id", b"user_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ListSensorsRequest: typing_extensions.TypeAlias = ListSensorsRequest

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

    SENSORS_FIELD_NUMBER: builtins.int
    @property
    def sensors(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___SensorInfo]: ...
    def __init__(
        self,
        *,
        sensors: collections.abc.Iterable[Global___SensorInfo] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["sensors", b"sensors"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ListSensorsResponse: typing_extensions.TypeAlias = ListSensorsResponse

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

    USER_ID_FIELD_NUMBER: builtins.int
    PLACE_ID_FIELD_NUMBER: builtins.int
    DEVICE_ID_FIELD_NUMBER: builtins.int
    SENSOR_ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    UNIT_LABEL_FIELD_NUMBER: builtins.int
    PRECISION_FIELD_NUMBER: builtins.int
    user_id: builtins.str
    place_id: builtins.str
    device_id: builtins.str
    sensor_id: builtins.str
    name: builtins.str
    unit_label: builtins.str
    precision: builtins.int
    def __init__(
        self,
        *,
        user_id: builtins.str = ...,
        place_id: builtins.str = ...,
        device_id: builtins.str = ...,
        sensor_id: builtins.str = ...,
        name: builtins.str = ...,
        unit_label: builtins.str = ...,
        precision: builtins.int = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["device_id", b"device_id", "name", b"name", "place_id", b"place_id", "precision", b"precision", "sensor_id", b"sensor_id", "unit_label", b"unit_label", "user_id", b"user_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___UpdateSensorRequest: typing_extensions.TypeAlias = UpdateSensorRequest

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

    SENSOR_ID_FIELD_NUMBER: builtins.int
    sensor_id: builtins.str
    def __init__(
        self,
        *,
        sensor_id: builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["sensor_id", b"sensor_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___UpdateSensorResponse: typing_extensions.TypeAlias = UpdateSensorResponse

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

    USER_ID_FIELD_NUMBER: builtins.int
    PLACE_ID_FIELD_NUMBER: builtins.int
    DEVICE_ID_FIELD_NUMBER: builtins.int
    SENSOR_ID_FIELD_NUMBER: builtins.int
    user_id: builtins.str
    place_id: builtins.str
    device_id: builtins.str
    sensor_id: builtins.str
    def __init__(
        self,
        *,
        user_id: builtins.str = ...,
        place_id: builtins.str = ...,
        device_id: builtins.str = ...,
        sensor_id: builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["device_id", b"device_id", "place_id", b"place_id", "sensor_id", b"sensor_id", "user_id", b"user_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___DeleteSensorRequest: typing_extensions.TypeAlias = DeleteSensorRequest

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

    SUCCESS_FIELD_NUMBER: builtins.int
    success: builtins.bool
    def __init__(
        self,
        *,
        success: builtins.bool = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["success", b"success"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___DeleteSensorResponse: typing_extensions.TypeAlias = DeleteSensorResponse

@typing.final
class ThresholdInfo(google.protobuf.message.Message):
    """--- Threshold messages ---"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    THRESHOLD_ID_FIELD_NUMBER: builtins.int
    SENSOR_ID_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    VALUE_FIELD_NUMBER: builtins.int
    SEVERITY_FIELD_NUMBER: builtins.int
    threshold_id: builtins.str
    sensor_id: builtins.str
    type: Global___ThresholdType.ValueType
    value: builtins.float
    severity: Global___ThresholdSeverity.ValueType
    def __init__(
        self,
        *,
        threshold_id: builtins.str = ...,
        sensor_id: builtins.str = ...,
        type: Global___ThresholdType.ValueType = ...,
        value: builtins.float = ...,
        severity: Global___ThresholdSeverity.ValueType = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["sensor_id", b"sensor_id", "severity", b"severity", "threshold_id", b"threshold_id", "type", b"type", "value", b"value"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ThresholdInfo: typing_extensions.TypeAlias = ThresholdInfo

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

    USER_ID_FIELD_NUMBER: builtins.int
    PLACE_ID_FIELD_NUMBER: builtins.int
    DEVICE_ID_FIELD_NUMBER: builtins.int
    SENSOR_ID_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    VALUE_FIELD_NUMBER: builtins.int
    SEVERITY_FIELD_NUMBER: builtins.int
    user_id: builtins.str
    place_id: builtins.str
    device_id: builtins.str
    sensor_id: builtins.str
    type: Global___ThresholdType.ValueType
    value: builtins.float
    severity: Global___ThresholdSeverity.ValueType
    def __init__(
        self,
        *,
        user_id: builtins.str = ...,
        place_id: builtins.str = ...,
        device_id: builtins.str = ...,
        sensor_id: builtins.str = ...,
        type: Global___ThresholdType.ValueType = ...,
        value: builtins.float = ...,
        severity: Global___ThresholdSeverity.ValueType = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["device_id", b"device_id", "place_id", b"place_id", "sensor_id", b"sensor_id", "severity", b"severity", "type", b"type", "user_id", b"user_id", "value", b"value"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___SetThresholdRequest: typing_extensions.TypeAlias = SetThresholdRequest

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

    THRESHOLD_ID_FIELD_NUMBER: builtins.int
    threshold_id: builtins.str
    def __init__(
        self,
        *,
        threshold_id: builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["threshold_id", b"threshold_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___SetThresholdResponse: typing_extensions.TypeAlias = SetThresholdResponse

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

    USER_ID_FIELD_NUMBER: builtins.int
    PLACE_ID_FIELD_NUMBER: builtins.int
    DEVICE_ID_FIELD_NUMBER: builtins.int
    SENSOR_ID_FIELD_NUMBER: builtins.int
    user_id: builtins.str
    place_id: builtins.str
    device_id: builtins.str
    sensor_id: builtins.str
    def __init__(
        self,
        *,
        user_id: builtins.str = ...,
        place_id: builtins.str = ...,
        device_id: builtins.str = ...,
        sensor_id: builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["device_id", b"device_id", "place_id", b"place_id", "sensor_id", b"sensor_id", "user_id", b"user_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ListThresholdsRequest: typing_extensions.TypeAlias = ListThresholdsRequest

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

    THRESHOLDS_FIELD_NUMBER: builtins.int
    @property
    def thresholds(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___ThresholdInfo]: ...
    def __init__(
        self,
        *,
        thresholds: collections.abc.Iterable[Global___ThresholdInfo] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["thresholds", b"thresholds"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ListThresholdsResponse: typing_extensions.TypeAlias = ListThresholdsResponse

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

    USER_ID_FIELD_NUMBER: builtins.int
    PLACE_ID_FIELD_NUMBER: builtins.int
    DEVICE_ID_FIELD_NUMBER: builtins.int
    SENSOR_ID_FIELD_NUMBER: builtins.int
    THRESHOLD_ID_FIELD_NUMBER: builtins.int
    user_id: builtins.str
    place_id: builtins.str
    device_id: builtins.str
    sensor_id: builtins.str
    threshold_id: builtins.str
    def __init__(
        self,
        *,
        user_id: builtins.str = ...,
        place_id: builtins.str = ...,
        device_id: builtins.str = ...,
        sensor_id: builtins.str = ...,
        threshold_id: builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["device_id", b"device_id", "place_id", b"place_id", "sensor_id", b"sensor_id", "threshold_id", b"threshold_id", "user_id", b"user_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___DeleteThresholdRequest: typing_extensions.TypeAlias = DeleteThresholdRequest

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

    SUCCESS_FIELD_NUMBER: builtins.int
    success: builtins.bool
    def __init__(
        self,
        *,
        success: builtins.bool = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["success", b"success"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___DeleteThresholdResponse: typing_extensions.TypeAlias = DeleteThresholdResponse

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

    SENSOR_ID_FIELD_NUMBER: builtins.int
    sensor_id: builtins.str
    def __init__(
        self,
        *,
        sensor_id: builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["sensor_id", b"sensor_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___GetSensorThresholdsRequest: typing_extensions.TypeAlias = GetSensorThresholdsRequest

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

    THRESHOLDS_FIELD_NUMBER: builtins.int
    @property
    def thresholds(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___ThresholdInfo]: ...
    def __init__(
        self,
        *,
        thresholds: collections.abc.Iterable[Global___ThresholdInfo] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["thresholds", b"thresholds"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___GetSensorThresholdsResponse: typing_extensions.TypeAlias = GetSensorThresholdsResponse

@typing.final
class ActuatorInfo(google.protobuf.message.Message):
    """--- Actuator messages ---"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ACTUATOR_ID_FIELD_NUMBER: builtins.int
    DEVICE_ID_FIELD_NUMBER: builtins.int
    KEY_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    VALUE_TYPE_FIELD_NUMBER: builtins.int
    UNIT_LABEL_FIELD_NUMBER: builtins.int
    PRECISION_FIELD_NUMBER: builtins.int
    MIN_VALUE_FIELD_NUMBER: builtins.int
    MAX_VALUE_FIELD_NUMBER: builtins.int
    STEP_FIELD_NUMBER: builtins.int
    ENUM_OPTIONS_FIELD_NUMBER: builtins.int
    actuator_id: builtins.str
    device_id: builtins.str
    key: builtins.str
    name: builtins.str
    value_type: Global___ValueType.ValueType
    unit_label: builtins.str
    precision: builtins.int
    min_value: builtins.float
    max_value: builtins.float
    step: builtins.float
    @property
    def enum_options(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        actuator_id: builtins.str = ...,
        device_id: builtins.str = ...,
        key: builtins.str = ...,
        name: builtins.str = ...,
        value_type: Global___ValueType.ValueType = ...,
        unit_label: builtins.str = ...,
        precision: builtins.int = ...,
        min_value: builtins.float = ...,
        max_value: builtins.float = ...,
        step: builtins.float = ...,
        enum_options: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["actuator_id", b"actuator_id", "device_id", b"device_id", "enum_options", b"enum_options", "key", b"key", "max_value", b"max_value", "min_value", b"min_value", "name", b"name", "precision", b"precision", "step", b"step", "unit_label", b"unit_label", "value_type", b"value_type"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ActuatorInfo: typing_extensions.TypeAlias = ActuatorInfo

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

    USER_ID_FIELD_NUMBER: builtins.int
    PLACE_ID_FIELD_NUMBER: builtins.int
    DEVICE_ID_FIELD_NUMBER: builtins.int
    KEY_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    VALUE_TYPE_FIELD_NUMBER: builtins.int
    UNIT_LABEL_FIELD_NUMBER: builtins.int
    PRECISION_FIELD_NUMBER: builtins.int
    MIN_VALUE_FIELD_NUMBER: builtins.int
    MAX_VALUE_FIELD_NUMBER: builtins.int
    STEP_FIELD_NUMBER: builtins.int
    ENUM_OPTIONS_FIELD_NUMBER: builtins.int
    user_id: builtins.str
    place_id: builtins.str
    device_id: builtins.str
    key: builtins.str
    name: builtins.str
    value_type: Global___ValueType.ValueType
    unit_label: builtins.str
    precision: builtins.int
    min_value: builtins.float
    max_value: builtins.float
    step: builtins.float
    @property
    def enum_options(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        user_id: builtins.str = ...,
        place_id: builtins.str = ...,
        device_id: builtins.str = ...,
        key: builtins.str = ...,
        name: builtins.str = ...,
        value_type: Global___ValueType.ValueType = ...,
        unit_label: builtins.str = ...,
        precision: builtins.int = ...,
        min_value: builtins.float = ...,
        max_value: builtins.float = ...,
        step: builtins.float = ...,
        enum_options: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["device_id", b"device_id", "enum_options", b"enum_options", "key", b"key", "max_value", b"max_value", "min_value", b"min_value", "name", b"name", "place_id", b"place_id", "precision", b"precision", "step", b"step", "unit_label", b"unit_label", "user_id", b"user_id", "value_type", b"value_type"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___CreateActuatorRequest: typing_extensions.TypeAlias = CreateActuatorRequest

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

    ACTUATOR_ID_FIELD_NUMBER: builtins.int
    actuator_id: builtins.str
    def __init__(
        self,
        *,
        actuator_id: builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["actuator_id", b"actuator_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___CreateActuatorResponse: typing_extensions.TypeAlias = CreateActuatorResponse

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

    USER_ID_FIELD_NUMBER: builtins.int
    PLACE_ID_FIELD_NUMBER: builtins.int
    DEVICE_ID_FIELD_NUMBER: builtins.int
    user_id: builtins.str
    place_id: builtins.str
    device_id: builtins.str
    def __init__(
        self,
        *,
        user_id: builtins.str = ...,
        place_id: builtins.str = ...,
        device_id: builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["device_id", b"device_id", "place_id", b"place_id", "user_id", b"user_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ListActuatorsRequest: typing_extensions.TypeAlias = ListActuatorsRequest

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

    ACTUATORS_FIELD_NUMBER: builtins.int
    @property
    def actuators(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___ActuatorInfo]: ...
    def __init__(
        self,
        *,
        actuators: collections.abc.Iterable[Global___ActuatorInfo] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["actuators", b"actuators"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ListActuatorsResponse: typing_extensions.TypeAlias = ListActuatorsResponse

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

    USER_ID_FIELD_NUMBER: builtins.int
    PLACE_ID_FIELD_NUMBER: builtins.int
    DEVICE_ID_FIELD_NUMBER: builtins.int
    ACTUATOR_ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    UNIT_LABEL_FIELD_NUMBER: builtins.int
    PRECISION_FIELD_NUMBER: builtins.int
    MIN_VALUE_FIELD_NUMBER: builtins.int
    MAX_VALUE_FIELD_NUMBER: builtins.int
    STEP_FIELD_NUMBER: builtins.int
    ENUM_OPTIONS_FIELD_NUMBER: builtins.int
    user_id: builtins.str
    place_id: builtins.str
    device_id: builtins.str
    actuator_id: builtins.str
    name: builtins.str
    unit_label: builtins.str
    precision: builtins.int
    min_value: builtins.float
    max_value: builtins.float
    step: builtins.float
    @property
    def enum_options(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        user_id: builtins.str = ...,
        place_id: builtins.str = ...,
        device_id: builtins.str = ...,
        actuator_id: builtins.str = ...,
        name: builtins.str = ...,
        unit_label: builtins.str = ...,
        precision: builtins.int = ...,
        min_value: builtins.float = ...,
        max_value: builtins.float = ...,
        step: builtins.float = ...,
        enum_options: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["actuator_id", b"actuator_id", "device_id", b"device_id", "enum_options", b"enum_options", "max_value", b"max_value", "min_value", b"min_value", "name", b"name", "place_id", b"place_id", "precision", b"precision", "step", b"step", "unit_label", b"unit_label", "user_id", b"user_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___UpdateActuatorRequest: typing_extensions.TypeAlias = UpdateActuatorRequest

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

    ACTUATOR_ID_FIELD_NUMBER: builtins.int
    actuator_id: builtins.str
    def __init__(
        self,
        *,
        actuator_id: builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["actuator_id", b"actuator_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___UpdateActuatorResponse: typing_extensions.TypeAlias = UpdateActuatorResponse

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

    USER_ID_FIELD_NUMBER: builtins.int
    PLACE_ID_FIELD_NUMBER: builtins.int
    DEVICE_ID_FIELD_NUMBER: builtins.int
    ACTUATOR_ID_FIELD_NUMBER: builtins.int
    user_id: builtins.str
    place_id: builtins.str
    device_id: builtins.str
    actuator_id: builtins.str
    def __init__(
        self,
        *,
        user_id: builtins.str = ...,
        place_id: builtins.str = ...,
        device_id: builtins.str = ...,
        actuator_id: builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["actuator_id", b"actuator_id", "device_id", b"device_id", "place_id", b"place_id", "user_id", b"user_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___DeleteActuatorRequest: typing_extensions.TypeAlias = DeleteActuatorRequest

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

    SUCCESS_FIELD_NUMBER: builtins.int
    success: builtins.bool
    def __init__(
        self,
        *,
        success: builtins.bool = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["success", b"success"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___DeleteActuatorResponse: typing_extensions.TypeAlias = DeleteActuatorResponse

@typing.final
class SendCommandRequest(google.protobuf.message.Message):
    """--- Command messages ---"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    USER_ID_FIELD_NUMBER: builtins.int
    PLACE_ID_FIELD_NUMBER: builtins.int
    DEVICE_ID_FIELD_NUMBER: builtins.int
    ACTUATOR_KEY_FIELD_NUMBER: builtins.int
    VALUE_FIELD_NUMBER: builtins.int
    user_id: builtins.str
    place_id: builtins.str
    device_id: builtins.str
    actuator_key: builtins.str
    value: builtins.str
    def __init__(
        self,
        *,
        user_id: builtins.str = ...,
        place_id: builtins.str = ...,
        device_id: builtins.str = ...,
        actuator_key: builtins.str = ...,
        value: builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["actuator_key", b"actuator_key", "device_id", b"device_id", "place_id", b"place_id", "user_id", b"user_id", "value", b"value"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___SendCommandRequest: typing_extensions.TypeAlias = SendCommandRequest

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

    SUCCESS_FIELD_NUMBER: builtins.int
    success: builtins.bool
    def __init__(
        self,
        *,
        success: builtins.bool = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["success", b"success"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___SendCommandResponse: typing_extensions.TypeAlias = SendCommandResponse

@typing.final
class AuthenticateDeviceRequest(google.protobuf.message.Message):
    """--- MQTT auth messages ---"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    USERNAME_FIELD_NUMBER: builtins.int
    PASSWORD_FIELD_NUMBER: builtins.int
    username: builtins.str
    password: builtins.str
    def __init__(
        self,
        *,
        username: builtins.str = ...,
        password: builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["password", b"password", "username", b"username"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___AuthenticateDeviceRequest: typing_extensions.TypeAlias = AuthenticateDeviceRequest

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

    ALLOW_FIELD_NUMBER: builtins.int
    allow: builtins.bool
    def __init__(
        self,
        *,
        allow: builtins.bool = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["allow", b"allow"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___AuthenticateDeviceResponse: typing_extensions.TypeAlias = AuthenticateDeviceResponse

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

    USERNAME_FIELD_NUMBER: builtins.int
    TOPIC_FIELD_NUMBER: builtins.int
    ACTION_FIELD_NUMBER: builtins.int
    username: builtins.str
    topic: builtins.str
    action: builtins.str
    def __init__(
        self,
        *,
        username: builtins.str = ...,
        topic: builtins.str = ...,
        action: builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["action", b"action", "topic", b"topic", "username", b"username"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___CheckDeviceAclRequest: typing_extensions.TypeAlias = CheckDeviceAclRequest

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

    ALLOW_FIELD_NUMBER: builtins.int
    allow: builtins.bool
    def __init__(
        self,
        *,
        allow: builtins.bool = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["allow", b"allow"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___CheckDeviceAclResponse: typing_extensions.TypeAlias = CheckDeviceAclResponse

@typing.final
class GenerateMqttCredentialsRequest(google.protobuf.message.Message):
    """--- MQTT credentials ---"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    USER_ID_FIELD_NUMBER: builtins.int
    user_id: builtins.str
    def __init__(
        self,
        *,
        user_id: builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["user_id", b"user_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___GenerateMqttCredentialsRequest: typing_extensions.TypeAlias = GenerateMqttCredentialsRequest

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

    USERNAME_FIELD_NUMBER: builtins.int
    PASSWORD_FIELD_NUMBER: builtins.int
    EXPIRES_AT_FIELD_NUMBER: builtins.int
    username: builtins.str
    password: builtins.str
    expires_at: builtins.int
    def __init__(
        self,
        *,
        username: builtins.str = ...,
        password: builtins.str = ...,
        expires_at: builtins.int = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["expires_at", b"expires_at", "password", b"password", "username", b"username"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___GenerateMqttCredentialsResponse: typing_extensions.TypeAlias = GenerateMqttCredentialsResponse

@typing.final
class UpdateDeviceStatusRequest(google.protobuf.message.Message):
    """--- Device status ---"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DEVICE_ID_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    device_id: builtins.str
    status: Global___DeviceStatus.ValueType
    def __init__(
        self,
        *,
        device_id: builtins.str = ...,
        status: Global___DeviceStatus.ValueType = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["device_id", b"device_id", "status", b"status"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___UpdateDeviceStatusRequest: typing_extensions.TypeAlias = UpdateDeviceStatusRequest

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

    SUCCESS_FIELD_NUMBER: builtins.int
    success: builtins.bool
    def __init__(
        self,
        *,
        success: builtins.bool = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["success", b"success"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___UpdateDeviceStatusResponse: typing_extensions.TypeAlias = UpdateDeviceStatusResponse

@typing.final
class DeleteDevicesByPlaceRequest(google.protobuf.message.Message):
    """--- DeleteDevicesByPlace (internal) ---"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PLACE_ID_FIELD_NUMBER: builtins.int
    place_id: builtins.str
    def __init__(
        self,
        *,
        place_id: builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["place_id", b"place_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___DeleteDevicesByPlaceRequest: typing_extensions.TypeAlias = DeleteDevicesByPlaceRequest

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

    SUCCESS_FIELD_NUMBER: builtins.int
    DELETED_COUNT_FIELD_NUMBER: builtins.int
    DEVICE_IDS_FIELD_NUMBER: builtins.int
    success: builtins.bool
    deleted_count: builtins.int
    @property
    def device_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        success: builtins.bool = ...,
        deleted_count: builtins.int = ...,
        device_ids: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["deleted_count", b"deleted_count", "device_ids", b"device_ids", "success", b"success"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___DeleteDevicesByPlaceResponse: typing_extensions.TypeAlias = DeleteDevicesByPlaceResponse

@typing.final
class GetAllThresholdsRequest(google.protobuf.message.Message):
    """--- GetAllThresholds (for collector) ---"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

Global___GetAllThresholdsRequest: typing_extensions.TypeAlias = GetAllThresholdsRequest

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

    SENSOR_ID_FIELD_NUMBER: builtins.int
    DEVICE_ID_FIELD_NUMBER: builtins.int
    PLACE_ID_FIELD_NUMBER: builtins.int
    KEY_FIELD_NUMBER: builtins.int
    THRESHOLDS_FIELD_NUMBER: builtins.int
    sensor_id: builtins.str
    device_id: builtins.str
    place_id: builtins.str
    key: builtins.str
    @property
    def thresholds(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___ThresholdInfo]: ...
    def __init__(
        self,
        *,
        sensor_id: builtins.str = ...,
        device_id: builtins.str = ...,
        place_id: builtins.str = ...,
        key: builtins.str = ...,
        thresholds: collections.abc.Iterable[Global___ThresholdInfo] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["device_id", b"device_id", "key", b"key", "place_id", b"place_id", "sensor_id", b"sensor_id", "thresholds", b"thresholds"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___SensorWithThresholds: typing_extensions.TypeAlias = SensorWithThresholds

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

    SENSORS_FIELD_NUMBER: builtins.int
    @property
    def sensors(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___SensorWithThresholds]: ...
    def __init__(
        self,
        *,
        sensors: collections.abc.Iterable[Global___SensorWithThresholds] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["sensors", b"sensors"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___GetAllThresholdsResponse: typing_extensions.TypeAlias = GetAllThresholdsResponse

@typing.final
class InvalidateMqttCredentialsRequest(google.protobuf.message.Message):
    """--- InvalidateMqttCredentials (internal) ---"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    USER_IDS_FIELD_NUMBER: builtins.int
    @property
    def user_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        user_ids: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["user_ids", b"user_ids"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___InvalidateMqttCredentialsRequest: typing_extensions.TypeAlias = InvalidateMqttCredentialsRequest

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

    SUCCESS_FIELD_NUMBER: builtins.int
    success: builtins.bool
    def __init__(
        self,
        *,
        success: builtins.bool = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["success", b"success"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___InvalidateMqttCredentialsResponse: typing_extensions.TypeAlias = InvalidateMqttCredentialsResponse
