openapi: 3.0.0 info: title: Tyk Gateway API version: 4.3.0 description: |- The Tyk Gateway API is the primary means for integrating your application with the Tyk API Gateway system. This API is very small, and has no granular permissions system. It is intended to be used purely for internal automation and integration. **Warning: Under no circumstances should outside parties be granted access to this API.** The Tyk Gateway API is capable of: * Managing session objects (key generation) * Managing and listing policies * Managing and listing API Definitions (only when not using the Dashboard) * Hot reloads / reloading a cluster configuration * OAuth client creation (only when not using the Dashboard) In order to use the Gateway API, you'll need to set the `secret` parameter in your tyk.conf file. The shared secret you set should then be sent along as a header with each Gateway API Request in order for it to be successful: ``` x-tyk-authorization: ```
The Tyk Gateway API is subsumed by the Tyk Dashboard API in Pro installations. servers: - url: 'http://localhost/' - url: 'https://localhost/' tags: - name: Keys description: |- All keys that are used to access services via Tyk correspond to a session object that informs Tyk about the context of this particular token, like access rules and rate/quota allowance. - name: Policies description: |- A Tyk security policy incorporates several security options that can be applied to an API key. It acts as a template that can override individual sections of an API key (or identity) in Tyk. - name: OAuth description: |- Manage OAuth clients, and manage their tokens - name: Cache Invalidation description: |- Sometimes a cache might contain stale data, or it may just need to be cleared because of an invalid configuration. This call will purge all keys associated with a cache on an API-by-API basis. - name: Hot Reload description: Force restart of the Gateway or whole cluster - name: Health Checking description: Check health check of the Gateway and loaded APIs - name: Organisation Quotas description: |- It is possible to force API quota and rate limit across all keys that belong to a specific organisation ID. Rate limiting at an organisation level is useful for creating tiered access levels and trial accounts. The Organisation rate limiting middleware works with both Quotas and Rate Limiters. In order to manage this functionality, a simple API has been put in place to manage these sessions. Although the Organisation session-limiter uses the same session object, all other security keys are optional as they are not used.

Managing active status

To disallow access to an entire group of keys without rate limiting the organisation, create a session object with the "is_inactive" key set to true. This will block access before any other middleware is executed. It is useful when managing subscriptions for an organisation group and access needs to be blocked because of non-payment. - name: Batch requests description: |- Tyk supports batch requests, so a client makes a single request to the API but gets a compound response object back. This is especially handy if clients have complex requests that have multiple synchronous dependencies and do not wish to have the entire request / response cycle running for each event. To enable batch request support, set the `enable_batch_request_support` value to `true` This is especially handy if clients have complex requests that have multiple synchronous dependencies and do not wish to have the entire request / response cycle running for each event. Batch requests that come into Tyk are *run through the whole Tyk machinery* and *use a relative path to prevent spamming*. This means that a batch request to Tyk for three resources with the same API key will have three requests applied to their session quota and request limiting could become active if they are being throttled. Tyk reconstructs the API request based on the data in the batch request. This is to ensure that Tyk is not being used to proxy requests to other hosts outside of the upstream API being accessed. Batch requests are created by POSTing to the `/{listen_path}/tyk/batch/` endpoint. These requests **do not require a valid key**, but their request list does.

Sample Request

```{json} { "requests": [ { "method": "GET", "headers": { "x-tyk-test": "1", "x-tyk-version": "1.2", "authorization": "1dbc83b9c431649d7698faa9797e2900f" }, "body": "", "relative_url": "get" }, { "method": "GET", "headers": { "x-tyk-test": "2", "x-tyk-version": "1.2", "authorization": "1dbc83b9c431649d7698faa9797e2900f" }, "body": "", "relative_url": "get" } ], "suppress_parallel_execution": false } ``` The response will will be a structured reply that encapsulates the responses for each of the outbound requests. If `suppress_parallel_execution` is set to `true`, requests will be made synchronously. If set to `false` then they will run in parallel and the response order is not guaranteed.

Sample Response

``` [ { "relative_url": "get", "code": 200, "headers": { "Access-Control-Allow-Credentials": [ "true" ], "Access-Control-Allow-Origin": [ "*" ], "Content-Length": [ "497" ], "Content-Type": [ "application/json" ], "Date": [ "Wed, 12 Nov 2014 15:32:43 GMT" ], "Server": [ "gunicorn/18.0" ], "Via": [ "1.1 vegur" ] }, "body": "{ "args": {}, "headers": { "Accept-Encoding": "gzip", "Authorization": "1dbc83b9c431649d7698faa9797e2900f", "Connect-Time": "2", "Connection": "close", "Host": "httpbin.org", "Total-Route-Time": "0", "User-Agent": "Go 1.1 package http", "Via": "1.1 vegur", "X-Request-Id": "6a22499a-2776-4aa1-80c0-686581a8be4d", "X-Tyk-Test": "2", "X-Tyk-Version": "1.2" }, "origin": "127.0.0.1, 62.232.114.250", "url": "http://httpbin.org/get" }" }, { "relative_url": "get", "code": 200, "headers": { "Access-Control-Allow-Credentials": [ "true" ], "Access-Control-Allow-Origin": [ "*" ], "Content-Length": [ "497" ], "Content-Type": [ "application/json" ], "Date": [ "Wed, 12 Nov 2014 15:32:43 GMT" ], "Server": [ "gunicorn/18.0" ], "Via": [ "1.1 vegur" ] }, "body": "{ "args": {}, "headers": { "Accept-Encoding": "gzip", "Authorization": "1dbc83b9c431649d7698faa9797e2900f", "Connect-Time": "7", "Connection": "close", "Host": "httpbin.org", "Total-Route-Time": "0", "User-Agent": "Go 1.1 package http", "Via": "1.1 vegur", "X-Request-Id": "1ab61f50-51ff-4828-a7e2-17240385a6d2", "X-Tyk-Test": "1", "X-Tyk-Version": "1.2" }, "origin": "127.0.0.1, 62.232.114.250", "url": "http://httpbin.org/get" }" } ] ``` With the body for each request string encoded in the `body` field. * `expire_analytics_after`: If you are running a busy API, you may want to ensure that your MongoDB database does not overflow with old data. Set the `expire_analytics_after` value to the number of seconds you would like the data to last for. Setting this flag to anything above `0` will set an `expireAt` field for each record that is written to the database. **Important:** Tyk will not create the expiry index for you. In order to implement data expiry for your analytics data, ensure that the index is created This is easily achieved using the [MongoDB command line interface](https://docs.mongodb.com/getting-started/shell/client/). * `dont_set_quota_on_create`: This setting defaults to `false`, but if set to `true`, when the API is used to edit, create or add keys, the quota cache in Redis will not be re-set. By default, all updates or creates to Keys that have Quotas set will re-set the quota (This has been the default behaviour since 1.0). This behaviour can be bypassed on a case-by-case basis by using the `suppress_reset` parameter when making a REST API request. This is the advised mode of operation as it allows for manual, granular control over key quotas and reset timings. * `cache_options`: This section enables you to configure the caching behaviour of Tyk and to enable or disable the caching middleware for your API. * `cache_options.enable_cache`: Set this value to `true` if the cache should be enabled for this endpoint, setting it to false will stop all caching behaviour. * `cache_options.cache_timeout`: The amount of time, in seconds, to keep cached objects, defaults to `60` seconds. * `cache_options.cache_all_safe_requests`: Set this to `true` if you want all *safe* requests (GET, HEAD, OPTIONS) to be cached. This is a blanket setting for APIs where caching is required but you don't want to set individual paths up in the definition. * `cache_options.enable_upstream_cache_control`: Set this to `true` if you want your application to control the cache options for Tyk (TTL and whether to cache or not). See [Caching](/docs/basic-config-and-security/reduce-latency/caching/) for more details. * `response_processors`: Response processors need to be specifically defined so they are loaded on API creation, otherwise the middleware will not fire. In order to have the two main response middleware components fire, the following configuration object should be supplied. ```{json} "response_processors": [ { "name": "header_injector", "options": { "add_headers": {"name": "value"}, "remove_headers": ["name"] } }, { "name": "response_body_transform", "options": {} } ] ``` The options for the `header_injector` are global, and will apply to all outbound requests. - name: APIs description: |- **Note: Applies only to Tyk Gateway Community Edition** API Management is very simple using the Tyk REST API: each update only affects the underlying file, and this endpoint will only work with disk based installations, not Database-backed ones. APIs that are added this way are flushed to to disk into the app_path folder using the format: `{api-id}.json`. Updating existing APIs that use a different naming convention will cause those APIs to be added, which could subsequently lead to a loading error and crash if they use the same listen_path. These methods only work on a single API node. If updating a cluster, it is important to ensure that all nodes are updated before initiating a reload. paths: '/tyk/apis': get: description: |- List APIs Only if used without the Tyk Dashboard tags: - APIs operationId: listApis responses: '200': description: List of API definitions content: application/json: schema: type: array items: $ref: '#/components/schemas/APIDefinition' example: - name: "TestAPI" use_keyless: true active: true proxy: listen_path: "/test" post: description: |- Create API A single Tyk node can have its API Definitions queried, deleted and updated remotely. This functionality enables you to remotely update your Tyk definitions without having to manage the files manually. tags: - APIs operationId: createApi parameters: - name: base_api_id in: query required: false schema: type: string description: The base API which the new version will be linked to. - name: base_api_version_name in: query required: false schema: type: string description: The version name of the base API while creating the first version. This doesn't have to be sent for the next versions but if it is set, it will override base API version name. - name: new_version_name in: query required: false schema: type: string description: The version name of the created version. - name: set_default in: query required: false schema: type: boolean description: If true, the new version is set as default version. requestBody: content: application/json: schema: $ref: "#/components/schemas/APIDefinition" example: name: "TestAPI" use_keyless: true active: true proxy: listen_path: "/test" responses: '200': description: API created content: application/json: schema: $ref: "#/components/schemas/apiModifyKeySuccess" example: status: "ok" action: "created" key: "{...API JSON definition...}" '400': description: Malformed data content: application/json: schema: $ref: "#/components/schemas/apiStatusMessage" example: status: "error" message: "Malformed API data" /tyk/apis/oas: get: description: |- List all OAS format APIs, when used without the Tyk Dashboard. tags: - OASAPIs operationId: listApisOAS parameters: - description: |- Mode of OAS get, by default mode could be empty which means to get OAS spec including OAS Tyk extension. When mode=public, OAS spec excluding Tyk extension will be returned in the response name: mode in: query schema: type: string example: public responses: '200': description: List of API definitions in OAS format content: application/json: schema: type: array items: $ref: '#/components/schemas/OASSchemaResponse' post: description: |- Create API with OAS format A single Tyk node can have its API Definitions queried, deleted and updated remotely. This functionality enables you to remotely update your Tyk definitions without having to manage the files manually. tags: - OASAPIs operationId: createApiOAS parameters: - name: base_api_id in: query required: false schema: type: string description: The base API which the new version will be linked to. - name: base_api_version_name in: query required: false schema: type: string description: The version name of the base API while creating the first version. This doesn't have to be sent for the next versions but if it is set, it will override base API version name. - name: new_version_name in: query required: false schema: type: string description: The version name of the created version. - name: set_default in: query required: false schema: type: boolean description: If true, the new version is set as default version. requestBody: content: application/json: schema: $ref: "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.0/schema.json" responses: '200': description: API created content: application/json: schema: $ref: "#/components/schemas/apiModifyKeySuccess" example: status: "ok" action: "created" key: "{...API JSON definition...}" '400': description: Malformed data content: application/json: schema: $ref: "#/components/schemas/apiStatusMessage" example: status: "error" message: "Malformed API data" '/tyk/apis/{apiID}': parameters: - description: The API ID name: apiID in: path required: true schema: type: string get: description: |- Get API definition Only if used without the Tyk Dashboard tags: - APIs operationId: getApi responses: '200': description: API definition content: application/json: schema: $ref: "#/components/schemas/APIDefinition" example: name: "TestAPI" use_keyless: true active: true proxy: listen_path: "/test" headers: x-tyk-base-api-id: schema: type: string description: ID of the base API if the requested API is a version. put: description: | Updating an API definition uses the same signature an object as a `POST`, however it will first ensure that the API ID that is being updated is the same as the one in the object being `PUT`. Updating will completely replace the file descriptor and will not change an API Definition that has already been loaded, the hot-reload endpoint will need to be called to push the new definition to live. tags: - APIs operationId: updateApi requestBody: content: application/json: schema: $ref: "#/components/schemas/APIDefinition" example: name: "TestAPI" use_keyless: true active: true proxy: listen_path: "/test" responses: '200': description: API updated content: application/json: schema: $ref: "#/components/schemas/apiModifyKeySuccess" example: status: "ok" action: "updated" key: "{...API JSON definition...}" '400': description: Malformed data content: application/json: schema: $ref: "#/components/schemas/apiStatusMessage" example: status: "error" message: "Malformed API data" delete: description: |- Deleting an API definition will remove the file from the file store, the API definition will NOT be unloaded, a separate reload request will need to be made to disable the API endpoint. tags: - APIs operationId: deleteApi responses: '200': description: API deleted content: application/json: schema: $ref: '#/components/schemas/apiStatusMessage' example: message: API deleted status: ok '400': description: No API ID specified content: application/json: schema: $ref: '#/components/schemas/apiStatusMessage' example: message: API ID not specified status: error '/tyk/apis/oas/{apiID}': parameters: - description: The API ID name: apiID in: path required: true schema: type: string get: description: |- Get API definition in OAS format Only if used without the Tyk Dashboard tags: - OASAPIs parameters: - description: |- Mode of OAS get, by default mode could be empty which means to get OAS spec including OAS Tyk extension. When mode=public, OAS spec excluding Tyk extension will be returned in the response name: mode in: query schema: type: string example: public operationId: listApiOAS responses: '200': description: API definition content: application/json: schema: $ref: "#/components/schemas/OASSchemaResponse" headers: x-tyk-base-api-id: schema: type: string description: ID of the base API if the requested API is a version. put: description: | Updating an API definition uses the same signature an object as a `POST`, however it will first ensure that the API ID that is being updated is the same as the one in the object being `PUT`. Updating will completely replace the file descriptor and will not change an API Definition that has already been loaded, the hot-reload endpoint will need to be called to push the new definition to live. tags: - OASAPIs operationId: updateApiOAS requestBody: content: application/json: schema: $ref: "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.0/schema.json" responses: '200': description: API updated content: application/json: schema: $ref: "#/components/schemas/apiModifyKeySuccess" example: status: "ok" action: "updated" key: "{...API JSON definition...}" '400': description: Malformed data content: application/json: schema: $ref: "#/components/schemas/apiStatusMessage" example: status: "error" message: "Malformed API data" patch: summary: Patch a single OAS API by ID description: |- Update API with OAS format. You can use this endpoint to update OAS part of the tyk API definition. This endpoint allows you to configure tyk OAS extension based on query params provided(similar to import) tags: - OASAPIs operationId: patchApiOAS parameters: - $ref: '#/components/parameters/UpstreamURL' - $ref: '#/components/parameters/ListenPath' - $ref: '#/components/parameters/CustomDomain' - $ref: '#/components/parameters/ValidateRequest' - $ref: '#/components/parameters/AllowList' - $ref: '#/components/parameters/MockResponse' - $ref: '#/components/parameters/Authentication' requestBody: content: application/json: schema: $ref: "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.0/schema.json" responses: '200': description: API patched content: application/json: schema: $ref: "#/components/schemas/apiModifyKeySuccess" example: status: "ok" action: "modified" key: "{updated APIID}" '400': description: Bad request content: application/json: schema: $ref: "#/components/schemas/apiStatusMessage" examples: malformedBody: summary: When the request body is malformed value: message: "Request malformed" status: "error" missingAPIID: summary: When the request is missing APIID in query Param value: message: "Must specify an apiID to patch" status: "error" nonExistingAPIID: summary: When the client sends and APIID which doesn't exists in tyk gw value: message: "No API found for APIID {APIID}" status: "error" invalidUpstreamURL: summary: When the client sends query param upstreamURL which isn't valid value: message: "invalid upstream URL" status: "error" 500: description: When patch request is send while using dashboard app configs content: application/json: schema: $ref: "#/components/schemas/apiStatusMessage" example: summary: dashboard app configs is used for tyk api definitions value: message: "Due to enabled use_db_app_configs, please use the Dashboard API" status: "error" delete: description: |- Deleting an API definition will remove the file from the file store, the API definition will NOT be unloaded, a separate reload request will need to be made to disable the API endpoint. tags: - OASAPIs operationId: deleteOASApi responses: '200': description: API deleted content: application/json: schema: $ref: '#/components/schemas/apiStatusMessage' example: message: API deleted status: ok '400': description: No API ID specified content: application/json: schema: $ref: '#/components/schemas/apiStatusMessage' example: message: API ID not specified status: error '/tyk/apis/oas/{apiID}/export': parameters: - description: The API ID name: apiID in: path required: true schema: type: string get: description: |- Download all OAS format APIs, when used without the Tyk Dashboard. tags: - OASAPIs operationId: downloadApiOASPublic parameters: - description: |- Mode of OAS export, by default mode could be empty which means to export OAS spec including OAS Tyk extension. When mode=public, OAS spec excluding Tyk extension is exported name: mode in: query schema: type: string example: public responses: '200': description: API definition content: application/json: schema: $ref: "#/components/schemas/OASSchemaResponse" /tyk/apis/oas/export: get: description: |- Download all OAS format APIs, when used without the Tyk Dashboard. tags: - OASAPIs operationId: downloadApisOASPublic parameters: - description: |- The mode of OAS export. By default the mode is not set which means the OAS spec is exported including the OAS Tyk extension. If the mode is set to public, the OAS spec excluding the Tyk extension is exported. name: mode in: query schema: type: string example: public responses: '200': description: API definition content: application/json: schema: type: array items: $ref: '#/components/schemas/OASSchemaResponse' /tyk/apis/oas/import: post: description: |- Create a new OAS format API, without x-tyk-gateway. For use with an existing OAS API that you want to expose via your Tyk Gateway. (New) tags: - OASAPIs operationId: importOAS parameters: - $ref: '#/components/parameters/UpstreamURL' - $ref: '#/components/parameters/ListenPath' - $ref: '#/components/parameters/CustomDomain' - $ref: '#/components/parameters/ApiID' - $ref: '#/components/parameters/AllowList' - $ref: '#/components/parameters/MockResponse' - $ref: '#/components/parameters/ValidateRequest' - $ref: '#/components/parameters/Authentication' requestBody: content: application/json: schema: $ref: "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.0/schema.json" responses: '200': description: API definition created content: application/json: schema: $ref: "#/components/schemas/apiModifyKeySuccess" example: status: "ok" action: "added" key: "{created APIID}" '400': description: Bad request content: application/json: schema: $ref: "#/components/schemas/apiStatusMessage" examples: malformedBody: summary: When the request body is malformed value: message: "Request malformed" status: "error" invalidUpstreamURL: summary: When the client sends a query param upstreamURL which isn't valid value: message: "invalid upstream URL" status: "error" 500: description: When an import request is sent using your Tyk Dashboard app configs content: application/json: schema: $ref: "#/components/schemas/apiStatusMessage" example: summary: Tyk Dashboard app configs are being used for Tyk API definitions value: message: "Due to enabled use_db_app_configs, please use the Dashboard API" status: "error" '/tyk/cache/{apiID}': parameters: - description: The API ID name: apiID in: path required: true schema: type: string delete: summary: Invalidate cache description: Invalidate cache for the given API tags: - Cache Invalidation operationId: invalidateCache responses: '200': description: Invalidate cache content: application/json: schema: $ref: '#/components/schemas/apiStatusMessage' example: message: cache invalidated status: ok '/tyk/reload/': get: summary: Hot-reload a single node description: Tyk is capable of reloading configurations without having to stop serving requests. This means that API configurations can be added at runtime, or even modified at runtime and those rules applied immediately without any downtime. parameters: - description: Block a response until the reload is performed. This can be useful in scripting environments like CI/CD workflows. name: block in: query required: false schema: type: boolean enum: [true] tags: - Hot Reload operationId: hotReload responses: '200': description: Reload gateway content: application/json: schema: $ref: '#/components/schemas/apiStatusMessage' example: status: ok '/tyk/reload/group': get: summary: Hot-reload a Tyk group description: To reload a whole group of Tyk nodes (without using the Dashboard or host manager). You can send an API request to a single node, this node will then send a notification through the pub/sub infrastructure to all other listening nodes (including the host manager if it is being used to manage NginX) which will then trigger a global reload. tags: - Hot Reload operationId: hotReloadGroup responses: '200': description: Reload the Tyk Gateway content: application/json: schema: $ref: '#/components/schemas/apiStatusMessage' example: status: ok '/tyk/hello': get: summary: Check the Health of the Tyk Gateway description: | From v2.7.5 you can now rename the `/hello` endpoint by using the `health_check_endpoint_name` option Returns 200 response in case of success tags: - Health Checking operationId: hello responses: '200': description: Success content: text/html: schema: type: string example: "Hello Tiki" '/tyk/{listenPath}/hello': parameters: - in: path name: listenPath required: true description: "Listen path of loaded API" schema: type: string get: summary: Check the Health of the API description: Should point to API domain if it has its own tags: - Health Checking operationId: helloAPI responses: '200': description: Success content: text/html: schema: type: string example: "Hello Tiki" '/tyk/certs': get: parameters: - description: Organisation ID to list the certificates in: query name: org_id required: true schema: type: string - description: Mode to list the certificate details name: mode in: query required: false schema: type: string example: 'detailed' - description: Comma separated list of certificates to list name: certID in: query required: false schema: type: string example: 'e6ce2b49-3e31-44de-95a7-12f054724283,234a37ac-28d1-4f12-b936-ffb4211b79f1' summary: List Certificates description: List All Certificates in the Tyk Gateway tags: - Certs operationId: listCerts responses: '200': description: List of all Certificates content: application/json: schema: oneOf: - $ref: '#/components/schemas/APIAllCertificates' - $ref: '#/components/schemas/APIAllCertificateBasics' - type: array items: $ref: '#/components/schemas/CertificateMeta' post: summary: Add a certificate description: Add a certificate to the Tyk Gateway tags: - Certs operationId: addCert parameters: - description: Organisation ID to list the certificates in: query name: org_id required: true schema: type: string requestBody: content: text/plain: schema: type: string responses: '200': description: New Key added content: application/json: schema: $ref: '#/components/schemas/APICertificateStatusMessage' example: id: 'e6ce2b49-3e31-44de-95a7-12f054724283' message: 'Certificate added' status: ok '403': description: Malformed data content: application/json: schema: $ref: '#/components/schemas/apiStatusMessage' example: message: Malformed cert data status: error delete: parameters: - description: Certifiicate ID to be deleted in: query name: certID required: true schema: type: string - description: Organisation ID to list the certificates in: query name: org_id required: true schema: type: string summary: Delete Certificate description: Delete certificate by id tags: - Certs operationId: deleteCerts responses: '200': description: Deleted certificate content: application/json: schema: $ref: '#/components/schemas/apiStatusMessage' example: message: removed status: ok '/tyk/keys': get: summary: List Keys description: You can retrieve all the keys in your Tyk instance. Returns an array of Key IDs. tags: - Keys operationId: listKeys responses: '200': description: List of all API keys content: application/json: schema: $ref: "#/components/schemas/apiAllKeys" post: summary: Create a key description: |- Tyk will generate the access token based on the OrgID specified in the API Definition and a random UUID. This ensures that keys can be "owned" by different API Owners should segmentation be needed at an organisational level.

API keys without access_rights data will be written to all APIs on the system (this also means that they will be created across all SessionHandlers and StorageHandlers, it is recommended to always embed access_rights data in a key to ensure that only targeted APIs and their back-ends are written to. tags: - Keys operationId: addKey requestBody: content: application/json: schema: $ref: "#/components/schemas/SessionState" example: quota_max: 60 quota_renews: 1406121006 quota_renewal_rate: 60 allowance: 100 rate: 100 per: 5 org_id: 53ac07777cbb8c2d53000002 responses: '200': description: New Key added content: application/json: schema: $ref: '#/components/schemas/apiModifyKeySuccess' example: action: created key: '{...KEY JSON definition...}' status: ok '400': description: Malformed data content: application/json: schema: $ref: '#/components/schemas/apiStatusMessage' example: message: Malformed Key data status: error '/tyk/keys/{keyID}': parameters: - description: The Key ID name: keyID in: path required: true schema: type: string get: summary: Get a Key description: Get session info about the specified key. Should return up to date rate limit and quota usage numbers. tags: - Keys operationId: getKey responses: '200': description: Key object content: application/json: schema: $ref: '#/components/schemas/SessionState' example: quota_max: 60 quota_renews: 1406121006 quota_renewal_rate: 60 allowance: 100 rate: 100 per: 5 org_id: 53ac07777cbb8c2d53000002 put: summary: Update Key description: |- You can also manually add keys to Tyk using your own key-generation algorithm. It is recommended if using this approach to ensure that the OrgID being used in the API Definition and the key data is blank so that Tyk does not try to prepend or manage the key in any way. tags: - Keys operationId: updateKey requestBody: content: application/json: schema: $ref: "#/components/schemas/SessionState" example: quota_max: 60 quota_renews: 1406121006 quota_renewal_rate: 60 allowance: 100 rate: 100 per: 5 org_id: 53ac07777cbb8c2d53000002 parameters: - description: |- Adding the suppress_reset parameter and setting it to 1, will cause Tyk not to reset the quota limit that is in the current live quota manager. By default Tyk will reset the quota in the live quota manager (initialising it) when adding a key. Adding the `suppress_reset` flag to the URL parameters will avoid this behaviour. name: suppress_reset in: query required: false schema: type: string enum: ["1"] responses: '200': description: Key updated content: application/json: schema: $ref: '#/components/schemas/apiModifyKeySuccess' example: action: updated status: ok '400': description: No or incorrect Key ID specified content: application/json: schema: $ref: '#/components/schemas/apiStatusMessage' example: message: Key ID not specified status: error post: summary: Create Custom Key / Import Key description: |- You can use the `POST /tyk/keys/{KEY_ID}` endpoint as defined below to import existing keys into Tyk. This example uses standard `authorization` header authentication, and assumes that the Gateway is located at `127.0.0.1:8080` and the Tyk secret is `352d20ee67be67f6340b4c0605b044b7` - update these as necessary to match your environment. To import a key called `mycustomkey`, save the JSON contents as `token.json` (see example below), then run the following Curl command. ``` curl http://127.0.0.1:8080/tyk/keys/mycustomkey -H 'x-tyk-authorization: 352d20ee67be67f6340b4c0605b044b7' -H 'Content-Type: application/json' -d @token.json ``` The following request will fail as the key doesn't exist. ``` curl http://127.0.0.1:8080/quickstart/headers -H 'Authorization. invalid123' ``` But this request will now work, using the imported key. ``` curl http://127.0.0.1:8080/quickstart/headers -H 'Authorization: mycustomkey' ```

Example token.json file

``` { "allowance": 1000, "rate": 1000, "per": 60, "expires": -1, "quota_max": -1, "quota_renews": 1406121006, "quota_remaining": 0, "quota_renewal_rate": 60, "access_rights": { "3": { "api_name": "Tyk Test API", "api_id": "3" } }, "org_id": "53ac07777cbb8c2d53000002", "basic_auth_data": { "password": "", "hash_type": "" }, "hmac_enabled": false, "hmac_string": "", "is_inactive": false, "apply_policy_id": "", "apply_policies": [ "59672779fa4387000129507d", "53222349fa4387004324324e", "543534s9fa4387004324324d" ], "monitor": { "trigger_limits": [] } } ``` tags: - Keys operationId: createCustomKey requestBody: content: application/json: schema: $ref: "#/components/schemas/SessionState" example: quota_max: 60 quota_renews: 1406121006 quota_renewal_rate: 60 allowance: 100 rate: 100 per: 5 org_id: 53ac07777cbb8c2d53000002 parameters: - description: |- Adding the suppress_reset parameter and setting it to 1, will cause Tyk not to reset the quota limit that is in the current live quota manager. By default Tyk will reset the quota in the live quota manager (initialising it) when adding a key. Adding the `suppress_reset` flag to the URL parameters will avoid this behaviour. name: suppress_reset in: query required: false schema: type: string enum: ["1"] responses: '200': description: Key updated content: application/json: schema: $ref: '#/components/schemas/apiModifyKeySuccess' example: action: updated status: ok '400': description: No or incorrect Key ID specified content: application/json: schema: $ref: '#/components/schemas/apiStatusMessage' example: message: Key ID not specified status: error delete: summary: Delete Key description: Deleting a key will remove it permanently from the system, however analytics relating to that key will still be available. tags: - Keys operationId: deleteKey responses: '200': description: Key deleted content: application/json: schema: $ref: '#/components/schemas/apiStatusMessage' example: action: Key deleted status: ok '/tyk/policies': get: summary: List Policies description: You can retrieve all the policies in your Tyk instance. Returns an array policies. tags: - Policies operationId: listPolicies responses: '200': description: List of all policies content: application/json: schema: type: array items: $ref: "#/components/schemas/Policy" post: summary: Create a Policy description: You can create a Policy in your Tyk Instance tags: - Policies operationId: addPolicy requestBody: content: application/json: schema: $ref: "#/components/schemas/Policy" example: name: new policy quota_max: 60 quota_renewal_rate: 60 allowance: 100 rate: 100 per: 5 org_id: 53ac07777cbb8c2d53000002 responses: '200': description: Policy created content: application/json: schema: $ref: '#/components/schemas/apiModifyKeySuccess' example: action: created status: ok '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/apiStatusMessage' example: message: Request malformed status: error '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/apiStatusMessage' example: message: Failed to create file! status: error '/tyk/policies/{polID}': parameters: - description: The policy ID name: polID in: path required: true schema: type: string get: summary: Get a Policy description: You can retrieve details of a single policy by ID in your Tyk instance. Returns an array policies. tags: - Policies operationId: getPolicy responses: '200': description: Get details of a single Policy content: application/json: schema: $ref: "#/components/schemas/Policy" '404': description: Policy not found content: application/json: schema: $ref: '#/components/schemas/apiStatusMessage' example: message: Policy not found status: error put: summary: Update a Policy description: You can update a Policy in your Tyk Instance by ID tags: - Policies operationId: updatePolicy requestBody: content: application/json: schema: $ref: "#/components/schemas/Policy" example: name: new policy quota_max: 60 quota_renewal_rate: 60 allowance: 100 rate: 100 per: 5 org_id: 53ac07777cbb8c2d53000002 responses: '200': description: Policy updated content: application/json: schema: $ref: '#/components/schemas/apiModifyKeySuccess' example: action: updated status: ok '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/apiStatusMessage' example: message: PUT operation on different IDs status: error '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/apiStatusMessage' example: message: Failed to create file! status: error delete: summary: Delete a Policy description: Delete a policy by ID in your Tyk instance. tags: - Policies operationId: deletePolicy responses: '200': description: Delete policy by ID content: application/json: schema: $ref: '#/components/schemas/apiModifyKeySuccess' example: action: deleted status: ok '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/apiStatusMessage' example: message: Delete failed status: error '/tyk/oauth/clients/create': post: summary: Create new OAuth client description: Any OAuth keys must be generated with the help of a client ID. These need to be pre-registered with Tyk before they can be used (in a similar vein to how you would register your app with Twitter before attempting to ask user permissions using their API).

Creating OAuth clients with Access to Multiple APIs

New from Tyk Gateway 2.6.0 is the ability to create OAuth clients with access to more than one API. If you provide the api_id it works the same as in previous releases. If you don't provide the api_id the request uses policy access rights and enumerates APIs from their setting in the newly created OAuth-client. tags: - OAuth operationId: createOAuthClient requestBody: content: application/json: schema: $ref: "#/components/schemas/NewClientRequest" example: client_id: test api_id: id policy_id: policy responses: '200': description: Client created content: application/json: schema: $ref: '#/components/schemas/NewClientRequest' example: client_id: test api_id: id policy_id: policy '/tyk/oauth/clients/{apiID}': put: summary: Update OAuth metadata and Policy ID description: Allows you to update the metadata and Policy ID for an OAuth client. tags: - OAuth operationId: updateoAuthClient parameters: - description: The API ID name: apiID in: path required: true schema: type: string responses: '200': description: OAuth client metadata updated content: application/json: schema: type: array items: $ref: '#/components/schemas/NewClientRequest' get: summary: List oAuth clients description: OAuth Clients are organised by API ID, and therefore are queried as such. tags: - OAuth operationId: listOAuthClients parameters: - description: The API ID name: apiID in: path required: true schema: type: string responses: '200': description: Get OAuth client details or a list of OAuth clients content: application/json: schema: type: array items: $ref: '#/components/schemas/NewClientRequest' '/tyk/oauth/clients/{apiID}/{keyName}': get: summary: Get OAuth client tags: - OAuth operationId: getOAuthClient parameters: - description: The API ID name: apiID in: path required: true schema: type: string minimum: 1 - description: The Client ID name: keyName in: path required: true schema: type: string responses: '200': description: Get OAuth client details or a list of OAuth clients content: application/json: schema: $ref: '#/components/schemas/NewClientRequest' example: client_id: test api_id: id policy_id: policy delete: summary: Delete OAuth client description: Please note that tokens issued with the client ID will still be valid until they expire. tags: - OAuth operationId: deleteOAuthClient parameters: - description: The API ID name: apiID in: path required: true schema: type: string minimum: 1 - description: The Client ID name: keyName in: path required: true schema: type: string responses: '200': description: OAuth client deleted content: application/json: schema: $ref: '#/components/schemas/apiModifyKeySuccess' example: action: deleted status: ok '/tyk/oauth/clients/{apiID}/{keyName}/tokens': get: summary: List tokens description: This endpoint allows you to retrieve a list of all current tokens and their expiry date for a provided API ID and OAuth-client ID in the following format. This endpoint will work only for newly created tokens.

You can control how long you want to store expired tokens in this list using `oauth_token_expired_retain_period` gateway option, which specifies retain period for expired tokens stored in Redis. By default expired token not get removed. See here for more details. tags: - OAuth operationId: getOAuthClientTokens parameters: - description: The API ID name: apiID in: path required: true schema: type: string minimum: 1 - description: The Client ID name: keyName in: path required: true schema: type: string responses: '200': description: Get a list of tokens content: application/json: schema: type: array items: type: string example: - "tok1" - "tok2" '/tyk/oauth/revoke': post: description: revoke a single token summary: revoke token requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: token: description: token to be revoked type: string client_id: description: id of oauth client type: string token_type_hint: description: type of token to be revoked, if sent then the accepted values are access_token and refresh_token. String value and optional, of not provided then it will attempt to remove access and refresh tokens that matchs type: string example: token: eyJvcmciOiI1ZTIwOTFjNGQ0YWVmY2U2MGMwNGZiOTIiLCJpZCI6ImJlMjlhYjVkODc1OTRhZDJhYTBhNjAwNzFlNzE1ZmQxIiwiaCI6Im11cm11cjY0In0= client_id: 411f0800957c4a3e81fe181141dbc22a tags: - OAuth operationId: revokeSingleToken responses: '200': description: Succesful response '/tyk/oauth/revoke_all': post: description: revoke all the tokens for a given oauth client summary: revoke all client's tokens requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: client_id: description: id of oauth client type: string client_secret: description: OAuth client secret to ensure that its a valid operation type: string example: client_id: 411f0800957c4a3e81fe181141dbc22a client_secret: N2Y0YjgzMjctMTEwNi00YWExLWJjM2MtYjg1NWZhM2M1NmNj tags: - OAuth operationId: revokeAllTokens responses: '200': description: Succesful response '400': description: Bad request, form malformed or client secret and client id doesn't match '404': description: oauth client doesn't have any api related '/tyk/oauth/refresh/{keyName}': delete: summary: Invalidate OAuth refresh token description: It is possible to invalidate refresh tokens in order to manage OAuth client access more robustly. tags: - OAuth operationId: invalidateOAuthRefresh parameters: - description: The API id name: api_id in: query required: true schema: type: string - description: Refresh token name: keyName in: path required: true schema: type: string responses: '200': description: Deleted content: application/json: schema: $ref: '#/components/schemas/apiModifyKeySuccess' '/tyk/oauth/authorize-client/': post: description: With the OAuth flow you will need to create authorisation or access tokens for your clients, in order to do this, Tyk provides a private API endpoint for your application to generate these codes and redirect the end-user back to the API Client. summary: Authorize client requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: response_type: description: Should be provided by requesting client as part of authorisation request, this should be either `code` or `token` depending on the methods you have specified for the API. type: string client_id: description: Should be provided by requesting client as part of authorisation request. The Client ID that is making the request. type: string redirect_uri: description: Should be provided by requesting client as part of authorisation request. Must match with the record stored with Tyk. type: string key_rules: description: A string representation of a Session Object (form-encoded). This should be provided by your application in order to apply any quotas or rules to the key. type: string example: response_type: code client_id: 21e2baf424674f6461faca6d45285bbb redirect_uri: http%3A%2F%2Foauth.com%2Fredirect key_rules: '%7B+++++%22allowance%22%3A+999%2C+++++%22rate%22%3A+1000%2C+++++%22per%22%3A+60%2C+++++%22expires%22%3A+0%2C+++++%22quota_max%22%3A+-1%2C+++++%22quota_renews%22%3A+1406121006%2C+++++%22quota_remaining%22%3A+0%2C+++++%22quota_renewal_rate%22%3A+60%2C+++++%22access_rights%22%3A+%7B+++++++++%22528a67c1ac9940964f9a41ae79235fcc%22%3A+%7B+++++++++++++%22api_name%22%3A+%22OAuth+Test+API%22%2C+++++++++++++%22api_id%22%3A+%22528a67c1ac9940964f9a41ae79235fcc%22%2C+++++++++++++%22versions%22%3A+%5B+++++++++++++++++%22Default%22+++++++++++++%5D+++++++++%7D+++++%7D%2C+++++%22org_id%22%3A+%2253ac07777cbb8c2d53000002%22+%7D' tags: - OAuth operationId: authorizeClient responses: '200': description: Succesful response content: application/json: schema: type: object example: code: MWY0ZDRkMzktOTYwNi00NDRiLTk2YmQtOWQxOGQ3Mjc5Yzdk redirect_to: 'http://client-app.com/oauth-redirect/?code=MWY0ZDRkMzktOTYwNi00NDRiLTk2YmQtOWQxOGQ3Mjc5Yzdk' '/tyk/org/keys': get: summary: List Organisation Keys description: |- You can now set rate limits at the organisation level by using the following fields - allowance and rate. These are the number of allowed requests for the specified per value, and need to be set to the same value. If you don't want to have organisation level rate limiting, set 'rate' or 'per' to zero, or don't add them to your request. tags: - Organisation Quotas operationId: listOrgKeys responses: '200': description: List of all API keys content: application/json: schema: type: object properties: keys: type: array items: type: string example: keys: - "key1" - "key2" '/tyk/org/keys/{keyID}': parameters: - description: The Key ID name: keyID in: path required: true schema: type: string get: summary: Get an Organisation Key description: Get session info about specified orgnanisation key. Should return up to date rate limit and quota usage numbers. tags: - Organisation Quotas operationId: getOrgKey responses: '200': description: Key object content: application/json: schema: $ref: '#/components/schemas/SessionState' post: summary: Create an organisation key description: |- This work similar to Keys API except that Key ID is always equals Organisation ID tags: - Organisation Quotas operationId: addOrgKey requestBody: content: application/json: schema: $ref: "#/components/schemas/SessionState" example: quota_max: 60 quota_renews: 1406121006 quota_renewal_rate: 60 allowance: 100 rate: 100 per: 5 org_id: 53ac07777cbb8c2d53000002 responses: '200': description: New Key added content: application/json: schema: $ref: '#/components/schemas/apiModifyKeySuccess' example: action: created key: '{...KEY JSON definition...}' status: ok put: summary: Update Organisation Key description: |- This work similar to Keys API except that Key ID is always equals Organisation ID For Gateway v2.6.0 onwards, you can now set rate limits at the organisation level by using the following fields - allowance and rate. These are the number of allowed requests for the specified per value, and need to be set to the same value. If you don't want to have organisation level rate limiting, set `rate` or `per` to zero, or don't add them to your request. tags: - Organisation Quotas operationId: updateOrgKey requestBody: content: application/json: schema: $ref: "#/components/schemas/SessionState" example: quota_max: 60 quota_renews: 1406121006 quota_renewal_rate: 60 allowance: 100 rate: 100 per: 5 org_id: 53ac07777cbb8c2d53000002 parameters: - description: |- Adding the `reset_quota` parameter and setting it to 1, will cause Tyk reset the organisations quota in the live quota manager, it is recommended to use this mechanism to reset organisation-level access if a monthly subscription is in place. name: reset_quota in: query required: false schema: type: string enum: ["1"] responses: '200': description: Key updated content: application/json: schema: $ref: '#/components/schemas/apiModifyKeySuccess' example: action: updated status: ok delete: summary: Delete Organisation Key description: Deleting a key will remove all limits from organisation. It does not affects regualar keys created within organisation. tags: - Organisation Quotas operationId: deleteOrgKey responses: '200': description: Key deleted content: application/json: schema: $ref: '#/components/schemas/apiStatusMessage' example: action: Key deleted status: ok '/{listen_path}/tyk/batch': parameters: - name: listen_path in: path required: true description: "API listen path" schema: type: string post: summary: Run batch request tags: - Batch requests operationId: batch responses: '200': $ref: '#/components/schemas/apiStatusMessage' '/tyk/schema': get: description: |- Get OAS schema tags: - Schema operationId: getSchema parameters: - description: The OAS version name: oasVersion in: query schema: type: string responses: '200': description: OAS schema response content: application/json: schema: $ref: '#/components/schemas/OASSchemaResponse' example: status: Success schema: '400': description: The response when the parameter oasVersion is missing content: application/json: schema: $ref: '#/components/schemas/OASSchemaResponse' example: message: 'Should provide a value for parameter oasVersion' status: 'Failed' '404': description: The response when the requested OAS schema is not found content: application/json: schema: $ref: '#/components/schemas/OASSchemaResponse' example: message: 'Schema not found for version 5.0.0' status: 'Failed' components: responses: parameterBodies: content: application/json: schema: $ref: '#/components/schemas/OAuthClientToken' description: parameterBodies schemas: APIDefinition: properties: tags: items: type: string type: array x-go-name: Tags CORS: properties: allow_credentials: type: boolean x-go-name: AllowCredentials allowed_headers: items: type: string type: array x-go-name: AllowedHeaders allowed_methods: items: type: string type: array x-go-name: AllowedMethods allowed_origins: items: type: string type: array x-go-name: AllowedOrigins debug: type: boolean x-go-name: Debug enable: type: boolean x-go-name: Enable exposed_headers: items: type: string type: array x-go-name: ExposedHeaders max_age: format: int64 type: integer x-go-name: MaxAge options_passthrough: type: boolean x-go-name: OptionsPassthrough type: object active: type: boolean x-go-name: Active allowed_ips: items: type: string type: array x-go-name: AllowedIPs api_id: type: string x-go-name: APIID auth: $ref: '#/components/schemas/Auth' auth_provider: $ref: '#/components/schemas/AuthProviderMeta' base_identity_provided_by: $ref: '#/components/schemas/AuthTypeEnum' basic_auth: properties: body_password_regexp: type: string x-go-name: BodyPasswordRegexp body_user_regexp: type: string x-go-name: BodyUserRegexp cache_ttl: format: int64 type: integer x-go-name: CacheTTL disable_caching: type: boolean x-go-name: DisableCaching extract_from_body: type: boolean x-go-name: ExtractFromBody type: object x-go-name: BasicAuth blacklisted_ips: items: type: string type: array x-go-name: BlacklistedIPs cache_options: $ref: '#/components/schemas/CacheOptions' certificates: items: type: string type: array x-go-name: Certificates client_certificates: items: type: string type: array x-go-name: ClientCertificates config_data: additionalProperties: type: object type: object x-go-name: ConfigData custom_middleware: $ref: '#/components/schemas/MiddlewareSection' custom_middleware_bundle: type: string x-go-name: CustomMiddlewareBundle definition: properties: key: type: string x-go-name: Key location: type: string x-go-name: Location strip_path: type: boolean x-go-name: StripPath type: object x-go-name: VersionDefinition disable_quota: type: boolean x-go-name: DisableQuota disable_rate_limit: type: boolean x-go-name: DisableRateLimit do_not_track: type: boolean x-go-name: DoNotTrack domain: type: string x-go-name: Domain dont_set_quota_on_create: type: boolean x-go-name: DontSetQuotasOnCreate enable_batch_request_support: type: boolean x-go-name: EnableBatchRequestSupport enable_context_vars: type: boolean x-go-name: EnableContextVars enable_coprocess_auth: type: boolean x-go-name: EnableCoProcessAuth enable_ip_blacklisting: type: boolean x-go-name: EnableIpBlacklisting enable_ip_whitelisting: type: boolean x-go-name: EnableIpWhiteListing enable_jwt: type: boolean x-go-name: EnableJWT enable_signature_checking: type: boolean x-go-name: EnableSignatureChecking event_handlers: $ref: '#/components/schemas/EventHandlerMetaConfig' expire_analytics_after: format: int64 type: integer x-go-name: ExpireAnalyticsAfter global_rate_limit: $ref: '#/components/schemas/GlobalRateLimit' hmac_allowed_algorithms: items: type: string type: array x-go-name: HmacAllowedAlgorithms hmac_allowed_clock_skew: format: double type: number x-go-name: HmacAllowedClockSkew id: $ref: '#/components/schemas/ObjectId' internal: type: boolean x-go-name: Internal jwt_client_base_field: type: string x-go-name: JWTClientIDBaseField jwt_expires_at_validation_skew: format: uint64 type: integer x-go-name: JWTExpiresAtValidationSkew jwt_identity_base_field: type: string x-go-name: JWTIdentityBaseField jwt_issued_at_validation_skew: format: uint64 type: integer x-go-name: JWTIssuedAtValidationSkew jwt_not_before_validation_skew: format: uint64 type: integer x-go-name: JWTNotBeforeValidationSkew jwt_policy_field_name: type: string x-go-name: JWTPolicyFieldName jwt_scope_claim_name: type: string x-go-name: JWTScopeClaimName jwt_scope_to_policy_mapping: additionalProperties: type: string type: object x-go-name: JWTScopeToPolicyMapping jwt_signing_method: type: string x-go-name: JWTSigningMethod jwt_skip_kid: type: boolean x-go-name: JWTSkipKid jwt_source: type: string x-go-name: JWTSource name: type: string x-go-name: Name notifications: $ref: '#/components/schemas/NotificationsManager' oauth_meta: properties: allowed_access_types: items: $ref: '#/components/schemas/AccessRequestType' type: array x-go-name: AllowedAccessTypes allowed_authorize_types: items: $ref: '#/components/schemas/AuthorizeRequestType' type: array x-go-name: AllowedAuthorizeTypes auth_login_redirect: type: string x-go-name: AuthorizeLoginRedirect type: object x-go-name: Oauth2Meta openid_options: $ref: '#/components/schemas/OpenIDOptions' org_id: type: string x-go-name: OrgID pinned_public_keys: additionalProperties: type: string type: object x-go-name: PinnedPublicKeys proxy: properties: check_host_against_uptime_tests: type: boolean x-go-name: CheckHostAgainstUptimeTests disable_strip_slash: type: boolean x-go-name: DisableStripSlash enable_load_balancing: type: boolean x-go-name: EnableLoadBalancing listen_path: type: string x-go-name: ListenPath preserve_host_header: type: boolean x-go-name: PreserveHostHeader service_discovery: $ref: '#/components/schemas/ServiceDiscoveryConfiguration' strip_listen_path: type: boolean x-go-name: StripListenPath target_list: items: type: string type: array x-go-name: Targets target_url: type: string x-go-name: TargetURL transport: properties: proxy_url: type: string x-go-name: ProxyURL ssl_ciphers: items: type: string type: array x-go-name: SSLCipherSuites ssl_insecure_skip_verify: type: boolean x-go-name: SSLInsecureSkipVerify ssl_min_version: format: uint16 type: integer x-go-name: SSLMinVersion type: object x-go-name: Transport type: object x-go-name: Proxy response_processors: items: $ref: '#/components/schemas/ResponseProcessor' type: array x-go-name: ResponseProcessors session_lifetime: format: int64 type: integer x-go-name: SessionLifetime session_provider: $ref: '#/components/schemas/SessionProviderMeta' slug: type: string x-go-name: Slug strip_auth_data: type: boolean x-go-name: StripAuthData tag_headers: items: type: string type: array x-go-name: TagHeaders upstream_certificates: additionalProperties: type: string type: object x-go-name: UpstreamCertificates uptime_tests: properties: check_list: items: $ref: '#/components/schemas/HostCheckObject' type: array x-go-name: CheckList config: properties: expire_utime_after: format: int64 type: integer x-go-name: ExpireUptimeAnalyticsAfter recheck_wait: format: int64 type: integer x-go-name: RecheckWait service_discovery: $ref: '#/components/schemas/ServiceDiscoveryConfiguration' type: object x-go-name: Config type: object x-go-name: UptimeTests use_basic_auth: type: boolean x-go-name: UseBasicAuth use_keyless: type: boolean x-go-name: UseKeylessAccess use_mutual_tls_auth: type: boolean x-go-name: UseMutualTLSAuth use_oauth2: type: boolean x-go-name: UseOauth2 use_openid: type: boolean x-go-name: UseOpenID use_standard_auth: type: boolean x-go-name: UseStandardAuth version_data: properties: default_version: type: string x-go-name: DefaultVersion not_versioned: type: boolean x-go-name: NotVersioned versions: additionalProperties: $ref: '#/components/schemas/VersionInfo' type: object x-go-name: Versions type: object x-go-name: VersionData title: >- APIDefinition represents the configuration for a single proxied API and it's versions. type: object x-go-package: github.com/TykTechnologies/tyk/apidef APILimit: description: APILimit stores quota and rate limit on ACL level (per API) properties: per: format: double type: number x-go-name: Per quota_max: format: int64 type: integer x-go-name: QuotaMax quota_remaining: format: int64 type: integer x-go-name: QuotaRemaining quota_renewal_rate: format: int64 type: integer x-go-name: QuotaRenewalRate quota_renews: format: int64 type: integer x-go-name: QuotaRenews rate: format: double type: number x-go-name: Rate set_by_policy: type: boolean x-go-name: SetByPolicy throttle_interval: format: double type: number x-go-name: ThrottleInterval throttle_retry_limit: format: int64 type: integer x-go-name: ThrottleRetryLimit type: object x-go-package: github.com/TykTechnologies/tyk/user AccessDefinition: description: AccessDefinition defines which versions of an API a key has access to properties: allowed_urls: items: $ref: '#/components/schemas/AccessSpec' type: array x-go-name: AllowedURLs api_id: type: string x-go-name: APIID api_name: type: string x-go-name: APIName limit: $ref: '#/components/schemas/APILimit' versions: items: type: string type: array x-go-name: Versions type: object x-go-package: github.com/TykTechnologies/tyk/user AccessRequestType: description: AccessRequestType is the type for OAuth param `grant_type` type: string x-go-package: github.com/TykTechnologies/tyk/vendor/github.com/lonelycode/osin AccessSpec: description: >- AccessSpecs define what URLS a user has access to an what methods are enabled properties: methods: items: type: string type: array x-go-name: Methods url: type: string x-go-name: URL type: object x-go-package: github.com/TykTechnologies/tyk/user Auth: properties: auth_header_name: type: string x-go-name: AuthHeaderName cookie_name: type: string x-go-name: CookieName param_name: type: string x-go-name: ParamName signature: $ref: '#/components/schemas/SignatureConfig' use_certificate: type: boolean x-go-name: UseCertificate use_cookie: type: boolean x-go-name: UseCookie use_param: type: boolean x-go-name: UseParam validate_signature: type: boolean x-go-name: ValidateSignature type: object x-go-package: github.com/TykTechnologies/tyk/apidef AuthProviderCode: type: string x-go-package: github.com/TykTechnologies/tyk/apidef AuthProviderMeta: properties: meta: additionalProperties: type: object type: object x-go-name: Meta name: $ref: '#/components/schemas/AuthProviderCode' storage_engine: $ref: '#/components/schemas/StorageEngineCode' type: object x-go-package: github.com/TykTechnologies/tyk/apidef AuthTypeEnum: type: string x-go-package: github.com/TykTechnologies/tyk/apidef AuthorizeRequestType: description: AuthorizeRequestType is the type for OAuth param `response_type` type: string x-go-package: github.com/TykTechnologies/tyk/vendor/github.com/lonelycode/osin CacheMeta: properties: cache_response_codes: items: format: int64 type: integer type: array x-go-name: CacheOnlyResponseCodes cache_key_regex: type: string x-go-name: CacheKeyRegex method: type: string x-go-name: Method path: type: string x-go-name: Path type: object x-go-package: github.com/TykTechnologies/tyk/apidef CacheOptions: properties: cache_all_safe_requests: type: boolean x-go-name: CacheAllSafeRequests cache_control_ttl_header: type: string x-go-name: CacheControlTTLHeader cache_response_codes: items: format: int64 type: integer type: array x-go-name: CacheOnlyResponseCodes cache_timeout: format: int64 type: integer x-go-name: CacheTimeout enable_cache: type: boolean x-go-name: EnableCache enable_upstream_cache_control: type: boolean x-go-name: EnableUpstreamCacheControl type: object x-go-package: github.com/TykTechnologies/tyk/apidef CircuitBreakerMeta: properties: method: type: string x-go-name: Method path: type: string x-go-name: Path return_to_service_after: format: int64 type: integer x-go-name: ReturnToServiceAfter samples: format: int64 type: integer x-go-name: Samples threshold_percent: format: double type: number x-go-name: ThresholdPercent type: object x-go-package: github.com/TykTechnologies/tyk/apidef EndPointMeta: properties: method_actions: additionalProperties: $ref: '#/components/schemas/EndpointMethodMeta' type: object x-go-name: MethodActions path: type: string x-go-name: Path type: object x-go-package: github.com/TykTechnologies/tyk/apidef EndpointMethodAction: type: string x-go-package: github.com/TykTechnologies/tyk/apidef EndpointMethodMeta: properties: action: $ref: '#/components/schemas/EndpointMethodAction' code: format: int64 type: integer x-go-name: Code data: type: string x-go-name: Data headers: additionalProperties: type: string type: object x-go-name: Headers type: object x-go-package: github.com/TykTechnologies/tyk/apidef EventHandlerMetaConfig: properties: events: x-go-name: Events type: object x-go-package: github.com/TykTechnologies/tyk/apidef ExtendedPathsSet: properties: advance_cache_config: items: $ref: '#/components/schemas/CacheMeta' type: array x-go-name: AdvanceCacheConfig black_list: items: $ref: '#/components/schemas/EndPointMeta' type: array x-go-name: BlackList cache: items: type: string type: array x-go-name: Cached circuit_breakers: items: $ref: '#/components/schemas/CircuitBreakerMeta' type: array x-go-name: CircuitBreaker do_not_track_endpoints: items: $ref: '#/components/schemas/TrackEndpointMeta' type: array x-go-name: DoNotTrackEndpoints hard_timeouts: items: $ref: '#/components/schemas/HardTimeoutMeta' type: array x-go-name: HardTimeouts ignored: items: $ref: '#/components/schemas/EndPointMeta' type: array x-go-name: Ignored internal: items: $ref: '#/components/schemas/InternalMeta' type: array x-go-name: Internal method_transforms: items: $ref: '#/components/schemas/MethodTransformMeta' type: array x-go-name: MethodTransforms size_limits: items: $ref: '#/components/schemas/RequestSizeMeta' type: array x-go-name: SizeLimit track_endpoints: items: $ref: '#/components/schemas/TrackEndpointMeta' type: array x-go-name: TrackEndpoints transform: items: $ref: '#/components/schemas/TemplateMeta' type: array x-go-name: Transform transform_headers: items: $ref: '#/components/schemas/HeaderInjectionMeta' type: array x-go-name: TransformHeader transform_jq: items: $ref: '#/components/schemas/TransformJQMeta' type: array x-go-name: TransformJQ transform_jq_response: items: $ref: '#/components/schemas/TransformJQMeta' type: array x-go-name: TransformJQResponse transform_response: items: $ref: '#/components/schemas/TemplateMeta' type: array x-go-name: TransformResponse transform_response_headers: items: $ref: '#/components/schemas/HeaderInjectionMeta' type: array x-go-name: TransformResponseHeader url_rewrites: items: $ref: '#/components/schemas/URLRewriteMeta' type: array x-go-name: URLRewrite validate_json: items: $ref: '#/components/schemas/ValidatePathMeta' type: array x-go-name: ValidateJSON virtual: items: $ref: '#/components/schemas/VirtualMeta' type: array x-go-name: Virtual white_list: items: $ref: '#/components/schemas/EndPointMeta' type: array x-go-name: WhiteList type: object x-go-package: github.com/TykTechnologies/tyk/apidef GlobalRateLimit: properties: per: format: double type: number x-go-name: Per rate: format: double type: number x-go-name: Rate type: object x-go-package: github.com/TykTechnologies/tyk/apidef GraphAccessDefinition: type: object x-go-package: github.com/TykTechnologies/tyk/user HardTimeoutMeta: properties: method: type: string x-go-name: Method path: type: string x-go-name: Path timeout: format: int64 type: integer x-go-name: TimeOut type: object x-go-package: github.com/TykTechnologies/tyk/apidef HashType: type: string x-go-package: github.com/TykTechnologies/tyk/user HeaderInjectionMeta: properties: act_on: type: boolean x-go-name: ActOnResponse add_headers: additionalProperties: type: string type: object x-go-name: AddHeaders delete_headers: items: type: string type: array x-go-name: DeleteHeaders method: type: string x-go-name: Method path: type: string x-go-name: Path type: object x-go-package: github.com/TykTechnologies/tyk/apidef HostCheckObject: properties: body: type: string x-go-name: Body headers: additionalProperties: type: string type: object x-go-name: Headers method: type: string x-go-name: Method url: type: string x-go-name: CheckURL type: object x-go-package: github.com/TykTechnologies/tyk/apidef IdExtractorSource: type: string x-go-package: github.com/TykTechnologies/tyk/apidef IdExtractorType: type: string x-go-package: github.com/TykTechnologies/tyk/apidef InternalMeta: properties: method: type: string x-go-name: Method path: type: string x-go-name: Path type: object x-go-package: github.com/TykTechnologies/tyk/apidef MethodTransformMeta: properties: method: type: string x-go-name: Method path: type: string x-go-name: Path to_method: type: string x-go-name: ToMethod type: object x-go-package: github.com/TykTechnologies/tyk/apidef MiddlewareDefinition: properties: name: type: string x-go-name: Name path: type: string x-go-name: Path require_session: type: boolean x-go-name: RequireSession type: object x-go-package: github.com/TykTechnologies/tyk/apidef MiddlewareDriver: type: string x-go-package: github.com/TykTechnologies/tyk/apidef MiddlewareIdExtractor: properties: extract_from: $ref: '#/components/schemas/IdExtractorSource' extract_with: $ref: '#/components/schemas/IdExtractorType' extractor_config: additionalProperties: type: object type: object x-go-name: ExtractorConfig type: object x-go-package: github.com/TykTechnologies/tyk/apidef MiddlewareSection: properties: auth_check: $ref: '#/components/schemas/MiddlewareDefinition' driver: $ref: '#/components/schemas/MiddlewareDriver' id_extractor: $ref: '#/components/schemas/MiddlewareIdExtractor' post: items: $ref: '#/components/schemas/MiddlewareDefinition' type: array x-go-name: Post post_key_auth: items: $ref: '#/components/schemas/MiddlewareDefinition' type: array x-go-name: PostKeyAuth pre: items: $ref: '#/components/schemas/MiddlewareDefinition' type: array x-go-name: Pre response: items: $ref: '#/components/schemas/MiddlewareDefinition' type: array x-go-name: Response type: object x-go-package: github.com/TykTechnologies/tyk/apidef NewClientRequest: description: >- NewClientRequest is an outward facing JSON object translated from osin OAuthClients properties: api_id: type: string x-go-name: APIID client_id: type: string x-go-name: ClientID description: type: string x-go-name: Description meta_data: type: object x-go-name: MetaData policy_id: type: string x-go-name: PolicyID redirect_uri: type: string x-go-name: ClientRedirectURI secret: type: string x-go-name: ClientSecret type: object x-go-package: github.com/TykTechnologies/tyk NotificationsManager: description: 'TODO: Make this more generic' properties: oauth_on_keychange_url: type: string x-go-name: OAuthKeyChangeURL shared_secret: type: string x-go-name: SharedSecret title: >- NotificationsManager handles sending notifications to OAuth endpoints to notify the provider of key changes. type: object x-go-package: github.com/TykTechnologies/tyk/apidef OAuthClientToken: properties: code: type: string x-go-name: Token expires: format: int64 type: integer x-go-name: Expires type: object x-go-package: github.com/TykTechnologies/tyk OIDProviderConfig: properties: client_ids: additionalProperties: type: string type: object x-go-name: ClientIDs issuer: type: string x-go-name: Issuer type: object x-go-package: github.com/TykTechnologies/tyk/apidef ObjectId: description: 'http://www.mongodb.org/display/DOCS/Object+IDs' title: >- ObjectId is a unique ID identifying a BSON value. It must be exactly 12 bytes long. MongoDB objects by default have such a property set in their "_id" property. type: string x-go-package: github.com/TykTechnologies/tyk/vendor/gopkg.in/mgo.v2/bson OpenIDOptions: properties: providers: items: $ref: '#/components/schemas/OIDProviderConfig' type: array x-go-name: Providers segregate_by_client: type: boolean x-go-name: SegregateByClient type: object x-go-package: github.com/TykTechnologies/tyk/apidef Policy: properties: _id: $ref: '#/components/schemas/ObjectId' type: object x-go-name: ID id: type: string x-go-name: ID name: type: string x-go-name: Name org_id: type: string x-go-name: OrgID rate: format: double type: number x-go-name: Rate per: format: double type: number x-go-name: Per quota_max: format: int64 type: integer x-go-name: QuotaMax quota_renewal_rate: format: int64 type: integer x-go-name: QuotaRenewalRate throttle_interval: format: double type: number x-go-name: ThrottleInterval throttle_retry_limit: type: number x-go-name: ThrottleRetryLimit max_query_depth: type: number x-go-name: MaxQueryDepth access_rights: $ref: '#/components/schemas/AccessDefinition' type: object x-go-name: AccessRights hmac_enabled: type: boolean x-go-name: HMACEnabled enable_http_signature_validation: type: boolean x-go-name: EnableHTTPSignatureValidation active: type: boolean x-go-name: Active is_inactive: type: boolean x-go-name: IsInactive tags: type: array items: type: string x-go-name: Tags key_expires_in: format: int64 type: number x-go-name: KeyExpiresIn partitions: $ref: '#/components/schemas/PolicyPartitions' type: object x-go-name: Partitions last_updated: type: string x-go-name: LastUpdates meta_data: type: object x-go-name: MetaData graphql_access_rights: $ref: '#/components/schemas/GraphAccessDefinition' type: object x-go-package: github.com/TykTechnologies/tyk/user PolicyPartitions: properties: quota: type: boolean x-go-name: Quota rate_limit: type: boolean x-go-name: RateLimit complexity: type: boolean x-go-name: Complexity acl: type: boolean x-go-name: Acl per_api: type: boolean x-go-name: PerAPI type: object x-go-package: github.com/TykTechnologies/tyk/user Regexp: description: Regexp is a wrapper around regexp.Regexp but with caching properties: FromCache: type: boolean type: object x-go-package: github.com/TykTechnologies/tyk/regexp RequestInputType: type: string x-go-package: github.com/TykTechnologies/tyk/apidef RequestSizeMeta: properties: method: type: string x-go-name: Method path: type: string x-go-name: Path size_limit: format: int64 type: integer x-go-name: SizeLimit type: object x-go-package: github.com/TykTechnologies/tyk/apidef ResponseProcessor: properties: name: type: string x-go-name: Name options: type: object x-go-name: Options type: object x-go-package: github.com/TykTechnologies/tyk/apidef RoutingTrigger: properties: 'on': $ref: '#/components/schemas/RoutingTriggerOnType' options: $ref: '#/components/schemas/RoutingTriggerOptions' rewrite_to: type: string x-go-name: RewriteTo type: object x-go-package: github.com/TykTechnologies/tyk/apidef RoutingTriggerOnType: type: string x-go-package: github.com/TykTechnologies/tyk/apidef RoutingTriggerOptions: properties: header_matches: additionalProperties: $ref: '#/components/schemas/StringRegexMap' type: object x-go-name: HeaderMatches path_part_matches: additionalProperties: $ref: '#/components/schemas/StringRegexMap' type: object x-go-name: PathPartMatches payload_matches: $ref: '#/components/schemas/StringRegexMap' query_val_matches: additionalProperties: $ref: '#/components/schemas/StringRegexMap' type: object x-go-name: QueryValMatches request_context_matches: additionalProperties: $ref: '#/components/schemas/StringRegexMap' type: object x-go-name: RequestContextMatches session_meta_matches: additionalProperties: $ref: '#/components/schemas/StringRegexMap' type: object x-go-name: SessionMetaMatches type: object x-go-package: github.com/TykTechnologies/tyk/apidef ServiceDiscoveryConfiguration: properties: cache_timeout: format: int64 type: integer x-go-name: CacheTimeout data_path: type: string x-go-name: DataPath endpoint_returns_list: type: boolean x-go-name: EndpointReturnsList parent_data_path: type: string x-go-name: ParentDataPath port_data_path: type: string x-go-name: PortDataPath query_endpoint: type: string x-go-name: QueryEndpoint target_path: type: string x-go-name: TargetPath use_discovery_service: type: boolean x-go-name: UseDiscoveryService use_nested_query: type: boolean x-go-name: UseNestedQuery use_target_list: type: boolean x-go-name: UseTargetList type: object x-go-package: github.com/TykTechnologies/tyk/apidef SessionProviderCode: type: string x-go-package: github.com/TykTechnologies/tyk/apidef SessionProviderMeta: properties: meta: additionalProperties: type: object type: object x-go-name: Meta name: $ref: '#/components/schemas/SessionProviderCode' storage_engine: $ref: '#/components/schemas/StorageEngineCode' type: object x-go-package: github.com/TykTechnologies/tyk/apidef SessionState: description: >- There's a data structure that's based on this and it's used for Protocol Buffer support, make sure to update "coprocess/proto/coprocess_session_state.proto" and generate the bindings using: cd coprocess/proto && ./update_bindings.sh properties: tags: items: type: string type: array x-go-name: Tags access_rights: additionalProperties: $ref: '#/components/schemas/AccessDefinition' type: object x-go-name: AccessRights alias: type: string x-go-name: Alias allowance: format: double type: number x-go-name: Allowance apply_policies: items: type: string type: array x-go-name: ApplyPolicies apply_policy_id: type: string x-go-name: ApplyPolicyID basic_auth_data: properties: hash_type: $ref: '#/components/schemas/HashType' password: type: string x-go-name: Password type: object x-go-name: BasicAuthData certificate: type: string x-go-name: Certificate data_expires: format: int64 type: integer x-go-name: DataExpires enable_detail_recording: type: boolean x-go-name: EnableDetailedRecording expires: format: int64 type: integer x-go-name: Expires hmac_enabled: type: boolean x-go-name: HMACEnabled hmac_string: type: string x-go-name: HmacSecret id_extractor_deadline: format: int64 type: integer x-go-name: IdExtractorDeadline is_inactive: type: boolean x-go-name: IsInactive jwt_data: properties: secret: type: string x-go-name: Secret type: object x-go-name: JWTData last_check: format: int64 type: integer x-go-name: LastCheck last_updated: type: string x-go-name: LastUpdated meta_data: additionalProperties: type: object type: object x-go-name: MetaData monitor: properties: trigger_limits: items: format: double type: number type: array x-go-name: TriggerLimits type: object x-go-name: Monitor oauth_client_id: type: string x-go-name: OauthClientID oauth_keys: additionalProperties: type: string type: object x-go-name: OauthKeys org_id: type: string x-go-name: OrgID per: format: double type: number x-go-name: Per quota_max: format: int64 type: integer x-go-name: QuotaMax quota_remaining: format: int64 type: integer x-go-name: QuotaRemaining quota_renewal_rate: format: int64 type: integer x-go-name: QuotaRenewalRate quota_renews: format: int64 type: integer x-go-name: QuotaRenews rate: format: double type: number x-go-name: Rate session_lifetime: format: int64 type: integer x-go-name: SessionLifetime throttle_interval: format: double type: number x-go-name: ThrottleInterval throttle_retry_limit: format: int64 type: integer x-go-name: ThrottleRetryLimit title: >- SessionState objects represent a current API session, mainly used for rate limiting. type: object x-go-package: github.com/TykTechnologies/tyk/user SignatureConfig: properties: algorithm: type: string x-go-name: Algorithm allowed_clock_skew: format: int64 type: integer x-go-name: AllowedClockSkew error_code: format: int64 type: integer x-go-name: ErrorCode error_message: type: string x-go-name: ErrorMessage header: type: string x-go-name: Header secret: type: string x-go-name: Secret type: object x-go-package: github.com/TykTechnologies/tyk/apidef StorageEngineCode: type: string x-go-package: github.com/TykTechnologies/tyk/apidef StringRegexMap: properties: match_rx: type: string x-go-name: MatchPattern reverse: type: boolean x-go-name: Reverse type: object x-go-package: github.com/TykTechnologies/tyk/apidef TemplateData: properties: enable_session: type: boolean x-go-name: EnableSession input_type: $ref: '#/components/schemas/RequestInputType' template_mode: $ref: '#/components/schemas/TemplateMode' template_source: type: string x-go-name: TemplateSource type: object x-go-package: github.com/TykTechnologies/tyk/apidef TemplateMeta: properties: method: type: string x-go-name: Method path: type: string x-go-name: Path template_data: $ref: '#/components/schemas/TemplateData' type: object x-go-package: github.com/TykTechnologies/tyk/apidef TemplateMode: type: string x-go-package: github.com/TykTechnologies/tyk/apidef TrackEndpointMeta: properties: method: type: string x-go-name: Method path: type: string x-go-name: Path type: object x-go-package: github.com/TykTechnologies/tyk/apidef TransformJQMeta: properties: filter: type: string x-go-name: Filter method: type: string x-go-name: Method path: type: string x-go-name: Path type: object x-go-package: github.com/TykTechnologies/tyk/apidef URLRewriteMeta: properties: MatchRegexp: $ref: '#/components/schemas/Regexp' match_pattern: type: string x-go-name: MatchPattern method: type: string x-go-name: Method path: type: string x-go-name: Path rewrite_to: type: string x-go-name: RewriteTo triggers: items: $ref: '#/components/schemas/RoutingTrigger' type: array x-go-name: Triggers type: object x-go-package: github.com/TykTechnologies/tyk/apidef ValidatePathMeta: properties: error_response_code: description: >- Allows override of default 422 Unprocessible Entity response code for validation errors. format: int64 type: integer x-go-name: ErrorResponseCode method: type: string x-go-name: Method path: type: string x-go-name: Path schema: additionalProperties: type: object type: object x-go-name: Schema schema_b64: type: string x-go-name: SchemaB64 type: object x-go-package: github.com/TykTechnologies/tyk/apidef VersionInfo: properties: paths: properties: black_list: items: type: string type: array x-go-name: BlackList ignored: items: type: string type: array x-go-name: Ignored white_list: items: type: string type: array x-go-name: WhiteList type: object x-go-name: Paths expires: type: string x-go-name: Expires extended_paths: $ref: '#/components/schemas/ExtendedPathsSet' global_headers: additionalProperties: type: string type: object x-go-name: GlobalHeaders global_headers_remove: items: type: string type: array x-go-name: GlobalHeadersRemove global_size_limit: format: int64 type: integer x-go-name: GlobalSizeLimit name: type: string x-go-name: Name override_target: type: string x-go-name: OverrideTarget use_extended_paths: type: boolean x-go-name: UseExtendedPaths type: object x-go-package: github.com/TykTechnologies/tyk/apidef VirtualMeta: properties: function_source_type: type: string x-go-name: FunctionSourceType function_source_uri: type: string x-go-name: FunctionSourceURI method: type: string x-go-name: Method path: type: string x-go-name: Path proxy_on_error: type: boolean x-go-name: ProxyOnError response_function_name: type: string x-go-name: ResponseFunctionName use_session: type: boolean x-go-name: UseSession type: object x-go-package: github.com/TykTechnologies/tyk/apidef apiAllKeys: description: apiAllKeys represents a list of keys in the memory store properties: keys: items: type: string type: array x-go-name: APIKeys type: object x-go-package: github.com/TykTechnologies/tyk apiModifyKeySuccess: description: apiModifyKeySuccess represents when a Key modification was successful properties: action: type: string x-go-name: Action key: description: 'in:body' type: string x-go-name: Key key_hash: type: string x-go-name: KeyHash status: type: string x-go-name: Status type: object x-go-package: github.com/TykTechnologies/tyk apiStatusMessage: description: apiStatusMessage represents an API status message properties: message: description: Response details type: string x-go-name: Message status: type: string x-go-name: Status type: object x-go-package: github.com/TykTechnologies/tyk APIAllCertificates: description: APIAllCertificates represents a list of certificates properties: certs: items: type: string type: array x-go-name: Certs type: object x-go-package: github.com/TykTechnologies/tyk APIAllCertificateBasics: description: APIAllCertificates represents a list of certificate basics properties: certs: items: $ref: '#/components/schemas/CertificateBasics' type: array x-go-name: Certs type: object x-go-package: github.com/TykTechnologies/tyk CertificateBasics: description: CertificateBasics represents basic details of a certificate properties: id: type: string x-go-name: ID issuer_cn: type: string x-go-name: IssuerCN subject_cn: type: string x-go-name: SubjectCN dns_names: type: array items: type: string x-go-name: DNSNames has_private: type: string x-go-name: HasPrivateKey not_before: type: string x-go-name: NotBefore not_after: type: string x-go-name: NotAfter type: object x-go-package: github.com/TykTechnologies/tyk CertificateMeta: description: CertificateBasics represents basic details of a certificate properties: id: type: string x-go-name: ID fingerprint: type: string x-go-name: Fingerprint has_private: type: string x-go-name: HasPrivateKey issuer: $ref: '#/components/schemas/pkixName' subject: $ref: '#/components/schemas/pkixName' not_before: type: string x-go-name: NotBefore not_after: type: string x-go-name: NotAfter dns_names: type: array items: type: string x-go-name: DNSNames type: object x-go-package: github.com/TykTechnologies/tyk pkixName: description: Name represents an X.509 distinguished name properties: Country: type: array items: type: string Organization: type: array items: type: string OrganizationalUnit: type: array items: type: string Locality: type: array items: type: string Province: type: array items: type: string StreetAddress: type: array items: type: string PostalCode: type: array items: type: string SerialNumber: type: string CommonName: type: string Names: type: array items: $ref: '#/components/schemas/pkixAttributeTypeAndValue' ExtraNames: type: array items: $ref: '#/components/schemas/pkixAttributeTypeAndValueSET' pkixAttributeTypeAndValue: description: AttributeTypeAndValue mirrors the ASN.1 structure of the same name in RFC 5280, Section 4.1.2.4. properties: Type: type: array items: type: integer Value: type: object pkixAttributeTypeAndValueSET: description: AttributeTypeAndValueSET represents a set of ASN.1 sequences of AttributeTypeAndValue sequences from RFC 2986 (PKCS #10). properties: Type: type: array items: type: integer Value: type: array items: type: array items: $ref: '#/components/schemas/pkixAttributeTypeAndValue' APICertificateStatusMessage: description: Status message when certificate is added properties: id: type: string x-go-name: CertID status: type: string x-go-name: Status message: type: string x-go-name: Message type: object x-go-package: github.com/TykTechnologies/tyk OASSchemaResponse: description: OAS schema endpoint response type: object properties: status: type: string x-go-name: Status message: type: string x-go-name: Message schema: type: string description: BooleanQueryParam: type: string enum: [ true, false ] example: true parameters: UpstreamURL: name: upstreamURL in: query description: Upstream URL for the API required: false schema: type: string ListenPath: name: listenPath in: query description: Listen path for the API schema: type: string required: false CustomDomain: name: customDomain schema: type: string description: Custom domain for the API in: query required: false ApiID: name: apiID schema: type: string description: ID of the API in: query required: false ValidateRequest: name: validateRequest in: query description: Enable validateRequest middleware for all endpoints having a request body with media type application/json required: false schema: $ref: '#/components/schemas/BooleanQueryParam' AllowList: name: allowList in: query description: Enable allowList middleware for all endpoints required: false schema: $ref: '#/components/schemas/BooleanQueryParam' MockResponse: name: mockResponse in: query description: Enable mockResponse middleware for all endpoints having responses configured. required: false schema: $ref: '#/components/schemas/BooleanQueryParam' Authentication: name: authentication in: query description: Enable or disable authentication in your Tyk Gateway as per your OAS document. schema: $ref: '#/components/schemas/BooleanQueryParam' securitySchemes: api_key: in: header name: X-Tyk-Authorization type: apiKey security: - api_key: []