Commit 6bba7b89 authored by Samuel GAIST's avatar Samuel GAIST
Browse files

[schema][algorithm] Add v3 with support for loop

parent 937d5d21
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Algorithm v3 descriptor",
"description": "This schema defines the properties of a v3 algorithm",
"oneOf": [
{ "$ref": "#/definitions/block" },
{ "$ref": "#/definitions/loop" },
{ "$ref": "#/definitions/analyzer" }
],
"definitions": {
"type": {
"type": "string",
"enum": [
"legacy",
"sequential",
"autonomous",
"loop"
]
},
"io_group": {
"type": "object",
"properties": {
"name": { "type": "string" },
"inputs": { "$ref": "common.json#/definitions/endpoints" },
"outputs": { "$ref": "common.json#/definitions/endpoints" },
"loop": { "$ref": "common.json#/definitions/endpoints" }
},
"required": [
"inputs",
"outputs"
],
"additionalProperties": false
},
"block_groups": {
"type": "array",
"items": [
{ "$ref": "#/definitions/io_group" }
],
"additionalItems": { "$ref": "common.json#/definitions/input_group" },
"minItems": 1
},
"loop_group": {
"type": "object",
"properties": {
"name": { "type": "string" },
"inputs": { "$ref": "common.json#/definitions/endpoints" },
"loop": { "$ref": "common.json#/definitions/endpoints" }
},
"required": [
"inputs",
"loop"
],
"additionalProperties": false
},
"loop_groups": {
"type": "array",
"items": [
{ "$ref": "#/definitions/loop_group" }
],
"additionalItems": { "$ref": "common.json#/definitions/input_group" },
"minItems": 1
},
"block": {
"type": "object",
"properties": {
"language": { "$ref": "../common/1.json#/definitions/language" },
"description": { "$ref": "../common/1.json#/definitions/description" },
"groups": { "$ref": "#/definitions/block_groups" },
"parameters": { "$ref": "common.json#/definitions/parameters" },
"splittable": { "type": "boolean" },
"uses": { "$ref": "../common/1.json#/definitions/uses" },
"schema_version": { "$ref": "common.json#/definitions/schema_version" },
"api_version": { "$ref": "common.json#/definitions/api_version" },
"type": { "$ref": "#/definitions/type" }
},
"required": [
"language",
"groups",
"splittable"
],
"additionalProperties": false
},
"loop": {
"type": "object",
"properties": {
"language": { "$ref": "../common/1.json#/definitions/language" },
"description": { "$ref": "../common/1.json#/definitions/description" },
"groups": { "$ref": "#/definitions/loop_groups" },
"parameters": { "$ref": "common.json#/definitions/parameters" },
"splittable": { "type": "boolean" },
"uses": { "$ref": "../common/1.json#/definitions/uses" },
"schema_version": { "$ref": "common.json#/definitions/schema_version" },
"api_version": { "$ref": "common.json#/definitions/api_version" },
"type": { "$ref": "#/definitions/type" }
},
"required": [
"language",
"groups"
],
"additionalProperties": false
},
"analyzer": {
"type": "object",
"properties": {
"language": { "$ref": "../common/1.json#/definitions/language" },
"description": { "$ref": "../common/1.json#/definitions/description" },
"groups": { "$ref": "common.json#/definitions/analyzer_groups" },
"parameters": { "$ref": "common.json#/definitions/parameters" },
"results": { "$ref": "common.json#/definitions/results" },
"uses": { "$ref": "../common/1.json#/definitions/uses" },
"schema_version": { "$ref": "common.json#/definitions/schema_version" },
"api_version": { "$ref": "common.json#/definitions/api_version" },
"type": { "$ref": "#/definitions/type" }
},
"required": [
"language",
"groups",
"results"
],
"additionalProperties": false
}
},
"required": ["type", "api_version", "schema_version"]
}
\ No newline at end of file
......@@ -3,7 +3,7 @@
"title": "Algorithm common components descriptor",
"description": "This schema defines the components used in one or more versions of the Algorithm",
"definitions": {
"definitions": {
"endpoints": {
"type": "object",
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment