chromium/tools/json_schema_compiler/test/error_generation.json

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