{ "$id": "formStruct", "type": "object", "properties": { "nodeId": { "$ref": "#/definitions/nodeId" }, "type": { "type": "string" }, "items": { "type": "array", "items": { "anyOf": [ { "$ref": "#/definitions/container" }, { "$ref": "#/definitions/checkboxField" }, { "$ref": "#/definitions/numberField" }, { "$ref": "#/definitions/textField" }, { "$ref": "#/definitions/textareaField" }, { "$ref": "#/definitions/dropdownField" }, { "$ref": "#/definitions/fileUploadField" } ] } } }, "required": [ "type", "items" ], "additionalProperties": false, "definitions": { "nodeId": { "type": "string", "examples": [ "kdWO-g4oS3GkzrbqDqCZUw" ] }, "container": { "type": "object", "properties": { "nodeId": { "$ref": "#/definitions/nodeId" }, "type": { "type": "string" }, "title": { "type": "string", "examples": [ "Connection Information" ] }, "required": { "anyOf": [ { "type": "boolean" }, { "type": "array" } ] }, "options": { "type": "object" }, "description": { "type": "string", "examples": [ "This section describes the connection information for a device." ] }, "helper": { "type": "string", "examples": [ "Tooltip help message goes here" ] }, "items": { "type": "array", "items": { "anyOf": [ { "$ref": "#/definitions/container" }, { "$ref": "#/definitions/checkboxField" }, { "$ref": "#/definitions/numberField" }, { "$ref": "#/definitions/textField" }, { "$ref": "#/definitions/textareaField" }, { "$ref": "#/definitions/dropdownField" }, { "$ref": "#/definitions/fileUploadField" } ] } }, "collapsed": { "type": "boolean" }, "readOnly": { "type": "boolean" }, "schemaOption": { "type": "boolean" }, "combinationType": { "type": "string" }, "widget": { "type": "string" }, "uniqueItems": { "type": "boolean" }, "minItems": { "type": "number" }, "maxItems": { "type": "number" }, "customKey": { "anyOf": [ { "type": "string" }, { "type": "boolean" } ] } }, "required": [ "nodeId", "type", "title", "items" ], "additionalProperties": false }, "checkboxField": { "type": "object", "properties": { "nodeId": { "$ref": "#/definitions/nodeId" }, "customKey": { "anyOf": [ { "type": "string" }, { "type": "boolean" } ] }, "type": { "type": "string", "const": "boolean" }, "required": { "type": "boolean" }, "options": { "type": "object" }, "title": { "type": "string", "examples": [ "Allow timeout" ] }, "description": { "type": "string", "examples": [ "Is a timeout allowed to pass this step?" ] }, "helper": { "type": "string", "examples": [ "Tooltip help message goes here" ] }, "default": { "type": "boolean", "examples": [ false ] }, "enum": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "value": { "type": "boolean" } } } }, "readOnly": { "type": "boolean" }, "widget": { "type": "string" } }, "required": [ "nodeId", "type", "title", "description" ], "additionalProperties": false }, "numberField": { "type": "object", "properties": { "customKey": { "anyOf": [ { "type": "string" }, { "type": "boolean" } ] }, "nodeId": { "$ref": "#/definitions/nodeId" }, "type": { "type": "string", "const": "number" }, "widget": { "type": "string" }, "options": { "type": "object" }, "title": { "type": "string", "examples": [ "Retry attempts" ] }, "description": { "type": "string", "examples": [ "The number of connection retries before timing out." ] }, "helper": { "type": "string", "examples": [ "Tooltip help message goes here" ] }, "placeholder": { "type": "string", "examples": [ "Enter connection retry attempt count" ] }, "required": { "type": "boolean" }, "validation": { "type": "object" }, "readOnly": { "type": "boolean" }, "minimum": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "maximum": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "default": { "type": "number" }, "disabled": { "type": "boolean" } }, "required": [ "nodeId", "type", "title", "description", "placeholder", "required" ], "additionalProperties": false }, "textField": { "type": "object", "properties": { "nodeId": { "$ref": "#/definitions/nodeId" }, "type": { "type": "string", "const": "string" }, "customKey": { "anyOf": [ { "type": "string" }, { "type": "boolean" } ] }, "title": { "type": "string", "examples": [ "Device Name" ] }, "options": { "type": "object" }, "description": { "type": "string", "examples": [ "A unique name of the target device." ] }, "helper": { "type": "string", "examples": [ "Tooltip help message goes here" ] }, "placeholder": { "type": "string", "examples": [ "Enter the device's name" ] }, "required": { "type": "boolean" }, "pattern": { "type": "string", "examples": [ "regex" ] }, "validation": { "type": "object" }, "readOnly": { "type": "boolean" }, "binding": { "type": "boolean" }, "rel": { "type": "string" }, "targetPointer": { "type": "string" }, "format": { "type": "string" }, "minLength": { "type": "integer" }, "maxLength": { "type": "integer" }, "default": { "type": "string" }, "disabled": { "type": "boolean" } }, "required": [ "nodeId", "type", "title", "description", "placeholder", "required" ], "additionalProperties": false }, "textareaField": { "type": "object", "properties": { "customKey": { "anyOf": [ { "type": "string" }, { "type": "boolean" } ] }, "nodeId": { "$ref": "#/definitions/nodeId" }, "type": { "type": "string", "const": "string" }, "widget": { "type": "string" }, "title": { "type": "string", "examples": [ "Device Name" ] }, "options": { "type": "object" }, "description": { "type": "string", "examples": [ "A unique name of the target device." ] }, "helper": { "type": "string", "examples": [ "Tooltip help message goes here" ] }, "placeholder": { "type": "string", "examples": [ "Enter the device's name" ] }, "required": { "type": "boolean" }, "pattern": { "type": "string", "examples": [ "regex" ] }, "validation": { "type": "object" }, "readOnly": { "type": "boolean" }, "format": { "type": "string" }, "minLength": { "type": "integer" }, "maxLength": { "type": "integer" }, "default": { "type": "string" }, "disabled": { "type": "boolean" } }, "required": [ "nodeId", "type", "title", "description", "placeholder", "required" ], "additionalProperties": false }, "dropdownField": { "type": "object", "properties": { "nodeId": { "$ref": "#/definitions/nodeId" }, "type": { "type": "string" }, "customKey": { "anyOf": [ { "type": "string" }, { "type": "boolean" } ] }, "title": { "type": "string", "examples": [ "Device Name" ] }, "options": { "type": "object" }, "description": { "type": "string", "examples": [ "A unique name of the target device." ] }, "helper": { "type": "string", "examples": [ "Tooltip help message goes here" ] }, "placeholder": { "type": "string", "examples": [ "Enter the device's name" ] }, "required": { "type": "boolean" }, "enum": { "type": "array", "default": [] }, "enumNames": { "type": "array", "default": [] }, "binding": { "type": "boolean", "default": false }, "pattern": { "type": "string", "examples": [ "regex" ] }, "rel": { "type": "string" }, "targetPointer": { "type": "string" }, "method": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "examples": [ "GET" ] }, "body": { "type": "object" }, "sourcePointer": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "examples": [ "/" ] }, "sourceKeyPointer": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "examples": [ "/name" ] }, "labelKeyPointer": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "examples": [ "/name" ] }, "base": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "examples": [ "http://www.google.com/" ] }, "href": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "examples": [ "api/v1/devices" ] }, "validation": { "type": "object" }, "readOnly": { "type": "boolean" }, "transformation": { "anyOf": [ { "type": "string" }, { "type": "null" }, { "type": "object" } ] }, "disabled": { "type": "boolean" }, "default": { "anyOf": [ { "type": "string" }, { "type": "array" } ] }, "widget": { "type": "string" }, "radio": { "type": "boolean" }, "inline": { "type": "boolean" } }, "required": [ "nodeId", "type", "title", "description", "required" ] }, "fileUploadField": { "type": "object", "properties": { "nodeId": { "$ref": "#/definitions/nodeId" }, "type": { "type": "string", "const": "string" }, "title": { "type": "string", "examples": [ "File Upload" ] }, "description": { "type": "string", "examples": [ "Upload a file" ] }, "helper": { "type": "string", "examples": [ "Tooltip help message goes here" ] }, "required": { "type": "boolean" }, "format": { "type": "string", "const": "data-url" }, "customKey": { "anyOf": [ { "type": "string" }, { "type": "boolean" } ] } }, "required": [ "nodeId", "type", "title", "description" ], "additionalProperties": false } } }