53 lines
1.4 KiB
Python
53 lines
1.4 KiB
Python
"""Schema for an API response.
|
|
|
|
https://yandex.ru/dev/dialogs/smart-home/doc/concepts/response-codes.html
|
|
"""
|
|
|
|
from enum import StrEnum
|
|
|
|
from .base import APIModel
|
|
|
|
|
|
class ResponseCode(StrEnum):
|
|
"""Response code."""
|
|
|
|
DOOR_OPEN = "DOOR_OPEN"
|
|
LID_OPEN = "LID_OPEN"
|
|
REMOTE_CONTROL_DISABLED = "REMOTE_CONTROL_DISABLED"
|
|
NOT_ENOUGH_WATER = "NOT_ENOUGH_WATER"
|
|
LOW_CHARGE_LEVEL = "LOW_CHARGE_LEVEL"
|
|
CONTAINER_FULL = "CONTAINER_FULL"
|
|
CONTAINER_EMPTY = "CONTAINER_EMPTY"
|
|
DRIP_TRAY_FULL = "DRIP_TRAY_FULL"
|
|
DEVICE_STUCK = "DEVICE_STUCK"
|
|
DEVICE_OFF = "DEVICE_OFF"
|
|
FIRMWARE_OUT_OF_DATE = "FIRMWARE_OUT_OF_DATE"
|
|
NOT_ENOUGH_DETERGENT = "NOT_ENOUGH_DETERGENT"
|
|
HUMAN_INVOLVEMENT_NEEDED = "HUMAN_INVOLVEMENT_NEEDED"
|
|
DEVICE_UNREACHABLE = "DEVICE_UNREACHABLE"
|
|
DEVICE_BUSY = "DEVICE_BUSY"
|
|
INTERNAL_ERROR = "INTERNAL_ERROR"
|
|
INVALID_ACTION = "INVALID_ACTION"
|
|
INVALID_VALUE = "INVALID_VALUE"
|
|
NOT_SUPPORTED_IN_CURRENT_MODE = "NOT_SUPPORTED_IN_CURRENT_MODE"
|
|
ACCOUNT_LINKING_ERROR = "ACCOUNT_LINKING_ERROR"
|
|
DEVICE_NOT_FOUND = "DEVICE_NOT_FOUND"
|
|
|
|
|
|
class ResponsePayload(APIModel):
|
|
"""Base class for an API response payload."""
|
|
|
|
|
|
class Error(ResponsePayload):
|
|
"""Error payload."""
|
|
|
|
error_code: ResponseCode
|
|
error_message: str | None = None
|
|
|
|
|
|
class Response(APIModel):
|
|
"""Base API response."""
|
|
|
|
request_id: str | None = None
|
|
payload: ResponsePayload | None = None
|