{
  "$ref": "#/definitions/error-payload",
  "definitions": {
    "error-payload": {
      "type": "object",
      "properties": {
        "code": {
          "type": "string",
          "enum": [
            "AUTH_EXPIRED",
            "SCOPE_DENIED",
            "RATE_LIMITED",
            "NONCE_USED",
            "SESSION_GONE",
            "TURN_ABORTED",
            "CONTEXT_TOO_LARGE",
            "PAIR_DENIED",
            "UNSUPPORTED",
            "INTERNAL"
          ]
        },
        "message": {
          "type": "string",
          "maxLength": 500
        },
        "retryable": {
          "type": "boolean"
        },
        "details": {
          "type": "object",
          "additionalProperties": {}
        }
      },
      "required": [
        "code",
        "message",
        "retryable"
      ],
      "additionalProperties": false
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://schwaizer.ch/ocp/schemas/1.0/error-payload.json"
}
