{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "sessionTimeout": { "type": "integer", "minimum": 1 },
    "serverKeepAlive": { "type": "integer", "minimum": 0 },
    "jwtRefresh": { "type": "integer", "minimum": 0 },
    "incomingConnectionTimeout": { "type": "integer", "minimum": 0 },
    "incomingRequestTimeout": { "type": "integer", "minimum": 0 },
    "minimumTokenValidity": { "type": "integer", "minimum": 0 },
    "appsCacheExpiration": { "type": "integer", "minimum": 0 },
    "sendXFrameOptions": { "type": "boolean" },
    "pkceEnabled": { "type": "boolean" },
    "tenantHostPattern": { "type": "string", "minLength": 1, "format": "regexWithCapture" },
    "destinationHostPattern": { "type": "string", "minLength": 1, "format": "regexWithCapture" },
    "externalReverseProxy": { "type": "boolean"},
    "storeSessionCookiesInExternalSessionStore": { "type": "boolean"},
    "http2Support": { "type": "boolean"},
    "cookieBackwardCompatibility": { "type": "boolean" },
    "directRoutingUriPatterns": {"type": "array", "items": {"type": "string", "minLength": 1}, "minItems": 1},
    "saasApprouterExcludedPath": {"type": "array", "items": {"type": "string", "minLength": 1}, "minItems": 1},
    "compression": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "enabled": { "type": "boolean" },
        "minSize": { "type": "integer", "minimum": 1 },
        "compressResponseMixedTypeContent": { "type": "boolean" }
      }
    },
    "cfNodeJsLoggingLevel": { "type": "string", "minLength": 1 },
    "dynamicIdentityProvider": { "type": "boolean"},
    "stateParameterSecret": { "type": "string", "minLength": 1 },
    "excludedStateHandlingSubdomains": { "type": "array", "items": {"type": "string", "minLength": 1}, "minItems": 1},
    "enableXForwardHostValidation":  { "type": "boolean"},
    "enableCSPheaders": { "type":  "boolean"},
    "backChannelLogoutUri": { "type": "string", "minLength": 1, "format": "absolute-uri" },
    "checkXForwardedHostInLoginCallback": { "type": "boolean" },
    "lockTTL": { "type": "integer", "minimum": 1 },
    "pollingInterval": { "type": "integer", "minimum": 1 },
    "maxWaitTime": { "type": "integer", "minimum": 1 },
    "outgoingRequestOptions": {
      "type": "object",
      "additionalProperties": false,
      "patternProperties": {
        "^[a-zA-Z0-9-]+$": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "timeout": {
              "type": "integer",
              "minimum": 0
            }
          }
        }
      }
    },
    "returnErrorSource" : { "type": "boolean" }
  }
}
