github.com/dbernstein1/tyk@v2.9.0-beta9-dl-apic+incompatible/swagger.yml (about)

     1  openapi: 3.0.0
     2  info:
     3    title: Tyk Gateway API
     4    version: 2.8.0
     5    description: |-
     6      The Tyk Gateway REST 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.
     7  
     8      **Warning: Under no circumstances should outside parties be granted access to this API.**
     9  
    10      The Tyk Gateway API is capable of:
    11  
    12      * Managing session objects (key generation)
    13      * Managing and listing policies
    14      * Managing and listing API Definitions (only when not using the Dashboard)
    15      * Hot reloads / reloading a cluster configuration
    16      * OAuth client creation (only when not using the Dashboard)
    17  
    18  
    19      In order to use the REST API, you'll need to set the `secret` parameter in your tyk.conf file.
    20  
    21      The shared secret you set should then be sent along as a header with each REST API Request in order for it to be successful:
    22  
    23      ```
    24      x-tyk-authorization: <your-secret>
    25      ```
    26      <br/>
    27      <b>The Tyk Gateway API is subsumed by the Tyk Dashboard API in Pro installations.</b>
    28  servers:
    29    - url: 'http://localhost/'
    30    - url: 'https://localhost/'
    31  tags:
    32    - name: Keys
    33      description: |-
    34        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.
    35        
    36        <h3>Hashed Keys Environment</h3>
    37        
    38        Listing tokens is only possible if you set `enable_hashed_keys_listing` to `true`. See [Using Hashed Keys Environment Endpoints](https://tyk.io/docs/security/#a-name-key-hashing-a-key-hashing) section for more details.
    39        
    40        - endpoints `POST /tyk/keys/create`, `POST /tyk/keys` and `POST /tyk/keys/{keyName}` return `"key_hash"` for future use.
    41        - endpoint `GET /tyk/keys` retrieves all (or per API) key hashes. You can disable this endpoint by using the `tyk.conf` setting `enable_hashed_keys_listing` (set to false by default).
    42        - endpoint `GET /tyk/keys/{keyName}` is able to get a key by its hash. You need to provide the key hash as a `keyName`. 
    43        and call it with the optional query parameter `hashed=true`. So the format is `GET /tyk/keys/{keyName}?hashed=true"`.
    44        - The same optional parameter is available for the `DELETE /tyk/keys/{keyName}?hashed=true` endpoint.
    45        
    46        <h3>Example: Import Existing Keys into Tyk</h3>
    47        
    48  
    49  
    50        You can use the `PUT /tyk/keys/{KEY_ID}` endpoint as defined below to import existing keys into Tyk.
    51        
    52        This example uses standard `authorization` header authentication, and assumes that the Dashboard is located at `127.0.0.1:8080` and the Tyk secret is `352d20ee67be67f6340b4c0605b044b7` - update these as necessary to match your environment.
    53        
    54        To import a key called `abc`, save the JSON contents as `token.json` (see example below), then run the following Curl command.
    55        
    56        ```
    57        curl http://127.0.0.1:8080/tyk/keys/abc -H 'x-tyk-authorization: 352d20ee67be67f6340b4c0605b044b7' -H 'Content-Type: application/json'  -d @token.json
    58        ```
    59        
    60        The following request will fail as the key doesn't exist.
    61        
    62        ```
    63        curl http://127.0.0.1:8080/quickstart/headers -H 'Authorization. invalid123'
    64        ```
    65        
    66        But this request will now work, using the imported key.
    67        
    68        ```
    69        curl http://127.0.0.1:8080/quickstart/headers -H 'Authorization: abc'
    70        ```
    71        
    72        <h4>Example token.json file<h4>
    73        
    74        ```
    75        {
    76          "allowance": 1000,
    77          "rate": 1000,
    78          "per": 60,
    79          "expires": -1,
    80          "quota_max": -1,
    81          "quota_renews": 1406121006,
    82          "quota_remaining": 0,
    83          "quota_renewal_rate": 60,
    84          "access_rights": {
    85            "3": {
    86              "api_name": "Tyk Test API",
    87              "api_id": "3"
    88            }
    89          },
    90          "org_id": "53ac07777cbb8c2d53000002",
    91          "basic_auth_data": {
    92            "password": "",
    93            "hash_type": ""
    94          },
    95          "hmac_enabled": false,
    96          "hmac_string": "",
    97          "is_inactive": false,
    98          "apply_policy_id": "",
    99          "apply_policies": [
   100            "59672779fa4387000129507d",
   101            "53222349fa4387004324324e",
   102            "543534s9fa4387004324324d"
   103            ],
   104          "monitor": {
   105            "trigger_limits": []
   106          }
   107        }
   108        ```
   109  
   110        Additionally see <a href="https://tyk.io/docs/tyk-rest-api/token-session-object-details/">key session object data format</a>.
   111    - name: OAuth
   112      description: |-
   113        Manage OAuth clients, and manage their tokens
   114    - name: Cache Invalidation
   115      description: |-
   116        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.
   117    - name: Hot Reload
   118      description:
   119        Force restart of the Gateway or whole cluster
   120    - name: Health Checking
   121      description: Check health check of the Gateway and loaded APIs
   122    - name: Organisation Quotas
   123      description: |-
   124        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.
   125        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.
   126        Although the Organisation session-limiter uses the same session object, all other security keys are optional as they are not used.
   127  
   128        <h3>Managing active status</h3>
   129        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.
   130    - name: Batch requests
   131      description: |-
   132        Tyk supports batch requests, so a client makes a single request to the API but gets a compound response object back.
   133  
   134        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.
   135        
   136        To enable batch request support, set the `enable_batch_request_support` value to `true`
   137  
   138        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.
   139  
   140        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.
   141  
   142        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.
   143        
   144        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.
   145        
   146        <h3>Sample Request</h3>
   147  
   148          ```{json}
   149          {
   150            "requests": [
   151              {
   152                "method": "GET",
   153                "headers": {
   154                  "x-tyk-test": "1",
   155                  "x-tyk-version": "1.2",
   156                  "authorization": "1dbc83b9c431649d7698faa9797e2900f"
   157                },
   158                "body": "",
   159                "relative_url": "get"
   160            },
   161            {
   162              "method": "GET",
   163              "headers": {
   164                "x-tyk-test": "2",
   165                "x-tyk-version": "1.2",
   166                "authorization": "1dbc83b9c431649d7698faa9797e2900f"
   167              },
   168              "body": "",
   169              "relative_url": "get"
   170              }
   171            ],
   172            "suppress_parallel_execution": false
   173          }
   174          ```
   175        
   176        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.
   177        
   178        <h3>Sample Response</h3>
   179        
   180        ```
   181        [
   182          {
   183            "relative_url": "get",
   184            "code": 200,
   185            "headers": {
   186              "Access-Control-Allow-Credentials": [
   187                "true"
   188              ],
   189              "Access-Control-Allow-Origin": [
   190                "*"
   191              ],
   192              "Content-Length": [
   193                "497"
   194              ],
   195              "Content-Type": [
   196                "application/json"
   197              ],
   198              "Date": [
   199                "Wed, 12 Nov 2014 15:32:43 GMT"
   200              ],
   201              "Server": [
   202                "gunicorn/18.0"
   203              ],
   204              "Via": [
   205                "1.1 vegur"
   206              ]
   207            },
   208            "body": "{
   209          "args": {}, 
   210          "headers": {
   211            "Accept-Encoding": "gzip", 
   212            "Authorization": "1dbc83b9c431649d7698faa9797e2900f", 
   213            "Connect-Time": "2", 
   214            "Connection": "close", 
   215            "Host": "httpbin.org", 
   216            "Total-Route-Time": "0", 
   217            "User-Agent": "Go 1.1 package http", 
   218            "Via": "1.1 vegur", 
   219            "X-Request-Id": "6a22499a-2776-4aa1-80c0-686581a8be4d", 
   220            "X-Tyk-Test": "2", 
   221            "X-Tyk-Version": "1.2"
   222          }, 
   223          "origin": "127.0.0.1, 62.232.114.250", 
   224          "url": "http://httpbin.org/get"
   225        }"
   226            },
   227            {
   228              "relative_url": "get",
   229              "code": 200,
   230              "headers": {
   231                "Access-Control-Allow-Credentials": [
   232                  "true"
   233                ],
   234                "Access-Control-Allow-Origin": [
   235                  "*"
   236                ],
   237                "Content-Length": [
   238                  "497"
   239                ],
   240                "Content-Type": [
   241                  "application/json"
   242                ],
   243                "Date": [
   244                  "Wed, 12 Nov 2014 15:32:43 GMT"
   245                ],
   246                "Server": [
   247                  "gunicorn/18.0"
   248                ],
   249                "Via": [
   250                  "1.1 vegur"
   251                ]
   252              },
   253              "body": "{
   254          "args": {}, 
   255          "headers": {
   256            "Accept-Encoding": "gzip", 
   257            "Authorization": "1dbc83b9c431649d7698faa9797e2900f", 
   258            "Connect-Time": "7", 
   259            "Connection": "close", 
   260            "Host": "httpbin.org", 
   261            "Total-Route-Time": "0", 
   262            "User-Agent": "Go 1.1 package http", 
   263            "Via": "1.1 vegur", 
   264            "X-Request-Id": "1ab61f50-51ff-4828-a7e2-17240385a6d2", 
   265            "X-Tyk-Test": "1", 
   266            "X-Tyk-Version": "1.2"
   267          }, 
   268          "origin": "127.0.0.1, 62.232.114.250", 
   269          "url": "http://httpbin.org/get"
   270        }"
   271            }
   272        ]
   273        ```
   274        With the body for each request string encoded in the `body` field.
   275  
   276        * `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.
   277            
   278        **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/).
   279        
   280        * `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).
   281            
   282          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.
   283        
   284        * `cache_options`: This section enables you to configure the caching behaviour of Tyk and to enable or disable the caching middleware for your API.
   285        
   286        * `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.
   287        
   288        * `cache_options.cache_timeout`: The amount of time, in seconds, to keep cached objects, defaults to `60` seconds.
   289        
   290        * `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.
   291        
   292        * `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/reduce-latency/caching/) for more details.
   293        
   294        * `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.
   295        
   296        ```{json}
   297        "response_processors": [
   298          {
   299              "name": "header_injector",
   300              "options": {
   301                  "add_headers": {"name": "value"},
   302                  "remove_headers": ["name"]
   303              }
   304          },
   305          {
   306            "name": "response_body_transform",
   307            "options": {}
   308          }
   309        ]
   310        ```
   311        The options for the `header_injector` are global, and will apply to all outbound requests.
   312        
   313        
   314    - name: APIs
   315      description: |-
   316        **Note: Applies only to Tyk Gateway Community Edition**
   317  
   318        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.
   319  
   320        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.
   321  
   322        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.
   323  paths:
   324    /tyk/apis:
   325      get:
   326        description: |-
   327          List APIs
   328           Only if used without the Tyk Dashboard
   329        tags:
   330          - APIs
   331        operationId: listApis
   332        responses:
   333          '200':
   334            description: List of API definitions
   335            content:
   336              application/json:
   337                schema:
   338                  type: array
   339                  items:
   340                    $ref: '#/components/schemas/APIDefinition'
   341                example:
   342                  - name: "TestAPI"
   343                    use_keyless: true
   344                    active: true
   345                    proxy:
   346                      listen_path: "/test"
   347      post:
   348        description: |-
   349          Create API
   350           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.
   351        tags:
   352          - APIs
   353        operationId: createApi
   354        requestBody:
   355          content:
   356            application/json:
   357              schema:
   358                $ref: "#/components/schemas/APIDefinition"
   359              example:
   360                name: "TestAPI"
   361                use_keyless: true
   362                active: true
   363                proxy:
   364                  listen_path: "/test"
   365        responses:
   366          '200':
   367            description: API created
   368            content:
   369              application/json:
   370                schema:
   371                  $ref: "#/components/schemas/apiModifyKeySuccess"
   372                example:
   373                  status: "ok"
   374                  action: "created"
   375                  key: "{...API JSON definition...}"
   376          '400':
   377            description: Malformed data
   378            content:
   379              application/json:
   380                schema:
   381                  $ref: "#/components/schemas/apiStatusMessage"
   382                example:
   383                  status: "error"
   384                  message: "Malformed API data"
   385    '/tyk/apis/{apiID}':
   386      parameters:
   387        - description: The API ID
   388          name: apiID
   389          in: path
   390          required: true
   391          schema:
   392            type: string
   393      get:
   394        description: |-
   395          Get API definition
   396          Only if used without the Tyk Dashboard
   397        tags:
   398          - APIs
   399        operationId: getApi
   400        responses:
   401          '200':
   402            description: API definition
   403            content:
   404              application/json:
   405                schema:
   406                  $ref: "#/components/schemas/APIDefinition"
   407                example:
   408                  name: "TestAPI"
   409                  use_keyless: true
   410                  active: true
   411                  proxy:
   412                    listen_path: "/test"
   413      put:
   414        description: |
   415          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`.
   416  
   417  
   418          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.
   419        tags:
   420          - APIs
   421        operationId: updateApi
   422        requestBody:
   423          content:
   424            application/json:
   425              schema:
   426                $ref: "#/components/schemas/APIDefinition"
   427              example:
   428                name: "TestAPI"
   429                use_keyless: true
   430                active: true
   431                proxy:
   432                  listen_path: "/test"
   433        responses:
   434          '200':
   435            description: API updated
   436            content:
   437              application/json:
   438                schema:
   439                  $ref: "#/components/schemas/apiModifyKeySuccess"
   440                example:
   441                  status: "ok"
   442                  action: "updated"
   443                  key: "{...API JSON definition...}"
   444          '400':
   445            description: Malformed data
   446            content:
   447              application/json:
   448                schema:
   449                  $ref: "#/components/schemas/apiStatusMessage"
   450                example:
   451                  status: "error"
   452                  message: "Malformed API data"
   453  
   454      delete:
   455        description: |-
   456          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.
   457        tags:
   458          - APIs
   459        operationId: deleteApi
   460        responses:
   461          '200':
   462            description: API deleted
   463            content:
   464              application/json:
   465                schema:
   466                  $ref: '#/components/schemas/apiStatusMessage'
   467                example:
   468                  message: API deleted
   469                  status: ok
   470          '400':
   471            description: No API ID specified
   472            content:
   473              application/json:
   474                schema:
   475                  $ref: '#/components/schemas/apiStatusMessage'
   476                example:
   477                  message: API ID not specified
   478                  status: error
   479    '/tyk/cache/{apiID}':
   480      parameters:
   481        - description: The API ID
   482          name: apiID
   483          in: path
   484          required: true
   485          schema:
   486            type: string
   487      delete:
   488        summary: Invalidate cache
   489        description: Invalidate cache for given API
   490        tags:
   491          - Cache Invalidation
   492        operationId: invalidateCache
   493        responses:
   494          '200':
   495            description: Invalidate cache
   496            content:
   497              application/json:
   498                schema:
   499                  $ref: '#/components/schemas/apiStatusMessage'
   500                example:
   501                  message: cache invalidated
   502                  status: ok
   503    '/tyk/reload/':
   504      get:
   505        summary: Hot-reload a single node
   506        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.
   507        parameters:
   508        - description: Block a response, until the reload is performed. This can be useful in scripting environments like CI/CD workflows.
   509          name: block
   510          in: query
   511          required: false
   512          schema:
   513            type: boolean
   514            enum: [true]
   515        tags:
   516          - Hot Reload
   517        operationId: hotReload
   518        responses:
   519          '200':
   520            description: Reload gateway
   521            content:
   522              application/json:
   523                schema:
   524                  $ref: '#/components/schemas/apiStatusMessage'
   525                example:
   526                  status: ok
   527    '/tyk/reload/group':
   528      get:
   529        summary: Hot-reload a Tyk group
   530        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.
   531        tags:
   532          - Hot Reload
   533        operationId: hotReloadGroup
   534        responses:
   535          '200':
   536            description: Reload gateway
   537            content:
   538              application/json:
   539                schema:
   540                  $ref: '#/components/schemas/apiStatusMessage'
   541                example:
   542                  status: ok
   543    '/tyk/hello':
   544      get:
   545        summary: Check the Health of the Gateway
   546        description: |
   547            From v2.7.5 you can now rename the `/hello`  endpoint by using the `health_check_endpoint_name` option
   548  
   549            Returns 200 response in case of success
   550        tags:
   551          - Health Checking
   552        operationId: hello
   553        responses:
   554          '200':
   555            description: Success
   556            content:
   557              text/html:
   558                schema:
   559                  type: string
   560                example: "Hello Tiki"
   561    '/tyk/{listenPath}/hello':
   562      parameters:
   563        - in: path
   564          name: listenPath
   565          required: true
   566          description: "Listen path of loaded API"
   567          schema:
   568            type: string
   569      get:
   570        summary: Check the Health of the API
   571        description: Should point to API domain if it has own
   572        tags:
   573          - Health Checking
   574        operationId: helloAPI
   575        responses:
   576          '200':
   577            description: Success
   578            content:
   579              text/html:
   580                schema:
   581                  type: string
   582                example: "Hello Tiki"
   583    /tyk/keys:
   584      get:
   585        summary: List Keys
   586        description: You can retrieve all the keys in your Tyk instance. Returns an array of Key IDs.
   587        tags:
   588          - Keys
   589        operationId: listKeys
   590        responses:
   591          '200':
   592            description: List of all API keys
   593            content:
   594              application/json:
   595                schema:
   596                  type: array
   597                  items:
   598                    type: string
   599      post:
   600        summary: Create a key
   601        description: |-
   602          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.
   603          <br/><br/>
   604          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.
   605        tags:
   606          - Keys
   607        operationId: addKey
   608        requestBody:
   609          content:
   610            application/json:
   611              schema:
   612                $ref: "#/components/schemas/SessionState"
   613              example:
   614                quota_max: 60
   615                quota_renews: 1406121006
   616                quota_renewal_rate: 60
   617                allowance: 100
   618                rate: 100
   619                per: 5
   620                org_id: 53ac07777cbb8c2d53000002
   621        responses:
   622          '200':
   623            description: New Key added
   624            content:
   625              application/json:
   626                schema:
   627                  $ref: '#/components/schemas/apiModifyKeySuccess'
   628                example:
   629                  action: created
   630                  key: '{...KEY JSON definition...}'
   631                  status: ok
   632          '400':
   633            description: Malformed data
   634            content:
   635              application/json:
   636                schema:
   637                  $ref: '#/components/schemas/apiStatusMessage'
   638                example:
   639                  message: Malformed Key data
   640                  status: error
   641    '/tyk/keys/{keyID}':
   642      parameters:
   643        - description: The Key ID
   644          name: keyID
   645          in: path
   646          required: true
   647          schema:
   648            type: string
   649      get:
   650        summary: Get a Key
   651        description: Get session info about the specified key. Should return up to date rate limit and quota usage numbers.
   652        tags:
   653          - Keys
   654        operationId: getKey
   655        responses:
   656          '200':
   657            description: Key object
   658            content:
   659              application/json:
   660                schema:
   661                  $ref: '#/components/schemas/SessionState'
   662                example:
   663                  quota_max: 60
   664                  quota_renews: 1406121006
   665                  quota_renewal_rate: 60
   666                  allowance: 100
   667                  rate: 100
   668                  per: 5
   669                  org_id: 53ac07777cbb8c2d53000002
   670      put:
   671        summary: Update Key or Add custom Key
   672        description: |-
   673          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.
   674        tags:
   675          - Keys
   676        operationId: updateKey
   677        requestBody:
   678          content:
   679            application/json:
   680              schema:
   681                $ref: "#/components/schemas/SessionState"
   682              example:
   683                quota_max: 60
   684                quota_renews: 1406121006
   685                quota_renewal_rate: 60
   686                allowance: 100
   687                rate: 100
   688                per: 5
   689                org_id: 53ac07777cbb8c2d53000002
   690        parameters:
   691          - description: |-
   692              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.
   693            name: suppress_reset
   694            in: query
   695            required: false
   696            schema:
   697              type: string
   698              enum: ["1"]
   699        responses:
   700          '200':
   701            description: Key updated
   702            content:
   703              application/json:
   704                schema:
   705                  $ref: '#/components/schemas/apiModifyKeySuccess'
   706                example:
   707                  action: updated
   708                  status: ok
   709          '400':
   710            description: No or incorrect Key ID specified
   711            content:
   712              application/json:
   713                schema:
   714                  $ref: '#/components/schemas/apiStatusMessage'
   715                example:
   716                  message: Key ID not specified
   717                  status: error
   718      delete:
   719        summary: Delete Key
   720        description: Deleting a key will remove it permanently from the system, however analytics relating to that key will still be available.
   721        tags:
   722          - Keys
   723        operationId: deleteKey
   724        responses:
   725          '200':
   726            description: Key deleted
   727            content:
   728              application/json:
   729                schema:
   730                  $ref: '#/components/schemas/apiStatusMessage'
   731                example:
   732                  action: Key deleted
   733                  status: ok
   734    /tyk/oauth/clients/create:
   735      post:
   736        summary: Create new OAuth client
   737        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).
   738          <br/><br/>
   739          <h3>Creating OAuth clients with Access to Multiple APIs</h3>
   740          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.
   741  
   742  
   743        tags:
   744          - OAuth
   745        operationId: createOAuthClient
   746        requestBody:
   747          content:
   748            application/json:
   749              schema:
   750                $ref: "#/components/schemas/NewClientRequest"
   751              example:
   752                client_id: test
   753                api_id: id
   754                policy_id: policy
   755        responses:
   756          '200':
   757            description: Client created
   758            content:
   759              application/json:
   760                schema:
   761                  $ref: '#/components/schemas/NewClientRequest'
   762                example:
   763                  client_id: test
   764                  api_id: id
   765                  policy_id: policy
   766    '/tyk/oauth/clients/{apiID}':
   767      get:
   768        summary: List oAuth clients
   769        description: OAuth Clients are organised by API ID, and therefore are queried as such.
   770        tags:
   771          - OAuth
   772        operationId: listOAuthClients
   773        parameters:
   774          - description: The API ID
   775            name: apiID
   776            in: path
   777            required: true
   778            schema:
   779              type: string
   780        responses:
   781          '200':
   782            description: Get OAuth client details or a list of OAuth clients
   783            content:
   784              application/json:
   785                schema:
   786                  type: array
   787                  items:
   788                    $ref: '#/components/schemas/NewClientRequest'
   789    '/tyk/oauth/clients/{apiID}/{keyName}':
   790      get:
   791        summary: Get OAuth client
   792        tags:
   793          - OAuth
   794        operationId: getOAuthClient
   795        parameters:
   796          - description: The API ID
   797            name: apiID
   798            in: path
   799            required: true
   800            schema:
   801              type: string
   802              minimum: 1
   803          - description: The Client ID
   804            name: keyName
   805            in: path
   806            required: true
   807            schema:
   808              type: string
   809        responses:
   810          '200':
   811            description: Get OAuth client details or a list of OAuth clients
   812            content:
   813              application/json:
   814                schema:
   815                  $ref: '#/components/schemas/NewClientRequest'
   816                example:
   817                  client_id: test
   818                  api_id: id
   819                  policy_id: policy
   820      delete:
   821        summary: Delete OAuth client
   822        description: Please note that tokens issued with the client ID will still be valid until they expire.
   823        tags:
   824          - OAuth
   825        operationId: deleteOAuthClient
   826        parameters:
   827          - description: The API ID
   828            name: apiID
   829            in: path
   830            required: true
   831            schema:
   832              type: string
   833              minimum: 1
   834          - description: The Client ID
   835            name: keyName
   836            in: path
   837            required: true
   838            schema:
   839              type: string
   840        responses:
   841          '200':
   842            description: OAuth client deleted
   843            content:
   844              application/json:
   845                schema:
   846                  $ref: '#/components/schemas/apiModifyKeySuccess'
   847                example:
   848                  action: deleted
   849                  status: ok
   850    '/tyk/oauth/clients/{apiID}/{keyName}/tokens':
   851      get:
   852        summary: List tokens
   853        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.
   854          <br/>
   855          <br/>
   856          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 <a href="https://tyk.io/docs/configure/tyk-gateway-configuration-options/#a-name-oauth-token-expired-retain-period-a-oauth-token-expired-retain-period" target="_blank">here</a> for more details.
   857        tags:
   858          - OAuth
   859        operationId: getOAuthClientTokens
   860        parameters:
   861          - description: The API ID
   862            name: apiID
   863            in: path
   864            required: true
   865            schema:
   866              type: string
   867              minimum: 1
   868          - description: The Client ID
   869            name: keyName
   870            in: path
   871            required: true
   872            schema:
   873              type: string
   874        responses:
   875          '200':
   876            description: Get a list of tokens
   877            content:
   878              application/json:
   879                schema:
   880                  type: array
   881                  items:
   882                    type: string
   883                example:
   884                  - "tok1"
   885                  - "tok2"
   886    '/tyk/oauth/refresh/{keyName}':
   887      delete:
   888        summary: Invalidate OAuth refresh token
   889        description: It is possible to invalidate refresh tokens in order to manage OAuth client access more robustly.
   890        tags:
   891          - OAuth
   892        operationId: invalidateOAuthRefresh
   893        parameters:
   894          - description: The API id
   895            name: api_id
   896            in: query
   897            required: true
   898            schema:
   899              type: string
   900          - description: Refresh token
   901            name: keyName
   902            in: path
   903            required: true
   904            schema:
   905              type: string
   906        responses:
   907          '200':
   908            description: Deleted
   909            content:
   910              application/json:
   911                schema:
   912                  $ref: '#/components/schemas/apiModifyKeySuccess'
   913    '/tyk/oauth/authorize-client/':
   914      post:
   915        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.
   916        summary: Authorize client
   917        requestBody:
   918          required: true
   919          content:
   920            application/x-www-form-urlencoded:
   921              schema:
   922                type: object
   923                properties:
   924                  response_type:
   925                    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.
   926                    type: string
   927                  client_id:
   928                    description: Should be provided by requesting client as part of authorisation request. The Client ID that is making the request.
   929                    type: string
   930                  redirect_uri:
   931                    description: Should be provided by requesting client as part of authorisation request. Must match with the record stored with Tyk.
   932                    type: string
   933                  key_rules:
   934                    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.
   935                    type: string
   936              example:
   937                response_type: code
   938                client_id: 21e2baf424674f6461faca6d45285bbb
   939                redirect_uri: http%3A%2F%2Foauth.com%2Fredirect
   940                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'
   941        tags:
   942          - OAuth
   943        operationId: authorizeClient
   944        responses:
   945          '200':
   946            description: Succesful response
   947            content:
   948              application/json:
   949                schema:
   950                  type: object
   951                example:
   952                  code: MWY0ZDRkMzktOTYwNi00NDRiLTk2YmQtOWQxOGQ3Mjc5Yzdk
   953                  redirect_to: 'http://client-app.com/oauth-redirect/?code=MWY0ZDRkMzktOTYwNi00NDRiLTk2YmQtOWQxOGQ3Mjc5Yzdk'
   954    /tyk/org/keys:
   955      get:
   956        summary: List Organisation Keys
   957        description: |-
   958          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.
   959        tags:
   960          - Organisation Quotas
   961        operationId: listOrgKeys
   962        responses:
   963          '200':
   964            description: List of all API keys
   965            content:
   966              application/json:
   967                schema:
   968                  type: object
   969                  properties:
   970                    keys:
   971                      type: array
   972                      items:
   973                        type: string
   974                example:
   975                  keys:
   976                    - "key1"
   977                    - "key2"
   978      post:
   979        summary: Create an organisation key
   980        description: |-
   981          This work similar to Keys API except that Key ID is always equals Organisation ID
   982        tags:
   983          - Organisation Quotas
   984        operationId: addOrgKey
   985        requestBody:
   986          content:
   987            application/json:
   988              schema:
   989                $ref: "#/components/schemas/SessionState"
   990              example:
   991                quota_max: 60
   992                quota_renews: 1406121006
   993                quota_renewal_rate: 60
   994                allowance: 100
   995                rate: 100
   996                per: 5
   997                org_id: 53ac07777cbb8c2d53000002
   998        responses:
   999          '200':
  1000            description: New Key added
  1001            content:
  1002              application/json:
  1003                schema:
  1004                  $ref: '#/components/schemas/apiModifyKeySuccess'
  1005                example:
  1006                  action: created
  1007                  key: '{...KEY JSON definition...}'
  1008                  status: ok
  1009    '/tyk/orgs/keys/{keyID}':
  1010      parameters:
  1011        - description: The Key ID
  1012          name: keyID
  1013          in: path
  1014          required: true
  1015          schema:
  1016            type: string
  1017      get:
  1018        summary: Get an Organisation Key
  1019        description: Get session info about specified orgnanisation key. Should return up to date rate limit and quota usage numbers.
  1020        tags:
  1021          - Organisation Quotas
  1022        operationId: getOrgKey
  1023        responses:
  1024          '200':
  1025            description: Key object
  1026            content:
  1027              application/json:
  1028                schema:
  1029                  $ref: '#/components/schemas/SessionState'
  1030      put:
  1031        summary: Update Organisation Key
  1032        description: |-
  1033          This work similar to Keys API except that Key ID is always equals Organisation ID
  1034  
  1035          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.
  1036        tags:
  1037          - Organisation Quotas
  1038        operationId: updateOrgKey
  1039        requestBody:
  1040          content:
  1041            application/json:
  1042              schema:
  1043                $ref: "#/components/schemas/SessionState"
  1044              example:
  1045                quota_max: 60
  1046                quota_renews: 1406121006
  1047                quota_renewal_rate: 60
  1048                allowance: 100
  1049                rate: 100
  1050                per: 5
  1051                org_id: 53ac07777cbb8c2d53000002
  1052        parameters:
  1053          - description: |-
  1054              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.
  1055            name: reset_quota
  1056            in: query
  1057            required: false
  1058            schema:
  1059              type: string
  1060              enum: ["1"]
  1061        responses:
  1062          '200':
  1063            description: Key updated
  1064            content:
  1065              application/json:
  1066                schema:
  1067                  $ref: '#/components/schemas/apiModifyKeySuccess'
  1068                example:
  1069                  action: updated
  1070                  status: ok
  1071      delete:
  1072        summary: Delete Organisation Key
  1073        description: Deleting a key will remove all limits from organisation. It does not affects regualar keys created within organisation.
  1074        tags:
  1075          - Organisation Quotas
  1076        operationId: deleteOrgKey
  1077        responses:
  1078          '200':
  1079            description: Key deleted
  1080            content:
  1081              application/json:
  1082                schema:
  1083                  $ref: '#/components/schemas/apiStatusMessage'
  1084                example:
  1085                  action: Key deleted
  1086                  status: ok
  1087    /{listen_path}/tyk/batch:
  1088      parameters:
  1089        - name: listen_path
  1090          in: path
  1091          required: true
  1092          description: "API listen path"
  1093          schema:
  1094            type: string
  1095      post:
  1096        summary: Run batch request
  1097        tags:
  1098          - Batch requests
  1099        operationId: batch
  1100        responses:
  1101          '200':
  1102            $ref: '#/components/schemas/apiStatusMessage'
  1103  components:
  1104    responses:
  1105      parameterBodies:
  1106        content:
  1107          application/json:
  1108            schema:
  1109              $ref: '#/components/schemas/OAuthClientToken'
  1110        description: parameterBodies
  1111    schemas:
  1112      APIDefinition:
  1113        properties:
  1114          tags:
  1115            items:
  1116              type: string
  1117            type: array
  1118            x-go-name: Tags
  1119          CORS:
  1120            properties:
  1121              allow_credentials:
  1122                type: boolean
  1123                x-go-name: AllowCredentials
  1124              allowed_headers:
  1125                items:
  1126                  type: string
  1127                type: array
  1128                x-go-name: AllowedHeaders
  1129              allowed_methods:
  1130                items:
  1131                  type: string
  1132                type: array
  1133                x-go-name: AllowedMethods
  1134              allowed_origins:
  1135                items:
  1136                  type: string
  1137                type: array
  1138                x-go-name: AllowedOrigins
  1139              debug:
  1140                type: boolean
  1141                x-go-name: Debug
  1142              enable:
  1143                type: boolean
  1144                x-go-name: Enable
  1145              exposed_headers:
  1146                items:
  1147                  type: string
  1148                type: array
  1149                x-go-name: ExposedHeaders
  1150              max_age:
  1151                format: int64
  1152                type: integer
  1153                x-go-name: MaxAge
  1154              options_passthrough:
  1155                type: boolean
  1156                x-go-name: OptionsPassthrough
  1157            type: object
  1158          active:
  1159            type: boolean
  1160            x-go-name: Active
  1161          allowed_ips:
  1162            items:
  1163              type: string
  1164            type: array
  1165            x-go-name: AllowedIPs
  1166          api_id:
  1167            type: string
  1168            x-go-name: APIID
  1169          auth:
  1170            $ref: '#/components/schemas/Auth'
  1171          auth_provider:
  1172            $ref: '#/components/schemas/AuthProviderMeta'
  1173          base_identity_provided_by:
  1174            $ref: '#/components/schemas/AuthTypeEnum'
  1175          basic_auth:
  1176            properties:
  1177              body_password_regexp:
  1178                type: string
  1179                x-go-name: BodyPasswordRegexp
  1180              body_user_regexp:
  1181                type: string
  1182                x-go-name: BodyUserRegexp
  1183              cache_ttl:
  1184                format: int64
  1185                type: integer
  1186                x-go-name: CacheTTL
  1187              disable_caching:
  1188                type: boolean
  1189                x-go-name: DisableCaching
  1190              extract_from_body:
  1191                type: boolean
  1192                x-go-name: ExtractFromBody
  1193            type: object
  1194            x-go-name: BasicAuth
  1195          blacklisted_ips:
  1196            items:
  1197              type: string
  1198            type: array
  1199            x-go-name: BlacklistedIPs
  1200          cache_options:
  1201            $ref: '#/components/schemas/CacheOptions'
  1202          certificates:
  1203            items:
  1204              type: string
  1205            type: array
  1206            x-go-name: Certificates
  1207          client_certificates:
  1208            items:
  1209              type: string
  1210            type: array
  1211            x-go-name: ClientCertificates
  1212          config_data:
  1213            additionalProperties:
  1214              type: object
  1215            type: object
  1216            x-go-name: ConfigData
  1217          custom_middleware:
  1218            $ref: '#/components/schemas/MiddlewareSection'
  1219          custom_middleware_bundle:
  1220            type: string
  1221            x-go-name: CustomMiddlewareBundle
  1222          definition:
  1223            properties:
  1224              key:
  1225                type: string
  1226                x-go-name: Key
  1227              location:
  1228                type: string
  1229                x-go-name: Location
  1230              strip_path:
  1231                type: boolean
  1232                x-go-name: StripPath
  1233            type: object
  1234            x-go-name: VersionDefinition
  1235          disable_quota:
  1236            type: boolean
  1237            x-go-name: DisableQuota
  1238          disable_rate_limit:
  1239            type: boolean
  1240            x-go-name: DisableRateLimit
  1241          do_not_track:
  1242            type: boolean
  1243            x-go-name: DoNotTrack
  1244          domain:
  1245            type: string
  1246            x-go-name: Domain
  1247          dont_set_quota_on_create:
  1248            type: boolean
  1249            x-go-name: DontSetQuotasOnCreate
  1250          enable_batch_request_support:
  1251            type: boolean
  1252            x-go-name: EnableBatchRequestSupport
  1253          enable_context_vars:
  1254            type: boolean
  1255            x-go-name: EnableContextVars
  1256          enable_coprocess_auth:
  1257            type: boolean
  1258            x-go-name: EnableCoProcessAuth
  1259          enable_ip_blacklisting:
  1260            type: boolean
  1261            x-go-name: EnableIpBlacklisting
  1262          enable_ip_whitelisting:
  1263            type: boolean
  1264            x-go-name: EnableIpWhiteListing
  1265          enable_jwt:
  1266            type: boolean
  1267            x-go-name: EnableJWT
  1268          enable_signature_checking:
  1269            type: boolean
  1270            x-go-name: EnableSignatureChecking
  1271          event_handlers:
  1272            $ref: '#/components/schemas/EventHandlerMetaConfig'
  1273          expire_analytics_after:
  1274            format: int64
  1275            type: integer
  1276            x-go-name: ExpireAnalyticsAfter
  1277          global_rate_limit:
  1278            $ref: '#/components/schemas/GlobalRateLimit'
  1279          hmac_allowed_algorithms:
  1280            items:
  1281              type: string
  1282            type: array
  1283            x-go-name: HmacAllowedAlgorithms
  1284          hmac_allowed_clock_skew:
  1285            format: double
  1286            type: number
  1287            x-go-name: HmacAllowedClockSkew
  1288          id:
  1289            $ref: '#/components/schemas/ObjectId'
  1290          internal:
  1291            type: boolean
  1292            x-go-name: Internal
  1293          jwt_client_base_field:
  1294            type: string
  1295            x-go-name: JWTClientIDBaseField
  1296          jwt_expires_at_validation_skew:
  1297            format: uint64
  1298            type: integer
  1299            x-go-name: JWTExpiresAtValidationSkew
  1300          jwt_identity_base_field:
  1301            type: string
  1302            x-go-name: JWTIdentityBaseField
  1303          jwt_issued_at_validation_skew:
  1304            format: uint64
  1305            type: integer
  1306            x-go-name: JWTIssuedAtValidationSkew
  1307          jwt_not_before_validation_skew:
  1308            format: uint64
  1309            type: integer
  1310            x-go-name: JWTNotBeforeValidationSkew
  1311          jwt_policy_field_name:
  1312            type: string
  1313            x-go-name: JWTPolicyFieldName
  1314          jwt_scope_claim_name:
  1315            type: string
  1316            x-go-name: JWTScopeClaimName
  1317          jwt_scope_to_policy_mapping:
  1318            additionalProperties:
  1319              type: string
  1320            type: object
  1321            x-go-name: JWTScopeToPolicyMapping
  1322          jwt_signing_method:
  1323            type: string
  1324            x-go-name: JWTSigningMethod
  1325          jwt_skip_kid:
  1326            type: boolean
  1327            x-go-name: JWTSkipKid
  1328          jwt_source:
  1329            type: string
  1330            x-go-name: JWTSource
  1331          name:
  1332            type: string
  1333            x-go-name: Name
  1334          notifications:
  1335            $ref: '#/components/schemas/NotificationsManager'
  1336          oauth_meta:
  1337            properties:
  1338              allowed_access_types:
  1339                items:
  1340                  $ref: '#/components/schemas/AccessRequestType'
  1341                type: array
  1342                x-go-name: AllowedAccessTypes
  1343              allowed_authorize_types:
  1344                items:
  1345                  $ref: '#/components/schemas/AuthorizeRequestType'
  1346                type: array
  1347                x-go-name: AllowedAuthorizeTypes
  1348              auth_login_redirect:
  1349                type: string
  1350                x-go-name: AuthorizeLoginRedirect
  1351            type: object
  1352            x-go-name: Oauth2Meta
  1353          openid_options:
  1354            $ref: '#/components/schemas/OpenIDOptions'
  1355          org_id:
  1356            type: string
  1357            x-go-name: OrgID
  1358          pinned_public_keys:
  1359            additionalProperties:
  1360              type: string
  1361            type: object
  1362            x-go-name: PinnedPublicKeys
  1363          proxy:
  1364            properties:
  1365              check_host_against_uptime_tests:
  1366                type: boolean
  1367                x-go-name: CheckHostAgainstUptimeTests
  1368              disable_strip_slash:
  1369                type: boolean
  1370                x-go-name: DisableStripSlash
  1371              enable_load_balancing:
  1372                type: boolean
  1373                x-go-name: EnableLoadBalancing
  1374              listen_path:
  1375                type: string
  1376                x-go-name: ListenPath
  1377              preserve_host_header:
  1378                type: boolean
  1379                x-go-name: PreserveHostHeader
  1380              service_discovery:
  1381                $ref: '#/components/schemas/ServiceDiscoveryConfiguration'
  1382              strip_listen_path:
  1383                type: boolean
  1384                x-go-name: StripListenPath
  1385              target_list:
  1386                items:
  1387                  type: string
  1388                type: array
  1389                x-go-name: Targets
  1390              target_url:
  1391                type: string
  1392                x-go-name: TargetURL
  1393              transport:
  1394                properties:
  1395                  proxy_url:
  1396                    type: string
  1397                    x-go-name: ProxyURL
  1398                  ssl_ciphers:
  1399                    items:
  1400                      type: string
  1401                    type: array
  1402                    x-go-name: SSLCipherSuites
  1403                  ssl_insecure_skip_verify:
  1404                    type: boolean
  1405                    x-go-name: SSLInsecureSkipVerify
  1406                  ssl_min_version:
  1407                    format: uint16
  1408                    type: integer
  1409                    x-go-name: SSLMinVersion
  1410                type: object
  1411                x-go-name: Transport
  1412            type: object
  1413            x-go-name: Proxy
  1414          response_processors:
  1415            items:
  1416              $ref: '#/components/schemas/ResponseProcessor'
  1417            type: array
  1418            x-go-name: ResponseProcessors
  1419          session_lifetime:
  1420            format: int64
  1421            type: integer
  1422            x-go-name: SessionLifetime
  1423          session_provider:
  1424            $ref: '#/components/schemas/SessionProviderMeta'
  1425          slug:
  1426            type: string
  1427            x-go-name: Slug
  1428          strip_auth_data:
  1429            type: boolean
  1430            x-go-name: StripAuthData
  1431          tag_headers:
  1432            items:
  1433              type: string
  1434            type: array
  1435            x-go-name: TagHeaders
  1436          upstream_certificates:
  1437            additionalProperties:
  1438              type: string
  1439            type: object
  1440            x-go-name: UpstreamCertificates
  1441          uptime_tests:
  1442            properties:
  1443              check_list:
  1444                items:
  1445                  $ref: '#/components/schemas/HostCheckObject'
  1446                type: array
  1447                x-go-name: CheckList
  1448              config:
  1449                properties:
  1450                  expire_utime_after:
  1451                    format: int64
  1452                    type: integer
  1453                    x-go-name: ExpireUptimeAnalyticsAfter
  1454                  recheck_wait:
  1455                    format: int64
  1456                    type: integer
  1457                    x-go-name: RecheckWait
  1458                  service_discovery:
  1459                    $ref: '#/components/schemas/ServiceDiscoveryConfiguration'
  1460                type: object
  1461                x-go-name: Config
  1462            type: object
  1463            x-go-name: UptimeTests
  1464          use_basic_auth:
  1465            type: boolean
  1466            x-go-name: UseBasicAuth
  1467          use_keyless:
  1468            type: boolean
  1469            x-go-name: UseKeylessAccess
  1470          use_mutual_tls_auth:
  1471            type: boolean
  1472            x-go-name: UseMutualTLSAuth
  1473          use_oauth2:
  1474            type: boolean
  1475            x-go-name: UseOauth2
  1476          use_openid:
  1477            type: boolean
  1478            x-go-name: UseOpenID
  1479          use_standard_auth:
  1480            type: boolean
  1481            x-go-name: UseStandardAuth
  1482          version_data:
  1483            properties:
  1484              default_version:
  1485                type: string
  1486                x-go-name: DefaultVersion
  1487              not_versioned:
  1488                type: boolean
  1489                x-go-name: NotVersioned
  1490              versions:
  1491                additionalProperties:
  1492                  $ref: '#/components/schemas/VersionInfo'
  1493                type: object
  1494                x-go-name: Versions
  1495            type: object
  1496            x-go-name: VersionData
  1497        title: >-
  1498          APIDefinition represents the configuration for a single proxied API and
  1499          it's versions.
  1500        type: object
  1501        x-go-package: github.com/TykTechnologies/tyk/apidef
  1502      APILimit:
  1503        description: APILimit stores quota and rate limit on ACL level (per API)
  1504        properties:
  1505          per:
  1506            format: double
  1507            type: number
  1508            x-go-name: Per
  1509          quota_max:
  1510            format: int64
  1511            type: integer
  1512            x-go-name: QuotaMax
  1513          quota_remaining:
  1514            format: int64
  1515            type: integer
  1516            x-go-name: QuotaRemaining
  1517          quota_renewal_rate:
  1518            format: int64
  1519            type: integer
  1520            x-go-name: QuotaRenewalRate
  1521          quota_renews:
  1522            format: int64
  1523            type: integer
  1524            x-go-name: QuotaRenews
  1525          rate:
  1526            format: double
  1527            type: number
  1528            x-go-name: Rate
  1529          set_by_policy:
  1530            type: boolean
  1531            x-go-name: SetByPolicy
  1532          throttle_interval:
  1533            format: double
  1534            type: number
  1535            x-go-name: ThrottleInterval
  1536          throttle_retry_limit:
  1537            format: int64
  1538            type: integer
  1539            x-go-name: ThrottleRetryLimit
  1540        type: object
  1541        x-go-package: github.com/TykTechnologies/tyk/user
  1542      AccessDefinition:
  1543        description: AccessDefinition defines which versions of an API a key has access to
  1544        properties:
  1545          allowed_urls:
  1546            items:
  1547              $ref: '#/components/schemas/AccessSpec'
  1548            type: array
  1549            x-go-name: AllowedURLs
  1550          api_id:
  1551            type: string
  1552            x-go-name: APIID
  1553          api_name:
  1554            type: string
  1555            x-go-name: APIName
  1556          limit:
  1557            $ref: '#/components/schemas/APILimit'
  1558          versions:
  1559            items:
  1560              type: string
  1561            type: array
  1562            x-go-name: Versions
  1563        type: object
  1564        x-go-package: github.com/TykTechnologies/tyk/user
  1565      AccessRequestType:
  1566        description: AccessRequestType is the type for OAuth param `grant_type`
  1567        type: string
  1568        x-go-package: github.com/TykTechnologies/tyk/vendor/github.com/lonelycode/osin
  1569      AccessSpec:
  1570        description: >-
  1571          AccessSpecs define what URLS a user has access to an what methods are
  1572          enabled
  1573        properties:
  1574          methods:
  1575            items:
  1576              type: string
  1577            type: array
  1578            x-go-name: Methods
  1579          url:
  1580            type: string
  1581            x-go-name: URL
  1582        type: object
  1583        x-go-package: github.com/TykTechnologies/tyk/user
  1584      Auth:
  1585        properties:
  1586          auth_header_name:
  1587            type: string
  1588            x-go-name: AuthHeaderName
  1589          cookie_name:
  1590            type: string
  1591            x-go-name: CookieName
  1592          param_name:
  1593            type: string
  1594            x-go-name: ParamName
  1595          signature:
  1596            $ref: '#/components/schemas/SignatureConfig'
  1597          use_certificate:
  1598            type: boolean
  1599            x-go-name: UseCertificate
  1600          use_cookie:
  1601            type: boolean
  1602            x-go-name: UseCookie
  1603          use_param:
  1604            type: boolean
  1605            x-go-name: UseParam
  1606          validate_signature:
  1607            type: boolean
  1608            x-go-name: ValidateSignature
  1609        type: object
  1610        x-go-package: github.com/TykTechnologies/tyk/apidef
  1611      AuthProviderCode:
  1612        type: string
  1613        x-go-package: github.com/TykTechnologies/tyk/apidef
  1614      AuthProviderMeta:
  1615        properties:
  1616          meta:
  1617            additionalProperties:
  1618              type: object
  1619            type: object
  1620            x-go-name: Meta
  1621          name:
  1622            $ref: '#/components/schemas/AuthProviderCode'
  1623          storage_engine:
  1624            $ref: '#/components/schemas/StorageEngineCode'
  1625        type: object
  1626        x-go-package: github.com/TykTechnologies/tyk/apidef
  1627      AuthTypeEnum:
  1628        type: string
  1629        x-go-package: github.com/TykTechnologies/tyk/apidef
  1630      AuthorizeRequestType:
  1631        description: AuthorizeRequestType is the type for OAuth param `response_type`
  1632        type: string
  1633        x-go-package: github.com/TykTechnologies/tyk/vendor/github.com/lonelycode/osin
  1634      CacheMeta:
  1635        properties:
  1636          cache_key_regex:
  1637            type: string
  1638            x-go-name: CacheKeyRegex
  1639          method:
  1640            type: string
  1641            x-go-name: Method
  1642          path:
  1643            type: string
  1644            x-go-name: Path
  1645        type: object
  1646        x-go-package: github.com/TykTechnologies/tyk/apidef
  1647      CacheOptions:
  1648        properties:
  1649          cache_all_safe_requests:
  1650            type: boolean
  1651            x-go-name: CacheAllSafeRequests
  1652          cache_control_ttl_header:
  1653            type: string
  1654            x-go-name: CacheControlTTLHeader
  1655          cache_response_codes:
  1656            items:
  1657              format: int64
  1658              type: integer
  1659            type: array
  1660            x-go-name: CacheOnlyResponseCodes
  1661          cache_timeout:
  1662            format: int64
  1663            type: integer
  1664            x-go-name: CacheTimeout
  1665          enable_cache:
  1666            type: boolean
  1667            x-go-name: EnableCache
  1668          enable_upstream_cache_control:
  1669            type: boolean
  1670            x-go-name: EnableUpstreamCacheControl
  1671        type: object
  1672        x-go-package: github.com/TykTechnologies/tyk/apidef
  1673      CircuitBreakerMeta:
  1674        properties:
  1675          method:
  1676            type: string
  1677            x-go-name: Method
  1678          path:
  1679            type: string
  1680            x-go-name: Path
  1681          return_to_service_after:
  1682            format: int64
  1683            type: integer
  1684            x-go-name: ReturnToServiceAfter
  1685          samples:
  1686            format: int64
  1687            type: integer
  1688            x-go-name: Samples
  1689          threshold_percent:
  1690            format: double
  1691            type: number
  1692            x-go-name: ThresholdPercent
  1693        type: object
  1694        x-go-package: github.com/TykTechnologies/tyk/apidef
  1695      EndPointMeta:
  1696        properties:
  1697          method_actions:
  1698            additionalProperties:
  1699              $ref: '#/components/schemas/EndpointMethodMeta'
  1700            type: object
  1701            x-go-name: MethodActions
  1702          path:
  1703            type: string
  1704            x-go-name: Path
  1705        type: object
  1706        x-go-package: github.com/TykTechnologies/tyk/apidef
  1707      EndpointMethodAction:
  1708        type: string
  1709        x-go-package: github.com/TykTechnologies/tyk/apidef
  1710      EndpointMethodMeta:
  1711        properties:
  1712          action:
  1713            $ref: '#/components/schemas/EndpointMethodAction'
  1714          code:
  1715            format: int64
  1716            type: integer
  1717            x-go-name: Code
  1718          data:
  1719            type: string
  1720            x-go-name: Data
  1721          headers:
  1722            additionalProperties:
  1723              type: string
  1724            type: object
  1725            x-go-name: Headers
  1726        type: object
  1727        x-go-package: github.com/TykTechnologies/tyk/apidef
  1728      EventHandlerMetaConfig:
  1729        properties:
  1730          events:
  1731            x-go-name: Events
  1732        type: object
  1733        x-go-package: github.com/TykTechnologies/tyk/apidef
  1734      ExtendedPathsSet:
  1735        properties:
  1736          advance_cache_config:
  1737            items:
  1738              $ref: '#/components/schemas/CacheMeta'
  1739            type: array
  1740            x-go-name: AdvanceCacheConfig
  1741          black_list:
  1742            items:
  1743              $ref: '#/components/schemas/EndPointMeta'
  1744            type: array
  1745            x-go-name: BlackList
  1746          cache:
  1747            items:
  1748              type: string
  1749            type: array
  1750            x-go-name: Cached
  1751          circuit_breakers:
  1752            items:
  1753              $ref: '#/components/schemas/CircuitBreakerMeta'
  1754            type: array
  1755            x-go-name: CircuitBreaker
  1756          do_not_track_endpoints:
  1757            items:
  1758              $ref: '#/components/schemas/TrackEndpointMeta'
  1759            type: array
  1760            x-go-name: DoNotTrackEndpoints
  1761          hard_timeouts:
  1762            items:
  1763              $ref: '#/components/schemas/HardTimeoutMeta'
  1764            type: array
  1765            x-go-name: HardTimeouts
  1766          ignored:
  1767            items:
  1768              $ref: '#/components/schemas/EndPointMeta'
  1769            type: array
  1770            x-go-name: Ignored
  1771          internal:
  1772            items:
  1773              $ref: '#/components/schemas/InternalMeta'
  1774            type: array
  1775            x-go-name: Internal
  1776          method_transforms:
  1777            items:
  1778              $ref: '#/components/schemas/MethodTransformMeta'
  1779            type: array
  1780            x-go-name: MethodTransforms
  1781          size_limits:
  1782            items:
  1783              $ref: '#/components/schemas/RequestSizeMeta'
  1784            type: array
  1785            x-go-name: SizeLimit
  1786          track_endpoints:
  1787            items:
  1788              $ref: '#/components/schemas/TrackEndpointMeta'
  1789            type: array
  1790            x-go-name: TrackEndpoints
  1791          transform:
  1792            items:
  1793              $ref: '#/components/schemas/TemplateMeta'
  1794            type: array
  1795            x-go-name: Transform
  1796          transform_headers:
  1797            items:
  1798              $ref: '#/components/schemas/HeaderInjectionMeta'
  1799            type: array
  1800            x-go-name: TransformHeader
  1801          transform_jq:
  1802            items:
  1803              $ref: '#/components/schemas/TransformJQMeta'
  1804            type: array
  1805            x-go-name: TransformJQ
  1806          transform_jq_response:
  1807            items:
  1808              $ref: '#/components/schemas/TransformJQMeta'
  1809            type: array
  1810            x-go-name: TransformJQResponse
  1811          transform_response:
  1812            items:
  1813              $ref: '#/components/schemas/TemplateMeta'
  1814            type: array
  1815            x-go-name: TransformResponse
  1816          transform_response_headers:
  1817            items:
  1818              $ref: '#/components/schemas/HeaderInjectionMeta'
  1819            type: array
  1820            x-go-name: TransformResponseHeader
  1821          url_rewrites:
  1822            items:
  1823              $ref: '#/components/schemas/URLRewriteMeta'
  1824            type: array
  1825            x-go-name: URLRewrite
  1826          validate_json:
  1827            items:
  1828              $ref: '#/components/schemas/ValidatePathMeta'
  1829            type: array
  1830            x-go-name: ValidateJSON
  1831          virtual:
  1832            items:
  1833              $ref: '#/components/schemas/VirtualMeta'
  1834            type: array
  1835            x-go-name: Virtual
  1836          white_list:
  1837            items:
  1838              $ref: '#/components/schemas/EndPointMeta'
  1839            type: array
  1840            x-go-name: WhiteList
  1841        type: object
  1842        x-go-package: github.com/TykTechnologies/tyk/apidef
  1843      GlobalRateLimit:
  1844        properties:
  1845          per:
  1846            format: double
  1847            type: number
  1848            x-go-name: Per
  1849          rate:
  1850            format: double
  1851            type: number
  1852            x-go-name: Rate
  1853        type: object
  1854        x-go-package: github.com/TykTechnologies/tyk/apidef
  1855      HardTimeoutMeta:
  1856        properties:
  1857          method:
  1858            type: string
  1859            x-go-name: Method
  1860          path:
  1861            type: string
  1862            x-go-name: Path
  1863          timeout:
  1864            format: int64
  1865            type: integer
  1866            x-go-name: TimeOut
  1867        type: object
  1868        x-go-package: github.com/TykTechnologies/tyk/apidef
  1869      HashType:
  1870        type: string
  1871        x-go-package: github.com/TykTechnologies/tyk/user
  1872      HeaderInjectionMeta:
  1873        properties:
  1874          act_on:
  1875            type: boolean
  1876            x-go-name: ActOnResponse
  1877          add_headers:
  1878            additionalProperties:
  1879              type: string
  1880            type: object
  1881            x-go-name: AddHeaders
  1882          delete_headers:
  1883            items:
  1884              type: string
  1885            type: array
  1886            x-go-name: DeleteHeaders
  1887          method:
  1888            type: string
  1889            x-go-name: Method
  1890          path:
  1891            type: string
  1892            x-go-name: Path
  1893        type: object
  1894        x-go-package: github.com/TykTechnologies/tyk/apidef
  1895      HostCheckObject:
  1896        properties:
  1897          body:
  1898            type: string
  1899            x-go-name: Body
  1900          headers:
  1901            additionalProperties:
  1902              type: string
  1903            type: object
  1904            x-go-name: Headers
  1905          method:
  1906            type: string
  1907            x-go-name: Method
  1908          url:
  1909            type: string
  1910            x-go-name: CheckURL
  1911        type: object
  1912        x-go-package: github.com/TykTechnologies/tyk/apidef
  1913      IdExtractorSource:
  1914        type: string
  1915        x-go-package: github.com/TykTechnologies/tyk/apidef
  1916      IdExtractorType:
  1917        type: string
  1918        x-go-package: github.com/TykTechnologies/tyk/apidef
  1919      InternalMeta:
  1920        properties:
  1921          method:
  1922            type: string
  1923            x-go-name: Method
  1924          path:
  1925            type: string
  1926            x-go-name: Path
  1927        type: object
  1928        x-go-package: github.com/TykTechnologies/tyk/apidef
  1929      MethodTransformMeta:
  1930        properties:
  1931          method:
  1932            type: string
  1933            x-go-name: Method
  1934          path:
  1935            type: string
  1936            x-go-name: Path
  1937          to_method:
  1938            type: string
  1939            x-go-name: ToMethod
  1940        type: object
  1941        x-go-package: github.com/TykTechnologies/tyk/apidef
  1942      MiddlewareDefinition:
  1943        properties:
  1944          name:
  1945            type: string
  1946            x-go-name: Name
  1947          path:
  1948            type: string
  1949            x-go-name: Path
  1950          require_session:
  1951            type: boolean
  1952            x-go-name: RequireSession
  1953        type: object
  1954        x-go-package: github.com/TykTechnologies/tyk/apidef
  1955      MiddlewareDriver:
  1956        type: string
  1957        x-go-package: github.com/TykTechnologies/tyk/apidef
  1958      MiddlewareIdExtractor:
  1959        properties:
  1960          extract_from:
  1961            $ref: '#/components/schemas/IdExtractorSource'
  1962          extract_with:
  1963            $ref: '#/components/schemas/IdExtractorType'
  1964          extractor_config:
  1965            additionalProperties:
  1966              type: object
  1967            type: object
  1968            x-go-name: ExtractorConfig
  1969        type: object
  1970        x-go-package: github.com/TykTechnologies/tyk/apidef
  1971      MiddlewareSection:
  1972        properties:
  1973          auth_check:
  1974            $ref: '#/components/schemas/MiddlewareDefinition'
  1975          driver:
  1976            $ref: '#/components/schemas/MiddlewareDriver'
  1977          id_extractor:
  1978            $ref: '#/components/schemas/MiddlewareIdExtractor'
  1979          post:
  1980            items:
  1981              $ref: '#/components/schemas/MiddlewareDefinition'
  1982            type: array
  1983            x-go-name: Post
  1984          post_key_auth:
  1985            items:
  1986              $ref: '#/components/schemas/MiddlewareDefinition'
  1987            type: array
  1988            x-go-name: PostKeyAuth
  1989          pre:
  1990            items:
  1991              $ref: '#/components/schemas/MiddlewareDefinition'
  1992            type: array
  1993            x-go-name: Pre
  1994          response:
  1995            items:
  1996              $ref: '#/components/schemas/MiddlewareDefinition'
  1997            type: array
  1998            x-go-name: Response
  1999        type: object
  2000        x-go-package: github.com/TykTechnologies/tyk/apidef
  2001      NewClientRequest:
  2002        description: >-
  2003          NewClientRequest is an outward facing JSON object translated from osin
  2004          OAuthClients
  2005        properties:
  2006          api_id:
  2007            type: string
  2008            x-go-name: APIID
  2009          client_id:
  2010            type: string
  2011            x-go-name: ClientID
  2012          description:
  2013            type: string
  2014            x-go-name: Description
  2015          meta_data:
  2016            type: object
  2017            x-go-name: MetaData
  2018          policy_id:
  2019            type: string
  2020            x-go-name: PolicyID
  2021          redirect_uri:
  2022            type: string
  2023            x-go-name: ClientRedirectURI
  2024          secret:
  2025            type: string
  2026            x-go-name: ClientSecret
  2027        type: object
  2028        x-go-package: github.com/TykTechnologies/tyk
  2029      NotificationsManager:
  2030        description: 'TODO: Make this more generic'
  2031        properties:
  2032          oauth_on_keychange_url:
  2033            type: string
  2034            x-go-name: OAuthKeyChangeURL
  2035          shared_secret:
  2036            type: string
  2037            x-go-name: SharedSecret
  2038        title: >-
  2039          NotificationsManager handles sending notifications to OAuth endpoints to
  2040          notify the provider of key changes.
  2041        type: object
  2042        x-go-package: github.com/TykTechnologies/tyk/apidef
  2043      OAuthClientToken:
  2044        properties:
  2045          code:
  2046            type: string
  2047            x-go-name: Token
  2048          expires:
  2049            format: int64
  2050            type: integer
  2051            x-go-name: Expires
  2052        type: object
  2053        x-go-package: github.com/TykTechnologies/tyk
  2054      OIDProviderConfig:
  2055        properties:
  2056          client_ids:
  2057            additionalProperties:
  2058              type: string
  2059            type: object
  2060            x-go-name: ClientIDs
  2061          issuer:
  2062            type: string
  2063            x-go-name: Issuer
  2064        type: object
  2065        x-go-package: github.com/TykTechnologies/tyk/apidef
  2066      ObjectId:
  2067        description: 'http://www.mongodb.org/display/DOCS/Object+IDs'
  2068        title: >-
  2069          ObjectId is a unique ID identifying a BSON value. It must be exactly 12
  2070          bytes
  2071  
  2072          long. MongoDB objects by default have such a property set in their "_id"
  2073  
  2074          property.
  2075        type: string
  2076        x-go-package: github.com/TykTechnologies/tyk/vendor/gopkg.in/mgo.v2/bson
  2077      OpenIDOptions:
  2078        properties:
  2079          providers:
  2080            items:
  2081              $ref: '#/components/schemas/OIDProviderConfig'
  2082            type: array
  2083            x-go-name: Providers
  2084          segregate_by_client:
  2085            type: boolean
  2086            x-go-name: SegregateByClient
  2087        type: object
  2088        x-go-package: github.com/TykTechnologies/tyk/apidef
  2089      Regexp:
  2090        description: Regexp is a wrapper around regexp.Regexp but with caching
  2091        properties:
  2092          FromCache:
  2093            type: boolean
  2094        type: object
  2095        x-go-package: github.com/TykTechnologies/tyk/regexp
  2096      RequestInputType:
  2097        type: string
  2098        x-go-package: github.com/TykTechnologies/tyk/apidef
  2099      RequestSizeMeta:
  2100        properties:
  2101          method:
  2102            type: string
  2103            x-go-name: Method
  2104          path:
  2105            type: string
  2106            x-go-name: Path
  2107          size_limit:
  2108            format: int64
  2109            type: integer
  2110            x-go-name: SizeLimit
  2111        type: object
  2112        x-go-package: github.com/TykTechnologies/tyk/apidef
  2113      ResponseProcessor:
  2114        properties:
  2115          name:
  2116            type: string
  2117            x-go-name: Name
  2118          options:
  2119            type: object
  2120            x-go-name: Options
  2121        type: object
  2122        x-go-package: github.com/TykTechnologies/tyk/apidef
  2123      RoutingTrigger:
  2124        properties:
  2125          'on':
  2126            $ref: '#/components/schemas/RoutingTriggerOnType'
  2127          options:
  2128            $ref: '#/components/schemas/RoutingTriggerOptions'
  2129          rewrite_to:
  2130            type: string
  2131            x-go-name: RewriteTo
  2132        type: object
  2133        x-go-package: github.com/TykTechnologies/tyk/apidef
  2134      RoutingTriggerOnType:
  2135        type: string
  2136        x-go-package: github.com/TykTechnologies/tyk/apidef
  2137      RoutingTriggerOptions:
  2138        properties:
  2139          header_matches:
  2140            additionalProperties:
  2141              $ref: '#/components/schemas/StringRegexMap'
  2142            type: object
  2143            x-go-name: HeaderMatches
  2144          path_part_matches:
  2145            additionalProperties:
  2146              $ref: '#/components/schemas/StringRegexMap'
  2147            type: object
  2148            x-go-name: PathPartMatches
  2149          payload_matches:
  2150            $ref: '#/components/schemas/StringRegexMap'
  2151          query_val_matches:
  2152            additionalProperties:
  2153              $ref: '#/components/schemas/StringRegexMap'
  2154            type: object
  2155            x-go-name: QueryValMatches
  2156          request_context_matches:
  2157            additionalProperties:
  2158              $ref: '#/components/schemas/StringRegexMap'
  2159            type: object
  2160            x-go-name: RequestContextMatches
  2161          session_meta_matches:
  2162            additionalProperties:
  2163              $ref: '#/components/schemas/StringRegexMap'
  2164            type: object
  2165            x-go-name: SessionMetaMatches
  2166        type: object
  2167        x-go-package: github.com/TykTechnologies/tyk/apidef
  2168      ServiceDiscoveryConfiguration:
  2169        properties:
  2170          cache_timeout:
  2171            format: int64
  2172            type: integer
  2173            x-go-name: CacheTimeout
  2174          data_path:
  2175            type: string
  2176            x-go-name: DataPath
  2177          endpoint_returns_list:
  2178            type: boolean
  2179            x-go-name: EndpointReturnsList
  2180          parent_data_path:
  2181            type: string
  2182            x-go-name: ParentDataPath
  2183          port_data_path:
  2184            type: string
  2185            x-go-name: PortDataPath
  2186          query_endpoint:
  2187            type: string
  2188            x-go-name: QueryEndpoint
  2189          target_path:
  2190            type: string
  2191            x-go-name: TargetPath
  2192          use_discovery_service:
  2193            type: boolean
  2194            x-go-name: UseDiscoveryService
  2195          use_nested_query:
  2196            type: boolean
  2197            x-go-name: UseNestedQuery
  2198          use_target_list:
  2199            type: boolean
  2200            x-go-name: UseTargetList
  2201        type: object
  2202        x-go-package: github.com/TykTechnologies/tyk/apidef
  2203      SessionProviderCode:
  2204        type: string
  2205        x-go-package: github.com/TykTechnologies/tyk/apidef
  2206      SessionProviderMeta:
  2207        properties:
  2208          meta:
  2209            additionalProperties:
  2210              type: object
  2211            type: object
  2212            x-go-name: Meta
  2213          name:
  2214            $ref: '#/components/schemas/SessionProviderCode'
  2215          storage_engine:
  2216            $ref: '#/components/schemas/StorageEngineCode'
  2217        type: object
  2218        x-go-package: github.com/TykTechnologies/tyk/apidef
  2219      SessionState:
  2220        description: >-
  2221          There's a data structure that's based on this and it's used for Protocol
  2222          Buffer support, make sure to update
  2223          "coprocess/proto/coprocess_session_state.proto" and generate the
  2224          bindings using: cd coprocess/proto && ./update_bindings.sh
  2225        properties:
  2226          tags:
  2227            items:
  2228              type: string
  2229            type: array
  2230            x-go-name: Tags
  2231          access_rights:
  2232            additionalProperties:
  2233              $ref: '#/components/schemas/AccessDefinition'
  2234            type: object
  2235            x-go-name: AccessRights
  2236          alias:
  2237            type: string
  2238            x-go-name: Alias
  2239          allowance:
  2240            format: double
  2241            type: number
  2242            x-go-name: Allowance
  2243          apply_policies:
  2244            items:
  2245              type: string
  2246            type: array
  2247            x-go-name: ApplyPolicies
  2248          apply_policy_id:
  2249            type: string
  2250            x-go-name: ApplyPolicyID
  2251          basic_auth_data:
  2252            properties:
  2253              hash_type:
  2254                $ref: '#/components/schemas/HashType'
  2255              password:
  2256                type: string
  2257                x-go-name: Password
  2258            type: object
  2259            x-go-name: BasicAuthData
  2260          certificate:
  2261            type: string
  2262            x-go-name: Certificate
  2263          data_expires:
  2264            format: int64
  2265            type: integer
  2266            x-go-name: DataExpires
  2267          enable_detail_recording:
  2268            type: boolean
  2269            x-go-name: EnableDetailedRecording
  2270          expires:
  2271            format: int64
  2272            type: integer
  2273            x-go-name: Expires
  2274          hmac_enabled:
  2275            type: boolean
  2276            x-go-name: HMACEnabled
  2277          hmac_string:
  2278            type: string
  2279            x-go-name: HmacSecret
  2280          id_extractor_deadline:
  2281            format: int64
  2282            type: integer
  2283            x-go-name: IdExtractorDeadline
  2284          is_inactive:
  2285            type: boolean
  2286            x-go-name: IsInactive
  2287          jwt_data:
  2288            properties:
  2289              secret:
  2290                type: string
  2291                x-go-name: Secret
  2292            type: object
  2293            x-go-name: JWTData
  2294          last_check:
  2295            format: int64
  2296            type: integer
  2297            x-go-name: LastCheck
  2298          last_updated:
  2299            type: string
  2300            x-go-name: LastUpdated
  2301          meta_data:
  2302            additionalProperties:
  2303              type: object
  2304            type: object
  2305            x-go-name: MetaData
  2306          monitor:
  2307            properties:
  2308              trigger_limits:
  2309                items:
  2310                  format: double
  2311                  type: number
  2312                type: array
  2313                x-go-name: TriggerLimits
  2314            type: object
  2315            x-go-name: Monitor
  2316          oauth_client_id:
  2317            type: string
  2318            x-go-name: OauthClientID
  2319          oauth_keys:
  2320            additionalProperties:
  2321              type: string
  2322            type: object
  2323            x-go-name: OauthKeys
  2324          org_id:
  2325            type: string
  2326            x-go-name: OrgID
  2327          per:
  2328            format: double
  2329            type: number
  2330            x-go-name: Per
  2331          quota_max:
  2332            format: int64
  2333            type: integer
  2334            x-go-name: QuotaMax
  2335          quota_remaining:
  2336            format: int64
  2337            type: integer
  2338            x-go-name: QuotaRemaining
  2339          quota_renewal_rate:
  2340            format: int64
  2341            type: integer
  2342            x-go-name: QuotaRenewalRate
  2343          quota_renews:
  2344            format: int64
  2345            type: integer
  2346            x-go-name: QuotaRenews
  2347          rate:
  2348            format: double
  2349            type: number
  2350            x-go-name: Rate
  2351          session_lifetime:
  2352            format: int64
  2353            type: integer
  2354            x-go-name: SessionLifetime
  2355          throttle_interval:
  2356            format: double
  2357            type: number
  2358            x-go-name: ThrottleInterval
  2359          throttle_retry_limit:
  2360            format: int64
  2361            type: integer
  2362            x-go-name: ThrottleRetryLimit
  2363        title: >-
  2364          SessionState objects represent a current API session, mainly used for
  2365          rate limiting.
  2366        type: object
  2367        x-go-package: github.com/TykTechnologies/tyk/user
  2368      SignatureConfig:
  2369        properties:
  2370          algorithm:
  2371            type: string
  2372            x-go-name: Algorithm
  2373          allowed_clock_skew:
  2374            format: int64
  2375            type: integer
  2376            x-go-name: AllowedClockSkew
  2377          error_code:
  2378            format: int64
  2379            type: integer
  2380            x-go-name: ErrorCode
  2381          error_message:
  2382            type: string
  2383            x-go-name: ErrorMessage
  2384          header:
  2385            type: string
  2386            x-go-name: Header
  2387          secret:
  2388            type: string
  2389            x-go-name: Secret
  2390        type: object
  2391        x-go-package: github.com/TykTechnologies/tyk/apidef
  2392      StorageEngineCode:
  2393        type: string
  2394        x-go-package: github.com/TykTechnologies/tyk/apidef
  2395      StringRegexMap:
  2396        properties:
  2397          match_rx:
  2398            type: string
  2399            x-go-name: MatchPattern
  2400          reverse:
  2401            type: boolean
  2402            x-go-name: Reverse
  2403        type: object
  2404        x-go-package: github.com/TykTechnologies/tyk/apidef
  2405      TemplateData:
  2406        properties:
  2407          enable_session:
  2408            type: boolean
  2409            x-go-name: EnableSession
  2410          input_type:
  2411            $ref: '#/components/schemas/RequestInputType'
  2412          template_mode:
  2413            $ref: '#/components/schemas/TemplateMode'
  2414          template_source:
  2415            type: string
  2416            x-go-name: TemplateSource
  2417        type: object
  2418        x-go-package: github.com/TykTechnologies/tyk/apidef
  2419      TemplateMeta:
  2420        properties:
  2421          method:
  2422            type: string
  2423            x-go-name: Method
  2424          path:
  2425            type: string
  2426            x-go-name: Path
  2427          template_data:
  2428            $ref: '#/components/schemas/TemplateData'
  2429        type: object
  2430        x-go-package: github.com/TykTechnologies/tyk/apidef
  2431      TemplateMode:
  2432        type: string
  2433        x-go-package: github.com/TykTechnologies/tyk/apidef
  2434      TrackEndpointMeta:
  2435        properties:
  2436          method:
  2437            type: string
  2438            x-go-name: Method
  2439          path:
  2440            type: string
  2441            x-go-name: Path
  2442        type: object
  2443        x-go-package: github.com/TykTechnologies/tyk/apidef
  2444      TransformJQMeta:
  2445        properties:
  2446          filter:
  2447            type: string
  2448            x-go-name: Filter
  2449          method:
  2450            type: string
  2451            x-go-name: Method
  2452          path:
  2453            type: string
  2454            x-go-name: Path
  2455        type: object
  2456        x-go-package: github.com/TykTechnologies/tyk/apidef
  2457      URLRewriteMeta:
  2458        properties:
  2459          MatchRegexp:
  2460            $ref: '#/components/schemas/Regexp'
  2461          match_pattern:
  2462            type: string
  2463            x-go-name: MatchPattern
  2464          method:
  2465            type: string
  2466            x-go-name: Method
  2467          path:
  2468            type: string
  2469            x-go-name: Path
  2470          rewrite_to:
  2471            type: string
  2472            x-go-name: RewriteTo
  2473          triggers:
  2474            items:
  2475              $ref: '#/components/schemas/RoutingTrigger'
  2476            type: array
  2477            x-go-name: Triggers
  2478        type: object
  2479        x-go-package: github.com/TykTechnologies/tyk/apidef
  2480      ValidatePathMeta:
  2481        properties:
  2482          error_response_code:
  2483            description: >-
  2484              Allows override of default 422 Unprocessible Entity response code
  2485              for validation errors.
  2486            format: int64
  2487            type: integer
  2488            x-go-name: ErrorResponseCode
  2489          method:
  2490            type: string
  2491            x-go-name: Method
  2492          path:
  2493            type: string
  2494            x-go-name: Path
  2495          schema:
  2496            additionalProperties:
  2497              type: object
  2498            type: object
  2499            x-go-name: Schema
  2500          schema_b64:
  2501            type: string
  2502            x-go-name: SchemaB64
  2503        type: object
  2504        x-go-package: github.com/TykTechnologies/tyk/apidef
  2505      VersionInfo:
  2506        properties:
  2507          paths:
  2508            properties:
  2509              black_list:
  2510                items:
  2511                  type: string
  2512                type: array
  2513                x-go-name: BlackList
  2514              ignored:
  2515                items:
  2516                  type: string
  2517                type: array
  2518                x-go-name: Ignored
  2519              white_list:
  2520                items:
  2521                  type: string
  2522                type: array
  2523                x-go-name: WhiteList
  2524            type: object
  2525            x-go-name: Paths
  2526          expires:
  2527            type: string
  2528            x-go-name: Expires
  2529          extended_paths:
  2530            $ref: '#/components/schemas/ExtendedPathsSet'
  2531          global_headers:
  2532            additionalProperties:
  2533              type: string
  2534            type: object
  2535            x-go-name: GlobalHeaders
  2536          global_headers_remove:
  2537            items:
  2538              type: string
  2539            type: array
  2540            x-go-name: GlobalHeadersRemove
  2541          global_size_limit:
  2542            format: int64
  2543            type: integer
  2544            x-go-name: GlobalSizeLimit
  2545          name:
  2546            type: string
  2547            x-go-name: Name
  2548          override_target:
  2549            type: string
  2550            x-go-name: OverrideTarget
  2551          use_extended_paths:
  2552            type: boolean
  2553            x-go-name: UseExtendedPaths
  2554        type: object
  2555        x-go-package: github.com/TykTechnologies/tyk/apidef
  2556      VirtualMeta:
  2557        properties:
  2558          function_source_type:
  2559            type: string
  2560            x-go-name: FunctionSourceType
  2561          function_source_uri:
  2562            type: string
  2563            x-go-name: FunctionSourceURI
  2564          method:
  2565            type: string
  2566            x-go-name: Method
  2567          path:
  2568            type: string
  2569            x-go-name: Path
  2570          proxy_on_error:
  2571            type: boolean
  2572            x-go-name: ProxyOnError
  2573          response_function_name:
  2574            type: string
  2575            x-go-name: ResponseFunctionName
  2576          use_session:
  2577            type: boolean
  2578            x-go-name: UseSession
  2579        type: object
  2580        x-go-package: github.com/TykTechnologies/tyk/apidef
  2581      apiAllKeys:
  2582        description: apiAllKeys represents a list of keys in the memory store
  2583        properties:
  2584          keys:
  2585            items:
  2586              type: string
  2587            type: array
  2588            x-go-name: APIKeys
  2589        type: object
  2590        x-go-package: github.com/TykTechnologies/tyk
  2591      apiModifyKeySuccess:
  2592        description: apiModifyKeySuccess represents when a Key modification was successful
  2593        properties:
  2594          action:
  2595            type: string
  2596            x-go-name: Action
  2597          key:
  2598            description: 'in:body'
  2599            type: string
  2600            x-go-name: Key
  2601          key_hash:
  2602            type: string
  2603            x-go-name: KeyHash
  2604          status:
  2605            type: string
  2606            x-go-name: Status
  2607        type: object
  2608        x-go-package: github.com/TykTechnologies/tyk
  2609      apiStatusMessage:
  2610        description: apiStatusMessage represents an API status message
  2611        properties:
  2612          message:
  2613            description: Response details
  2614            type: string
  2615            x-go-name: Message
  2616          status:
  2617            type: string
  2618            x-go-name: Status
  2619        type: object
  2620        x-go-package: github.com/TykTechnologies/tyk
  2621    securitySchemes:
  2622      api_key:
  2623        in: header
  2624        name: X-Tyk-Authorization
  2625        type: apiKey
  2626  security:
  2627    - api_key: []