node-blaze
Version:
Bindings to blaze, high-performance C++ JSON Schema validator
143 lines (142 loc) • 3.41 kB
JSON
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"paths": { "$ref": "#/$defs/paths" }
},
"$defs": {
"paths": {
"patternProperties": {
"^/": { "$ref": "#/$defs/path-item" }
}
},
"path-item": {
"properties": {
"get": { "$ref": "#/$defs/operation" },
"post": { "$ref": "#/$defs/operation" },
"delete": { "$ref": "#/$defs/operation" },
"patch": { "$ref": "#/$defs/operation" }
}
},
"operation": {
"properties": {
"parameters": {
"items": {
"$ref": "#/$defs/parameter"
}
},
"responses": {
"$ref": "#/$defs/responses"
}
}
},
"parameter": {
"properties": {
"name": true,
"in": true,
"description": true,
"required": true,
"schema": true
},
"dependentSchemas": {
"schema": {
"allOf": [
{ "$ref": "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-path" },
{ "$ref": "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-query" }
],
"$defs": {
"styles-for-path": {
"if": {
"properties": {
"in": { "const": "path" }
},
"required": [ "in" ]
},
"then": {
"properties": {
"style": true,
"required": true
}
}
},
"styles-for-query": {
"if": {
"properties": {
"in": { "const": "query" }
},
"required": [ "in" ]
},
"then": {
"properties": {
"style": true,
"allowReserved": true
}
}
}
}
}
}
},
"responses": {
"patternProperties": {
"^[1-5](?:[0-9]{2}|XX)$": {
"$ref": "#/$defs/response-or-reference"
}
}
},
"response-or-reference": {
"if": {
"required": [ "$ref" ]
},
"then": { "$ref": "#/$defs/reference" },
"else": { "$ref": "#/$defs/response" }
},
"reference": {
"properties": {
"$ref": true,
"summary": true,
"description": true
}
},
"response": {
"properties": {
"description": true,
"content": { "$ref": "#/$defs/content" }
},
"required": [ "description" ]
},
"content": {
"additionalProperties": { "$ref": "#/$defs/media-type" }
},
"media-type": {
"properties": {
"schema": true
},
"allOf": [
{ "$ref": "#/$defs/examples" }
]
},
"example": {
"properties": {
"summary": true,
"description": true,
"value": true
},
"unevaluatedProperties": false
},
"example-or-reference": {
"if": { "required": [ "$ref" ] },
"then": { "$ref": "#/$defs/reference" },
"else": { "$ref": "#/$defs/example" }
},
"examples": {
"properties": {
"example": true,
"examples": {
"additionalProperties": {
"$ref": "#/$defs/example-or-reference"
}
}
}
}
}
}