{ "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 1024 }, "description": { "type": "string", "maxLength": 32767 }, "inputs": { "type": "array", "items": { "maxItems": 100, "oneOf": [ { "type": "object", "properties": { "inputType": { "type": "string", "enum": [ "deviceData" ] }, "fileName": { "oneOf": [ { "type": "string", "pattern": "^(?!\\.{1,2}$)[0-9a-zA-Z_.-]{1,255}$" }, { "type": "string", "minLength": 4, "maxLength": 255, "pattern": ".*{{.+}}.*" } ] }, "deviceTags": { "type": "array", "maxItems": 100, "items": { "type": "object", "properties": { "key": { "oneOf": [ { "type": "string", "pattern": "^[0-9a-zA-Z_-]{1,255}$" }, { "type": "string", "minLength": 4, "maxLength": 255, "pattern": ".*{{.+}}.*" } ] }, "value": { "type": "string", "minLength": 1, "maxLength": 255 } }, "additionalProperties": false } }, "deviceIds": { "type": "array", "maxItems": 100, "items": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "string", "minLength": 4, "maxLength": 255, "pattern": ".*{{.+}}.*" } ] } }, "queryJson": { "type": "string", "maxLength": 8192 }, "attributes": { "type": "array", "maxItems": 100, "items": { "type": "string", "pattern": "^[0-9a-zA-Z_-]{1,255}$" } }, "start": { "type": "number" }, "end": { "type": "number" } }, "required": [ "inputType", "fileName", "start", "end" ], "additionalProperties": false }, { "type": "object", "properties": { "inputType": { "type": "string", "enum": [ "deviceMetadata" ] }, "fileName": { "oneOf": [ { "type": "string", "pattern": "^(?!\\.{1,2}$)[0-9a-zA-Z_.-]{1,255}$" }, { "type": "string", "minLength": 4, "maxLength": 255, "pattern": ".*{{.+}}.*" } ] }, "deviceTags": { "type": "array", "maxItems": 100, "items": { "type": "object", "properties": { "key": { "oneOf": [ { "type": "string", "pattern": "^[0-9a-zA-Z_-]{1,255}$" }, { "type": "string", "minLength": 4, "maxLength": 255, "pattern": ".*{{.+}}.*" } ] }, "value": { "type": "string", "minLength": 1, "maxLength": 255 } }, "additionalProperties": false } }, "deviceIds": { "type": "array", "maxItems": 100, "items": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "string", "minLength": 4, "maxLength": 255, "pattern": ".*{{.+}}.*" } ] } }, "queryJson": { "type": "string", "maxLength": 8192 } }, "required": [ "inputType", "fileName" ], "additionalProperties": false }, { "type": "object", "properties": { "inputType": { "type": "string", "enum": [ "dataTable" ] }, "fileName": { "oneOf": [ { "type": "string", "pattern": "^(?!\\.{1,2}$)[0-9a-zA-Z_.-]{1,255}$" }, { "type": "string", "minLength": 4, "maxLength": 255, "pattern": ".*{{.+}}.*" } ] }, "dataTableId": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "string", "minLength": 4, "maxLength": 255, "pattern": ".*{{.+}}.*" } ] }, "queryJson": { "type": "string", "maxLength": 8192 } }, "required": [ "inputType", "fileName", "dataTableId" ], "additionalProperties": false }, { "type": "object", "properties": { "inputType": { "type": "string", "enum": [ "eventData" ] }, "fileName": { "oneOf": [ { "type": "string", "pattern": "^(?!\\.{1,2}$)[0-9a-zA-Z_.-]{1,255}$" }, { "type": "string", "minLength": 4, "maxLength": 255, "pattern": ".*{{.+}}.*" } ] }, "queryJson": { "type": "string", "maxLength": 8192 } }, "required": [ "inputType", "fileName" ], "additionalProperties": false }, { "type": "object", "properties": { "inputType": { "type": "string", "enum": [ "externalUrl" ] }, "fileName": { "oneOf": [ { "type": "string", "pattern": "^(?!\\.{1,2}$)[0-9a-zA-Z_.-]{1,255}$" }, { "type": "string", "minLength": 4, "maxLength": 255, "pattern": ".*{{.+}}.*" } ] }, "sourceUrl": { "type": "string", "minLength": 1, "maxLength": 1024 } }, "required": [ "inputType", "fileName", "sourceUrl" ], "additionalProperties": false } ] } }, "outputs": { "type": "array", "items": { "maxItems": 100, "oneOf": [ { "type": "object", "properties": { "outputType": { "type": "string", "enum": [ "dataTable" ] }, "fileName": { "oneOf": [ { "type": "string", "pattern": "^(?!\\.{1,2}$)[0-9a-zA-Z_.-]{1,255}$" }, { "type": "string", "minLength": 4, "maxLength": 255, "pattern": ".*{{.+}}.*" } ] }, "dataTableId": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "string", "minLength": 4, "maxLength": 255, "pattern": ".*{{.+}}.*" } ] }, "createMissingColumns": { "type": "boolean" }, "truncateExistingTable": { "type": "boolean" } }, "required": [ "fileName", "outputType", "dataTableId" ], "additionalProperties": false }, { "type": "object", "properties": { "outputType": { "type": "string", "enum": [ "file" ] }, "fileName": { "oneOf": [ { "type": "string", "pattern": "^(?!\\.{1,2}$)[0-9a-zA-Z_.-]{1,255}$" }, { "type": "string", "minLength": 4, "maxLength": 255, "pattern": ".*{{.+}}.*" } ] }, "destinationDirectoryTemplate": { "type": "string", "minLength": 1, "maxLength": 1024 }, "destinationFileNameTemplate": { "type": "string", "minLength": 1, "maxLength": 1024 } }, "required": [ "fileName", "outputType", "destinationFileNameTemplate" ], "additionalProperties": false }, { "type": "object", "properties": { "outputType": { "type": "string", "enum": [ "directory" ] }, "directoryName": { "oneOf": [ { "type": "string", "pattern": "^(?!\\.{1,2}$)[0-9a-zA-Z_.-]{1,255}$" }, { "type": "string", "minLength": 4, "maxLength": 255, "pattern": ".*{{.+}}.*" } ] }, "destinationDirectoryTemplate": { "type": "string", "minLength": 1, "maxLength": 1024 } }, "required": [ "directoryName", "outputType", "destinationDirectoryTemplate" ], "additionalProperties": false }, { "type": "object", "properties": { "outputType": { "type": "string", "enum": [ "executionResult" ] }, "fileName": { "type": "string", "enum": [ "result.html", "result.pdf", "result.ipynb", "result.error.log", "result.log" ] }, "destinationDirectoryTemplate": { "type": "string", "minLength": 1, "maxLength": 1024 }, "destinationFileNameTemplate": { "type": "string", "minLength": 1, "maxLength": 1024 } }, "required": [ "fileName", "outputType" ], "additionalProperties": false } ] } } }, "additionalProperties": false }