{
	"$schema": "http://json-schema.org/draft-07/schema",
	"$id": "https://apidocs.iqrf.org/openapi/iqrf-gateway-webapp/schemas/task.json",
	"type": "object",
	"title": "Task",
	"additionalProperties": false,
	"required": [
		"taskId",
		"clientId",
		"timeSpec",
		"task"
	],
	"properties": {
		"taskId": {
			"$id": "#/properties/taskId",
			"type": "string",
			"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
			"example": "5070cf2c-3d07-415f-a6e3-553d5549917f"
		},
		"clientId": {
			"$id": "#/properties/clientId",
			"type": "string",
			"title": "Scheduler messaging instance",
			"example": "SchedulerMessaging"
		},
		"description": {
			"$id": "#/properties/description",
			"title": "Description",
			"type": "string",
			"example": "Example task"
		},
		"timeSpec": {
			"$id": "#/properties/timeSpec",
			"type": "object",
			"title": "Time specification",
			"additionalProperties": false,
			"required": [
				"cronTime",
				"exactTime",
				"periodic",
				"period",
				"startTime"
			],
			"properties": {
				"cronTime": {
					"$id": "#/properties/timeSpec/cronTime",
					"title": "CRON time expression with seconds and year",
					"oneOf": [
						{
							"type": "array",
							"minItems": 7,
							"maxItems": 7,
							"additionalItems": false,
							"items": {
								"type": "string"
							},
							"example": [
								"0",
								"*/2",
								"*",
								"*",
								"*",
								"*",
								"*"
							]
						},
						{
							"type": "string",
							"example": "0 */2 * * * * *"
						}
					]

				},
				"exactTime": {
					"$id": "#/properties/timeSpec/exactTime",
					"type": "boolean",
					"title": "Exact time task",
					"example": false
				},
				"periodic": {
					"$id": "#/properties/timeSpec/periodic",
					"type": "boolean",
					"title": "Periodic task",
					"example": false
				},
				"period": {
					"$id": "#/properties/timeSpec/periodic",
					"type": "number",
					"title": "Task period",
					"example": 0
				},
				"startTime": {
					"$id": "#/properties/timeSpec/startTime",
					"type": "string",
					"title": "Exact start time",
					"example": "2020-12-31T23:59:59.999999"
				}
			}
		},
		"task": {
			"$id": "#/properties/task",
			"type": "array",
			"title": "Task(s)",
			"items": {
				"$id": "#/properties/task/items",
				"$ref": "#/definitions/task",
				"additionalItems": false
			},
			"example": [
				{
					"messaging": [
						{
							"type": "mqtt",
							"instance": "MqttMessaging"
						}
					],
					"message": {
						"mType": "iqrfEmbedLedr_Pulse",
						"data": {
							"msgId": "testEmbedLedr",
							"req": {
								"nAdr": 2,
								"param": {}
							},
							"returnVerbose": true
						}
					}
				}
			]
		},
		"persist": {
			"$id": "#/properties/persist",
			"title": "Persistent task",
			"type": "boolean"
		},
		"enabled": {
			"$id": "#/properties/enabled",
			"title": "Launch on startup",
			"type": "boolean"
		}
	},
	"definitions": {
		"task": {
			"$id": "#/definitions/task",
			"type": "object",
			"required": [
				"messaging",
				"message"
			],
			"properties": {
				"messaging": {
					"$id": "#/definitions/task/properties/messaging",
					"type": "array",
					"uniqueItems": true,
					"additionalItems": false,
					"items": {
						"$id": "#/definitions/task/properties/messaging/items",
						"type": "object",
						"required": [
							"type",
							"instance"
						],
						"additionalProperties": false,
						"properties": {
							"type": {
								"$id": "#/definitions/task/properties/messaging/items/properties/type",
								"type": "string",
								"enum": ["mqtt", "ws"],
								"example": "mqtt"
							},
							"instance": {
								"$id": "#/definitions/task/properties/messaging/items/properties/instance",
								"type": "string",
								"example": "default"
							}
						}
					}
				},
				"message": {
					"$id": "#/definitions/task/message",
					"$ref": "#/definitions/message"
				}
			},
			"additionalProperties": false
		},
		"message": {
			"$id": "#/definitions/message",
			"oneOf": [
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqmeshNetwork_AutoNetwork-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqmeshNetwork_BondNodeLocal-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqmeshNetwork_DpaHops-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqmeshNetwork_DpaValue-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqmeshNetwork_EnumerateDevice-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqmeshNetwork_FrcParams-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqmeshNetwork_MaintenanceDuplicatedAddresses-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqmeshNetwork_MaintenanceFrcResponseTime-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqmeshNetwork_MaintenanceInconsistentMIDsInCoord-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqmeshNetwork_MaintenanceTestRF-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqmeshNetwork_MaintenanceUselessPrebondedNodes-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqmeshNetwork_Ping-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqmeshNetwork_ReadTrConf-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqmeshNetwork_RemoveBond-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqmeshNetwork_Restart-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqmeshNetwork_Restore-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqmeshNetwork_SmartConnect-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqmeshNetwork_WriteTrConf-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfBinaryoutput_Enumerate-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfBinaryoutput_SetOutput-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfDali_Frc-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfDali_SendCommandsAsync-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfDali_SendCommands-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedCoordinator_AddrInfo-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedCoordinator_AuthorizeBond-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedCoordinator_Backup-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedCoordinator_BondedDevices-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedCoordinator_BondNode-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedCoordinator_ClearAllBonds-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedCoordinator_ClearRemotelyBondedMid-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedCoordinator_DiscoveredDevices-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedCoordinator_DiscoveryData-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedCoordinator_Discovery-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedCoordinator_EnableRemoteBonding-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedCoordinator_ReadRemotelyBondedMid-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedCoordinator_RebondNode-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedCoordinator_RemoveBond-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedCoordinator_Restore-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedCoordinator_SetDpaParams-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedCoordinator_SetHops-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedCoordinator_SetMID-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedCoordinator_SmartConnect-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedEeeprom_Read-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedEeeprom_Write-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedEeprom_Read-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedEeprom_Write-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedExplore_Enumerate-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedExplore_MorePeripheralsInformation-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedExplore_PeripheralInformation-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedFrc_ExtraResult-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedFrc_Send-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedFrc_SendSelective-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedFrc_SetParams-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedIo_Direction-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedIo_Get-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedIo_Set-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedLedg_Flashing-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedLedg_Get-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedLedg_Pulse-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedLedg_SetOff-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedLedg_SetOn-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedLedg_Set-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedLedr_Flashing-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedLedr_Get-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedLedr_Pulse-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedLedr_SetOff-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedLedr_SetOn-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedLedr_Set-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedNode_Backup-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedNode_ClearRemotelyBondedMid-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedNode_EnableRemoteBonding-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedNode_ReadRemotelyBondedMid-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedNode_Read-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedNode_RemoveBond-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedNode_Restore-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedNode_ValidateBonds-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedOs_Batch-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedOs_FactorySettings-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedOs_Indicate-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedOs_LoadCode-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedOs_ReadCfg-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedOs_Read-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedOs_Reset-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedOs_Restart-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedOs_Rfpgm-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedOs_SelectiveBatch-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedOs_SetSecurity-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedOs_Sleep-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedOs_TestRfSignal-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedOs_WriteCfgByte-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedOs_WriteCfg-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedRam_Read-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedRam_Write-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedSpi_WriteRead-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedThermometer_Read-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedUart_ClearWriteRead-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedUart_Close-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedUart_Open-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfEmbedUart_WriteRead-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfLight_FrcLaiRead-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfLight_FrcLdiSend-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfLight_SendLdiCommandsAsync-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfLight_SendLdiCommands-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfLight_SetLai-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfRawHdp-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfRaw-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfSensor_Enumerate-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfSensor_Frc-request-1-0-0.json"
				},
				{
					"$ref": "https://apidocs.iqrf.org/iqrf-gateway-daemon-schemas/api/iqrfSensor_ReadSensorsWithTypes-request-1-0-0.json"
				}
			]
		}
	}
}
