• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1{
2    "$schema": "https://json-schema.org/draft/2020-12/schema",
3    "$id": "https://json-schema.org/draft/2020-12/meta/validation",
4    "$vocabulary": {
5        "https://json-schema.org/draft/2020-12/vocab/validation": true
6    },
7    "$dynamicAnchor": "meta",
8
9    "title": "Validation vocabulary meta-schema",
10    "type": ["object", "boolean"],
11    "properties": {
12        "type": {
13            "anyOf": [
14                { "$ref": "#/$defs/simpleTypes" },
15                {
16                    "type": "array",
17                    "items": { "$ref": "#/$defs/simpleTypes" },
18                    "minItems": 1,
19                    "uniqueItems": true
20                }
21            ]
22        },
23        "const": true,
24        "enum": {
25            "type": "array",
26            "items": true
27        },
28        "multipleOf": {
29            "type": "number",
30            "exclusiveMinimum": 0
31        },
32        "maximum": {
33            "type": "number"
34        },
35        "exclusiveMaximum": {
36            "type": "number"
37        },
38        "minimum": {
39            "type": "number"
40        },
41        "exclusiveMinimum": {
42            "type": "number"
43        },
44        "maxLength": { "$ref": "#/$defs/nonNegativeInteger" },
45        "minLength": { "$ref": "#/$defs/nonNegativeIntegerDefault0" },
46        "pattern": {
47            "type": "string",
48            "format": "regex"
49        },
50        "maxItems": { "$ref": "#/$defs/nonNegativeInteger" },
51        "minItems": { "$ref": "#/$defs/nonNegativeIntegerDefault0" },
52        "uniqueItems": {
53            "type": "boolean",
54            "default": false
55        },
56        "maxContains": { "$ref": "#/$defs/nonNegativeInteger" },
57        "minContains": {
58            "$ref": "#/$defs/nonNegativeInteger",
59            "default": 1
60        },
61        "maxProperties": { "$ref": "#/$defs/nonNegativeInteger" },
62        "minProperties": { "$ref": "#/$defs/nonNegativeIntegerDefault0" },
63        "required": { "$ref": "#/$defs/stringArray" },
64        "dependentRequired": {
65            "type": "object",
66            "additionalProperties": {
67                "$ref": "#/$defs/stringArray"
68            }
69        }
70    },
71    "$defs": {
72        "nonNegativeInteger": {
73            "type": "integer",
74            "minimum": 0
75        },
76        "nonNegativeIntegerDefault0": {
77            "$ref": "#/$defs/nonNegativeInteger",
78            "default": 0
79        },
80        "simpleTypes": {
81            "enum": [
82                "array",
83                "boolean",
84                "integer",
85                "null",
86                "number",
87                "object",
88                "string"
89            ]
90        },
91        "stringArray": {
92            "type": "array",
93            "items": { "type": "string" },
94            "uniqueItems": true,
95            "default": []
96        }
97    }
98}
99