2.json 2.72 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "Toolchain v2 descriptor",
  "description": "This schema defines the properties of a toolchain",

  "type": "object",

  "properties": {
    "description": { "$ref": "../common/1.json#/definitions/description" },

    "datasets" : {
      "$ref": "common.json#/definitions/datasets"
    },

    "blocks": {
      "$ref": "common.json#/definitions/blocks"
    },

    "loops": {
      "type": "array",
      "uniqueItems": true,
      "items": { "$ref": "#/definitions/loop" }
    },

    "analyzers" : {
      "$ref": "common.json#/definitions/analyzers"
    },

    "connections" : {
      "$ref": "common.json#/definitions/connections"
    },

    "representation": {

      "type": "object",

      "properties": {

        "connections": {
          "$ref": "common.json#/definitions/representation/connection_list"
        },
        "blocks": {
          "$ref": "common.json#/definitions/representation/block_list"
        },
        "channel_colors": {
          "$ref": "common.json#/definitions/representation/channel_colors"
        }

      },

      "required": [
        "connections",
        "blocks",
        "channel_colors"
      ],

      "additionalProperties": false

    },

    "schema_version": { "$ref": "../common/1.json#/definitions/version" }

  },

  "required": [
    "datasets",
    "blocks",
68
    "loops",
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
    "analyzers",
    "connections",
    "representation"
  ],

  "additionalProperties": false,

  "definitions": {

    "loop": {
      "type": "object",
      "properties": {
        "name": { "$ref": "common.json#/definitions/identifier" },
        "synchronized_channel": {
          "$ref": "../database/1.json#/definitions/identifier"
        },
85
        "processor_inputs": {
86 87 88 89
          "type": "array",
          "minItems": 1,
          "uniqueItems": true,
          "items": { "$ref": "common.json#/definitions/identifier" }
90
        },
91
        "processor_outputs": {
92 93 94 95 96
          "type": "array",
          "minItems": 1,
          "uniqueItems": true,
          "items": { "$ref": "common.json#/definitions/identifier" }
        },
97
        "evaluator_inputs": {
98 99 100 101 102
          "type": "array",
          "minItems": 1,
          "uniqueItems": true,
          "items": { "$ref": "common.json#/definitions/identifier" }
        },
103
        "evaluator_outputs": {
104 105 106 107
          "type": "array",
          "minItems": 1,
          "uniqueItems": true,
          "items": { "$ref": "common.json#/definitions/identifier" }
108 109
        }
      },
110 111 112
      "required": [
        "name",
        "synchronized_channel",
113 114
        "processor_inputs",
        "processor_outputs",
115 116
        "evaluator_inputs",
        "evaluator_outputs"
117
      ],
118 119 120 121 122 123
      "additionalProperties": false
    }

  }

}