[
{
"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"}
}
}
]
}
]
}
]