{ "openapi": "3.1.0", "info": { "title": "Pigway Frame Flow API", "version": "0.1.0" }, "paths": { "/api/v1/devices/{device_id}/widgets/selection": { "post": { "tags": [ "Official" ], "summary": "Select", "operationId": "select_api_v1_devices__device_id__widgets_selection_post", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "device_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Device Id" } }, { "name": "idempotency-key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Idempotency-Key" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WidgetSelection" } } } }, "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Accepted" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/webhooks": { "get": { "tags": [ "Webhooks" ], "summary": "List Hooks", "operationId": "list_hooks_api_v1_webhooks_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] }, "post": { "tags": [ "Webhooks" ], "summary": "Add Hook", "operationId": "add_hook_api_v1_webhooks_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WebhookInput" } } }, "required": true }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] } }, "/api/v1/webhooks/{id}": { "delete": { "tags": [ "Webhooks" ], "summary": "Delete Hook", "operationId": "delete_hook_api_v1_webhooks__id__delete", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "title": "Id" } } ], "responses": { "204": { "description": "Successful Response" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/webhooks/{id}/deliveries": { "get": { "tags": [ "Webhooks" ], "summary": "Deliveries", "operationId": "deliveries_api_v1_webhooks__id__deliveries_get", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "title": "Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/providers/external": { "get": { "tags": [ "Providers" ], "summary": "List Providers", "operationId": "list_providers_api_v1_providers_external_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] } }, "/api/v1/providers/external/{id}": { "put": { "tags": [ "Providers" ], "summary": "Configure", "operationId": "configure_api_v1_providers_external__id__put", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "title": "Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExternalProviderConfig" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/providers/external/{id}/data": { "get": { "tags": [ "Providers" ], "summary": "Provider Data", "operationId": "provider_data_api_v1_providers_external__id__data_get", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "title": "Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/providers/external/{id}/key": { "put": { "tags": [ "Providers" ], "summary": "Provider Key", "operationId": "provider_key_api_v1_providers_external__id__key_put", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "title": "Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AISecret" } } } }, "responses": { "204": { "description": "Successful Response" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/settings/ai-images": { "get": { "tags": [ "AI" ], "summary": "Get Config", "operationId": "get_config_api_v1_settings_ai_images_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] }, "put": { "tags": [ "AI" ], "summary": "Set Config", "operationId": "set_config_api_v1_settings_ai_images_put", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ImageGenerationConfig" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] } }, "/api/v1/settings/ai-images/key": { "put": { "tags": [ "AI" ], "summary": "Set Key", "operationId": "set_key_api_v1_settings_ai_images_key_put", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AISecret" } } }, "required": true }, "responses": { "204": { "description": "Successful Response" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] } }, "/api/v1/ai/images": { "post": { "tags": [ "AI" ], "summary": "Generate", "operationId": "generate_api_v1_ai_images_post", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "idempotency-key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Idempotency-Key" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ImageGenerationInput" } } } }, "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Accepted" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/integrations/mqtt": { "get": { "tags": [ "MQTT" ], "summary": "State", "operationId": "state_api_v1_integrations_mqtt_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] }, "put": { "tags": [ "MQTT" ], "summary": "Configure", "operationId": "configure_api_v1_integrations_mqtt_put", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MQTTConfig" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] } }, "/api/v1/layout/images": { "post": { "tags": [ "Layout" ], "summary": "Import Images", "operationId": "import_images_api_v1_layout_images_post", "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_import_images_api_v1_layout_images_post" } } }, "required": true }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] } }, "/api/v1/layout/plan": { "post": { "tags": [ "Layout" ], "summary": "Layout Plan", "operationId": "layout_plan_api_v1_layout_plan_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LayoutInput" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LayoutPlan" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] } }, "/api/v1/settings/ai-layout": { "get": { "tags": [ "Layout" ], "summary": "Ai Config", "operationId": "ai_config_api_v1_settings_ai_layout_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] }, "put": { "tags": [ "Layout" ], "summary": "Save Ai", "operationId": "save_ai_api_v1_settings_ai_layout_put", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AIConfig" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AIConfig" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] } }, "/api/v1/settings/ai-layout/key": { "put": { "tags": [ "Layout" ], "summary": "Save Ai Key", "operationId": "save_ai_key_api_v1_settings_ai_layout_key_put", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AISecret" } } }, "required": true }, "responses": { "204": { "description": "Successful Response" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] } }, "/api/v1/storage": { "get": { "tags": [ "Storage" ], "summary": "Storage", "operationId": "storage_api_v1_storage_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] } }, "/api/v1/storage/policy": { "put": { "tags": [ "Storage" ], "summary": "Storage Policy", "operationId": "storage_policy_api_v1_storage_policy_put", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StoragePolicy" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StoragePolicy" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] } }, "/api/v1/storage/cleanup": { "post": { "tags": [ "Storage" ], "summary": "Cleanup", "operationId": "cleanup_api_v1_storage_cleanup_post", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "dry_run", "in": "query", "required": false, "schema": { "type": "boolean", "default": true, "title": "Dry Run" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/clients": { "get": { "tags": [ "Clients" ], "summary": "Clients", "operationId": "clients_api_v1_clients_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] }, "post": { "tags": [ "Clients" ], "summary": "Create Client", "operationId": "create_client_api_v1_clients_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientInput" } } }, "required": true }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] } }, "/api/v1/clients/{client_id}": { "delete": { "tags": [ "Clients" ], "summary": "Revoke Client", "operationId": "revoke_client_api_v1_clients__client_id__delete", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "client_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Client Id" } } ], "responses": { "204": { "description": "Successful Response" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/photo-sources/{source_id}/credentials": { "put": { "tags": [ "Photo sources" ], "summary": "Drive Credentials", "operationId": "drive_credentials_api_v1_photo_sources__source_id__credentials_put", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "source_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Source Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AISecret" } } } }, "responses": { "204": { "description": "Successful Response" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/auth/login": { "post": { "tags": [ "Accounts" ], "summary": "Login", "operationId": "login_api_v1_auth_login_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Login" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccountView" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } } } }, "/api/v1/auth/me": { "get": { "tags": [ "Accounts" ], "summary": "Me", "operationId": "me_api_v1_auth_me_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccountView" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "AccountSession": [] } ] } }, "/api/v1/auth/logout": { "post": { "tags": [ "Accounts" ], "summary": "Logout", "operationId": "logout_api_v1_auth_logout_post", "responses": { "204": { "description": "Successful Response" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "AccountSession": [] } ] } }, "/api/v1/auth/password": { "put": { "tags": [ "Accounts" ], "summary": "Change Password", "operationId": "change_password_api_v1_auth_password_put", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PasswordChange" } } }, "required": true }, "responses": { "204": { "description": "Successful Response" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "AccountSession": [] } ] } }, "/health": { "get": { "tags": [ "Health" ], "summary": "Health", "operationId": "health_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Health" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } } } }, "/ready": { "get": { "tags": [ "Health" ], "summary": "Ready", "operationId": "ready_ready_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Readiness" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Readiness" } } } } } } }, "/api/v1/version": { "get": { "tags": [ "System" ], "summary": "Version", "operationId": "version_api_v1_version_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Version" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } } } }, "/api/v1/devices": { "get": { "tags": [ "Devices" ], "summary": "Devices", "operationId": "devices_api_v1_devices_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/Device" }, "type": "array", "title": "Response Devices Api V1 Devices Get" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] } }, "/api/v1/devices/{device_id}": { "get": { "tags": [ "Devices" ], "summary": "Device", "operationId": "device_api_v1_devices__device_id__get", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "device_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Device Id" } }, { "name": "refresh", "in": "query", "required": false, "schema": { "type": "boolean", "default": false, "title": "Refresh" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Device" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/devices/{device_id}/images": { "get": { "tags": [ "Images" ], "summary": "Images", "operationId": "images_api_v1_devices__device_id__images_get", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "device_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Device Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/GalleryImage" }, "title": "Response Images Api V1 Devices Device Id Images Get" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/devices/{device_id}/images/{image_id}/star": { "put": { "tags": [ "Images" ], "summary": "Star Image", "operationId": "star_image_api_v1_devices__device_id__images__image_id__star_put", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "device_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Device Id" } }, { "name": "image_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Image Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ImageStar" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/devices/{device_id}/images/clear": { "post": { "tags": [ "Images" ], "summary": "Clear Cloud", "operationId": "clear_cloud_api_v1_devices__device_id__images_clear_post", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "device_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Device Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/devices/{device_id}/images/{image_id}/file": { "get": { "tags": [ "Images" ], "summary": "Image File", "operationId": "image_file_api_v1_devices__device_id__images__image_id__file_get", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "device_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Device Id" } }, { "name": "image_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Image Id" } }, { "name": "thumbnail", "in": "query", "required": false, "schema": { "type": "boolean", "default": false, "title": "Thumbnail" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} }, "image/jpeg": { "schema": { "type": "string", "format": "binary" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/display": { "post": { "summary": "Display", "operationId": "display_api_display_post", "deprecated": true, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "idempotency-key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Idempotency-Key" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DisplayRequest" } } } }, "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Accepted" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/display": { "post": { "tags": [ "Display" ], "summary": "Display", "operationId": "display_api_v1_display_post", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "idempotency-key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Idempotency-Key" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DisplayRequest" } } } }, "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Accepted" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/devices/{device_id}/display": { "post": { "tags": [ "Display" ], "summary": "Device Display", "operationId": "device_display_api_v1_devices__device_id__display_post", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "device_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Device Id" } }, { "name": "idempotency-key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Idempotency-Key" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DisplayRequest" } } } }, "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Accepted" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/render": { "post": { "tags": [ "Render" ], "summary": "Render", "operationId": "render_api_v1_render_post", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "idempotency-key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Idempotency-Key" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateContent" } } } }, "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Accepted" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/devices/{device_id}/upload": { "post": { "tags": [ "Images" ], "summary": "Upload", "operationId": "upload_api_v1_devices__device_id__upload_post", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "device_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Device Id" } }, { "name": "display_now", "in": "query", "required": false, "schema": { "type": "boolean", "default": false, "title": "Display Now" } }, { "name": "idempotency-key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Idempotency-Key" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/ImageContent" }, { "$ref": "#/components/schemas/URLContent" }, { "$ref": "#/components/schemas/PhotoSourceContent" } ], "title": "Payload" } } } }, "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Accepted" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/preview": { "post": { "tags": [ "Render" ], "summary": "Preview", "operationId": "preview_api_v1_preview_post", "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_preview_api_v1_preview_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Asset" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] } }, "/api/v1/assets": { "get": { "tags": [ "Images" ], "summary": "List Assets", "operationId": "list_assets_api_v1_assets_get", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 200, "minimum": 1, "default": 100, "title": "Limit" } }, { "name": "source", "in": "query", "required": false, "schema": { "enum": [ "all", "uploaded", "generated" ], "type": "string", "default": "all", "title": "Source" } }, { "name": "origin", "in": "query", "required": false, "schema": { "enum": [ "all", "manual", "task", "external", "template", "unknown" ], "type": "string", "default": "all", "title": "Origin" } }, { "name": "job_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Job Id" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0, "default": 0, "title": "Offset" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Asset" }, "title": "Response List Assets Api V1 Assets Get" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/assets/{asset_id}": { "delete": { "tags": [ "Images" ], "summary": "Delete Asset", "operationId": "delete_asset_api_v1_assets__asset_id__delete", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "asset_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Asset Id" } } ], "responses": { "204": { "description": "Successful Response" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } }, "get": { "tags": [ "Images" ], "summary": "Asset File", "operationId": "asset_file_api_v1_assets__asset_id__get", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "asset_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Asset Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} }, "image/jpeg": { "schema": { "type": "string", "format": "binary" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/assets/{asset_id}/star": { "put": { "tags": [ "Images" ], "summary": "Star Asset", "operationId": "star_asset_api_v1_assets__asset_id__star_put", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "asset_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Asset Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ImageStar" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Asset" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/assets/batch": { "post": { "tags": [ "Images" ], "summary": "Batch Assets", "operationId": "batch_assets_api_v1_assets_batch_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetBatch" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] } }, "/api/v1/integrations/synology-photos": { "get": { "tags": [ "Photo sources" ], "summary": "Photos Connection", "operationId": "photos_connection_api_v1_integrations_synology_photos_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PhotosConnection" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] }, "post": { "tags": [ "Photo sources" ], "summary": "Connect Photos", "operationId": "connect_photos_api_v1_integrations_synology_photos_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PhotosLogin" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PhotosConnection" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] }, "delete": { "tags": [ "Photo sources" ], "summary": "Disconnect Photos", "operationId": "disconnect_photos_api_v1_integrations_synology_photos_delete", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PhotosConnection" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] } }, "/api/v1/integrations/synology-photos/people": { "get": { "tags": [ "Photo sources" ], "summary": "Photos People", "operationId": "photos_people_api_v1_integrations_synology_photos_people_get", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "space", "in": "query", "required": false, "schema": { "enum": [ "shared", "personal" ], "type": "string", "default": "shared", "title": "Space" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PhotosPerson" }, "title": "Response Photos People Api V1 Integrations Synology Photos People Get" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/photo-sources": { "get": { "tags": [ "Photo sources" ], "summary": "Photo Sources", "operationId": "photo_sources_api_v1_photo_sources_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/PhotoSourceView" }, "type": "array", "title": "Response Photo Sources Api V1 Photo Sources Get" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] } }, "/api/v1/photo-sources/{source_id}": { "put": { "tags": [ "Photo sources" ], "summary": "Save Photo Source", "operationId": "save_photo_source_api_v1_photo_sources__source_id__put", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "source_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Source Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PhotoSourceInput" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PhotoSourceView" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } }, "delete": { "tags": [ "Photo sources" ], "summary": "Delete Photo Source", "operationId": "delete_photo_source_api_v1_photo_sources__source_id__delete", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "source_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Source Id" } } ], "responses": { "204": { "description": "Successful Response" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/photo-sources/{source_id}/images": { "get": { "tags": [ "Photo sources" ], "summary": "Source Images", "operationId": "source_images_api_v1_photo_sources__source_id__images_get", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "source_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Source Id" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0, "default": 0, "title": "Offset" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 200, "minimum": 1, "default": 50, "title": "Limit" } }, { "name": "refresh", "in": "query", "required": false, "schema": { "type": "boolean", "default": false, "title": "Refresh" } }, { "name": "device_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Device Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PhotoCatalog" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/devices/{device_id}/images/{image_id}": { "delete": { "tags": [ "Images" ], "summary": "Delete Image", "operationId": "delete_image_api_v1_devices__device_id__images__image_id__delete", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "device_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Device Id" } }, { "name": "image_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Image Id" } }, { "name": "confirm_current", "in": "query", "required": false, "schema": { "type": "boolean", "default": false, "title": "Confirm Current" } }, { "name": "idempotency-key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Idempotency-Key" } } ], "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Accepted" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/devices/{device_id}/restore": { "post": { "tags": [ "Display" ], "summary": "Restore", "operationId": "restore_api_v1_devices__device_id__restore_post", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "device_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Device Id" } }, { "name": "idempotency-key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Idempotency-Key" } } ], "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Accepted" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/operations": { "get": { "tags": [ "Operations" ], "summary": "Operations", "operationId": "operations_api_v1_operations_get", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 200, "minimum": 1, "default": 50, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Operation" }, "title": "Response Operations Api V1 Operations Get" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/operations/{operation_id}": { "get": { "tags": [ "Operations" ], "summary": "Operation", "operationId": "operation_api_v1_operations__operation_id__get", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "operation_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Operation Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Operation" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/operations/{operation_id}/reconcile": { "post": { "tags": [ "Operations" ], "summary": "Reconcile", "operationId": "reconcile_api_v1_operations__operation_id__reconcile_post", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "operation_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Operation Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReconcileRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Reconciliation" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/templates": { "get": { "tags": [ "Templates" ], "summary": "Templates", "operationId": "templates_api_v1_templates_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/TemplateInfo" }, "type": "array", "title": "Response Templates Api V1 Templates Get" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] } }, "/api/v1/templates/{template_id}": { "get": { "tags": [ "Templates" ], "summary": "Template", "operationId": "template_api_v1_templates__template_id__get", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "template_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Template Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateInfo" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/templates/{template_id}/config": { "put": { "tags": [ "Templates" ], "summary": "Template Config", "operationId": "template_config_api_v1_templates__template_id__config_put", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "template_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Template Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateConfig" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateConfig" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } }, "delete": { "tags": [ "Templates" ], "summary": "Reset Template Config", "operationId": "reset_template_config_api_v1_templates__template_id__config_delete", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "template_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Template Id" } } ], "responses": { "204": { "description": "Successful Response" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/jobs": { "get": { "tags": [ "Automation" ], "summary": "Jobs", "operationId": "jobs_api_v1_jobs_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/Job" }, "type": "array", "title": "Response Jobs Api V1 Jobs Get" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] }, "post": { "tags": [ "Automation" ], "summary": "Create Job", "operationId": "create_job_api_v1_jobs_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobInput" } } }, "required": true }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Job" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] } }, "/api/v1/jobs/{job_id}": { "put": { "tags": [ "Automation" ], "summary": "Update Job", "operationId": "update_job_api_v1_jobs__job_id__put", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "job_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Job Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobInput" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Job" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } }, "delete": { "tags": [ "Automation" ], "summary": "Delete Job", "operationId": "delete_job_api_v1_jobs__job_id__delete", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "job_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Job Id" } } ], "responses": { "204": { "description": "Successful Response" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } }, "get": { "tags": [ "Automation" ], "summary": "Get Job", "operationId": "get_job_api_v1_jobs__job_id__get", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "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/Job" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/playlists": { "get": { "tags": [ "Playlists" ], "summary": "Playlists", "operationId": "playlists_api_v1_playlists_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/Playlist" }, "type": "array", "title": "Response Playlists Api V1 Playlists Get" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] }, "post": { "tags": [ "Playlists" ], "summary": "Create Playlist", "operationId": "create_playlist_api_v1_playlists_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlaylistInput" } } }, "required": true }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Playlist" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] } }, "/api/v1/playlists/{playlist_id}": { "put": { "tags": [ "Playlists" ], "summary": "Update Playlist", "operationId": "update_playlist_api_v1_playlists__playlist_id__put", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "playlist_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Playlist Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlaylistInput" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Playlist" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } }, "delete": { "tags": [ "Playlists" ], "summary": "Delete Playlist", "operationId": "delete_playlist_api_v1_playlists__playlist_id__delete", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "playlist_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Playlist Id" } } ], "responses": { "204": { "description": "Successful Response" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/history": { "get": { "tags": [ "History" ], "summary": "History", "operationId": "history_api_v1_history_get", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 200, "minimum": 1, "default": 100, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/History" }, "title": "Response History Api V1 History Get" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/settings": { "get": { "tags": [ "Settings" ], "summary": "Settings View", "operationId": "settings_view_api_v1_settings_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SettingsView" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] } }, "/api/v1/devices/{device_id}/official/connection": { "get": { "tags": [ "Official" ], "summary": "Connection State", "operationId": "connection_state_api_v1_devices__device_id__official_connection_get", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "device_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Device Id" } }, { "name": "discover", "in": "query", "required": false, "schema": { "type": "boolean", "default": false, "title": "Discover" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConnectionState" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } }, "post": { "tags": [ "Official" ], "summary": "Connection Login", "operationId": "connection_login_api_v1_devices__device_id__official_connection_post", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "device_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Device Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LoginRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConnectionState" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } }, "put": { "tags": [ "Official" ], "summary": "Connection Select", "operationId": "connection_select_api_v1_devices__device_id__official_connection_put", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "device_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Device Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SelectRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConnectionState" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } }, "delete": { "tags": [ "Official" ], "summary": "Connection Disconnect", "operationId": "connection_disconnect_api_v1_devices__device_id__official_connection_delete", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "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/ConnectionState" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/devices/{device_id}/widgets": { "get": { "tags": [ "Devices" ], "summary": "Official Widgets", "operationId": "official_widgets_api_v1_devices__device_id__widgets_get", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "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/WidgetState" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/devices/{device_id}/current-content": { "get": { "tags": [ "Devices" ], "summary": "Current Content", "operationId": "current_content_api_v1_devices__device_id__current_content_get", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "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/CurrentDisplay" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/providers/weather": { "get": { "tags": [ "Providers" ], "summary": "Weather View", "operationId": "weather_view_api_v1_providers_weather_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WeatherView" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] } }, "/api/v1/settings/weather": { "put": { "tags": [ "Settings" ], "summary": "Weather Config", "operationId": "weather_config_api_v1_settings_weather_put", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WeatherConfig" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WeatherConfig" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] } }, "/api/v1/assets/{asset_id}/source": { "get": { "tags": [ "Templates" ], "summary": "Asset Source", "operationId": "asset_source_api_v1_assets__asset_id__source_get", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "asset_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Asset Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Asset Source Api V1 Assets Asset Id Source Get" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/jobs/{job_id}/run": { "post": { "tags": [ "Automation" ], "summary": "Run Job", "operationId": "run_job_api_v1_jobs__job_id__run_post", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "job_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Job Id" } }, { "name": "idempotency-key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Idempotency-Key" } } ], "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Accepted" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/jobs/{job_id}/preview": { "post": { "tags": [ "Automation" ], "summary": "Preview Job", "operationId": "preview_job_api_v1_jobs__job_id__preview_post", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "job_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Job Id" } }, { "name": "idempotency-key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Idempotency-Key" } } ], "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Accepted" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v1/settings/image-url": { "get": { "tags": [ "Settings" ], "summary": "Image Url Config", "operationId": "image_url_config_api_v1_settings_image_url_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ImageURLConfig" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] }, "put": { "tags": [ "Settings" ], "summary": "Set Image Url Config", "operationId": "set_image_url_config_api_v1_settings_image_url_put", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ImageURLConfig" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ImageURLConfig" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "413": { "description": "Content Too Large", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ] } }, "/api/v1/providers/poetry": { "get": { "tags": [ "Providers" ], "summary": "Daily Poetry", "operationId": "daily_poetry_api_v1_providers_poetry_get", "security": [ { "HTTPBearer": [] }, { "AccountSession": [] } ], "parameters": [ { "name": "date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Date" } }, { "name": "poem_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Poem Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Daily Poetry Api V1 Providers Poetry Get" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Request" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Conflict" }, "413": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Content Too Large" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Unprocessable Content" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Too Many Requests" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Internal Server Error" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Service Unavailable" } } } } }, "components": { "schemas": { "AIConfig": { "properties": { "endpoint": { "type": "string", "maxLength": 2048, "title": "Endpoint", "default": "" }, "model": { "type": "string", "maxLength": 120, "title": "Model", "default": "" } }, "additionalProperties": false, "type": "object", "title": "AIConfig" }, "AISecret": { "properties": { "key": { "type": "string", "maxLength": 8192, "minLength": 1, "format": "password", "title": "Key", "writeOnly": true } }, "additionalProperties": false, "type": "object", "required": [ "key" ], "title": "AISecret" }, "Accepted": { "properties": { "operation_id": { "type": "string", "title": "Operation Id" }, "job_id": { "type": "string", "title": "Job Id" }, "status": { "type": "string", "const": "accepted", "title": "Status", "default": "accepted" } }, "type": "object", "required": [ "operation_id", "job_id" ], "title": "Accepted" }, "AccountView": { "properties": { "username": { "type": "string", "title": "Username" }, "csrf_token": { "type": "string", "title": "Csrf Token" } }, "type": "object", "required": [ "username", "csrf_token" ], "title": "AccountView" }, "Asset": { "properties": { "starred": { "type": "boolean", "title": "Starred", "default": false }, "origin": { "type": "string", "enum": [ "manual", "task", "external", "template", "unknown" ], "title": "Origin", "default": "unknown" }, "job_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Job Id" }, "job_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Job Name" }, "source": { "type": "string", "enum": [ "uploaded", "generated" ], "title": "Source", "default": "uploaded" }, "asset_id": { "type": "string", "title": "Asset Id" }, "name": { "type": "string", "title": "Name" }, "url": { "type": "string", "title": "Url" }, "created_at": { "type": "string", "title": "Created At" } }, "type": "object", "required": [ "asset_id", "name", "url", "created_at" ], "title": "Asset" }, "AssetBatch": { "properties": { "asset_ids": { "items": { "type": "string" }, "type": "array", "maxItems": 100, "minItems": 1, "title": "Asset Ids" }, "action": { "type": "string", "enum": [ "delete", "star", "unstar" ], "title": "Action" } }, "additionalProperties": false, "type": "object", "required": [ "asset_ids", "action" ], "title": "AssetBatch" }, "Body_import_images_api_v1_layout_images_post": { "properties": { "files": { "items": { "type": "string", "contentMediaType": "application/octet-stream" }, "type": "array", "title": "Files" } }, "type": "object", "required": [ "files" ], "title": "Body_import_images_api_v1_layout_images_post" }, "Body_preview_api_v1_preview_post": { "properties": { "file": { "type": "string", "contentMediaType": "application/octet-stream", "title": "File" }, "fit": { "$ref": "#/components/schemas/Fit", "default": "contain" }, "profile": { "$ref": "#/components/schemas/Profile", "default": "color" } }, "type": "object", "required": [ "file" ], "title": "Body_preview_api_v1_preview_post" }, "Capabilities": { "properties": { "upload": { "type": "boolean", "title": "Upload", "default": true }, "gallery": { "type": "boolean", "title": "Gallery", "default": true }, "delete": { "type": "boolean", "title": "Delete", "default": true }, "switch": { "type": "boolean", "title": "Switch", "default": true }, "remote_refresh": { "type": "boolean", "title": "Remote Refresh", "default": true }, "battery": { "type": "boolean", "title": "Battery", "default": true }, "color": { "type": "boolean", "title": "Color", "default": true }, "cloud_upload_without_display": { "type": "boolean", "title": "Cloud Upload Without Display", "default": false } }, "type": "object", "title": "Capabilities" }, "ClientInput": { "properties": { "client_id": { "type": "string", "pattern": "^[a-z0-9-]{1,60}$", "title": "Client Id" }, "name": { "type": "string", "maxLength": 120, "minLength": 1, "title": "Name" }, "permissions": { "items": { "type": "string" }, "type": "array", "maxItems": 20, "minItems": 1, "title": "Permissions" } }, "additionalProperties": false, "type": "object", "required": [ "client_id", "name", "permissions" ], "title": "ClientInput" }, "ConnectionState": { "properties": { "authorized": { "type": "boolean", "title": "Authorized" }, "username": { "type": "string", "title": "Username" }, "robot_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Robot Id" }, "mock": { "type": "boolean", "title": "Mock" }, "devices": { "items": { "$ref": "#/components/schemas/OfficialDevice" }, "type": "array", "title": "Devices" } }, "additionalProperties": false, "type": "object", "required": [ "authorized", "username", "robot_id", "mock" ], "title": "ConnectionState" }, "CurrentContent": { "properties": { "type": { "type": "string", "const": "image", "title": "Type", "default": "image" }, "id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Id" }, "cover_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Cover Id" }, "synced": { "type": "boolean", "title": "Synced" } }, "type": "object", "required": [ "id", "cover_id", "synced" ], "title": "CurrentContent" }, "CurrentDisplay": { "properties": { "device_id": { "type": "string", "title": "Device Id" }, "image_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Image Id" }, "synced": { "type": "boolean", "title": "Synced" }, "source_known": { "type": "boolean", "title": "Source Known" }, "source": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Source" }, "asset_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Asset Id" }, "operation_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Operation Id" }, "preview_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Preview Url" }, "previous_image_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Previous Image Id" }, "overrides": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Overrides" } }, "type": "object", "required": [ "device_id", "image_id", "synced", "source_known", "source", "asset_id", "operation_id", "preview_url", "previous_image_id", "overrides" ], "title": "CurrentDisplay" }, "DeleteRequest": { "properties": { "confirm_current": { "type": "boolean", "title": "Confirm Current", "default": false } }, "additionalProperties": false, "type": "object", "title": "DeleteRequest" }, "Device": { "properties": { "id": { "type": "string", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "driver": { "type": "string", "title": "Driver", "default": "kokonna" }, "status": { "type": "string", "enum": [ "online", "offline" ], "title": "Status" }, "model": { "type": "string", "title": "Model" }, "model_code": { "type": "string", "title": "Model Code" }, "firmware": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Firmware" }, "display": { "$ref": "#/components/schemas/DisplayGeometry" }, "power": { "$ref": "#/components/schemas/Power" }, "current_content": { "$ref": "#/components/schemas/CurrentContent" }, "last_seen_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Seen At" }, "timezone": { "type": "string", "title": "Timezone" }, "capabilities": { "$ref": "#/components/schemas/Capabilities" }, "slideshow": { "additionalProperties": true, "type": "object", "title": "Slideshow" }, "storage_used_bytes": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Storage Used Bytes" }, "model_verified": { "type": "boolean", "title": "Model Verified", "default": false }, "can_restore": { "type": "boolean", "title": "Can Restore", "default": false } }, "type": "object", "required": [ "id", "name", "status", "model", "model_code", "firmware", "display", "power", "current_content", "last_seen_at", "timezone" ], "title": "Device" }, "DisplayGeometry": { "properties": { "width": { "type": "integer", "title": "Width" }, "height": { "type": "integer", "title": "Height" }, "rotation": { "type": "integer", "title": "Rotation" }, "color_mode": { "$ref": "#/components/schemas/Profile", "default": "color" } }, "type": "object", "required": [ "width", "height", "rotation" ], "title": "DisplayGeometry" }, "DisplayRequest": { "properties": { "device_id": { "type": "string", "title": "Device Id", "default": "living-room" }, "content": { "oneOf": [ { "$ref": "#/components/schemas/ImageContent" }, { "$ref": "#/components/schemas/URLContent" }, { "$ref": "#/components/schemas/TemplateContent" }, { "$ref": "#/components/schemas/PhotoSourceContent" }, { "$ref": "#/components/schemas/ProviderContent" }, { "$ref": "#/components/schemas/FutureContent" } ], "title": "Content", "discriminator": { "propertyName": "type", "mapping": { "html": "#/components/schemas/FutureContent", "image": "#/components/schemas/ImageContent", "image_url": "#/components/schemas/URLContent", "markdown": "#/components/schemas/FutureContent", "photo_source": "#/components/schemas/PhotoSourceContent", "provider": "#/components/schemas/ProviderContent", "template": "#/components/schemas/TemplateContent" } } }, "options": { "$ref": "#/components/schemas/Options" }, "source": { "$ref": "#/components/schemas/Source" } }, "additionalProperties": false, "type": "object", "required": [ "content" ], "title": "DisplayRequest" }, "ErrorBody": { "properties": { "code": { "$ref": "#/components/schemas/ErrorCode" }, "message": { "type": "string", "title": "Message" }, "request_id": { "type": "string", "title": "Request Id" }, "details": { "additionalProperties": true, "type": "object", "title": "Details" } }, "type": "object", "required": [ "code", "message", "request_id" ], "title": "ErrorBody" }, "ErrorCode": { "type": "string", "enum": [ "INVALID_REQUEST", "OFFICIAL_AUTH_REQUIRED", "UNAUTHORIZED", "FORBIDDEN", "DEVICE_NOT_FOUND", "DEVICE_OFFLINE", "UNSUPPORTED_CAPABILITY", "RENDER_FAILED", "UPLOAD_FAILED", "WRITE_RESULT_UNKNOWN", "RATE_LIMITED", "INTERNAL_ERROR", "CLOUD_UNAVAILABLE", "NOT_FOUND", "CONFLICT", "CONFIG_REQUIRED", "WRITE_DISABLED" ], "title": "ErrorCode" }, "ErrorResponse": { "properties": { "error": { "$ref": "#/components/schemas/ErrorBody" } }, "type": "object", "required": [ "error" ], "title": "ErrorResponse" }, "ExternalProviderConfig": { "properties": { "kind": { "type": "string", "pattern": "^(google-calendar|ics|home-assistant|http-json)$", "title": "Kind" }, "name": { "type": "string", "maxLength": 120, "minLength": 1, "title": "Name" }, "endpoint": { "type": "string", "maxLength": 2048, "title": "Endpoint" }, "enabled": { "type": "boolean", "title": "Enabled", "default": true }, "allow_insecure_lan": { "type": "boolean", "title": "Allow Insecure Lan", "default": false }, "entities": { "items": { "type": "string" }, "type": "array", "maxItems": 100, "title": "Entities" } }, "additionalProperties": false, "type": "object", "required": [ "kind", "name", "endpoint" ], "title": "ExternalProviderConfig" }, "Fit": { "type": "string", "enum": [ "contain", "cover", "smart" ], "title": "Fit" }, "FutureContent": { "properties": { "type": { "type": "string", "enum": [ "html", "markdown" ], "title": "Type" }, "data": { "type": "string", "title": "Data", "default": "" } }, "additionalProperties": false, "type": "object", "required": [ "type" ], "title": "FutureContent" }, "GalleryImage": { "properties": { "starred": { "type": "boolean", "title": "Starred", "default": false }, "expires_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Expires At" }, "width": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Width" }, "height": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Height" }, "size_bytes": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Size Bytes" }, "media_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Media Type" }, "image_id": { "type": "integer", "title": "Image Id" }, "name": { "type": "string", "title": "Name" }, "created_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created At" }, "current": { "type": "boolean", "title": "Current" }, "url": { "type": "string", "title": "Url" } }, "type": "object", "required": [ "image_id", "name", "created_at", "current", "url" ], "title": "GalleryImage" }, "Health": { "properties": { "status": { "type": "string", "title": "Status" }, "version": { "type": "string", "title": "Version", "default": "0.1.0" } }, "type": "object", "required": [ "status" ], "title": "Health" }, "History": { "properties": { "id": { "type": "integer", "title": "Id" }, "client_id": { "type": "string", "title": "Client Id" }, "request_id": { "type": "string", "title": "Request Id" }, "operation_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Operation Id" }, "device_id": { "type": "string", "title": "Device Id" }, "action": { "type": "string", "title": "Action" }, "result": { "type": "string", "title": "Result" }, "timestamp": { "type": "string", "title": "Timestamp" } }, "type": "object", "required": [ "id", "client_id", "request_id", "operation_id", "device_id", "action", "result", "timestamp" ], "title": "History" }, "ImageContent": { "properties": { "type": { "type": "string", "const": "image", "title": "Type" }, "image_id": { "anyOf": [ { "type": "integer", "exclusiveMinimum": 0.0 }, { "type": "null" } ], "title": "Image Id" }, "image_name": { "anyOf": [ { "type": "string", "maxLength": 120, "minLength": 1 }, { "type": "null" } ], "title": "Image Name" }, "asset_id": { "anyOf": [ { "type": "string", "pattern": "^[a-f0-9]{32}$" }, { "type": "null" } ], "title": "Asset Id" }, "base64": { "anyOf": [ { "type": "string", "maxLength": 28000000 }, { "type": "null" } ], "title": "Base64" }, "name": { "type": "string", "maxLength": 120, "minLength": 1, "title": "Name", "default": "image.jpg" }, "fit": { "$ref": "#/components/schemas/Fit", "default": "contain" }, "profile": { "$ref": "#/components/schemas/Profile", "default": "color" } }, "additionalProperties": false, "type": "object", "required": [ "type" ], "title": "ImageContent" }, "ImageGenerationConfig": { "properties": { "endpoint": { "type": "string", "maxLength": 2048, "title": "Endpoint" }, "model": { "type": "string", "maxLength": 120, "minLength": 1, "title": "Model" }, "size": { "type": "string", "enum": [ "1024x1024", "1024x1536", "1536x1024" ], "title": "Size", "default": "1024x1536" } }, "additionalProperties": false, "type": "object", "required": [ "endpoint", "model" ], "title": "ImageGenerationConfig" }, "ImageGenerationInput": { "properties": { "prompt": { "type": "string", "maxLength": 4000, "minLength": 1, "title": "Prompt" } }, "additionalProperties": false, "type": "object", "required": [ "prompt" ], "title": "ImageGenerationInput" }, "ImageStar": { "properties": { "starred": { "type": "boolean", "title": "Starred" } }, "additionalProperties": false, "type": "object", "required": [ "starred" ], "title": "ImageStar" }, "ImageURLConfig": { "properties": { "allowed_hosts": { "items": { "type": "string" }, "type": "array", "maxItems": 30, "title": "Allowed Hosts" } }, "additionalProperties": false, "type": "object", "title": "ImageURLConfig" }, "Job": { "properties": { "cleanup_unstarred": { "type": "boolean", "title": "Cleanup Unstarred", "default": false }, "enabled": { "type": "boolean", "title": "Enabled", "default": true }, "device_id": { "type": "string", "title": "Device Id", "default": "living-room" }, "name": { "type": "string", "maxLength": 120, "minLength": 1, "title": "Name" }, "schedule": { "$ref": "#/components/schemas/Schedule" }, "source": { "anyOf": [ { "oneOf": [ { "$ref": "#/components/schemas/ImageContent" }, { "$ref": "#/components/schemas/URLContent" }, { "$ref": "#/components/schemas/TemplateContent" }, { "$ref": "#/components/schemas/PhotoSourceContent" }, { "$ref": "#/components/schemas/ProviderContent" }, { "$ref": "#/components/schemas/FutureContent" } ], "discriminator": { "propertyName": "type", "mapping": { "html": "#/components/schemas/FutureContent", "image": "#/components/schemas/ImageContent", "image_url": "#/components/schemas/URLContent", "markdown": "#/components/schemas/FutureContent", "photo_source": "#/components/schemas/PhotoSourceContent", "provider": "#/components/schemas/ProviderContent", "template": "#/components/schemas/TemplateContent" } } }, { "$ref": "#/components/schemas/RestoreContent" } ], "title": "Source" }, "display_duration": { "type": "integer", "maximum": 604800.0, "minimum": 0.0, "title": "Display Duration", "default": 0 }, "restore_previous": { "type": "boolean", "title": "Restore Previous", "default": false }, "priority": { "type": "integer", "maximum": 100.0, "minimum": 0.0, "title": "Priority", "default": 50 }, "id": { "type": "string", "title": "Id" }, "created_at": { "type": "string", "title": "Created At" }, "updated_at": { "type": "string", "title": "Updated At" }, "last_run": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Run" }, "last_result": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Result" }, "next_run": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Next Run" } }, "additionalProperties": false, "type": "object", "required": [ "name", "schedule", "source", "id", "created_at", "updated_at" ], "title": "Job" }, "JobInput": { "properties": { "cleanup_unstarred": { "type": "boolean", "title": "Cleanup Unstarred", "default": false }, "enabled": { "type": "boolean", "title": "Enabled", "default": true }, "device_id": { "type": "string", "title": "Device Id", "default": "living-room" }, "name": { "type": "string", "maxLength": 120, "minLength": 1, "title": "Name" }, "schedule": { "$ref": "#/components/schemas/Schedule" }, "source": { "anyOf": [ { "oneOf": [ { "$ref": "#/components/schemas/ImageContent" }, { "$ref": "#/components/schemas/URLContent" }, { "$ref": "#/components/schemas/TemplateContent" }, { "$ref": "#/components/schemas/PhotoSourceContent" }, { "$ref": "#/components/schemas/ProviderContent" }, { "$ref": "#/components/schemas/FutureContent" } ], "discriminator": { "propertyName": "type", "mapping": { "html": "#/components/schemas/FutureContent", "image": "#/components/schemas/ImageContent", "image_url": "#/components/schemas/URLContent", "markdown": "#/components/schemas/FutureContent", "photo_source": "#/components/schemas/PhotoSourceContent", "provider": "#/components/schemas/ProviderContent", "template": "#/components/schemas/TemplateContent" } } }, { "$ref": "#/components/schemas/RestoreContent" } ], "title": "Source" }, "display_duration": { "type": "integer", "maximum": 604800.0, "minimum": 0.0, "title": "Display Duration", "default": 0 }, "restore_previous": { "type": "boolean", "title": "Restore Previous", "default": false }, "priority": { "type": "integer", "maximum": 100.0, "minimum": 0.0, "title": "Priority", "default": 50 } }, "additionalProperties": false, "type": "object", "required": [ "name", "schedule", "source" ], "title": "JobInput" }, "LayoutInput": { "properties": { "asset_ids": { "items": { "type": "string" }, "type": "array", "maxItems": 12, "minItems": 1, "title": "Asset Ids" }, "title": { "type": "string", "maxLength": 100, "title": "Title", "default": "" }, "message": { "type": "string", "maxLength": 500, "title": "Message", "default": "" }, "orientation": { "type": "string", "enum": [ "portrait", "landscape" ], "title": "Orientation", "default": "portrait" }, "style": { "type": "string", "enum": [ "grid", "hero", "poster" ], "title": "Style", "default": "grid" }, "use_ai": { "type": "boolean", "title": "Use Ai", "default": false }, "prompt": { "type": "string", "maxLength": 1500, "title": "Prompt", "default": "" } }, "additionalProperties": false, "type": "object", "required": [ "asset_ids" ], "title": "LayoutInput" }, "LayoutPlan": { "properties": { "width": { "type": "integer", "maximum": 1600.0, "minimum": 1200.0, "title": "Width" }, "height": { "type": "integer", "maximum": 1600.0, "minimum": 1200.0, "title": "Height" }, "title": { "type": "string", "maxLength": 100, "title": "Title", "default": "" }, "message": { "type": "string", "maxLength": 500, "title": "Message", "default": "" }, "regions": { "items": { "$ref": "#/components/schemas/Region" }, "type": "array", "maxItems": 12, "minItems": 1, "title": "Regions" }, "engine": { "type": "string", "enum": [ "local", "ai" ], "title": "Engine", "default": "local" } }, "additionalProperties": false, "type": "object", "required": [ "width", "height", "regions" ], "title": "LayoutPlan" }, "Login": { "properties": { "username": { "type": "string", "maxLength": 80, "minLength": 1, "title": "Username" }, "password": { "type": "string", "maxLength": 256, "minLength": 1, "title": "Password" }, "remember": { "type": "boolean", "title": "Remember", "default": true } }, "type": "object", "required": [ "username", "password" ], "title": "Login" }, "LoginRequest": { "properties": { "username": { "type": "string", "maxLength": 120, "minLength": 1, "title": "Username" }, "password": { "type": "string", "maxLength": 256, "minLength": 1, "format": "password", "title": "Password", "writeOnly": true } }, "additionalProperties": false, "type": "object", "required": [ "username", "password" ], "title": "LoginRequest" }, "MQTTConfig": { "properties": { "enabled": { "type": "boolean", "title": "Enabled", "default": false }, "host": { "type": "string", "maxLength": 253, "pattern": "^[a-zA-Z0-9.:-]*$", "title": "Host", "default": "" }, "port": { "type": "integer", "maximum": 65535.0, "minimum": 1.0, "title": "Port", "default": 8883 }, "tls": { "type": "boolean", "title": "Tls", "default": true }, "allow_insecure_lan": { "type": "boolean", "title": "Allow Insecure Lan", "default": false }, "topic": { "type": "string", "pattern": "^[a-zA-Z0-9_/-]{1,120}$", "title": "Topic", "default": "frame-flow/display" }, "username": { "type": "string", "maxLength": 120, "title": "Username", "default": "" } }, "additionalProperties": false, "type": "object", "title": "MQTTConfig" }, "OfficialDevice": { "properties": { "id": { "type": "integer", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" }, "model_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model Code" }, "online": { "type": "boolean", "title": "Online", "default": false } }, "additionalProperties": false, "type": "object", "required": [ "id", "name" ], "title": "OfficialDevice" }, "Operation": { "properties": { "operation_id": { "type": "string", "title": "Operation Id" }, "status": { "$ref": "#/components/schemas/OperationStatus" }, "device_id": { "type": "string", "title": "Device Id" }, "created_at": { "type": "string", "title": "Created At" }, "updated_at": { "type": "string", "title": "Updated At" }, "result": { "anyOf": [ { "$ref": "#/components/schemas/OperationResult" }, { "type": "null" } ] }, "error": { "anyOf": [ { "$ref": "#/components/schemas/ErrorBody" }, { "type": "null" } ] }, "request_id": { "type": "string", "title": "Request Id" }, "client_id": { "type": "string", "title": "Client Id" }, "action": { "type": "string", "title": "Action" } }, "type": "object", "required": [ "operation_id", "status", "device_id", "created_at", "updated_at", "request_id", "client_id", "action" ], "title": "Operation" }, "OperationResult": { "properties": { "cover_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Cover Id" }, "photo_attempts": { "items": { "additionalProperties": { "type": "string" }, "type": "object" }, "type": "array", "title": "Photo Attempts" }, "image_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Image Id" }, "asset_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Asset Id" }, "rendered_asset_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Rendered Asset Id" }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Url" }, "deferred": { "type": "boolean", "title": "Deferred", "default": false } }, "type": "object", "title": "OperationResult" }, "OperationStatus": { "type": "string", "enum": [ "QUEUED", "RENDERING", "UPLOADING", "SYNCING", "COMPLETED", "FAILED", "UNKNOWN" ], "title": "OperationStatus" }, "Options": { "properties": { "cleanup_unstarred": { "type": "boolean", "title": "Cleanup Unstarred", "default": false }, "duration": { "type": "integer", "maximum": 604800.0, "minimum": 0.0, "title": "Duration", "default": 0 }, "restore_previous": { "type": "boolean", "title": "Restore Previous", "default": false }, "priority": { "type": "integer", "maximum": 100.0, "minimum": 0.0, "title": "Priority", "default": 50 } }, "additionalProperties": false, "type": "object", "title": "Options" }, "PasswordChange": { "properties": { "current_password": { "type": "string", "maxLength": 256, "minLength": 1, "title": "Current Password" }, "new_password": { "type": "string", "maxLength": 256, "minLength": 8, "title": "New Password" } }, "type": "object", "required": [ "current_password", "new_password" ], "title": "PasswordChange" }, "PhotoCatalog": { "properties": { "items": { "items": { "$ref": "#/components/schemas/PhotoItem" }, "type": "array", "title": "Items" }, "total": { "type": "integer", "title": "Total" }, "offset": { "type": "integer", "title": "Offset" }, "limit": { "type": "integer", "title": "Limit" }, "catalog_limit": { "type": "integer", "title": "Catalog Limit" } }, "additionalProperties": false, "type": "object", "required": [ "items", "total", "offset", "limit", "catalog_limit" ], "title": "PhotoCatalog" }, "PhotoItem": { "properties": { "id": { "type": "string", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "caption": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Caption" }, "provider_preview": { "type": "boolean", "title": "Provider Preview", "default": false }, "orientation": { "anyOf": [ { "type": "string", "enum": [ "landscape", "portrait", "square" ] }, { "type": "null" } ], "title": "Orientation" }, "width": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Width" }, "height": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Height" } }, "additionalProperties": false, "type": "object", "required": [ "id", "name" ], "title": "PhotoItem" }, "PhotoSourceContent": { "properties": { "type": { "type": "string", "const": "photo_source", "title": "Type" }, "source_id": { "type": "string", "pattern": "^[a-z0-9-]{1,60}$", "title": "Source Id" }, "item_id": { "anyOf": [ { "type": "string", "maxLength": 2048 }, { "type": "null" } ], "title": "Item Id" }, "fit": { "$ref": "#/components/schemas/Fit", "default": "contain" }, "profile": { "$ref": "#/components/schemas/Profile", "default": "color" } }, "additionalProperties": false, "type": "object", "required": [ "type", "source_id" ], "title": "PhotoSourceContent" }, "PhotoSourceInput": { "properties": { "name": { "type": "string", "maxLength": 120, "minLength": 1, "title": "Name" }, "kind": { "type": "string", "enum": [ "local", "webdav", "google-drive", "alipan", "baidu" ], "title": "Kind" }, "location": { "type": "string", "maxLength": 2048, "minLength": 1, "title": "Location" }, "recursive": { "type": "boolean", "title": "Recursive", "default": true }, "enabled": { "type": "boolean", "title": "Enabled", "default": true }, "catalog_limit": { "type": "integer", "maximum": 100000.0, "minimum": 1.0, "title": "Catalog Limit", "default": 10000 }, "synology_previews": { "type": "boolean", "title": "Synology Previews", "default": false }, "organized_only": { "type": "boolean", "title": "Organized Only", "default": false }, "folder_caption": { "type": "boolean", "title": "Folder Caption", "default": false }, "orientation": { "anyOf": [ { "type": "string", "enum": [ "auto", "landscape", "portrait" ] }, { "type": "null" } ], "title": "Orientation" }, "minimum_sharpness": { "type": "number", "maximum": 10000.0, "minimum": 0.0, "title": "Minimum Sharpness", "default": 0 }, "minimum_brightness": { "type": "number", "maximum": 255.0, "minimum": 0.0, "title": "Minimum Brightness", "default": 0 }, "maximum_brightness": { "type": "number", "maximum": 255.0, "minimum": 0.0, "title": "Maximum Brightness", "default": 255 }, "avoid_duplicates": { "type": "boolean", "title": "Avoid Duplicates", "default": false }, "people_space": { "type": "string", "enum": [ "shared", "personal" ], "title": "People Space", "default": "shared" }, "people_filter": { "type": "boolean", "title": "People Filter", "default": false }, "person_ids": { "items": { "type": "integer" }, "type": "array", "maxItems": 50, "title": "Person Ids" }, "person_match": { "type": "string", "enum": [ "any", "all" ], "title": "Person Match", "default": "any" }, "credential_env": { "anyOf": [ { "type": "string", "pattern": "^FRAME_FLOW_SOURCE_[A-Z0-9_]+$" }, { "type": "null" } ], "title": "Credential Env" } }, "additionalProperties": false, "type": "object", "required": [ "name", "kind", "location" ], "title": "PhotoSourceInput" }, "PhotoSourceView": { "properties": { "name": { "type": "string", "maxLength": 120, "minLength": 1, "title": "Name" }, "kind": { "type": "string", "enum": [ "local", "webdav", "google-drive", "alipan", "baidu" ], "title": "Kind" }, "location": { "type": "string", "maxLength": 2048, "minLength": 1, "title": "Location" }, "recursive": { "type": "boolean", "title": "Recursive", "default": true }, "enabled": { "type": "boolean", "title": "Enabled", "default": true }, "catalog_limit": { "type": "integer", "maximum": 100000.0, "minimum": 1.0, "title": "Catalog Limit", "default": 10000 }, "synology_previews": { "type": "boolean", "title": "Synology Previews", "default": false }, "organized_only": { "type": "boolean", "title": "Organized Only", "default": false }, "folder_caption": { "type": "boolean", "title": "Folder Caption", "default": false }, "orientation": { "anyOf": [ { "type": "string", "enum": [ "auto", "landscape", "portrait" ] }, { "type": "null" } ], "title": "Orientation" }, "minimum_sharpness": { "type": "number", "maximum": 10000.0, "minimum": 0.0, "title": "Minimum Sharpness", "default": 0 }, "minimum_brightness": { "type": "number", "maximum": 255.0, "minimum": 0.0, "title": "Minimum Brightness", "default": 0 }, "maximum_brightness": { "type": "number", "maximum": 255.0, "minimum": 0.0, "title": "Maximum Brightness", "default": 255 }, "avoid_duplicates": { "type": "boolean", "title": "Avoid Duplicates", "default": false }, "people_space": { "type": "string", "enum": [ "shared", "personal" ], "title": "People Space", "default": "shared" }, "people_filter": { "type": "boolean", "title": "People Filter", "default": false }, "person_ids": { "items": { "type": "integer" }, "type": "array", "maxItems": 50, "title": "Person Ids" }, "person_match": { "type": "string", "enum": [ "any", "all" ], "title": "Person Match", "default": "any" }, "credential_env": { "anyOf": [ { "type": "string", "pattern": "^FRAME_FLOW_SOURCE_[A-Z0-9_]+$" }, { "type": "null" } ], "title": "Credential Env" }, "id": { "type": "string", "title": "Id" } }, "additionalProperties": false, "type": "object", "required": [ "name", "kind", "location", "id" ], "title": "PhotoSourceView" }, "PhotosConnection": { "properties": { "configured": { "type": "boolean", "title": "Configured" }, "connected": { "type": "boolean", "title": "Connected" } }, "additionalProperties": false, "type": "object", "required": [ "configured", "connected" ], "title": "PhotosConnection" }, "PhotosLogin": { "properties": { "username": { "type": "string", "maxLength": 120, "minLength": 1, "title": "Username" }, "password": { "type": "string", "maxLength": 256, "minLength": 1, "format": "password", "title": "Password", "writeOnly": true } }, "additionalProperties": false, "type": "object", "required": [ "username", "password" ], "title": "PhotosLogin" }, "PhotosPerson": { "properties": { "id": { "type": "integer", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "count": { "type": "integer", "title": "Count", "default": 0 }, "named": { "type": "boolean", "title": "Named", "default": false } }, "additionalProperties": false, "type": "object", "required": [ "id", "name" ], "title": "PhotosPerson" }, "Playlist": { "properties": { "device_id": { "type": "string", "title": "Device Id", "default": "living-room" }, "name": { "type": "string", "maxLength": 120, "minLength": 1, "title": "Name" }, "image_ids": { "items": { "type": "integer" }, "type": "array", "maxItems": 100, "minItems": 1, "title": "Image Ids" }, "interval_minutes": { "type": "integer", "maximum": 10080.0, "minimum": 5.0, "title": "Interval Minutes", "default": 60 }, "mode": { "type": "string", "enum": [ "queue", "random" ], "title": "Mode", "default": "queue" }, "enabled": { "type": "boolean", "title": "Enabled", "default": false }, "id": { "type": "string", "title": "Id" }, "position": { "type": "integer", "title": "Position" }, "next_run": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Next Run" } }, "additionalProperties": false, "type": "object", "required": [ "name", "image_ids", "id", "position", "next_run" ], "title": "Playlist" }, "PlaylistInput": { "properties": { "device_id": { "type": "string", "title": "Device Id", "default": "living-room" }, "name": { "type": "string", "maxLength": 120, "minLength": 1, "title": "Name" }, "image_ids": { "items": { "type": "integer" }, "type": "array", "maxItems": 100, "minItems": 1, "title": "Image Ids" }, "interval_minutes": { "type": "integer", "maximum": 10080.0, "minimum": 5.0, "title": "Interval Minutes", "default": 60 }, "mode": { "type": "string", "enum": [ "queue", "random" ], "title": "Mode", "default": "queue" }, "enabled": { "type": "boolean", "title": "Enabled", "default": false } }, "additionalProperties": false, "type": "object", "required": [ "name", "image_ids" ], "title": "PlaylistInput" }, "Power": { "properties": { "battery_percent": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Battery Percent" }, "charging": { "type": "boolean", "title": "Charging" } }, "type": "object", "required": [ "battery_percent", "charging" ], "title": "Power" }, "Profile": { "type": "string", "enum": [ "color", "grayscale" ], "title": "Profile" }, "ProviderContent": { "properties": { "type": { "type": "string", "const": "provider", "title": "Type" }, "provider_id": { "type": "string", "pattern": "^[a-z0-9-]{1,60}$", "title": "Provider Id" }, "template": { "type": "string", "pattern": "^[a-z0-9-]{1,60}$", "title": "Template", "default": "daily-dashboard" }, "data": { "additionalProperties": true, "type": "object", "title": "Data" }, "profile": { "$ref": "#/components/schemas/Profile", "default": "color" } }, "additionalProperties": false, "type": "object", "required": [ "type", "provider_id" ], "title": "ProviderContent" }, "Readiness": { "properties": { "status": { "type": "string", "title": "Status" }, "checks": { "additionalProperties": { "type": "boolean" }, "type": "object", "title": "Checks" } }, "type": "object", "required": [ "status", "checks" ], "title": "Readiness" }, "ReconcileRequest": { "properties": { "acknowledge": { "type": "boolean", "title": "Acknowledge", "default": false } }, "additionalProperties": false, "type": "object", "title": "ReconcileRequest" }, "Reconciliation": { "properties": { "operation_id": { "type": "string", "title": "Operation Id" }, "current_image_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Current Image Id" }, "expected_image_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Expected Image Id" }, "cloud_images": { "items": { "$ref": "#/components/schemas/GalleryImage" }, "type": "array", "title": "Cloud Images" }, "resolved": { "type": "boolean", "title": "Resolved" } }, "type": "object", "required": [ "operation_id", "current_image_id", "expected_image_id", "cloud_images", "resolved" ], "title": "Reconciliation" }, "Region": { "properties": { "asset_id": { "type": "string", "pattern": "^[a-f0-9]{32}$", "title": "Asset Id" }, "x": { "type": "integer", "minimum": 0.0, "title": "X" }, "y": { "type": "integer", "minimum": 0.0, "title": "Y" }, "width": { "type": "integer", "minimum": 100.0, "title": "Width" }, "height": { "type": "integer", "minimum": 100.0, "title": "Height" } }, "additionalProperties": false, "type": "object", "required": [ "asset_id", "x", "y", "width", "height" ], "title": "Region" }, "RestoreContent": { "properties": { "type": { "type": "string", "const": "restore", "title": "Type" } }, "additionalProperties": false, "type": "object", "required": [ "type" ], "title": "RestoreContent" }, "Schedule": { "properties": { "type": { "type": "string", "enum": [ "cron", "daily", "weekdays", "weekends", "date", "temporary" ], "title": "Type" }, "cron": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cron" }, "time": { "anyOf": [ { "type": "string", "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$" }, { "type": "null" } ], "title": "Time" }, "at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "At" } }, "additionalProperties": false, "type": "object", "required": [ "type" ], "title": "Schedule" }, "SelectRequest": { "properties": { "robot_id": { "type": "integer", "exclusiveMinimum": 0.0, "title": "Robot Id" } }, "additionalProperties": false, "type": "object", "required": [ "robot_id" ], "title": "SelectRequest" }, "SettingsView": { "properties": { "version": { "type": "string", "title": "Version" }, "mock": { "type": "boolean", "title": "Mock" }, "write_enabled": { "type": "boolean", "title": "Write Enabled" }, "api_key_configured": { "type": "boolean", "title": "Api Key Configured" }, "api_token_configured": { "type": "boolean", "title": "Api Token Configured" }, "timezone": { "type": "string", "title": "Timezone" }, "device_id": { "type": "string", "title": "Device Id" }, "weather_provider": { "type": "string", "title": "Weather Provider" } }, "type": "object", "required": [ "version", "mock", "write_enabled", "api_key_configured", "api_token_configured", "timezone", "device_id", "weather_provider" ], "title": "SettingsView" }, "Source": { "properties": { "client": { "anyOf": [ { "type": "string", "maxLength": 80 }, { "type": "null" } ], "title": "Client" }, "request_id": { "anyOf": [ { "type": "string", "maxLength": 120 }, { "type": "null" } ], "title": "Request Id" } }, "additionalProperties": false, "type": "object", "title": "Source" }, "StoragePolicy": { "properties": { "enabled": { "type": "boolean", "title": "Enabled", "default": false }, "generated_days": { "type": "integer", "maximum": 3650.0, "minimum": 1.0, "title": "Generated Days", "default": 7 }, "cache_days": { "type": "integer", "maximum": 3650.0, "minimum": 1.0, "title": "Cache Days", "default": 2 }, "max_bytes": { "type": "integer", "maximum": 1099511627776.0, "minimum": 1048576.0, "title": "Max Bytes", "default": 1073741824 } }, "additionalProperties": false, "type": "object", "title": "StoragePolicy" }, "TemplateConfig": { "properties": { "data": { "additionalProperties": true, "type": "object", "title": "Data" } }, "additionalProperties": false, "type": "object", "required": [ "data" ], "title": "TemplateConfig" }, "TemplateContent": { "properties": { "type": { "type": "string", "const": "template", "title": "Type" }, "template": { "type": "string", "pattern": "^[a-z0-9-]{1,60}$", "title": "Template" }, "data": { "additionalProperties": true, "type": "object", "title": "Data" }, "profile": { "$ref": "#/components/schemas/Profile", "default": "color" } }, "additionalProperties": false, "type": "object", "required": [ "type", "template" ], "title": "TemplateContent" }, "TemplateInfo": { "properties": { "id": { "type": "string", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "width": { "type": "integer", "title": "Width", "default": 1200 }, "height": { "type": "integer", "title": "Height", "default": 1600 }, "fields": { "items": { "type": "string" }, "type": "array", "title": "Fields" }, "defaults": { "additionalProperties": true, "type": "object", "title": "Defaults" } }, "type": "object", "required": [ "id", "name", "fields", "defaults" ], "title": "TemplateInfo" }, "URLContent": { "properties": { "type": { "type": "string", "const": "image_url", "title": "Type" }, "url": { "type": "string", "maxLength": 2048, "title": "Url" }, "name": { "type": "string", "maxLength": 120, "title": "Name", "default": "image.jpg" }, "fit": { "$ref": "#/components/schemas/Fit", "default": "contain" }, "profile": { "$ref": "#/components/schemas/Profile", "default": "color" } }, "additionalProperties": false, "type": "object", "required": [ "type", "url" ], "title": "URLContent" }, "Version": { "properties": { "product": { "type": "string", "title": "Product", "default": "Pigway Frame Flow" }, "version": { "type": "string", "title": "Version", "default": "0.1.0" }, "api_version": { "type": "string", "title": "Api Version", "default": "v1" }, "commit": { "type": "string", "title": "Commit", "default": "development" }, "build_time": { "type": "string", "title": "Build Time", "default": "unknown" } }, "type": "object", "title": "Version" }, "WeatherConfig": { "properties": { "provider": { "type": "string", "enum": [ "mock", "open-meteo" ], "title": "Provider", "default": "mock" }, "location": { "type": "string", "maxLength": 120, "minLength": 1, "title": "Location", "default": "示例地点 / Shanghai Jinshan" }, "latitude": { "type": "number", "maximum": 90.0, "minimum": -90.0, "title": "Latitude", "default": 30.74 }, "longitude": { "type": "number", "maximum": 180.0, "minimum": -180.0, "title": "Longitude", "default": 121.34 } }, "additionalProperties": false, "type": "object", "title": "WeatherConfig" }, "WeatherView": { "properties": { "config": { "$ref": "#/components/schemas/WeatherConfig" }, "current": { "additionalProperties": true, "type": "object", "title": "Current" }, "forecast": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Forecast" } }, "type": "object", "required": [ "config", "current", "forecast" ], "title": "WeatherView" }, "WebhookInput": { "properties": { "callback_url": { "type": "string", "maxLength": 2048, "title": "Callback Url" }, "event_types": { "items": { "type": "string" }, "type": "array", "maxItems": 20, "minItems": 1, "title": "Event Types" }, "enabled": { "type": "boolean", "title": "Enabled", "default": true } }, "additionalProperties": false, "type": "object", "required": [ "callback_url", "event_types" ], "title": "WebhookInput" }, "Widget": { "properties": { "id": { "type": "integer", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "tags": { "items": { "type": "string" }, "type": "array", "title": "Tags" }, "arg_keys": { "items": { "type": "string" }, "type": "array", "title": "Arg Keys" } }, "additionalProperties": false, "type": "object", "required": [ "id", "name" ], "title": "Widget" }, "WidgetSelection": { "properties": { "cover_id": { "anyOf": [ { "type": "integer", "exclusiveMinimum": 0.0 }, { "type": "null" } ], "title": "Cover Id" }, "args": { "additionalProperties": { "type": "string" }, "type": "object", "maxProperties": 30, "title": "Args" } }, "additionalProperties": false, "type": "object", "title": "WidgetSelection" }, "WidgetState": { "properties": { "source": { "type": "string", "enum": [ "live", "snapshot", "mock" ], "title": "Source" }, "configured": { "type": "boolean", "title": "Configured" }, "status": { "type": "string", "title": "Status", "default": "OK" }, "observed_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Observed At" }, "catalog": { "items": { "$ref": "#/components/schemas/Widget" }, "type": "array", "title": "Catalog" }, "current": { "anyOf": [ { "$ref": "#/components/schemas/Widget" }, { "type": "null" } ] }, "current_verified": { "type": "boolean", "title": "Current Verified", "default": false }, "writable": { "type": "boolean", "const": false, "title": "Writable", "default": false } }, "additionalProperties": false, "type": "object", "required": [ "source", "configured", "catalog" ], "title": "WidgetState" } }, "securitySchemes": { "HTTPBearer": { "type": "http", "scheme": "bearer" }, "AccountSession": { "type": "apiKey", "in": "cookie", "name": "frameflow_session" } } } }