{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "External", "anyOf": [ { "type": "string", "enum": [ "unitOne", "unitTwo" ] }, { "type": "object", "required": [ "stringMap" ], "properties": { "stringMap": { "type": "object", "additionalProperties": { "type": "string" } } } }, { "type": "object", "required": [ "unitStructNewType" ], "properties": { "unitStructNewType": { "$ref": "#/definitions/UnitStruct" } } }, { "type": "object", "required": [ "structNewType" ], "properties": { "structNewType": { "$ref": "#/definitions/Struct" } } }, { "type": "object", "required": [ "struct" ], "properties": { "struct": { "type": "object", "required": [ "bar", "foo" ], "properties": { "foo": { "type": "integer", "format": "int32" }, "bar": { "type": "boolean" } } } } }, { "type": "object", "required": [ "tuple" ], "properties": { "tuple": { "type": "array", "items": [ { "type": "integer", "format": "int32" }, { "type": "boolean" } ], "maxItems": 2, "minItems": 2 } } }, { "type": "object", "required": [ "withInt" ], "properties": { "withInt": { "type": "integer", "format": "int32" } } } ], "definitions": { "UnitStruct": { "type": "null" }, "Struct": { "type": "object", "required": [ "bar", "foo" ], "properties": { "foo": { "type": "integer", "format": "int32" }, "bar": { "type": "boolean" } } } } }