Build Pigway Frame Flow with bilingual UI, complete KoKonna driver and safe automation
This commit is contained in:
@@ -0,0 +1,751 @@
|
||||
{
|
||||
"Device": {
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"title": "Id"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"title": "Name"
|
||||
},
|
||||
"driver": {
|
||||
"type": "string",
|
||||
"const": "kokonna",
|
||||
"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
|
||||
}
|
||||
},
|
||||
"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": {
|
||||
"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/FutureContent"
|
||||
}
|
||||
],
|
||||
"title": "Content",
|
||||
"discriminator": {
|
||||
"propertyName": "type",
|
||||
"mapping": {
|
||||
"html": "#/components/schemas/FutureContent",
|
||||
"image": "#/components/schemas/ImageContent",
|
||||
"image_url": "#/components/schemas/URLContent",
|
||||
"markdown": "#/components/schemas/FutureContent",
|
||||
"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": {
|
||||
"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": {
|
||||
"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_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"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user