summaryrefslogtreecommitdiff
path: root/json/output-tests/draft-next/output-schema.json
diff options
context:
space:
mode:
Diffstat (limited to 'json/output-tests/draft-next/output-schema.json')
-rw-r--r--json/output-tests/draft-next/output-schema.json95
1 files changed, 95 insertions, 0 deletions
diff --git a/json/output-tests/draft-next/output-schema.json b/json/output-tests/draft-next/output-schema.json
new file mode 100644
index 0000000..26286fa
--- /dev/null
+++ b/json/output-tests/draft-next/output-schema.json
@@ -0,0 +1,95 @@
+{
+ "$schema": "https://json-schema.org/draft/next/schema",
+ "$id": "https://json-schema.org/draft/next/output/schema",
+ "description": "A schema that validates the minimum requirements for validation output",
+
+ "anyOf": [
+ { "$ref": "#/$defs/flag" },
+ { "$ref": "#/$defs/basic" },
+ { "$ref": "#/$defs/hierarchical" }
+ ],
+ "$defs": {
+ "outputUnit":{
+ "properties": {
+ "valid": { "type": "boolean" },
+ "evaluationPath": {
+ "type": "string",
+ "format": "json-pointer"
+ },
+ "schemaLocation": {
+ "type": "string",
+ "format": "uri"
+ },
+ "instanceLocation": {
+ "type": "string",
+ "format": "json-pointer"
+ },
+ "details": {
+ "$ref": "#/$defs/outputUnitArray"
+ },
+ "annotations": {
+ "type": "object",
+ "additionalProperties": true
+ },
+ "droppedAnnotations": {
+ "type": "object",
+ "additionalProperties": true
+ },
+ "errors": {
+ "type": "object",
+ "additionalProperties": { "type": "string" }
+ }
+ },
+ "required": [ "valid", "evaluationPath", "schemaLocation", "instanceLocation" ],
+ "allOf": [
+ {
+ "if": {
+ "anyOf": [
+ {
+ "required": [ "errors" ]
+ },
+ {
+ "required": [ "droppedAnnotations" ]
+ }
+ ]
+ },
+ "then": {
+ "properties": {
+ "valid": { "const": false }
+ }
+ }
+ },
+ {
+ "if": {
+ "required": [ "annotations" ]
+ },
+ "then": {
+ "properties": {
+ "valid": { "const": true }
+ }
+ }
+ }
+ ]
+ },
+ "outputUnitArray": {
+ "type": "array",
+ "items": { "$ref": "#/$defs/outputUnit" }
+ },
+ "flag": {
+ "properties": {
+ "valid": { "type": "boolean" }
+ },
+ "required": [ "valid" ]
+ },
+ "basic": {
+ "properties": {
+ "valid": { "type": "boolean" },
+ "details": {
+ "$ref": "#/$defs/outputUnitArray"
+ }
+ },
+ "required": [ "valid", "details" ]
+ },
+ "hierarchical": { "$ref": "#/$defs/outputUnit" }
+ }
+}