github.com/anuvu/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: []