Start to test all json schema and files.
[slapos.git] / slapos / recipe / test / metaschema.json
1 {
2     "id": "http://json-schema.org/draft-04/schema#",
3     "$schema": "http://json-schema.org/draft-04/schema#",
4     "description": "Core schema meta-schema",
5     "definitions": {
6         "schemaArray": {
7             "type": "array",
8             "minItems": 1,
9             "items": { "$ref": "#" }
10         },
11         "positiveInteger": {
12             "type": "integer",
13             "minimum": 0
14         },
15         "positiveIntegerDefault0": {
16             "allOf": [ { "$ref": "#/definitions/positiveInteger" }, { "default": 0 } ]
17         },
18         "simpleTypes": {
19             "enum": [ "array", "boolean", "integer", "null", "number", "object", "string" ]
20         },
21         "stringArray": {
22             "type": "array",
23             "items": { "type": "string" },
24             "minItems": 1,
25             "uniqueItems": true
26         }
27     },
28     "type": "object",
29     "properties": {
30         "id": {
31             "type": "string",
32             "format": "uri"
33         },
34         "$schema": {
35             "type": "string",
36             "format": "uri"
37         },
38         "title": {
39             "type": "string"
40         },
41         "description": {
42             "type": "string"
43         },
44         "default": {},
45         "multipleOf": {
46             "type": "number",
47             "minimum": 0,
48             "exclusiveMinimum": true
49         },
50         "maximum": {
51             "type": "number"
52         },
53         "exclusiveMaximum": {
54             "type": "boolean",
55             "default": false
56         },
57         "minimum": {
58             "type": "number"
59         },
60         "exclusiveMinimum": {
61             "type": "boolean",
62             "default": false
63         },
64         "maxLength": { "$ref": "#/definitions/positiveInteger" },
65         "minLength": { "$ref": "#/definitions/positiveIntegerDefault0" },
66         "pattern": {
67             "type": "string",
68             "format": "regex"
69         },
70         "additionalItems": {
71             "anyOf": [
72                 { "type": "boolean" },
73                 { "$ref": "#" }
74             ],
75             "default": {}
76         },
77         "items": {
78             "anyOf": [
79                 { "$ref": "#" },
80                 { "$ref": "#/definitions/schemaArray" }
81             ],
82             "default": {}
83         },
84         "maxItems": { "$ref": "#/definitions/positiveInteger" },
85         "minItems": { "$ref": "#/definitions/positiveIntegerDefault0" },
86         "uniqueItems": {
87             "type": "boolean",
88             "default": false
89         },
90         "maxProperties": { "$ref": "#/definitions/positiveInteger" },
91         "minProperties": { "$ref": "#/definitions/positiveIntegerDefault0" },
92         "required": { "$ref": "#/definitions/stringArray" },
93         "additionalProperties": {
94             "anyOf": [
95                 { "type": "boolean" },
96                 { "$ref": "#" }
97             ],
98             "default": {}
99         },
100         "definitions": {
101             "type": "object",
102             "additionalProperties": { "$ref": "#" },
103             "default": {}
104         },
105         "properties": {
106             "type": "object",
107             "additionalProperties": { "$ref": "#" },
108             "default": {}
109         },
110         "patternProperties": {
111             "type": "object",
112             "additionalProperties": { "$ref": "#" },
113             "default": {}
114         },
115         "dependencies": {
116             "type": "object",
117             "additionalProperties": {
118                 "anyOf": [
119                     { "$ref": "#" },
120                     { "$ref": "#/definitions/stringArray" }
121                 ]
122             }
123         },
124         "enum": {
125             "type": "array",
126             "minItems": 1,
127             "uniqueItems": true
128         },
129         "type": {
130             "anyOf": [
131                 { "$ref": "#/definitions/simpleTypes" },
132                 {
133                     "type": "array",
134                     "items": { "$ref": "#/definitions/simpleTypes" },
135                     "minItems": 1,
136                     "uniqueItems": true
137                 }
138             ]
139         },
140         "allOf": { "$ref": "#/definitions/schemaArray" },
141         "anyOf": { "$ref": "#/definitions/schemaArray" },
142         "oneOf": { "$ref": "#/definitions/schemaArray" },
143         "not": { "$ref": "#" }
144     },
145     "dependencies": {
146         "exclusiveMaximum": [ "maximum" ],
147         "exclusiveMinimum": [ "minimum" ]
148     },
149     "default": {}
150 }