65 lines
1.6 KiB
Python
65 lines
1.6 KiB
Python
"""Schemas for gateway passthrough API request and response payloads."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from sqlmodel import SQLModel
|
|
|
|
from app.schemas.common import NonEmptyStr
|
|
|
|
RUNTIME_ANNOTATION_TYPES = (NonEmptyStr,)
|
|
|
|
|
|
class GatewaySessionMessageRequest(SQLModel):
|
|
"""Request payload for sending a message into a gateway session."""
|
|
|
|
content: NonEmptyStr
|
|
|
|
|
|
class GatewayResolveQuery(SQLModel):
|
|
"""Query parameters used to resolve which gateway to target."""
|
|
|
|
board_id: str | None = None
|
|
gateway_url: str | None = None
|
|
gateway_token: str | None = None
|
|
gateway_disable_device_pairing: bool = False
|
|
gateway_allow_insecure_tls: bool = False
|
|
|
|
|
|
class GatewaysStatusResponse(SQLModel):
|
|
"""Aggregated gateway status response including session metadata."""
|
|
|
|
connected: bool
|
|
gateway_url: str
|
|
sessions_count: int | None = None
|
|
sessions: list[object] | None = None
|
|
main_session: object | None = None
|
|
main_session_error: str | None = None
|
|
error: str | None = None
|
|
|
|
|
|
class GatewaySessionsResponse(SQLModel):
|
|
"""Gateway sessions list response payload."""
|
|
|
|
sessions: list[object]
|
|
main_session: object | None = None
|
|
|
|
|
|
class GatewaySessionResponse(SQLModel):
|
|
"""Single gateway session response payload."""
|
|
|
|
session: object
|
|
|
|
|
|
class GatewaySessionHistoryResponse(SQLModel):
|
|
"""Gateway session history response payload."""
|
|
|
|
history: list[object]
|
|
|
|
|
|
class GatewayCommandsResponse(SQLModel):
|
|
"""Gateway command catalog and protocol metadata."""
|
|
|
|
protocol_version: int
|
|
methods: list[str]
|
|
events: list[str]
|