{
  "$schema": "http://iglucentral.com/schemas/com.snowplowanalytics.self-desc/schema/jsonschema/1-0-0#",
  "description": "Schema for an application error",
  "self": {
    "vendor": "com.snowplowanalytics.snowplow",
    "name": "application_error",
    "format": "jsonschema",
    "version": "1-0-1"
  },

  "type": "object",
  "properties": {
    "programmingLanguage": {
      "enum": [
        "JAVA",
        "SCALA",
        "KOTLIN",
        "GROOVY",
        "RUBY",
        "GOLANG",
        "JAVASCRIPT",
        "PHP",
        "PYTHON",
        "OBJECTIVEC",
        "SWIFT",
        "C",
        "CPLUSPLUS",
        "CSHARP",
        "ACTIONSCRIPT",
        "LUA",
        "RUST",
        "HASKELL",
        "CLOJURE",
        "ERLANG",
        "ELIXIR",
        "CRYSTAL",
        "PONY",
        "NIM"
      ]
    },
    "message": {
      "type": "string",
      "maxLength": 2048
    },
    "threadName": {
      "type": ["string", "null"],
      "maxLength": 1024
    },
    "threadId": {
      "type": ["integer", "null"],
      "minimum": 0,
      "maximum": 2147483647
    },
    "stackTrace": {
      "type": ["string", "null"],
      "maxLength": 8192
    },
    "lineNumber": {
      "type": ["integer", "null"],
      "minimum": 0,
      "maximum": 2147483647
    },
    "className": {
      "type": ["string", "null"],
      "maxLength": 1024
    },
    "exceptionName": {
      "type": ["string", "null"],
      "maxLength": 1024
    },
    "isFatal": {
      "type": ["boolean", "null"]
    },
    "lineColumn": {
      "type": ["integer", "null"],
      "minimum": 0,
      "maximum": 2147483647
    },
    "fileName": {
      "type": ["string", "null"],
      "maxLength": 1024
    }
  },
  "required": ["programmingLanguage", "message"],
  "additionalProperties": false
}