2118 lines
50 KiB
JSON
2118 lines
50 KiB
JSON
{
|
||
"openapi": "3.1.0",
|
||
"info": {
|
||
"title": "Ignis Core API",
|
||
"version": "1.0.0"
|
||
},
|
||
"paths": {
|
||
"/devices": {
|
||
"get": {
|
||
"tags": [
|
||
"Devices & Groups"
|
||
],
|
||
"summary": "Get All Devices",
|
||
"operationId": "get_all_devices_devices_get",
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"security": [
|
||
{
|
||
"APIKeyHeader": []
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"/devices/groups": {
|
||
"get": {
|
||
"tags": [
|
||
"Devices & Groups"
|
||
],
|
||
"summary": "Get Groups",
|
||
"operationId": "get_groups_devices_groups_get",
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"security": [
|
||
{
|
||
"APIKeyHeader": []
|
||
}
|
||
]
|
||
},
|
||
"post": {
|
||
"tags": [
|
||
"Devices & Groups"
|
||
],
|
||
"summary": "Create Group",
|
||
"operationId": "create_group_devices_groups_post",
|
||
"requestBody": {
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/GroupCreateSchema"
|
||
}
|
||
}
|
||
},
|
||
"required": true
|
||
},
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {}
|
||
}
|
||
}
|
||
},
|
||
"422": {
|
||
"description": "Validation Error",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/HTTPValidationError"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"security": [
|
||
{
|
||
"APIKeyHeader": []
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"/devices/scenes": {
|
||
"get": {
|
||
"tags": [
|
||
"Devices & Groups"
|
||
],
|
||
"summary": "Get Scenes",
|
||
"operationId": "get_scenes_devices_scenes_get",
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"security": [
|
||
{
|
||
"APIKeyHeader": []
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"/devices/groups/{group_id}": {
|
||
"delete": {
|
||
"tags": [
|
||
"Devices & Groups"
|
||
],
|
||
"summary": "Delete Group",
|
||
"operationId": "delete_group_devices_groups__group_id__delete",
|
||
"security": [
|
||
{
|
||
"APIKeyHeader": []
|
||
}
|
||
],
|
||
"parameters": [
|
||
{
|
||
"name": "group_id",
|
||
"in": "path",
|
||
"required": true,
|
||
"schema": {
|
||
"type": "string",
|
||
"title": "Group Id"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {}
|
||
}
|
||
}
|
||
},
|
||
"422": {
|
||
"description": "Validation Error",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/HTTPValidationError"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/devices/rescan": {
|
||
"post": {
|
||
"tags": [
|
||
"Devices & Groups"
|
||
],
|
||
"summary": "Rescan Network",
|
||
"operationId": "rescan_network_devices_rescan_post",
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/RescanResponse"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"security": [
|
||
{
|
||
"APIKeyHeader": []
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"/control/device/{device_id}": {
|
||
"post": {
|
||
"tags": [
|
||
"Control"
|
||
],
|
||
"summary": "Control Device",
|
||
"operationId": "control_device_control_device__device_id__post",
|
||
"security": [
|
||
{
|
||
"APIKeyHeader": []
|
||
}
|
||
],
|
||
"parameters": [
|
||
{
|
||
"name": "device_id",
|
||
"in": "path",
|
||
"required": true,
|
||
"schema": {
|
||
"type": "string",
|
||
"title": "Device Id"
|
||
}
|
||
}
|
||
],
|
||
"requestBody": {
|
||
"required": true,
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/CommandRequest"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/DeviceControlResponse"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"422": {
|
||
"description": "Validation Error",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/HTTPValidationError"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/control/group/{group_id}": {
|
||
"post": {
|
||
"tags": [
|
||
"Control"
|
||
],
|
||
"summary": "Control Group",
|
||
"operationId": "control_group_control_group__group_id__post",
|
||
"security": [
|
||
{
|
||
"APIKeyHeader": []
|
||
}
|
||
],
|
||
"parameters": [
|
||
{
|
||
"name": "group_id",
|
||
"in": "path",
|
||
"required": true,
|
||
"schema": {
|
||
"type": "string",
|
||
"title": "Group Id"
|
||
}
|
||
}
|
||
],
|
||
"requestBody": {
|
||
"required": true,
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/CommandRequest"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/GroupControlResponse"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"422": {
|
||
"description": "Validation Error",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/HTTPValidationError"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/control/device/{device_id}/blink": {
|
||
"post": {
|
||
"tags": [
|
||
"Control"
|
||
],
|
||
"summary": "Blink Device",
|
||
"operationId": "blink_device_control_device__device_id__blink_post",
|
||
"security": [
|
||
{
|
||
"APIKeyHeader": []
|
||
}
|
||
],
|
||
"parameters": [
|
||
{
|
||
"name": "device_id",
|
||
"in": "path",
|
||
"required": true,
|
||
"schema": {
|
||
"type": "string",
|
||
"title": "Device Id"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/BlinkResponse"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"422": {
|
||
"description": "Validation Error",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/HTTPValidationError"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/control/device/{device_id}/status": {
|
||
"get": {
|
||
"tags": [
|
||
"Control"
|
||
],
|
||
"summary": "Get Device Status",
|
||
"description": "Опрос реального состояния конкретной лампы.",
|
||
"operationId": "get_device_status_control_device__device_id__status_get",
|
||
"security": [
|
||
{
|
||
"APIKeyHeader": []
|
||
}
|
||
],
|
||
"parameters": [
|
||
{
|
||
"name": "device_id",
|
||
"in": "path",
|
||
"required": true,
|
||
"schema": {
|
||
"type": "string",
|
||
"title": "Device Id"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/DeviceStatusResponse"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"422": {
|
||
"description": "Validation Error",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/HTTPValidationError"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/control/group/{group_id}/status": {
|
||
"get": {
|
||
"tags": [
|
||
"Control"
|
||
],
|
||
"summary": "Get Group Status",
|
||
"description": "Опрос состояния всей группы (возвращает список статусов).",
|
||
"operationId": "get_group_status_control_group__group_id__status_get",
|
||
"security": [
|
||
{
|
||
"APIKeyHeader": []
|
||
}
|
||
],
|
||
"parameters": [
|
||
{
|
||
"name": "group_id",
|
||
"in": "path",
|
||
"required": true,
|
||
"schema": {
|
||
"type": "string",
|
||
"title": "Group Id"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/GroupStatusResponse"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"422": {
|
||
"description": "Validation Error",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/HTTPValidationError"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/schedules/once": {
|
||
"post": {
|
||
"tags": [
|
||
"Schedules"
|
||
],
|
||
"summary": "Schedule Once",
|
||
"operationId": "schedule_once_schedules_once_post",
|
||
"requestBody": {
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/ScheduleOnceRequest"
|
||
}
|
||
}
|
||
},
|
||
"required": true
|
||
},
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/ScheduleCreateResponse"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"422": {
|
||
"description": "Validation Error",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/HTTPValidationError"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"security": [
|
||
{
|
||
"APIKeyHeader": []
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"/schedules/cron": {
|
||
"post": {
|
||
"tags": [
|
||
"Schedules"
|
||
],
|
||
"summary": "Add Cron Task",
|
||
"operationId": "add_cron_task_schedules_cron_post",
|
||
"requestBody": {
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/ScheduleCronRequest"
|
||
}
|
||
}
|
||
},
|
||
"required": true
|
||
},
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/ScheduleCreateResponse"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"422": {
|
||
"description": "Validation Error",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/HTTPValidationError"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"security": [
|
||
{
|
||
"APIKeyHeader": []
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"/schedules/tasks": {
|
||
"get": {
|
||
"tags": [
|
||
"Schedules"
|
||
],
|
||
"summary": "Get All Tasks",
|
||
"operationId": "get_all_tasks_schedules_tasks_get",
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/ScheduleTasksResponse"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"security": [
|
||
{
|
||
"APIKeyHeader": []
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"/schedules/{job_id}": {
|
||
"delete": {
|
||
"tags": [
|
||
"Schedules"
|
||
],
|
||
"summary": "Cancel Task",
|
||
"operationId": "cancel_task_schedules__job_id__delete",
|
||
"security": [
|
||
{
|
||
"APIKeyHeader": []
|
||
}
|
||
],
|
||
"parameters": [
|
||
{
|
||
"name": "job_id",
|
||
"in": "path",
|
||
"required": true,
|
||
"schema": {
|
||
"type": "string",
|
||
"title": "Job Id"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/DeleteStatusResponse"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"422": {
|
||
"description": "Validation Error",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/HTTPValidationError"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api-keys": {
|
||
"get": {
|
||
"tags": [
|
||
"API Keys"
|
||
],
|
||
"summary": "List Keys",
|
||
"description": "Список всех гостевых ключей.\n\nВ ответе поле `key` содержит публичный идентификатор, а не сам секрет.\nЭто сохраняет совместимость с текущим UI и не раскрывает токены повторно.",
|
||
"operationId": "list_keys_api_keys_get",
|
||
"security": [
|
||
{
|
||
"APIKeyHeader": []
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"post": {
|
||
"tags": [
|
||
"API Keys"
|
||
],
|
||
"summary": "Create Key",
|
||
"description": "Создать гостевой ключ. Возвращает сгенерированный токен.",
|
||
"operationId": "create_key_api_keys_post",
|
||
"security": [
|
||
{
|
||
"APIKeyHeader": []
|
||
}
|
||
],
|
||
"parameters": [
|
||
{
|
||
"name": "name",
|
||
"in": "query",
|
||
"required": true,
|
||
"schema": {
|
||
"type": "string",
|
||
"title": "Name"
|
||
}
|
||
},
|
||
{
|
||
"name": "is_admin",
|
||
"in": "query",
|
||
"required": false,
|
||
"schema": {
|
||
"type": "boolean",
|
||
"default": false,
|
||
"title": "Is Admin"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {}
|
||
}
|
||
}
|
||
},
|
||
"422": {
|
||
"description": "Validation Error",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/HTTPValidationError"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api-keys/revoke": {
|
||
"post": {
|
||
"tags": [
|
||
"API Keys"
|
||
],
|
||
"summary": "Revoke Key",
|
||
"description": "Деактивировать (отозвать) гостевой ключ. Ключ передаётся в body, не в URL.",
|
||
"operationId": "revoke_key_api_keys_revoke_post",
|
||
"requestBody": {
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/KeyActionRequest"
|
||
}
|
||
}
|
||
},
|
||
"required": true
|
||
},
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {}
|
||
}
|
||
}
|
||
},
|
||
"422": {
|
||
"description": "Validation Error",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/HTTPValidationError"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"security": [
|
||
{
|
||
"APIKeyHeader": []
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"/api-keys/activate": {
|
||
"post": {
|
||
"tags": [
|
||
"API Keys"
|
||
],
|
||
"summary": "Activate Key",
|
||
"description": "Повторно активировать ключ. Ключ передаётся в body, не в URL.",
|
||
"operationId": "activate_key_api_keys_activate_post",
|
||
"requestBody": {
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/KeyActionRequest"
|
||
}
|
||
}
|
||
},
|
||
"required": true
|
||
},
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {}
|
||
}
|
||
}
|
||
},
|
||
"422": {
|
||
"description": "Validation Error",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/HTTPValidationError"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"security": [
|
||
{
|
||
"APIKeyHeader": []
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"/stats/summary": {
|
||
"get": {
|
||
"tags": [
|
||
"Stats"
|
||
],
|
||
"summary": "Get Summary",
|
||
"description": "Сводная статистика за последние N дней.\nВозвращает по каждой группе/устройству:\n- total_commands -- общее количество команд\n- toggles_on / toggles_off -- включений / выключений\n- estimated_hours -- оценка часов работы (по парам on/off)",
|
||
"operationId": "get_summary_stats_summary_get",
|
||
"security": [
|
||
{
|
||
"APIKeyHeader": []
|
||
}
|
||
],
|
||
"parameters": [
|
||
{
|
||
"name": "days",
|
||
"in": "query",
|
||
"required": false,
|
||
"schema": {
|
||
"type": "integer",
|
||
"maximum": 365,
|
||
"minimum": 1,
|
||
"default": 7,
|
||
"title": "Days"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {}
|
||
}
|
||
}
|
||
},
|
||
"422": {
|
||
"description": "Validation Error",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/HTTPValidationError"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/stats/log": {
|
||
"get": {
|
||
"tags": [
|
||
"Stats"
|
||
],
|
||
"summary": "Get Log",
|
||
"description": "Последние N событий (для просмотра лога).",
|
||
"operationId": "get_log_stats_log_get",
|
||
"security": [
|
||
{
|
||
"APIKeyHeader": []
|
||
}
|
||
],
|
||
"parameters": [
|
||
{
|
||
"name": "limit",
|
||
"in": "query",
|
||
"required": false,
|
||
"schema": {
|
||
"type": "integer",
|
||
"maximum": 500,
|
||
"minimum": 1,
|
||
"default": 50,
|
||
"title": "Limit"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {}
|
||
}
|
||
}
|
||
},
|
||
"422": {
|
||
"description": "Validation Error",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/HTTPValidationError"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/system/info": {
|
||
"get": {
|
||
"tags": [
|
||
"System"
|
||
],
|
||
"summary": "Get System Info",
|
||
"operationId": "get_system_info_system_info_get",
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/ServerInfoResponse"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"security": [
|
||
{
|
||
"APIKeyHeader": []
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"/": {
|
||
"get": {
|
||
"summary": "Read Index",
|
||
"operationId": "read_index__get",
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/auth/me": {
|
||
"get": {
|
||
"summary": "Auth Me",
|
||
"operationId": "auth_me_auth_me_get",
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"security": [
|
||
{
|
||
"APIKeyHeader": []
|
||
}
|
||
]
|
||
}
|
||
}
|
||
},
|
||
"components": {
|
||
"schemas": {
|
||
"BlinkResponse": {
|
||
"properties": {
|
||
"status": {
|
||
"const": "blink_done",
|
||
"title": "Status"
|
||
},
|
||
"original": {
|
||
"type": "boolean",
|
||
"title": "Original"
|
||
}
|
||
},
|
||
"type": "object",
|
||
"required": [
|
||
"status",
|
||
"original"
|
||
],
|
||
"title": "BlinkResponse"
|
||
},
|
||
"CommandRequest": {
|
||
"properties": {
|
||
"state": {
|
||
"anyOf": [
|
||
{
|
||
"type": "boolean"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "State"
|
||
},
|
||
"brightness": {
|
||
"anyOf": [
|
||
{
|
||
"type": "integer",
|
||
"maximum": 100.0,
|
||
"minimum": 10.0
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Brightness"
|
||
},
|
||
"scene": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Scene"
|
||
},
|
||
"temp": {
|
||
"anyOf": [
|
||
{
|
||
"type": "integer",
|
||
"maximum": 6500.0,
|
||
"minimum": 2200.0
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Temp"
|
||
},
|
||
"r": {
|
||
"anyOf": [
|
||
{
|
||
"type": "integer",
|
||
"maximum": 255.0,
|
||
"minimum": 0.0
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "R"
|
||
},
|
||
"g": {
|
||
"anyOf": [
|
||
{
|
||
"type": "integer",
|
||
"maximum": 255.0,
|
||
"minimum": 0.0
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "G"
|
||
},
|
||
"b": {
|
||
"anyOf": [
|
||
{
|
||
"type": "integer",
|
||
"maximum": 255.0,
|
||
"minimum": 0.0
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "B"
|
||
}
|
||
},
|
||
"additionalProperties": false,
|
||
"type": "object",
|
||
"title": "CommandRequest"
|
||
},
|
||
"DeleteStatusResponse": {
|
||
"properties": {
|
||
"status": {
|
||
"const": "deleted",
|
||
"title": "Status"
|
||
}
|
||
},
|
||
"type": "object",
|
||
"required": [
|
||
"status"
|
||
],
|
||
"title": "DeleteStatusResponse"
|
||
},
|
||
"DeviceControlResponse": {
|
||
"properties": {
|
||
"device_id": {
|
||
"type": "string",
|
||
"title": "Device Id"
|
||
},
|
||
"applied": {
|
||
"type": "object",
|
||
"title": "Applied"
|
||
},
|
||
"result": {
|
||
"anyOf": [
|
||
{
|
||
"type": "object"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Result"
|
||
},
|
||
"status": {
|
||
"const": "ok",
|
||
"title": "Status"
|
||
}
|
||
},
|
||
"type": "object",
|
||
"required": [
|
||
"device_id",
|
||
"applied",
|
||
"status"
|
||
],
|
||
"title": "DeviceControlResponse"
|
||
},
|
||
"DeviceStatusResponse": {
|
||
"properties": {
|
||
"device_id": {
|
||
"type": "string",
|
||
"title": "Device Id"
|
||
},
|
||
"status": {
|
||
"type": "object",
|
||
"title": "Status"
|
||
}
|
||
},
|
||
"type": "object",
|
||
"required": [
|
||
"device_id",
|
||
"status"
|
||
],
|
||
"title": "DeviceStatusResponse"
|
||
},
|
||
"GroupCommandResult": {
|
||
"properties": {
|
||
"ip": {
|
||
"type": "string",
|
||
"title": "Ip"
|
||
},
|
||
"ok": {
|
||
"type": "boolean",
|
||
"title": "Ok"
|
||
},
|
||
"kind": {
|
||
"type": "string",
|
||
"title": "Kind"
|
||
},
|
||
"result": {
|
||
"anyOf": [
|
||
{
|
||
"type": "object"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Result"
|
||
},
|
||
"error": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Error"
|
||
}
|
||
},
|
||
"type": "object",
|
||
"required": [
|
||
"ip",
|
||
"ok",
|
||
"kind"
|
||
],
|
||
"title": "GroupCommandResult"
|
||
},
|
||
"GroupControlResponse": {
|
||
"properties": {
|
||
"status": {
|
||
"type": "string",
|
||
"enum": [
|
||
"ok",
|
||
"partial"
|
||
],
|
||
"title": "Status"
|
||
},
|
||
"applied": {
|
||
"type": "object",
|
||
"title": "Applied"
|
||
},
|
||
"sent_to": {
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"type": "array",
|
||
"title": "Sent To"
|
||
},
|
||
"success_count": {
|
||
"type": "integer",
|
||
"title": "Success Count"
|
||
},
|
||
"failure_count": {
|
||
"type": "integer",
|
||
"title": "Failure Count"
|
||
},
|
||
"results": {
|
||
"items": {
|
||
"$ref": "#/components/schemas/GroupCommandResult"
|
||
},
|
||
"type": "array",
|
||
"title": "Results"
|
||
}
|
||
},
|
||
"type": "object",
|
||
"required": [
|
||
"status",
|
||
"applied",
|
||
"sent_to",
|
||
"success_count",
|
||
"failure_count",
|
||
"results"
|
||
],
|
||
"title": "GroupControlResponse"
|
||
},
|
||
"GroupCreateSchema": {
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"title": "Id"
|
||
},
|
||
"name": {
|
||
"type": "string",
|
||
"title": "Name"
|
||
},
|
||
"macs": {
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"type": "array",
|
||
"title": "Macs"
|
||
}
|
||
},
|
||
"type": "object",
|
||
"required": [
|
||
"id",
|
||
"name",
|
||
"macs"
|
||
],
|
||
"title": "GroupCreateSchema"
|
||
},
|
||
"GroupStatusItem": {
|
||
"properties": {
|
||
"ip": {
|
||
"type": "string",
|
||
"title": "Ip"
|
||
},
|
||
"status": {
|
||
"anyOf": [
|
||
{
|
||
"type": "object"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Status"
|
||
},
|
||
"error": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Error"
|
||
},
|
||
"kind": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Kind"
|
||
}
|
||
},
|
||
"type": "object",
|
||
"required": [
|
||
"ip"
|
||
],
|
||
"title": "GroupStatusItem"
|
||
},
|
||
"GroupStatusResponse": {
|
||
"properties": {
|
||
"group_id": {
|
||
"type": "string",
|
||
"title": "Group Id"
|
||
},
|
||
"results": {
|
||
"items": {
|
||
"$ref": "#/components/schemas/GroupStatusItem"
|
||
},
|
||
"type": "array",
|
||
"title": "Results"
|
||
}
|
||
},
|
||
"type": "object",
|
||
"required": [
|
||
"group_id",
|
||
"results"
|
||
],
|
||
"title": "GroupStatusResponse"
|
||
},
|
||
"HTTPValidationError": {
|
||
"properties": {
|
||
"detail": {
|
||
"items": {
|
||
"$ref": "#/components/schemas/ValidationError"
|
||
},
|
||
"type": "array",
|
||
"title": "Detail"
|
||
}
|
||
},
|
||
"type": "object",
|
||
"title": "HTTPValidationError"
|
||
},
|
||
"KeyActionRequest": {
|
||
"properties": {
|
||
"key": {
|
||
"type": "string",
|
||
"title": "Key"
|
||
}
|
||
},
|
||
"type": "object",
|
||
"required": [
|
||
"key"
|
||
],
|
||
"title": "KeyActionRequest",
|
||
"description": "Тело запроса для операций с ключом (чтобы токен не летел в URL)."
|
||
},
|
||
"RescanResponse": {
|
||
"properties": {
|
||
"status": {
|
||
"const": "ok",
|
||
"title": "Status"
|
||
},
|
||
"found": {
|
||
"type": "integer",
|
||
"title": "Found"
|
||
},
|
||
"added": {
|
||
"type": "integer",
|
||
"title": "Added"
|
||
},
|
||
"updated": {
|
||
"type": "integer",
|
||
"title": "Updated"
|
||
},
|
||
"removed_offline": {
|
||
"type": "integer",
|
||
"title": "Removed Offline"
|
||
},
|
||
"pending_removal": {
|
||
"type": "integer",
|
||
"title": "Pending Removal"
|
||
},
|
||
"online": {
|
||
"type": "integer",
|
||
"title": "Online"
|
||
}
|
||
},
|
||
"type": "object",
|
||
"required": [
|
||
"status",
|
||
"found",
|
||
"added",
|
||
"updated",
|
||
"removed_offline",
|
||
"pending_removal",
|
||
"online"
|
||
],
|
||
"title": "RescanResponse"
|
||
},
|
||
"ScheduleCreateResponse": {
|
||
"properties": {
|
||
"status": {
|
||
"type": "string",
|
||
"title": "Status"
|
||
},
|
||
"job_id": {
|
||
"type": "string",
|
||
"title": "Job Id"
|
||
},
|
||
"run_at": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Run At"
|
||
}
|
||
},
|
||
"type": "object",
|
||
"required": [
|
||
"status",
|
||
"job_id"
|
||
],
|
||
"title": "ScheduleCreateResponse"
|
||
},
|
||
"ScheduleCronRequest": {
|
||
"properties": {
|
||
"state": {
|
||
"anyOf": [
|
||
{
|
||
"type": "boolean"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "State"
|
||
},
|
||
"brightness": {
|
||
"anyOf": [
|
||
{
|
||
"type": "integer",
|
||
"maximum": 100.0,
|
||
"minimum": 10.0
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Brightness"
|
||
},
|
||
"scene": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Scene"
|
||
},
|
||
"temp": {
|
||
"anyOf": [
|
||
{
|
||
"type": "integer",
|
||
"maximum": 6500.0,
|
||
"minimum": 2200.0
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Temp"
|
||
},
|
||
"r": {
|
||
"anyOf": [
|
||
{
|
||
"type": "integer",
|
||
"maximum": 255.0,
|
||
"minimum": 0.0
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "R"
|
||
},
|
||
"g": {
|
||
"anyOf": [
|
||
{
|
||
"type": "integer",
|
||
"maximum": 255.0,
|
||
"minimum": 0.0
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "G"
|
||
},
|
||
"b": {
|
||
"anyOf": [
|
||
{
|
||
"type": "integer",
|
||
"maximum": 255.0,
|
||
"minimum": 0.0
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "B"
|
||
},
|
||
"target_id": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"title": "Target Id"
|
||
},
|
||
"hour": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"title": "Hour"
|
||
},
|
||
"minute": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"title": "Minute"
|
||
},
|
||
"day_of_week": {
|
||
"type": "string",
|
||
"title": "Day Of Week",
|
||
"default": "*"
|
||
},
|
||
"is_group": {
|
||
"type": "boolean",
|
||
"title": "Is Group",
|
||
"default": true
|
||
}
|
||
},
|
||
"additionalProperties": false,
|
||
"type": "object",
|
||
"required": [
|
||
"target_id",
|
||
"hour",
|
||
"minute"
|
||
],
|
||
"title": "ScheduleCronRequest"
|
||
},
|
||
"ScheduleOnceRequest": {
|
||
"properties": {
|
||
"state": {
|
||
"anyOf": [
|
||
{
|
||
"type": "boolean"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "State"
|
||
},
|
||
"brightness": {
|
||
"anyOf": [
|
||
{
|
||
"type": "integer",
|
||
"maximum": 100.0,
|
||
"minimum": 10.0
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Brightness"
|
||
},
|
||
"scene": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Scene"
|
||
},
|
||
"temp": {
|
||
"anyOf": [
|
||
{
|
||
"type": "integer",
|
||
"maximum": 6500.0,
|
||
"minimum": 2200.0
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Temp"
|
||
},
|
||
"r": {
|
||
"anyOf": [
|
||
{
|
||
"type": "integer",
|
||
"maximum": 255.0,
|
||
"minimum": 0.0
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "R"
|
||
},
|
||
"g": {
|
||
"anyOf": [
|
||
{
|
||
"type": "integer",
|
||
"maximum": 255.0,
|
||
"minimum": 0.0
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "G"
|
||
},
|
||
"b": {
|
||
"anyOf": [
|
||
{
|
||
"type": "integer",
|
||
"maximum": 255.0,
|
||
"minimum": 0.0
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "B"
|
||
},
|
||
"target_id": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"title": "Target Id"
|
||
},
|
||
"run_at": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string",
|
||
"format": "date-time"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Run At"
|
||
},
|
||
"hours_from_now": {
|
||
"anyOf": [
|
||
{
|
||
"type": "integer",
|
||
"minimum": 0.0
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Hours From Now"
|
||
},
|
||
"is_group": {
|
||
"type": "boolean",
|
||
"title": "Is Group",
|
||
"default": true
|
||
}
|
||
},
|
||
"additionalProperties": false,
|
||
"type": "object",
|
||
"required": [
|
||
"target_id"
|
||
],
|
||
"title": "ScheduleOnceRequest"
|
||
},
|
||
"ScheduleTaskItem": {
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"title": "Id"
|
||
},
|
||
"target_id": {
|
||
"type": "string",
|
||
"title": "Target Id"
|
||
},
|
||
"is_group": {
|
||
"type": "boolean",
|
||
"title": "Is Group"
|
||
},
|
||
"state": {
|
||
"anyOf": [
|
||
{
|
||
"type": "boolean"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "State"
|
||
},
|
||
"action_params": {
|
||
"type": "object",
|
||
"title": "Action Params"
|
||
},
|
||
"trigger_type": {
|
||
"type": "string",
|
||
"title": "Trigger Type"
|
||
},
|
||
"next_run": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Next Run"
|
||
},
|
||
"hour": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Hour"
|
||
},
|
||
"minute": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Minute"
|
||
},
|
||
"day_of_week": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Day Of Week"
|
||
},
|
||
"job_present": {
|
||
"type": "boolean",
|
||
"title": "Job Present"
|
||
}
|
||
},
|
||
"type": "object",
|
||
"required": [
|
||
"id",
|
||
"target_id",
|
||
"is_group",
|
||
"action_params",
|
||
"trigger_type",
|
||
"job_present"
|
||
],
|
||
"title": "ScheduleTaskItem"
|
||
},
|
||
"ScheduleTasksResponse": {
|
||
"properties": {
|
||
"tasks": {
|
||
"items": {
|
||
"$ref": "#/components/schemas/ScheduleTaskItem"
|
||
},
|
||
"type": "array",
|
||
"title": "Tasks"
|
||
}
|
||
},
|
||
"type": "object",
|
||
"required": [
|
||
"tasks"
|
||
],
|
||
"title": "ScheduleTasksResponse"
|
||
},
|
||
"ServerBuildInfoResponse": {
|
||
"properties": {
|
||
"version": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Version"
|
||
},
|
||
"git_sha": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Git Sha"
|
||
},
|
||
"build_date": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Build Date"
|
||
}
|
||
},
|
||
"type": "object",
|
||
"title": "ServerBuildInfoResponse"
|
||
},
|
||
"ServerConfigurationStatusResponse": {
|
||
"properties": {
|
||
"configured": {
|
||
"type": "boolean",
|
||
"title": "Configured"
|
||
},
|
||
"master_key_configured": {
|
||
"type": "boolean",
|
||
"title": "Master Key Configured"
|
||
},
|
||
"scan_network_configured": {
|
||
"type": "boolean",
|
||
"title": "Scan Network Configured"
|
||
},
|
||
"public_base_url_configured": {
|
||
"type": "boolean",
|
||
"title": "Public Base Url Configured"
|
||
},
|
||
"build_metadata_complete": {
|
||
"type": "boolean",
|
||
"title": "Build Metadata Complete"
|
||
}
|
||
},
|
||
"type": "object",
|
||
"required": [
|
||
"configured",
|
||
"master_key_configured",
|
||
"scan_network_configured",
|
||
"public_base_url_configured",
|
||
"build_metadata_complete"
|
||
],
|
||
"title": "ServerConfigurationStatusResponse"
|
||
},
|
||
"ServerDiscoveryInfoResponse": {
|
||
"properties": {
|
||
"last_scan_at": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Last Scan At"
|
||
},
|
||
"last_scan_mode": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Last Scan Mode"
|
||
},
|
||
"online": {
|
||
"anyOf": [
|
||
{
|
||
"type": "integer"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Online"
|
||
},
|
||
"found": {
|
||
"anyOf": [
|
||
{
|
||
"type": "integer"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Found"
|
||
},
|
||
"added": {
|
||
"anyOf": [
|
||
{
|
||
"type": "integer"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Added"
|
||
},
|
||
"updated": {
|
||
"anyOf": [
|
||
{
|
||
"type": "integer"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Updated"
|
||
},
|
||
"removed_offline": {
|
||
"anyOf": [
|
||
{
|
||
"type": "integer"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Removed Offline"
|
||
},
|
||
"pending_removal": {
|
||
"anyOf": [
|
||
{
|
||
"type": "integer"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Pending Removal"
|
||
}
|
||
},
|
||
"type": "object",
|
||
"title": "ServerDiscoveryInfoResponse"
|
||
},
|
||
"ServerInfoResponse": {
|
||
"properties": {
|
||
"app_name": {
|
||
"type": "string",
|
||
"title": "App Name"
|
||
},
|
||
"instance_name": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Instance Name"
|
||
},
|
||
"timezone": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Timezone"
|
||
},
|
||
"uptime_seconds": {
|
||
"type": "integer",
|
||
"title": "Uptime Seconds"
|
||
},
|
||
"diagnostics_visible": {
|
||
"type": "boolean",
|
||
"title": "Diagnostics Visible"
|
||
},
|
||
"started_at": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Started At"
|
||
},
|
||
"build": {
|
||
"anyOf": [
|
||
{
|
||
"$ref": "#/components/schemas/ServerBuildInfoResponse"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
]
|
||
},
|
||
"urls": {
|
||
"anyOf": [
|
||
{
|
||
"$ref": "#/components/schemas/ServerUrlInfoResponse"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
]
|
||
},
|
||
"configuration": {
|
||
"anyOf": [
|
||
{
|
||
"$ref": "#/components/schemas/ServerConfigurationStatusResponse"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
]
|
||
},
|
||
"discovery": {
|
||
"anyOf": [
|
||
{
|
||
"$ref": "#/components/schemas/ServerDiscoveryInfoResponse"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"type": "object",
|
||
"required": [
|
||
"app_name",
|
||
"uptime_seconds",
|
||
"diagnostics_visible"
|
||
],
|
||
"title": "ServerInfoResponse"
|
||
},
|
||
"ServerUrlInfoResponse": {
|
||
"properties": {
|
||
"observed_base_url": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Observed Base Url"
|
||
},
|
||
"configured_public_base_url": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Configured Public Base Url"
|
||
},
|
||
"effective_public_base_url": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Effective Public Base Url"
|
||
}
|
||
},
|
||
"type": "object",
|
||
"title": "ServerUrlInfoResponse"
|
||
},
|
||
"ValidationError": {
|
||
"properties": {
|
||
"loc": {
|
||
"items": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string"
|
||
},
|
||
{
|
||
"type": "integer"
|
||
}
|
||
]
|
||
},
|
||
"type": "array",
|
||
"title": "Location"
|
||
},
|
||
"msg": {
|
||
"type": "string",
|
||
"title": "Message"
|
||
},
|
||
"type": {
|
||
"type": "string",
|
||
"title": "Error Type"
|
||
}
|
||
},
|
||
"type": "object",
|
||
"required": [
|
||
"loc",
|
||
"msg",
|
||
"type"
|
||
],
|
||
"title": "ValidationError"
|
||
}
|
||
},
|
||
"securitySchemes": {
|
||
"APIKeyHeader": {
|
||
"type": "apiKey",
|
||
"in": "header",
|
||
"name": "X-API-Key"
|
||
}
|
||
}
|
||
}
|
||
}
|