{ "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" }, "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" }, "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" }, "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" }, "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" }, "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" }, "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/AutoCollageContent" }, { "$ref": "#/components/schemas/ProviderContent" }, { "$ref": "#/components/schemas/FutureContent" } ], "title": "Content", "discriminator": { "propertyName": "type", "mapping": { "auto_collage": "#/components/schemas/AutoCollageContent", "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" }, "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" }, "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" }, "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" }, "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 }, "generate_thumbnail": { "type": "boolean", "title": "Generate Thumbnail", "default": true }, "thumbnail_plan_id": { "anyOf": [ { "type": "string", "pattern": "^[a-f0-9]{32}$" }, { "type": "null" } ], "title": "Thumbnail Plan Id" } }, "additionalProperties": false, "type": "object", "title": "Options" }, "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" }, "Operation": { "properties": { "recovery": { "anyOf": [ { "$ref": "#/components/schemas/RecoveryState" }, { "type": "null" } ] }, "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": { "image_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Image Name" }, "preview_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Preview Url" }, "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" }, "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" }, "ErrorResponse": { "properties": { "error": { "$ref": "#/components/schemas/ErrorBody" } }, "type": "object", "required": [ "error" ], "title": "ErrorResponse" }, "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", "synology-photos", "webdav", "google-drive", "alipan", "baidu" ], "title": "Kind" }, "location": { "type": "string", "maxLength": 2048, "minLength": 1, "title": "Location" }, "nas_root_path": { "anyOf": [ { "type": "string", "maxLength": 2048, "pattern": "^/" }, { "type": "null" } ], "title": "Nas Root Path" }, "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_short_edge": { "type": "integer", "maximum": 50000.0, "minimum": 0.0, "title": "Minimum Short Edge", "default": 0 }, "minimum_long_edge": { "type": "integer", "maximum": 50000.0, "minimum": 0.0, "title": "Minimum Long Edge", "default": 0 }, "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", "synology-photos", "webdav", "google-drive", "alipan", "baidu" ], "title": "Kind" }, "location": { "type": "string", "maxLength": 2048, "minLength": 1, "title": "Location" }, "nas_root_path": { "anyOf": [ { "type": "string", "maxLength": 2048, "pattern": "^/" }, { "type": "null" } ], "title": "Nas Root Path" }, "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_short_edge": { "type": "integer", "maximum": 50000.0, "minimum": 0.0, "title": "Minimum Short Edge", "default": 0 }, "minimum_long_edge": { "type": "integer", "maximum": 50000.0, "minimum": 0.0, "title": "Minimum Long Edge", "default": 0 }, "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" }, "PhotoItem": { "properties": { "starred": { "type": "boolean", "title": "Starred", "default": false }, "excluded": { "type": "boolean", "title": "Excluded", "default": false }, "id": { "type": "string", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "caption": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Caption" }, "source_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Path" }, "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" }, "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" }, "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" }, "PhotosConnection": { "properties": { "configured": { "type": "boolean", "title": "Configured" }, "connected": { "type": "boolean", "title": "Connected" } }, "additionalProperties": false, "type": "object", "required": [ "configured", "connected" ], "title": "PhotosConnection" }, "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" }, "AutoCollageContent": { "properties": { "type": { "type": "string", "const": "auto_collage", "title": "Type" }, "source_id": { "anyOf": [ { "type": "string", "pattern": "^[a-z0-9-]{1,60}$" }, { "type": "null" } ], "title": "Source Id" }, "count": { "type": "integer", "maximum": 12.0, "minimum": 1.0, "title": "Count", "default": 4 }, "title": { "type": "string", "maxLength": 100, "title": "Title", "default": "" }, "message": { "type": "string", "maxLength": 500, "title": "Message", "default": "" }, "orientation": { "type": "string", "enum": [ "auto", "portrait", "landscape" ], "title": "Orientation", "default": "auto" }, "style": { "type": "string", "enum": [ "grid", "hero", "poster" ], "title": "Style", "default": "grid" }, "use_ai": { "type": "boolean", "title": "Use Ai", "default": true }, "prompt": { "type": "string", "maxLength": 1500, "title": "Prompt", "default": "" }, "profile": { "$ref": "#/components/schemas/Profile", "default": "color" } }, "additionalProperties": false, "type": "object", "required": [ "type" ], "title": "AutoCollageContent" }, "RecoveryState": { "properties": { "state": { "type": "string", "enum": [ "checking", "manual_review", "resolved" ], "title": "State" }, "reason": { "type": "string", "title": "Reason" }, "first_checked_at": { "type": "string", "title": "First Checked At" }, "last_checked_at": { "type": "string", "title": "Last Checked At" }, "checks": { "type": "integer", "title": "Checks" }, "requires_manual_review": { "type": "boolean", "title": "Requires Manual Review" } }, "type": "object", "required": [ "state", "reason", "first_checked_at", "last_checked_at", "checks", "requires_manual_review" ], "title": "RecoveryState" } }