{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 255 }, "enabled": { "type": "boolean" }, "topics": { "type": "array", "items": { "type": "string", "minLength": 1, "maxLength": 1024 }, "uniqueItems": true }, "credentialName": { "oneOf": [ { "type": "string", "minLength": 1, "maxLength": 255 }, { "type": "null" } ] }, "azureEventHubConfig": { "type": "object", "properties": { "hubName": { "type": "string", "maxLength": 256, "minLength": 1 }, "hostName": { "type": "string", "maxLength": 256, "minLength": 1 }, "consumerGroup": { "type": "string", "maxLength": 256, "minLength": 1 }, "connectionString": { "type": "string", "minLength": 1, "maxLength": 1024 } }, "additionalProperties": false, "oneOf": [ { "required": [ "hubName", "consumerGroup", "connectionString" ] }, { "required": [ "hubName", "consumerGroup", "hostName" ] } ] }, "googlePubSubConfig": { "type": "object", "properties": { "projectId": { "type": "string", "maxLength": 255, "minLength": 1 }, "keyJson": { "type": "string", "maxLength": 32767, "minLength": 4 } }, "additionalProperties": false }, "mqttConfig": { "type": "object", "properties": { "clientId": { "type": "string", "minLength": 1, "maxLength": 1024 }, "username": { "type": "string", "minLength": 1, "maxLength": 1024 }, "password": { "type": "string", "minLength": 1, "maxLength": 1024 }, "clean": { "type": "boolean" }, "port": { "type": "number", "minimum": 1, "maximum": 65535 }, "protocol": { "type": "string", "enum": [ "mqtt", "mqtts", "ws", "wss" ] }, "host": { "type": "string", "minLength": 1, "maxLength": 1024 }, "privateKey": { "type": "string", "maxLength": 32767, "minLength": 4 }, "certificate": { "type": "string", "maxLength": 32767, "minLength": 4 }, "caCertificate": { "type": "string", "maxLength": 32767, "minLength": 4 }, "disableSSLVerification": { "type": "boolean" }, "protocolVersion": { "type": "string", "enum": [ "3.1.1", "5" ] } }, "additionalProperties": false, "required": [ "port", "protocol", "host" ] }, "particleConfig": { "type": "object", "properties": { "accessToken": { "type": "string", "minLength": 1, "maxLength": 1024 }, "productSlugOrId": { "type": "string", "minLength": 1, "maxLength": 1024 }, "orgSlugOrId": { "type": "string", "minLength": 1, "maxLength": 1024 }, "deviceNameOrId": { "type": "string", "minLength": 1, "maxLength": 1024 } }, "additionalProperties": false, "required": [ "accessToken" ] }, "sqsConfig": { "type": "object", "properties": { "accessKeyId": { "type": "string", "min": 4, "max": 128 }, "secretAccessKey": { "type": "string", "min": 4, "max": 128 }, "region": { "type": "string", "min": 4, "max": 128 }, "queueUrl": { "type": "string", "min": 1, "max": 256 } }, "additionalProperties": false, "required": [ "queueUrl" ] }, "websocketConfig": { "type": "object", "properties": { "url": { "type": "string", "minLength": 1, "maxLength": 1024 }, "disableSSLVerification": { "type": "boolean" }, "username": { "type": "string", "minLength": 1, "maxLength": 1024 }, "password": { "type": "string", "minLength": 1, "maxLength": 1024 }, "privateKey": { "type": "string", "maxLength": 32767, "minLength": 4 }, "certificate": { "type": "string", "maxLength": 32767, "minLength": 4 }, "caCertificate": { "type": "string", "maxLength": 32767, "minLength": 4 }, "headers": { "type": "array", "maxItems": 50, "items": { "type": "object", "properties": { "headerKey": { "type": "string", "minLength": 1, "maxLength": 1024 }, "headerValue": { "type": "string", "minLength": 1, "maxLength": 1024 } }, "additionalProperties": false, "required": [ "headerKey", "headerValue" ] } } }, "additionalProperties": false, "required": [ "url" ] } }, "additionalProperties": false }