{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
        "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255
        },
        "description": {
            "type": "string",
            "maxLength": 32767
        },
        "iconData": {
            "oneOf": [
                {
                    "type": "string",
                    "maxLength": 32767,
                    "pattern": "^data:image/(jpg|jpeg|png|svg\\+xml);base64,[0-9a-zA-Z+/=]*$"
                },
                {
                    "type": "null"
                }
            ]
        },
        "enabled": {
            "type": "boolean"
        },
        "defaultVersionId": {
            "oneOf": [
                {
                    "type": "string",
                    "pattern": "^[A-Fa-f\\d]{24}$"
                },
                {
                    "type": "null"
                }
            ]
        },
        "triggers": {
            "type": "array",
            "items": {
                "oneOf": [
                    {
                        "type": "object",
                        "properties": {
                            "key": {
                                "type": "string",
                                "maxLength": 1024
                            },
                            "type": {
                                "type": "string",
                                "enum": [
                                    "customNodeStart",
                                    "deviceCommand",
                                    "deviceIdConnect",
                                    "deviceTagConnect",
                                    "deviceIdDisconnect",
                                    "deviceTagDisconnect",
                                    "integration",
                                    "notebook",
                                    "onBoot",
                                    "onConnect",
                                    "onDisconnect",
                                    "request",
                                    "udp",
                                    "webhook"
                                ]
                            },
                            "config": {
                                "type": "object",
                                "additionalProperties": false
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "category": {
                                        "type": "string",
                                        "enum": [
                                            "trigger"
                                        ]
                                    },
                                    "name": {
                                        "type": "string",
                                        "enum": [
                                            "customNodeStart",
                                            "deviceCommand",
                                            "deviceIdsTagsConnect",
                                            "deviceIdsTagsDisconnect",
                                            "flowError",
                                            "googlePubSub",
                                            "meridian",
                                            "mqtt",
                                            "notebook",
                                            "onBoot",
                                            "onConnect",
                                            "onDisconnect",
                                            "particle",
                                            "request",
                                            "udp",
                                            "webhook"
                                        ]
                                    },
                                    "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                    },
                                    "x": {
                                        "type": "number"
                                    },
                                    "y": {
                                        "type": "number"
                                    },
                                    "uiId": {
                                        "type": "string",
                                        "maxLength": 48
                                    },
                                    "description": {
                                        "type": "string",
                                        "maxLength": 32767
                                    },
                                    "icon": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "color": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "inputCount": {
                                        "type": "number"
                                    },
                                    "outputCount": {
                                        "type": "number"
                                    },
                                    "triggerId": {
                                        "type": "string",
                                        "maxLength": 48
                                    },
                                    "id": {
                                        "type": "string",
                                        "maxLength": 48
                                    }
                                },
                                "additionalProperties": false
                            },
                            "outputIds": {
                                "type": "array",
                                "items": {
                                    "type": "array",
                                    "items": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "maxItems": 100
                                },
                                "maxItems": 100
                            }
                        },
                        "required": [
                            "type"
                        ],
                        "additionalProperties": false
                    },
                    {
                        "type": "object",
                        "properties": {
                            "key": {
                                "type": "string",
                                "maxLength": 1024
                            },
                            "type": {
                                "type": "string",
                                "enum": [
                                    "dataTable"
                                ]
                            },
                            "config": {
                                "type": "object",
                                "properties": {
                                    "bulkInsert": {
                                        "type": "boolean"
                                    },
                                    "delete": {
                                        "type": "boolean"
                                    },
                                    "insert": {
                                        "type": "boolean"
                                    },
                                    "update": {
                                        "type": "boolean"
                                    }
                                },
                                "additionalProperties": false
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "category": {
                                        "type": "string",
                                        "enum": [
                                            "trigger"
                                        ]
                                    },
                                    "name": {
                                        "type": "string",
                                        "enum": [
                                            "dataTable"
                                        ]
                                    },
                                    "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                    },
                                    "x": {
                                        "type": "number"
                                    },
                                    "y": {
                                        "type": "number"
                                    },
                                    "uiId": {
                                        "type": "string",
                                        "maxLength": 48
                                    },
                                    "description": {
                                        "type": "string",
                                        "maxLength": 32767
                                    },
                                    "icon": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "color": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "inputCount": {
                                        "type": "number"
                                    },
                                    "outputCount": {
                                        "type": "number"
                                    },
                                    "id": {
                                        "type": "string",
                                        "maxLength": 48
                                    }
                                },
                                "additionalProperties": false
                            },
                            "outputIds": {
                                "type": "array",
                                "items": {
                                    "type": "array",
                                    "items": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "maxItems": 100
                                },
                                "maxItems": 100
                            }
                        },
                        "required": [
                            "type"
                        ],
                        "additionalProperties": false
                    },
                    {
                        "type": "object",
                        "properties": {
                            "key": {
                                "type": "string",
                                "maxLength": 1024
                            },
                            "type": {
                                "type": "string",
                                "enum": [
                                    "deviceId",
                                    "deviceTag"
                                ]
                            },
                            "config": {
                                "type": "object",
                                "properties": {
                                    "attributeBlacklist": {
                                        "type": "array",
                                        "maxItems": 100,
                                        "items": {
                                            "type": "string",
                                            "pattern": "^[0-9a-zA-Z_-]{1,255}$"
                                        }
                                    },
                                    "attributeWhitelist": {
                                        "type": "array",
                                        "maxItems": 100,
                                        "items": {
                                            "type": "string",
                                            "pattern": "^[0-9a-zA-Z_-]{1,255}$"
                                        }
                                    },
                                    "maxAge": {
                                        "type": "number"
                                    }
                                },
                                "additionalProperties": false
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "category": {
                                        "type": "string",
                                        "enum": [
                                            "trigger"
                                        ]
                                    },
                                    "name": {
                                        "type": "string",
                                        "enum": [
                                            "deviceIdsTags",
                                            "device",
                                            "deviceTag"
                                        ]
                                    },
                                    "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                    },
                                    "x": {
                                        "type": "number"
                                    },
                                    "y": {
                                        "type": "number"
                                    },
                                    "uiId": {
                                        "type": "string",
                                        "maxLength": 48
                                    },
                                    "description": {
                                        "type": "string",
                                        "maxLength": 32767
                                    },
                                    "icon": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "color": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "inputCount": {
                                        "type": "number"
                                    },
                                    "outputCount": {
                                        "type": "number"
                                    },
                                    "id": {
                                        "type": "string",
                                        "maxLength": 48
                                    },
                                    "timeUnit": {
                                        "type": "string",
                                        "maxLength": 48
                                    },
                                    "maxAgeToggle": {
                                        "type": "boolean"
                                    },
                                    "allowedAttributeType": {
                                        "type": "string",
                                        "enum": [
                                            "attributeWhitelist",
                                            "any",
                                            "attributeBlacklist"
                                        ]
                                    }
                                },
                                "additionalProperties": false
                            },
                            "outputIds": {
                                "type": "array",
                                "items": {
                                    "type": "array",
                                    "items": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "maxItems": 100
                                },
                                "maxItems": 100
                            }
                        },
                        "required": [
                            "type"
                        ],
                        "additionalProperties": false
                    },
                    {
                        "type": "object",
                        "properties": {
                            "key": {
                                "type": "string",
                                "maxLength": 1024
                            },
                            "type": {
                                "type": "string",
                                "enum": [
                                    "deviceIdInactivity",
                                    "deviceTagInactivity"
                                ]
                            },
                            "config": {
                                "type": "object",
                                "properties": {
                                    "seconds": {
                                        "type": "number"
                                    }
                                },
                                "additionalProperties": false
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "category": {
                                        "type": "string",
                                        "enum": [
                                            "trigger"
                                        ]
                                    },
                                    "name": {
                                        "type": "string",
                                        "enum": [
                                            "deviceIdsTagsInactivity"
                                        ]
                                    },
                                    "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                    },
                                    "x": {
                                        "type": "number"
                                    },
                                    "y": {
                                        "type": "number"
                                    },
                                    "uiId": {
                                        "type": "string",
                                        "maxLength": 48
                                    },
                                    "description": {
                                        "type": "string",
                                        "maxLength": 32767
                                    },
                                    "icon": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "color": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "inputCount": {
                                        "type": "number"
                                    },
                                    "outputCount": {
                                        "type": "number"
                                    },
                                    "id": {
                                        "type": "string",
                                        "maxLength": 48
                                    }
                                },
                                "additionalProperties": false
                            },
                            "outputIds": {
                                "type": "array",
                                "items": {
                                    "type": "array",
                                    "items": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "maxItems": 100
                                },
                                "maxItems": 100
                            }
                        },
                        "required": [
                            "type"
                        ],
                        "additionalProperties": false
                    },
                    {
                        "type": "object",
                        "properties": {
                            "key": {
                                "type": "string",
                                "maxLength": 1024
                            },
                            "type": {
                                "type": "string",
                                "enum": [
                                    "endpoint"
                                ]
                            },
                            "config": {
                                "type": "object",
                                "properties": {
                                    "experienceVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                    }
                                },
                                "additionalProperties": false
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "category": {
                                        "type": "string",
                                        "enum": [
                                            "trigger"
                                        ]
                                    },
                                    "name": {
                                        "type": "string",
                                        "enum": [
                                            "endpoint"
                                        ]
                                    },
                                    "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                    },
                                    "x": {
                                        "type": "number"
                                    },
                                    "y": {
                                        "type": "number"
                                    },
                                    "uiId": {
                                        "type": "string",
                                        "maxLength": 48
                                    },
                                    "description": {
                                        "type": "string",
                                        "maxLength": 32767
                                    },
                                    "icon": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "color": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "inputCount": {
                                        "type": "number"
                                    },
                                    "outputCount": {
                                        "type": "number"
                                    },
                                    "id": {
                                        "type": "string",
                                        "maxLength": 48
                                    }
                                },
                                "additionalProperties": false
                            },
                            "outputIds": {
                                "type": "array",
                                "items": {
                                    "type": "array",
                                    "items": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "maxItems": 100
                                },
                                "maxItems": 100
                            }
                        },
                        "required": [
                            "type"
                        ],
                        "additionalProperties": false
                    },
                    {
                        "type": "object",
                        "properties": {
                            "key": {
                                "type": "string",
                                "maxLength": 1024
                            },
                            "type": {
                                "type": "string",
                                "enum": [
                                    "event"
                                ]
                            },
                            "config": {
                                "type": "object",
                                "properties": {
                                    "subject": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "new": {
                                        "type": "boolean"
                                    },
                                    "acknowledged": {
                                        "type": "boolean"
                                    },
                                    "resolved": {
                                        "type": "boolean"
                                    }
                                },
                                "additionalProperties": false
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "category": {
                                        "type": "string",
                                        "enum": [
                                            "trigger"
                                        ]
                                    },
                                    "name": {
                                        "type": "string",
                                        "enum": [
                                            "event"
                                        ]
                                    },
                                    "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                    },
                                    "x": {
                                        "type": "number"
                                    },
                                    "y": {
                                        "type": "number"
                                    },
                                    "uiId": {
                                        "type": "string",
                                        "maxLength": 48
                                    },
                                    "description": {
                                        "type": "string",
                                        "maxLength": 32767
                                    },
                                    "icon": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "color": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "inputCount": {
                                        "type": "number"
                                    },
                                    "outputCount": {
                                        "type": "number"
                                    },
                                    "id": {
                                        "type": "string",
                                        "maxLength": 48
                                    }
                                },
                                "additionalProperties": false
                            },
                            "outputIds": {
                                "type": "array",
                                "items": {
                                    "type": "array",
                                    "items": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "maxItems": 100
                                },
                                "maxItems": 100
                            }
                        },
                        "required": [
                            "type"
                        ],
                        "additionalProperties": false
                    },
                    {
                        "type": "object",
                        "properties": {
                            "key": {
                                "type": "string",
                                "maxLength": 1024
                            },
                            "type": {
                                "type": "string",
                                "enum": [
                                    "fileTail"
                                ]
                            },
                            "config": {
                                "type": "object",
                                "properties": {
                                    "path": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "encoding": {
                                        "type": "string",
                                        "maxLength": 48
                                    },
                                    "byteLength": {
                                        "type": "string",
                                        "maxLength": 48
                                    },
                                    "delimiter": {
                                        "type": "string",
                                        "maxLength": 48
                                    }
                                },
                                "additionalProperties": false
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "category": {
                                        "type": "string",
                                        "enum": [
                                            "trigger"
                                        ]
                                    },
                                    "name": {
                                        "type": "string",
                                        "enum": [
                                            "fileTail"
                                        ]
                                    },
                                    "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                    },
                                    "x": {
                                        "type": "number"
                                    },
                                    "y": {
                                        "type": "number"
                                    },
                                    "uiId": {
                                        "type": "string",
                                        "maxLength": 48
                                    },
                                    "description": {
                                        "type": "string",
                                        "maxLength": 32767
                                    },
                                    "icon": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "color": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "inputCount": {
                                        "type": "number"
                                    },
                                    "outputCount": {
                                        "type": "number"
                                    },
                                    "id": {
                                        "type": "string",
                                        "maxLength": 48
                                    }
                                },
                                "additionalProperties": false
                            },
                            "outputIds": {
                                "type": "array",
                                "items": {
                                    "type": "array",
                                    "items": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "maxItems": 100
                                },
                                "maxItems": 100
                            }
                        },
                        "required": [
                            "type"
                        ],
                        "additionalProperties": false
                    },
                    {
                        "type": "object",
                        "properties": {
                            "key": {
                                "type": "string",
                                "maxLength": 1024
                            },
                            "type": {
                                "type": "string",
                                "enum": [
                                    "fileWatch"
                                ]
                            },
                            "config": {
                                "type": "object",
                                "properties": {
                                    "path": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "fileAdded": {
                                        "type": "boolean"
                                    },
                                    "fileChanged": {
                                        "type": "boolean"
                                    },
                                    "fileRemoved": {
                                        "type": "boolean"
                                    },
                                    "directoryAdded": {
                                        "type": "boolean"
                                    },
                                    "directoryRemoved": {
                                        "type": "boolean"
                                    }
                                },
                                "additionalProperties": false
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "category": {
                                        "type": "string",
                                        "enum": [
                                            "trigger"
                                        ]
                                    },
                                    "name": {
                                        "type": "string",
                                        "enum": [
                                            "fileWatch"
                                        ]
                                    },
                                    "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                    },
                                    "x": {
                                        "type": "number"
                                    },
                                    "y": {
                                        "type": "number"
                                    },
                                    "uiId": {
                                        "type": "string",
                                        "maxLength": 48
                                    },
                                    "description": {
                                        "type": "string",
                                        "maxLength": 32767
                                    },
                                    "icon": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "color": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "inputCount": {
                                        "type": "number"
                                    },
                                    "outputCount": {
                                        "type": "number"
                                    },
                                    "id": {
                                        "type": "string",
                                        "maxLength": 48
                                    }
                                },
                                "additionalProperties": false
                            },
                            "outputIds": {
                                "type": "array",
                                "items": {
                                    "type": "array",
                                    "items": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "maxItems": 100
                                },
                                "maxItems": 100
                            }
                        },
                        "required": [
                            "type"
                        ],
                        "additionalProperties": false
                    },
                    {
                        "type": "object",
                        "properties": {
                            "key": {
                                "type": "string",
                                "maxLength": 1024
                            },
                            "type": {
                                "type": "string",
                                "enum": [
                                    "flowError"
                                ]
                            },
                            "config": {
                                "type": "object",
                                "additionalProperties": false
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "category": {
                                        "type": "string",
                                        "enum": [
                                            "trigger"
                                        ]
                                    },
                                    "name": {
                                        "type": "string",
                                        "enum": [
                                            "flowError"
                                        ]
                                    },
                                    "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                    },
                                    "x": {
                                        "type": "number"
                                    },
                                    "y": {
                                        "type": "number"
                                    },
                                    "uiId": {
                                        "type": "string",
                                        "maxLength": 48
                                    },
                                    "description": {
                                        "type": "string",
                                        "maxLength": 32767
                                    },
                                    "icon": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "color": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "inputCount": {
                                        "type": "number"
                                    },
                                    "outputCount": {
                                        "type": "number"
                                    },
                                    "id": {
                                        "type": "string",
                                        "maxLength": 48
                                    }
                                },
                                "additionalProperties": false
                            },
                            "outputIds": {
                                "type": "array",
                                "items": {
                                    "type": "array",
                                    "items": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "maxItems": 100
                                },
                                "maxItems": 100
                            }
                        },
                        "required": [
                            "type"
                        ],
                        "additionalProperties": false
                    },
                    {
                        "type": "object",
                        "properties": {
                            "key": {
                                "type": "string",
                                "maxLength": 1024
                            },
                            "type": {
                                "type": "string",
                                "enum": [
                                    "mqttTopic"
                                ]
                            },
                            "config": {
                                "type": "object",
                                "properties": {
                                    "integrationId": {
                                        "type": "string",
                                        "enum": [
                                            "losant",
                                            "local"
                                        ]
                                    }
                                },
                                "additionalProperties": false
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "category": {
                                        "type": "string",
                                        "enum": [
                                            "trigger"
                                        ]
                                    },
                                    "name": {
                                        "type": "string",
                                        "enum": [
                                            "mqtt"
                                        ]
                                    },
                                    "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                    },
                                    "x": {
                                        "type": "number"
                                    },
                                    "y": {
                                        "type": "number"
                                    },
                                    "uiId": {
                                        "type": "string",
                                        "maxLength": 48
                                    },
                                    "description": {
                                        "type": "string",
                                        "maxLength": 32767
                                    },
                                    "icon": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "color": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "inputCount": {
                                        "type": "number"
                                    },
                                    "outputCount": {
                                        "type": "number"
                                    },
                                    "triggerId": {
                                        "type": "string",
                                        "maxLength": 48
                                    },
                                    "id": {
                                        "type": "string",
                                        "maxLength": 48
                                    }
                                },
                                "additionalProperties": false
                            },
                            "outputIds": {
                                "type": "array",
                                "items": {
                                    "type": "array",
                                    "items": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "maxItems": 100
                                },
                                "maxItems": 100
                            }
                        },
                        "required": [
                            "type"
                        ],
                        "additionalProperties": false
                    },
                    {
                        "type": "object",
                        "properties": {
                            "key": {
                                "type": "string",
                                "maxLength": 1024
                            },
                            "type": {
                                "type": "string",
                                "enum": [
                                    "opcua"
                                ]
                            },
                            "config": {
                                "type": "object",
                                "properties": {
                                    "uri": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "securityPolicy": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "securityMode": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "username": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "password": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "cert": {
                                        "type": "string",
                                        "maxLength": 32767
                                    },
                                    "privateKey": {
                                        "type": "string",
                                        "maxLength": 32767
                                    },
                                    "nameSpace": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "identifier": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "samplingInterval": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "eventFilter": {
                                        "type": "array",
                                        "maxItems": 100,
                                        "items": {
                                            "type": "string",
                                            "maxLength": 255
                                        }
                                    }
                                },
                                "additionalProperties": false
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "category": {
                                        "type": "string",
                                        "enum": [
                                            "trigger"
                                        ]
                                    },
                                    "name": {
                                        "type": "string",
                                        "enum": [
                                            "opcua"
                                        ]
                                    },
                                    "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                    },
                                    "x": {
                                        "type": "number"
                                    },
                                    "y": {
                                        "type": "number"
                                    },
                                    "uiId": {
                                        "type": "string",
                                        "maxLength": 48
                                    },
                                    "description": {
                                        "type": "string",
                                        "maxLength": 32767
                                    },
                                    "icon": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "color": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "inputCount": {
                                        "type": "number"
                                    },
                                    "outputCount": {
                                        "type": "number"
                                    },
                                    "id": {
                                        "type": "string",
                                        "maxLength": 48
                                    }
                                },
                                "additionalProperties": false
                            },
                            "outputIds": {
                                "type": "array",
                                "items": {
                                    "type": "array",
                                    "items": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "maxItems": 100
                                },
                                "maxItems": 100
                            }
                        },
                        "required": [
                            "type"
                        ],
                        "additionalProperties": false
                    },
                    {
                        "type": "object",
                        "properties": {
                            "key": {
                                "type": "string",
                                "maxLength": 1024
                            },
                            "type": {
                                "type": "string",
                                "enum": [
                                    "redis"
                                ]
                            },
                            "config": {
                                "type": "object",
                                "properties": {
                                    "host": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "port": {
                                        "type": "string",
                                        "maxLength": 16
                                    },
                                    "password": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "topic": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "fileAdded": {
                                        "type": "boolean"
                                    },
                                    "fileChanged": {
                                        "type": "boolean"
                                    },
                                    "fileRemoved": {
                                        "type": "boolean"
                                    },
                                    "directoryAdded": {
                                        "type": "boolean"
                                    },
                                    "directoryRemoved": {
                                        "type": "boolean"
                                    }
                                },
                                "additionalProperties": false
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "category": {
                                        "type": "string",
                                        "enum": [
                                            "trigger"
                                        ]
                                    },
                                    "name": {
                                        "type": "string",
                                        "enum": [
                                            "redisTrigger"
                                        ]
                                    },
                                    "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                    },
                                    "x": {
                                        "type": "number"
                                    },
                                    "y": {
                                        "type": "number"
                                    },
                                    "uiId": {
                                        "type": "string",
                                        "maxLength": 48
                                    },
                                    "description": {
                                        "type": "string",
                                        "maxLength": 32767
                                    },
                                    "icon": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "color": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "inputCount": {
                                        "type": "number"
                                    },
                                    "outputCount": {
                                        "type": "number"
                                    },
                                    "id": {
                                        "type": "string",
                                        "maxLength": 48
                                    }
                                },
                                "additionalProperties": false
                            },
                            "outputIds": {
                                "type": "array",
                                "items": {
                                    "type": "array",
                                    "items": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "maxItems": 100
                                },
                                "maxItems": 100
                            }
                        },
                        "required": [
                            "type"
                        ],
                        "additionalProperties": false
                    },
                    {
                        "type": "object",
                        "properties": {
                            "key": {
                                "type": "string",
                                "maxLength": 1024
                            },
                            "type": {
                                "type": "string",
                                "enum": [
                                    "serial"
                                ]
                            },
                            "config": {
                                "type": "object",
                                "properties": {
                                    "path": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "baudRate": {
                                        "type": "number"
                                    },
                                    "encoding": {
                                        "type": "string",
                                        "maxLength": 48
                                    },
                                    "writeOnOpen": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "byteLength": {
                                        "type": "string",
                                        "maxLength": 48
                                    },
                                    "delimiter": {
                                        "type": "string",
                                        "maxLength": 48
                                    }
                                },
                                "additionalProperties": false
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "category": {
                                        "type": "string",
                                        "enum": [
                                            "trigger"
                                        ]
                                    },
                                    "name": {
                                        "type": "string",
                                        "enum": [
                                            "serial"
                                        ]
                                    },
                                    "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                    },
                                    "x": {
                                        "type": "number"
                                    },
                                    "y": {
                                        "type": "number"
                                    },
                                    "uiId": {
                                        "type": "string",
                                        "maxLength": 48
                                    },
                                    "description": {
                                        "type": "string",
                                        "maxLength": 32767
                                    },
                                    "icon": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "color": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "inputCount": {
                                        "type": "number"
                                    },
                                    "outputCount": {
                                        "type": "number"
                                    },
                                    "id": {
                                        "type": "string",
                                        "maxLength": 48
                                    },
                                    "parseBy": {
                                        "type": "string",
                                        "enum": [
                                            "byteLength",
                                            "delimiter"
                                        ]
                                    }
                                },
                                "additionalProperties": false
                            },
                            "outputIds": {
                                "type": "array",
                                "items": {
                                    "type": "array",
                                    "items": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "maxItems": 100
                                },
                                "maxItems": 100
                            }
                        },
                        "required": [
                            "type"
                        ],
                        "additionalProperties": false
                    },
                    {
                        "type": "object",
                        "properties": {
                            "key": {
                                "type": "string",
                                "maxLength": 1024
                            },
                            "type": {
                                "type": "string",
                                "enum": [
                                    "timer"
                                ]
                            },
                            "config": {
                                "type": "object",
                                "properties": {
                                    "seconds": {
                                        "type": "number"
                                    },
                                    "cron": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "tz": {
                                        "type": "string",
                                        "maxLength": 255
                                    }
                                },
                                "additionalProperties": false
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "category": {
                                        "type": "string",
                                        "enum": [
                                            "trigger"
                                        ]
                                    },
                                    "name": {
                                        "type": "string",
                                        "enum": [
                                            "timer"
                                        ]
                                    },
                                    "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                    },
                                    "x": {
                                        "type": "number"
                                    },
                                    "y": {
                                        "type": "number"
                                    },
                                    "uiId": {
                                        "type": "string",
                                        "maxLength": 48
                                    },
                                    "description": {
                                        "type": "string",
                                        "maxLength": 32767
                                    },
                                    "icon": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "color": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "inputCount": {
                                        "type": "number"
                                    },
                                    "outputCount": {
                                        "type": "number"
                                    },
                                    "id": {
                                        "type": "string",
                                        "maxLength": 48
                                    },
                                    "timerTypeSelect": {
                                        "type": "string",
                                        "enum": [
                                            "cronWeekly",
                                            "seconds",
                                            "cron"
                                        ]
                                    },
                                    "timeAt": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "timezone": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "weekdays": {
                                        "type": "array",
                                        "maxItems": 7,
                                        "items": {
                                            "type": "number"
                                        }
                                    }
                                },
                                "additionalProperties": false
                            },
                            "outputIds": {
                                "type": "array",
                                "items": {
                                    "type": "array",
                                    "items": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "maxItems": 100
                                },
                                "maxItems": 100
                            }
                        },
                        "required": [
                            "type"
                        ],
                        "additionalProperties": false
                    },
                    {
                        "type": "object",
                        "properties": {
                            "key": {
                                "type": "string",
                                "maxLength": 1024
                            },
                            "type": {
                                "type": "string",
                                "enum": [
                                    "virtualButton"
                                ]
                            },
                            "config": {
                                "type": "object",
                                "additionalProperties": false
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "category": {
                                        "type": "string",
                                        "enum": [
                                            "trigger"
                                        ]
                                    },
                                    "name": {
                                        "type": "string",
                                        "enum": [
                                            "virtualButton"
                                        ]
                                    },
                                    "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                    },
                                    "x": {
                                        "type": "number"
                                    },
                                    "y": {
                                        "type": "number"
                                    },
                                    "uiId": {
                                        "type": "string",
                                        "maxLength": 48
                                    },
                                    "groupId": {
                                        "type": "string",
                                        "maxLength": 48
                                    },
                                    "description": {
                                        "type": "string",
                                        "maxLength": 32767
                                    },
                                    "icon": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "color": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "inputCount": {
                                        "type": "number"
                                    },
                                    "outputCount": {
                                        "type": "number"
                                    },
                                    "id": {
                                        "type": "string",
                                        "maxLength": 48
                                    },
                                    "payload": {
                                        "type": "string",
                                        "maxLength": 262144
                                    },
                                    "deviceId": {
                                        "oneOf": [
                                            {
                                                "type": "string",
                                                "pattern": "^[A-Fa-f\\d]{24}$"
                                            },
                                            {
                                                "type": "string",
                                                "enum": [
                                                    ""
                                                ]
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    }
                                },
                                "additionalProperties": false
                            },
                            "outputIds": {
                                "type": "array",
                                "items": {
                                    "type": "array",
                                    "items": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "maxItems": 100
                                },
                                "maxItems": 100
                            }
                        },
                        "required": [
                            "type"
                        ],
                        "additionalProperties": false
                    }
                ]
            }
        },
        "nodes": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "maxLength": 1024
                    },
                    "type": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 1024
                    },
                    "config": {
                        "type": "object"
                    },
                    "meta": {
                        "type": "object"
                    },
                    "outputIds": {
                        "type": "array",
                        "items": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "maxLength": 255
                            },
                            "maxItems": 100
                        },
                        "maxItems": 100
                    }
                },
                "additionalProperties": false,
                "required": [
                    "type"
                ]
            }
        },
        "globals": {
            "type": "array",
            "maxItems": 100,
            "items": {
                "type": "object",
                "properties": {
                    "key": {
                        "type": "string",
                        "pattern": "^[0-9a-zA-Z_-]{1,255}$"
                    },
                    "json": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 32767
                    }
                },
                "additionalProperties": false,
                "required": [
                    "key",
                    "json"
                ]
            }
        },
        "minimumAgentVersion": {
            "type": "string",
            "pattern": "^(0|([1-9]\\d*))\\.(0|([1-9]\\d*))\\.(0|([1-9]\\d*))$"
        },
        "customNodeConfig": {
            "type": "object",
            "properties": {
                "outputCount": {
                    "type": "number",
                    "enum": [
                        1,
                        2
                    ]
                },
                "resultMode": {
                    "type": "string",
                    "enum": [
                        "optional",
                        "required",
                        "none"
                    ]
                },
                "resultDescription": {
                    "type": "string",
                    "maxLength": 32767
                },
                "fields": {
                    "type": "array",
                    "maxItems": 100,
                    "items": {
                        "oneOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "type": {
                                        "type": "string",
                                        "enum": [
                                            "checkbox"
                                        ]
                                    },
                                    "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024
                                    },
                                    "id": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024
                                    },
                                    "description": {
                                        "type": "string",
                                        "maxLength": 32767
                                    },
                                    "defaultValue": {
                                        "type": "boolean"
                                    }
                                },
                                "additionalProperties": false,
                                "required": [
                                    "type",
                                    "label"
                                ]
                            },
                            {
                                "type": "object",
                                "properties": {
                                    "type": {
                                        "type": "string",
                                        "enum": [
                                            "select"
                                        ]
                                    },
                                    "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024
                                    },
                                    "id": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024
                                    },
                                    "description": {
                                        "type": "string",
                                        "maxLength": 32767
                                    },
                                    "defaultValue": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024
                                    },
                                    "options": {
                                        "type": "array",
                                        "minItems": 1,
                                        "maxItems": 100,
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "label": {
                                                    "type": "string",
                                                    "maxLength": 1024
                                                },
                                                "value": {
                                                    "type": "string",
                                                    "minLength": 1,
                                                    "maxLength": 1024
                                                }
                                            },
                                            "additionalProperties": false,
                                            "required": [
                                                "value"
                                            ]
                                        }
                                    }
                                },
                                "additionalProperties": false,
                                "required": [
                                    "type",
                                    "label",
                                    "defaultValue",
                                    "options"
                                ]
                            },
                            {
                                "type": "object",
                                "properties": {
                                    "type": {
                                        "type": "string",
                                        "enum": [
                                            "stringTemplate"
                                        ]
                                    },
                                    "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024
                                    },
                                    "id": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024
                                    },
                                    "description": {
                                        "type": "string",
                                        "maxLength": 32767
                                    },
                                    "defaultValue": {
                                        "type": "string",
                                        "maxLength": 1024
                                    },
                                    "required": {
                                        "type": "boolean"
                                    },
                                    "validRegExp": {
                                        "type": "string",
                                        "maxLength": 1024
                                    }
                                },
                                "additionalProperties": false,
                                "required": [
                                    "type",
                                    "label"
                                ]
                            },
                            {
                                "type": "object",
                                "properties": {
                                    "type": {
                                        "type": "string",
                                        "enum": [
                                            "numberTemplate"
                                        ]
                                    },
                                    "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024
                                    },
                                    "id": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024
                                    },
                                    "description": {
                                        "type": "string",
                                        "maxLength": 32767
                                    },
                                    "defaultValue": {
                                        "type": "number"
                                    },
                                    "required": {
                                        "type": "boolean"
                                    },
                                    "validMin": {
                                        "type": "number"
                                    },
                                    "validMax": {
                                        "type": "number"
                                    }
                                },
                                "additionalProperties": false,
                                "required": [
                                    "type",
                                    "label"
                                ]
                            },
                            {
                                "type": "object",
                                "properties": {
                                    "type": {
                                        "type": "string",
                                        "enum": [
                                            "jsonTemplate"
                                        ]
                                    },
                                    "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024
                                    },
                                    "id": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024
                                    },
                                    "description": {
                                        "type": "string",
                                        "maxLength": 32767
                                    },
                                    "defaultValue": {
                                        "type": "string",
                                        "maxLength": 32767
                                    },
                                    "required": {
                                        "type": "boolean"
                                    }
                                },
                                "additionalProperties": false,
                                "required": [
                                    "type",
                                    "label"
                                ]
                            },
                            {
                                "type": "object",
                                "properties": {
                                    "type": {
                                        "type": "string",
                                        "enum": [
                                            "payloadPath"
                                        ]
                                    },
                                    "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024
                                    },
                                    "id": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024
                                    },
                                    "description": {
                                        "type": "string",
                                        "maxLength": 32767
                                    },
                                    "required": {
                                        "type": "boolean"
                                    }
                                },
                                "additionalProperties": false,
                                "required": [
                                    "type",
                                    "label"
                                ]
                            },
                            {
                                "type": "object",
                                "properties": {
                                    "type": {
                                        "type": "string",
                                        "enum": [
                                            "section"
                                        ]
                                    },
                                    "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024
                                    },
                                    "id": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024
                                    },
                                    "description": {
                                        "type": "string",
                                        "maxLength": 32767
                                    }
                                },
                                "additionalProperties": false,
                                "required": [
                                    "type",
                                    "label"
                                ]
                            }
                        ]
                    }
                }
            },
            "additionalProperties": false,
            "required": [
                "outputCount",
                "resultMode",
                "fields"
            ]
        }
    },
    "additionalProperties": false
}