{
    "$schema": "../../../$schemas/action-schema.json",
    "actions": [
        {
            "id": "resync",
            "name": "Resync HTTP device",
            "destructive": true
        },
        {
            "id": "sendCommand",
            "name": "Send Command",
            "destructive": false,
            "payload": {
                "id": "HTTPSendCommandContent",
                "type": "object",
                "properties": {
                    "type": {
                        "type": "string",
                        "title": "TimelineContentTypeHTTP",
                        "ui:title": "Type",
                        "ui:summaryTitle": "Type",
                        "default": "",
                        "enum": ["get", "post", "put", "delete"],
                        "tsEnumNames": ["GET", "POST", "PUT", "DELETE"]
                    },
                    "url": {
                        "type": "string",
                        "ui:title": "Url",
                        "ui:summaryTitle": "URL",
                        "default": ""
                    },
                    "params": {
                        "type": "object",
                        "ui:title": "Params",
                        "ui:displayType": "json",
                        "additionalProperties": true
                    },
                    "paramsType": {
                        "type": "string",
                        "title": "TimelineContentTypeHTTPParamType",
                        "ui:title": "Params type",
                        "default": "json",
                        "enum": ["json", "form"],
                        "tsEnumNames": ["JSON", "FORM"]
                    },
                    "headers": {
                        "type": "object",
                        "additionalProperties": { "type": "string" }
                    },
                    "temporalPriority": {
                        "type": "integer",
                        "ui:title": "Temporal Priority",
                        "default": 0
                    },
                    "queueId": {
                        "type": "string",
                        "description": "Commands in the same queue will be sent in order (will wait for the previous to finish before sending next",
                        "ui:title": "Send Queue Id"
                    }
                },
                "required": ["type", "url", "params"],
                "additionalProperties": false
            },
            "result": {
                "type": "object",
                "properties": {
                    "statusCode": {
                        "type": "number"
                    },
                    "headers": {
                        "type": "object",
                        "additionalProperties": {
                            "oneOf": [
                                { "type": "string" },
                                {
                                    "type": "array",
                                    "items": { "type": "string" }
                                }
                            ]
                        }
                    },
                    "body": {
                        "type": "string"
                    }
                },
                "required": [
                    "statusCode",
                    "headers",
                    "body"
                ],
                "additionalProperties": false
            }
        }
    ]
}
