Skip to content

Instantly share code, notes, and snippets.

@buger
Created November 6, 2025 07:59
Show Gist options
  • Select an option

  • Save buger/ab7e9594d8a1afbcde257df0d675fe8e to your computer and use it in GitHub Desktop.

Select an option

Save buger/ab7e9594d8a1afbcde257df0d675fe8e to your computer and use it in GitHub Desktop.
Tyk API Gateway API schema
{
"status":"Success",
"message":"",
"schema":{
"id":"https://spec.openapis.org/oas/3.0/schema/2021-09-28",
"$schema":"http://json-schema.org/draft-04/schema#",
"description":"The description of OpenAPI v3.0.x documents, as defined by https://spec.openapis.org/oas/v3.0.3",
"type":"object",
"required":[
"openapi",
"info",
"paths"
],
"properties":{
"openapi":{
"type":"string",
"pattern":"^3\\.0\\.\\d(-.+)?$"
},
"info":{
"$ref":"#/definitions/Info"
},
"externalDocs":{
"$ref":"#/definitions/ExternalDocumentation"
},
"servers":{
"type":"array",
"items":{
"$ref":"#/definitions/Server"
}
},
"security":{
"type":"array",
"items":{
"$ref":"#/definitions/SecurityRequirement"
}
},
"tags":{
"type":"array",
"items":{
"$ref":"#/definitions/Tag"
},
"uniqueItems":true
},
"paths":{
"$ref":"#/definitions/Paths"
},
"components":{
"$ref":"#/definitions/Components"
},
"x-tyk-api-gateway":{
"$schema":"http://json-schema.org/draft-04/schema#",
"type":"object",
"properties":{
"info":{
"$ref":"#/definitions/X-Tyk-Info"
},
"upstream":{
"$ref":"#/definitions/X-Tyk-Upstream"
},
"server":{
"$ref":"#/definitions/X-Tyk-Server"
},
"middleware":{
"$ref":"#/definitions/X-Tyk-Middleware"
}
},
"required":[
"info",
"upstream",
"server"
]
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false,
"definitions":{
"Reference":{
"type":"object",
"required":[
"$ref"
],
"patternProperties":{
"^\\$ref$":{
"type":"string",
"format":"uri-reference"
}
}
},
"Info":{
"type":"object",
"required":[
"title",
"version"
],
"properties":{
"title":{
"type":"string"
},
"description":{
"type":"string"
},
"termsOfService":{
"type":"string",
"format":"uri-reference"
},
"contact":{
"$ref":"#/definitions/Contact"
},
"license":{
"$ref":"#/definitions/License"
},
"version":{
"type":"string"
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false
},
"Contact":{
"type":"object",
"properties":{
"name":{
"type":"string"
},
"url":{
"type":"string",
"format":"uri-reference"
},
"email":{
"type":"string",
"format":"email"
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false
},
"License":{
"type":"object",
"required":[
"name"
],
"properties":{
"name":{
"type":"string"
},
"url":{
"type":"string",
"format":"uri-reference"
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false
},
"Server":{
"type":"object",
"required":[
"url"
],
"properties":{
"url":{
"type":"string"
},
"description":{
"type":"string"
},
"variables":{
"type":"object",
"additionalProperties":{
"$ref":"#/definitions/ServerVariable"
}
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false
},
"ServerVariable":{
"type":"object",
"required":[
"default"
],
"properties":{
"enum":{
"type":"array",
"items":{
"type":"string"
}
},
"default":{
"type":"string"
},
"description":{
"type":"string"
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false
},
"Components":{
"type":"object",
"properties":{
"schemas":{
"type":"object",
"patternProperties":{
"^[a-zA-Z0-9\\.\\-_]+$":{
"oneOf":[
{
"$ref":"#/definitions/Schema"
},
{
"$ref":"#/definitions/Reference"
}
]
}
}
},
"responses":{
"type":"object",
"patternProperties":{
"^[a-zA-Z0-9\\.\\-_]+$":{
"oneOf":[
{
"$ref":"#/definitions/Reference"
},
{
"$ref":"#/definitions/Response"
}
]
}
}
},
"parameters":{
"type":"object",
"patternProperties":{
"^[a-zA-Z0-9\\.\\-_]+$":{
"oneOf":[
{
"$ref":"#/definitions/Reference"
},
{
"$ref":"#/definitions/Parameter"
}
]
}
}
},
"examples":{
"type":"object",
"patternProperties":{
"^[a-zA-Z0-9\\.\\-_]+$":{
"oneOf":[
{
"$ref":"#/definitions/Reference"
},
{
"$ref":"#/definitions/Example"
}
]
}
}
},
"requestBodies":{
"type":"object",
"patternProperties":{
"^[a-zA-Z0-9\\.\\-_]+$":{
"oneOf":[
{
"$ref":"#/definitions/Reference"
},
{
"$ref":"#/definitions/RequestBody"
}
]
}
}
},
"headers":{
"type":"object",
"patternProperties":{
"^[a-zA-Z0-9\\.\\-_]+$":{
"oneOf":[
{
"$ref":"#/definitions/Reference"
},
{
"$ref":"#/definitions/Header"
}
]
}
}
},
"securitySchemes":{
"type":"object",
"patternProperties":{
"^[a-zA-Z0-9\\.\\-_]+$":{
"oneOf":[
{
"$ref":"#/definitions/Reference"
},
{
"$ref":"#/definitions/SecurityScheme"
}
]
}
}
},
"links":{
"type":"object",
"patternProperties":{
"^[a-zA-Z0-9\\.\\-_]+$":{
"oneOf":[
{
"$ref":"#/definitions/Reference"
},
{
"$ref":"#/definitions/Link"
}
]
}
}
},
"callbacks":{
"type":"object",
"patternProperties":{
"^[a-zA-Z0-9\\.\\-_]+$":{
"oneOf":[
{
"$ref":"#/definitions/Reference"
},
{
"$ref":"#/definitions/Callback"
}
]
}
}
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false
},
"Schema":{
"type":"object",
"properties":{
"title":{
"type":"string"
},
"multipleOf":{
"type":"number",
"minimum":0,
"exclusiveMinimum":true
},
"maximum":{
"type":"number"
},
"exclusiveMaximum":{
"type":"boolean",
"default":false
},
"minimum":{
"type":"number"
},
"exclusiveMinimum":{
"type":"boolean",
"default":false
},
"maxLength":{
"type":"integer",
"minimum":0
},
"minLength":{
"type":"integer",
"minimum":0,
"default":0
},
"pattern":{
"type":"string",
"format":"regex"
},
"maxItems":{
"type":"integer",
"minimum":0
},
"minItems":{
"type":"integer",
"minimum":0,
"default":0
},
"uniqueItems":{
"type":"boolean",
"default":false
},
"maxProperties":{
"type":"integer",
"minimum":0
},
"minProperties":{
"type":"integer",
"minimum":0,
"default":0
},
"required":{
"type":"array",
"items":{
"type":"string"
},
"minItems":1,
"uniqueItems":true
},
"enum":{
"type":"array",
"items":{
},
"minItems":1,
"uniqueItems":false
},
"type":{
"type":"string",
"enum":[
"array",
"boolean",
"integer",
"number",
"object",
"string"
]
},
"not":{
"oneOf":[
{
"$ref":"#/definitions/Schema"
},
{
"$ref":"#/definitions/Reference"
}
]
},
"allOf":{
"type":"array",
"items":{
"oneOf":[
{
"$ref":"#/definitions/Schema"
},
{
"$ref":"#/definitions/Reference"
}
]
}
},
"oneOf":{
"type":"array",
"items":{
"oneOf":[
{
"$ref":"#/definitions/Schema"
},
{
"$ref":"#/definitions/Reference"
}
]
}
},
"anyOf":{
"type":"array",
"items":{
"oneOf":[
{
"$ref":"#/definitions/Schema"
},
{
"$ref":"#/definitions/Reference"
}
]
}
},
"items":{
"oneOf":[
{
"$ref":"#/definitions/Schema"
},
{
"$ref":"#/definitions/Reference"
}
]
},
"properties":{
"type":"object",
"additionalProperties":{
"oneOf":[
{
"$ref":"#/definitions/Schema"
},
{
"$ref":"#/definitions/Reference"
}
]
}
},
"additionalProperties":{
"oneOf":[
{
"$ref":"#/definitions/Schema"
},
{
"$ref":"#/definitions/Reference"
},
{
"type":"boolean"
}
],
"default":true
},
"description":{
"type":"string"
},
"format":{
"type":"string"
},
"default":{
},
"nullable":{
"type":"boolean",
"default":false
},
"discriminator":{
"$ref":"#/definitions/Discriminator"
},
"readOnly":{
"type":"boolean",
"default":false
},
"writeOnly":{
"type":"boolean",
"default":false
},
"example":{
},
"externalDocs":{
"$ref":"#/definitions/ExternalDocumentation"
},
"deprecated":{
"type":"boolean",
"default":false
},
"xml":{
"$ref":"#/definitions/XML"
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false
},
"Discriminator":{
"type":"object",
"required":[
"propertyName"
],
"properties":{
"propertyName":{
"type":"string"
},
"mapping":{
"type":"object",
"additionalProperties":{
"type":"string"
}
}
}
},
"XML":{
"type":"object",
"properties":{
"name":{
"type":"string"
},
"namespace":{
"type":"string",
"format":"uri"
},
"prefix":{
"type":"string"
},
"attribute":{
"type":"boolean",
"default":false
},
"wrapped":{
"type":"boolean",
"default":false
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false
},
"Response":{
"type":"object",
"required":[
"description"
],
"properties":{
"description":{
"type":"string"
},
"headers":{
"type":"object",
"additionalProperties":{
"oneOf":[
{
"$ref":"#/definitions/Header"
},
{
"$ref":"#/definitions/Reference"
}
]
}
},
"content":{
"type":"object",
"additionalProperties":{
"$ref":"#/definitions/MediaType"
}
},
"links":{
"type":"object",
"additionalProperties":{
"oneOf":[
{
"$ref":"#/definitions/Link"
},
{
"$ref":"#/definitions/Reference"
}
]
}
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false
},
"MediaType":{
"type":"object",
"properties":{
"schema":{
"oneOf":[
{
"$ref":"#/definitions/Schema"
},
{
"$ref":"#/definitions/Reference"
}
]
},
"example":{
},
"examples":{
"type":"object",
"additionalProperties":{
"oneOf":[
{
"$ref":"#/definitions/Example"
},
{
"$ref":"#/definitions/Reference"
}
]
}
},
"encoding":{
"type":"object",
"additionalProperties":{
"$ref":"#/definitions/Encoding"
}
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false,
"allOf":[
{
"$ref":"#/definitions/ExampleXORExamples"
}
]
},
"Example":{
"type":"object",
"properties":{
"summary":{
"type":"string"
},
"description":{
"type":"string"
},
"value":{
},
"externalValue":{
"type":"string",
"format":"uri-reference"
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false
},
"Header":{
"type":"object",
"properties":{
"description":{
"type":"string"
},
"required":{
"type":"boolean",
"default":false
},
"deprecated":{
"type":"boolean",
"default":false
},
"allowEmptyValue":{
"type":"boolean",
"default":false
},
"style":{
"type":"string",
"enum":[
"simple"
],
"default":"simple"
},
"explode":{
"type":"boolean"
},
"allowReserved":{
"type":"boolean",
"default":false
},
"schema":{
"oneOf":[
{
"$ref":"#/definitions/Schema"
},
{
"$ref":"#/definitions/Reference"
}
]
},
"content":{
"type":"object",
"additionalProperties":{
"$ref":"#/definitions/MediaType"
},
"minProperties":1,
"maxProperties":1
},
"example":{
},
"examples":{
"type":"object",
"additionalProperties":{
"oneOf":[
{
"$ref":"#/definitions/Example"
},
{
"$ref":"#/definitions/Reference"
}
]
}
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false,
"allOf":[
{
"$ref":"#/definitions/ExampleXORExamples"
},
{
"$ref":"#/definitions/SchemaXORContent"
}
]
},
"Paths":{
"type":"object",
"patternProperties":{
"^\\/":{
"$ref":"#/definitions/PathItem"
},
"^x-":{
}
},
"additionalProperties":false
},
"PathItem":{
"type":"object",
"properties":{
"$ref":{
"type":"string"
},
"summary":{
"type":"string"
},
"description":{
"type":"string"
},
"servers":{
"type":"array",
"items":{
"$ref":"#/definitions/Server"
}
},
"parameters":{
"type":"array",
"items":{
"oneOf":[
{
"$ref":"#/definitions/Parameter"
},
{
"$ref":"#/definitions/Reference"
}
]
},
"uniqueItems":true
}
},
"patternProperties":{
"^(get|put|post|delete|options|head|patch|trace)$":{
"$ref":"#/definitions/Operation"
},
"^x-":{
}
},
"additionalProperties":false
},
"Operation":{
"type":"object",
"required":[
"responses"
],
"properties":{
"tags":{
"type":"array",
"items":{
"type":"string"
}
},
"summary":{
"type":"string"
},
"description":{
"type":"string"
},
"externalDocs":{
"$ref":"#/definitions/ExternalDocumentation"
},
"operationId":{
"type":"string"
},
"parameters":{
"type":"array",
"items":{
"oneOf":[
{
"$ref":"#/definitions/Parameter"
},
{
"$ref":"#/definitions/Reference"
}
]
},
"uniqueItems":true
},
"requestBody":{
"oneOf":[
{
"$ref":"#/definitions/RequestBody"
},
{
"$ref":"#/definitions/Reference"
}
]
},
"responses":{
"$ref":"#/definitions/Responses"
},
"callbacks":{
"type":"object",
"additionalProperties":{
"oneOf":[
{
"$ref":"#/definitions/Callback"
},
{
"$ref":"#/definitions/Reference"
}
]
}
},
"deprecated":{
"type":"boolean",
"default":false
},
"security":{
"type":"array",
"items":{
"$ref":"#/definitions/SecurityRequirement"
}
},
"servers":{
"type":"array",
"items":{
"$ref":"#/definitions/Server"
}
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false
},
"Responses":{
"type":"object",
"properties":{
"default":{
"oneOf":[
{
"$ref":"#/definitions/Response"
},
{
"$ref":"#/definitions/Reference"
}
]
}
},
"patternProperties":{
"^[1-5](?:\\d{2}|XX)$":{
"oneOf":[
{
"$ref":"#/definitions/Response"
},
{
"$ref":"#/definitions/Reference"
}
]
},
"^x-":{
}
},
"minProperties":1,
"additionalProperties":false
},
"SecurityRequirement":{
"type":"object",
"additionalProperties":{
"type":"array",
"items":{
"type":"string"
}
}
},
"Tag":{
"type":"object",
"required":[
"name"
],
"properties":{
"name":{
"type":"string"
},
"description":{
"type":"string"
},
"externalDocs":{
"$ref":"#/definitions/ExternalDocumentation"
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false
},
"ExternalDocumentation":{
"type":"object",
"required":[
"url"
],
"properties":{
"description":{
"type":"string"
},
"url":{
"type":"string",
"format":"uri-reference"
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false
},
"ExampleXORExamples":{
"description":"Example and examples are mutually exclusive",
"not":{
"required":[
"example",
"examples"
]
}
},
"SchemaXORContent":{
"description":"Schema and content are mutually exclusive, at least one is required",
"not":{
"required":[
"schema",
"content"
]
},
"oneOf":[
{
"required":[
"schema"
]
},
{
"required":[
"content"
],
"description":"Some properties are not allowed if content is present",
"allOf":[
{
"not":{
"required":[
"style"
]
}
},
{
"not":{
"required":[
"explode"
]
}
},
{
"not":{
"required":[
"allowReserved"
]
}
},
{
"not":{
"required":[
"example"
]
}
},
{
"not":{
"required":[
"examples"
]
}
}
]
}
]
},
"Parameter":{
"type":"object",
"properties":{
"name":{
"type":"string"
},
"in":{
"type":"string"
},
"description":{
"type":"string"
},
"required":{
"type":"boolean",
"default":false
},
"deprecated":{
"type":"boolean",
"default":false
},
"allowEmptyValue":{
"type":"boolean",
"default":false
},
"style":{
"type":"string"
},
"explode":{
"type":"boolean"
},
"allowReserved":{
"type":"boolean",
"default":false
},
"schema":{
"oneOf":[
{
"$ref":"#/definitions/Schema"
},
{
"$ref":"#/definitions/Reference"
}
]
},
"content":{
"type":"object",
"additionalProperties":{
"$ref":"#/definitions/MediaType"
},
"minProperties":1,
"maxProperties":1
},
"example":{
},
"examples":{
"type":"object",
"additionalProperties":{
"oneOf":[
{
"$ref":"#/definitions/Example"
},
{
"$ref":"#/definitions/Reference"
}
]
}
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false,
"required":[
"name",
"in"
],
"allOf":[
{
"$ref":"#/definitions/ExampleXORExamples"
},
{
"$ref":"#/definitions/SchemaXORContent"
},
{
"$ref":"#/definitions/ParameterLocation"
}
]
},
"ParameterLocation":{
"description":"Parameter location",
"oneOf":[
{
"description":"Parameter in path",
"required":[
"required"
],
"properties":{
"in":{
"enum":[
"path"
]
},
"style":{
"enum":[
"matrix",
"label",
"simple"
],
"default":"simple"
},
"required":{
"enum":[
true
]
}
}
},
{
"description":"Parameter in query",
"properties":{
"in":{
"enum":[
"query"
]
},
"style":{
"enum":[
"form",
"spaceDelimited",
"pipeDelimited",
"deepObject"
],
"default":"form"
}
}
},
{
"description":"Parameter in header",
"properties":{
"in":{
"enum":[
"header"
]
},
"style":{
"enum":[
"simple"
],
"default":"simple"
}
}
},
{
"description":"Parameter in cookie",
"properties":{
"in":{
"enum":[
"cookie"
]
},
"style":{
"enum":[
"form"
],
"default":"form"
}
}
}
]
},
"RequestBody":{
"type":"object",
"required":[
"content"
],
"properties":{
"description":{
"type":"string"
},
"content":{
"type":"object",
"additionalProperties":{
"$ref":"#/definitions/MediaType"
}
},
"required":{
"type":"boolean",
"default":false
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false
},
"SecurityScheme":{
"oneOf":[
{
"$ref":"#/definitions/APIKeySecurityScheme"
},
{
"$ref":"#/definitions/HTTPSecurityScheme"
},
{
"$ref":"#/definitions/OAuth2SecurityScheme"
},
{
"$ref":"#/definitions/OpenIdConnectSecurityScheme"
}
]
},
"APIKeySecurityScheme":{
"type":"object",
"required":[
"type",
"name",
"in"
],
"properties":{
"type":{
"type":"string",
"enum":[
"apiKey"
]
},
"name":{
"type":"string"
},
"in":{
"type":"string",
"enum":[
"header",
"query",
"cookie"
]
},
"description":{
"type":"string"
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false
},
"HTTPSecurityScheme":{
"type":"object",
"required":[
"scheme",
"type"
],
"properties":{
"scheme":{
"type":"string"
},
"bearerFormat":{
"type":"string"
},
"description":{
"type":"string"
},
"type":{
"type":"string",
"enum":[
"http"
]
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false,
"oneOf":[
{
"description":"Bearer",
"properties":{
"scheme":{
"type":"string",
"pattern":"^[Bb][Ee][Aa][Rr][Ee][Rr]$"
}
}
},
{
"description":"Non Bearer",
"not":{
"required":[
"bearerFormat"
]
},
"properties":{
"scheme":{
"not":{
"type":"string",
"pattern":"^[Bb][Ee][Aa][Rr][Ee][Rr]$"
}
}
}
}
]
},
"OAuth2SecurityScheme":{
"type":"object",
"required":[
"type",
"flows"
],
"properties":{
"type":{
"type":"string",
"enum":[
"oauth2"
]
},
"flows":{
"$ref":"#/definitions/OAuthFlows"
},
"description":{
"type":"string"
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false
},
"OpenIdConnectSecurityScheme":{
"type":"object",
"required":[
"type",
"openIdConnectUrl"
],
"properties":{
"type":{
"type":"string",
"enum":[
"openIdConnect"
]
},
"openIdConnectUrl":{
"type":"string",
"format":"uri-reference"
},
"description":{
"type":"string"
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false
},
"OAuthFlows":{
"type":"object",
"properties":{
"implicit":{
"$ref":"#/definitions/ImplicitOAuthFlow"
},
"password":{
"$ref":"#/definitions/PasswordOAuthFlow"
},
"clientCredentials":{
"$ref":"#/definitions/ClientCredentialsFlow"
},
"authorizationCode":{
"$ref":"#/definitions/AuthorizationCodeOAuthFlow"
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false
},
"ImplicitOAuthFlow":{
"type":"object",
"required":[
"authorizationUrl",
"scopes"
],
"properties":{
"authorizationUrl":{
"type":"string",
"format":"uri-reference"
},
"refreshUrl":{
"type":"string",
"format":"uri-reference"
},
"scopes":{
"type":"object",
"additionalProperties":{
"type":"string"
}
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false
},
"PasswordOAuthFlow":{
"type":"object",
"required":[
"tokenUrl",
"scopes"
],
"properties":{
"tokenUrl":{
"type":"string",
"format":"uri-reference"
},
"refreshUrl":{
"type":"string",
"format":"uri-reference"
},
"scopes":{
"type":"object",
"additionalProperties":{
"type":"string"
}
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false
},
"ClientCredentialsFlow":{
"type":"object",
"required":[
"tokenUrl",
"scopes"
],
"properties":{
"tokenUrl":{
"type":"string",
"format":"uri-reference"
},
"refreshUrl":{
"type":"string",
"format":"uri-reference"
},
"scopes":{
"type":"object",
"additionalProperties":{
"type":"string"
}
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false
},
"AuthorizationCodeOAuthFlow":{
"type":"object",
"required":[
"authorizationUrl",
"tokenUrl",
"scopes"
],
"properties":{
"authorizationUrl":{
"type":"string",
"format":"uri-reference"
},
"tokenUrl":{
"type":"string",
"format":"uri-reference"
},
"refreshUrl":{
"type":"string",
"format":"uri-reference"
},
"scopes":{
"type":"object",
"additionalProperties":{
"type":"string"
}
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false
},
"Link":{
"type":"object",
"properties":{
"operationId":{
"type":"string"
},
"operationRef":{
"type":"string",
"format":"uri-reference"
},
"parameters":{
"type":"object",
"additionalProperties":{
}
},
"requestBody":{
},
"description":{
"type":"string"
},
"server":{
"$ref":"#/definitions/Server"
}
},
"patternProperties":{
"^x-":{
}
},
"additionalProperties":false,
"not":{
"description":"Operation Id and Operation Ref are mutually exclusive",
"required":[
"operationId",
"operationRef"
]
}
},
"Callback":{
"type":"object",
"additionalProperties":{
"$ref":"#/definitions/PathItem"
},
"patternProperties":{
"^x-":{
}
}
},
"Encoding":{
"type":"object",
"properties":{
"contentType":{
"type":"string"
},
"headers":{
"type":"object",
"additionalProperties":{
"oneOf":[
{
"$ref":"#/definitions/Header"
},
{
"$ref":"#/definitions/Reference"
}
]
}
},
"style":{
"type":"string",
"enum":[
"form",
"spaceDelimited",
"pipeDelimited",
"deepObject"
]
},
"explode":{
"type":"boolean"
},
"allowReserved":{
"type":"boolean",
"default":false
}
},
"additionalProperties":false
},
"X-Tyk-ServiceDiscovery":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"queryEndpoint":{
"type":"string"
},
"dataPath":{
"type":"string"
},
"useNestedQuery":{
"type":"boolean"
},
"parentDataPath":{
"type":"string"
},
"portDataPath":{
"type":"string"
},
"useTargetList":{
"type":"boolean"
},
"cache":{
"$ref":"#/definitions/X-Tyk-ServiceDiscoveryCache"
},
"cacheTimeout":{
"type":"integer",
"format":"int64"
},
"targetPath":{
"type":"string"
},
"endpointReturnsList":{
"type":"boolean"
}
},
"required":[
"enabled"
]
},
"X-Tyk-ServiceDiscoveryCache":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"timeout":{
"type":"integer",
"format":"int64"
}
},
"required":[
"enabled"
]
},
"X-Tyk-DetailedActivityLogs":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
}
},
"required":[
"enabled"
]
},
"X-Tyk-AuthSource":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"name":{
"type":"string"
}
},
"required":[
"enabled"
]
},
"X-Tyk-MutualTLS":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"domainToCertificateMapping":{
"type":"array",
"items":[
{
"$ref":"#/definitions/X-Tyk-DomainToCertificate"
}
]
}
},
"required":[
"enabled",
"domainToCertificateMapping"
]
},
"X-Tyk-DomainToCertificate":{
"type":"object",
"properties":{
"domain":{
"$ref":"#/definitions/X-Tyk-DomainDef"
},
"certificate":{
"type":"string"
}
},
"required":[
"domain",
"certificate"
]
},
"X-Tyk-CertificatePinning":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"domainToPublicKeysMapping":{
"type":"array",
"items":[
{
"$ref":"#/definitions/X-Tyk-PinnedPublicKeys"
}
]
}
},
"required":[
"enabled",
"domainToPublicKeysMapping"
]
},
"X-Tyk-PinnedPublicKeys":{
"type":"object",
"properties":{
"domain":{
"$ref":"#/definitions/X-Tyk-DomainDef"
},
"publicKeys":{
"type":"array",
"items":[
{
"type":"string"
}
]
}
}
},
"X-Tyk-ClientToPolicy":{
"type":"object",
"properties":{
"clientId":{
"type":"string"
},
"policyId":{
"type":"string"
}
}
},
"X-Tyk-Provider":{
"type":"object",
"properties":{
"issuer":{
"type":"string"
},
"clientToPolicyMapping":{
"type":"array",
"items":[
{
"$ref":"#/definitions/X-Tyk-ClientToPolicy"
}
]
}
}
},
"X-Tyk-ScopeToPolicy":{
"type":"object",
"properties":{
"scope":{
"type":"string"
},
"policyId":{
"type":"string"
}
}
},
"X-Tyk-Scopes":{
"type":"object",
"properties":{
"claimName":{
"type":"string"
},
"claims":{
"type":"array",
"items":{
"type":"string"
}
},
"scopeToPolicyMapping":{
"type":"array",
"items":[
{
"$ref":"#/definitions/X-Tyk-ScopeToPolicy"
}
]
}
}
},
"X-Tyk-ClientCertificates":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"allowlist":{
"type":"array",
"items":[
{
"type":"string"
}
]
}
}
},
"X-Tyk-PluginConfig":{
"type":"object",
"properties":{
"driver":{
"type":"string",
"enum":[
"otto",
"python",
"lua",
"grpc",
"goplugin"
]
},
"bundle":{
"$ref":"#/definitions/X-Tyk-PluginBundle"
},
"data":{
"$ref":"#/definitions/X-Tyk-PluginConfigData"
}
}
},
"X-Tyk-PluginConfigData":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"value":{
"type":"object"
}
},
"required":[
"enabled",
"value"
]
},
"X-Tyk-CustomAnalyticsPluginConfig":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"functionName":{
"type":"string"
},
"path":{
"type":"string"
}
},
"required":[
"enabled"
]
},
"X-Tyk-CustomPluginConfig":{
"type":"object",
"properties":{
"plugins":{
"$ref":"#/definitions/X-Tyk-CustomPlugins"
}
}
},
"X-Tyk-CustomPlugins":{
"type":"array",
"items":[
{
"$ref":"#/definitions/X-Tyk-CustomPluginDefinition"
}
],
"minItems":1
},
"X-Tyk-CustomPluginDefinition":{
"properties":{
"enabled":{
"type":"boolean"
},
"functionName":{
"type":"string"
},
"path":{
"type":"string"
},
"rawBodyOnly":{
"type":"boolean"
},
"requireSession":{
"type":"boolean"
}
},
"required":[
"enabled",
"functionName"
]
},
"X-Tyk-IDExtractorConfig":{
"type":"object",
"properties":{
"headerName":{
"type":"string"
},
"formParamName":{
"type":"string"
},
"regexp":{
"type":"string"
},
"regexpMatchIndex":{
"type":"integer"
},
"xPathExp":{
"type":"string"
}
}
},
"X-Tyk-IDExtractor":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"source":{
"type":"string",
"enum":[
"body",
"header",
"form"
]
},
"with":{
"type":"string",
"enum":[
"value",
"xpath",
"regex"
]
},
"config":{
"$ref":"#/definitions/X-Tyk-IDExtractorConfig"
}
},
"required":[
"enabled",
"source",
"with",
"config"
]
},
"X-Tyk-AuthenticationPlugin":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"functionName":{
"type":"string"
},
"path":{
"type":"string"
},
"rawBodyOnly":{
"type":"boolean"
},
"requireSession":{
"type":"boolean"
},
"idExtractor":{
"$ref":"#/definitions/X-Tyk-IDExtractor"
}
},
"required":[
"enabled",
"functionName"
]
},
"X-Tyk-PluginBundle":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"path":{
"type":"string",
"pattern":"\\S+"
}
},
"required":[
"enabled",
"path"
]
},
"X-Tyk-CORS":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"maxAge":{
"type":"integer"
},
"allowCredentials":{
"type":"boolean"
},
"exposedHeaders":{
"type":"array",
"items":[
{
"type":"string"
}
]
},
"allowedHeaders":{
"type":"array",
"items":[
{
"type":"string"
}
]
},
"optionsPassthrough":{
"type":"boolean"
},
"debug":{
"type":"boolean"
},
"allowedOrigins":{
"type":"array",
"items":[
{
"type":"string"
}
]
},
"allowedMethods":{
"type":"array",
"items":[
{
"type":"string"
}
]
}
},
"required":[
"enabled"
]
},
"X-Tyk-Cache":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"timeout":{
"type":"integer",
"format":"int64"
},
"cacheAllSafeRequests":{
"type":"boolean"
},
"cacheResponseCodes":{
"type":"array",
"items":[
{
"type":"integer"
}
]
},
"cacheByHeaders":{
"type":"array",
"items":[
{
"type":"string"
}
]
},
"enableUpstreamCacheControl":{
"type":"boolean"
},
"controlTTLHeaderName":{
"type":"string"
}
}
},
"X-Tyk-Global":{
"type":"object",
"properties":{
"pluginConfig":{
"$ref":"#/definitions/X-Tyk-PluginConfig"
},
"cors":{
"$ref":"#/definitions/X-Tyk-CORS"
},
"prePlugin":{
"$ref":"#/definitions/X-Tyk-CustomPluginConfig"
},
"prePlugins":{
"$ref":"#/definitions/X-Tyk-CustomPlugins"
},
"postAuthenticationPlugin":{
"$ref":"#/definitions/X-Tyk-CustomPluginConfig"
},
"postAuthenticationPlugins":{
"$ref":"#/definitions/X-Tyk-CustomPlugins"
},
"postPlugin":{
"$ref":"#/definitions/X-Tyk-CustomPluginConfig"
},
"postPlugins":{
"$ref":"#/definitions/X-Tyk-CustomPlugins"
},
"responsePlugin":{
"$ref":"#/definitions/X-Tyk-CustomPluginConfig"
},
"responsePlugins":{
"$ref":"#/definitions/X-Tyk-CustomPlugins"
},
"cache":{
"$ref":"#/definitions/X-Tyk-Cache"
},
"transformRequestHeaders":{
"$ref":"#/definitions/X-Tyk-TransformHeaders"
},
"transformResponseHeaders":{
"$ref":"#/definitions/X-Tyk-TransformHeaders"
},
"contextVariables":{
"$ref":"#/definitions/X-Tyk-ContextVariables"
},
"ignoreCase":{
"$ref":"#/definitions/X-Tyk-IgnoreCase"
},
"trafficLogs":{
"$ref":"#/definitions/X-Tyk-TrafficLogs"
},
"requestSizeLimit":{
"$ref":"#/definitions/X-Tyk-GlobalRequestSizeLimit"
},
"skipRateLimit":{
"type":"boolean"
},
"skipQuota":{
"type":"boolean"
},
"skipQuotaReset":{
"type":"boolean"
}
}
},
"X-Tyk-Allowance":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"ignoreCase":{
"type":"boolean"
}
},
"required":[
"enabled"
]
},
"X-Tyk-TransformRequestMethod":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"toMethod":{
"type":"string"
}
},
"required":[
"enabled",
"toMethod"
]
},
"X-Tyk-TransformBody":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"format":{
"type":"string",
"enum":[
"json",
"xml"
]
},
"path":{
"type":"string"
},
"body":{
"type":"string"
}
},
"anyOf":[
{
"required":[
"body"
]
},
{
"required":[
"path"
]
}
],
"required":[
"enabled",
"format"
],
"minProperties":3
},
"X-Tyk-TransformHeaders":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"remove":{
"type":"array",
"items":[
{
"type":"string"
}
]
},
"add":{
"type":"array",
"items":[
{
"$ref":"#/definitions/X-Tyk-Header"
}
]
}
},
"required":[
"enabled"
]
},
"X-Tyk-CachePlugin":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"cacheByRegex":{
"type":"string"
},
"cacheResponseCodes":{
"type":"array",
"items":[
{
"type":"integer"
}
]
},
"timeout":{
"type":"integer",
"format":"int64",
"minimum":0
}
},
"required":[
"enabled"
]
},
"X-Tyk-EnforceTimeout":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"value":{
"type":"integer",
"minimum":0
}
},
"required":[
"enabled",
"value"
]
},
"X-Tyk-ValidateRequest":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"errorResponseCode":{
"type":"integer"
}
},
"required":[
"enabled"
]
},
"X-Tyk-MockResponse":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"code":{
"type":"integer"
},
"body":{
"type":"string"
},
"headers":{
"type":"array",
"items":[
{
"$ref":"#/definitions/X-Tyk-Header"
}
]
},
"fromOASExamples":{
"properties":{
"enabled":{
"type":"boolean"
},
"code":{
"type":"integer"
},
"contentType":{
"type":"string"
},
"exampleName":{
"type":"string"
}
},
"required":[
"enabled"
]
}
},
"required":[
"enabled"
]
},
"X-Tyk-RequestSizeLimit":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"value":{
"type":"integer",
"minimum":0
}
},
"required":[
"enabled",
"value"
]
},
"X-Tyk-VirtualEndpoint":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"name":{
"type":"string"
},
"functionName":{
"type":"string"
},
"path":{
"type":"string"
},
"body":{
"type":"string"
},
"proxyOnError":{
"type":"boolean"
},
"requireSession":{
"type":"boolean"
}
},
"required":[
"enabled",
"functionName"
]
},
"X-Tyk-URLRewrite":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"pattern":{
"type":"string"
},
"rewriteTo":{
"type":"string"
},
"triggers":{
"type":"array",
"items":[
{
"$ref":"#/definitions/X-Tyk-URLRewriteTrigger"
}
]
}
},
"required":[
"enabled",
"pattern",
"rewriteTo"
]
},
"X-Tyk-TrackEndpoint":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
}
},
"required":[
"enabled"
]
},
"X-Tyk-URLRewriteTrigger":{
"type":"object",
"properties":{
"condition":{
"enum":[
"any",
"all"
]
},
"rewriteTo":{
"type":"string"
},
"rules":{
"type":"array",
"items":{
"anyOf":[
{
"$ref":"#/definitions/X-Tyk-URLRewriteRule"
},
{
"$ref":"#/definitions/X-Tyk-URLRewriteRuleForRequestBody"
}
]
}
}
},
"required":[
"condition",
"rewriteTo"
]
},
"X-Tyk-URLRewriteRuleForRequestBody":{
"type":"object",
"properties":{
"in":{
"enum":[
"requestBody"
]
},
"name":{
"type":"string"
},
"pattern":{
"type":"string"
},
"negate":{
"type":"boolean"
}
},
"required":[
"in",
"pattern"
]
},
"X-Tyk-URLRewriteRule":{
"type":"object",
"properties":{
"in":{
"enum":[
"query",
"path",
"header",
"sessionMetadata",
"requestContext"
]
},
"name":{
"type":"string"
},
"pattern":{
"type":"string"
},
"negate":{
"type":"boolean"
}
},
"required":[
"in",
"name",
"pattern"
]
},
"X-Tyk-EndpointPostPlugin":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"name":{
"type":"string"
},
"functionName":{
"type":"string"
},
"path":{
"type":"string"
}
},
"required":[
"enabled",
"functionName",
"path"
]
},
"X-Tyk-Internal":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
}
},
"required":[
"enabled"
]
},
"X-Tyk-Operation":{
"type":"object",
"properties":{
"allow":{
"$ref":"#/definitions/X-Tyk-Allowance"
},
"block":{
"$ref":"#/definitions/X-Tyk-Allowance"
},
"ignoreAuthentication":{
"$ref":"#/definitions/X-Tyk-Allowance"
},
"internal":{
"$ref":"#/definitions/X-Tyk-Internal"
},
"transformRequestMethod":{
"$ref":"#/definitions/X-Tyk-TransformRequestMethod"
},
"transformRequestBody":{
"$ref":"#/definitions/X-Tyk-TransformBody"
},
"transformResponseBody":{
"$ref":"#/definitions/X-Tyk-TransformBody"
},
"transformRequestHeaders":{
"$ref":"#/definitions/X-Tyk-TransformHeaders"
},
"transformResponseHeaders":{
"$ref":"#/definitions/X-Tyk-TransformHeaders"
},
"virtualEndpoint":{
"$ref":"#/definitions/X-Tyk-VirtualEndpoint"
},
"trackEndpoint":{
"$ref":"#/definitions/X-Tyk-TrackEndpoint"
},
"doNotTrackEndpoint":{
"$ref":"#/definitions/X-Tyk-TrackEndpoint"
},
"circuitBreaker":{
"$ref":"#/definitions/X-Tyk-CircuitBreaker"
},
"urlRewrite":{
"$ref":"#/definitions/X-Tyk-URLRewrite"
},
"postPlugins":{
"type":"array",
"items":[
{
"$ref":"#/definitions/X-Tyk-EndpointPostPlugin"
}
]
},
"cache":{
"$ref":"#/definitions/X-Tyk-CachePlugin"
},
"enforceTimeout":{
"$ref":"#/definitions/X-Tyk-EnforceTimeout"
},
"validateRequest":{
"$ref":"#/definitions/X-Tyk-ValidateRequest"
},
"mockResponse":{
"$ref":"#/definitions/X-Tyk-MockResponse"
},
"requestSizeLimit":{
"$ref":"#/definitions/X-Tyk-RequestSizeLimit"
},
"rateLimit":{
"$ref":"#/definitions/X-Tyk-RateLimit"
}
}
},
"X-Tyk-Operations":{
"type":"object",
"patternProperties":{
"\\S+":{
"$ref":"#/definitions/X-Tyk-Operation"
}
}
},
"X-Tyk-Middleware":{
"type":"object",
"properties":{
"global":{
"$ref":"#/definitions/X-Tyk-Global"
},
"operations":{
"$ref":"#/definitions/X-Tyk-Operations"
}
}
},
"X-Tyk-ListenPath":{
"type":"object",
"properties":{
"value":{
"type":"string",
"pattern":"\\S+"
},
"strip":{
"type":"boolean"
}
},
"required":[
"value"
]
},
"X-Tyk-HMAC":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"header":{
"$ref":"#/definitions/X-Tyk-AuthSource"
},
"cookie":{
"$ref":"#/definitions/X-Tyk-AuthSource"
},
"query":{
"$ref":"#/definitions/X-Tyk-AuthSource"
},
"allowedAlgorithms":{
"type":"array",
"items":[
{
"type":"string"
}
]
},
"allowedClockSkew":{
"type":"number",
"format":"double"
}
},
"required":[
"enabled"
]
},
"X-Tyk-OIDC":{
"type":"object",
"description":"Support for external OAuth Middleware will be deprecated starting from 5.7.0. To avoid any disruptions, we recommend that you use JSON Web Token (JWT) instead, as explained in https://tyk.io/docs/basic-config-and-security/security/authentication-authorization/openid-connect/",
"properties":{
"enabled":{
"type":"boolean"
},
"header":{
"$ref":"#/definitions/X-Tyk-AuthSource"
},
"cookie":{
"$ref":"#/definitions/X-Tyk-AuthSource"
},
"query":{
"$ref":"#/definitions/X-Tyk-AuthSource"
},
"segregateByClientId":{
"type":"boolean"
},
"providers":{
"type":"array",
"items":[
{
"$ref":"#/definitions/X-Tyk-Provider"
}
]
},
"scopes":{
"$ref":"#/definitions/X-Tyk-Scopes"
}
},
"required":[
"enabled"
]
},
"X-Tyk-CustomPluginAuthentication":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"config":{
"$ref":"#/definitions/X-Tyk-AuthenticationPlugin"
},
"header":{
"$ref":"#/definitions/X-Tyk-AuthSource"
},
"cookie":{
"$ref":"#/definitions/X-Tyk-AuthSource"
},
"query":{
"$ref":"#/definitions/X-Tyk-AuthSource"
}
},
"required":[
"enabled"
]
},
"X-Tyk-Authentication":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"stripAuthorizationData":{
"type":"boolean"
},
"baseIdentityProvider":{
"type":"string",
"enum":[
"auth_token",
"hmac_key",
"basic_auth_user",
"jwt_claim",
"oidc_user",
"oauth_key",
"custom_auth",
""
]
},
"hmac":{
"$ref":"#/definitions/X-Tyk-HMAC"
},
"oidc":{
"$ref":"#/definitions/X-Tyk-OIDC"
},
"custom":{
"$ref":"#/definitions/X-Tyk-CustomPluginAuthentication"
},
"securitySchemes":{
"type":"object",
"patternProperties":{
"^[a-zA-Z0-9\\.\\-_]+$":{
"anyOf":[
{
"$ref":"#/definitions/X-Tyk-Token"
},
{
"$ref":"#/definitions/X-Tyk-JWT"
},
{
"$ref":"#/definitions/X-Tyk-Basic"
},
{
"$ref":"#/definitions/X-Tyk-OAuth"
},
{
"$ref":"#/definitions/X-Tyk-ExternalOAuth"
}
]
}
}
},
"customKeyLifetime":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"value":{
"type":"string",
"pattern":"^(\\d+h)?(\\d+m)?(\\d+s)?$",
"not":{
"pattern":"^(0h)?(0m)?(0s)?$"
}
},
"respectValidity":{
"type":"boolean"
}
},
"required":[
"enabled"
]
},
"securityProcessingMode":{
"type":"string",
"enum":[
"legacy",
"compliant"
],
"description":"Controls how multiple security requirements are processed"
},
"security":{
"type":"array",
"items":{
"type":"array",
"items":{
"type":"string"
}
},
"description":"Vendor extension security requirements for proprietary auth methods"
}
},
"required":[
"enabled"
]
},
"X-Tyk-Server":{
"type":"object",
"properties":{
"listenPath":{
"$ref":"#/definitions/X-Tyk-ListenPath"
},
"slug":{
"type":"string",
"description":"Legacy field, unused from v5.3.0 but retained for backward compatibility."
},
"authentication":{
"$ref":"#/definitions/X-Tyk-Authentication"
},
"clientCertificates":{
"$ref":"#/definitions/X-Tyk-ClientCertificates"
},
"gatewayTags":{
"$ref":"#/definitions/X-Tyk-GatewayTags"
},
"customDomain":{
"$ref":"#/definitions/X-Tyk-CustomDomain"
},
"detailedActivityLogs":{
"$ref":"#/definitions/X-Tyk-DetailedActivityLogs"
},
"detailedTracing":{
"$ref":"#/definitions/X-Tyk-DetailedTracing"
},
"eventHandlers":{
"type":"array",
"items":[
{
"$ref":"#/definitions/X-Tyk-EventHandlers"
}
]
},
"contextVariables":{
"$ref":"#/definitions/X-Tyk-ContextVariables"
},
"ipAccessControl":{
"$ref":"#/definitions/X-Tyk-IPAccessControl"
},
"batchProcessing":{
"$ref":"#/definitions/X-Tyk-BatchProcessing"
},
"port":{
"type":"integer",
"minimum":1,
"maximum":65535
},
"protocol":{
"type":"string",
"enum":[
"http",
"https",
"h2c"
]
}
},
"required":[
"listenPath"
]
},
"X-Tyk-GatewayTags":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"tags":{
"type":"array",
"uniqueItems":true,
"items":[
{
"type":"string"
}
]
}
},
"required":[
"enabled",
"tags"
]
},
"X-Tyk-Upstream":{
"type":"object",
"properties":{
"url":{
"type":"string",
"format":"uri-reference"
},
"serviceDiscovery":{
"$ref":"#/definitions/X-Tyk-ServiceDiscovery"
},
"uptimeTests":{
"$ref":"#/definitions/X-Tyk-UptimeTests"
},
"mutualTLS":{
"$ref":"#/definitions/X-Tyk-MutualTLS"
},
"certificatePinning":{
"$ref":"#/definitions/X-Tyk-CertificatePinning"
},
"rateLimit":{
"$ref":"#/definitions/X-Tyk-RateLimit"
},
"authentication":{
"$ref":"#/definitions/X-Tyk-UpstreamAuthentication"
},
"loadBalancing":{
"$ref":"#/definitions/X-Tyk-LoadBalancing"
},
"preserveHostHeader":{
"$ref":"#/definitions/X-Tyk-PreserveHostHeader"
},
"preserveTrailingSlash":{
"$ref":"#/definitions/X-Tyk-PreserveTrailingSlash"
},
"tlsTransport":{
"$ref":"#/definitions/X-Tyk-TLSTransport"
},
"proxy":{
"$ref":"#/definitions/X-Tyk-Proxy"
}
},
"anyOf":[
{
"required":[
"url"
]
},
{
"required":[
"loadBalancing"
]
}
]
},
"X-Tyk-State":{
"type":"object",
"properties":{
"active":{
"type":"boolean"
},
"internal":{
"type":"boolean"
}
},
"required":[
"active"
]
},
"X-Tyk-Versioning":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"name":{
"type":"string",
"pattern":"\\S+"
},
"default":{
"type":"string"
},
"location":{
"type":"string",
"pattern":"\\S+"
},
"key":{
"type":"string",
"pattern":"\\S+"
},
"versions":{
"type":"array",
"items":[
{
"$ref":"#/definitions/X-Tyk-VersionToID"
}
]
},
"stripVersioningData":{
"type":"boolean"
},
"fallbackToDefault":{
"type":"boolean"
},
"urlVersioningPattern":{
"type":"string"
}
},
"required":[
"location"
],
"anyOf":[
{
"properties":{
"location":{
"enum":[
"header",
"url-param"
]
}
},
"required":[
"key"
]
},
{
"properties":{
"location":{
"enum":[
"url"
]
}
}
}
]
},
"X-Tyk-VersionToID":{
"type":"object",
"properties":{
"name":{
"type":"string",
"pattern":"\\S+"
},
"id":{
"type":"string",
"pattern":"\\S+"
}
},
"required":[
"name",
"id"
]
},
"X-Tyk-Info":{
"type":"object",
"properties":{
"id":{
"type":"string"
},
"dbId":{
"type":"string"
},
"orgId":{
"type":"string"
},
"name":{
"type":"string",
"pattern":"\\S+"
},
"expiration":{
"type":"string"
},
"state":{
"$ref":"#/definitions/X-Tyk-State"
},
"versioning":{
"$ref":"#/definitions/X-Tyk-Versioning"
}
},
"required":[
"name",
"state"
]
},
"X-Tyk-ExtractCredentialsFromBody":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"userRegexp":{
"type":"string"
},
"passwordRegexp":{
"type":"string"
}
},
"required":[
"enabled"
]
},
"X-Tyk-Notifications":{
"type":"object",
"properties":{
"sharedSecret":{
"type":"string"
},
"onKeyChangeUrl":{
"type":"string"
}
}
},
"X-Tyk-Signature":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"algorithm":{
"type":"string"
},
"header":{
"type":"string"
},
"query":{
"$ref":"#/definitions/X-Tyk-AuthSource"
},
"secret":{
"type":"string"
},
"allowedClockSkew":{
"type":"integer",
"format":"int64"
},
"errorCode":{
"type":"integer"
},
"errorMessage":{
"type":"string"
}
}
},
"X-Tyk-Token":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"header":{
"$ref":"#/definitions/X-Tyk-AuthSource"
},
"cookie":{
"$ref":"#/definitions/X-Tyk-AuthSource"
},
"query":{
"$ref":"#/definitions/X-Tyk-AuthSource"
},
"enableClientCertificate":{
"type":"boolean"
},
"signatureValidation":{
"$ref":"#/definitions/X-Tyk-Signature"
}
},
"required":[
"enabled"
]
},
"X-Tyk-JWT":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"header":{
"$ref":"#/definitions/X-Tyk-AuthSource"
},
"cookie":{
"$ref":"#/definitions/X-Tyk-AuthSource"
},
"query":{
"$ref":"#/definitions/X-Tyk-AuthSource"
},
"source":{
"type":"string"
},
"signingMethod":{
"type":"string"
},
"identityBaseField":{
"type":"string"
},
"subjectClaims":{
"type":"array",
"items":{
"type":"string"
}
},
"jwksURIs":{
"type":[
"array",
"null"
],
"items":{
"type":"object",
"properties":{
"url":{
"type":"string",
"format":"uri"
},
"cacheTimeout":{
"$ref":"#/definitions/X-Tyk-ReadableDuration"
}
},
"required":[
"url"
]
}
},
"skipKid":{
"type":"boolean"
},
"policyFieldName":{
"type":"string"
},
"basePolicyClaims":{
"type":"array",
"items":{
"type":"string"
}
},
"allowedIssuers":{
"type":"array",
"items":{
"type":"string"
}
},
"allowedAudiences":{
"type":"array",
"items":{
"type":"string"
}
},
"jtiValidation":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
}
},
"required":[
"enabled"
]
},
"allowedSubjects":{
"type":"array",
"items":{
"type":"string"
}
},
"clientBaseField":{
"type":"string"
},
"scopes":{
"$ref":"#/definitions/X-Tyk-Scopes"
},
"defaultPolicies":{
"type":"array",
"items":[
{
"type":"string"
}
]
},
"issuedAtValidationSkew":{
"type":"integer",
"format":"int64",
"minimum":0
},
"notBeforeValidationSkew":{
"type":"integer",
"format":"int64",
"minimum":0
},
"expiresAtValidationSkew":{
"type":"integer",
"format":"int64",
"minimum":0
},
"idpClientIdMappingDisabled":{
"type":"boolean"
},
"customClaimValidation":{
"type":"object",
"properties":{
"type":{
"type":"string",
"enum":[
"required",
"exact_match",
"contains"
]
},
"allowedValues":{
"type":"array",
"items":{
}
},
"nonBlocking":{
"type":"boolean",
"default":false
}
},
"required":[
"type"
]
}
},
"required":[
"enabled"
]
},
"X-Tyk-Basic":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"header":{
"$ref":"#/definitions/X-Tyk-AuthSource"
},
"cookie":{
"$ref":"#/definitions/X-Tyk-AuthSource"
},
"query":{
"$ref":"#/definitions/X-Tyk-AuthSource"
},
"disableCaching":{
"type":"boolean"
},
"cacheTTL":{
"type":"integer"
},
"extractCredentialsFromBody":{
"$ref":"#/definitions/X-Tyk-ExtractCredentialsFromBody"
}
},
"required":[
"enabled"
]
},
"X-Tyk-OAuth":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"header":{
"$ref":"#/definitions/X-Tyk-AuthSource"
},
"cookie":{
"$ref":"#/definitions/X-Tyk-AuthSource"
},
"query":{
"$ref":"#/definitions/X-Tyk-AuthSource"
},
"allowedAuthorizeTypes":{
"type":"array",
"items":{
"type":"string",
"enum":[
"code",
"token"
]
}
},
"refreshToken":{
"type":"boolean"
},
"authLoginRedirect":{
"type":"string"
},
"notifications":{
"$ref":"#/definitions/X-Tyk-Notifications"
}
},
"required":[
"enabled"
]
},
"X-Tyk-ExternalOAuth":{
"type":"object",
"description":"Support for external OAuth Middleware will be deprecated starting from 5.7.0. To avoid any disruptions, we recommend that you use JSON Web Token (JWT) instead, as explained in https://tyk.io/docs/basic-config-and-security/security/authentication-authorization/ext-oauth-middleware/",
"properties":{
"enabled":{
"type":"boolean"
},
"header":{
"$ref":"#/definitions/X-Tyk-AuthSource"
},
"cookie":{
"$ref":"#/definitions/X-Tyk-AuthSource"
},
"query":{
"$ref":"#/definitions/X-Tyk-AuthSource"
},
"providers":{
"type":"array",
"items":[
{
"$ref":"#/definitions/X-Tyk-OAuthProvider"
}
]
}
},
"required":[
"enabled"
]
},
"X-Tyk-OAuthProvider":{
"type":"object",
"properties":{
"jwt":{
"$ref":"#/definitions/X-Tyk-JWTValidation"
},
"introspection":{
"$ref":"#/definitions/X-Tyk-Introspection"
}
}
},
"X-Tyk-JWTValidation":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"signingMethod":{
"type":"string"
},
"source":{
"type":"string"
},
"identityBaseField":{
"type":"string"
},
"issuedAtValidationSkew":{
"$ref":"#/definitions/X-Tyk-UInt"
},
"notBeforeValidationSkew":{
"$ref":"#/definitions/X-Tyk-UInt"
},
"expiresAtValidationSkew":{
"$ref":"#/definitions/X-Tyk-UInt"
}
},
"required":[
"enabled",
"signingMethod",
"source"
]
},
"X-Tyk-Introspection":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"url":{
"type":"string",
"format":"uri"
},
"clientId":{
"type":"string"
},
"clientSecret":{
"type":"string"
},
"identityBaseField":{
"type":"string"
},
"cache":{
"$ref":"#/definitions/X-Tyk-IntrospectionCache"
}
}
},
"X-Tyk-IntrospectionCache":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"timeout":{
"type":"integer"
}
},
"required":[
"enabled",
"timeout"
]
},
"X-Tyk-CustomDomain":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"name":{
"type":"string"
},
"certificates":{
"type":"array",
"items":[
{
"type":"string"
}
]
}
},
"required":[
"enabled",
"name"
]
},
"X-Tyk-Header":{
"type":"object",
"properties":{
"name":{
"type":"string"
},
"value":{
"type":"string"
}
},
"required":[
"name",
"value"
]
},
"X-Tyk-CircuitBreaker":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"threshold":{
"type":"number",
"minimum":0,
"maximum":1
},
"sampleSize":{
"type":"integer",
"minimum":0
},
"coolDownPeriod":{
"type":"integer",
"minimum":0
},
"halfOpenStateEnabled":{
"type":"boolean"
}
},
"required":[
"enabled",
"threshold",
"sampleSize",
"coolDownPeriod",
"halfOpenStateEnabled"
]
},
"X-Tyk-RateLimit":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"rate":{
"type":"number"
},
"per":{
"type":"string",
"pattern":"^(\\d+h)?(\\d+m)?(\\d+s)?$"
}
},
"required":[
"enabled",
"rate",
"per"
]
},
"X-Tyk-DetailedTracing":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
}
},
"required":[
"enabled"
]
},
"X-Tyk-EventHandlers":{
"type":"object",
"anyOf":[
{
"$ref":"#/definitions/X-Tyk-Webhook-With-ID"
},
{
"$ref":"#/definitions/X-Tyk-Webhook-Without-ID"
},
{
"$ref":"#/definitions/X-Tyk-JSVMEvent"
},
{
"$ref":"#/definitions/X-Tyk-LogEvent"
}
]
},
"X-Tyk-Webhook-With-ID":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"trigger":{
"$ref":"#/definitions/X-Tyk-EventTrigger"
},
"type":{
"method":{
"$ref":"#/definitions/X-Tyk-EventType"
}
},
"id":{
"type":"string"
},
"cooldownPeriod":{
"type":"string",
"pattern":"^(\\d+h)?(\\d+m)?(\\d+s)?$"
}
},
"required":[
"enabled",
"type",
"trigger",
"id",
"cooldownPeriod"
]
},
"X-Tyk-Webhook-Without-ID":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"trigger":{
"$ref":"#/definitions/X-Tyk-EventTrigger"
},
"type":{
"$ref":"#/definitions/X-Tyk-EventType"
},
"name":{
"type":"string"
},
"url":{
"type":"string",
"format":"uri-reference"
},
"method":{
"type":"string",
"enum":[
"GET",
"PUT",
"POST",
"DELETE",
"PATCH"
]
},
"cooldownPeriod":{
"type":"string",
"pattern":"^(\\d+h)?(\\d+m)?(\\d+s)?$"
},
"bodyTemplate":{
"type":"string"
},
"headers":{
"type":"array",
"items":[
{
"$ref":"#/definitions/X-Tyk-Header"
}
]
}
},
"required":[
"enabled",
"type",
"trigger",
"url",
"method",
"cooldownPeriod",
"bodyTemplate"
]
},
"X-Tyk-JSVMEvent":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"trigger":{
"$ref":"#/definitions/X-Tyk-EventTrigger"
},
"type":{
"$ref":"#/definitions/X-Tyk-EventType"
},
"id":{
"type":"string"
},
"name":{
"type":"string"
},
"functionName":{
"type":"string"
},
"path":{
"type":"string"
}
},
"required":[
"enabled",
"trigger",
"type",
"name",
"functionName",
"path"
]
},
"X-Tyk-LogEvent":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"trigger":{
"$ref":"#/definitions/X-Tyk-EventTrigger"
},
"type":{
"$ref":"#/definitions/X-Tyk-EventType"
},
"id":{
"type":"string"
},
"name":{
"type":"string"
},
"logPrefix":{
"type":"string"
}
},
"required":[
"enabled",
"trigger",
"type",
"name",
"logPrefix"
]
},
"X-Tyk-EventType":{
"type":"string",
"enum":[
"webhook",
"custom",
"log"
]
},
"X-Tyk-EventTrigger":{
"type":"string",
"enum":[
"QuotaExceeded",
"RatelimitExceeded",
"RateLimitSmoothingUp",
"RateLimitSmoothingDown",
"AuthFailure",
"UpstreamOAuthError",
"KeyExpired",
"VersionFailure",
"OrgQuotaExceeded",
"OrgRateLimitExceeded",
"TriggerExceeded",
"BreakerTriggered",
"BreakerTripped",
"BreakerReset",
"HostDown",
"HostUp",
"TokenCreated",
"TokenUpdated",
"TokenDeleted",
"CertificateExpiringSoon",
"CertificateExpired"
]
},
"X-Tyk-ContextVariables":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
}
},
"required":[
"enabled"
]
},
"X-Tyk-IgnoreCase":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
}
},
"required":[
"enabled"
]
},
"X-Tyk-TrafficLogs":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"tagHeaders":{
"type":"array",
"items":{
"type":"string"
}
},
"customRetentionPeriod":{
"type":"string",
"pattern":"^(\\d+h)?(\\d+m)?(\\d+s)?$",
"not":{
"pattern":"^(0h)?(0m)?(0s)?$"
}
},
"plugins":{
"type":"array",
"items":{
"$ref":"#/definitions/X-Tyk-CustomAnalyticsPluginConfig"
}
}
},
"required":[
"enabled"
]
},
"X-Tyk-GlobalRequestSizeLimit":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"value":{
"type":"integer"
}
},
"required":[
"enabled",
"value"
]
},
"X-Tyk-UInt":{
"type":"integer",
"minimum":0
},
"X-Tyk-DomainDef":{
"type":"string",
"pattern":"^([*a-zA-Z0-9-]+(\\.[*a-zA-Z0-9-]+)*)(:\\d+)?$"
},
"X-Tyk-UpstreamAuthentication":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"basicAuth":{
"$ref":"#/definitions/X-Tyk-UpstreamBasicAuthentication"
},
"oauth":{
"$ref":"#/definitions/X-Tyk-UpstreamOAuth"
},
"requestSigning":{
"$ref":"#/definitions/X-Tyk-UpstreamRequestSigning"
}
},
"required":[
"enabled"
]
},
"X-Tyk-UpstreamBasicAuthentication":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"header":{
"$ref":"#/definitions/X-Tyk-UpstreamAuthSource"
},
"username":{
"$ref":"#/definitions/X-Tyk-NonEmptyString"
},
"password":{
"$ref":"#/definitions/X-Tyk-NonEmptyString"
}
},
"required":[
"enabled",
"username",
"password"
]
},
"X-Tyk-UpstreamOAuth":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"allowedAuthorizeTypes":{
"type":[
"array",
"null"
],
"items":{
"type":"string",
"enum":[
"clientCredentials",
"password"
]
},
"minItems":0
},
"clientCredentials":{
"type":"object",
"properties":{
"clientId":{
"$ref":"#/definitions/X-Tyk-NonEmptyString"
},
"clientSecret":{
"$ref":"#/definitions/X-Tyk-NonEmptyString"
},
"tokenUrl":{
"$ref":"#/definitions/X-Tyk-NonEmptyString"
},
"scopes":{
"type":[
"array",
"null"
]
},
"header":{
"$ref":"#/definitions/X-Tyk-UpstreamAuthSource"
},
"extraMetadata":{
"type":[
"array",
"null"
]
}
},
"required":[
"clientId",
"clientSecret",
"tokenUrl"
]
},
"password":{
"type":"object",
"properties":{
"clientId":{
"$ref":"#/definitions/X-Tyk-NonEmptyString"
},
"clientSecret":{
"$ref":"#/definitions/X-Tyk-NonEmptyString"
},
"tokenUrl":{
"$ref":"#/definitions/X-Tyk-NonEmptyString"
},
"scopes":{
"type":[
"array",
"null"
]
},
"username":{
"$ref":"#/definitions/X-Tyk-NonEmptyString"
},
"password":{
"$ref":"#/definitions/X-Tyk-NonEmptyString"
},
"header":{
"$ref":"#/definitions/X-Tyk-UpstreamAuthSource"
},
"extraMetadata":{
"type":[
"array",
"null"
]
}
},
"required":[
"clientId",
"tokenUrl",
"username",
"password"
]
}
},
"required":[
"enabled",
"allowedAuthorizeTypes"
]
},
"X-Tyk-UpstreamRequestSigning":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"signatureHeader":{
"type":"string"
},
"algorithm":{
"type":"string"
},
"keyId":{
"type":"string"
},
"headers":{
"type":"array",
"items":{
"type":"string"
}
},
"secret":{
"type":"string"
},
"certificateId":{
"type":"string"
}
},
"required":[
"enabled"
]
},
"X-Tyk-NonEmptyString":{
"type":"string",
"pattern":"\\S+"
},
"X-Tyk-UpstreamAuthSource":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"name":{
"type":"string"
}
}
},
"X-Tyk-IPAccessControl":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"allow":{
"type":"array",
"items":{
"type":"string"
}
},
"block":{
"type":"array",
"items":{
"type":"string"
}
}
}
},
"X-Tyk-BatchProcessing":{
"properties":{
"enabled":{
"type":"boolean"
}
},
"required":[
"enabled"
]
},
"X-Tyk-LoadBalancing":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"skipUnavailableHosts":{
"type":"boolean"
},
"targets":{
"type":"array",
"items":[
{
"$ref":"#/definitions/X-Tyk-LoadBalancingTarget"
}
]
}
},
"required":[
"enabled"
],
"allOf":[
{
"if":{
"properties":{
"enabled":{
"const":true
}
}
},
"then":{
"properties":{
"targets":{
"minItems":1
}
},
"required":[
"targets"
]
}
}
]
},
"X-Tyk-TLSTransport":{
"type":"object",
"properties":{
"insecureSkipVerify":{
"type":"boolean"
},
"ciphers":{
"type":"array",
"items":{
"type":"string"
}
},
"minVersion":{
"type":"string",
"enum":[
"1.0",
"1.1",
"1.2",
"1.3"
]
},
"maxVersion":{
"type":"string",
"enum":[
"1.0",
"1.1",
"1.2",
"1.3"
]
},
"forceCommonNameCheck":{
"type":"boolean"
}
}
},
"X-Tyk-Proxy":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"url":{
"type":"string"
}
},
"required":[
"enabled"
]
},
"X-Tyk-PreserveHostHeader":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
}
},
"required":[
"enabled"
]
},
"X-Tyk-PreserveTrailingSlash":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
}
},
"required":[
"enabled"
]
},
"X-Tyk-UptimeTestCommand":{
"type":"object",
"properties":{
"message":{
"type":"string"
},
"name":{
"type":"string"
}
}
},
"X-Tyk-UptimeTest":{
"type":"object",
"properties":{
"body":{
"type":"string"
},
"commands":{
"type":"array",
"items":{
"$ref":"#/definitions/X-Tyk-UptimeTestCommand"
}
},
"enableProxyProtocol":{
"type":"boolean"
},
"headers":{
"type":"object",
"additionalProperties":{
"type":"string"
}
},
"method":{
"type":"string"
},
"timeout":{
"$ref":"#/definitions/X-Tyk-ReadableDuration"
},
"url":{
"type":"string"
}
}
},
"X-Tyk-UptimeTests":{
"type":"object",
"properties":{
"enabled":{
"type":"boolean"
},
"hostDownRetestPeriod":{
"$ref":"#/definitions/X-Tyk-ReadableDuration"
},
"logRetentionPeriod":{
"$ref":"#/definitions/X-Tyk-ReadableDuration"
},
"serviceDiscovery":{
"$ref":"#/definitions/X-Tyk-ServiceDiscovery"
},
"tests":{
"type":"array",
"items":{
"$ref":"#/definitions/X-Tyk-UptimeTest"
}
}
},
"required":[
"enabled"
]
},
"X-Tyk-ReadableDuration":{
"type":"string",
"pattern":"^(\\d+h)?(\\d+m)?(\\d+s)?(\\d+ms)?(\\d+µs)?(\\d+ns)?$"
},
"X-Tyk-LoadBalancingTarget":{
"type":"object",
"properties":{
"url":{
"type":"string"
},
"weight":{
"type":"number"
}
},
"required":[
"url",
"weight"
]
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment