Files
pigway-frame-flow/tests/schema-contract.json
T

1480 lines
30 KiB
JSON
Raw Permalink Normal View History

{
"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
}
},
"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": {
"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",
"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"
},
"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"
},
"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"
}
}