Created
November 6, 2025 07:59
-
-
Save buger/ab7e9594d8a1afbcde257df0d675fe8e to your computer and use it in GitHub Desktop.
Tyk API Gateway API schema
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "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