Losant · Schema
Losant Flow
Schema for a single Workflow
IoTInternet Of ThingsDevicesEdge ComputeEmbeddedMQTTIndustrial IoTTelemetryWorkflow AutomationVisual Workflow EngineDashboardsTime SeriesConnected ProductsEnterprise
Properties
| Name | Type | Description |
|---|---|---|
| id | object | |
| flowId | object | |
| applicationId | object | |
| creationDate | object | |
| lastUpdated | object | |
| createdById | object | |
| createdByType | object | |
| lastUpdatedById | object | |
| lastUpdatedByType | object | |
| name | object | |
| description | object | |
| shortDescription | object | |
| iconData | object | |
| docsUrl | object | |
| category | string | |
| enabled | boolean | |
| defaultVersionId | object | |
| minimumAgentVersion | object | |
| flowClass | string | |
| triggers | array | |
| nodes | array | |
| customNodeConfig | object | |
| customNodeSupports | array | |
| customNodeUseCount | number | |
| globals | object | |
| deletedInDevelop | boolean | |
| stats | object |
JSON Schema
{
"title": "Losant Flow",
"description": "Schema for a single Workflow",
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/common/objectId"
},
"flowId": {
"$ref": "#/$defs/common/objectId"
},
"applicationId": {
"$ref": "#/$defs/common/objectId"
},
"creationDate": {
"$ref": "#/$defs/common/date"
},
"lastUpdated": {
"$ref": "#/$defs/common/date"
},
"createdById": {
"$ref": "#/$defs/common/objectId"
},
"createdByType": {
"$ref": "#/$defs/common/expSourceType"
},
"lastUpdatedById": {
"$ref": "#/$defs/common/objectId"
},
"lastUpdatedByType": {
"$ref": "#/$defs/common/expSourceType"
},
"name": {
"$ref": "#/$defs/common/name"
},
"description": {
"$ref": "#/$defs/common/description"
},
"shortDescription": {
"$ref": "#/$defs/common/shortString"
},
"iconData": {
"$ref": "#/$defs/common/imageDataUri"
},
"docsUrl": {
"$ref": "#/$defs/common/shortString"
},
"category": {
"type": "string",
"enum": [
"data",
"experience",
"logic",
"output",
"debug"
]
},
"enabled": {
"type": "boolean"
},
"defaultVersionId": {
"$ref": "#/$defs/common/objectId"
},
"minimumAgentVersion": {
"$ref": "#/$defs/common/version"
},
"flowClass": {
"type": "string",
"enum": [
"cloud",
"edge",
"embedded",
"experience",
"customNode"
]
},
"triggers": {
"type": "array",
"items": {
"oneOf": [
{
"$ref": "#/$defs/common/triggers/appFile"
},
{
"$ref": "#/$defs/common/triggers/basic"
},
{
"$ref": "#/$defs/common/triggers/beckhoff"
},
{
"$ref": "#/$defs/common/triggers/dataTable"
},
{
"$ref": "#/$defs/common/triggers/integration"
},
{
"$ref": "#/$defs/common/triggers/deviceIdsTags"
},
{
"$ref": "#/$defs/common/triggers/deviceIdsTagsInactivity"
},
{
"$ref": "#/$defs/common/triggers/direct"
},
{
"$ref": "#/$defs/common/triggers/endpoint"
},
{
"$ref": "#/$defs/common/triggers/event"
},
{
"$ref": "#/$defs/common/triggers/fileTail"
},
{
"$ref": "#/$defs/common/triggers/fileWatch"
},
{
"$ref": "#/$defs/common/triggers/flowError"
},
{
"$ref": "#/$defs/common/triggers/mqttTopic"
},
{
"$ref": "#/$defs/common/triggers/onSync"
},
{
"$ref": "#/$defs/common/triggers/opcua"
},
{
"$ref": "#/$defs/common/triggers/redis"
},
{
"$ref": "#/$defs/common/triggers/request"
},
{
"$ref": "#/$defs/common/triggers/serial"
},
{
"$ref": "#/$defs/common/triggers/snmpTrap"
},
{
"$ref": "#/$defs/common/triggers/timer"
},
{
"$ref": "#/$defs/common/triggers/virtualButton"
}
]
}
},
"nodes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/common/optMedStr"
},
"type": {
"$ref": "#/$defs/common/reqMedStr"
},
"config": {
"type": "object"
},
"meta": {
"type": "object"
},
"outputIds": {
"$ref": "#/$defs/common/outputIds"
}
},
"additionalProperties": false,
"required": [
"type"
]
}
},
"customNodeConfig": {
"type": "object",
"properties": {
"outputCount": {
"type": "number",
"enum": [
1,
2
]
},
"resultMode": {
"type": "string",
"enum": [
"optional",
"required",
"none"
]
},
"resultDescription": {
"$ref": "#/$defs/common/description"
},
"fields": {
"type": "array",
"maxItems": 100,
"items": {
"$ref": "#/$defs/common/customNodeFieldConfig"
}
}
},
"additionalProperties": false,
"required": [
"outputCount",
"resultMode",
"fields"
]
},
"customNodeSupports": {
"type": "array",
"maxItems": 1,
"items": {
"type": "string",
"enum": [
"cloud",
"edge"
]
}
},
"customNodeUseCount": {
"type": "number"
},
"globals": {
"$ref": "#/$defs/common/globals"
},
"deletedInDevelop": {
"type": "boolean"
},
"stats": {
"type": "object",
"properties": {
"runCount": {
"type": "number"
},
"errorCount": {
"type": "number"
},
"byVersion": {
"type": "object",
"patternProperties": {
".*": {
"type": "object",
"properties": {
"runCount": {
"type": "number"
},
"errorCount": {
"type": "number"
}
}
}
}
}
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/losant/main/json-schema/losant-flow-schema.json",
"$defs": {
"event": {
"title": "Event",
"description": "Schema for a single Event",
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/common/objectId"
},
"eventId": {
"$ref": "#/$defs/common/objectId"
},
"applicationId": {
"$ref": "#/$defs/common/objectId"
},
"creationDate": {
"$ref": "#/$defs/common/date"
},
"lastUpdated": {
"$ref": "#/$defs/common/date"
},
"sourceType": {
"$ref": "#/$defs/common/eventSourceType"
},
"sourceId": {
"$ref": "#/$defs/common/objectId"
},
"sourceName": {
"$ref": "#/$defs/common/name"
},
"level": {
"type": "string",
"enum": [
"info",
"warning",
"error",
"critical"
]
},
"state": {
"$ref": "#/$defs/common/eventState"
},
"subject": {
"$ref": "#/$defs/common/name"
},
"message": {
"$ref": "#/$defs/common/description"
},
"data": {},
"deviceId": {
"$ref": "#/$defs/common/objectId"
},
"deviceName": {
"$ref": "#/$defs/common/name"
},
"disableTagChangeTracking": {
"type": "boolean"
},
"eventTags": {
"$ref": "#/$defs/common/objectTags"
},
"updates": {
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {
"sourceType": {
"$ref": "#/$defs/common/eventSourceType"
},
"sourceId": {
"$ref": "#/$defs/common/objectId"
},
"sourceName": {
"$ref": "#/$defs/common/name"
},
"creationDate": {
"$ref": "#/$defs/common/date"
},
"comment": {
"$ref": "#/$defs/common/description"
},
"data": {},
"state": {
"$ref": "#/$defs/common/eventState"
},
"stateChange": {
"type": "object",
"properties": {
"old": {
"$ref": "#/$defs/common/eventState"
},
"new": {
"$ref": "#/$defs/common/eventState"
}
}
},
"levelChange": {
"type": "object",
"properties": {
"old": {
"$ref": "#/$defs/event/properties/level"
},
"new": {
"$ref": "#/$defs/event/properties/level"
}
}
},
"subjectChange": {
"type": "object",
"properties": {
"old": {
"$ref": "#/$defs/event/properties/subject"
},
"new": {
"$ref": "#/$defs/event/properties/subject"
}
}
},
"deviceIdChange": {
"type": "object",
"properties": {
"old": {
"$ref": "#/$defs/event/properties/deviceId"
},
"oldDeviceName": {
"$ref": "#/$defs/common/name"
},
"new": {
"$ref": "#/$defs/event/properties/deviceId"
},
"newDeviceName": {
"$ref": "#/$defs/common/name"
}
}
},
"tagsChange": {
"type": "object",
"patternProperties": {
"^[0-9a-zA-Z_-]{1,255}$": {
"type": "object",
"properties": {
"old": {
"$ref": "#/$defs/common/name"
},
"new": {
"$ref": "#/$defs/common/name"
}
}
}
}
}
}
}
}
}
},
"dataTable": {
"title": "Data Table",
"description": "Schema for a single Data Table",
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/common/objectId"
},
"dataTableId": {
"$ref": "#/$defs/common/objectId"
},
"applicationId": {
"$ref": "#/$defs/common/objectId"
},
"creationDate": {
"$ref": "#/$defs/common/date"
},
"lastUpdated": {
"$ref": "#/$defs/common/date"
},
"name": {
"$ref": "#/$defs/common/name"
},
"description": {
"$ref": "#/$defs/common/description"
},
"columns": {
"type": "array",
"items": {
"$ref": "#/$defs/dataTableColumn"
},
"maxItems": 50
}
}
},
"integration": {
"title": "Integration",
"description": "Schema for a single Integration",
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/common/objectId"
},
"integrationId": {
"$ref": "#/$defs/common/objectId"
},
"applicationId": {
"$ref": "#/$defs/common/objectId"
},
"creationDate": {
"$ref": "#/$defs/common/date"
},
"lastUpdated": {
"$ref": "#/$defs/common/date"
},
"name": {
"$ref": "#/$defs/common/name"
},
"credentialName": {
"$ref": "#/$defs/common/name"
},
"integrationType": {
"type": "string",
"enum": [
"azureEventHub",
"googlePubSub",
"mqtt",
"particle",
"sqs",
"websocket"
]
},
"enabled": {
"type": "boolean"
},
"topics": {
"type": "array",
"items": {
"$ref": "#/$defs/common/reqMedStr"
},
"uniqueItems": true
},
"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": {
"$ref": "#/$defs/common/reqMedStr"
}
},
"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": {
"$ref": "#/$defs/common/reqMedStr"
},
"username": {
"$ref": "#/$defs/common/reqMedStr"
},
"password": {
"$ref": "#/$defs/common/reqMedStr"
},
"clean": {
"type": "boolean"
},
"port": {
"type": "number",
"minimum": 1,
"maximum": 65535
},
"protocol": {
"type": "string",
"enum": [
"mqtt",
"mqtts",
"ws",
"wss"
]
},
"host": {
"$ref": "#/$defs/common/reqMedStr"
},
"privateKey": {
"$ref": "#/$defs/common/certificate"
},
"certificate": {
"$ref": "#/$defs/common/certificate"
},
"caCertificate": {
"$ref": "#/$defs/common/certificate"
},
"disableSSLVerification": {
"type": "boolean"
},
"protocolVersion": {
"type": "string",
"enum": [
"3.1.1",
"5"
]
}
},
"additionalProperties": false,
"required": [
"port",
"protocol",
"host"
]
},
"particleConfig": {
"type": "object",
"properties": {
"accessToken": {
"$ref": "#/$defs/common/reqMedStr"
},
"productSlugOrId": {
"$ref": "#/$defs/common/reqMedStr"
},
"orgSlugOrId": {
"$ref": "#/$defs/common/reqMedStr"
},
"deviceNameOrId": {
"$ref": "#/$defs/common/reqMedStr"
}
},
"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": {
"$ref": "#/$defs/common/reqMedStr"
},
"disableSSLVerification": {
"type": "boolean"
},
"username": {
"$ref": "#/$defs/common/reqMedStr"
},
"password": {
"$ref": "#/$defs/common/reqMedStr"
},
"privateKey": {
"$ref": "#/$defs/common/certificate"
},
"certificate": {
"$ref": "#/$defs/common/certificate"
},
"caCertificate": {
"$ref": "#/$defs/common/certificate"
},
"headers": {
"type": "array",
"maxItems": 50,
"items": {
"type": "object",
"properties": {
"headerKey": {
"$ref": "#/$defs/common/reqMedStr"
},
"headerValue": {
"$ref": "#/$defs/common/reqMedStr"
}
},
"additionalProperties": false,
"required": [
"headerKey",
"headerValue"
]
}
}
},
"additionalProperties": false,
"required": [
"url"
]
},
"status": {
"lastKeepAlive": {
"type": [
"number"
]
},
"nextAttempt": {
"type": [
"number"
]
},
"connectInfo": {
"type": "object",
"properties": {
"ts": {
"type": [
"number",
"null"
]
}
}
},
"disconnectInfo": {
"type": "object",
"properties": {
"ts": {
"type": [
"number",
"null"
]
},
"error": {
"type": "string"
}
}
}
}
}
},
"dataTableColumn": {
"title": "Data Table Column",
"description": "Schema for a single Data Table Column",
"type": "object",
"properties": {
"name": {
"$ref": "#/$defs/common/key"
},
"dataType": {
"type": "string",
"enum": [
"string",
"number",
"boolean"
]
},
"constraint": {
"type": "string",
"enum": [
"unique",
"required",
"optional"
]
},
"defaultValue": {
"type": [
"string",
"number",
"boolean"
]
}
},
"required": [
"name",
"dataType",
"constraint"
],
"additionalProperties": false
}
}
}