[ { "namespace": "error_generation", "description": "Generates ALL the errors.", "compiler_options": { "generate_error_messages": true }, "types": [ { "id": "TestType", "type": "object", "properties": { "string": { "type": "string", "description": "Some string." } } }, { "id": "OptionalTestType", "type": "object", "properties": { "string": { "type": "string", "description": "Some string.", "optional": true } } }, { "id": "ChoiceType", "type": "object", "properties": { "integers": { "choices": [ {"type": "array", "items": {"type": "integer", "minimum": 0}}, {"type": "integer"} ] } } }, { "id": "OptionalChoiceType", "type": "object", "properties": { "integers": { "choices": [ {"type": "array", "items": {"type": "integer", "minimum": 0}}, {"type": "integer"} ], "optional": true } } }, { "id": "ObjectType", "type": "object", "properties": { "otherType": { "$ref": "error_generation.TestType", "optional": true } } }, { "id": "Enumeration", "type": "string", "enum": ["one", "two", "three"] }, { "id": "HasEnumeration", "type": "object", "properties": { "enumeration": { "$ref": "Enumeration" } } }, { "id": "BinaryData", "type": "object", "properties": { "data": { "type" : "binary" } } }, { "id": "OptionalBinaryData", "type": "object", "properties": { "data": { "type" : "binary", "optional": true } } }, { "id": "ArrayObject", "type": "object", "properties": { "TheArray": { "type": "array", "items": {"type": "string"}, "optional": true, "description": "Expecting a list?" } } } ], "functions": [ { "name": "testString", "type": "function", "description": "Takes a string. Or not.", "parameters": [ { "name": "str", "type": "string", "optional": true } ] }, { "name": "testFunction", "type": "function", "description": "Specifies a number of parameters.", "parameters": [ { "name": "num", "type": "integer" } ] }, { "name": "testTypeInObject", "type": "function", "description": "Takes a TestType.", "parameters": [ { "name": "paramObject", "type": "object", "properties": { "testType": {"$ref": "error_generation.TestType", "optional": true}, "boolean": {"type": "boolean"} } } ] } ] } ]