{
    "$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
            }
        }
    ]
}
