Start to test all json schema and files.
[slapos.git] / slapos / recipe / test / schema.json
1 {
2   "$schema": "http://json-schema.org/draft-04/schema#",
3   "description": "Slapos Software Release instantiation descriptor",
4   "additionalProperties": false,
5   "properties": {
6     "name": {
7       "description": "A short human-friendly name for the sofware release",
8       "type": "string"
9     },
10     "description": {
11       "description": "A short description of the sofware release",
12       "type": "string"
13     },
14     "serialisation": {
15       "description": "How the parameters and results are serialised",
16       "require": true,
17       "enum": ["xml", "json-in-xml"],
18       "type": "string"
19     },
20     "software-type": {
21       "description": "Existing software types",
22       "require": true,
23       "patternProperties": {
24         ".*": {
25           "description": "Software type declaration",
26           "additionalProperties": false,
27           "properties": {
28             "title": {
29               "description": "A human-friendly title of the software type",
30               "type": "string"
31             },
32             "description": {
33               "description": "A human-friendly description of the software type",
34               "type": "string"
35             },
36             "serialisation": {
37               "description": "How the parameters and results are serialised, if different from global setting",
38               "enum": ["xml", "json-in-xml"],
39               "type": "string"
40             },
41             "request": {
42               "require": true,
43               "description": "URL, relative to Software Release base path, of a json schema for values expected by instance of current software type",
44               "type": "string"
45             },
46             "response": {
47               "require": true,
48               "description": "URL, relative to Software Release base path, of a json schema for values published by instance of current software type",
49               "type": "string"
50             },
51             "index": {
52               "description": "Value to use instead of software type id to sort them (in order to display most relevant software types earlier in a list, for example)",
53               "type": "number"
54             }
55           },
56           "type": "object"
57         }
58       },
59       "type": "object"
60     }
61   },
62   "type": "object"
63 }
64