openapi: 3.1.0
info:
contact:
email: support@konghq.com
name: Kong Inc
url: 'https://konghq.com'
description: |-
OpenAPI 3.0 spec for Kong Gateway's Admin API.
You can lean more about Kong Gateway at [developer.konghq.com](https://developer.konghq.com)
.Give Kong a star at [Kong/kong](https://github.com/kong/kong) repository.
license:
name: Apache 2.0
url: 'https://www.apache.org/licenses/LICENSE-2.0.html'
title: Kong Gateway Admin API
version: 0.0.1
servers:
- description: Default Admin API URL
url: '{protocol}://{hostname}:{port}{path}'
variables:
hostname:
default: localhost
description: Hostname for Kong's Admin API
path:
default: /
description: Base path for Kong's Admin API
port:
default: '8001'
description: Port for Kong's Admin API
protocol:
default: http
description: Protocol for requests to Kong's Admin API
enum:
- http
- https
paths:
'/acls/{ACLId}':
parameters:
- $ref: '#/components/parameters/ACLId'
'/admins/{name_or_id}/workspaces/{workspace_name_or_id}':
parameters:
- name: name_or_id
in: path
description: The admin’s username or ID
required: true
schema:
type: string
- name: workspace_name_or_id
in: path
description: The name or ID of the admin's new workspace.
required: true
schema:
type: string
'/basic-auths/{BasicAuthId}':
parameters:
- $ref: '#/components/parameters/BasicAuthId'
/ca_certificates:
post:
x-speakeasy-entity-operation: CACertificate#create
operationId: create-ca_certificate
summary: Create a new CA Certificate
description: Create a new CA Certificate
requestBody:
description: Description of the new CA Certificate for creation
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CACertificate'
responses:
'201':
description: Successfully created CA Certificate
content:
application/json:
schema:
$ref: '#/components/schemas/CACertificate'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- CA Certificates
'/ca_certificates/{CACertificateId}':
delete:
x-speakeasy-entity-operation: CACertificate#delete
operationId: delete-ca_certificate
summary: Delete a CA Certificate
description: Delete a CA Certificate
parameters:
- $ref: '#/components/parameters/CACertificateId'
responses:
'204':
description: Successfully deleted CA Certificate or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- CA Certificates
get:
x-speakeasy-entity-operation: CACertificate#read
operationId: get-ca_certificate
summary: Fetch a CA Certificate
description: Get a CA Certificate using ID.
responses:
'200':
description: Successfully fetched CA Certificate
content:
application/json:
schema:
$ref: '#/components/schemas/CACertificate'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- CA Certificates
parameters:
- $ref: '#/components/parameters/CACertificateId'
put:
x-speakeasy-entity-operation: CACertificate#update
operationId: upsert-ca_certificate
summary: Upsert a CA Certificate
description: Create or Update CA Certificate using ID.
requestBody:
description: Description of the CA Certificate
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CACertificate'
responses:
'200':
description: Successfully upserted CA Certificate
content:
application/json:
schema:
$ref: '#/components/schemas/CACertificate'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- CA Certificates
/certificates:
post:
x-speakeasy-entity-operation: Certificate#create
operationId: create-certificate
summary: Create a new Certificate
description: Create a new Certificate
requestBody:
description: Description of the new Certificate for creation
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Certificate'
responses:
'201':
description: Successfully created Certificate
content:
application/json:
schema:
$ref: '#/components/schemas/Certificate'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Certificates
'/certificates/{CertificateId}':
delete:
x-speakeasy-entity-operation: Certificate#delete
operationId: delete-certificate
summary: Delete a Certificate
description: Delete a Certificate
parameters:
- $ref: '#/components/parameters/CertificateId'
responses:
'204':
description: Successfully deleted Certificate or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Certificates
get:
x-speakeasy-entity-operation: Certificate#read
operationId: get-certificate
summary: Fetch a Certificate
description: Get a Certificate using ID.
responses:
'200':
description: Successfully fetched Certificate
content:
application/json:
schema:
$ref: '#/components/schemas/Certificate'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Certificates
parameters:
- $ref: '#/components/parameters/CertificateId'
put:
x-speakeasy-entity-operation: Certificate#update
operationId: upsert-certificate
summary: Upsert a Certificate
description: Create or Update Certificate using ID.
requestBody:
description: Description of the Certificate
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Certificate'
responses:
'200':
description: Successfully upserted Certificate
content:
application/json:
schema:
$ref: '#/components/schemas/Certificate'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Certificates
/consumer_groups:
post:
x-speakeasy-entity-operation: ConsumerGroup#create
operationId: create-consumer_group
summary: Create a new Consumer Group
description: Create a new Consumer Group
requestBody:
description: Description of the new Consumer Group for creation
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ConsumerGroup'
responses:
'201':
description: Successfully created Consumer Group
content:
application/json:
schema:
$ref: '#/components/schemas/ConsumerGroup'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Consumer Groups
'/consumer_groups/{ConsumerGroupId}':
delete:
x-speakeasy-entity-operation: ConsumerGroup#delete
operationId: delete-consumer_group
summary: Delete a Consumer Group
description: Delete a Consumer Group
parameters:
- $ref: '#/components/parameters/ConsumerGroupId'
responses:
'204':
description: Successfully deleted Consumer Group or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Consumer Groups
get:
x-speakeasy-entity-operation: ConsumerGroup#read
operationId: get-consumer_group
summary: Fetch a Consumer Group
description: Get a Consumer Group using ID.
responses:
'200':
description: Successfully fetched Consumer Group
content:
application/json:
schema:
$ref: '#/components/schemas/ConsumerGroupInsideWrapper'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Consumer Groups
parameters:
- $ref: '#/components/parameters/ConsumerGroupId'
put:
x-speakeasy-entity-operation: ConsumerGroup#update
operationId: upsert-consumer_group
summary: Upsert a Consumer Group
description: Create or Update Consumer Group using ID.
requestBody:
description: Description of the Consumer Group
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ConsumerGroup'
responses:
'200':
description: Successfully upserted Consumer Group
content:
application/json:
schema:
$ref: '#/components/schemas/ConsumerGroup'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Consumer Groups
'/consumer_groups/{ConsumerGroupId}/consumers':
parameters:
- $ref: '#/components/parameters/ConsumerGroupIdManageConsumers'
post:
x-speakeasy-entity-operation: GatewayConsumerGroupMember#create
operationId: add-consumer-to-group
summary: Add consumer to consumer group
description: Add a consumer to a consumer group
requestBody:
content:
application/json:
schema:
type: object
properties:
consumer:
type: string
example: cf4c7e60-11db-49dd-b300-7c7e5f0f7e6b
x-speakeasy-name-override: consumer_id
responses:
'201':
description: Consumer added to group
content:
application/json:
schema:
type: object
properties:
consumer_group:
$ref: '#/components/schemas/ConsumerGroup'
consumers:
type: array
items:
$ref: '#/components/schemas/Consumer'
tags:
- Consumer Groups
'/consumer_groups/{ConsumerGroupId}/consumers/{ConsumerIdOrUsername}':
delete:
x-speakeasy-entity-operation: GatewayConsumerGroupMember#delete
operationId: remove-consumer-from-group
summary: Remove consumer from consumer group
description: Remove a consumer from a consumer group
responses:
'204':
description: Consumer removed from group
tags:
- Consumer Groups
parameters:
- $ref: '#/components/parameters/ConsumerGroupIdManageConsumers'
- name: ConsumerIdOrUsername
in: path
required: true
schema:
type: string
/consumers:
post:
x-speakeasy-entity-operation: Consumer#create
operationId: create-consumer
summary: Create a new Consumer
description: Create a new Consumer
requestBody:
description: Description of the new Consumer for creation
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Consumer'
responses:
'201':
description: Successfully created Consumer
content:
application/json:
schema:
$ref: '#/components/schemas/Consumer'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Consumers
'/consumers/{ConsumerIdForNestedEntities}/acls':
post:
x-speakeasy-entity-operation: ACL#create
operationId: create-acl-with-consumer
summary: Create a new ACL associated with a Consumer
description: Create a new ACL associated with a Consumer
parameters:
- $ref: '#/components/parameters/ConsumerIdForNestedEntities'
requestBody:
description: Description of new ACL for creation
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ACLWithoutParents'
responses:
'201':
description: Successfully created ACL
content:
application/json:
schema:
$ref: '#/components/schemas/ACL'
tags:
- ACLs
'/consumers/{ConsumerIdForNestedEntities}/acls/{ACLId}':
delete:
x-speakeasy-entity-operation: ACL#delete
operationId: delete-acl-with-consumer
summary: Delete a an ACL associated with a Consumer
description: Delete a an ACL associated with a Consumer using ID.
parameters:
- $ref: '#/components/parameters/ConsumerIdForNestedEntities'
- $ref: '#/components/parameters/ACLId'
responses:
'204':
description: Successfully deleted ACL or the resource didn't exist
tags:
- ACLs
get:
x-speakeasy-entity-operation: ACL#read
operationId: get-acl-with-consumer
summary: Fetch an ACL associated with a Consumer
description: Get an ACL associated with a Consumer using ID.
parameters:
- $ref: '#/components/parameters/ConsumerIdForNestedEntities'
- $ref: '#/components/parameters/ACLId'
responses:
'200':
description: Successfully fetched ACL
content:
application/json:
schema:
$ref: '#/components/schemas/ACL'
'404':
description: Resource does not exist
tags:
- ACLs
patch:
x-speakeasy-entity-operation: ACL#update
operationId: update-acl-with-consumer
summary: Update a an ACL associated with a Consumer
description: Update a an ACL associated with a Consumer using ID.
parameters:
- $ref: '#/components/parameters/ConsumerIdForNestedEntities'
- $ref: '#/components/parameters/ACLId'
requestBody:
description: Fields of the ACL that need to be updated
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ACL'
responses:
'200':
description: Successfully updated ACL
content:
application/json:
schema:
$ref: '#/components/schemas/ACL'
'404':
description: Resource does not exist
tags:
- ACLs
'/consumers/{ConsumerIdForNestedEntities}/basic-auth':
post:
x-speakeasy-entity-operation: BasicAuth#create
operationId: create-basic-auth-with-consumer
summary: Create a new Basic-auth credential associated with a Consumer
description: Create a new Basic-auth credential associated with a Consumer
parameters:
- $ref: '#/components/parameters/ConsumerIdForNestedEntities'
requestBody:
description: Description of new Basic-auth credential for creation
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BasicAuthWithoutParents'
responses:
'201':
description: Successfully created Basic-auth credential
content:
application/json:
schema:
$ref: '#/components/schemas/BasicAuth'
tags:
- Basic-auth credentials
'/consumers/{ConsumerIdForNestedEntities}/basic-auth/{BasicAuthId}':
delete:
x-speakeasy-entity-operation: BasicAuth#delete
operationId: delete-basic-auth-with-consumer
summary: Delete a a Basic-auth credential associated with a Consumer
description: Delete a a Basic-auth credential associated with a Consumer using ID.
parameters:
- $ref: '#/components/parameters/ConsumerIdForNestedEntities'
- $ref: '#/components/parameters/BasicAuthId'
responses:
'204':
description: Successfully deleted Basic-auth credential or the resource didn't exist
tags:
- Basic-auth credentials
get:
x-speakeasy-entity-operation: BasicAuth#read
operationId: get-basic-auth-with-consumer
summary: Fetch a Basic-auth credential associated with a Consumer
description: Get a Basic-auth credential associated with a Consumer using ID.
parameters:
- $ref: '#/components/parameters/ConsumerIdForNestedEntities'
- $ref: '#/components/parameters/BasicAuthId'
responses:
'200':
description: Successfully fetched Basic-auth credential
content:
application/json:
schema:
$ref: '#/components/schemas/BasicAuth'
'404':
description: Resource does not exist
tags:
- Basic-auth credentials
patch:
x-speakeasy-entity-operation: BasicAuth#update
operationId: update-basic-auth-with-consumer
summary: Update a a Basic-auth credential associated with a Consumer
description: Update a a Basic-auth credential associated with a Consumer using ID.
parameters:
- $ref: '#/components/parameters/ConsumerIdForNestedEntities'
- $ref: '#/components/parameters/BasicAuthId'
requestBody:
description: Fields of the Basic-auth credential that need to be updated
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BasicAuth'
responses:
'200':
description: Successfully updated Basic-auth credential
content:
application/json:
schema:
$ref: '#/components/schemas/BasicAuth'
'404':
description: Resource does not exist
tags:
- Basic-auth credentials
'/consumers/{ConsumerIdForNestedEntities}/hmac-auth':
post:
x-speakeasy-entity-operation: HMACAuth#create
operationId: create-hmac-auth-with-consumer
summary: Create a new HMAC-auth credential associated with a Consumer
description: Create a new HMAC-auth credential associated with a Consumer
parameters:
- $ref: '#/components/parameters/ConsumerIdForNestedEntities'
requestBody:
description: Description of new HMAC-auth credential for creation
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HMACAuthWithoutParents'
responses:
'201':
description: Successfully created HMAC-auth credential
content:
application/json:
schema:
$ref: '#/components/schemas/HMACAuth'
tags:
- HMAC-auth credentials
'/consumers/{ConsumerIdForNestedEntities}/hmac-auth/{HMACAuthId}':
delete:
x-speakeasy-entity-operation: HMACAuth#delete
operationId: delete-hmac-auth-with-consumer
summary: Delete a a HMAC-auth credential associated with a Consumer
description: Delete a a HMAC-auth credential associated with a Consumer using ID.
parameters:
- $ref: '#/components/parameters/ConsumerIdForNestedEntities'
- $ref: '#/components/parameters/HMACAuthId'
responses:
'204':
description: Successfully deleted HMAC-auth credential or the resource didn't exist
tags:
- HMAC-auth credentials
get:
x-speakeasy-entity-operation: HMACAuth#read
operationId: get-hmac-auth-with-consumer
summary: Fetch a HMAC-auth credential associated with a Consumer
description: Get a HMAC-auth credential associated with a Consumer using ID.
parameters:
- $ref: '#/components/parameters/ConsumerIdForNestedEntities'
- $ref: '#/components/parameters/HMACAuthId'
responses:
'200':
description: Successfully fetched HMAC-auth credential
content:
application/json:
schema:
$ref: '#/components/schemas/HMACAuth'
'404':
description: Resource does not exist
tags:
- HMAC-auth credentials
patch:
x-speakeasy-entity-operation: HMACAuth#update
operationId: update-hmac-auth-with-consumer
summary: Update a a HMAC-auth credential associated with a Consumer
description: Update a a HMAC-auth credential associated with a Consumer using ID.
parameters:
- $ref: '#/components/parameters/ConsumerIdForNestedEntities'
- $ref: '#/components/parameters/HMACAuthId'
requestBody:
description: Fields of the HMAC-auth credential that need to be updated
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HMACAuth'
responses:
'200':
description: Successfully updated HMAC-auth credential
content:
application/json:
schema:
$ref: '#/components/schemas/HMACAuth'
'404':
description: Resource does not exist
tags:
- HMAC-auth credentials
'/consumers/{ConsumerIdForNestedEntities}/jwt':
post:
x-speakeasy-entity-operation: JWT#create
operationId: create-jwt-with-consumer
summary: Create a new JWT associated with a Consumer
description: Create a new JWT associated with a Consumer
parameters:
- $ref: '#/components/parameters/ConsumerIdForNestedEntities'
requestBody:
description: Description of new JWT for creation
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JWTWithoutParents'
responses:
'201':
description: Successfully created JWT
content:
application/json:
schema:
$ref: '#/components/schemas/JWT'
tags:
- JWTs
'/consumers/{ConsumerIdForNestedEntities}/jwt/{JWTId}':
delete:
x-speakeasy-entity-operation: JWT#delete
operationId: delete-jwt-with-consumer
summary: Delete a a JWT associated with a Consumer
description: Delete a a JWT associated with a Consumer using ID.
parameters:
- $ref: '#/components/parameters/ConsumerIdForNestedEntities'
- $ref: '#/components/parameters/JWTId'
responses:
'204':
description: Successfully deleted JWT or the resource didn't exist
tags:
- JWTs
get:
x-speakeasy-entity-operation: JWT#read
operationId: get-jwt-with-consumer
summary: Fetch a JWT associated with a Consumer
description: Get a JWT associated with a Consumer using ID.
parameters:
- $ref: '#/components/parameters/ConsumerIdForNestedEntities'
- $ref: '#/components/parameters/JWTId'
responses:
'200':
description: Successfully fetched JWT
content:
application/json:
schema:
$ref: '#/components/schemas/JWT'
'404':
description: Resource does not exist
tags:
- JWTs
patch:
x-speakeasy-entity-operation: JWT#update
operationId: update-jwt-with-consumer
summary: Update a a JWT associated with a Consumer
description: Update a a JWT associated with a Consumer using ID.
parameters:
- $ref: '#/components/parameters/ConsumerIdForNestedEntities'
- $ref: '#/components/parameters/JWTId'
requestBody:
description: Fields of the JWT that need to be updated
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JWT'
responses:
'200':
description: Successfully updated JWT
content:
application/json:
schema:
$ref: '#/components/schemas/JWT'
'404':
description: Resource does not exist
tags:
- JWTs
'/consumers/{ConsumerIdForNestedEntities}/key-auth':
post:
x-speakeasy-entity-operation: KeyAuth#create
operationId: create-key-auth-with-consumer
summary: Create a new API-key associated with a Consumer
description: Create a new API-key associated with a Consumer
parameters:
- $ref: '#/components/parameters/ConsumerIdForNestedEntities'
requestBody:
description: Description of new API-key for creation
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/KeyAuthWithoutParents'
responses:
'201':
description: Successfully created API-key
content:
application/json:
schema:
$ref: '#/components/schemas/KeyAuth'
tags:
- API-keys
'/consumers/{ConsumerIdForNestedEntities}/key-auth/{KeyAuthId}':
delete:
x-speakeasy-entity-operation: KeyAuth#delete
operationId: delete-key-auth-with-consumer
summary: Delete a an API-key associated with a Consumer
description: Delete a an API-key associated with a Consumer using ID.
parameters:
- $ref: '#/components/parameters/ConsumerIdForNestedEntities'
- $ref: '#/components/parameters/KeyAuthId'
responses:
'204':
description: Successfully deleted API-key or the resource didn't exist
tags:
- API-keys
get:
x-speakeasy-entity-operation: KeyAuth#read
operationId: get-key-auth-with-consumer
summary: Fetch an API-key associated with a Consumer
description: Get an API-key associated with a Consumer using ID.
parameters:
- $ref: '#/components/parameters/ConsumerIdForNestedEntities'
- $ref: '#/components/parameters/KeyAuthId'
responses:
'200':
description: Successfully fetched API-key
content:
application/json:
schema:
$ref: '#/components/schemas/KeyAuth'
'404':
description: Resource does not exist
tags:
- API-keys
patch:
x-speakeasy-entity-operation: KeyAuth#update
operationId: update-key-auth-with-consumer
summary: Update a an API-key associated with a Consumer
description: Update a an API-key associated with a Consumer using ID.
parameters:
- $ref: '#/components/parameters/ConsumerIdForNestedEntities'
- $ref: '#/components/parameters/KeyAuthId'
requestBody:
description: Fields of the API-key that need to be updated
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/KeyAuth'
responses:
'200':
description: Successfully updated API-key
content:
application/json:
schema:
$ref: '#/components/schemas/KeyAuth'
'404':
description: Resource does not exist
tags:
- API-keys
'/consumers/{ConsumerIdForNestedEntities}/mtls-auth':
post:
x-speakeasy-entity-operation: MTLSAuth#create
operationId: create-mtls-auth-with-consumer
summary: Create a new MTLS-auth credential associated with a Consumer
description: Create a new MTLS-auth credential associated with a Consumer
parameters:
- $ref: '#/components/parameters/ConsumerIdForNestedEntities'
requestBody:
description: Description of new MTLS-auth credential for creation
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MTLSAuthWithoutParents'
responses:
'201':
description: Successfully created MTLS-auth credential
content:
application/json:
schema:
$ref: '#/components/schemas/MTLSAuth'
tags:
- MTLS-auth credentials
'/consumers/{ConsumerIdForNestedEntities}/mtls-auth/{MTLSAuthId}':
delete:
x-speakeasy-entity-operation: MTLSAuth#delete
operationId: delete-mtls-auth-with-consumer
summary: Delete a a MTLS-auth credential associated with a Consumer
description: Delete a a MTLS-auth credential associated with a Consumer using ID.
parameters:
- $ref: '#/components/parameters/ConsumerIdForNestedEntities'
- $ref: '#/components/parameters/MTLSAuthId'
responses:
'204':
description: Successfully deleted MTLS-auth credential or the resource didn't exist
tags:
- MTLS-auth credentials
get:
x-speakeasy-entity-operation: MTLSAuth#read
operationId: get-mtls-auth-with-consumer
summary: Fetch a MTLS-auth credential associated with a Consumer
description: Get a MTLS-auth credential associated with a Consumer using ID.
parameters:
- $ref: '#/components/parameters/ConsumerIdForNestedEntities'
- $ref: '#/components/parameters/MTLSAuthId'
responses:
'200':
description: Successfully fetched MTLS-auth credential
content:
application/json:
schema:
$ref: '#/components/schemas/MTLSAuth'
'404':
description: Resource does not exist
tags:
- MTLS-auth credentials
patch:
x-speakeasy-entity-operation: MTLSAuth#update
operationId: update-mtls-auth-with-consumer
summary: Update a a MTLS-auth credential associated with a Consumer
description: Update a a MTLS-auth credential associated with a Consumer using ID.
parameters:
- $ref: '#/components/parameters/ConsumerIdForNestedEntities'
- $ref: '#/components/parameters/MTLSAuthId'
requestBody:
description: Fields of the MTLS-auth credential that need to be updated
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MTLSAuth'
responses:
'200':
description: Successfully updated MTLS-auth credential
content:
application/json:
schema:
$ref: '#/components/schemas/MTLSAuth'
'404':
description: Resource does not exist
tags:
- MTLS-auth credentials
'/consumers/{ConsumerIdOrUsername}':
delete:
x-speakeasy-entity-operation: Consumer#delete
operationId: delete-consumer
summary: Delete a Consumer
description: Delete a Consumer
parameters:
- $ref: '#/components/parameters/ConsumerIdOrUsername'
responses:
'204':
description: Successfully deleted Consumer or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Consumers
get:
x-speakeasy-entity-operation: Consumer#read
operationId: get-consumer
summary: Fetch a Consumer
description: Get a Consumer using ID or username.
responses:
'200':
description: Successfully fetched Consumer
content:
application/json:
schema:
$ref: '#/components/schemas/Consumer'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Consumers
parameters:
- $ref: '#/components/parameters/ConsumerIdOrUsername'
put:
x-speakeasy-entity-operation: Consumer#update
operationId: upsert-consumer
summary: Upsert a Consumer
description: Create or Update Consumer using ID or username.
requestBody:
description: Description of the Consumer
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Consumer'
responses:
'200':
description: Successfully upserted Consumer
content:
application/json:
schema:
$ref: '#/components/schemas/Consumer'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Consumers
'/custom-plugins/{CustomPluginIdOrName}':
parameters:
- $ref: '#/components/parameters/CustomPluginIdOrName'
'/hmac-auths/{HMACAuthId}':
parameters:
- $ref: '#/components/parameters/HMACAuthId'
'/jwts/{JWTId}':
parameters:
- $ref: '#/components/parameters/JWTId'
'/key-auths/{KeyAuthId}':
parameters:
- $ref: '#/components/parameters/KeyAuthId'
/key-sets:
post:
x-speakeasy-entity-operation: KeySet#create
operationId: create-key-set
summary: Create a new KeySet
description: Create a new KeySet
requestBody:
description: Description of the new KeySet for creation
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/KeySet'
responses:
'201':
description: Successfully created KeySet
content:
application/json:
schema:
$ref: '#/components/schemas/KeySet'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- KeySets
'/key-sets/{KeySetIdOrName}':
delete:
x-speakeasy-entity-operation: KeySet#delete
operationId: delete-key-set
summary: Delete a KeySet
description: Delete a KeySet
parameters:
- $ref: '#/components/parameters/KeySetIdOrName'
responses:
'204':
description: Successfully deleted KeySet or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- KeySets
get:
x-speakeasy-entity-operation: KeySet#read
operationId: get-key-set
summary: Fetch a KeySet
description: Get a KeySet using ID or name.
responses:
'200':
description: Successfully fetched KeySet
content:
application/json:
schema:
$ref: '#/components/schemas/KeySet'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- KeySets
parameters:
- $ref: '#/components/parameters/KeySetIdOrName'
put:
x-speakeasy-entity-operation: KeySet#update
operationId: upsert-key-set
summary: Upsert a KeySet
description: Create or Update KeySet using ID or name.
requestBody:
description: Description of the KeySet
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/KeySet'
responses:
'200':
description: Successfully upserted KeySet
content:
application/json:
schema:
$ref: '#/components/schemas/KeySet'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- KeySets
/keys:
post:
x-speakeasy-entity-operation: Key#create
operationId: create-key
summary: Create a new Key
description: Create a new Key
requestBody:
description: Description of the new Key for creation
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Key'
responses:
'201':
description: Successfully created Key
content:
application/json:
schema:
$ref: '#/components/schemas/Key'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Keys
'/keys/{KeyIdOrName}':
delete:
x-speakeasy-entity-operation: Key#delete
operationId: delete-key
summary: Delete a Key
description: Delete a Key
parameters:
- $ref: '#/components/parameters/KeyIdOrName'
responses:
'204':
description: Successfully deleted Key or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Keys
get:
x-speakeasy-entity-operation: Key#read
operationId: get-key
summary: Fetch a Key
description: Get a Key using ID or name.
responses:
'200':
description: Successfully fetched Key
content:
application/json:
schema:
$ref: '#/components/schemas/Key'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Keys
parameters:
- $ref: '#/components/parameters/KeyIdOrName'
put:
x-speakeasy-entity-operation: Key#update
operationId: upsert-key
summary: Upsert a Key
description: Create or Update Key using ID or name.
requestBody:
description: Description of the Key
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Key'
responses:
'200':
description: Successfully upserted Key
content:
application/json:
schema:
$ref: '#/components/schemas/Key'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Keys
'/mtls-auths/{MTLSAuthId}':
parameters:
- $ref: '#/components/parameters/MTLSAuthId'
/oic_jwks:
post:
x-speakeasy-entity-operation: OidcJwk#create
operationId: create-oic_jwk
summary: Create a new OIDC JWK
description: Create a new OIDC JWK
requestBody:
description: Description of the new OIDC JWK for creation
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OidcJwk'
responses:
'201':
description: Successfully created OIDC JWK
content:
application/json:
schema:
$ref: '#/components/schemas/OidcJwk'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- OIDC JWKs
'/oic_jwks/{OidcJwkId}':
delete:
x-speakeasy-entity-operation: OidcJwk#delete
operationId: delete-oic_jwk
summary: Delete an OIDC JWK
description: Delete an OIDC JWK
parameters:
- $ref: '#/components/parameters/OidcJwkId'
responses:
'204':
description: Successfully deleted OIDC JWK or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- OIDC JWKs
get:
x-speakeasy-entity-operation: OidcJwk#read
operationId: get-oic_jwk
summary: Fetch an OIDC JWK
description: Get an OIDC JWK using ID.
responses:
'200':
description: Successfully fetched OIDC JWK
content:
application/json:
schema:
$ref: '#/components/schemas/OidcJwk'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- OIDC JWKs
parameters:
- $ref: '#/components/parameters/OidcJwkId'
put:
x-speakeasy-entity-operation: OidcJwk#update
operationId: upsert-oic_jwk
summary: Upsert a OIDC JWK
description: Create or Update OIDC JWK using ID.
requestBody:
description: Description of the OIDC JWK
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OidcJwk'
responses:
'200':
description: Successfully upserted OIDC JWK
content:
application/json:
schema:
$ref: '#/components/schemas/OidcJwk'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- OIDC JWKs
/partials:
post:
x-unstable: true
x-internal: true
x-speakeasy-entity-operation: Partial#create
operationId: create-partial
summary: Create a new Partial
description: Create a new Partial
requestBody:
description: Description of the new Partial for creation
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Partial'
responses:
'201':
description: Successfully created Partial
content:
application/json:
schema:
$ref: '#/components/schemas/Partial'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Partials
'/partials/{PartialId}':
delete:
x-unstable: true
x-internal: true
x-speakeasy-entity-operation: Partial#delete
operationId: delete-partial
summary: Delete a Partial
description: Delete a Partial
parameters:
- $ref: '#/components/parameters/PartialId'
responses:
'204':
description: Successfully deleted Partial or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Partials
get:
x-unstable: true
x-internal: true
x-speakeasy-entity-operation: Partial#read
operationId: get-partial
summary: Fetch a Partial
description: Get a Partial using ID.
responses:
'200':
description: Successfully fetched Partial
content:
application/json:
schema:
$ref: '#/components/schemas/Partial'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Partials
parameters:
- $ref: '#/components/parameters/PartialId'
put:
x-unstable: true
x-internal: true
x-speakeasy-entity-operation: Partial#update
operationId: upsert-partial
summary: Upsert a Partial
description: Create or Update Partial using ID.
requestBody:
description: Description of the Partial
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Partial'
responses:
'200':
description: Successfully upserted Partial
content:
application/json:
schema:
$ref: '#/components/schemas/Partial'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Partials
/plugins#ACL:
post:
x-speakeasy-entity-operation: PluginACL#create
operationId: create-acl-plugin
summary: Create a ACL plugin
description: Create a ACL plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ACLPlugin'
responses:
'201':
description: Created ACL plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ACLPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#Acme:
post:
x-speakeasy-entity-operation: PluginAcme#create
operationId: create-acme-plugin
summary: Create a Acme plugin
description: Create a Acme plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AcmePlugin'
responses:
'201':
description: Created Acme plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AcmePlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#AiAzureContentSafety:
post:
x-speakeasy-entity-operation: PluginAiAzureContentSafety#create
operationId: create-aiazurecontentsafety-plugin
summary: Create a AiAzureContentSafety plugin
description: Create a AiAzureContentSafety plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AiAzureContentSafetyPlugin'
responses:
'201':
description: Created AiAzureContentSafety plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiAzureContentSafetyPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#AiPromptDecorator:
post:
x-speakeasy-entity-operation: PluginAiPromptDecorator#create
operationId: create-aipromptdecorator-plugin
summary: Create a AiPromptDecorator plugin
description: Create a AiPromptDecorator plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AiPromptDecoratorPlugin'
responses:
'201':
description: Created AiPromptDecorator plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiPromptDecoratorPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#AiPromptGuard:
post:
x-speakeasy-entity-operation: PluginAiPromptGuard#create
operationId: create-aipromptguard-plugin
summary: Create a AiPromptGuard plugin
description: Create a AiPromptGuard plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AiPromptGuardPlugin'
responses:
'201':
description: Created AiPromptGuard plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiPromptGuardPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#AiPromptTemplate:
post:
x-speakeasy-entity-operation: PluginAiPromptTemplate#create
operationId: create-aiprompttemplate-plugin
summary: Create a AiPromptTemplate plugin
description: Create a AiPromptTemplate plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AiPromptTemplatePlugin'
responses:
'201':
description: Created AiPromptTemplate plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiPromptTemplatePlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#AiProxy:
post:
x-speakeasy-entity-operation: PluginAiProxy#create
operationId: create-aiproxy-plugin
summary: Create a AiProxy plugin
description: Create a AiProxy plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AiProxyPlugin'
responses:
'201':
description: Created AiProxy plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiProxyPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#AiProxyAdvanced:
post:
x-speakeasy-entity-operation: PluginAiProxyAdvanced#create
operationId: create-aiproxyadvanced-plugin
summary: Create a AiProxyAdvanced plugin
description: Create a AiProxyAdvanced plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AiProxyAdvancedPlugin'
responses:
'201':
description: Created AiProxyAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiProxyAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#AiRateLimitingAdvanced:
post:
x-speakeasy-entity-operation: PluginAiRateLimitingAdvanced#create
operationId: create-airatelimitingadvanced-plugin
summary: Create a AiRateLimitingAdvanced plugin
description: Create a AiRateLimitingAdvanced plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AiRateLimitingAdvancedPlugin'
responses:
'201':
description: Created AiRateLimitingAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiRateLimitingAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#AiRequestTransformer:
post:
x-speakeasy-entity-operation: PluginAiRequestTransformer#create
operationId: create-airequesttransformer-plugin
summary: Create a AiRequestTransformer plugin
description: Create a AiRequestTransformer plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AiRequestTransformerPlugin'
responses:
'201':
description: Created AiRequestTransformer plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiRequestTransformerPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#AiResponseTransformer:
post:
x-speakeasy-entity-operation: PluginAiResponseTransformer#create
operationId: create-airesponsetransformer-plugin
summary: Create a AiResponseTransformer plugin
description: Create a AiResponseTransformer plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AiResponseTransformerPlugin'
responses:
'201':
description: Created AiResponseTransformer plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiResponseTransformerPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#AiSemanticCache:
post:
x-speakeasy-entity-operation: PluginAiSemanticCache#create
operationId: create-aisemanticcache-plugin
summary: Create a AiSemanticCache plugin
description: Create a AiSemanticCache plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AiSemanticCachePlugin'
responses:
'201':
description: Created AiSemanticCache plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiSemanticCachePlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#AiSemanticPromptGuard:
post:
x-speakeasy-entity-operation: PluginAiSemanticPromptGuard#create
operationId: create-aisemanticpromptguard-plugin
summary: Create a AiSemanticPromptGuard plugin
description: Create a AiSemanticPromptGuard plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AiSemanticPromptGuardPlugin'
responses:
'201':
description: Created AiSemanticPromptGuard plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiSemanticPromptGuardPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#AwsLambda:
post:
x-speakeasy-entity-operation: PluginAwsLambda#create
operationId: create-awslambda-plugin
summary: Create a AwsLambda plugin
description: Create a AwsLambda plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AwsLambdaPlugin'
responses:
'201':
description: Created AwsLambda plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AwsLambdaPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#AzureFunctions:
post:
x-speakeasy-entity-operation: PluginAzureFunctions#create
operationId: create-azurefunctions-plugin
summary: Create a AzureFunctions plugin
description: Create a AzureFunctions plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AzureFunctionsPlugin'
responses:
'201':
description: Created AzureFunctions plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AzureFunctionsPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#BasicAuth:
post:
x-speakeasy-entity-operation: PluginBasicAuth#create
operationId: create-basicauth-plugin
summary: Create a BasicAuth plugin
description: Create a BasicAuth plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BasicAuthPlugin'
responses:
'201':
description: Created BasicAuth plugin
content:
application/json:
schema:
$ref: '#/components/schemas/BasicAuthPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#BotDetection:
post:
x-speakeasy-entity-operation: PluginBotDetection#create
operationId: create-botdetection-plugin
summary: Create a BotDetection plugin
description: Create a BotDetection plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BotDetectionPlugin'
responses:
'201':
description: Created BotDetection plugin
content:
application/json:
schema:
$ref: '#/components/schemas/BotDetectionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#Canary:
post:
x-speakeasy-entity-operation: PluginCanary#create
operationId: create-canary-plugin
summary: Create a Canary plugin
description: Create a Canary plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CanaryPlugin'
responses:
'201':
description: Created Canary plugin
content:
application/json:
schema:
$ref: '#/components/schemas/CanaryPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#Confluent:
post:
x-speakeasy-entity-operation: PluginConfluent#create
operationId: create-confluent-plugin
summary: Create a Confluent plugin
description: Create a Confluent plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ConfluentPlugin'
responses:
'201':
description: Created Confluent plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ConfluentPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#CorrelationId:
post:
x-speakeasy-entity-operation: PluginCorrelationId#create
operationId: create-correlationid-plugin
summary: Create a CorrelationId plugin
description: Create a CorrelationId plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CorrelationIdPlugin'
responses:
'201':
description: Created CorrelationId plugin
content:
application/json:
schema:
$ref: '#/components/schemas/CorrelationIdPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#Cors:
post:
x-speakeasy-entity-operation: PluginCors#create
operationId: create-cors-plugin
summary: Create a Cors plugin
description: Create a Cors plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CorsPlugin'
responses:
'201':
description: Created Cors plugin
content:
application/json:
schema:
$ref: '#/components/schemas/CorsPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#Datadog:
post:
x-speakeasy-entity-operation: PluginDatadog#create
operationId: create-datadog-plugin
summary: Create a Datadog plugin
description: Create a Datadog plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DatadogPlugin'
responses:
'201':
description: Created Datadog plugin
content:
application/json:
schema:
$ref: '#/components/schemas/DatadogPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#DatadogTracing:
post:
x-speakeasy-entity-operation: PluginDatadogTracing#create
operationId: create-datadogtracing-plugin
summary: Create a DatadogTracing plugin
description: Create a DatadogTracing plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DatadogTracingPlugin'
responses:
'201':
description: Created DatadogTracing plugin
content:
application/json:
schema:
$ref: '#/components/schemas/DatadogTracingPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#Degraphql:
post:
x-speakeasy-entity-operation: PluginDegraphql#create
operationId: create-degraphql-plugin
summary: Create a Degraphql plugin
description: Create a Degraphql plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DegraphqlPlugin'
responses:
'201':
description: Created Degraphql plugin
content:
application/json:
schema:
$ref: '#/components/schemas/DegraphqlPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#ExitTransformer:
post:
x-speakeasy-entity-operation: PluginExitTransformer#create
operationId: create-exittransformer-plugin
summary: Create a ExitTransformer plugin
description: Create a ExitTransformer plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ExitTransformerPlugin'
responses:
'201':
description: Created ExitTransformer plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ExitTransformerPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#FileLog:
post:
x-speakeasy-entity-operation: PluginFileLog#create
operationId: create-filelog-plugin
summary: Create a FileLog plugin
description: Create a FileLog plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/FileLogPlugin'
responses:
'201':
description: Created FileLog plugin
content:
application/json:
schema:
$ref: '#/components/schemas/FileLogPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#ForwardProxy:
post:
x-speakeasy-entity-operation: PluginForwardProxy#create
operationId: create-forwardproxy-plugin
summary: Create a ForwardProxy plugin
description: Create a ForwardProxy plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ForwardProxyPlugin'
responses:
'201':
description: Created ForwardProxy plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ForwardProxyPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#GraphqlProxyCacheAdvanced:
post:
x-speakeasy-entity-operation: PluginGraphqlProxyCacheAdvanced#create
operationId: create-graphqlproxycacheadvanced-plugin
summary: Create a GraphqlProxyCacheAdvanced plugin
description: Create a GraphqlProxyCacheAdvanced plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GraphqlProxyCacheAdvancedPlugin'
responses:
'201':
description: Created GraphqlProxyCacheAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/GraphqlProxyCacheAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#GraphqlRateLimitingAdvanced:
post:
x-speakeasy-entity-operation: PluginGraphqlRateLimitingAdvanced#create
operationId: create-graphqlratelimitingadvanced-plugin
summary: Create a GraphqlRateLimitingAdvanced plugin
description: Create a GraphqlRateLimitingAdvanced plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GraphqlRateLimitingAdvancedPlugin'
responses:
'201':
description: Created GraphqlRateLimitingAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/GraphqlRateLimitingAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#GrpcGateway:
post:
x-speakeasy-entity-operation: PluginGrpcGateway#create
operationId: create-grpcgateway-plugin
summary: Create a GrpcGateway plugin
description: Create a GrpcGateway plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GrpcGatewayPlugin'
responses:
'201':
description: Created GrpcGateway plugin
content:
application/json:
schema:
$ref: '#/components/schemas/GrpcGatewayPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#GrpcWeb:
post:
x-speakeasy-entity-operation: PluginGrpcWeb#create
operationId: create-grpcweb-plugin
summary: Create a GrpcWeb plugin
description: Create a GrpcWeb plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GrpcWebPlugin'
responses:
'201':
description: Created GrpcWeb plugin
content:
application/json:
schema:
$ref: '#/components/schemas/GrpcWebPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#HeaderCertAuth:
post:
x-speakeasy-entity-operation: PluginHeaderCertAuth#create
operationId: create-headercertauth-plugin
summary: Create a HeaderCertAuth plugin
description: Create a HeaderCertAuth plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HeaderCertAuthPlugin'
responses:
'201':
description: Created HeaderCertAuth plugin
content:
application/json:
schema:
$ref: '#/components/schemas/HeaderCertAuthPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#HmacAuth:
post:
x-speakeasy-entity-operation: PluginHmacAuth#create
operationId: create-hmacauth-plugin
summary: Create a HmacAuth plugin
description: Create a HmacAuth plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HmacAuthPlugin'
responses:
'201':
description: Created HmacAuth plugin
content:
application/json:
schema:
$ref: '#/components/schemas/HmacAuthPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#HttpLog:
post:
x-speakeasy-entity-operation: PluginHttpLog#create
operationId: create-httplog-plugin
summary: Create a HttpLog plugin
description: Create a HttpLog plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HttpLogPlugin'
responses:
'201':
description: Created HttpLog plugin
content:
application/json:
schema:
$ref: '#/components/schemas/HttpLogPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#InjectionProtection:
post:
x-speakeasy-entity-operation: PluginInjectionProtection#create
operationId: create-injectionprotection-plugin
summary: Create a InjectionProtection plugin
description: Create a InjectionProtection plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/InjectionProtectionPlugin'
responses:
'201':
description: Created InjectionProtection plugin
content:
application/json:
schema:
$ref: '#/components/schemas/InjectionProtectionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#IpRestriction:
post:
x-speakeasy-entity-operation: PluginIpRestriction#create
operationId: create-iprestriction-plugin
summary: Create a IpRestriction plugin
description: Create a IpRestriction plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/IpRestrictionPlugin'
responses:
'201':
description: Created IpRestriction plugin
content:
application/json:
schema:
$ref: '#/components/schemas/IpRestrictionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#Jq:
post:
x-speakeasy-entity-operation: PluginJq#create
operationId: create-jq-plugin
summary: Create a Jq plugin
description: Create a Jq plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JqPlugin'
responses:
'201':
description: Created Jq plugin
content:
application/json:
schema:
$ref: '#/components/schemas/JqPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#JsonThreatProtection:
post:
x-speakeasy-entity-operation: PluginJsonThreatProtection#create
operationId: create-jsonthreatprotection-plugin
summary: Create a JsonThreatProtection plugin
description: Create a JsonThreatProtection plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonThreatProtectionPlugin'
responses:
'201':
description: Created JsonThreatProtection plugin
content:
application/json:
schema:
$ref: '#/components/schemas/JsonThreatProtectionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#JweDecrypt:
post:
x-speakeasy-entity-operation: PluginJweDecrypt#create
operationId: create-jwedecrypt-plugin
summary: Create a JweDecrypt plugin
description: Create a JweDecrypt plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JweDecryptPlugin'
responses:
'201':
description: Created JweDecrypt plugin
content:
application/json:
schema:
$ref: '#/components/schemas/JweDecryptPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#Jwt:
post:
x-speakeasy-entity-operation: PluginJwt#create
operationId: create-jwt-plugin
summary: Create a Jwt plugin
description: Create a Jwt plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JwtPlugin'
responses:
'201':
description: Created Jwt plugin
content:
application/json:
schema:
$ref: '#/components/schemas/JwtPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#JwtSigner:
post:
x-speakeasy-entity-operation: PluginJwtSigner#create
operationId: create-jwtsigner-plugin
summary: Create a JwtSigner plugin
description: Create a JwtSigner plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JwtSignerPlugin'
responses:
'201':
description: Created JwtSigner plugin
content:
application/json:
schema:
$ref: '#/components/schemas/JwtSignerPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#KafkaLog:
post:
x-speakeasy-entity-operation: PluginKafkaLog#create
operationId: create-kafkalog-plugin
summary: Create a KafkaLog plugin
description: Create a KafkaLog plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/KafkaLogPlugin'
responses:
'201':
description: Created KafkaLog plugin
content:
application/json:
schema:
$ref: '#/components/schemas/KafkaLogPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#KafkaUpstream:
post:
x-speakeasy-entity-operation: PluginKafkaUpstream#create
operationId: create-kafkaupstream-plugin
summary: Create a KafkaUpstream plugin
description: Create a KafkaUpstream plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/KafkaUpstreamPlugin'
responses:
'201':
description: Created KafkaUpstream plugin
content:
application/json:
schema:
$ref: '#/components/schemas/KafkaUpstreamPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#KeyAuth:
post:
x-speakeasy-entity-operation: PluginKeyAuth#create
operationId: create-keyauth-plugin
summary: Create a KeyAuth plugin
description: Create a KeyAuth plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/KeyAuthPlugin'
responses:
'201':
description: Created KeyAuth plugin
content:
application/json:
schema:
$ref: '#/components/schemas/KeyAuthPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#KeyAuthEnc:
post:
x-speakeasy-entity-operation: PluginKeyAuthEnc#create
operationId: create-keyauthenc-plugin
summary: Create a KeyAuthEnc plugin
description: Create a KeyAuthEnc plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/KeyAuthEncPlugin'
responses:
'201':
description: Created KeyAuthEnc plugin
content:
application/json:
schema:
$ref: '#/components/schemas/KeyAuthEncPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#LdapAuth:
post:
x-speakeasy-entity-operation: PluginLdapAuth#create
operationId: create-ldapauth-plugin
summary: Create a LdapAuth plugin
description: Create a LdapAuth plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LdapAuthPlugin'
responses:
'201':
description: Created LdapAuth plugin
content:
application/json:
schema:
$ref: '#/components/schemas/LdapAuthPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#LdapAuthAdvanced:
post:
x-speakeasy-entity-operation: PluginLdapAuthAdvanced#create
operationId: create-ldapauthadvanced-plugin
summary: Create a LdapAuthAdvanced plugin
description: Create a LdapAuthAdvanced plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LdapAuthAdvancedPlugin'
responses:
'201':
description: Created LdapAuthAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/LdapAuthAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#Loggly:
post:
x-speakeasy-entity-operation: PluginLoggly#create
operationId: create-loggly-plugin
summary: Create a Loggly plugin
description: Create a Loggly plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LogglyPlugin'
responses:
'201':
description: Created Loggly plugin
content:
application/json:
schema:
$ref: '#/components/schemas/LogglyPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#Mocking:
post:
x-speakeasy-entity-operation: PluginMocking#create
operationId: create-mocking-plugin
summary: Create a Mocking plugin
description: Create a Mocking plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MockingPlugin'
responses:
'201':
description: Created Mocking plugin
content:
application/json:
schema:
$ref: '#/components/schemas/MockingPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#MtlsAuth:
post:
x-speakeasy-entity-operation: PluginMtlsAuth#create
operationId: create-mtlsauth-plugin
summary: Create a MtlsAuth plugin
description: Create a MtlsAuth plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MtlsAuthPlugin'
responses:
'201':
description: Created MtlsAuth plugin
content:
application/json:
schema:
$ref: '#/components/schemas/MtlsAuthPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#OasValidation:
post:
x-speakeasy-entity-operation: PluginOasValidation#create
operationId: create-oasvalidation-plugin
summary: Create a OasValidation plugin
description: Create a OasValidation plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OasValidationPlugin'
responses:
'201':
description: Created OasValidation plugin
content:
application/json:
schema:
$ref: '#/components/schemas/OasValidationPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#Oauth2:
post:
x-speakeasy-entity-operation: PluginOauth2#create
operationId: create-oauth2-plugin
summary: Create a Oauth2 plugin
description: Create a Oauth2 plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Oauth2Plugin'
responses:
'201':
description: Created Oauth2 plugin
content:
application/json:
schema:
$ref: '#/components/schemas/Oauth2Plugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#Oauth2Introspection:
post:
x-speakeasy-entity-operation: PluginOauth2Introspection#create
operationId: create-oauth2introspection-plugin
summary: Create a Oauth2Introspection plugin
description: Create a Oauth2Introspection plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Oauth2IntrospectionPlugin'
responses:
'201':
description: Created Oauth2Introspection plugin
content:
application/json:
schema:
$ref: '#/components/schemas/Oauth2IntrospectionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#Opa:
post:
x-speakeasy-entity-operation: PluginOpa#create
operationId: create-opa-plugin
summary: Create a Opa plugin
description: Create a Opa plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OpaPlugin'
responses:
'201':
description: Created Opa plugin
content:
application/json:
schema:
$ref: '#/components/schemas/OpaPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#OpenidConnect:
post:
x-speakeasy-entity-operation: PluginOpenidConnect#create
operationId: create-openidconnect-plugin
summary: Create a OpenidConnect plugin
description: Create a OpenidConnect plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OpenidConnectPlugin'
responses:
'201':
description: Created OpenidConnect plugin
content:
application/json:
schema:
$ref: '#/components/schemas/OpenidConnectPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#Opentelemetry:
post:
x-speakeasy-entity-operation: PluginOpentelemetry#create
operationId: create-opentelemetry-plugin
summary: Create a Opentelemetry plugin
description: Create a Opentelemetry plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OpentelemetryPlugin'
responses:
'201':
description: Created Opentelemetry plugin
content:
application/json:
schema:
$ref: '#/components/schemas/OpentelemetryPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#PostFunction:
post:
x-speakeasy-entity-operation: PluginPostFunction#create
operationId: create-postfunction-plugin
summary: Create a PostFunction plugin
description: Create a PostFunction plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostFunctionPlugin'
responses:
'201':
description: Created PostFunction plugin
content:
application/json:
schema:
$ref: '#/components/schemas/PostFunctionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#PreFunction:
post:
x-speakeasy-entity-operation: PluginPreFunction#create
operationId: create-prefunction-plugin
summary: Create a PreFunction plugin
description: Create a PreFunction plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PreFunctionPlugin'
responses:
'201':
description: Created PreFunction plugin
content:
application/json:
schema:
$ref: '#/components/schemas/PreFunctionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#Prometheus:
post:
x-speakeasy-entity-operation: PluginPrometheus#create
operationId: create-prometheus-plugin
summary: Create a Prometheus plugin
description: Create a Prometheus plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PrometheusPlugin'
responses:
'201':
description: Created Prometheus plugin
content:
application/json:
schema:
$ref: '#/components/schemas/PrometheusPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#ProxyCache:
post:
x-speakeasy-entity-operation: PluginProxyCache#create
operationId: create-proxycache-plugin
summary: Create a ProxyCache plugin
description: Create a ProxyCache plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProxyCachePlugin'
responses:
'201':
description: Created ProxyCache plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ProxyCachePlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#ProxyCacheAdvanced:
post:
x-speakeasy-entity-operation: PluginProxyCacheAdvanced#create
operationId: create-proxycacheadvanced-plugin
summary: Create a ProxyCacheAdvanced plugin
description: Create a ProxyCacheAdvanced plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProxyCacheAdvancedPlugin'
responses:
'201':
description: Created ProxyCacheAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ProxyCacheAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#RateLimiting:
post:
x-speakeasy-entity-operation: PluginRateLimiting#create
operationId: create-ratelimiting-plugin
summary: Create a RateLimiting plugin
description: Create a RateLimiting plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitingPlugin'
responses:
'201':
description: Created RateLimiting plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitingPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#RateLimitingAdvanced:
post:
x-speakeasy-entity-operation: PluginRateLimitingAdvanced#create
operationId: create-ratelimitingadvanced-plugin
summary: Create a RateLimitingAdvanced plugin
description: Create a RateLimitingAdvanced plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitingAdvancedPlugin'
responses:
'201':
description: Created RateLimitingAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitingAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#Redirect:
post:
x-speakeasy-entity-operation: PluginRedirect#create
operationId: create-redirect-plugin
summary: Create a Redirect plugin
description: Create a Redirect plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RedirectPlugin'
responses:
'201':
description: Created Redirect plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RedirectPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#RequestSizeLimiting:
post:
x-speakeasy-entity-operation: PluginRequestSizeLimiting#create
operationId: create-requestsizelimiting-plugin
summary: Create a RequestSizeLimiting plugin
description: Create a RequestSizeLimiting plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RequestSizeLimitingPlugin'
responses:
'201':
description: Created RequestSizeLimiting plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RequestSizeLimitingPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#RequestTermination:
post:
x-speakeasy-entity-operation: PluginRequestTermination#create
operationId: create-requesttermination-plugin
summary: Create a RequestTermination plugin
description: Create a RequestTermination plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RequestTerminationPlugin'
responses:
'201':
description: Created RequestTermination plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RequestTerminationPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#RequestTransformer:
post:
x-speakeasy-entity-operation: PluginRequestTransformer#create
operationId: create-requesttransformer-plugin
summary: Create a RequestTransformer plugin
description: Create a RequestTransformer plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RequestTransformerPlugin'
responses:
'201':
description: Created RequestTransformer plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RequestTransformerPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#RequestTransformerAdvanced:
post:
x-speakeasy-entity-operation: PluginRequestTransformerAdvanced#create
operationId: create-requesttransformeradvanced-plugin
summary: Create a RequestTransformerAdvanced plugin
description: Create a RequestTransformerAdvanced plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RequestTransformerAdvancedPlugin'
responses:
'201':
description: Created RequestTransformerAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RequestTransformerAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#RequestValidator:
post:
x-speakeasy-entity-operation: PluginRequestValidator#create
operationId: create-requestvalidator-plugin
summary: Create a RequestValidator plugin
description: Create a RequestValidator plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RequestValidatorPlugin'
responses:
'201':
description: Created RequestValidator plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RequestValidatorPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#ResponseRatelimiting:
post:
x-speakeasy-entity-operation: PluginResponseRatelimiting#create
operationId: create-responseratelimiting-plugin
summary: Create a ResponseRatelimiting plugin
description: Create a ResponseRatelimiting plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseRatelimitingPlugin'
responses:
'201':
description: Created ResponseRatelimiting plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseRatelimitingPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#ResponseTransformer:
post:
x-speakeasy-entity-operation: PluginResponseTransformer#create
operationId: create-responsetransformer-plugin
summary: Create a ResponseTransformer plugin
description: Create a ResponseTransformer plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseTransformerPlugin'
responses:
'201':
description: Created ResponseTransformer plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseTransformerPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#ResponseTransformerAdvanced:
post:
x-speakeasy-entity-operation: PluginResponseTransformerAdvanced#create
operationId: create-responsetransformeradvanced-plugin
summary: Create a ResponseTransformerAdvanced plugin
description: Create a ResponseTransformerAdvanced plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseTransformerAdvancedPlugin'
responses:
'201':
description: Created ResponseTransformerAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseTransformerAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#RouteByHeader:
post:
x-speakeasy-entity-operation: PluginRouteByHeader#create
operationId: create-routebyheader-plugin
summary: Create a RouteByHeader plugin
description: Create a RouteByHeader plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RouteByHeaderPlugin'
responses:
'201':
description: Created RouteByHeader plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RouteByHeaderPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#RouteTransformerAdvanced:
post:
x-speakeasy-entity-operation: PluginRouteTransformerAdvanced#create
operationId: create-routetransformeradvanced-plugin
summary: Create a RouteTransformerAdvanced plugin
description: Create a RouteTransformerAdvanced plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RouteTransformerAdvancedPlugin'
responses:
'201':
description: Created RouteTransformerAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RouteTransformerAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#Saml:
post:
x-speakeasy-entity-operation: PluginSaml#create
operationId: create-saml-plugin
summary: Create a Saml plugin
description: Create a Saml plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SamlPlugin'
responses:
'201':
description: Created Saml plugin
content:
application/json:
schema:
$ref: '#/components/schemas/SamlPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#ServiceProtection:
post:
x-speakeasy-entity-operation: PluginServiceProtection#create
operationId: create-serviceprotection-plugin
summary: Create a ServiceProtection plugin
description: Create a ServiceProtection plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceProtectionPlugin'
responses:
'201':
description: Created ServiceProtection plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceProtectionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#Session:
post:
x-speakeasy-entity-operation: PluginSession#create
operationId: create-session-plugin
summary: Create a Session plugin
description: Create a Session plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SessionPlugin'
responses:
'201':
description: Created Session plugin
content:
application/json:
schema:
$ref: '#/components/schemas/SessionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#StandardWebhooks:
post:
x-speakeasy-entity-operation: PluginStandardWebhooks#create
operationId: create-standardwebhooks-plugin
summary: Create a StandardWebhooks plugin
description: Create a StandardWebhooks plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StandardWebhooksPlugin'
responses:
'201':
description: Created StandardWebhooks plugin
content:
application/json:
schema:
$ref: '#/components/schemas/StandardWebhooksPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#Statsd:
post:
x-speakeasy-entity-operation: PluginStatsd#create
operationId: create-statsd-plugin
summary: Create a Statsd plugin
description: Create a Statsd plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StatsdPlugin'
responses:
'201':
description: Created Statsd plugin
content:
application/json:
schema:
$ref: '#/components/schemas/StatsdPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#StatsdAdvanced:
post:
x-speakeasy-entity-operation: PluginStatsdAdvanced#create
operationId: create-statsdadvanced-plugin
summary: Create a StatsdAdvanced plugin
description: Create a StatsdAdvanced plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StatsdAdvancedPlugin'
responses:
'201':
description: Created StatsdAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/StatsdAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#Syslog:
post:
x-speakeasy-entity-operation: PluginSyslog#create
operationId: create-syslog-plugin
summary: Create a Syslog plugin
description: Create a Syslog plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SyslogPlugin'
responses:
'201':
description: Created Syslog plugin
content:
application/json:
schema:
$ref: '#/components/schemas/SyslogPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#TcpLog:
post:
x-speakeasy-entity-operation: PluginTcpLog#create
operationId: create-tcplog-plugin
summary: Create a TcpLog plugin
description: Create a TcpLog plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TcpLogPlugin'
responses:
'201':
description: Created TcpLog plugin
content:
application/json:
schema:
$ref: '#/components/schemas/TcpLogPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#TlsHandshakeModifier:
post:
x-speakeasy-entity-operation: PluginTlsHandshakeModifier#create
operationId: create-tlshandshakemodifier-plugin
summary: Create a TlsHandshakeModifier plugin
description: Create a TlsHandshakeModifier plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TlsHandshakeModifierPlugin'
responses:
'201':
description: Created TlsHandshakeModifier plugin
content:
application/json:
schema:
$ref: '#/components/schemas/TlsHandshakeModifierPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#TlsMetadataHeaders:
post:
x-speakeasy-entity-operation: PluginTlsMetadataHeaders#create
operationId: create-tlsmetadataheaders-plugin
summary: Create a TlsMetadataHeaders plugin
description: Create a TlsMetadataHeaders plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TlsMetadataHeadersPlugin'
responses:
'201':
description: Created TlsMetadataHeaders plugin
content:
application/json:
schema:
$ref: '#/components/schemas/TlsMetadataHeadersPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#UdpLog:
post:
x-speakeasy-entity-operation: PluginUdpLog#create
operationId: create-udplog-plugin
summary: Create a UdpLog plugin
description: Create a UdpLog plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UdpLogPlugin'
responses:
'201':
description: Created UdpLog plugin
content:
application/json:
schema:
$ref: '#/components/schemas/UdpLogPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#UpstreamOauth:
post:
x-speakeasy-entity-operation: PluginUpstreamOauth#create
operationId: create-upstreamoauth-plugin
summary: Create a UpstreamOauth plugin
description: Create a UpstreamOauth plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpstreamOauthPlugin'
responses:
'201':
description: Created UpstreamOauth plugin
content:
application/json:
schema:
$ref: '#/components/schemas/UpstreamOauthPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#UpstreamTimeout:
post:
x-speakeasy-entity-operation: PluginUpstreamTimeout#create
operationId: create-upstreamtimeout-plugin
summary: Create a UpstreamTimeout plugin
description: Create a UpstreamTimeout plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpstreamTimeoutPlugin'
responses:
'201':
description: Created UpstreamTimeout plugin
content:
application/json:
schema:
$ref: '#/components/schemas/UpstreamTimeoutPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#VaultAuth:
post:
x-speakeasy-entity-operation: PluginVaultAuth#create
operationId: create-vaultauth-plugin
summary: Create a VaultAuth plugin
description: Create a VaultAuth plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/VaultAuthPlugin'
responses:
'201':
description: Created VaultAuth plugin
content:
application/json:
schema:
$ref: '#/components/schemas/VaultAuthPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#WebsocketSizeLimit:
post:
x-speakeasy-entity-operation: PluginWebsocketSizeLimit#create
operationId: create-websocketsizelimit-plugin
summary: Create a WebsocketSizeLimit plugin
description: Create a WebsocketSizeLimit plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/WebsocketSizeLimitPlugin'
responses:
'201':
description: Created WebsocketSizeLimit plugin
content:
application/json:
schema:
$ref: '#/components/schemas/WebsocketSizeLimitPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#WebsocketValidator:
post:
x-speakeasy-entity-operation: PluginWebsocketValidator#create
operationId: create-websocketvalidator-plugin
summary: Create a WebsocketValidator plugin
description: Create a WebsocketValidator plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/WebsocketValidatorPlugin'
responses:
'201':
description: Created WebsocketValidator plugin
content:
application/json:
schema:
$ref: '#/components/schemas/WebsocketValidatorPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#XmlThreatProtection:
post:
x-speakeasy-entity-operation: PluginXmlThreatProtection#create
operationId: create-xmlthreatprotection-plugin
summary: Create a XmlThreatProtection plugin
description: Create a XmlThreatProtection plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/XmlThreatProtectionPlugin'
responses:
'201':
description: Created XmlThreatProtection plugin
content:
application/json:
schema:
$ref: '#/components/schemas/XmlThreatProtectionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/plugins#Zipkin:
post:
x-speakeasy-entity-operation: PluginZipkin#create
operationId: create-zipkin-plugin
summary: Create a Zipkin plugin
description: Create a Zipkin plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ZipkinPlugin'
responses:
'201':
description: Created Zipkin plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ZipkinPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}':
parameters:
- $ref: '#/components/parameters/PluginId'
'/plugins/{PluginId}#ACL':
delete:
x-speakeasy-entity-operation: PluginACL#delete
operationId: delete-acl-plugin
summary: Delete a ACL plugin
description: Delete a ACL plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginACL#read
operationId: get-acl-plugin
summary: Get a ACL plugin
description: Get a ACL plugin
responses:
'200':
description: ACL plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ACLPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginACL#update
operationId: update-acl-plugin
summary: Update a ACL plugin
description: Update a ACL plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ACLPlugin'
responses:
'200':
description: ACL plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ACLPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#Acme':
delete:
x-speakeasy-entity-operation: PluginAcme#delete
operationId: delete-acme-plugin
summary: Delete a Acme plugin
description: Delete a Acme plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginAcme#read
operationId: get-acme-plugin
summary: Get a Acme plugin
description: Get a Acme plugin
responses:
'200':
description: Acme plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AcmePlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginAcme#update
operationId: update-acme-plugin
summary: Update a Acme plugin
description: Update a Acme plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AcmePlugin'
responses:
'200':
description: Acme plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AcmePlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#AiAzureContentSafety':
delete:
x-speakeasy-entity-operation: PluginAiAzureContentSafety#delete
operationId: delete-aiazurecontentsafety-plugin
summary: Delete a AiAzureContentSafety plugin
description: Delete a AiAzureContentSafety plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginAiAzureContentSafety#read
operationId: get-aiazurecontentsafety-plugin
summary: Get a AiAzureContentSafety plugin
description: Get a AiAzureContentSafety plugin
responses:
'200':
description: AiAzureContentSafety plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiAzureContentSafetyPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginAiAzureContentSafety#update
operationId: update-aiazurecontentsafety-plugin
summary: Update a AiAzureContentSafety plugin
description: Update a AiAzureContentSafety plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AiAzureContentSafetyPlugin'
responses:
'200':
description: AiAzureContentSafety plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiAzureContentSafetyPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#AiPromptDecorator':
delete:
x-speakeasy-entity-operation: PluginAiPromptDecorator#delete
operationId: delete-aipromptdecorator-plugin
summary: Delete a AiPromptDecorator plugin
description: Delete a AiPromptDecorator plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginAiPromptDecorator#read
operationId: get-aipromptdecorator-plugin
summary: Get a AiPromptDecorator plugin
description: Get a AiPromptDecorator plugin
responses:
'200':
description: AiPromptDecorator plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiPromptDecoratorPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginAiPromptDecorator#update
operationId: update-aipromptdecorator-plugin
summary: Update a AiPromptDecorator plugin
description: Update a AiPromptDecorator plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AiPromptDecoratorPlugin'
responses:
'200':
description: AiPromptDecorator plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiPromptDecoratorPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#AiPromptGuard':
delete:
x-speakeasy-entity-operation: PluginAiPromptGuard#delete
operationId: delete-aipromptguard-plugin
summary: Delete a AiPromptGuard plugin
description: Delete a AiPromptGuard plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginAiPromptGuard#read
operationId: get-aipromptguard-plugin
summary: Get a AiPromptGuard plugin
description: Get a AiPromptGuard plugin
responses:
'200':
description: AiPromptGuard plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiPromptGuardPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginAiPromptGuard#update
operationId: update-aipromptguard-plugin
summary: Update a AiPromptGuard plugin
description: Update a AiPromptGuard plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AiPromptGuardPlugin'
responses:
'200':
description: AiPromptGuard plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiPromptGuardPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#AiPromptTemplate':
delete:
x-speakeasy-entity-operation: PluginAiPromptTemplate#delete
operationId: delete-aiprompttemplate-plugin
summary: Delete a AiPromptTemplate plugin
description: Delete a AiPromptTemplate plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginAiPromptTemplate#read
operationId: get-aiprompttemplate-plugin
summary: Get a AiPromptTemplate plugin
description: Get a AiPromptTemplate plugin
responses:
'200':
description: AiPromptTemplate plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiPromptTemplatePlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginAiPromptTemplate#update
operationId: update-aiprompttemplate-plugin
summary: Update a AiPromptTemplate plugin
description: Update a AiPromptTemplate plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AiPromptTemplatePlugin'
responses:
'200':
description: AiPromptTemplate plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiPromptTemplatePlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#AiProxy':
delete:
x-speakeasy-entity-operation: PluginAiProxy#delete
operationId: delete-aiproxy-plugin
summary: Delete a AiProxy plugin
description: Delete a AiProxy plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginAiProxy#read
operationId: get-aiproxy-plugin
summary: Get a AiProxy plugin
description: Get a AiProxy plugin
responses:
'200':
description: AiProxy plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiProxyPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginAiProxy#update
operationId: update-aiproxy-plugin
summary: Update a AiProxy plugin
description: Update a AiProxy plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AiProxyPlugin'
responses:
'200':
description: AiProxy plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiProxyPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#AiProxyAdvanced':
delete:
x-speakeasy-entity-operation: PluginAiProxyAdvanced#delete
operationId: delete-aiproxyadvanced-plugin
summary: Delete a AiProxyAdvanced plugin
description: Delete a AiProxyAdvanced plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginAiProxyAdvanced#read
operationId: get-aiproxyadvanced-plugin
summary: Get a AiProxyAdvanced plugin
description: Get a AiProxyAdvanced plugin
responses:
'200':
description: AiProxyAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiProxyAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginAiProxyAdvanced#update
operationId: update-aiproxyadvanced-plugin
summary: Update a AiProxyAdvanced plugin
description: Update a AiProxyAdvanced plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AiProxyAdvancedPlugin'
responses:
'200':
description: AiProxyAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiProxyAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#AiRateLimitingAdvanced':
delete:
x-speakeasy-entity-operation: PluginAiRateLimitingAdvanced#delete
operationId: delete-airatelimitingadvanced-plugin
summary: Delete a AiRateLimitingAdvanced plugin
description: Delete a AiRateLimitingAdvanced plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginAiRateLimitingAdvanced#read
operationId: get-airatelimitingadvanced-plugin
summary: Get a AiRateLimitingAdvanced plugin
description: Get a AiRateLimitingAdvanced plugin
responses:
'200':
description: AiRateLimitingAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiRateLimitingAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginAiRateLimitingAdvanced#update
operationId: update-airatelimitingadvanced-plugin
summary: Update a AiRateLimitingAdvanced plugin
description: Update a AiRateLimitingAdvanced plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AiRateLimitingAdvancedPlugin'
responses:
'200':
description: AiRateLimitingAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiRateLimitingAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#AiRequestTransformer':
delete:
x-speakeasy-entity-operation: PluginAiRequestTransformer#delete
operationId: delete-airequesttransformer-plugin
summary: Delete a AiRequestTransformer plugin
description: Delete a AiRequestTransformer plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginAiRequestTransformer#read
operationId: get-airequesttransformer-plugin
summary: Get a AiRequestTransformer plugin
description: Get a AiRequestTransformer plugin
responses:
'200':
description: AiRequestTransformer plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiRequestTransformerPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginAiRequestTransformer#update
operationId: update-airequesttransformer-plugin
summary: Update a AiRequestTransformer plugin
description: Update a AiRequestTransformer plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AiRequestTransformerPlugin'
responses:
'200':
description: AiRequestTransformer plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiRequestTransformerPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#AiResponseTransformer':
delete:
x-speakeasy-entity-operation: PluginAiResponseTransformer#delete
operationId: delete-airesponsetransformer-plugin
summary: Delete a AiResponseTransformer plugin
description: Delete a AiResponseTransformer plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginAiResponseTransformer#read
operationId: get-airesponsetransformer-plugin
summary: Get a AiResponseTransformer plugin
description: Get a AiResponseTransformer plugin
responses:
'200':
description: AiResponseTransformer plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiResponseTransformerPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginAiResponseTransformer#update
operationId: update-airesponsetransformer-plugin
summary: Update a AiResponseTransformer plugin
description: Update a AiResponseTransformer plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AiResponseTransformerPlugin'
responses:
'200':
description: AiResponseTransformer plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiResponseTransformerPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#AiSemanticCache':
delete:
x-speakeasy-entity-operation: PluginAiSemanticCache#delete
operationId: delete-aisemanticcache-plugin
summary: Delete a AiSemanticCache plugin
description: Delete a AiSemanticCache plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginAiSemanticCache#read
operationId: get-aisemanticcache-plugin
summary: Get a AiSemanticCache plugin
description: Get a AiSemanticCache plugin
responses:
'200':
description: AiSemanticCache plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiSemanticCachePlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginAiSemanticCache#update
operationId: update-aisemanticcache-plugin
summary: Update a AiSemanticCache plugin
description: Update a AiSemanticCache plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AiSemanticCachePlugin'
responses:
'200':
description: AiSemanticCache plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiSemanticCachePlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#AiSemanticPromptGuard':
delete:
x-speakeasy-entity-operation: PluginAiSemanticPromptGuard#delete
operationId: delete-aisemanticpromptguard-plugin
summary: Delete a AiSemanticPromptGuard plugin
description: Delete a AiSemanticPromptGuard plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginAiSemanticPromptGuard#read
operationId: get-aisemanticpromptguard-plugin
summary: Get a AiSemanticPromptGuard plugin
description: Get a AiSemanticPromptGuard plugin
responses:
'200':
description: AiSemanticPromptGuard plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiSemanticPromptGuardPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginAiSemanticPromptGuard#update
operationId: update-aisemanticpromptguard-plugin
summary: Update a AiSemanticPromptGuard plugin
description: Update a AiSemanticPromptGuard plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AiSemanticPromptGuardPlugin'
responses:
'200':
description: AiSemanticPromptGuard plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AiSemanticPromptGuardPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#AwsLambda':
delete:
x-speakeasy-entity-operation: PluginAwsLambda#delete
operationId: delete-awslambda-plugin
summary: Delete a AwsLambda plugin
description: Delete a AwsLambda plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginAwsLambda#read
operationId: get-awslambda-plugin
summary: Get a AwsLambda plugin
description: Get a AwsLambda plugin
responses:
'200':
description: AwsLambda plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AwsLambdaPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginAwsLambda#update
operationId: update-awslambda-plugin
summary: Update a AwsLambda plugin
description: Update a AwsLambda plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AwsLambdaPlugin'
responses:
'200':
description: AwsLambda plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AwsLambdaPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#AzureFunctions':
delete:
x-speakeasy-entity-operation: PluginAzureFunctions#delete
operationId: delete-azurefunctions-plugin
summary: Delete a AzureFunctions plugin
description: Delete a AzureFunctions plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginAzureFunctions#read
operationId: get-azurefunctions-plugin
summary: Get a AzureFunctions plugin
description: Get a AzureFunctions plugin
responses:
'200':
description: AzureFunctions plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AzureFunctionsPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginAzureFunctions#update
operationId: update-azurefunctions-plugin
summary: Update a AzureFunctions plugin
description: Update a AzureFunctions plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AzureFunctionsPlugin'
responses:
'200':
description: AzureFunctions plugin
content:
application/json:
schema:
$ref: '#/components/schemas/AzureFunctionsPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#BasicAuth':
delete:
x-speakeasy-entity-operation: PluginBasicAuth#delete
operationId: delete-basicauth-plugin
summary: Delete a BasicAuth plugin
description: Delete a BasicAuth plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginBasicAuth#read
operationId: get-basicauth-plugin
summary: Get a BasicAuth plugin
description: Get a BasicAuth plugin
responses:
'200':
description: BasicAuth plugin
content:
application/json:
schema:
$ref: '#/components/schemas/BasicAuthPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginBasicAuth#update
operationId: update-basicauth-plugin
summary: Update a BasicAuth plugin
description: Update a BasicAuth plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BasicAuthPlugin'
responses:
'200':
description: BasicAuth plugin
content:
application/json:
schema:
$ref: '#/components/schemas/BasicAuthPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#BotDetection':
delete:
x-speakeasy-entity-operation: PluginBotDetection#delete
operationId: delete-botdetection-plugin
summary: Delete a BotDetection plugin
description: Delete a BotDetection plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginBotDetection#read
operationId: get-botdetection-plugin
summary: Get a BotDetection plugin
description: Get a BotDetection plugin
responses:
'200':
description: BotDetection plugin
content:
application/json:
schema:
$ref: '#/components/schemas/BotDetectionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginBotDetection#update
operationId: update-botdetection-plugin
summary: Update a BotDetection plugin
description: Update a BotDetection plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BotDetectionPlugin'
responses:
'200':
description: BotDetection plugin
content:
application/json:
schema:
$ref: '#/components/schemas/BotDetectionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#Canary':
delete:
x-speakeasy-entity-operation: PluginCanary#delete
operationId: delete-canary-plugin
summary: Delete a Canary plugin
description: Delete a Canary plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginCanary#read
operationId: get-canary-plugin
summary: Get a Canary plugin
description: Get a Canary plugin
responses:
'200':
description: Canary plugin
content:
application/json:
schema:
$ref: '#/components/schemas/CanaryPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginCanary#update
operationId: update-canary-plugin
summary: Update a Canary plugin
description: Update a Canary plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CanaryPlugin'
responses:
'200':
description: Canary plugin
content:
application/json:
schema:
$ref: '#/components/schemas/CanaryPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#Confluent':
delete:
x-speakeasy-entity-operation: PluginConfluent#delete
operationId: delete-confluent-plugin
summary: Delete a Confluent plugin
description: Delete a Confluent plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginConfluent#read
operationId: get-confluent-plugin
summary: Get a Confluent plugin
description: Get a Confluent plugin
responses:
'200':
description: Confluent plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ConfluentPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginConfluent#update
operationId: update-confluent-plugin
summary: Update a Confluent plugin
description: Update a Confluent plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ConfluentPlugin'
responses:
'200':
description: Confluent plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ConfluentPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#CorrelationId':
delete:
x-speakeasy-entity-operation: PluginCorrelationId#delete
operationId: delete-correlationid-plugin
summary: Delete a CorrelationId plugin
description: Delete a CorrelationId plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginCorrelationId#read
operationId: get-correlationid-plugin
summary: Get a CorrelationId plugin
description: Get a CorrelationId plugin
responses:
'200':
description: CorrelationId plugin
content:
application/json:
schema:
$ref: '#/components/schemas/CorrelationIdPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginCorrelationId#update
operationId: update-correlationid-plugin
summary: Update a CorrelationId plugin
description: Update a CorrelationId plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CorrelationIdPlugin'
responses:
'200':
description: CorrelationId plugin
content:
application/json:
schema:
$ref: '#/components/schemas/CorrelationIdPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#Cors':
delete:
x-speakeasy-entity-operation: PluginCors#delete
operationId: delete-cors-plugin
summary: Delete a Cors plugin
description: Delete a Cors plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginCors#read
operationId: get-cors-plugin
summary: Get a Cors plugin
description: Get a Cors plugin
responses:
'200':
description: Cors plugin
content:
application/json:
schema:
$ref: '#/components/schemas/CorsPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginCors#update
operationId: update-cors-plugin
summary: Update a Cors plugin
description: Update a Cors plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CorsPlugin'
responses:
'200':
description: Cors plugin
content:
application/json:
schema:
$ref: '#/components/schemas/CorsPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#Datadog':
delete:
x-speakeasy-entity-operation: PluginDatadog#delete
operationId: delete-datadog-plugin
summary: Delete a Datadog plugin
description: Delete a Datadog plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginDatadog#read
operationId: get-datadog-plugin
summary: Get a Datadog plugin
description: Get a Datadog plugin
responses:
'200':
description: Datadog plugin
content:
application/json:
schema:
$ref: '#/components/schemas/DatadogPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginDatadog#update
operationId: update-datadog-plugin
summary: Update a Datadog plugin
description: Update a Datadog plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DatadogPlugin'
responses:
'200':
description: Datadog plugin
content:
application/json:
schema:
$ref: '#/components/schemas/DatadogPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#DatadogTracing':
delete:
x-speakeasy-entity-operation: PluginDatadogTracing#delete
operationId: delete-datadogtracing-plugin
summary: Delete a DatadogTracing plugin
description: Delete a DatadogTracing plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginDatadogTracing#read
operationId: get-datadogtracing-plugin
summary: Get a DatadogTracing plugin
description: Get a DatadogTracing plugin
responses:
'200':
description: DatadogTracing plugin
content:
application/json:
schema:
$ref: '#/components/schemas/DatadogTracingPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginDatadogTracing#update
operationId: update-datadogtracing-plugin
summary: Update a DatadogTracing plugin
description: Update a DatadogTracing plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DatadogTracingPlugin'
responses:
'200':
description: DatadogTracing plugin
content:
application/json:
schema:
$ref: '#/components/schemas/DatadogTracingPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#Degraphql':
delete:
x-speakeasy-entity-operation: PluginDegraphql#delete
operationId: delete-degraphql-plugin
summary: Delete a Degraphql plugin
description: Delete a Degraphql plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginDegraphql#read
operationId: get-degraphql-plugin
summary: Get a Degraphql plugin
description: Get a Degraphql plugin
responses:
'200':
description: Degraphql plugin
content:
application/json:
schema:
$ref: '#/components/schemas/DegraphqlPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginDegraphql#update
operationId: update-degraphql-plugin
summary: Update a Degraphql plugin
description: Update a Degraphql plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DegraphqlPlugin'
responses:
'200':
description: Degraphql plugin
content:
application/json:
schema:
$ref: '#/components/schemas/DegraphqlPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#ExitTransformer':
delete:
x-speakeasy-entity-operation: PluginExitTransformer#delete
operationId: delete-exittransformer-plugin
summary: Delete a ExitTransformer plugin
description: Delete a ExitTransformer plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginExitTransformer#read
operationId: get-exittransformer-plugin
summary: Get a ExitTransformer plugin
description: Get a ExitTransformer plugin
responses:
'200':
description: ExitTransformer plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ExitTransformerPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginExitTransformer#update
operationId: update-exittransformer-plugin
summary: Update a ExitTransformer plugin
description: Update a ExitTransformer plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ExitTransformerPlugin'
responses:
'200':
description: ExitTransformer plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ExitTransformerPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#FileLog':
delete:
x-speakeasy-entity-operation: PluginFileLog#delete
operationId: delete-filelog-plugin
summary: Delete a FileLog plugin
description: Delete a FileLog plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginFileLog#read
operationId: get-filelog-plugin
summary: Get a FileLog plugin
description: Get a FileLog plugin
responses:
'200':
description: FileLog plugin
content:
application/json:
schema:
$ref: '#/components/schemas/FileLogPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginFileLog#update
operationId: update-filelog-plugin
summary: Update a FileLog plugin
description: Update a FileLog plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/FileLogPlugin'
responses:
'200':
description: FileLog plugin
content:
application/json:
schema:
$ref: '#/components/schemas/FileLogPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#ForwardProxy':
delete:
x-speakeasy-entity-operation: PluginForwardProxy#delete
operationId: delete-forwardproxy-plugin
summary: Delete a ForwardProxy plugin
description: Delete a ForwardProxy plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginForwardProxy#read
operationId: get-forwardproxy-plugin
summary: Get a ForwardProxy plugin
description: Get a ForwardProxy plugin
responses:
'200':
description: ForwardProxy plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ForwardProxyPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginForwardProxy#update
operationId: update-forwardproxy-plugin
summary: Update a ForwardProxy plugin
description: Update a ForwardProxy plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ForwardProxyPlugin'
responses:
'200':
description: ForwardProxy plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ForwardProxyPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#GraphqlProxyCacheAdvanced':
delete:
x-speakeasy-entity-operation: PluginGraphqlProxyCacheAdvanced#delete
operationId: delete-graphqlproxycacheadvanced-plugin
summary: Delete a GraphqlProxyCacheAdvanced plugin
description: Delete a GraphqlProxyCacheAdvanced plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginGraphqlProxyCacheAdvanced#read
operationId: get-graphqlproxycacheadvanced-plugin
summary: Get a GraphqlProxyCacheAdvanced plugin
description: Get a GraphqlProxyCacheAdvanced plugin
responses:
'200':
description: GraphqlProxyCacheAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/GraphqlProxyCacheAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginGraphqlProxyCacheAdvanced#update
operationId: update-graphqlproxycacheadvanced-plugin
summary: Update a GraphqlProxyCacheAdvanced plugin
description: Update a GraphqlProxyCacheAdvanced plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GraphqlProxyCacheAdvancedPlugin'
responses:
'200':
description: GraphqlProxyCacheAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/GraphqlProxyCacheAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#GraphqlRateLimitingAdvanced':
delete:
x-speakeasy-entity-operation: PluginGraphqlRateLimitingAdvanced#delete
operationId: delete-graphqlratelimitingadvanced-plugin
summary: Delete a GraphqlRateLimitingAdvanced plugin
description: Delete a GraphqlRateLimitingAdvanced plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginGraphqlRateLimitingAdvanced#read
operationId: get-graphqlratelimitingadvanced-plugin
summary: Get a GraphqlRateLimitingAdvanced plugin
description: Get a GraphqlRateLimitingAdvanced plugin
responses:
'200':
description: GraphqlRateLimitingAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/GraphqlRateLimitingAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginGraphqlRateLimitingAdvanced#update
operationId: update-graphqlratelimitingadvanced-plugin
summary: Update a GraphqlRateLimitingAdvanced plugin
description: Update a GraphqlRateLimitingAdvanced plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GraphqlRateLimitingAdvancedPlugin'
responses:
'200':
description: GraphqlRateLimitingAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/GraphqlRateLimitingAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#GrpcGateway':
delete:
x-speakeasy-entity-operation: PluginGrpcGateway#delete
operationId: delete-grpcgateway-plugin
summary: Delete a GrpcGateway plugin
description: Delete a GrpcGateway plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginGrpcGateway#read
operationId: get-grpcgateway-plugin
summary: Get a GrpcGateway plugin
description: Get a GrpcGateway plugin
responses:
'200':
description: GrpcGateway plugin
content:
application/json:
schema:
$ref: '#/components/schemas/GrpcGatewayPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginGrpcGateway#update
operationId: update-grpcgateway-plugin
summary: Update a GrpcGateway plugin
description: Update a GrpcGateway plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GrpcGatewayPlugin'
responses:
'200':
description: GrpcGateway plugin
content:
application/json:
schema:
$ref: '#/components/schemas/GrpcGatewayPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#GrpcWeb':
delete:
x-speakeasy-entity-operation: PluginGrpcWeb#delete
operationId: delete-grpcweb-plugin
summary: Delete a GrpcWeb plugin
description: Delete a GrpcWeb plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginGrpcWeb#read
operationId: get-grpcweb-plugin
summary: Get a GrpcWeb plugin
description: Get a GrpcWeb plugin
responses:
'200':
description: GrpcWeb plugin
content:
application/json:
schema:
$ref: '#/components/schemas/GrpcWebPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginGrpcWeb#update
operationId: update-grpcweb-plugin
summary: Update a GrpcWeb plugin
description: Update a GrpcWeb plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GrpcWebPlugin'
responses:
'200':
description: GrpcWeb plugin
content:
application/json:
schema:
$ref: '#/components/schemas/GrpcWebPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#HeaderCertAuth':
delete:
x-speakeasy-entity-operation: PluginHeaderCertAuth#delete
operationId: delete-headercertauth-plugin
summary: Delete a HeaderCertAuth plugin
description: Delete a HeaderCertAuth plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginHeaderCertAuth#read
operationId: get-headercertauth-plugin
summary: Get a HeaderCertAuth plugin
description: Get a HeaderCertAuth plugin
responses:
'200':
description: HeaderCertAuth plugin
content:
application/json:
schema:
$ref: '#/components/schemas/HeaderCertAuthPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginHeaderCertAuth#update
operationId: update-headercertauth-plugin
summary: Update a HeaderCertAuth plugin
description: Update a HeaderCertAuth plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HeaderCertAuthPlugin'
responses:
'200':
description: HeaderCertAuth plugin
content:
application/json:
schema:
$ref: '#/components/schemas/HeaderCertAuthPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#HmacAuth':
delete:
x-speakeasy-entity-operation: PluginHmacAuth#delete
operationId: delete-hmacauth-plugin
summary: Delete a HmacAuth plugin
description: Delete a HmacAuth plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginHmacAuth#read
operationId: get-hmacauth-plugin
summary: Get a HmacAuth plugin
description: Get a HmacAuth plugin
responses:
'200':
description: HmacAuth plugin
content:
application/json:
schema:
$ref: '#/components/schemas/HmacAuthPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginHmacAuth#update
operationId: update-hmacauth-plugin
summary: Update a HmacAuth plugin
description: Update a HmacAuth plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HmacAuthPlugin'
responses:
'200':
description: HmacAuth plugin
content:
application/json:
schema:
$ref: '#/components/schemas/HmacAuthPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#HttpLog':
delete:
x-speakeasy-entity-operation: PluginHttpLog#delete
operationId: delete-httplog-plugin
summary: Delete a HttpLog plugin
description: Delete a HttpLog plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginHttpLog#read
operationId: get-httplog-plugin
summary: Get a HttpLog plugin
description: Get a HttpLog plugin
responses:
'200':
description: HttpLog plugin
content:
application/json:
schema:
$ref: '#/components/schemas/HttpLogPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginHttpLog#update
operationId: update-httplog-plugin
summary: Update a HttpLog plugin
description: Update a HttpLog plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HttpLogPlugin'
responses:
'200':
description: HttpLog plugin
content:
application/json:
schema:
$ref: '#/components/schemas/HttpLogPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#InjectionProtection':
delete:
x-speakeasy-entity-operation: PluginInjectionProtection#delete
operationId: delete-injectionprotection-plugin
summary: Delete a InjectionProtection plugin
description: Delete a InjectionProtection plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginInjectionProtection#read
operationId: get-injectionprotection-plugin
summary: Get a InjectionProtection plugin
description: Get a InjectionProtection plugin
responses:
'200':
description: InjectionProtection plugin
content:
application/json:
schema:
$ref: '#/components/schemas/InjectionProtectionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginInjectionProtection#update
operationId: update-injectionprotection-plugin
summary: Update a InjectionProtection plugin
description: Update a InjectionProtection plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/InjectionProtectionPlugin'
responses:
'200':
description: InjectionProtection plugin
content:
application/json:
schema:
$ref: '#/components/schemas/InjectionProtectionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#IpRestriction':
delete:
x-speakeasy-entity-operation: PluginIpRestriction#delete
operationId: delete-iprestriction-plugin
summary: Delete a IpRestriction plugin
description: Delete a IpRestriction plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginIpRestriction#read
operationId: get-iprestriction-plugin
summary: Get a IpRestriction plugin
description: Get a IpRestriction plugin
responses:
'200':
description: IpRestriction plugin
content:
application/json:
schema:
$ref: '#/components/schemas/IpRestrictionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginIpRestriction#update
operationId: update-iprestriction-plugin
summary: Update a IpRestriction plugin
description: Update a IpRestriction plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/IpRestrictionPlugin'
responses:
'200':
description: IpRestriction plugin
content:
application/json:
schema:
$ref: '#/components/schemas/IpRestrictionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#Jq':
delete:
x-speakeasy-entity-operation: PluginJq#delete
operationId: delete-jq-plugin
summary: Delete a Jq plugin
description: Delete a Jq plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginJq#read
operationId: get-jq-plugin
summary: Get a Jq plugin
description: Get a Jq plugin
responses:
'200':
description: Jq plugin
content:
application/json:
schema:
$ref: '#/components/schemas/JqPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginJq#update
operationId: update-jq-plugin
summary: Update a Jq plugin
description: Update a Jq plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JqPlugin'
responses:
'200':
description: Jq plugin
content:
application/json:
schema:
$ref: '#/components/schemas/JqPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#JsonThreatProtection':
delete:
x-speakeasy-entity-operation: PluginJsonThreatProtection#delete
operationId: delete-jsonthreatprotection-plugin
summary: Delete a JsonThreatProtection plugin
description: Delete a JsonThreatProtection plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginJsonThreatProtection#read
operationId: get-jsonthreatprotection-plugin
summary: Get a JsonThreatProtection plugin
description: Get a JsonThreatProtection plugin
responses:
'200':
description: JsonThreatProtection plugin
content:
application/json:
schema:
$ref: '#/components/schemas/JsonThreatProtectionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginJsonThreatProtection#update
operationId: update-jsonthreatprotection-plugin
summary: Update a JsonThreatProtection plugin
description: Update a JsonThreatProtection plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonThreatProtectionPlugin'
responses:
'200':
description: JsonThreatProtection plugin
content:
application/json:
schema:
$ref: '#/components/schemas/JsonThreatProtectionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#JweDecrypt':
delete:
x-speakeasy-entity-operation: PluginJweDecrypt#delete
operationId: delete-jwedecrypt-plugin
summary: Delete a JweDecrypt plugin
description: Delete a JweDecrypt plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginJweDecrypt#read
operationId: get-jwedecrypt-plugin
summary: Get a JweDecrypt plugin
description: Get a JweDecrypt plugin
responses:
'200':
description: JweDecrypt plugin
content:
application/json:
schema:
$ref: '#/components/schemas/JweDecryptPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginJweDecrypt#update
operationId: update-jwedecrypt-plugin
summary: Update a JweDecrypt plugin
description: Update a JweDecrypt plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JweDecryptPlugin'
responses:
'200':
description: JweDecrypt plugin
content:
application/json:
schema:
$ref: '#/components/schemas/JweDecryptPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#Jwt':
delete:
x-speakeasy-entity-operation: PluginJwt#delete
operationId: delete-jwt-plugin
summary: Delete a Jwt plugin
description: Delete a Jwt plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginJwt#read
operationId: get-jwt-plugin
summary: Get a Jwt plugin
description: Get a Jwt plugin
responses:
'200':
description: Jwt plugin
content:
application/json:
schema:
$ref: '#/components/schemas/JwtPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginJwt#update
operationId: update-jwt-plugin
summary: Update a Jwt plugin
description: Update a Jwt plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JwtPlugin'
responses:
'200':
description: Jwt plugin
content:
application/json:
schema:
$ref: '#/components/schemas/JwtPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#JwtSigner':
delete:
x-speakeasy-entity-operation: PluginJwtSigner#delete
operationId: delete-jwtsigner-plugin
summary: Delete a JwtSigner plugin
description: Delete a JwtSigner plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginJwtSigner#read
operationId: get-jwtsigner-plugin
summary: Get a JwtSigner plugin
description: Get a JwtSigner plugin
responses:
'200':
description: JwtSigner plugin
content:
application/json:
schema:
$ref: '#/components/schemas/JwtSignerPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginJwtSigner#update
operationId: update-jwtsigner-plugin
summary: Update a JwtSigner plugin
description: Update a JwtSigner plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JwtSignerPlugin'
responses:
'200':
description: JwtSigner plugin
content:
application/json:
schema:
$ref: '#/components/schemas/JwtSignerPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#KafkaLog':
delete:
x-speakeasy-entity-operation: PluginKafkaLog#delete
operationId: delete-kafkalog-plugin
summary: Delete a KafkaLog plugin
description: Delete a KafkaLog plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginKafkaLog#read
operationId: get-kafkalog-plugin
summary: Get a KafkaLog plugin
description: Get a KafkaLog plugin
responses:
'200':
description: KafkaLog plugin
content:
application/json:
schema:
$ref: '#/components/schemas/KafkaLogPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginKafkaLog#update
operationId: update-kafkalog-plugin
summary: Update a KafkaLog plugin
description: Update a KafkaLog plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/KafkaLogPlugin'
responses:
'200':
description: KafkaLog plugin
content:
application/json:
schema:
$ref: '#/components/schemas/KafkaLogPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#KafkaUpstream':
delete:
x-speakeasy-entity-operation: PluginKafkaUpstream#delete
operationId: delete-kafkaupstream-plugin
summary: Delete a KafkaUpstream plugin
description: Delete a KafkaUpstream plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginKafkaUpstream#read
operationId: get-kafkaupstream-plugin
summary: Get a KafkaUpstream plugin
description: Get a KafkaUpstream plugin
responses:
'200':
description: KafkaUpstream plugin
content:
application/json:
schema:
$ref: '#/components/schemas/KafkaUpstreamPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginKafkaUpstream#update
operationId: update-kafkaupstream-plugin
summary: Update a KafkaUpstream plugin
description: Update a KafkaUpstream plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/KafkaUpstreamPlugin'
responses:
'200':
description: KafkaUpstream plugin
content:
application/json:
schema:
$ref: '#/components/schemas/KafkaUpstreamPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#KeyAuth':
delete:
x-speakeasy-entity-operation: PluginKeyAuth#delete
operationId: delete-keyauth-plugin
summary: Delete a KeyAuth plugin
description: Delete a KeyAuth plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginKeyAuth#read
operationId: get-keyauth-plugin
summary: Get a KeyAuth plugin
description: Get a KeyAuth plugin
responses:
'200':
description: KeyAuth plugin
content:
application/json:
schema:
$ref: '#/components/schemas/KeyAuthPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginKeyAuth#update
operationId: update-keyauth-plugin
summary: Update a KeyAuth plugin
description: Update a KeyAuth plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/KeyAuthPlugin'
responses:
'200':
description: KeyAuth plugin
content:
application/json:
schema:
$ref: '#/components/schemas/KeyAuthPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#KeyAuthEnc':
delete:
x-speakeasy-entity-operation: PluginKeyAuthEnc#delete
operationId: delete-keyauthenc-plugin
summary: Delete a KeyAuthEnc plugin
description: Delete a KeyAuthEnc plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginKeyAuthEnc#read
operationId: get-keyauthenc-plugin
summary: Get a KeyAuthEnc plugin
description: Get a KeyAuthEnc plugin
responses:
'200':
description: KeyAuthEnc plugin
content:
application/json:
schema:
$ref: '#/components/schemas/KeyAuthEncPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginKeyAuthEnc#update
operationId: update-keyauthenc-plugin
summary: Update a KeyAuthEnc plugin
description: Update a KeyAuthEnc plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/KeyAuthEncPlugin'
responses:
'200':
description: KeyAuthEnc plugin
content:
application/json:
schema:
$ref: '#/components/schemas/KeyAuthEncPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#LdapAuth':
delete:
x-speakeasy-entity-operation: PluginLdapAuth#delete
operationId: delete-ldapauth-plugin
summary: Delete a LdapAuth plugin
description: Delete a LdapAuth plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginLdapAuth#read
operationId: get-ldapauth-plugin
summary: Get a LdapAuth plugin
description: Get a LdapAuth plugin
responses:
'200':
description: LdapAuth plugin
content:
application/json:
schema:
$ref: '#/components/schemas/LdapAuthPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginLdapAuth#update
operationId: update-ldapauth-plugin
summary: Update a LdapAuth plugin
description: Update a LdapAuth plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LdapAuthPlugin'
responses:
'200':
description: LdapAuth plugin
content:
application/json:
schema:
$ref: '#/components/schemas/LdapAuthPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#LdapAuthAdvanced':
delete:
x-speakeasy-entity-operation: PluginLdapAuthAdvanced#delete
operationId: delete-ldapauthadvanced-plugin
summary: Delete a LdapAuthAdvanced plugin
description: Delete a LdapAuthAdvanced plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginLdapAuthAdvanced#read
operationId: get-ldapauthadvanced-plugin
summary: Get a LdapAuthAdvanced plugin
description: Get a LdapAuthAdvanced plugin
responses:
'200':
description: LdapAuthAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/LdapAuthAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginLdapAuthAdvanced#update
operationId: update-ldapauthadvanced-plugin
summary: Update a LdapAuthAdvanced plugin
description: Update a LdapAuthAdvanced plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LdapAuthAdvancedPlugin'
responses:
'200':
description: LdapAuthAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/LdapAuthAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#Loggly':
delete:
x-speakeasy-entity-operation: PluginLoggly#delete
operationId: delete-loggly-plugin
summary: Delete a Loggly plugin
description: Delete a Loggly plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginLoggly#read
operationId: get-loggly-plugin
summary: Get a Loggly plugin
description: Get a Loggly plugin
responses:
'200':
description: Loggly plugin
content:
application/json:
schema:
$ref: '#/components/schemas/LogglyPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginLoggly#update
operationId: update-loggly-plugin
summary: Update a Loggly plugin
description: Update a Loggly plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LogglyPlugin'
responses:
'200':
description: Loggly plugin
content:
application/json:
schema:
$ref: '#/components/schemas/LogglyPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#Mocking':
delete:
x-speakeasy-entity-operation: PluginMocking#delete
operationId: delete-mocking-plugin
summary: Delete a Mocking plugin
description: Delete a Mocking plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginMocking#read
operationId: get-mocking-plugin
summary: Get a Mocking plugin
description: Get a Mocking plugin
responses:
'200':
description: Mocking plugin
content:
application/json:
schema:
$ref: '#/components/schemas/MockingPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginMocking#update
operationId: update-mocking-plugin
summary: Update a Mocking plugin
description: Update a Mocking plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MockingPlugin'
responses:
'200':
description: Mocking plugin
content:
application/json:
schema:
$ref: '#/components/schemas/MockingPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#MtlsAuth':
delete:
x-speakeasy-entity-operation: PluginMtlsAuth#delete
operationId: delete-mtlsauth-plugin
summary: Delete a MtlsAuth plugin
description: Delete a MtlsAuth plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginMtlsAuth#read
operationId: get-mtlsauth-plugin
summary: Get a MtlsAuth plugin
description: Get a MtlsAuth plugin
responses:
'200':
description: MtlsAuth plugin
content:
application/json:
schema:
$ref: '#/components/schemas/MtlsAuthPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginMtlsAuth#update
operationId: update-mtlsauth-plugin
summary: Update a MtlsAuth plugin
description: Update a MtlsAuth plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MtlsAuthPlugin'
responses:
'200':
description: MtlsAuth plugin
content:
application/json:
schema:
$ref: '#/components/schemas/MtlsAuthPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#OasValidation':
delete:
x-speakeasy-entity-operation: PluginOasValidation#delete
operationId: delete-oasvalidation-plugin
summary: Delete a OasValidation plugin
description: Delete a OasValidation plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginOasValidation#read
operationId: get-oasvalidation-plugin
summary: Get a OasValidation plugin
description: Get a OasValidation plugin
responses:
'200':
description: OasValidation plugin
content:
application/json:
schema:
$ref: '#/components/schemas/OasValidationPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginOasValidation#update
operationId: update-oasvalidation-plugin
summary: Update a OasValidation plugin
description: Update a OasValidation plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OasValidationPlugin'
responses:
'200':
description: OasValidation plugin
content:
application/json:
schema:
$ref: '#/components/schemas/OasValidationPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#Oauth2':
delete:
x-speakeasy-entity-operation: PluginOauth2#delete
operationId: delete-oauth2-plugin
summary: Delete a Oauth2 plugin
description: Delete a Oauth2 plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginOauth2#read
operationId: get-oauth2-plugin
summary: Get a Oauth2 plugin
description: Get a Oauth2 plugin
responses:
'200':
description: Oauth2 plugin
content:
application/json:
schema:
$ref: '#/components/schemas/Oauth2Plugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginOauth2#update
operationId: update-oauth2-plugin
summary: Update a Oauth2 plugin
description: Update a Oauth2 plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Oauth2Plugin'
responses:
'200':
description: Oauth2 plugin
content:
application/json:
schema:
$ref: '#/components/schemas/Oauth2Plugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#Oauth2Introspection':
delete:
x-speakeasy-entity-operation: PluginOauth2Introspection#delete
operationId: delete-oauth2introspection-plugin
summary: Delete a Oauth2Introspection plugin
description: Delete a Oauth2Introspection plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginOauth2Introspection#read
operationId: get-oauth2introspection-plugin
summary: Get a Oauth2Introspection plugin
description: Get a Oauth2Introspection plugin
responses:
'200':
description: Oauth2Introspection plugin
content:
application/json:
schema:
$ref: '#/components/schemas/Oauth2IntrospectionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginOauth2Introspection#update
operationId: update-oauth2introspection-plugin
summary: Update a Oauth2Introspection plugin
description: Update a Oauth2Introspection plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Oauth2IntrospectionPlugin'
responses:
'200':
description: Oauth2Introspection plugin
content:
application/json:
schema:
$ref: '#/components/schemas/Oauth2IntrospectionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#Opa':
delete:
x-speakeasy-entity-operation: PluginOpa#delete
operationId: delete-opa-plugin
summary: Delete a Opa plugin
description: Delete a Opa plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginOpa#read
operationId: get-opa-plugin
summary: Get a Opa plugin
description: Get a Opa plugin
responses:
'200':
description: Opa plugin
content:
application/json:
schema:
$ref: '#/components/schemas/OpaPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginOpa#update
operationId: update-opa-plugin
summary: Update a Opa plugin
description: Update a Opa plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OpaPlugin'
responses:
'200':
description: Opa plugin
content:
application/json:
schema:
$ref: '#/components/schemas/OpaPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#OpenidConnect':
delete:
x-speakeasy-entity-operation: PluginOpenidConnect#delete
operationId: delete-openidconnect-plugin
summary: Delete a OpenidConnect plugin
description: Delete a OpenidConnect plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginOpenidConnect#read
operationId: get-openidconnect-plugin
summary: Get a OpenidConnect plugin
description: Get a OpenidConnect plugin
responses:
'200':
description: OpenidConnect plugin
content:
application/json:
schema:
$ref: '#/components/schemas/OpenidConnectPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginOpenidConnect#update
operationId: update-openidconnect-plugin
summary: Update a OpenidConnect plugin
description: Update a OpenidConnect plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OpenidConnectPlugin'
responses:
'200':
description: OpenidConnect plugin
content:
application/json:
schema:
$ref: '#/components/schemas/OpenidConnectPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#Opentelemetry':
delete:
x-speakeasy-entity-operation: PluginOpentelemetry#delete
operationId: delete-opentelemetry-plugin
summary: Delete a Opentelemetry plugin
description: Delete a Opentelemetry plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginOpentelemetry#read
operationId: get-opentelemetry-plugin
summary: Get a Opentelemetry plugin
description: Get a Opentelemetry plugin
responses:
'200':
description: Opentelemetry plugin
content:
application/json:
schema:
$ref: '#/components/schemas/OpentelemetryPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginOpentelemetry#update
operationId: update-opentelemetry-plugin
summary: Update a Opentelemetry plugin
description: Update a Opentelemetry plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OpentelemetryPlugin'
responses:
'200':
description: Opentelemetry plugin
content:
application/json:
schema:
$ref: '#/components/schemas/OpentelemetryPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#PostFunction':
delete:
x-speakeasy-entity-operation: PluginPostFunction#delete
operationId: delete-postfunction-plugin
summary: Delete a PostFunction plugin
description: Delete a PostFunction plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginPostFunction#read
operationId: get-postfunction-plugin
summary: Get a PostFunction plugin
description: Get a PostFunction plugin
responses:
'200':
description: PostFunction plugin
content:
application/json:
schema:
$ref: '#/components/schemas/PostFunctionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginPostFunction#update
operationId: update-postfunction-plugin
summary: Update a PostFunction plugin
description: Update a PostFunction plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostFunctionPlugin'
responses:
'200':
description: PostFunction plugin
content:
application/json:
schema:
$ref: '#/components/schemas/PostFunctionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#PreFunction':
delete:
x-speakeasy-entity-operation: PluginPreFunction#delete
operationId: delete-prefunction-plugin
summary: Delete a PreFunction plugin
description: Delete a PreFunction plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginPreFunction#read
operationId: get-prefunction-plugin
summary: Get a PreFunction plugin
description: Get a PreFunction plugin
responses:
'200':
description: PreFunction plugin
content:
application/json:
schema:
$ref: '#/components/schemas/PreFunctionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginPreFunction#update
operationId: update-prefunction-plugin
summary: Update a PreFunction plugin
description: Update a PreFunction plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PreFunctionPlugin'
responses:
'200':
description: PreFunction plugin
content:
application/json:
schema:
$ref: '#/components/schemas/PreFunctionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#Prometheus':
delete:
x-speakeasy-entity-operation: PluginPrometheus#delete
operationId: delete-prometheus-plugin
summary: Delete a Prometheus plugin
description: Delete a Prometheus plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginPrometheus#read
operationId: get-prometheus-plugin
summary: Get a Prometheus plugin
description: Get a Prometheus plugin
responses:
'200':
description: Prometheus plugin
content:
application/json:
schema:
$ref: '#/components/schemas/PrometheusPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginPrometheus#update
operationId: update-prometheus-plugin
summary: Update a Prometheus plugin
description: Update a Prometheus plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PrometheusPlugin'
responses:
'200':
description: Prometheus plugin
content:
application/json:
schema:
$ref: '#/components/schemas/PrometheusPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#ProxyCache':
delete:
x-speakeasy-entity-operation: PluginProxyCache#delete
operationId: delete-proxycache-plugin
summary: Delete a ProxyCache plugin
description: Delete a ProxyCache plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginProxyCache#read
operationId: get-proxycache-plugin
summary: Get a ProxyCache plugin
description: Get a ProxyCache plugin
responses:
'200':
description: ProxyCache plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ProxyCachePlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginProxyCache#update
operationId: update-proxycache-plugin
summary: Update a ProxyCache plugin
description: Update a ProxyCache plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProxyCachePlugin'
responses:
'200':
description: ProxyCache plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ProxyCachePlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#ProxyCacheAdvanced':
delete:
x-speakeasy-entity-operation: PluginProxyCacheAdvanced#delete
operationId: delete-proxycacheadvanced-plugin
summary: Delete a ProxyCacheAdvanced plugin
description: Delete a ProxyCacheAdvanced plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginProxyCacheAdvanced#read
operationId: get-proxycacheadvanced-plugin
summary: Get a ProxyCacheAdvanced plugin
description: Get a ProxyCacheAdvanced plugin
responses:
'200':
description: ProxyCacheAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ProxyCacheAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginProxyCacheAdvanced#update
operationId: update-proxycacheadvanced-plugin
summary: Update a ProxyCacheAdvanced plugin
description: Update a ProxyCacheAdvanced plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProxyCacheAdvancedPlugin'
responses:
'200':
description: ProxyCacheAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ProxyCacheAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#RateLimiting':
delete:
x-speakeasy-entity-operation: PluginRateLimiting#delete
operationId: delete-ratelimiting-plugin
summary: Delete a RateLimiting plugin
description: Delete a RateLimiting plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginRateLimiting#read
operationId: get-ratelimiting-plugin
summary: Get a RateLimiting plugin
description: Get a RateLimiting plugin
responses:
'200':
description: RateLimiting plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitingPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginRateLimiting#update
operationId: update-ratelimiting-plugin
summary: Update a RateLimiting plugin
description: Update a RateLimiting plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitingPlugin'
responses:
'200':
description: RateLimiting plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitingPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#RateLimitingAdvanced':
delete:
x-speakeasy-entity-operation: PluginRateLimitingAdvanced#delete
operationId: delete-ratelimitingadvanced-plugin
summary: Delete a RateLimitingAdvanced plugin
description: Delete a RateLimitingAdvanced plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginRateLimitingAdvanced#read
operationId: get-ratelimitingadvanced-plugin
summary: Get a RateLimitingAdvanced plugin
description: Get a RateLimitingAdvanced plugin
responses:
'200':
description: RateLimitingAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitingAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginRateLimitingAdvanced#update
operationId: update-ratelimitingadvanced-plugin
summary: Update a RateLimitingAdvanced plugin
description: Update a RateLimitingAdvanced plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitingAdvancedPlugin'
responses:
'200':
description: RateLimitingAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitingAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#Redirect':
delete:
x-speakeasy-entity-operation: PluginRedirect#delete
operationId: delete-redirect-plugin
summary: Delete a Redirect plugin
description: Delete a Redirect plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginRedirect#read
operationId: get-redirect-plugin
summary: Get a Redirect plugin
description: Get a Redirect plugin
responses:
'200':
description: Redirect plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RedirectPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginRedirect#update
operationId: update-redirect-plugin
summary: Update a Redirect plugin
description: Update a Redirect plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RedirectPlugin'
responses:
'200':
description: Redirect plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RedirectPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#RequestSizeLimiting':
delete:
x-speakeasy-entity-operation: PluginRequestSizeLimiting#delete
operationId: delete-requestsizelimiting-plugin
summary: Delete a RequestSizeLimiting plugin
description: Delete a RequestSizeLimiting plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginRequestSizeLimiting#read
operationId: get-requestsizelimiting-plugin
summary: Get a RequestSizeLimiting plugin
description: Get a RequestSizeLimiting plugin
responses:
'200':
description: RequestSizeLimiting plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RequestSizeLimitingPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginRequestSizeLimiting#update
operationId: update-requestsizelimiting-plugin
summary: Update a RequestSizeLimiting plugin
description: Update a RequestSizeLimiting plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RequestSizeLimitingPlugin'
responses:
'200':
description: RequestSizeLimiting plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RequestSizeLimitingPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#RequestTermination':
delete:
x-speakeasy-entity-operation: PluginRequestTermination#delete
operationId: delete-requesttermination-plugin
summary: Delete a RequestTermination plugin
description: Delete a RequestTermination plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginRequestTermination#read
operationId: get-requesttermination-plugin
summary: Get a RequestTermination plugin
description: Get a RequestTermination plugin
responses:
'200':
description: RequestTermination plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RequestTerminationPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginRequestTermination#update
operationId: update-requesttermination-plugin
summary: Update a RequestTermination plugin
description: Update a RequestTermination plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RequestTerminationPlugin'
responses:
'200':
description: RequestTermination plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RequestTerminationPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#RequestTransformer':
delete:
x-speakeasy-entity-operation: PluginRequestTransformer#delete
operationId: delete-requesttransformer-plugin
summary: Delete a RequestTransformer plugin
description: Delete a RequestTransformer plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginRequestTransformer#read
operationId: get-requesttransformer-plugin
summary: Get a RequestTransformer plugin
description: Get a RequestTransformer plugin
responses:
'200':
description: RequestTransformer plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RequestTransformerPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginRequestTransformer#update
operationId: update-requesttransformer-plugin
summary: Update a RequestTransformer plugin
description: Update a RequestTransformer plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RequestTransformerPlugin'
responses:
'200':
description: RequestTransformer plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RequestTransformerPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#RequestTransformerAdvanced':
delete:
x-speakeasy-entity-operation: PluginRequestTransformerAdvanced#delete
operationId: delete-requesttransformeradvanced-plugin
summary: Delete a RequestTransformerAdvanced plugin
description: Delete a RequestTransformerAdvanced plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginRequestTransformerAdvanced#read
operationId: get-requesttransformeradvanced-plugin
summary: Get a RequestTransformerAdvanced plugin
description: Get a RequestTransformerAdvanced plugin
responses:
'200':
description: RequestTransformerAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RequestTransformerAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginRequestTransformerAdvanced#update
operationId: update-requesttransformeradvanced-plugin
summary: Update a RequestTransformerAdvanced plugin
description: Update a RequestTransformerAdvanced plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RequestTransformerAdvancedPlugin'
responses:
'200':
description: RequestTransformerAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RequestTransformerAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#RequestValidator':
delete:
x-speakeasy-entity-operation: PluginRequestValidator#delete
operationId: delete-requestvalidator-plugin
summary: Delete a RequestValidator plugin
description: Delete a RequestValidator plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginRequestValidator#read
operationId: get-requestvalidator-plugin
summary: Get a RequestValidator plugin
description: Get a RequestValidator plugin
responses:
'200':
description: RequestValidator plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RequestValidatorPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginRequestValidator#update
operationId: update-requestvalidator-plugin
summary: Update a RequestValidator plugin
description: Update a RequestValidator plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RequestValidatorPlugin'
responses:
'200':
description: RequestValidator plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RequestValidatorPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#ResponseRatelimiting':
delete:
x-speakeasy-entity-operation: PluginResponseRatelimiting#delete
operationId: delete-responseratelimiting-plugin
summary: Delete a ResponseRatelimiting plugin
description: Delete a ResponseRatelimiting plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginResponseRatelimiting#read
operationId: get-responseratelimiting-plugin
summary: Get a ResponseRatelimiting plugin
description: Get a ResponseRatelimiting plugin
responses:
'200':
description: ResponseRatelimiting plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseRatelimitingPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginResponseRatelimiting#update
operationId: update-responseratelimiting-plugin
summary: Update a ResponseRatelimiting plugin
description: Update a ResponseRatelimiting plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseRatelimitingPlugin'
responses:
'200':
description: ResponseRatelimiting plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseRatelimitingPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#ResponseTransformer':
delete:
x-speakeasy-entity-operation: PluginResponseTransformer#delete
operationId: delete-responsetransformer-plugin
summary: Delete a ResponseTransformer plugin
description: Delete a ResponseTransformer plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginResponseTransformer#read
operationId: get-responsetransformer-plugin
summary: Get a ResponseTransformer plugin
description: Get a ResponseTransformer plugin
responses:
'200':
description: ResponseTransformer plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseTransformerPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginResponseTransformer#update
operationId: update-responsetransformer-plugin
summary: Update a ResponseTransformer plugin
description: Update a ResponseTransformer plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseTransformerPlugin'
responses:
'200':
description: ResponseTransformer plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseTransformerPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#ResponseTransformerAdvanced':
delete:
x-speakeasy-entity-operation: PluginResponseTransformerAdvanced#delete
operationId: delete-responsetransformeradvanced-plugin
summary: Delete a ResponseTransformerAdvanced plugin
description: Delete a ResponseTransformerAdvanced plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginResponseTransformerAdvanced#read
operationId: get-responsetransformeradvanced-plugin
summary: Get a ResponseTransformerAdvanced plugin
description: Get a ResponseTransformerAdvanced plugin
responses:
'200':
description: ResponseTransformerAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseTransformerAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginResponseTransformerAdvanced#update
operationId: update-responsetransformeradvanced-plugin
summary: Update a ResponseTransformerAdvanced plugin
description: Update a ResponseTransformerAdvanced plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseTransformerAdvancedPlugin'
responses:
'200':
description: ResponseTransformerAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseTransformerAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#RouteByHeader':
delete:
x-speakeasy-entity-operation: PluginRouteByHeader#delete
operationId: delete-routebyheader-plugin
summary: Delete a RouteByHeader plugin
description: Delete a RouteByHeader plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginRouteByHeader#read
operationId: get-routebyheader-plugin
summary: Get a RouteByHeader plugin
description: Get a RouteByHeader plugin
responses:
'200':
description: RouteByHeader plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RouteByHeaderPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginRouteByHeader#update
operationId: update-routebyheader-plugin
summary: Update a RouteByHeader plugin
description: Update a RouteByHeader plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RouteByHeaderPlugin'
responses:
'200':
description: RouteByHeader plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RouteByHeaderPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#RouteTransformerAdvanced':
delete:
x-speakeasy-entity-operation: PluginRouteTransformerAdvanced#delete
operationId: delete-routetransformeradvanced-plugin
summary: Delete a RouteTransformerAdvanced plugin
description: Delete a RouteTransformerAdvanced plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginRouteTransformerAdvanced#read
operationId: get-routetransformeradvanced-plugin
summary: Get a RouteTransformerAdvanced plugin
description: Get a RouteTransformerAdvanced plugin
responses:
'200':
description: RouteTransformerAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RouteTransformerAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginRouteTransformerAdvanced#update
operationId: update-routetransformeradvanced-plugin
summary: Update a RouteTransformerAdvanced plugin
description: Update a RouteTransformerAdvanced plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RouteTransformerAdvancedPlugin'
responses:
'200':
description: RouteTransformerAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/RouteTransformerAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#Saml':
delete:
x-speakeasy-entity-operation: PluginSaml#delete
operationId: delete-saml-plugin
summary: Delete a Saml plugin
description: Delete a Saml plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginSaml#read
operationId: get-saml-plugin
summary: Get a Saml plugin
description: Get a Saml plugin
responses:
'200':
description: Saml plugin
content:
application/json:
schema:
$ref: '#/components/schemas/SamlPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginSaml#update
operationId: update-saml-plugin
summary: Update a Saml plugin
description: Update a Saml plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SamlPlugin'
responses:
'200':
description: Saml plugin
content:
application/json:
schema:
$ref: '#/components/schemas/SamlPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#ServiceProtection':
delete:
x-speakeasy-entity-operation: PluginServiceProtection#delete
operationId: delete-serviceprotection-plugin
summary: Delete a ServiceProtection plugin
description: Delete a ServiceProtection plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginServiceProtection#read
operationId: get-serviceprotection-plugin
summary: Get a ServiceProtection plugin
description: Get a ServiceProtection plugin
responses:
'200':
description: ServiceProtection plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceProtectionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginServiceProtection#update
operationId: update-serviceprotection-plugin
summary: Update a ServiceProtection plugin
description: Update a ServiceProtection plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceProtectionPlugin'
responses:
'200':
description: ServiceProtection plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceProtectionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#Session':
delete:
x-speakeasy-entity-operation: PluginSession#delete
operationId: delete-session-plugin
summary: Delete a Session plugin
description: Delete a Session plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginSession#read
operationId: get-session-plugin
summary: Get a Session plugin
description: Get a Session plugin
responses:
'200':
description: Session plugin
content:
application/json:
schema:
$ref: '#/components/schemas/SessionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginSession#update
operationId: update-session-plugin
summary: Update a Session plugin
description: Update a Session plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SessionPlugin'
responses:
'200':
description: Session plugin
content:
application/json:
schema:
$ref: '#/components/schemas/SessionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#StandardWebhooks':
delete:
x-speakeasy-entity-operation: PluginStandardWebhooks#delete
operationId: delete-standardwebhooks-plugin
summary: Delete a StandardWebhooks plugin
description: Delete a StandardWebhooks plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginStandardWebhooks#read
operationId: get-standardwebhooks-plugin
summary: Get a StandardWebhooks plugin
description: Get a StandardWebhooks plugin
responses:
'200':
description: StandardWebhooks plugin
content:
application/json:
schema:
$ref: '#/components/schemas/StandardWebhooksPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginStandardWebhooks#update
operationId: update-standardwebhooks-plugin
summary: Update a StandardWebhooks plugin
description: Update a StandardWebhooks plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StandardWebhooksPlugin'
responses:
'200':
description: StandardWebhooks plugin
content:
application/json:
schema:
$ref: '#/components/schemas/StandardWebhooksPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#Statsd':
delete:
x-speakeasy-entity-operation: PluginStatsd#delete
operationId: delete-statsd-plugin
summary: Delete a Statsd plugin
description: Delete a Statsd plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginStatsd#read
operationId: get-statsd-plugin
summary: Get a Statsd plugin
description: Get a Statsd plugin
responses:
'200':
description: Statsd plugin
content:
application/json:
schema:
$ref: '#/components/schemas/StatsdPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginStatsd#update
operationId: update-statsd-plugin
summary: Update a Statsd plugin
description: Update a Statsd plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StatsdPlugin'
responses:
'200':
description: Statsd plugin
content:
application/json:
schema:
$ref: '#/components/schemas/StatsdPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#StatsdAdvanced':
delete:
x-speakeasy-entity-operation: PluginStatsdAdvanced#delete
operationId: delete-statsdadvanced-plugin
summary: Delete a StatsdAdvanced plugin
description: Delete a StatsdAdvanced plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginStatsdAdvanced#read
operationId: get-statsdadvanced-plugin
summary: Get a StatsdAdvanced plugin
description: Get a StatsdAdvanced plugin
responses:
'200':
description: StatsdAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/StatsdAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginStatsdAdvanced#update
operationId: update-statsdadvanced-plugin
summary: Update a StatsdAdvanced plugin
description: Update a StatsdAdvanced plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StatsdAdvancedPlugin'
responses:
'200':
description: StatsdAdvanced plugin
content:
application/json:
schema:
$ref: '#/components/schemas/StatsdAdvancedPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#Syslog':
delete:
x-speakeasy-entity-operation: PluginSyslog#delete
operationId: delete-syslog-plugin
summary: Delete a Syslog plugin
description: Delete a Syslog plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginSyslog#read
operationId: get-syslog-plugin
summary: Get a Syslog plugin
description: Get a Syslog plugin
responses:
'200':
description: Syslog plugin
content:
application/json:
schema:
$ref: '#/components/schemas/SyslogPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginSyslog#update
operationId: update-syslog-plugin
summary: Update a Syslog plugin
description: Update a Syslog plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SyslogPlugin'
responses:
'200':
description: Syslog plugin
content:
application/json:
schema:
$ref: '#/components/schemas/SyslogPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#TcpLog':
delete:
x-speakeasy-entity-operation: PluginTcpLog#delete
operationId: delete-tcplog-plugin
summary: Delete a TcpLog plugin
description: Delete a TcpLog plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginTcpLog#read
operationId: get-tcplog-plugin
summary: Get a TcpLog plugin
description: Get a TcpLog plugin
responses:
'200':
description: TcpLog plugin
content:
application/json:
schema:
$ref: '#/components/schemas/TcpLogPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginTcpLog#update
operationId: update-tcplog-plugin
summary: Update a TcpLog plugin
description: Update a TcpLog plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TcpLogPlugin'
responses:
'200':
description: TcpLog plugin
content:
application/json:
schema:
$ref: '#/components/schemas/TcpLogPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#TlsHandshakeModifier':
delete:
x-speakeasy-entity-operation: PluginTlsHandshakeModifier#delete
operationId: delete-tlshandshakemodifier-plugin
summary: Delete a TlsHandshakeModifier plugin
description: Delete a TlsHandshakeModifier plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginTlsHandshakeModifier#read
operationId: get-tlshandshakemodifier-plugin
summary: Get a TlsHandshakeModifier plugin
description: Get a TlsHandshakeModifier plugin
responses:
'200':
description: TlsHandshakeModifier plugin
content:
application/json:
schema:
$ref: '#/components/schemas/TlsHandshakeModifierPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginTlsHandshakeModifier#update
operationId: update-tlshandshakemodifier-plugin
summary: Update a TlsHandshakeModifier plugin
description: Update a TlsHandshakeModifier plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TlsHandshakeModifierPlugin'
responses:
'200':
description: TlsHandshakeModifier plugin
content:
application/json:
schema:
$ref: '#/components/schemas/TlsHandshakeModifierPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#TlsMetadataHeaders':
delete:
x-speakeasy-entity-operation: PluginTlsMetadataHeaders#delete
operationId: delete-tlsmetadataheaders-plugin
summary: Delete a TlsMetadataHeaders plugin
description: Delete a TlsMetadataHeaders plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginTlsMetadataHeaders#read
operationId: get-tlsmetadataheaders-plugin
summary: Get a TlsMetadataHeaders plugin
description: Get a TlsMetadataHeaders plugin
responses:
'200':
description: TlsMetadataHeaders plugin
content:
application/json:
schema:
$ref: '#/components/schemas/TlsMetadataHeadersPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginTlsMetadataHeaders#update
operationId: update-tlsmetadataheaders-plugin
summary: Update a TlsMetadataHeaders plugin
description: Update a TlsMetadataHeaders plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TlsMetadataHeadersPlugin'
responses:
'200':
description: TlsMetadataHeaders plugin
content:
application/json:
schema:
$ref: '#/components/schemas/TlsMetadataHeadersPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#UdpLog':
delete:
x-speakeasy-entity-operation: PluginUdpLog#delete
operationId: delete-udplog-plugin
summary: Delete a UdpLog plugin
description: Delete a UdpLog plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginUdpLog#read
operationId: get-udplog-plugin
summary: Get a UdpLog plugin
description: Get a UdpLog plugin
responses:
'200':
description: UdpLog plugin
content:
application/json:
schema:
$ref: '#/components/schemas/UdpLogPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginUdpLog#update
operationId: update-udplog-plugin
summary: Update a UdpLog plugin
description: Update a UdpLog plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UdpLogPlugin'
responses:
'200':
description: UdpLog plugin
content:
application/json:
schema:
$ref: '#/components/schemas/UdpLogPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#UpstreamOauth':
delete:
x-speakeasy-entity-operation: PluginUpstreamOauth#delete
operationId: delete-upstreamoauth-plugin
summary: Delete a UpstreamOauth plugin
description: Delete a UpstreamOauth plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginUpstreamOauth#read
operationId: get-upstreamoauth-plugin
summary: Get a UpstreamOauth plugin
description: Get a UpstreamOauth plugin
responses:
'200':
description: UpstreamOauth plugin
content:
application/json:
schema:
$ref: '#/components/schemas/UpstreamOauthPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginUpstreamOauth#update
operationId: update-upstreamoauth-plugin
summary: Update a UpstreamOauth plugin
description: Update a UpstreamOauth plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpstreamOauthPlugin'
responses:
'200':
description: UpstreamOauth plugin
content:
application/json:
schema:
$ref: '#/components/schemas/UpstreamOauthPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#UpstreamTimeout':
delete:
x-speakeasy-entity-operation: PluginUpstreamTimeout#delete
operationId: delete-upstreamtimeout-plugin
summary: Delete a UpstreamTimeout plugin
description: Delete a UpstreamTimeout plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginUpstreamTimeout#read
operationId: get-upstreamtimeout-plugin
summary: Get a UpstreamTimeout plugin
description: Get a UpstreamTimeout plugin
responses:
'200':
description: UpstreamTimeout plugin
content:
application/json:
schema:
$ref: '#/components/schemas/UpstreamTimeoutPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginUpstreamTimeout#update
operationId: update-upstreamtimeout-plugin
summary: Update a UpstreamTimeout plugin
description: Update a UpstreamTimeout plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpstreamTimeoutPlugin'
responses:
'200':
description: UpstreamTimeout plugin
content:
application/json:
schema:
$ref: '#/components/schemas/UpstreamTimeoutPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#VaultAuth':
delete:
x-speakeasy-entity-operation: PluginVaultAuth#delete
operationId: delete-vaultauth-plugin
summary: Delete a VaultAuth plugin
description: Delete a VaultAuth plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginVaultAuth#read
operationId: get-vaultauth-plugin
summary: Get a VaultAuth plugin
description: Get a VaultAuth plugin
responses:
'200':
description: VaultAuth plugin
content:
application/json:
schema:
$ref: '#/components/schemas/VaultAuthPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginVaultAuth#update
operationId: update-vaultauth-plugin
summary: Update a VaultAuth plugin
description: Update a VaultAuth plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/VaultAuthPlugin'
responses:
'200':
description: VaultAuth plugin
content:
application/json:
schema:
$ref: '#/components/schemas/VaultAuthPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#WebsocketSizeLimit':
delete:
x-speakeasy-entity-operation: PluginWebsocketSizeLimit#delete
operationId: delete-websocketsizelimit-plugin
summary: Delete a WebsocketSizeLimit plugin
description: Delete a WebsocketSizeLimit plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginWebsocketSizeLimit#read
operationId: get-websocketsizelimit-plugin
summary: Get a WebsocketSizeLimit plugin
description: Get a WebsocketSizeLimit plugin
responses:
'200':
description: WebsocketSizeLimit plugin
content:
application/json:
schema:
$ref: '#/components/schemas/WebsocketSizeLimitPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginWebsocketSizeLimit#update
operationId: update-websocketsizelimit-plugin
summary: Update a WebsocketSizeLimit plugin
description: Update a WebsocketSizeLimit plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/WebsocketSizeLimitPlugin'
responses:
'200':
description: WebsocketSizeLimit plugin
content:
application/json:
schema:
$ref: '#/components/schemas/WebsocketSizeLimitPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#WebsocketValidator':
delete:
x-speakeasy-entity-operation: PluginWebsocketValidator#delete
operationId: delete-websocketvalidator-plugin
summary: Delete a WebsocketValidator plugin
description: Delete a WebsocketValidator plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginWebsocketValidator#read
operationId: get-websocketvalidator-plugin
summary: Get a WebsocketValidator plugin
description: Get a WebsocketValidator plugin
responses:
'200':
description: WebsocketValidator plugin
content:
application/json:
schema:
$ref: '#/components/schemas/WebsocketValidatorPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginWebsocketValidator#update
operationId: update-websocketvalidator-plugin
summary: Update a WebsocketValidator plugin
description: Update a WebsocketValidator plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/WebsocketValidatorPlugin'
responses:
'200':
description: WebsocketValidator plugin
content:
application/json:
schema:
$ref: '#/components/schemas/WebsocketValidatorPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#XmlThreatProtection':
delete:
x-speakeasy-entity-operation: PluginXmlThreatProtection#delete
operationId: delete-xmlthreatprotection-plugin
summary: Delete a XmlThreatProtection plugin
description: Delete a XmlThreatProtection plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginXmlThreatProtection#read
operationId: get-xmlthreatprotection-plugin
summary: Get a XmlThreatProtection plugin
description: Get a XmlThreatProtection plugin
responses:
'200':
description: XmlThreatProtection plugin
content:
application/json:
schema:
$ref: '#/components/schemas/XmlThreatProtectionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginXmlThreatProtection#update
operationId: update-xmlthreatprotection-plugin
summary: Update a XmlThreatProtection plugin
description: Update a XmlThreatProtection plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/XmlThreatProtectionPlugin'
responses:
'200':
description: XmlThreatProtection plugin
content:
application/json:
schema:
$ref: '#/components/schemas/XmlThreatProtectionPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
'/plugins/{PluginId}#Zipkin':
delete:
x-speakeasy-entity-operation: PluginZipkin#delete
operationId: delete-zipkin-plugin
summary: Delete a Zipkin plugin
description: Delete a Zipkin plugin
responses:
'204':
description: Successfully deleted Plugin or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
get:
x-speakeasy-entity-operation: PluginZipkin#read
operationId: get-zipkin-plugin
summary: Get a Zipkin plugin
description: Get a Zipkin plugin
responses:
'200':
description: Zipkin plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ZipkinPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Plugins
parameters:
- $ref: '#/components/parameters/PluginId'
put:
x-speakeasy-entity-operation: PluginZipkin#update
operationId: update-zipkin-plugin
summary: Update a Zipkin plugin
description: Update a Zipkin plugin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ZipkinPlugin'
responses:
'200':
description: Zipkin plugin
content:
application/json:
schema:
$ref: '#/components/schemas/ZipkinPlugin'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Plugins
/routes:
post:
x-speakeasy-entity-operation: Route#create
operationId: create-route
summary: Create a new Route
description: Create a new Route
requestBody:
description: Description of the new Route for creation
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RouteJson'
responses:
'201':
description: Successfully created Route
content:
application/json:
schema:
$ref: '#/components/schemas/RouteJson'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Routes
/routes#RouteExpression:
post:
x-speakeasy-entity-operation: RouteExpression#create
operationId: create-route-RouteExpression
summary: Create a new Route
description: Create a new Route
requestBody:
description: Description of the new Route for creation
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RouteExpression'
responses:
'201':
description: Successfully created Route
content:
application/json:
schema:
$ref: '#/components/schemas/RouteExpression'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Routes
'/routes/{RouteIdOrName}':
delete:
x-speakeasy-entity-operation: Route#delete
operationId: delete-route
summary: Delete a Route
description: Delete a Route
parameters:
- $ref: '#/components/parameters/RouteIdOrName'
responses:
'204':
description: Successfully deleted Route or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Routes
get:
x-speakeasy-entity-operation: Route#read
operationId: get-route
summary: Fetch a Route
description: Get a Route using ID or name.
responses:
'200':
description: Successfully fetched Route
content:
application/json:
schema:
$ref: '#/components/schemas/RouteJson'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Routes
parameters:
- $ref: '#/components/parameters/RouteIdOrName'
put:
x-speakeasy-entity-operation: Route#update
operationId: upsert-route
summary: Upsert a Route
description: Create or Update Route using ID or name.
requestBody:
description: Description of the Route
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RouteJson'
responses:
'200':
description: Successfully upserted Route
content:
application/json:
schema:
$ref: '#/components/schemas/RouteJson'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Routes
'/routes/{RouteIdOrName}#RouteExpression':
delete:
x-speakeasy-entity-operation: RouteExpression#delete
operationId: delete-route-RouteExpression
summary: Delete a Route
description: Delete a Route
parameters:
- $ref: '#/components/parameters/RouteIdOrName'
responses:
'204':
description: Successfully deleted Route or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Routes
get:
x-speakeasy-entity-operation: RouteExpression#read
operationId: get-route-RouteExpression
summary: Fetch a Route
description: Get a Route using ID or name.
responses:
'200':
description: Successfully fetched Route
content:
application/json:
schema:
$ref: '#/components/schemas/RouteExpression'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Routes
parameters:
- $ref: '#/components/parameters/RouteIdOrName'
put:
x-speakeasy-entity-operation: RouteExpression#update
operationId: upsert-route-RouteExpression
summary: Upsert a Route
description: Create or Update Route using ID or name.
requestBody:
description: Description of the Route
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RouteExpression'
responses:
'200':
description: Successfully upserted Route
content:
application/json:
schema:
$ref: '#/components/schemas/RouteExpression'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Routes
'/schemas/plugins/{pluginName}':
parameters:
- name: pluginName
in: path
description: The name of the plugin
required: true
schema:
type: string
/services:
post:
x-speakeasy-entity-operation: Service#create
operationId: create-service
summary: Create a new Service
description: Create a new Service
requestBody:
description: Description of the new Service for creation
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Service'
responses:
'201':
description: Successfully created Service
content:
application/json:
schema:
$ref: '#/components/schemas/Service'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Services
'/services/{ServiceIdOrName}':
delete:
x-speakeasy-entity-operation: Service#delete
operationId: delete-service
summary: Delete a Service
description: Delete a Service
parameters:
- $ref: '#/components/parameters/ServiceIdOrName'
responses:
'204':
description: Successfully deleted Service or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Services
get:
x-speakeasy-entity-operation: Service#read
operationId: get-service
summary: Fetch a Service
description: Get a Service using ID or name.
responses:
'200':
description: Successfully fetched Service
content:
application/json:
schema:
$ref: '#/components/schemas/Service'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Services
parameters:
- $ref: '#/components/parameters/ServiceIdOrName'
put:
x-speakeasy-entity-operation: Service#update
operationId: upsert-service
summary: Upsert a Service
description: Create or Update Service using ID or name.
requestBody:
description: Description of the Service
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Service'
responses:
'200':
description: Successfully upserted Service
content:
application/json:
schema:
$ref: '#/components/schemas/Service'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Services
/snis:
post:
x-speakeasy-entity-operation: SNI#create
operationId: create-sni
summary: Create a new SNI
description: Create a new SNI
requestBody:
description: Description of the new SNI for creation
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SNI'
responses:
'201':
description: Successfully created SNI
content:
application/json:
schema:
$ref: '#/components/schemas/SNI'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- SNIs
'/snis/{SNIIdOrName}':
delete:
x-speakeasy-entity-operation: SNI#delete
operationId: delete-sni
summary: Delete an SNI
description: Delete an SNI
parameters:
- $ref: '#/components/parameters/SNIIdOrName'
responses:
'204':
description: Successfully deleted SNI or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- SNIs
get:
x-speakeasy-entity-operation: SNI#read
operationId: get-sni
summary: Fetch an SNI
description: Get an SNI using ID or name.
responses:
'200':
description: Successfully fetched SNI
content:
application/json:
schema:
$ref: '#/components/schemas/SNI'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- SNIs
parameters:
- $ref: '#/components/parameters/SNIIdOrName'
put:
x-speakeasy-entity-operation: SNI#update
operationId: upsert-sni
summary: Upsert a SNI
description: Create or Update SNI using ID or name.
requestBody:
description: Description of the SNI
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SNI'
responses:
'200':
description: Successfully upserted SNI
content:
application/json:
schema:
$ref: '#/components/schemas/SNI'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- SNIs
/upstreams:
post:
x-speakeasy-entity-operation: Upstream#create
operationId: create-upstream
summary: Create a new Upstream
description: Create a new Upstream
requestBody:
description: Description of the new Upstream for creation
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Upstream'
responses:
'201':
description: Successfully created Upstream
content:
application/json:
schema:
$ref: '#/components/schemas/Upstream'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Upstreams
'/upstreams/{UpstreamIdForTarget}/targets':
post:
x-speakeasy-entity-operation: Target#create
operationId: create-target-with-upstream
summary: Create a new Target associated with an Upstream
description: Create a new Target associated with an Upstream
parameters:
- $ref: '#/components/parameters/UpstreamIdForTarget'
requestBody:
description: Description of new Target for creation
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TargetWithoutParents'
responses:
'201':
description: Successfully created Target
content:
application/json:
schema:
$ref: '#/components/schemas/Target'
tags:
- Targets
'/upstreams/{UpstreamIdForTarget}/targets/{TargetIdOrTarget}':
delete:
x-speakeasy-entity-operation: Target#delete
operationId: delete-target-with-upstream
summary: Delete a a Target associated with an Upstream
description: Delete a a Target associated with an Upstream using ID or target.
parameters:
- $ref: '#/components/parameters/UpstreamIdForTarget'
- $ref: '#/components/parameters/TargetIdOrTarget'
responses:
'204':
description: Successfully deleted Target or the resource didn't exist
tags:
- Targets
get:
x-speakeasy-entity-operation: Target#read
operationId: get-target-with-upstream
summary: Fetch a Target associated with an Upstream
description: Get a Target associated with an Upstream using ID or target.
parameters:
- $ref: '#/components/parameters/UpstreamIdForTarget'
- $ref: '#/components/parameters/TargetIdOrTarget'
responses:
'200':
description: Successfully fetched Target
content:
application/json:
schema:
$ref: '#/components/schemas/Target'
'404':
description: Resource does not exist
tags:
- Targets
patch:
x-speakeasy-entity-operation: Target#update
operationId: update-target-with-upstream
summary: Update a a Target associated with an Upstream
description: Update a a Target associated with an Upstream using ID or target.
parameters:
- $ref: '#/components/parameters/UpstreamIdForTarget'
- $ref: '#/components/parameters/TargetIdOrTarget'
requestBody:
description: Fields of the Target that need to be updated
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Target'
responses:
'200':
description: Successfully updated Target
content:
application/json:
schema:
$ref: '#/components/schemas/Target'
'404':
description: Resource does not exist
tags:
- Targets
'/upstreams/{UpstreamIdOrName}':
delete:
x-speakeasy-entity-operation: Upstream#delete
operationId: delete-upstream
summary: Delete an Upstream
description: Delete an Upstream
parameters:
- $ref: '#/components/parameters/UpstreamIdOrName'
responses:
'204':
description: Successfully deleted Upstream or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Upstreams
get:
x-speakeasy-entity-operation: Upstream#read
operationId: get-upstream
summary: Fetch an Upstream
description: Get an Upstream using ID or name.
responses:
'200':
description: Successfully fetched Upstream
content:
application/json:
schema:
$ref: '#/components/schemas/Upstream'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Upstreams
parameters:
- $ref: '#/components/parameters/UpstreamIdOrName'
put:
x-speakeasy-entity-operation: Upstream#update
operationId: upsert-upstream
summary: Upsert a Upstream
description: Create or Update Upstream using ID or name.
requestBody:
description: Description of the Upstream
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Upstream'
responses:
'200':
description: Successfully upserted Upstream
content:
application/json:
schema:
$ref: '#/components/schemas/Upstream'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Upstreams
/vaults:
post:
x-speakeasy-entity-operation: Vault#create
operationId: create-vault
summary: Create a new Vault
description: Create a new Vault
requestBody:
description: Description of the new Vault for creation
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Vault'
responses:
'201':
description: Successfully created Vault
content:
application/json:
schema:
$ref: '#/components/schemas/Vault'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Vaults
'/vaults/{VaultIdOrPrefix}':
delete:
x-speakeasy-entity-operation: Vault#delete
operationId: delete-vault
summary: Delete a Vault
description: Delete a Vault
parameters:
- $ref: '#/components/parameters/VaultIdOrPrefix'
responses:
'204':
description: Successfully deleted Vault or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Vaults
get:
x-speakeasy-entity-operation: Vault#read
operationId: get-vault
summary: Fetch a Vault
description: Get a Vault using ID or prefix.
responses:
'200':
description: Successfully fetched Vault
content:
application/json:
schema:
$ref: '#/components/schemas/Vault'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Vaults
parameters:
- $ref: '#/components/parameters/VaultIdOrPrefix'
put:
x-speakeasy-entity-operation: Vault#update
operationId: upsert-vault
summary: Upsert a Vault
description: Create or Update Vault using ID or prefix.
requestBody:
description: Description of the Vault
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Vault'
responses:
'200':
description: Successfully upserted Vault
content:
application/json:
schema:
$ref: '#/components/schemas/Vault'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Vaults
'/workspace_/groups/{groups}':
parameters:
- name: groups
in: path
required: true
schema:
type: string
'/workspace_/groups/{groups}/roles':
parameters:
- name: groups
in: path
required: true
schema:
type: string
components:
parameters:
ACLId:
description: ID of the ACL to lookup
example: f28acbfa-c866-4587-b688-0208ac24df21
in: path
name: ACLId
required: true
schema:
type: string
x-speakeasy-match: id
BasicAuthId:
description: ID of the Basic-auth credential to lookup
example: 80db1b58-ca7c-4d21-b92a-64eb07725872
in: path
name: BasicAuthId
required: true
schema:
type: string
x-speakeasy-match: id
CACertificateId:
description: ID of the CA Certificate to lookup
example: 3c31f18a-f27a-4f9b-8cd4-bf841554612f
in: path
name: CACertificateId
required: true
schema:
type: string
x-speakeasy-match: id
CertificateId:
description: ID of the Certificate to lookup
example: ddf3cdaa-3329-4961-822a-ce6dbd38eff7
in: path
name: CertificateId
required: true
schema:
type: string
x-speakeasy-match: id
ConsumerGroupId:
description: ID of the Consumer Group to lookup
example: ''
in: path
name: ConsumerGroupId
required: true
schema:
type: string
x-speakeasy-match: id
ConsumerGroupIdManageConsumers:
in: path
name: ConsumerGroupId
required: true
schema:
type: string
x-speakeasy-name-override: consumer_group_id
ConsumerIdForNestedEntities:
description: Consumer ID for nested entities
example: f28acbfa-c866-4587-b688-0208ac24df21
in: path
name: ConsumerIdForNestedEntities
required: true
schema:
type: string
x-speakeasy-name-override: consumer_id
ConsumerIdOrUsername:
description: ID or username of the Consumer to lookup
example: c1059869-6fa7-4329-a5f5-5946d14ca2c5
in: path
name: ConsumerIdOrUsername
required: true
schema:
type: string
x-speakeasy-match: id
CustomPluginIdOrName:
description: ID or name of the CustomPlugin to lookup
example: ''
in: path
name: CustomPluginIdOrName
required: true
schema:
type: string
x-speakeasy-match: id
HMACAuthId:
description: ID of the HMAC-auth credential to lookup
example: 70e7b00b-72f2-471b-a5ce-9c4171775360
in: path
name: HMACAuthId
required: true
schema:
type: string
x-speakeasy-match: id
JWTId:
description: ID of the JWT to lookup
example: 4a7f5faa-8c96-46d6-8214-c87573ef2ac4
in: path
name: JWTId
required: true
schema:
type: string
x-speakeasy-match: id
KeyAuthId:
description: ID of the API-key to lookup
example: ''
in: path
name: KeyAuthId
required: true
schema:
type: string
x-speakeasy-match: id
KeyIdOrName:
description: ID or name of the Key to lookup
example: bba22c06-a632-42be-a018-1b9ff357b5b9
in: path
name: KeyIdOrName
required: true
schema:
type: string
x-speakeasy-match: id
KeySetIdOrName:
description: ID or name of the KeySet to lookup
example: 6cc34248-50b4-4a81-9201-3bdf7a83f712
in: path
name: KeySetIdOrName
required: true
schema:
type: string
x-speakeasy-match: id
MTLSAuthId:
description: ID of the MTLS-auth credential to lookup
example: ''
in: path
name: MTLSAuthId
required: true
schema:
type: string
x-speakeasy-match: id
OidcJwkId:
description: ID of the OIDC JWK to lookup
example: ''
in: path
name: OidcJwkId
required: true
schema:
type: string
x-speakeasy-match: id
PartialId:
description: ID of the Partial to lookup
example: ''
in: path
name: PartialId
required: true
schema:
type: string
x-speakeasy-match: id
PluginId:
description: ID of the Plugin to lookup
example: 3473c251-5b6c-4f45-b1ff-7ede735a366d
in: path
name: PluginId
required: true
schema:
type: string
x-speakeasy-match: id
RouteIdOrName:
description: ID or name of the Route to lookup
example: a4326a41-aa12-44e3-93e4-6b6e58bfb9d7
in: path
name: RouteIdOrName
required: true
schema:
type: string
x-speakeasy-match: id
SNIIdOrName:
description: ID or name of the SNI to lookup
example: 64c17a1a-b7d7-4a65-a5a4-42e4a7016e7f
in: path
name: SNIIdOrName
required: true
schema:
type: string
x-speakeasy-match: id
ServiceIdOrName:
description: ID or name of the Service to lookup
example: 7fca84d6-7d37-4a74-a7b0-93e576089a41
in: path
name: ServiceIdOrName
required: true
schema:
type: string
x-speakeasy-match: id
TargetIdOrTarget:
description: ID or target of the Target to lookup
example: 5a078780-5d4c-4aae-984a-bdc6f52113d8
in: path
name: TargetIdOrTarget
required: true
schema:
type: string
x-speakeasy-match: id
UpstreamIdForTarget:
description: ID or target of the Target to lookup
example: 5a078780-5d4c-4aae-984a-bdc6f52113d8
in: path
name: UpstreamIdForTarget
required: true
schema:
type: string
x-speakeasy-name-override: upstream_id
UpstreamIdOrName:
description: ID or name of the Upstream to lookup
example: 426d620c-7058-4ae6-aacc-f85a3204a2c5
in: path
name: UpstreamIdOrName
required: true
schema:
type: string
x-speakeasy-match: id
VaultIdOrPrefix:
description: ID or prefix of the Vault to lookup
example: 9d4d6d19-77c6-428e-a965-9bc9647633e9
in: path
name: VaultIdOrPrefix
required: true
schema:
type: string
x-speakeasy-match: id
schemas:
ACL:
x-speakeasy-entity: ACL
type: object
properties:
consumer:
type: object
nullable: true
properties:
id:
type: string
x-foreign: true
created_at:
description: Unix epoch when the resource was created.
type: integer
nullable: true
group:
type: string
id:
type: string
nullable: true
tags:
type: array
items:
type: string
example:
consumer:
id: 84a73fb8-50fc-44a7-a4d5-aa17728ee83f
group: foo
id: b1f34145-0343-41a4-9602-4c69dec2f269
additionalProperties: false
required:
- group
ACLPlugin:
x-speakeasy-entity: PluginACL
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/ACLPluginConfig'
ACLPluginConfig:
properties:
config:
type: object
properties:
allow:
description: Arbitrary group names that are allowed to consume the service or route. One of `config.allow` or `config.deny` must be specified.
type: array
items:
type: string
always_use_authenticated_groups:
description: 'If enabled (`true`), the authenticated groups will always be used even when an authenticated consumer already exists. If the authenticated groups don''t exist, it will fallback to use the groups associated with the consumer. By default the authenticated groups will only be used when there is no consumer or the consumer is anonymous.'
type: boolean
default: false
deny:
description: Arbitrary group names that are not allowed to consume the service or route. One of `config.allow` or `config.deny` must be specified.
type: array
items:
type: string
hide_groups_header:
description: 'If enabled (`true`), prevents the `X-Consumer-Groups` header from being sent in the request to the upstream service.'
type: boolean
default: false
include_consumer_groups:
description: 'If enabled (`true`), allows the consumer-groups to be used in the `allow|deny` fields'
type: boolean
default: false
name:
type: string
const: acl
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
ACLWithoutParents:
x-speakeasy-entity: ACL
type: object
properties:
consumer:
type: object
nullable: true
properties:
id:
type: string
x-foreign: true
created_at:
description: Unix epoch when the resource was created.
type: integer
nullable: true
group:
type: string
id:
type: string
nullable: true
tags:
type: array
items:
type: string
example:
group: foo
id: b1f34145-0343-41a4-9602-4c69dec2f269
additionalProperties: false
required:
- group
AcmePlugin:
x-speakeasy-entity: PluginAcme
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/AcmePluginConfig'
AcmePluginConfig:
properties:
config:
type: object
properties:
account_email:
description: The account identifier. Can be reused in a different plugin instance.
type: string
pattern: '[a-zA-Z0-9]*[!-/:-@[-`{-~]*@+[a-zA-Z0-9]*%.?[a-zA-Z0-9]*'
account_key:
description: The private key associated with the account.
type: object
properties:
key_id:
description: The Key ID.
type: string
key_set:
description: The ID of the key set to associate the Key ID with.
type: string
required:
- key_id
allow_any_domain:
description: 'If set to `true`, the plugin allows all domains and ignores any values in the `domains` list.'
type: boolean
default: false
api_uri:
description: 'A string representing a URL, such as https://example.com/path/to/resource?q=search.'
type: string
default: 'https://acme-v02.api.letsencrypt.org/directory'
cert_type:
description: The certificate type to create. The possible values are `rsa` for RSA certificate or `ecc` for EC certificate.
type: string
default: rsa
enum:
- ecc
- rsa
domains:
description: 'An array of strings representing hosts. A valid host is a string containing one or more labels separated by periods, with at most one wildcard label (''*'')'
type: array
items:
match_all:
pattern: '^[^*]*%*?[^*]*$'
match_any:
patterns:
- '%.%*$'
- ^%*%.
- '^[^*]*$'
type: string
eab_hmac_key:
description: External account binding (EAB) base64-encoded URL string of the HMAC key. You usually don't need to set this unless it is explicitly required by the CA.
type: string
eab_kid:
description: External account binding (EAB) key id. You usually don't need to set this unless it is explicitly required by the CA.
type: string
enable_ipv4_common_name:
description: A boolean value that controls whether to include the IPv4 address in the common name field of generated certificates.
type: boolean
default: true
fail_backoff_minutes:
description: |-
Minutes to wait for each domain that fails to create a certificate. This applies to both a
new certificate and a renewal certificate.
type: number
default: 5
preferred_chain:
description: A string value that specifies the preferred certificate chain to use when generating certificates.
type: string
renew_threshold_days:
description: Days remaining to renew the certificate before it expires.
type: number
default: 14
rsa_key_size:
description: 'RSA private key size for the certificate. The possible values are 2048, 3072, or 4096.'
type: integer
default: 4096
enum:
- 2048
- 3072
- 4096
storage:
description: 'The backend storage type to use. In DB-less mode and Konnect, `kong` storage is unavailable. In hybrid mode and Konnect, `shm` storage is unavailable. `shm` storage does not persist during Kong restarts and does not work for Kong running on different machines, so consider using one of `kong`, `redis`, `consul`, or `vault` in production.'
type: string
default: shm
enum:
- consul
- kong
- redis
- shm
- vault
storage_config:
type: object
properties:
consul:
type: object
properties:
host:
description: 'A string representing a host name, such as example.com.'
type: string
https:
description: Boolean representation of https.
type: boolean
default: false
kv_path:
description: KV prefix path.
type: string
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
maximum: 65535
minimum: 0
timeout:
description: Timeout in milliseconds.
type: number
token:
description: Consul ACL token.
type: string
kong:
type: object
additionalProperties: true
redis:
type: object
properties:
database:
description: Database to use for the Redis connection when using the `redis` strategy
type: integer
default: 0
extra_options:
description: Custom ACME Redis options
type: object
properties:
namespace:
description: A namespace to prepend to all keys stored in Redis.
type: string
default: ''
scan_count:
description: The number of keys to return in Redis SCAN calls.
type: number
default: 10
host:
description: 'A string representing a host name, such as example.com.'
type: string
password:
description: 'Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis.'
type: string
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
server_name:
description: A string representing an SNI (server name indication) value for TLS.
type: string
ssl:
description: 'If set to true, uses SSL to connect to Redis.'
type: boolean
default: false
ssl_verify:
description: 'If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly.'
type: boolean
default: false
timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
username:
description: 'Username to use for Redis connections. If undefined, ACL authentication won''t be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`.'
type: string
shorthand_fields:
auth:
minLength: 0
type: string
namespace:
minLength: 0
type: string
scan_count:
type: integer
ssl_server_name:
type: string
shm:
type: object
properties:
shm_name:
description: Name of shared memory zone used for Kong API gateway storage
type: string
default: kong
vault:
type: object
properties:
auth_method:
description: 'Auth Method, default to token, can be ''token'' or ''kubernetes''.'
type: string
default: token
enum:
- kubernetes
- token
auth_path:
description: Vault's authentication path to use.
type: string
auth_role:
description: The role to try and assign.
type: string
host:
description: 'A string representing a host name, such as example.com.'
type: string
https:
description: Boolean representation of https.
type: boolean
default: false
jwt_path:
description: The path to the JWT.
type: string
kv_path:
description: KV prefix path.
type: string
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
maximum: 65535
minimum: 0
timeout:
description: Timeout in milliseconds.
type: number
tls_server_name:
description: 'SNI used in request, default to host if omitted.'
type: string
tls_verify:
description: Turn on TLS verification.
type: boolean
default: true
token:
description: Consul ACL token.
type: string
tos_accepted:
description: 'If you are using Let''s Encrypt, you must set this to `true` to agree the terms of service.'
type: boolean
default: false
name:
type: string
const: acme
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
AiAzureContentSafetyPlugin:
x-speakeasy-entity: PluginAiAzureContentSafety
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/AiAzureContentSafetyPluginConfig'
AiAzureContentSafetyPluginConfig:
properties:
config:
type: object
properties:
azure_api_version:
description: 'Sets the ?api-version URL parameter, used for defining the Azure Content Services interchange format.'
type: string
default: '2023-10-01'
minLength: 1
azure_client_id:
description: 'If `azure_use_managed_identity` is true, set the client ID if required.'
type: string
azure_client_secret:
description: 'If `azure_use_managed_identity` is true, set the client secret if required.'
type: string
azure_tenant_id:
description: 'If `azure_use_managed_identity` is true, set the tenant ID if required.'
type: string
azure_use_managed_identity:
description: 'If checked, uses (if set) `azure_client_id`, `azure_client_secret`, and/or `azure_tenant_id` for Azure authentication, via Managed or User-assigned identity'
type: boolean
default: false
blocklist_names:
description: Use these configured blocklists (in Azure Content Services) when inspecting content.
type: array
items:
type: string
categories:
description: 'Array of categories, and their thresholds, to measure on.'
type: array
items:
properties:
name:
type: string
rejection_level:
type: integer
required:
- name
- rejection_level
type: object
content_safety_key:
description: 'If `azure_use_managed_identity` is true, set the API key to call Content Safety.'
type: string
content_safety_url:
description: 'Full URL, inc protocol, of the Azure Content Safety instance.'
type: string
halt_on_blocklist_hit:
description: Tells Azure to reject the request if any blocklist filter is hit.
type: boolean
default: true
output_type:
description: 'See https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/content-filter#content-filtering-categories'
type: string
default: FourSeverityLevels
enum:
- EightSeverityLevels
- FourSeverityLevels
reveal_failure_reason:
description: 'Set true to tell the caller why their request was rejected, if so.'
type: boolean
default: true
text_source:
description: Select where to pick the 'text' for the Azure Content Services request.
type: string
default: concatenate_all_content
enum:
- concatenate_all_content
- concatenate_user_content
name:
type: string
const: ai-azure-content-safety
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
AiPromptDecoratorPlugin:
x-speakeasy-entity: PluginAiPromptDecorator
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/AiPromptDecoratorPluginConfig'
AiPromptDecoratorPluginConfig:
properties:
config:
type: object
properties:
max_request_body_size:
description: max allowed body size allowed to be introspected
type: integer
default: 8192
minimum: 0
prompts:
type: object
properties:
append:
description: Insert chat messages at the end of the chat message array. This array preserves exact order when adding messages.
type: array
items:
properties:
content:
maxLength: 500
minLength: 1
type: string
role:
type: string
default: system
enum:
- assistant
- system
- user
required:
- content
type: object
maxLength: 15
prepend:
description: Insert chat messages at the beginning of the chat message array. This array preserves exact order when adding messages.
type: array
items:
properties:
content:
maxLength: 500
minLength: 1
type: string
role:
type: string
default: system
enum:
- assistant
- system
- user
required:
- content
type: object
maxLength: 15
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
consumer_group:
description: 'If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: ai-prompt-decorator
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
AiPromptGuardPlugin:
x-speakeasy-entity: PluginAiPromptGuard
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/AiPromptGuardPluginConfig'
AiPromptGuardPluginConfig:
properties:
config:
type: object
properties:
allow_all_conversation_history:
description: 'If true, will ignore all previous chat prompts from the conversation history.'
type: boolean
default: false
allow_patterns:
description: 'Array of valid regex patterns, or valid questions from the ''user'' role in chat.'
type: array
items:
maxLength: 500
minLength: 1
type: string
maxLength: 10
deny_patterns:
description: 'Array of invalid regex patterns, or invalid questions from the ''user'' role in chat.'
type: array
items:
maxLength: 500
minLength: 1
type: string
maxLength: 10
match_all_roles:
description: 'If true, will match all roles in addition to ''user'' role in conversation history.'
type: boolean
default: false
max_request_body_size:
description: max allowed body size allowed to be introspected
type: integer
default: 8192
minimum: 0
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
consumer_group:
description: 'If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: ai-prompt-guard
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
AiPromptTemplatePlugin:
x-speakeasy-entity: PluginAiPromptTemplate
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/AiPromptTemplatePluginConfig'
AiPromptTemplatePluginConfig:
properties:
config:
type: object
properties:
allow_untemplated_requests:
description: Set true to allow requests that don't call or match any template.
type: boolean
default: true
log_original_request:
description: Set true to add the original request to the Kong log plugin(s) output.
type: boolean
default: false
max_request_body_size:
description: max allowed body size allowed to be introspected
type: integer
default: 8192
minimum: 0
templates:
description: Array of templates available to the request context.
type: array
items:
properties:
name:
description: 'Unique name for the template, can be called with `{template://NAME}`'
type: string
template:
description: 'Template string for this request, supports mustache-style `{{placeholders}}`'
type: string
required:
- name
- template
type: object
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
consumer_group:
description: 'If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: ai-prompt-template
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
AiProxyAdvancedPlugin:
x-speakeasy-entity: PluginAiProxyAdvanced
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/AiProxyAdvancedPluginConfig'
AiProxyAdvancedPluginConfig:
properties:
config:
type: object
properties:
balancer:
type: object
properties:
algorithm:
description: Which load balancing algorithm to use.
type: string
default: round-robin
enum:
- consistent-hashing
- lowest-latency
- lowest-usage
- round-robin
- semantic
connect_timeout:
type: integer
default: 60000
maximum: 2147483646
minimum: 1
hash_on_header:
description: The header to use for consistent-hashing.
type: string
default: X-Kong-LLM-Request-ID
latency_strategy:
description: 'What metrics to use for latency. Available values are: `tpot` (time-per-output-token) and `e2e`.'
type: string
default: tpot
enum:
- e2e
- tpot
read_timeout:
type: integer
default: 60000
maximum: 2147483646
minimum: 1
retries:
description: The number of retries to execute upon failure to proxy.
type: integer
default: 5
maximum: 32767
minimum: 0
slots:
description: The number of slots in the load balancer algorithm.
type: integer
default: 10000
maximum: 65536
minimum: 10
tokens_count_strategy:
description: 'What tokens to use for usage calculation. Available values are: `total_tokens` `prompt_tokens`, and `completion_tokens`.'
type: string
default: total-tokens
enum:
- completion-tokens
- prompt-tokens
- total-tokens
write_timeout:
type: integer
default: 60000
maximum: 2147483646
minimum: 1
embeddings:
type: object
properties:
auth:
type: object
properties:
allow_override:
description: 'If enabled, the authorization header or parameter can be overridden in the request by the value configured in the plugin.'
type: boolean
default: false
aws_access_key_id:
description: Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_ACCESS_KEY_ID environment variable for this plugin instance.
type: string
aws_secret_access_key:
description: Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_SECRET_ACCESS_KEY environment variable for this plugin instance.
type: string
azure_client_id:
description: 'If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client ID.'
type: string
azure_client_secret:
description: 'If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client secret.'
type: string
azure_tenant_id:
description: 'If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the tenant ID.'
type: string
azure_use_managed_identity:
description: Set true to use the Azure Cloud Managed Identity (or user-assigned identity) to authenticate with Azure-provider models.
type: boolean
default: false
gcp_service_account_json:
description: 'Set this field to the full JSON of the GCP service account to authenticate, if required. If null (and gcp_use_service_account is true), Kong will attempt to read from environment variable `GCP_SERVICE_ACCOUNT`.'
type: string
gcp_use_service_account:
description: Use service account auth for GCP-based providers and models.
type: boolean
default: false
header_name:
description: 'If AI model requires authentication via Authorization or API key header, specify its name here.'
type: string
header_value:
description: 'Specify the full auth header value for ''header_name'', for example ''Bearer key'' or just ''key''.'
type: string
param_location:
description: 'Specify whether the ''param_name'' and ''param_value'' options go in a query string, or the POST form/JSON body.'
type: string
enum:
- body
- query
param_name:
description: 'If AI model requires authentication via query parameter, specify its name here.'
type: string
param_value:
description: Specify the full parameter value for 'param_name'.
type: string
model:
type: object
properties:
name:
description: Model name to execute.
type: string
options:
description: Key/value settings for the model
type: object
properties:
upstream_url:
description: upstream url for the embeddings
type: string
provider:
description: AI provider format to use for embeddings API
type: string
enum:
- mistral
- openai
required:
- name
- provider
required:
- model
max_request_body_size:
description: max allowed body size allowed to be introspected
type: integer
default: 8192
minimum: 0
model_name_header:
description: Display the model name selected in the X-Kong-LLM-Model response header
type: boolean
default: true
response_streaming:
description: 'Whether to ''optionally allow'', ''deny'', or ''always'' (force) the streaming of answers via server sent events.'
type: string
default: allow
enum:
- allow
- always
- deny
targets:
type: array
items:
properties:
auth:
type: object
properties:
allow_override:
description: 'If enabled, the authorization header or parameter can be overridden in the request by the value configured in the plugin.'
type: boolean
default: false
aws_access_key_id:
description: Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_ACCESS_KEY_ID environment variable for this plugin instance.
type: string
aws_secret_access_key:
description: Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_SECRET_ACCESS_KEY environment variable for this plugin instance.
type: string
azure_client_id:
description: 'If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client ID.'
type: string
azure_client_secret:
description: 'If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client secret.'
type: string
azure_tenant_id:
description: 'If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the tenant ID.'
type: string
azure_use_managed_identity:
description: Set true to use the Azure Cloud Managed Identity (or user-assigned identity) to authenticate with Azure-provider models.
type: boolean
default: false
gcp_service_account_json:
description: 'Set this field to the full JSON of the GCP service account to authenticate, if required. If null (and gcp_use_service_account is true), Kong will attempt to read from environment variable `GCP_SERVICE_ACCOUNT`.'
type: string
gcp_use_service_account:
description: Use service account auth for GCP-based providers and models.
type: boolean
default: false
header_name:
description: 'If AI model requires authentication via Authorization or API key header, specify its name here.'
type: string
header_value:
description: 'Specify the full auth header value for ''header_name'', for example ''Bearer key'' or just ''key''.'
type: string
param_location:
description: 'Specify whether the ''param_name'' and ''param_value'' options go in a query string, or the POST form/JSON body.'
type: string
enum:
- body
- query
param_name:
description: 'If AI model requires authentication via query parameter, specify its name here.'
type: string
param_value:
description: Specify the full parameter value for 'param_name'.
type: string
description:
description: 'The semantic description of the target, required if using semantic load balancing.'
type: string
logging:
type: object
properties:
log_payloads:
description: 'If enabled, will log the request and response body into the Kong log plugin(s) output.'
type: boolean
default: false
log_statistics:
description: 'If enabled and supported by the driver, will add model usage and token metrics into the Kong log plugin(s) output.'
type: boolean
default: false
model:
type: object
properties:
name:
description: Model name to execute.
type: string
options:
description: Key/value settings for the model
type: object
properties:
anthropic_version:
description: 'Defines the schema/API version, if using Anthropic provider.'
type: string
azure_api_version:
description: '''api-version'' for Azure OpenAI instances.'
type: string
default: '2023-05-15'
azure_deployment_id:
description: Deployment ID for Azure OpenAI instances.
type: string
azure_instance:
description: Instance name for Azure OpenAI hosted models.
type: string
bedrock:
type: object
properties:
aws_region:
description: If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option.
type: string
gemini:
type: object
properties:
api_endpoint:
description: 'If running Gemini on Vertex, specify the regional API endpoint (hostname only).'
type: string
location_id:
description: 'If running Gemini on Vertex, specify the location ID.'
type: string
project_id:
description: 'If running Gemini on Vertex, specify the project ID.'
type: string
huggingface:
type: object
properties:
use_cache:
description: Use the cache layer on the inference API
type: boolean
wait_for_model:
description: Wait for the model if it is not ready
type: boolean
input_cost:
description: Defines the cost per 1M tokens in your prompt.
type: number
minimum: 0
llama2_format:
description: 'If using llama2 provider, select the upstream message format.'
type: string
enum:
- ollama
- openai
- raw
max_tokens:
description: 'Defines the max_tokens, if using chat or completion models.'
type: integer
default: 256
mistral_format:
description: 'If using mistral provider, select the upstream message format.'
type: string
enum:
- ollama
- openai
output_cost:
description: Defines the cost per 1M tokens in the output of the AI.
type: number
minimum: 0
temperature:
description: 'Defines the matching temperature, if using chat or completion models.'
type: number
maximum: 5
minimum: 0
top_k:
description: 'Defines the top-k most likely tokens, if supported.'
type: integer
maximum: 500
minimum: 0
top_p:
description: 'Defines the top-p probability mass, if supported.'
type: number
maximum: 1
minimum: 0
upstream_path:
description: 'Manually specify or override the AI operation path, used when e.g. using the ''preserve'' route_type.'
type: string
upstream_url:
description: 'Manually specify or override the full URL to the AI operation endpoints, when calling (self-)hosted models, or for running via a private endpoint.'
type: string
provider:
description: AI provider request format - Kong translates requests to and from the specified backend compatible formats.
type: string
enum:
- anthropic
- azure
- bedrock
- cohere
- gemini
- huggingface
- llama2
- mistral
- openai
required:
- provider
route_type:
description: 'The model''s operation implementation, for this provider. Set to `preserve` to pass through without transformation.'
type: string
enum:
- llm/v1/chat
- llm/v1/completions
- preserve
weight:
description: The weight this target gets within the upstream loadbalancer (1-65535).
type: integer
default: 100
maximum: 65535
minimum: 1
required:
- logging
- model
- route_type
type: object
vectordb:
type: object
properties:
dimensions:
description: the desired dimensionality for the vectors
type: integer
distance_metric:
description: the distance metric to use for vector searches
type: string
enum:
- cosine
- euclidean
redis:
type: object
properties:
cluster_max_redirections:
description: Maximum retry attempts for redirection.
type: integer
default: 5
cluster_nodes:
description: Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element.
type: array
items:
properties:
ip:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
minLength: 1
connect_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
connection_is_proxied:
description: 'If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address.'
type: boolean
default: false
database:
description: Database to use for the Redis connection when using the `redis` strategy
type: integer
default: 0
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
keepalive_backlog:
description: 'Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`.'
type: integer
maximum: 2147483646
minimum: 0
keepalive_pool_size:
description: 'The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn''t specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low.'
type: integer
default: 256
maximum: 2147483646
minimum: 1
password:
description: 'Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis.'
type: string
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
read_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
send_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
sentinel_master:
description: Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel.
type: string
sentinel_nodes:
description: Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element.
type: array
items:
properties:
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
minLength: 1
sentinel_password:
description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.'
type: string
sentinel_role:
description: Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel.
type: string
enum:
- any
- master
- slave
sentinel_username:
description: 'Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won''t be performed. This requires Redis v6.2.0+.'
type: string
server_name:
description: A string representing an SNI (server name indication) value for TLS.
type: string
ssl:
description: 'If set to true, uses SSL to connect to Redis.'
type: boolean
default: false
ssl_verify:
description: 'If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly.'
type: boolean
default: false
username:
description: 'Username to use for Redis connections. If undefined, ACL authentication won''t be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`.'
type: string
shorthand_fields:
cluster_addresses:
items:
type: string
minLength: 1
type: array
sentinel_addresses:
items:
type: string
minLength: 1
type: array
timeout:
type: integer
strategy:
description: which vector database driver to use
type: string
enum:
- redis
threshold:
description: the default similarity threshold for accepting semantic search results (float)
type: number
required:
- dimensions
- distance_metric
- redis
- strategy
- threshold
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
consumer_group:
description: 'If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: ai-proxy-advanced
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
AiProxyPlugin:
x-speakeasy-entity: PluginAiProxy
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/AiProxyPluginConfig'
AiProxyPluginConfig:
properties:
config:
type: object
properties:
auth:
type: object
properties:
allow_override:
description: 'If enabled, the authorization header or parameter can be overridden in the request by the value configured in the plugin.'
type: boolean
default: false
aws_access_key_id:
description: Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_ACCESS_KEY_ID environment variable for this plugin instance.
type: string
aws_secret_access_key:
description: Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_SECRET_ACCESS_KEY environment variable for this plugin instance.
type: string
azure_client_id:
description: 'If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client ID.'
type: string
azure_client_secret:
description: 'If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client secret.'
type: string
azure_tenant_id:
description: 'If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the tenant ID.'
type: string
azure_use_managed_identity:
description: Set true to use the Azure Cloud Managed Identity (or user-assigned identity) to authenticate with Azure-provider models.
type: boolean
default: false
gcp_service_account_json:
description: 'Set this field to the full JSON of the GCP service account to authenticate, if required. If null (and gcp_use_service_account is true), Kong will attempt to read from environment variable `GCP_SERVICE_ACCOUNT`.'
type: string
gcp_use_service_account:
description: Use service account auth for GCP-based providers and models.
type: boolean
default: false
header_name:
description: 'If AI model requires authentication via Authorization or API key header, specify its name here.'
type: string
header_value:
description: 'Specify the full auth header value for ''header_name'', for example ''Bearer key'' or just ''key''.'
type: string
param_location:
description: 'Specify whether the ''param_name'' and ''param_value'' options go in a query string, or the POST form/JSON body.'
type: string
enum:
- body
- query
param_name:
description: 'If AI model requires authentication via query parameter, specify its name here.'
type: string
param_value:
description: Specify the full parameter value for 'param_name'.
type: string
logging:
type: object
properties:
log_payloads:
description: 'If enabled, will log the request and response body into the Kong log plugin(s) output.'
type: boolean
default: false
log_statistics:
description: 'If enabled and supported by the driver, will add model usage and token metrics into the Kong log plugin(s) output.'
type: boolean
default: false
max_request_body_size:
description: max allowed body size allowed to be introspected
type: integer
default: 8192
minimum: 0
model:
type: object
properties:
name:
description: Model name to execute.
type: string
options:
description: Key/value settings for the model
type: object
properties:
anthropic_version:
description: 'Defines the schema/API version, if using Anthropic provider.'
type: string
azure_api_version:
description: '''api-version'' for Azure OpenAI instances.'
type: string
default: '2023-05-15'
azure_deployment_id:
description: Deployment ID for Azure OpenAI instances.
type: string
azure_instance:
description: Instance name for Azure OpenAI hosted models.
type: string
bedrock:
type: object
properties:
aws_region:
description: If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option.
type: string
gemini:
type: object
properties:
api_endpoint:
description: 'If running Gemini on Vertex, specify the regional API endpoint (hostname only).'
type: string
location_id:
description: 'If running Gemini on Vertex, specify the location ID.'
type: string
project_id:
description: 'If running Gemini on Vertex, specify the project ID.'
type: string
huggingface:
type: object
properties:
use_cache:
description: Use the cache layer on the inference API
type: boolean
wait_for_model:
description: Wait for the model if it is not ready
type: boolean
input_cost:
description: Defines the cost per 1M tokens in your prompt.
type: number
minimum: 0
llama2_format:
description: 'If using llama2 provider, select the upstream message format.'
type: string
enum:
- ollama
- openai
- raw
max_tokens:
description: 'Defines the max_tokens, if using chat or completion models.'
type: integer
default: 256
mistral_format:
description: 'If using mistral provider, select the upstream message format.'
type: string
enum:
- ollama
- openai
output_cost:
description: Defines the cost per 1M tokens in the output of the AI.
type: number
minimum: 0
temperature:
description: 'Defines the matching temperature, if using chat or completion models.'
type: number
maximum: 5
minimum: 0
top_k:
description: 'Defines the top-k most likely tokens, if supported.'
type: integer
maximum: 500
minimum: 0
top_p:
description: 'Defines the top-p probability mass, if supported.'
type: number
maximum: 1
minimum: 0
upstream_path:
description: 'Manually specify or override the AI operation path, used when e.g. using the ''preserve'' route_type.'
type: string
upstream_url:
description: 'Manually specify or override the full URL to the AI operation endpoints, when calling (self-)hosted models, or for running via a private endpoint.'
type: string
provider:
description: AI provider request format - Kong translates requests to and from the specified backend compatible formats.
type: string
enum:
- anthropic
- azure
- bedrock
- cohere
- gemini
- huggingface
- llama2
- mistral
- openai
model_name_header:
description: Display the model name selected in the X-Kong-LLM-Model response header
type: boolean
default: true
response_streaming:
description: 'Whether to ''optionally allow'', ''deny'', or ''always'' (force) the streaming of answers via server sent events.'
type: string
default: allow
enum:
- allow
- always
- deny
route_type:
description: 'The model''s operation implementation, for this provider. Set to `preserve` to pass through without transformation.'
type: string
enum:
- llm/v1/chat
- llm/v1/completions
- preserve
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
consumer_group:
description: 'If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: ai-proxy
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
AiRateLimitingAdvancedPlugin:
x-speakeasy-entity: PluginAiRateLimitingAdvanced
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/AiRateLimitingAdvancedPluginConfig'
AiRateLimitingAdvancedPluginConfig:
properties:
config:
type: object
properties:
dictionary_name:
description: 'The shared dictionary where counters are stored. When the plugin is configured to synchronize counter data externally (that is `config.strategy` is `cluster` or `redis` and `config.sync_rate` isn''t `-1`), this dictionary serves as a buffer to populate counters in the data store on each synchronization cycle.'
type: string
default: kong_rate_limiting_counters
disable_penalty:
description: 'If set to `true`, this doesn''t count denied requests (status = `429`). If set to `false`, all requests, including denied ones, are counted. This parameter only affects the `sliding` window_type and the request prompt provider.'
type: boolean
default: false
error_code:
description: Set a custom error code to return when the rate limit is exceeded.
type: number
default: 429
minimum: 0
error_hide_providers:
description: Optionally hide informative response that would otherwise provide information about the provider in the error message.
type: boolean
default: false
error_message:
description: Set a custom error message to return when the rate limit is exceeded.
type: string
default: 'AI token rate limit exceeded for provider(s): '
header_name:
description: A string representing an HTTP header name.
type: string
hide_client_headers:
description: Optionally hide informative response headers that would otherwise provide information about the current status of limits and counters.
type: boolean
default: false
identifier:
description: 'The type of identifier used to generate the rate limit key. Defines the scope used to increment the rate limiting counters. Can be `ip`, `credential`, `consumer`, `service`, `header`, `path` or `consumer-group`.'
type: string
default: consumer
enum:
- consumer
- consumer-group
- credential
- header
- ip
- path
- service
llm_providers:
description: 'The provider config. Takes an array of `name`, `limit` and `window size` values.'
type: array
items:
properties:
limit:
description: The limit applies to the LLM provider within the defined window size. It used the query cost from the tokens to increment the counter.
type: number
name:
description: The LLM provider to which the rate limit applies.
type: string
enum:
- anthropic
- azure
- bedrock
- cohere
- gemini
- huggingface
- llama2
- mistral
- openai
- requestPrompt
window_size:
description: The window size to apply a limit (defined in seconds).
type: number
required:
- limit
- name
- window_size
type: object
path:
description: 'A string representing a URL path, such as /path/to/resource. Must start with a forward slash (/) and must not contain empty segments (i.e., two consecutive forward slashes).'
type: string
redis:
type: object
properties:
cluster_max_redirections:
description: Maximum retry attempts for redirection.
type: integer
default: 5
cluster_nodes:
description: Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element.
type: array
items:
properties:
ip:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
minLength: 1
connect_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
connection_is_proxied:
description: 'If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address.'
type: boolean
default: false
database:
description: Database to use for the Redis connection when using the `redis` strategy
type: integer
default: 0
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
keepalive_backlog:
description: 'Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`.'
type: integer
maximum: 2147483646
minimum: 0
keepalive_pool_size:
description: 'The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn''t specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low.'
type: integer
default: 256
maximum: 2147483646
minimum: 1
password:
description: 'Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis.'
type: string
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
read_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
send_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
sentinel_master:
description: Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel.
type: string
sentinel_nodes:
description: Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element.
type: array
items:
properties:
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
minLength: 1
sentinel_password:
description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.'
type: string
sentinel_role:
description: Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel.
type: string
enum:
- any
- master
- slave
sentinel_username:
description: 'Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won''t be performed. This requires Redis v6.2.0+.'
type: string
server_name:
description: A string representing an SNI (server name indication) value for TLS.
type: string
ssl:
description: 'If set to true, uses SSL to connect to Redis.'
type: boolean
default: false
ssl_verify:
description: 'If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly.'
type: boolean
default: false
username:
description: 'Username to use for Redis connections. If undefined, ACL authentication won''t be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`.'
type: string
shorthand_fields:
cluster_addresses:
items:
type: string
minLength: 1
type: array
sentinel_addresses:
items:
type: string
minLength: 1
type: array
timeout:
type: integer
request_prompt_count_function:
description: 'If defined, it use custom function to count requests for the request prompt provider'
type: string
retry_after_jitter_max:
description: 'The upper bound of a jitter (random delay) in seconds to be added to the `Retry-After` header of denied requests (status = `429`) in order to prevent all the clients from coming back at the same time. The lower bound of the jitter is `0`; in this case, the `Retry-After` header is equal to the `RateLimit-Reset` header.'
type: number
default: 0
strategy:
description: 'The rate-limiting strategy to use for retrieving and incrementing the limits. Available values are: `local` and `cluster`.'
type: string
default: local
enum:
- cluster
- local
- redis
sync_rate:
description: How often to sync counter data to the central data store. A value of 0 results in synchronous behavior; a value of -1 ignores sync behavior entirely and only stores counters in node memory. A value greater than 0 will sync the counters in the specified number of seconds. The minimum allowed interval is 0.02 seconds (20ms).
type: number
tokens_count_strategy:
description: 'What tokens to use for cost calculation. Available values are: `total_tokens` `prompt_tokens`, `completion_tokens` or `cost`.'
type: string
default: total_tokens
enum:
- completion_tokens
- cost
- prompt_tokens
- total_tokens
window_type:
description: 'Sets the time window type to either `sliding` (default) or `fixed`. Sliding windows apply the rate limiting logic while taking into account previous hit rates (from the window that immediately precedes the current) using a dynamic weight. Fixed windows consist of buckets that are statically assigned to a definitive time range, each request is mapped to only one fixed window based on its timestamp and will affect only that window''s counters.'
type: string
default: sliding
enum:
- fixed
- sliding
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
consumer_group:
description: 'If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: ai-rate-limiting-advanced
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
AiRequestTransformerPlugin:
x-speakeasy-entity: PluginAiRequestTransformer
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/AiRequestTransformerPluginConfig'
AiRequestTransformerPluginConfig:
properties:
config:
type: object
properties:
http_proxy_host:
description: 'A string representing a host name, such as example.com.'
type: string
http_proxy_port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
maximum: 65535
minimum: 0
http_timeout:
description: Timeout in milliseconds for the AI upstream service.
type: integer
default: 60000
https_proxy_host:
description: 'A string representing a host name, such as example.com.'
type: string
https_proxy_port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
maximum: 65535
minimum: 0
https_verify:
description: Verify the TLS certificate of the AI upstream service.
type: boolean
default: true
llm:
type: object
properties:
auth:
type: object
properties:
allow_override:
description: 'If enabled, the authorization header or parameter can be overridden in the request by the value configured in the plugin.'
type: boolean
default: false
aws_access_key_id:
description: Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_ACCESS_KEY_ID environment variable for this plugin instance.
type: string
aws_secret_access_key:
description: Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_SECRET_ACCESS_KEY environment variable for this plugin instance.
type: string
azure_client_id:
description: 'If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client ID.'
type: string
azure_client_secret:
description: 'If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client secret.'
type: string
azure_tenant_id:
description: 'If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the tenant ID.'
type: string
azure_use_managed_identity:
description: Set true to use the Azure Cloud Managed Identity (or user-assigned identity) to authenticate with Azure-provider models.
type: boolean
default: false
gcp_service_account_json:
description: 'Set this field to the full JSON of the GCP service account to authenticate, if required. If null (and gcp_use_service_account is true), Kong will attempt to read from environment variable `GCP_SERVICE_ACCOUNT`.'
type: string
gcp_use_service_account:
description: Use service account auth for GCP-based providers and models.
type: boolean
default: false
header_name:
description: 'If AI model requires authentication via Authorization or API key header, specify its name here.'
type: string
header_value:
description: 'Specify the full auth header value for ''header_name'', for example ''Bearer key'' or just ''key''.'
type: string
param_location:
description: 'Specify whether the ''param_name'' and ''param_value'' options go in a query string, or the POST form/JSON body.'
type: string
enum:
- body
- query
param_name:
description: 'If AI model requires authentication via query parameter, specify its name here.'
type: string
param_value:
description: Specify the full parameter value for 'param_name'.
type: string
logging:
type: object
properties:
log_payloads:
description: 'If enabled, will log the request and response body into the Kong log plugin(s) output.'
type: boolean
default: false
log_statistics:
description: 'If enabled and supported by the driver, will add model usage and token metrics into the Kong log plugin(s) output.'
type: boolean
default: false
model:
type: object
properties:
name:
description: Model name to execute.
type: string
options:
description: Key/value settings for the model
type: object
properties:
anthropic_version:
description: 'Defines the schema/API version, if using Anthropic provider.'
type: string
azure_api_version:
description: '''api-version'' for Azure OpenAI instances.'
type: string
default: '2023-05-15'
azure_deployment_id:
description: Deployment ID for Azure OpenAI instances.
type: string
azure_instance:
description: Instance name for Azure OpenAI hosted models.
type: string
bedrock:
type: object
properties:
aws_region:
description: If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option.
type: string
gemini:
type: object
properties:
api_endpoint:
description: 'If running Gemini on Vertex, specify the regional API endpoint (hostname only).'
type: string
location_id:
description: 'If running Gemini on Vertex, specify the location ID.'
type: string
project_id:
description: 'If running Gemini on Vertex, specify the project ID.'
type: string
huggingface:
type: object
properties:
use_cache:
description: Use the cache layer on the inference API
type: boolean
wait_for_model:
description: Wait for the model if it is not ready
type: boolean
input_cost:
description: Defines the cost per 1M tokens in your prompt.
type: number
minimum: 0
llama2_format:
description: 'If using llama2 provider, select the upstream message format.'
type: string
enum:
- ollama
- openai
- raw
max_tokens:
description: 'Defines the max_tokens, if using chat or completion models.'
type: integer
default: 256
mistral_format:
description: 'If using mistral provider, select the upstream message format.'
type: string
enum:
- ollama
- openai
output_cost:
description: Defines the cost per 1M tokens in the output of the AI.
type: number
minimum: 0
temperature:
description: 'Defines the matching temperature, if using chat or completion models.'
type: number
maximum: 5
minimum: 0
top_k:
description: 'Defines the top-k most likely tokens, if supported.'
type: integer
maximum: 500
minimum: 0
top_p:
description: 'Defines the top-p probability mass, if supported.'
type: number
maximum: 1
minimum: 0
upstream_path:
description: 'Manually specify or override the AI operation path, used when e.g. using the ''preserve'' route_type.'
type: string
upstream_url:
description: 'Manually specify or override the full URL to the AI operation endpoints, when calling (self-)hosted models, or for running via a private endpoint.'
type: string
provider:
description: AI provider request format - Kong translates requests to and from the specified backend compatible formats.
type: string
enum:
- anthropic
- azure
- bedrock
- cohere
- gemini
- huggingface
- llama2
- mistral
- openai
route_type:
description: 'The model''s operation implementation, for this provider. Set to `preserve` to pass through without transformation.'
type: string
enum:
- llm/v1/chat
- llm/v1/completions
- preserve
max_request_body_size:
description: max allowed body size allowed to be introspected
type: integer
default: 8192
minimum: 0
prompt:
description: 'Use this prompt to tune the LLM system/assistant message for the incoming proxy request (from the client), and what you are expecting in return.'
type: string
transformation_extract_pattern:
description: 'Defines the regular expression that must match to indicate a successful AI transformation at the request phase. The first match will be set as the outgoing body. If the AI service''s response doesn''t match this pattern, it is marked as a failure.'
type: string
consumer_group:
description: 'If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: ai-request-transformer
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
AiResponseTransformerPlugin:
x-speakeasy-entity: PluginAiResponseTransformer
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/AiResponseTransformerPluginConfig'
AiResponseTransformerPluginConfig:
properties:
config:
type: object
properties:
http_proxy_host:
description: 'A string representing a host name, such as example.com.'
type: string
http_proxy_port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
maximum: 65535
minimum: 0
http_timeout:
description: Timeout in milliseconds for the AI upstream service.
type: integer
default: 60000
https_proxy_host:
description: 'A string representing a host name, such as example.com.'
type: string
https_proxy_port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
maximum: 65535
minimum: 0
https_verify:
description: Verify the TLS certificate of the AI upstream service.
type: boolean
default: true
llm:
type: object
properties:
auth:
type: object
properties:
allow_override:
description: 'If enabled, the authorization header or parameter can be overridden in the request by the value configured in the plugin.'
type: boolean
default: false
aws_access_key_id:
description: Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_ACCESS_KEY_ID environment variable for this plugin instance.
type: string
aws_secret_access_key:
description: Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_SECRET_ACCESS_KEY environment variable for this plugin instance.
type: string
azure_client_id:
description: 'If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client ID.'
type: string
azure_client_secret:
description: 'If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client secret.'
type: string
azure_tenant_id:
description: 'If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the tenant ID.'
type: string
azure_use_managed_identity:
description: Set true to use the Azure Cloud Managed Identity (or user-assigned identity) to authenticate with Azure-provider models.
type: boolean
default: false
gcp_service_account_json:
description: 'Set this field to the full JSON of the GCP service account to authenticate, if required. If null (and gcp_use_service_account is true), Kong will attempt to read from environment variable `GCP_SERVICE_ACCOUNT`.'
type: string
gcp_use_service_account:
description: Use service account auth for GCP-based providers and models.
type: boolean
default: false
header_name:
description: 'If AI model requires authentication via Authorization or API key header, specify its name here.'
type: string
header_value:
description: 'Specify the full auth header value for ''header_name'', for example ''Bearer key'' or just ''key''.'
type: string
param_location:
description: 'Specify whether the ''param_name'' and ''param_value'' options go in a query string, or the POST form/JSON body.'
type: string
enum:
- body
- query
param_name:
description: 'If AI model requires authentication via query parameter, specify its name here.'
type: string
param_value:
description: Specify the full parameter value for 'param_name'.
type: string
logging:
type: object
properties:
log_payloads:
description: 'If enabled, will log the request and response body into the Kong log plugin(s) output.'
type: boolean
default: false
log_statistics:
description: 'If enabled and supported by the driver, will add model usage and token metrics into the Kong log plugin(s) output.'
type: boolean
default: false
model:
type: object
properties:
name:
description: Model name to execute.
type: string
options:
description: Key/value settings for the model
type: object
properties:
anthropic_version:
description: 'Defines the schema/API version, if using Anthropic provider.'
type: string
azure_api_version:
description: '''api-version'' for Azure OpenAI instances.'
type: string
default: '2023-05-15'
azure_deployment_id:
description: Deployment ID for Azure OpenAI instances.
type: string
azure_instance:
description: Instance name for Azure OpenAI hosted models.
type: string
bedrock:
type: object
properties:
aws_region:
description: If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option.
type: string
gemini:
type: object
properties:
api_endpoint:
description: 'If running Gemini on Vertex, specify the regional API endpoint (hostname only).'
type: string
location_id:
description: 'If running Gemini on Vertex, specify the location ID.'
type: string
project_id:
description: 'If running Gemini on Vertex, specify the project ID.'
type: string
huggingface:
type: object
properties:
use_cache:
description: Use the cache layer on the inference API
type: boolean
wait_for_model:
description: Wait for the model if it is not ready
type: boolean
input_cost:
description: Defines the cost per 1M tokens in your prompt.
type: number
minimum: 0
llama2_format:
description: 'If using llama2 provider, select the upstream message format.'
type: string
enum:
- ollama
- openai
- raw
max_tokens:
description: 'Defines the max_tokens, if using chat or completion models.'
type: integer
default: 256
mistral_format:
description: 'If using mistral provider, select the upstream message format.'
type: string
enum:
- ollama
- openai
output_cost:
description: Defines the cost per 1M tokens in the output of the AI.
type: number
minimum: 0
temperature:
description: 'Defines the matching temperature, if using chat or completion models.'
type: number
maximum: 5
minimum: 0
top_k:
description: 'Defines the top-k most likely tokens, if supported.'
type: integer
maximum: 500
minimum: 0
top_p:
description: 'Defines the top-p probability mass, if supported.'
type: number
maximum: 1
minimum: 0
upstream_path:
description: 'Manually specify or override the AI operation path, used when e.g. using the ''preserve'' route_type.'
type: string
upstream_url:
description: 'Manually specify or override the full URL to the AI operation endpoints, when calling (self-)hosted models, or for running via a private endpoint.'
type: string
provider:
description: AI provider request format - Kong translates requests to and from the specified backend compatible formats.
type: string
enum:
- anthropic
- azure
- bedrock
- cohere
- gemini
- huggingface
- llama2
- mistral
- openai
route_type:
description: 'The model''s operation implementation, for this provider. Set to `preserve` to pass through without transformation.'
type: string
enum:
- llm/v1/chat
- llm/v1/completions
- preserve
max_request_body_size:
description: max allowed body size allowed to be introspected
type: integer
default: 8192
minimum: 0
parse_llm_response_json_instructions:
description: 'Set true to read specific response format from the LLM, and accordingly set the status code / body / headers that proxy back to the client. You need to engineer your LLM prompt to return the correct format, see plugin docs ''Overview'' page for usage instructions.'
type: boolean
default: false
prompt:
description: 'Use this prompt to tune the LLM system/assistant message for the returning proxy response (from the upstream), adn what response format you are expecting.'
type: string
transformation_extract_pattern:
description: 'Defines the regular expression that must match to indicate a successful AI transformation at the response phase. The first match will be set as the returning body. If the AI service''s response doesn''t match this pattern, a failure is returned to the client.'
type: string
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
consumer_group:
description: 'If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: ai-response-transformer
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
AiSemanticCachePlugin:
x-speakeasy-entity: PluginAiSemanticCache
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/AiSemanticCachePluginConfig'
AiSemanticCachePluginConfig:
properties:
config:
type: object
properties:
cache_control:
description: 'When enabled, respect the Cache-Control behaviors defined in RFC7234.'
type: boolean
default: false
cache_ttl:
description: TTL in seconds of cache entities. Must be a value greater than 0.
type: integer
default: 300
minimum: 0
embeddings:
type: object
properties:
auth:
type: object
properties:
allow_override:
description: 'If enabled, the authorization header or parameter can be overridden in the request by the value configured in the plugin.'
type: boolean
default: false
aws_access_key_id:
description: Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_ACCESS_KEY_ID environment variable for this plugin instance.
type: string
aws_secret_access_key:
description: Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_SECRET_ACCESS_KEY environment variable for this plugin instance.
type: string
azure_client_id:
description: 'If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client ID.'
type: string
azure_client_secret:
description: 'If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client secret.'
type: string
azure_tenant_id:
description: 'If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the tenant ID.'
type: string
azure_use_managed_identity:
description: Set true to use the Azure Cloud Managed Identity (or user-assigned identity) to authenticate with Azure-provider models.
type: boolean
default: false
gcp_service_account_json:
description: 'Set this field to the full JSON of the GCP service account to authenticate, if required. If null (and gcp_use_service_account is true), Kong will attempt to read from environment variable `GCP_SERVICE_ACCOUNT`.'
type: string
gcp_use_service_account:
description: Use service account auth for GCP-based providers and models.
type: boolean
default: false
header_name:
description: 'If AI model requires authentication via Authorization or API key header, specify its name here.'
type: string
header_value:
description: 'Specify the full auth header value for ''header_name'', for example ''Bearer key'' or just ''key''.'
type: string
param_location:
description: 'Specify whether the ''param_name'' and ''param_value'' options go in a query string, or the POST form/JSON body.'
type: string
enum:
- body
- query
param_name:
description: 'If AI model requires authentication via query parameter, specify its name here.'
type: string
param_value:
description: Specify the full parameter value for 'param_name'.
type: string
model:
type: object
properties:
name:
description: Model name to execute.
type: string
options:
description: Key/value settings for the model
type: object
properties:
upstream_url:
description: upstream url for the embeddings
type: string
provider:
description: AI provider format to use for embeddings API
type: string
enum:
- mistral
- openai
exact_caching:
description: 'When enabled, a first check for exact query will be done. It will impact DB size'
type: boolean
default: false
ignore_assistant_prompts:
description: Ignore and discard any assistant prompts when Vectorizing the request
type: boolean
default: false
ignore_system_prompts:
description: Ignore and discard any system prompts when Vectorizing the request
type: boolean
default: false
ignore_tool_prompts:
description: Ignore and discard any tool prompts when Vectorizing the request
type: boolean
default: false
message_countback:
description: Number of messages in the chat history to Vectorize/Cache
type: number
default: 1
maximum: 1000
minimum: 1
stop_on_failure:
description: Halt the LLM request process in case of a caching system failure
type: boolean
default: false
vectordb:
type: object
properties:
dimensions:
description: the desired dimensionality for the vectors
type: integer
distance_metric:
description: the distance metric to use for vector searches
type: string
enum:
- cosine
- euclidean
redis:
type: object
properties:
cluster_max_redirections:
description: Maximum retry attempts for redirection.
type: integer
default: 5
cluster_nodes:
description: Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element.
type: array
items:
properties:
ip:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
minLength: 1
connect_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
connection_is_proxied:
description: 'If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address.'
type: boolean
default: false
database:
description: Database to use for the Redis connection when using the `redis` strategy
type: integer
default: 0
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
keepalive_backlog:
description: 'Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`.'
type: integer
maximum: 2147483646
minimum: 0
keepalive_pool_size:
description: 'The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn''t specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low.'
type: integer
default: 256
maximum: 2147483646
minimum: 1
password:
description: 'Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis.'
type: string
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
read_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
send_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
sentinel_master:
description: Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel.
type: string
sentinel_nodes:
description: Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element.
type: array
items:
properties:
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
minLength: 1
sentinel_password:
description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.'
type: string
sentinel_role:
description: Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel.
type: string
enum:
- any
- master
- slave
sentinel_username:
description: 'Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won''t be performed. This requires Redis v6.2.0+.'
type: string
server_name:
description: A string representing an SNI (server name indication) value for TLS.
type: string
ssl:
description: 'If set to true, uses SSL to connect to Redis.'
type: boolean
default: false
ssl_verify:
description: 'If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly.'
type: boolean
default: false
username:
description: 'Username to use for Redis connections. If undefined, ACL authentication won''t be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`.'
type: string
shorthand_fields:
cluster_addresses:
items:
type: string
minLength: 1
type: array
sentinel_addresses:
items:
type: string
minLength: 1
type: array
timeout:
type: integer
strategy:
description: which vector database driver to use
type: string
enum:
- redis
threshold:
description: the default similarity threshold for accepting semantic search results (float)
type: number
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
consumer_group:
description: 'If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: ai-semantic-cache
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
AiSemanticPromptGuardPlugin:
x-speakeasy-entity: PluginAiSemanticPromptGuard
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/AiSemanticPromptGuardPluginConfig'
AiSemanticPromptGuardPluginConfig:
properties:
config:
type: object
properties:
embeddings:
type: object
properties:
auth:
type: object
properties:
allow_override:
description: 'If enabled, the authorization header or parameter can be overridden in the request by the value configured in the plugin.'
type: boolean
default: false
aws_access_key_id:
description: Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_ACCESS_KEY_ID environment variable for this plugin instance.
type: string
aws_secret_access_key:
description: Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_SECRET_ACCESS_KEY environment variable for this plugin instance.
type: string
azure_client_id:
description: 'If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client ID.'
type: string
azure_client_secret:
description: 'If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client secret.'
type: string
azure_tenant_id:
description: 'If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the tenant ID.'
type: string
azure_use_managed_identity:
description: Set true to use the Azure Cloud Managed Identity (or user-assigned identity) to authenticate with Azure-provider models.
type: boolean
default: false
gcp_service_account_json:
description: 'Set this field to the full JSON of the GCP service account to authenticate, if required. If null (and gcp_use_service_account is true), Kong will attempt to read from environment variable `GCP_SERVICE_ACCOUNT`.'
type: string
gcp_use_service_account:
description: Use service account auth for GCP-based providers and models.
type: boolean
default: false
header_name:
description: 'If AI model requires authentication via Authorization or API key header, specify its name here.'
type: string
header_value:
description: 'Specify the full auth header value for ''header_name'', for example ''Bearer key'' or just ''key''.'
type: string
param_location:
description: 'Specify whether the ''param_name'' and ''param_value'' options go in a query string, or the POST form/JSON body.'
type: string
enum:
- body
- query
param_name:
description: 'If AI model requires authentication via query parameter, specify its name here.'
type: string
param_value:
description: Specify the full parameter value for 'param_name'.
type: string
model:
type: object
properties:
name:
description: Model name to execute.
type: string
options:
description: Key/value settings for the model
type: object
properties:
upstream_url:
description: upstream url for the embeddings
type: string
provider:
description: AI provider format to use for embeddings API
type: string
enum:
- mistral
- openai
rules:
type: object
properties:
allow_prompts:
description: List of prompts to allow.
type: array
items:
maxLength: 500
minLength: 1
type: string
maxLength: 100
deny_prompts:
description: List of prompts to deny.
type: array
items:
maxLength: 500
minLength: 1
type: string
maxLength: 100
match_all_conversation_history:
description: 'If false, will ignore all previous chat prompts from the conversation history.'
type: boolean
default: false
match_all_roles:
description: 'If true, will match all roles in addition to ''user'' role in conversation history.'
type: boolean
default: false
max_request_body_size:
description: max allowed body size allowed to be introspected
type: integer
default: 8192
minimum: 0
search:
type: object
properties:
threshold:
description: Threshold for the similarity score to be considered a match.
type: number
default: 0.5
vectordb:
type: object
properties:
dimensions:
description: the desired dimensionality for the vectors
type: integer
distance_metric:
description: the distance metric to use for vector searches
type: string
enum:
- cosine
- euclidean
redis:
type: object
properties:
cluster_max_redirections:
description: Maximum retry attempts for redirection.
type: integer
default: 5
cluster_nodes:
description: Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element.
type: array
items:
properties:
ip:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
minLength: 1
connect_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
connection_is_proxied:
description: 'If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address.'
type: boolean
default: false
database:
description: Database to use for the Redis connection when using the `redis` strategy
type: integer
default: 0
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
keepalive_backlog:
description: 'Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`.'
type: integer
maximum: 2147483646
minimum: 0
keepalive_pool_size:
description: 'The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn''t specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low.'
type: integer
default: 256
maximum: 2147483646
minimum: 1
password:
description: 'Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis.'
type: string
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
read_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
send_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
sentinel_master:
description: Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel.
type: string
sentinel_nodes:
description: Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element.
type: array
items:
properties:
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
minLength: 1
sentinel_password:
description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.'
type: string
sentinel_role:
description: Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel.
type: string
enum:
- any
- master
- slave
sentinel_username:
description: 'Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won''t be performed. This requires Redis v6.2.0+.'
type: string
server_name:
description: A string representing an SNI (server name indication) value for TLS.
type: string
ssl:
description: 'If set to true, uses SSL to connect to Redis.'
type: boolean
default: false
ssl_verify:
description: 'If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly.'
type: boolean
default: false
username:
description: 'Username to use for Redis connections. If undefined, ACL authentication won''t be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`.'
type: string
shorthand_fields:
cluster_addresses:
items:
type: string
minLength: 1
type: array
sentinel_addresses:
items:
type: string
minLength: 1
type: array
timeout:
type: integer
strategy:
description: which vector database driver to use
type: string
enum:
- redis
threshold:
description: the default similarity threshold for accepting semantic search results (float)
type: number
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
consumer_group:
description: 'If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: ai-semantic-prompt-guard
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
AwsLambdaPlugin:
x-speakeasy-entity: PluginAwsLambda
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/AwsLambdaPluginConfig'
AwsLambdaPluginConfig:
properties:
config:
type: object
properties:
aws_assume_role_arn:
description: The target AWS IAM role ARN used to invoke the Lambda function.
type: string
aws_imds_protocol_version:
description: 'Identifier to select the IMDS protocol version to use: `v1` or `v2`.'
type: string
default: v1
enum:
- v1
- v2
aws_key:
description: The AWS key credential to be used when invoking the function.
type: string
aws_region:
description: 'A string representing a host name, such as example.com.'
type: string
aws_role_session_name:
description: The identifier of the assumed role session.
type: string
default: kong
aws_secret:
description: 'The AWS secret credential to be used when invoking the function. '
type: string
aws_sts_endpoint_url:
description: 'A string representing a URL, such as https://example.com/path/to/resource?q=search.'
type: string
awsgateway_compatible:
description: An optional value that defines whether the plugin should wrap requests into the Amazon API gateway.
type: boolean
default: false
base64_encode_body:
description: An optional value that Base64-encodes the request body.
type: boolean
default: true
disable_https:
type: boolean
default: false
empty_arrays_mode:
description: 'An optional value that defines whether Kong should send empty arrays (returned by Lambda function) as `[]` arrays or `{}` objects in JSON responses. The value `legacy` means Kong will send empty arrays as `{}` objects in response'
type: string
default: legacy
enum:
- correct
- legacy
forward_request_body:
description: 'An optional value that defines whether the request body is sent in the request_body field of the JSON-encoded request. If the body arguments can be parsed, they are sent in the separate request_body_args field of the request. '
type: boolean
default: false
forward_request_headers:
description: An optional value that defines whether the original HTTP request headers are sent as a map in the request_headers field of the JSON-encoded request.
type: boolean
default: false
forward_request_method:
description: An optional value that defines whether the original HTTP request method verb is sent in the request_method field of the JSON-encoded request.
type: boolean
default: false
forward_request_uri:
description: An optional value that defines whether the original HTTP request URI is sent in the request_uri field of the JSON-encoded request.
type: boolean
default: false
function_name:
description: The AWS Lambda function to invoke. Both function name and function ARN (including partial) are supported.
type: string
host:
description: 'A string representing a host name, such as example.com.'
type: string
invocation_type:
description: 'The InvocationType to use when invoking the function. Available types are RequestResponse, Event, DryRun.'
type: string
default: RequestResponse
enum:
- DryRun
- Event
- RequestResponse
is_proxy_integration:
description: An optional value that defines whether the response format to receive from the Lambda to this format.
type: boolean
default: false
keepalive:
description: An optional value in milliseconds that defines how long an idle connection lives before being closed.
type: number
default: 60000
log_type:
description: 'The LogType to use when invoking the function. By default, None and Tail are supported.'
type: string
default: Tail
enum:
- None
- Tail
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 443
maximum: 65535
minimum: 0
proxy_url:
description: 'A string representing a URL, such as https://example.com/path/to/resource?q=search.'
type: string
qualifier:
description: The qualifier to use when invoking the function.
type: string
skip_large_bodies:
description: An optional value that defines whether Kong should send large bodies that are buffered to disk
type: boolean
default: true
timeout:
description: An optional timeout in milliseconds when invoking the function.
type: number
default: 60000
unhandled_status:
description: 'The response status code to use (instead of the default 200, 202, or 204) in the case of an Unhandled Function Error.'
type: integer
maximum: 999
minimum: 100
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: aws-lambda
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
AzureFunctionsPlugin:
x-speakeasy-entity: PluginAzureFunctions
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/AzureFunctionsPluginConfig'
AzureFunctionsPluginConfig:
properties:
config:
type: object
properties:
apikey:
description: 'The apikey to access the Azure resources. If provided, it is injected as the `x-functions-key` header.'
type: string
appname:
description: The Azure app name.
type: string
clientid:
description: 'The `clientid` to access the Azure resources. If provided, it is injected as the `x-functions-clientid` header.'
type: string
functionname:
description: Name of the Azure function to invoke.
type: string
hostdomain:
description: The domain where the function resides.
type: string
default: azurewebsites.net
https:
description: Use of HTTPS to connect with the Azure Functions server.
type: boolean
default: true
https_verify:
description: Set to `true` to authenticate the Azure Functions server.
type: boolean
default: false
keepalive:
description: Time in milliseconds during which an idle connection to the Azure Functions server lives before being closed.
type: number
default: 60000
routeprefix:
description: Route prefix to use.
type: string
default: api
timeout:
description: Timeout in milliseconds before closing a connection to the Azure Functions server.
type: number
default: 600000
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: azure-functions
protocols:
description: A set of strings representing protocols.
type: array
items:
description: 'A string representing a protocol, such as HTTP or HTTPS.'
enum:
- grpc
- grpcs
- http
- https
- tcp
- tls
- tls_passthrough
- udp
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
BasicAuth:
x-speakeasy-entity: BasicAuth
type: object
properties:
consumer:
type: object
nullable: true
properties:
id:
type: string
x-foreign: true
created_at:
description: Unix epoch when the resource was created.
type: integer
nullable: true
id:
type: string
nullable: true
password:
type: string
tags:
type: array
items:
type: string
username:
type: string
example:
consumer:
id: 84a73fb8-50fc-44a7-a4d5-aa17728ee83f
id: b2f34145-0343-41a4-9602-4c69dec2f269
password: hashedsoopersecretvalue
username: darius
additionalProperties: false
required:
- username
- password
BasicAuthPlugin:
x-speakeasy-entity: PluginBasicAuth
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/BasicAuthPluginConfig'
BasicAuthPluginConfig:
properties:
config:
type: object
properties:
anonymous:
description: 'An optional string (Consumer UUID or username) value to use as an “anonymous” consumer if authentication fails. If empty (default null), the request will fail with an authentication failure `4xx`. Please note that this value must refer to the Consumer `id` or `username` attribute, and **not** its `custom_id`.'
type: string
hide_credentials:
description: 'An optional boolean value telling the plugin to show or hide the credential from the upstream service. If `true`, the plugin will strip the credential from the request (i.e. the `Authorization` header) before proxying it.'
type: boolean
default: false
realm:
description: When authentication fails the plugin sends `WWW-Authenticate` header with `realm` attribute value.
type: string
default: service
name:
type: string
const: basic-auth
protocols:
description: 'A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls.'
type: array
items:
enum:
- grpc
- grpcs
- http
- https
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
- ws
- wss
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
BasicAuthWithoutParents:
x-speakeasy-entity: BasicAuth
type: object
properties:
consumer:
type: object
nullable: true
properties:
id:
type: string
x-foreign: true
created_at:
description: Unix epoch when the resource was created.
type: integer
nullable: true
id:
type: string
nullable: true
password:
type: string
tags:
type: array
items:
type: string
username:
type: string
example:
id: b2f34145-0343-41a4-9602-4c69dec2f269
password: hashedsoopersecretvalue
username: darius
additionalProperties: false
required:
- username
- password
BotDetectionPlugin:
x-speakeasy-entity: PluginBotDetection
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/BotDetectionPluginConfig'
BotDetectionPluginConfig:
properties:
config:
type: object
properties:
allow:
description: An array of regular expressions that should be allowed. The regular expressions will be checked against the `User-Agent` header.
type: array
items:
is_regex: true
type: string
default: []
deny:
description: An array of regular expressions that should be denied. The regular expressions will be checked against the `User-Agent` header.
type: array
items:
is_regex: true
type: string
default: []
name:
type: string
const: bot-detection
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
CACertificate:
x-speakeasy-entity: CACertificate
description: A CA certificate object represents a trusted CA. These objects are used by Kong to verify the validity of a client or server certificate.
type: object
properties:
cert:
description: PEM-encoded public certificate of the CA.
type: string
cert_digest:
description: 'SHA256 hex digest of the public certificate. This field is read-only and it cannot be set by the caller, the value is automatically computed.'
type: string
nullable: true
created_at:
description: Unix epoch when the resource was created.
type: integer
nullable: true
id:
type: string
nullable: true
tags:
description: An optional set of strings associated with the Certificate for grouping and filtering.
type: array
items:
type: string
updated_at:
description: Unix epoch when the resource was last updated.
type: integer
nullable: true
example:
cert: |-
-----BEGIN CERTIFICATE-----
certificate-content
-----END CERTIFICATE-----
id: b2f34145-0343-41a4-9602-4c69dec2f260
additionalProperties: false
required:
- cert
CanaryPlugin:
x-speakeasy-entity: PluginCanary
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/CanaryPluginConfig'
CanaryPluginConfig:
properties:
config:
type: object
properties:
canary_by_header_name:
description: A string representing an HTTP header name.
type: string
duration:
description: The duration of the canary release in seconds.
type: number
default: 3600
minimum: 0
groups:
description: The groups allowed to access the canary release.
type: array
items:
type: string
hash:
description: |-
Hash algorithm to be used for canary release.
* `consumer`: The hash will be based on the consumer.
* `ip`: The hash will be based on the client IP address.
* `none`: No hash will be applied.
* `allow`: Allows the specified groups to access the canary release.
* `deny`: Denies the specified groups from accessing the canary release.
* `header`: The hash will be based on the specified header value.
type: string
default: consumer
enum:
- allow
- consumer
- deny
- header
- ip
- none
hash_header:
description: A string representing an HTTP header name.
type: string
percentage:
description: The percentage of traffic to be routed to the canary release.
type: number
maximum: 100
minimum: 0
start:
description: 'Future time in seconds since epoch, when the canary release will start. Ignored when `percentage` is set, or when using `allow` or `deny` in `hash`.'
type: number
steps:
description: The number of steps for the canary release.
type: number
default: 1000
minimum: 1
upstream_fallback:
description: Specifies whether to fallback to the upstream server if the canary release fails.
type: boolean
default: false
upstream_host:
description: 'A string representing a host name, such as example.com.'
type: string
upstream_port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
maximum: 65535
minimum: 0
upstream_uri:
description: The URI of the upstream server to be used for the canary release.
type: string
minLength: 1
shorthand_fields:
hash:
description: Hash algorithm to be used for canary release. `whitelist` is deprecated. Use `allow` instead `blacklist` is deprecated. Use `deny` instead.
type: string
name:
type: string
const: canary
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
Certificate:
x-speakeasy-entity: Certificate
description: 'A certificate object represents a public certificate, and can be optionally paired with the corresponding private key. These objects are used by Kong to handle SSL/TLS termination for encrypted requests, or for use as a trusted CA store when validating peer certificate of client/service. Certificates are optionally associated with SNI objects to tie a cert/key pair to one or more hostnames. If intermediate certificates are required in addition to the main certificate, they should be concatenated together into one string according to the following order: main certificate on the top, followed by any intermediates.'
type: object
properties:
cert:
description: 'PEM-encoded public certificate chain of the SSL key pair. This field is _referenceable_, which means it can be securely stored as a [secret](/gateway/latest/plan-and-deploy/security/secrets-management/getting-started) in a vault. References must follow a [specific format](/gateway/latest/plan-and-deploy/security/secrets-management/reference-format).'
type: string
cert_alt:
description: 'PEM-encoded public certificate chain of the alternate SSL key pair. This should only be set if you have both RSA and ECDSA types of certificate available and would like Kong to prefer serving using ECDSA certs when client advertises support for it. This field is _referenceable_, which means it can be securely stored as a [secret](/gateway/latest/plan-and-deploy/security/secrets-management/getting-started) in a vault. References must follow a [specific format](/gateway/latest/plan-and-deploy/security/secrets-management/reference-format).'
type: string
nullable: true
created_at:
description: Unix epoch when the resource was created.
type: integer
nullable: true
id:
type: string
nullable: true
key:
description: 'PEM-encoded private key of the SSL key pair. This field is _referenceable_, which means it can be securely stored as a [secret](/gateway/latest/plan-and-deploy/security/secrets-management/getting-started) in a vault. References must follow a [specific format](/gateway/latest/plan-and-deploy/security/secrets-management/reference-format).'
type: string
key_alt:
description: 'PEM-encoded private key of the alternate SSL key pair. This should only be set if you have both RSA and ECDSA types of certificate available and would like Kong to prefer serving using ECDSA certs when client advertises support for it. This field is _referenceable_, which means it can be securely stored as a [secret](/gateway/latest/plan-and-deploy/security/secrets-management/getting-started) in a vault. References must follow a [specific format](/gateway/latest/plan-and-deploy/security/secrets-management/reference-format).'
type: string
nullable: true
snis:
type: array
items:
type: string
nullable: true
tags:
description: An optional set of strings associated with the Certificate for grouping and filtering.
type: array
items:
type: string
updated_at:
description: Unix epoch when the resource was last updated.
type: integer
nullable: true
example:
cert: |-
-----BEGIN CERTIFICATE-----
certificate-content
-----END CERTIFICATE-----
id: b2f34145-0343-41a4-9602-4c69dec2f269
key: |-
-----BEGIN PRIVATE KEY-----
private-key-content
-----END PRIVATE KEY-----
additionalProperties: false
required:
- cert
- key
ConfluentPlugin:
x-speakeasy-entity: PluginConfluent
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/ConfluentPluginConfig'
ConfluentPluginConfig:
properties:
config:
type: object
properties:
bootstrap_servers:
description: 'Set of bootstrap brokers in a `{host: host, port: port}` list format.'
type: array
items:
properties:
host:
description: 'A string representing a host name, such as example.com.'
type: string
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
maximum: 65535
minimum: 0
required:
- host
- port
type: object
cluster_api_key:
description: Username/Apikey for SASL authentication.
type: string
cluster_api_secret:
description: Password/ApiSecret for SASL authentication.
type: string
cluster_name:
description: 'An identifier for the Kafka cluster. By default, this field generates a random string. You can also set your own custom cluster identifier. If more than one Kafka plugin is configured without a `cluster_name` (that is, if the default autogenerated value is removed), these plugins will use the same producer, and by extension, the same cluster. Logs will be sent to the leader of the cluster.'
type: string
confluent_cloud_api_key:
description: 'Apikey for authentication with Confluent Cloud. This allows for management tasks such as creating topics, ACLs, etc.'
type: string
confluent_cloud_api_secret:
description: The corresponding secret for the Confluent Cloud API key.
type: string
forward_body:
description: 'Include the request body in the message. At least one of these must be true: `forward_method`, `forward_uri`, `forward_headers`, `forward_body`.'
type: boolean
default: true
forward_headers:
description: 'Include the request headers in the message. At least one of these must be true: `forward_method`, `forward_uri`, `forward_headers`, `forward_body`.'
type: boolean
default: false
forward_method:
description: 'Include the request method in the message. At least one of these must be true: `forward_method`, `forward_uri`, `forward_headers`, `forward_body`.'
type: boolean
default: false
forward_uri:
description: 'Include the request URI and URI arguments (as in, query arguments) in the message. At least one of these must be true: `forward_method`, `forward_uri`, `forward_headers`, `forward_body`.'
type: boolean
default: false
keepalive:
description: Keepalive timeout in milliseconds.
type: integer
default: 60000
keepalive_enabled:
type: boolean
default: false
producer_async:
description: Flag to enable asynchronous mode.
type: boolean
default: true
producer_async_buffering_limits_messages_in_memory:
description: Maximum number of messages that can be buffered in memory in asynchronous mode.
type: integer
default: 50000
producer_async_flush_timeout:
description: Maximum time interval in milliseconds between buffer flushes in asynchronous mode.
type: integer
default: 1000
producer_request_acks:
description: 'The number of acknowledgments the producer requires the leader to have received before considering a request complete. Allowed values: 0 for no acknowledgments; 1 for only the leader; and -1 for the full ISR (In-Sync Replica set).'
type: integer
default: 1
enum:
- -1
- 0
- 1
producer_request_limits_bytes_per_request:
description: Maximum size of a Produce request in bytes.
type: integer
default: 1048576
producer_request_limits_messages_per_request:
description: Maximum number of messages to include into a single producer request.
type: integer
default: 200
producer_request_retries_backoff_timeout:
description: Backoff interval between retry attempts in milliseconds.
type: integer
default: 100
producer_request_retries_max_attempts:
description: Maximum number of retry attempts per single Produce request.
type: integer
default: 10
producer_request_timeout:
description: Time to wait for a Produce response in milliseconds.
type: integer
default: 2000
timeout:
description: Socket timeout in milliseconds.
type: integer
default: 10000
topic:
description: The Kafka topic to publish to.
type: string
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: confluent
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
Consumer:
x-speakeasy-entity: Consumer
description: 'The Consumer object represents a consumer - or a user - of a Service. You can either rely on Kong as the primary datastore, or you can map the consumer list with your database to keep consistency between Kong and your existing primary datastore.'
type: object
properties:
created_at:
description: Unix epoch when the resource was created.
type: integer
nullable: true
custom_id:
description: Field for storing an existing unique ID for the Consumer - useful for mapping Kong with users in your existing database. You must send either this field or `username` with the request.
type: string
nullable: true
id:
type: string
nullable: true
tags:
description: An optional set of strings associated with the Consumer for grouping and filtering.
type: array
items:
type: string
updated_at:
description: Unix epoch when the resource was last updated.
type: integer
nullable: true
username:
description: The unique username of the Consumer. You must send either this field or `custom_id` with the request.
type: string
nullable: true
example:
custom_id: '4200'
id: 8a388226-80e8-4027-a486-25e4f7db5d21
tags:
- silver-tier
username: bob-the-builder
additionalProperties: false
ConsumerGroup:
x-speakeasy-entity: ConsumerGroup
type: object
properties:
created_at:
description: Unix epoch when the resource was created.
type: integer
nullable: true
id:
type: string
nullable: true
name:
type: string
tags:
type: array
items:
type: string
updated_at:
description: Unix epoch when the resource was last updated.
type: integer
nullable: true
additionalProperties: false
required:
- name
ConsumerGroupInsideWrapper:
type: object
properties:
consumer_group:
$ref: '#/components/schemas/ConsumerGroup'
CorrelationIdPlugin:
x-speakeasy-entity: PluginCorrelationId
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/CorrelationIdPluginConfig'
CorrelationIdPluginConfig:
properties:
config:
type: object
properties:
echo_downstream:
description: Whether to echo the header back to downstream (the client).
type: boolean
default: false
generator:
description: 'The generator to use for the correlation ID. Accepted values are `uuid`, `uuid#counter`, and `tracker`. See [Generators](#generators).'
type: string
default: uuid#counter
enum:
- tracker
- uuid
- uuid#counter
header_name:
description: The HTTP header name to use for the correlation ID.
type: string
default: Kong-Request-ID
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: correlation-id
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
CorsPlugin:
x-speakeasy-entity: PluginCors
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/CorsPluginConfig'
CorsPluginConfig:
properties:
config:
type: object
properties:
credentials:
description: Flag to determine whether the `Access-Control-Allow-Credentials` header should be sent with `true` as the value.
type: boolean
default: false
exposed_headers:
description: 'Value for the `Access-Control-Expose-Headers` header. If not specified, no custom headers are exposed.'
type: array
items:
type: string
headers:
description: Value for the `Access-Control-Allow-Headers` header.
type: array
items:
type: string
max_age:
description: 'Indicates how long the results of the preflight request can be cached, in `seconds`.'
type: number
methods:
description: '''Value for the `Access-Control-Allow-Methods` header. Available options include `GET`, `HEAD`, `PUT`, `PATCH`, `POST`, `DELETE`, `OPTIONS`, `TRACE`, `CONNECT`. By default, all options are allowed.'''
type: array
items:
enum:
- CONNECT
- DELETE
- GET
- HEAD
- OPTIONS
- PATCH
- POST
- PUT
- TRACE
type: string
default:
- CONNECT
- DELETE
- GET
- HEAD
- OPTIONS
- PATCH
- POST
- PUT
- TRACE
origins:
description: 'List of allowed domains for the `Access-Control-Allow-Origin` header. If you want to allow all origins, add `*` as a single value to this configuration field. The accepted values can either be flat strings or PCRE regexes.'
type: array
items:
type: string
preflight_continue:
description: A boolean value that instructs the plugin to proxy the `OPTIONS` preflight request to the Upstream service.
type: boolean
default: false
private_network:
description: Flag to determine whether the `Access-Control-Allow-Private-Network` header should be sent with `true` as the value.
type: boolean
default: false
name:
type: string
const: cors
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
minLength: 1
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
DatadogPlugin:
x-speakeasy-entity: PluginDatadog
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/DatadogPluginConfig'
DatadogPluginConfig:
properties:
config:
type: object
properties:
consumer_tag:
description: String to be attached as tag of the consumer.
type: string
default: consumer
flush_timeout:
description: 'Optional time in seconds. If `queue_size` > 1, this is the max idle time before sending a log with less than `queue_size` records.'
type: number
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: localhost
metrics:
description: List of metrics to be logged.
type: array
items:
properties:
consumer_identifier:
description: Authenticated user detail
type: string
enum:
- consumer_id
- custom_id
- username
name:
description: Datadog metric’s name
type: string
enum:
- kong_latency
- latency
- request_count
- request_size
- response_size
- upstream_latency
sample_rate:
description: Sampling rate
type: number
maximum: 1
minimum: 0
stat_type:
description: Determines what sort of event the metric represents
type: string
enum:
- counter
- distribution
- gauge
- histogram
- meter
- set
- timer
tags:
description: List of tags
type: array
items:
pattern: '^.*[^:]$'
type: string
required:
- name
- stat_type
type: object
default:
- consumer_identifier: custom_id
name: kong_latency
sample_rate: 1
stat_type: timer
tags:
- 'app:kong'
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 8125
maximum: 65535
minimum: 0
prefix:
description: String to be attached as a prefix to a metric's name.
type: string
default: kong
queue:
type: object
properties:
concurrency_limit:
description: The number of of queue delivery timers. -1 indicates unlimited.
type: integer
default: 1
enum:
- -1
- 1
initial_retry_delay:
description: Time in seconds before the initial retry is made for a failing batch.
type: number
default: 0.01
maximum: 1000000
minimum: 0.001
max_batch_size:
description: Maximum number of entries that can be processed at a time.
type: integer
default: 1
maximum: 1000000
minimum: 1
max_bytes:
description: 'Maximum number of bytes that can be waiting on a queue, requires string content.'
type: integer
max_coalescing_delay:
description: Maximum number of (fractional) seconds to elapse after the first entry was queued before the queue starts calling the handler.
type: number
default: 1
maximum: 3600
minimum: 0
max_entries:
description: Maximum number of entries that can be waiting on the queue.
type: integer
default: 10000
maximum: 1000000
minimum: 1
max_retry_delay:
description: 'Maximum time in seconds between retries, caps exponential backoff.'
type: number
default: 60
maximum: 1000000
minimum: 0.001
max_retry_time:
description: Time in seconds before the queue gives up calling a failed handler for a batch.
type: number
default: 60
queue_size:
description: Maximum number of log entries to be sent on each message to the upstream server.
type: integer
retry_count:
description: Number of times to retry when sending data to the upstream server.
type: integer
service_name_tag:
description: String to be attached as the name of the service.
type: string
default: name
status_tag:
description: String to be attached as the tag of the HTTP status.
type: string
default: status
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: datadog
protocols:
description: A set of strings representing protocols.
type: array
items:
description: 'A string representing a protocol, such as HTTP or HTTPS.'
enum:
- grpc
- grpcs
- http
- https
- tcp
- tls
- tls_passthrough
- udp
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
DatadogTracingPlugin:
x-speakeasy-entity: PluginDatadogTracing
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/DatadogTracingPluginConfig'
DatadogTracingPluginConfig:
properties:
config:
type: object
properties:
batch_flush_delay:
type: integer
default: 3
batch_span_count:
type: integer
default: 200
connect_timeout:
type: integer
default: 1000
maximum: 2147483646
minimum: 0
endpoint:
type: string
environment:
type: string
default: none
read_timeout:
type: integer
default: 5000
maximum: 2147483646
minimum: 0
send_timeout:
type: integer
default: 5000
maximum: 2147483646
minimum: 0
service_name:
type: string
default: kong
consumer_group:
description: 'If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: datadog-tracing
protocols:
description: 'A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls.'
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
DegraphqlPlugin:
x-speakeasy-entity: PluginDegraphql
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/DegraphqlPluginConfig'
DegraphqlPluginConfig:
properties:
config:
type: object
properties:
graphql_server_path:
description: 'A string representing a URL path, such as /path/to/resource. Must start with a forward slash (/) and must not contain empty segments (i.e., two consecutive forward slashes).'
type: string
default: /graphql
name:
type: string
const: degraphql
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
ExitTransformerPlugin:
x-speakeasy-entity: PluginExitTransformer
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/ExitTransformerPluginConfig'
ExitTransformerPluginConfig:
properties:
config:
type: object
properties:
functions:
type: array
items:
type: string
handle_unexpected:
description: Determines whether to handle unexpected errors by transforming their responses.
type: boolean
default: false
handle_unknown:
description: Determines whether to handle unknown status codes by transforming their responses.
type: boolean
default: false
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: exit-transformer
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
FileLogPlugin:
x-speakeasy-entity: PluginFileLog
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/FileLogPluginConfig'
FileLogPluginConfig:
properties:
config:
type: object
properties:
custom_fields_by_lua:
description: Lua code as a key-value map
type: object
additionalProperties: true
path:
description: The file path of the output log file. The plugin creates the log file if it doesn't exist yet.
type: string
pattern: '^[^*&%%\`]+$'
reopen:
description: Determines whether the log file is closed and reopened on every request.
type: boolean
default: false
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: file-log
protocols:
description: A set of strings representing protocols.
type: array
items:
description: 'A string representing a protocol, such as HTTP or HTTPS.'
enum:
- grpc
- grpcs
- http
- https
- tcp
- tls
- tls_passthrough
- udp
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
ForwardProxyPlugin:
x-speakeasy-entity: PluginForwardProxy
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/ForwardProxyPluginConfig'
ForwardProxyPluginConfig:
properties:
config:
type: object
properties:
auth_password:
description: |-
The password to authenticate with, if the forward proxy is protected
by basic authentication.
type: string
auth_username:
description: |-
The username to authenticate with, if the forward proxy is protected
by basic authentication.
type: string
http_proxy_host:
description: 'A string representing a host name, such as example.com.'
type: string
http_proxy_port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
maximum: 65535
minimum: 0
https_proxy_host:
description: 'A string representing a host name, such as example.com.'
type: string
https_proxy_port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
maximum: 65535
minimum: 0
https_verify:
description: Whether the server certificate will be verified according to the CA certificates specified in lua_ssl_trusted_certificate.
type: boolean
default: false
proxy_scheme:
description: The proxy scheme to use when connecting. Only `http` is supported.
type: string
default: http
enum:
- http
x_headers:
description: Determines how to handle headers when forwarding the request.
type: string
default: append
enum:
- append
- delete
- transparent
shorthand_fields:
proxy_host:
type: string
proxy_port:
type: integer
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: forward-proxy
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
GatewayUnauthorizedError:
type: object
properties:
message:
type: string
status:
type: integer
required:
- message
- status
GraphqlProxyCacheAdvancedPlugin:
x-speakeasy-entity: PluginGraphqlProxyCacheAdvanced
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/GraphqlProxyCacheAdvancedPluginConfig'
GraphqlProxyCacheAdvancedPluginConfig:
properties:
config:
type: object
properties:
bypass_on_err:
description: 'Unhandled errors while trying to retrieve a cache entry (such as redis down) are resolved with `Bypass`, with the request going upstream.'
type: boolean
default: false
cache_ttl:
description: TTL in seconds of cache entities. Must be a value greater than 0.
type: integer
default: 300
minimum: 0
memory:
type: object
properties:
dictionary_name:
description: The name of the shared dictionary in which to hold cache entities when the memory strategy is selected. This dictionary currently must be defined manually in the Kong Nginx template.
type: string
default: kong_db_cache
redis:
type: object
properties:
cluster_max_redirections:
description: Maximum retry attempts for redirection.
type: integer
default: 5
cluster_nodes:
description: Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element.
type: array
items:
properties:
ip:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
minLength: 1
connect_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
connection_is_proxied:
description: 'If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address.'
type: boolean
default: false
database:
description: Database to use for the Redis connection when using the `redis` strategy
type: integer
default: 0
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
keepalive_backlog:
description: 'Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`.'
type: integer
maximum: 2147483646
minimum: 0
keepalive_pool_size:
description: 'The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn''t specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low.'
type: integer
default: 256
maximum: 2147483646
minimum: 1
password:
description: 'Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis.'
type: string
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
read_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
send_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
sentinel_master:
description: Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel.
type: string
sentinel_nodes:
description: Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element.
type: array
items:
properties:
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
minLength: 1
sentinel_password:
description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.'
type: string
sentinel_role:
description: Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel.
type: string
enum:
- any
- master
- slave
sentinel_username:
description: 'Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won''t be performed. This requires Redis v6.2.0+.'
type: string
server_name:
description: A string representing an SNI (server name indication) value for TLS.
type: string
ssl:
description: 'If set to true, uses SSL to connect to Redis.'
type: boolean
default: false
ssl_verify:
description: 'If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly.'
type: boolean
default: false
username:
description: 'Username to use for Redis connections. If undefined, ACL authentication won''t be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`.'
type: string
shorthand_fields:
cluster_addresses:
items:
type: string
minLength: 1
type: array
sentinel_addresses:
items:
type: string
minLength: 1
type: array
timeout:
type: integer
strategy:
description: The backing data store in which to hold cached entities. Accepted value is `memory`.
type: string
default: memory
enum:
- memory
- redis
vary_headers:
description: 'Relevant headers considered for the cache key. If undefined, none of the headers are taken into consideration.'
type: array
items:
type: string
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: graphql-proxy-cache-advanced
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
GraphqlRateLimitingAdvancedPlugin:
x-speakeasy-entity: PluginGraphqlRateLimitingAdvanced
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/GraphqlRateLimitingAdvancedPluginConfig'
GraphqlRateLimitingAdvancedPluginConfig:
properties:
config:
type: object
properties:
cost_strategy:
description: Strategy to use to evaluate query costs. Either `default` or `node_quantifier`.
type: string
default: default
enum:
- default
- node_quantifier
dictionary_name:
description: The shared dictionary where counters will be stored until the next sync cycle.
type: string
default: kong_rate_limiting_counters
hide_client_headers:
description: 'Optionally hide informative response headers. Available options: `true` or `false`.'
type: boolean
default: false
identifier:
description: 'How to define the rate limit key. Can be `ip`, `credential`, `consumer`.'
type: string
default: consumer
enum:
- consumer
- credential
- ip
limit:
description: One or more requests-per-window limits to apply.
type: array
items:
type: number
max_cost:
description: A defined maximum cost per query. 0 means unlimited.
type: number
default: 0
namespace:
description: 'The rate limiting namespace to use for this plugin instance. This namespace is used to share rate limiting counters across different instances. If it is not provided, a random UUID is generated. NOTE: For the plugin instances sharing the same namespace, all the configurations that are required for synchronizing counters, e.g. `strategy`, `redis`, `sync_rate`, `window_size`, `dictionary_name`, need to be the same.'
type: string
redis:
type: object
properties:
cluster_max_redirections:
description: Maximum retry attempts for redirection.
type: integer
default: 5
cluster_nodes:
description: Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element.
type: array
items:
properties:
ip:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
minLength: 1
connect_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
connection_is_proxied:
description: 'If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address.'
type: boolean
default: false
database:
description: Database to use for the Redis connection when using the `redis` strategy
type: integer
default: 0
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
keepalive_backlog:
description: 'Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`.'
type: integer
maximum: 2147483646
minimum: 0
keepalive_pool_size:
description: 'The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn''t specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low.'
type: integer
default: 256
maximum: 2147483646
minimum: 1
password:
description: 'Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis.'
type: string
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
read_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
send_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
sentinel_master:
description: Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel.
type: string
sentinel_nodes:
description: Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element.
type: array
items:
properties:
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
minLength: 1
sentinel_password:
description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.'
type: string
sentinel_role:
description: Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel.
type: string
enum:
- any
- master
- slave
sentinel_username:
description: 'Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won''t be performed. This requires Redis v6.2.0+.'
type: string
server_name:
description: A string representing an SNI (server name indication) value for TLS.
type: string
ssl:
description: 'If set to true, uses SSL to connect to Redis.'
type: boolean
default: false
ssl_verify:
description: 'If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly.'
type: boolean
default: false
username:
description: 'Username to use for Redis connections. If undefined, ACL authentication won''t be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`.'
type: string
shorthand_fields:
cluster_addresses:
items:
type: string
minLength: 1
type: array
sentinel_addresses:
items:
type: string
minLength: 1
type: array
timeout:
type: integer
score_factor:
description: A scoring factor to multiply (or divide) the cost. The `score_factor` must always be greater than 0.
type: number
default: 1
minimum: 0
strategy:
description: The rate-limiting strategy to use for retrieving and incrementing the limits.
type: string
default: cluster
enum:
- cluster
- redis
sync_rate:
description: How often to sync counter data to the central data store. A value of 0 results in synchronous behavior; a value of -1 ignores sync behavior entirely and only stores counters in node memory. A value greater than 0 syncs the counters in that many number of seconds.
type: number
window_size:
description: One or more window sizes to apply a limit to (defined in seconds).
type: array
items:
type: number
window_type:
description: Sets the time window to either `sliding` or `fixed`.
type: string
default: sliding
enum:
- fixed
- sliding
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: graphql-rate-limiting-advanced
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
GrpcGatewayPlugin:
x-speakeasy-entity: PluginGrpcGateway
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/GrpcGatewayPluginConfig'
GrpcGatewayPluginConfig:
properties:
config:
type: object
properties:
proto:
description: Describes the gRPC types and methods.
type: string
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: grpc-gateway
protocols:
description: A set of strings representing protocols.
type: array
items:
description: 'A string representing a protocol, such as HTTP or HTTPS.'
enum:
- grpc
- grpcs
- http
- https
- tcp
- tls
- tls_passthrough
- udp
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
GrpcWebPlugin:
x-speakeasy-entity: PluginGrpcWeb
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/GrpcWebPluginConfig'
GrpcWebPluginConfig:
properties:
config:
type: object
properties:
allow_origin_header:
description: The value of the `Access-Control-Allow-Origin` header in the response to the gRPC-Web client.
type: string
default: '*'
pass_stripped_path:
description: If set to `true` causes the plugin to pass the stripped request path to the upstream gRPC service.
type: boolean
proto:
description: 'If present, describes the gRPC types and methods. Required to support payload transcoding. When absent, the web client must use application/grpw-web+proto content.'
type: string
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: grpc-web
protocols:
description: A set of strings representing protocols.
type: array
items:
description: 'A string representing a protocol, such as HTTP or HTTPS.'
enum:
- grpc
- grpcs
- http
- https
- tcp
- tls
- tls_passthrough
- udp
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
HMACAuth:
x-speakeasy-entity: HMACAuth
type: object
properties:
consumer:
type: object
nullable: true
properties:
id:
type: string
x-foreign: true
created_at:
description: Unix epoch when the resource was created.
type: integer
nullable: true
id:
type: string
nullable: true
secret:
type: string
nullable: true
tags:
type: array
items:
type: string
username:
type: string
example:
consumer:
id: 84a73fb8-50fc-44a7-a4d5-aa17728ee83f
id: 75695322-e8a0-4109-aed4-5416b0308d85
secret: wQazJ304DW5huJklHgUfjfiSyCyTAEDZ
username: xerxes
additionalProperties: false
required:
- username
HMACAuthWithoutParents:
x-speakeasy-entity: HMACAuth
type: object
properties:
consumer:
type: object
nullable: true
properties:
id:
type: string
x-foreign: true
created_at:
description: Unix epoch when the resource was created.
type: integer
nullable: true
id:
type: string
nullable: true
secret:
type: string
nullable: true
tags:
type: array
items:
type: string
username:
type: string
example:
id: 75695322-e8a0-4109-aed4-5416b0308d85
secret: wQazJ304DW5huJklHgUfjfiSyCyTAEDZ
username: xerxes
additionalProperties: false
required:
- username
HeaderCertAuthPlugin:
x-speakeasy-entity: PluginHeaderCertAuth
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/HeaderCertAuthPluginConfig'
HeaderCertAuthPluginConfig:
properties:
config:
type: object
properties:
allow_partial_chain:
description: 'Allow certificate verification with only an intermediate certificate. When this is enabled, you don''t need to upload the full chain to Kong Certificates.'
type: boolean
default: false
anonymous:
description: 'An optional string (consumer UUID or username) value to use as an “anonymous” consumer if authentication fails. If empty (default null), the request fails with an authentication failure `4xx`. Note that this value must refer to the consumer `id` or `username` attribute, and **not** its `custom_id`.'
type: string
authenticated_group_by:
description: 'Certificate property to use as the authenticated group. Valid values are `CN` (Common Name) or `DN` (Distinguished Name). Once `skip_consumer_lookup` is applied, any client with a valid certificate can access the Service/API. To restrict usage to only some of the authenticated users, also add the ACL plugin (not covered here) and create allowed or denied groups of users.'
type: string
default: CN
enum:
- CN
- DN
ca_certificates:
description: List of CA Certificates strings to use as Certificate Authorities (CA) when validating a client certificate. At least one is required but you can specify as many as needed. The value of this array is comprised of primary keys (`id`).
type: array
items:
type: string
uuid: true
cache_ttl:
description: Cache expiry time in seconds.
type: number
default: 60
cert_cache_ttl:
description: The length of time in milliseconds between refreshes of the revocation check status cache.
type: number
default: 60000
certificate_header_format:
description: 'Format of the certificate header. Supported formats: `base64_encoded`, `url_encoded`.'
type: string
enum:
- base64_encoded
- url_encoded
certificate_header_name:
description: 'Name of the header that contains the certificate, received from the WAF or other L7 downstream proxy.'
type: string
consumer_by:
description: 'Whether to match the subject name of the client-supplied certificate against consumer''s `username` and/or `custom_id` attribute. If set to `[]` (the empty array), then auto-matching is disabled.'
type: array
items:
enum:
- custom_id
- username
type: string
default:
- custom_id
- username
default_consumer:
description: 'The UUID or username of the consumer to use when a trusted client certificate is presented but no consumer matches. Note that this value must refer to the consumer `id` or `username` attribute, and **not** its `custom_id`.'
type: string
http_proxy_host:
description: 'A string representing a host name, such as example.com.'
type: string
http_proxy_port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
maximum: 65535
minimum: 0
http_timeout:
description: HTTP timeout threshold in milliseconds when communicating with the OCSP server or downloading CRL.
type: number
default: 30000
https_proxy_host:
description: 'A string representing a host name, such as example.com.'
type: string
https_proxy_port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
maximum: 65535
minimum: 0
revocation_check_mode:
description: 'Controls client certificate revocation check behavior. If set to `SKIP`, no revocation check is performed. If set to `IGNORE_CA_ERROR`, the plugin respects the revocation status when either OCSP or CRL URL is set, and doesn''t fail on network issues. If set to `STRICT`, the plugin only treats the certificate as valid when it''s able to verify the revocation status.'
type: string
default: IGNORE_CA_ERROR
enum:
- IGNORE_CA_ERROR
- SKIP
- STRICT
secure_source:
description: 'Whether to secure the source of the request. If set to `true`, the plugin will only allow requests from trusted IPs (configured by the `trusted_ips` config option).'
type: boolean
default: true
skip_consumer_lookup:
description: Skip consumer lookup once certificate is trusted against the configured CA list.
type: boolean
default: false
name:
type: string
const: header-cert-auth
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
HmacAuthPlugin:
x-speakeasy-entity: PluginHmacAuth
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/HmacAuthPluginConfig'
HmacAuthPluginConfig:
properties:
config:
type: object
properties:
algorithms:
description: 'A list of HMAC digest algorithms that the user wants to support. Allowed values are `hmac-sha1`, `hmac-sha256`, `hmac-sha384`, and `hmac-sha512`'
type: array
items:
enum:
- hmac-sha1
- hmac-sha256
- hmac-sha384
- hmac-sha512
type: string
default:
- hmac-sha1
- hmac-sha256
- hmac-sha384
- hmac-sha512
anonymous:
description: An optional string (Consumer UUID or username) value to use as an “anonymous” consumer if authentication fails.
type: string
clock_skew:
description: Clock skew in seconds to prevent replay attacks.
type: number
default: 300
minimum: 0
enforce_headers:
description: A list of headers that the client should at least use for HTTP signature creation.
type: array
items:
type: string
default: []
hide_credentials:
description: An optional boolean value telling the plugin to show or hide the credential from the upstream service.
type: boolean
default: false
realm:
description: When authentication fails the plugin sends `WWW-Authenticate` header with `realm` attribute value.
type: string
validate_request_body:
description: A boolean value telling the plugin to enable body validation.
type: boolean
default: false
name:
type: string
const: hmac-auth
protocols:
description: 'A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls.'
type: array
items:
enum:
- grpc
- grpcs
- http
- https
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
- ws
- wss
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
HttpLogPlugin:
x-speakeasy-entity: PluginHttpLog
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/HttpLogPluginConfig'
HttpLogPluginConfig:
properties:
config:
type: object
properties:
content_type:
description: Indicates the type of data sent. The only available option is `application/json`.
type: string
default: application/json
enum:
- application/json
- application/json; charset=utf-8
custom_fields_by_lua:
description: Lua code as a key-value map
type: object
additionalProperties: true
flush_timeout:
description: 'Optional time in seconds. If `queue_size` > 1, this is the max idle time before sending a log with less than `queue_size` records.'
type: number
headers:
description: 'An optional table of headers included in the HTTP message to the upstream server. Values are indexed by header name, and each header name accepts a single string.'
type: object
additionalProperties: true
http_endpoint:
description: 'A string representing a URL, such as https://example.com/path/to/resource?q=search.'
type: string
keepalive:
description: An optional value in milliseconds that defines how long an idle connection will live before being closed.
type: number
default: 60000
method:
description: 'An optional method used to send data to the HTTP server. Supported values are `POST` (default), `PUT`, and `PATCH`.'
type: string
default: POST
enum:
- PATCH
- POST
- PUT
queue:
type: object
properties:
concurrency_limit:
description: The number of of queue delivery timers. -1 indicates unlimited.
type: integer
default: 1
enum:
- -1
- 1
initial_retry_delay:
description: Time in seconds before the initial retry is made for a failing batch.
type: number
default: 0.01
maximum: 1000000
minimum: 0.001
max_batch_size:
description: Maximum number of entries that can be processed at a time.
type: integer
default: 1
maximum: 1000000
minimum: 1
max_bytes:
description: 'Maximum number of bytes that can be waiting on a queue, requires string content.'
type: integer
max_coalescing_delay:
description: Maximum number of (fractional) seconds to elapse after the first entry was queued before the queue starts calling the handler.
type: number
default: 1
maximum: 3600
minimum: 0
max_entries:
description: Maximum number of entries that can be waiting on the queue.
type: integer
default: 10000
maximum: 1000000
minimum: 1
max_retry_delay:
description: 'Maximum time in seconds between retries, caps exponential backoff.'
type: number
default: 60
maximum: 1000000
minimum: 0.001
max_retry_time:
description: Time in seconds before the queue gives up calling a failed handler for a batch.
type: number
default: 60
queue_size:
description: Maximum number of log entries to be sent on each message to the upstream server.
type: integer
retry_count:
description: Number of times to retry when sending data to the upstream server.
type: integer
timeout:
description: An optional timeout in milliseconds when sending data to the upstream server.
type: number
default: 10000
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: http-log
protocols:
description: A set of strings representing protocols.
type: array
items:
description: 'A string representing a protocol, such as HTTP or HTTPS.'
enum:
- grpc
- grpcs
- http
- https
- tcp
- tls
- tls_passthrough
- udp
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
InjectionProtectionPlugin:
x-speakeasy-entity: PluginInjectionProtection
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/InjectionProtectionPluginConfig'
InjectionProtectionPluginConfig:
properties:
config:
type: object
properties:
custom_injections:
description: Custom regexes to check for.
type: array
items:
properties:
name:
description: A unique name for this injection.
type: string
regex:
description: The regex to match against.
type: string
is_regex: true
required:
- name
- regex
type: object
enforcement_mode:
description: Enforcement mode of the security policy.
type: string
default: block
enum:
- block
- log_only
error_message:
description: The response message when validation fails
type: string
default: Bad Request
error_status_code:
description: The response status code when validation fails.
type: integer
default: 400
maximum: 499
minimum: 400
injection_types:
description: The type of injections to check for.
type: array
items:
enum:
- java_exception
- js
- sql
- ssi
- xpath_abbreviated
- xpath_extended
type: string
default:
- sql
locations:
description: The locations to check for injection.
type: array
items:
enum:
- body
- headers
- path_and_query
type: string
default:
- path_and_query
name:
type: string
const: injection-protection
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
IpRestrictionPlugin:
x-speakeasy-entity: PluginIpRestriction
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/IpRestrictionPluginConfig'
IpRestrictionPluginConfig:
properties:
config:
type: object
properties:
allow:
description: List of IPs or CIDR ranges to allow. One of `config.allow` or `config.deny` must be specified.
type: array
items:
description: 'A string representing an IP address or CIDR block, such as 192.168.1.1 or 192.168.0.0/16.'
type: string
deny:
description: List of IPs or CIDR ranges to deny. One of `config.allow` or `config.deny` must be specified.
type: array
items:
description: 'A string representing an IP address or CIDR block, such as 192.168.1.1 or 192.168.0.0/16.'
type: string
message:
description: The message to send as a response body to rejected requests.
type: string
status:
description: The HTTP status of the requests that will be rejected by the plugin.
type: number
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
consumer_group:
description: 'If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: ip-restriction
protocols:
description: A set of strings representing protocols.
type: array
items:
description: 'A string representing a protocol, such as HTTP or HTTPS.'
enum:
- grpc
- grpcs
- http
- https
- tcp
- tls
- tls_passthrough
- udp
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
- tcp
- tls
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
JWT:
x-speakeasy-entity: JWT
type: object
properties:
algorithm:
type: string
default: HS256
enum:
- HS256
- HS384
- HS512
- RS256
- RS384
- RS512
- ES256
- ES384
- ES512
- PS256
- PS384
- PS512
- EdDSA
nullable: true
consumer:
type: object
nullable: true
properties:
id:
type: string
x-foreign: true
created_at:
description: Unix epoch when the resource was created.
type: integer
nullable: true
id:
type: string
nullable: true
key:
type: string
nullable: true
rsa_public_key:
type: string
nullable: true
secret:
type: string
nullable: true
tags:
type: array
items:
type: string
example:
algorithm: HS256
consumer:
id: 84a73fb8-50fc-44a7-a4d5-aa17728ee83f
id: 75695322-e8a0-4109-aed4-5416b0308d85
key: YJdmaDvVTJxtcWRCvkMikc8oELgAVNcz
secret: C50k0bcahDhLNhLKSUBSR1OMiFGzNZ7X
additionalProperties: false
JWTWithoutParents:
x-speakeasy-entity: JWT
type: object
properties:
algorithm:
type: string
default: HS256
enum:
- HS256
- HS384
- HS512
- RS256
- RS384
- RS512
- ES256
- ES384
- ES512
- PS256
- PS384
- PS512
- EdDSA
nullable: true
consumer:
type: object
nullable: true
properties:
id:
type: string
x-foreign: true
created_at:
description: Unix epoch when the resource was created.
type: integer
nullable: true
id:
type: string
nullable: true
key:
type: string
nullable: true
rsa_public_key:
type: string
nullable: true
secret:
type: string
nullable: true
tags:
type: array
items:
type: string
example:
algorithm: HS256
id: 75695322-e8a0-4109-aed4-5416b0308d85
key: YJdmaDvVTJxtcWRCvkMikc8oELgAVNcz
secret: C50k0bcahDhLNhLKSUBSR1OMiFGzNZ7X
additionalProperties: false
JqPlugin:
x-speakeasy-entity: PluginJq
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/JqPluginConfig'
JqPluginConfig:
properties:
config:
type: object
properties:
request_if_media_type:
type: array
items:
type: string
default:
- application/json
request_jq_program:
type: string
request_jq_program_options:
type: object
properties:
ascii_output:
type: boolean
default: false
compact_output:
type: boolean
default: true
join_output:
type: boolean
default: false
raw_output:
type: boolean
default: false
sort_keys:
type: boolean
default: false
response_if_media_type:
type: array
items:
type: string
default:
- application/json
response_if_status_code:
type: array
items:
maximum: 599
minimum: 100
type: integer
default:
- 200
response_jq_program:
type: string
response_jq_program_options:
type: object
properties:
ascii_output:
type: boolean
default: false
compact_output:
type: boolean
default: true
join_output:
type: boolean
default: false
raw_output:
type: boolean
default: false
sort_keys:
type: boolean
default: false
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: jq
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
JsonThreatProtectionPlugin:
x-speakeasy-entity: PluginJsonThreatProtection
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/JsonThreatProtectionPluginConfig'
JsonThreatProtectionPluginConfig:
properties:
config:
type: object
properties:
enforcement_mode:
description: Enforcement mode of the security policy.
type: string
default: block
enum:
- block
- log_only
error_message:
description: The response message when validation fails
type: string
default: Bad Request
error_status_code:
description: The response status code when validation fails.
type: integer
default: 400
maximum: 499
minimum: 400
max_array_element_count:
description: Max number of elements in an array. -1 means unlimited.
type: integer
default: -1
maximum: 2147483648
minimum: -1
max_body_size:
description: Max size of the request body. -1 means unlimited.
type: integer
default: 8192
maximum: 2147483648
minimum: -1
max_container_depth:
description: Max nested depth of objects and arrays. -1 means unlimited.
type: integer
default: -1
maximum: 2147483648
minimum: -1
max_object_entry_count:
description: Max number of entries in an object. -1 means unlimited.
type: integer
default: -1
maximum: 2147483648
minimum: -1
max_object_entry_name_length:
description: Max string length of object name. -1 means unlimited.
type: integer
default: -1
maximum: 2147483648
minimum: -1
max_string_value_length:
description: Max string value length. -1 means unlimited.
type: integer
default: -1
maximum: 2147483648
minimum: -1
name:
type: string
const: json-threat-protection
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
JweDecryptPlugin:
x-speakeasy-entity: PluginJweDecrypt
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/JweDecryptPluginConfig'
JweDecryptPluginConfig:
properties:
config:
type: object
properties:
forward_header_name:
description: The name of the header that is used to set the decrypted value.
type: string
default: Authorization
key_sets:
description: Denote the name or names of all Key Sets that should be inspected when trying to find a suitable key to decrypt the JWE token.
type: array
items:
type: string
lookup_header_name:
description: The name of the header to look for the JWE token.
type: string
default: Authorization
strict:
description: 'Defines how the plugin behaves in cases where no token was found in the request. When using `strict` mode, the request requires a token to be present and subsequently raise an error if none could be found.'
type: boolean
default: true
name:
type: string
const: jwe-decrypt
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
JwtPlugin:
x-speakeasy-entity: PluginJwt
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/JwtPluginConfig'
JwtPluginConfig:
properties:
config:
type: object
properties:
anonymous:
description: An optional string (consumer UUID or username) value to use as an “anonymous” consumer if authentication fails.
type: string
claims_to_verify:
description: 'A list of registered claims (according to RFC 7519) that Kong can verify as well. Accepted values: one of exp or nbf.'
type: array
items:
enum:
- exp
- nbf
type: string
cookie_names:
description: A list of cookie names that Kong will inspect to retrieve JWTs.
type: array
items:
type: string
default: []
header_names:
description: A list of HTTP header names that Kong will inspect to retrieve JWTs.
type: array
items:
type: string
default:
- authorization
key_claim_name:
description: 'The name of the claim in which the key identifying the secret must be passed. The plugin will attempt to read this claim from the JWT payload and the header, in that order.'
type: string
default: iss
maximum_expiration:
description: A value between 0 and 31536000 (365 days) limiting the lifetime of the JWT to maximum_expiration seconds in the future.
type: number
default: 0
maximum: 31536000
minimum: 0
realm:
description: When authentication fails the plugin sends `WWW-Authenticate` header with `realm` attribute value.
type: string
run_on_preflight:
description: 'A boolean value that indicates whether the plugin should run (and try to authenticate) on OPTIONS preflight requests. If set to false, then OPTIONS requests will always be allowed.'
type: boolean
default: true
secret_is_base64:
description: 'If true, the plugin assumes the credential’s secret to be base64 encoded. You will need to create a base64-encoded secret for your Consumer, and sign your JWT with the original secret.'
type: boolean
default: false
uri_param_names:
description: A list of querystring parameters that Kong will inspect to retrieve JWTs.
type: array
items:
type: string
default:
- jwt
name:
type: string
const: jwt
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
JwtSignerPlugin:
x-speakeasy-entity: PluginJwtSigner
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/JwtSignerPluginConfig'
JwtSignerPluginConfig:
properties:
config:
type: object
properties:
access_token_consumer_by:
description: 'When the plugin tries to apply an access token to a Kong consumer mapping, it tries to find a matching Kong consumer from properties defined using this configuration parameter. The parameter can take an array of alues. Valid values are `id`, `username`, and `custom_id`.'
type: array
items:
enum:
- custom_id
- id
- username
type: string
default:
- custom_id
- username
access_token_consumer_claim:
description: 'When you set a value for this parameter, the plugin tries to map an arbitrary claim specified with this configuration parameter (for example, `sub` or `username`) in an access token to Kong consumer entity.'
type: array
items:
type: string
access_token_introspection_authorization:
description: 'If the introspection endpoint requires client authentication (client being the JWT Signer plugin), you can specify the `Authorization` header''s value with this configuration parameter.'
type: string
access_token_introspection_body_args:
description: 'This parameter allows you to pass URL encoded request body arguments. For example: `resource=` or `a=1&b=&c`.'
type: string
access_token_introspection_consumer_by:
description: 'When the plugin tries to do access token introspection results to Kong consumer mapping, it tries to find a matching Kong consumer from properties defined using this configuration parameter. The parameter can take an array of values.'
type: array
items:
enum:
- custom_id
- id
- username
type: string
default:
- custom_id
- username
access_token_introspection_consumer_claim:
description: 'When you set a value for this parameter, the plugin tries to map an arbitrary claim specified with this configuration parameter (such as `sub` or `username`) in access token introspection results to the Kong consumer entity.'
type: array
items:
type: string
access_token_introspection_endpoint:
description: 'When you use `opaque` access tokens and you want to turn on access token introspection, you need to specify the OAuth 2.0 introspection endpoint URI with this configuration parameter.'
type: string
access_token_introspection_hint:
description: 'If you need to give `hint` parameter when introspecting an access token, use this parameter to specify the value. By default, the plugin sends `hint=access_token`.'
type: string
default: access_token
access_token_introspection_jwt_claim:
description: 'If your introspection endpoint returns an access token in one of the keys (or claims) within the introspection results (`JSON`). If the key cannot be found, the plugin responds with `401 Unauthorized`. Also if the key is found but cannot be decoded as JWT, it also responds with `401 Unauthorized`.'
type: array
items:
type: string
access_token_introspection_leeway:
description: Adjusts clock skew between the token issuer introspection results and Kong. The value is added to introspection results (`JSON`) `exp` claim/property before checking token expiry against Kong servers current time in seconds. You can disable access token introspection `expiry` verification altogether with `config.verify_access_token_introspection_expiry`.
type: number
default: 0
access_token_introspection_scopes_claim:
description: 'Specify the claim/property in access token introspection results (`JSON`) to be verified against values of `config.access_token_introspection_scopes_required`. This supports nested claims. For example, with Keycloak you could use `[ "realm_access", "roles" ]`, hich can be given as `realm_access,roles` (form post). If the claim is not found in access token introspection results, and you have specified `config.access_token_introspection_scopes_required`, the plugin responds with `403 Forbidden`.'
type: array
items:
type: string
default:
- scope
access_token_introspection_scopes_required:
description: Specify the required values (or scopes) that are checked by an introspection claim/property specified by `config.access_token_introspection_scopes_claim`.
type: array
items:
type: string
access_token_introspection_timeout:
description: 'Timeout in milliseconds for an introspection request. The plugin tries to introspect twice if the first request fails for some reason. If both requests timeout, then the plugin runs two times the `config.access_token_introspection_timeout` on access token introspection.'
type: number
access_token_issuer:
description: The `iss` claim of a signed or re-signed access token is set to this value. Original `iss` claim of the incoming token (possibly introspected) is stored in `original_iss` claim of the newly signed access token.
type: string
default: kong
access_token_jwks_uri:
description: Specify the URI where the plugin can fetch the public keys (JWKS) to verify the signature of the access token.
type: string
access_token_jwks_uri_client_certificate:
description: The client certificate that will be used to authenticate Kong if `access_token_jwks_uri` is an https uri that requires mTLS Auth.
type: string
access_token_jwks_uri_client_password:
description: The client password that will be used to authenticate Kong if `access_token_jwks_uri` is a uri that requires Basic Auth. Should be configured together with `access_token_jwks_uri_client_username`
type: string
access_token_jwks_uri_client_username:
description: The client username that will be used to authenticate Kong if `access_token_jwks_uri` is a uri that requires Basic Auth. Should be configured together with `access_token_jwks_uri_client_password`
type: string
access_token_jwks_uri_rotate_period:
description: Specify the period (in seconds) to auto-rotate the jwks for `access_token_jwks_uri`. The default value 0 means no auto-rotation.
type: number
default: 0
access_token_keyset:
description: The name of the keyset containing signing keys.
type: string
default: kong
access_token_keyset_client_certificate:
description: The client certificate that will be used to authenticate Kong if `access_token_keyset` is an https uri that requires mTLS Auth.
type: string
access_token_keyset_client_password:
description: The client password that will be used to authenticate Kong if `access_token_keyset` is a uri that requires Basic Auth. Should be configured together with `access_token_keyset_client_username`
type: string
access_token_keyset_client_username:
description: The client username that will be used to authenticate Kong if `access_token_keyset` is a uri that requires Basic Auth. Should be configured together with `access_token_keyset_client_password`
type: string
access_token_keyset_rotate_period:
description: Specify the period (in seconds) to auto-rotate the jwks for `access_token_keyset`. The default value 0 means no auto-rotation.
type: number
default: 0
access_token_leeway:
description: Adjusts clock skew between the token issuer and Kong. The value is added to the token's `exp` claim before checking token expiry against Kong servers' current time in seconds. You can disable access token `expiry` verification altogether with `config.verify_access_token_expiry`.
type: number
default: 0
access_token_optional:
description: 'If an access token is not provided or no `config.access_token_request_header` is specified, the plugin cannot verify the access token. In that case, the plugin normally responds with `401 Unauthorized` (client didn''t send a token) or `500 Unexpected` (a configuration error). Use this parameter to allow the request to proceed even when there is no token to check. If the token is provided, then this parameter has no effect'
type: boolean
default: false
access_token_request_header:
description: This parameter tells the name of the header where to look for the access token.
type: string
default: Authorization
access_token_scopes_claim:
description: Specify the claim in an access token to verify against values of `config.access_token_scopes_required`.
type: array
items:
type: string
default:
- scope
access_token_scopes_required:
description: Specify the required values (or scopes) that are checked by a claim specified by `config.access_token_scopes_claim`.
type: array
items:
type: string
access_token_signing_algorithm:
description: 'When this plugin sets the upstream header as specified with `config.access_token_upstream_header`, re-signs the original access token using the private keys of the JWT Signer plugin. Specify the algorithm that is used to sign the token. The `config.access_token_issuer` specifies which `keyset` is used to sign the new token issued by Kong using the specified signing algorithm.'
type: string
default: RS256
enum:
- ES256
- ES384
- ES512
- EdDSA
- HS256
- HS384
- HS512
- PS256
- PS384
- PS512
- RS256
- RS512
access_token_upstream_header:
description: 'Removes the `config.access_token_request_header` from the request after reading its value. With `config.access_token_upstream_header`, you can specify the upstream header where the plugin adds the Kong signed token. If you don''t specify a value, such as use `null` or `""` (empty string), the plugin does not even try to sign or re-sign the token.'
type: string
default: 'Authorization:Bearer'
access_token_upstream_leeway:
description: 'If you want to add or subtract (using a negative value) expiry time (in seconds) of the original access token, you can specify a value that is added to the original access token''s `exp` claim.'
type: number
default: 0
add_access_token_claims:
description: 'Add customized claims if they are not present yet. Value can be a regular or JSON string; if JSON, decoded data is used as the claim''s value.'
type: object
additionalProperties: true
add_channel_token_claims:
description: 'Add customized claims if they are not present yet. Value can be a regular or JSON string; if JSON, decoded data is used as the claim''s value.'
type: object
additionalProperties: true
add_claims:
description: 'Add customized claims to both tokens if they are not present yet. Value can be a regular or JSON string; if JSON, decoded data is used as the claim''s value.'
type: object
additionalProperties: true
cache_access_token_introspection:
description: Whether to cache access token introspection results.
type: boolean
default: true
cache_channel_token_introspection:
description: Whether to cache channel token introspection results.
type: boolean
default: true
channel_token_consumer_by:
description: 'When the plugin tries to do channel token to Kong consumer mapping, it tries to find a matching Kong consumer from properties defined using this configuration parameter. The parameter can take an array of valid values: `id`, `username`, and `custom_id`.'
type: array
items:
enum:
- custom_id
- id
- username
type: string
default:
- custom_id
- username
channel_token_consumer_claim:
description: 'When you set a value for this parameter, the plugin tries to map an arbitrary claim specified with this configuration parameter. Kong consumers have an `id`, a `username`, and a `custom_id`. If this parameter is enabled but the mapping fails, such as when there''s a non-existent Kong consumer, the plugin responds with `403 Forbidden`.'
type: array
items:
type: string
channel_token_introspection_authorization:
description: 'When using `opaque` channel tokens, and you want to turn on channel token introspection, you need to specify the OAuth 2.0 introspection endpoint URI with this configuration parameter. Otherwise the plugin will not try introspection, and instead returns `401 Unauthorized` when using opaque channel tokens.'
type: string
items:
type: string
channel_token_introspection_body_args:
description: 'If you need to pass additional body arguments to introspection endpoint when the plugin introspects the opaque channel token, you can use this config parameter to specify them. You should URL encode the value. For example: `resource=` or `a=1&b=&c`.'
type: string
items:
type: string
channel_token_introspection_consumer_by:
description: 'When the plugin tries to do channel token introspection results to Kong consumer mapping, it tries to find a matching Kong consumer from properties defined using this configuration parameter. The parameter can take an array of values. Valid values are `id`, `username` and `custom_id`.'
type: array
items:
enum:
- custom_id
- id
- username
type: string
default:
- custom_id
- username
channel_token_introspection_consumer_claim:
description: 'When you set a value for this parameter, the plugin tries to map an arbitrary claim specified with this configuration parameter (such as `sub` or `username`) in channel token introspection results to Kong consumer entity'
type: array
items:
type: string
channel_token_introspection_endpoint:
description: 'When you use `opaque` access tokens and you want to turn on access token introspection, you need to specify the OAuth 2.0 introspection endpoint URI with this configuration parameter. Otherwise, the plugin does not try introspection and returns `401 Unauthorized` instead.'
type: string
channel_token_introspection_hint:
description: 'If you need to give `hint` parameter when introspecting a channel token, you can use this parameter to specify the value of such parameter. By default, a `hint` isn''t sent with channel token introspection.'
type: string
items:
type: string
channel_token_introspection_jwt_claim:
description: 'If your introspection endpoint returns a channel token in one of the keys (or claims) in the introspection results (`JSON`), the plugin can use that value instead of the introspection results when doing expiry verification and signing of the new token issued by Kong.'
type: array
items:
type: string
channel_token_introspection_leeway:
description: You can use this parameter to adjust clock skew between the token issuer introspection results and Kong. The value will be added to introspection results (`JSON`) `exp` claim/property before checking token expiry against Kong servers current time (in seconds). You can disable channel token introspection `expiry` verification altogether with `config.verify_channel_token_introspection_expiry`.
type: number
default: 0
channel_token_introspection_scopes_claim:
description: Use this parameter to specify the claim/property in channel token introspection results (`JSON`) to be verified against values of `config.channel_token_introspection_scopes_required`. This supports nested claims.
type: array
items:
type: string
default:
- scope
channel_token_introspection_scopes_required:
description: Use this parameter to specify the required values (or scopes) that are checked by an introspection claim/property specified by `config.channel_token_introspection_scopes_claim`.
type: array
items:
type: string
channel_token_introspection_timeout:
description: 'Timeout in milliseconds for an introspection request. The plugin tries to introspect twice if the first request fails for some reason. If both requests timeout, then the plugin runs two times the `config.access_token_introspection_timeout` on channel token introspection.'
type: number
channel_token_issuer:
description: 'The `iss` claim of the re-signed channel token is set to this value, which is `kong` by default. The original `iss` claim of the incoming token (possibly introspected) is stored in the `original_iss` claim of the newly signed channel token.'
type: string
default: kong
channel_token_jwks_uri:
description: 'If you want to use `config.verify_channel_token_signature`, you must specify the URI where the plugin can fetch the public keys (JWKS) to verify the signature of the channel token. If you don''t specify a URI and you pass a JWT token to the plugin, then the plugin responds with `401 Unauthorized`.'
type: string
channel_token_jwks_uri_client_certificate:
description: The client certificate that will be used to authenticate Kong if `access_token_jwks_uri` is an https uri that requires mTLS Auth.
type: string
channel_token_jwks_uri_client_password:
description: The client password that will be used to authenticate Kong if `channel_token_jwks_uri` is a uri that requires Basic Auth. Should be configured together with `channel_token_jwks_uri_client_username`
type: string
channel_token_jwks_uri_client_username:
description: The client username that will be used to authenticate Kong if `channel_token_jwks_uri` is a uri that requires Basic Auth. Should be configured together with `channel_token_jwks_uri_client_password`
type: string
channel_token_jwks_uri_rotate_period:
description: Specify the period (in seconds) to auto-rotate the jwks for `channel_token_jwks_uri`. The default value 0 means no auto-rotation.
type: number
default: 0
channel_token_keyset:
description: The name of the keyset containing signing keys.
type: string
default: kong
channel_token_keyset_client_certificate:
description: The client certificate that will be used to authenticate Kong if `channel_token_keyset` is an https uri that requires mTLS Auth.
type: string
channel_token_keyset_client_password:
description: The client password that will be used to authenticate Kong if `channel_token_keyset` is a uri that requires Basic Auth. Should be configured together with `channel_token_keyset_client_username`
type: string
channel_token_keyset_client_username:
description: The client username that will be used to authenticate Kong if `channel_token_keyset` is a uri that requires Basic Auth. Should be configured together with `channel_token_keyset_client_password`
type: string
channel_token_keyset_rotate_period:
description: Specify the period (in seconds) to auto-rotate the jwks for `channel_token_keyset`. The default value 0 means no auto-rotation.
type: number
default: 0
channel_token_leeway:
description: Adjusts clock skew between the token issuer and Kong. The value will be added to token's `exp` claim before checking token expiry against Kong servers current time in seconds. You can disable channel token `expiry` verification altogether with `config.verify_channel_token_expiry`.
type: number
default: 0
channel_token_optional:
description: 'If a channel token is not provided or no `config.channel_token_request_header` is specified, the plugin cannot verify the channel token. In that case, the plugin normally responds with `401 Unauthorized` (client didn''t send a token) or `500 Unexpected` (a configuration error). Enable this parameter to allow the request to proceed even when there is no channel token to check. If the channel token is provided, then this parameter has no effect'
type: boolean
default: false
channel_token_request_header:
description: 'This parameter tells the name of the header where to look for the channel token. If you don''t want to do anything with the channel token, then you can set this to `null` or `""` (empty string).'
type: string
channel_token_scopes_claim:
description: Specify the claim in a channel token to verify against values of `config.channel_token_scopes_required`. This supports nested claims.
type: array
items:
type: string
default:
- scope
channel_token_scopes_required:
description: Specify the required values (or scopes) that are checked by a claim specified by `config.channel_token_scopes_claim`.
type: array
items:
type: string
channel_token_signing_algorithm:
description: 'When this plugin sets the upstream header as specified with `config.channel_token_upstream_header`, it also re-signs the original channel token using private keys of this plugin. Specify the algorithm that is used to sign the token.'
type: string
default: RS256
enum:
- ES256
- ES384
- ES512
- EdDSA
- HS256
- HS384
- HS512
- PS256
- PS384
- PS512
- RS256
- RS512
channel_token_upstream_header:
description: This plugin removes the `config.channel_token_request_header` from the request after reading its value.
type: string
channel_token_upstream_leeway:
description: 'If you want to add or perhaps subtract (using negative value) expiry time of the original channel token, you can specify a value that is added to the original channel token''s `exp` claim.'
type: number
default: 0
enable_access_token_introspection:
description: 'If you don''t want to support opaque access tokens, change this configuration parameter to `false` to disable introspection.'
type: boolean
default: true
enable_channel_token_introspection:
description: 'If you don''t want to support opaque channel tokens, disable introspection by changing this configuration parameter to `false`.'
type: boolean
default: true
enable_hs_signatures:
description: 'Tokens signed with HMAC algorithms such as `HS256`, `HS384`, or `HS512` are not accepted by default. If you need to accept such tokens for verification, enable this setting.'
type: boolean
default: false
enable_instrumentation:
description: Writes log entries with some added information using `ngx.CRIT` (CRITICAL) level.
type: boolean
default: false
original_access_token_upstream_header:
description: The HTTP header name used to store the original access token.
type: string
original_channel_token_upstream_header:
description: The HTTP header name used to store the original channel token.
type: string
realm:
description: 'When authentication or authorization fails, or there is an unexpected error, the plugin sends an `WWW-Authenticate` header with the `realm` attribute value.'
type: string
remove_access_token_claims:
description: 'remove claims. It should be an array, and each element is a claim key string.'
type: array
items:
type: string
default: []
remove_channel_token_claims:
description: 'remove claims. It should be an array, and each element is a claim key string.'
type: array
items:
type: string
default: []
set_access_token_claims:
description: 'Set customized claims. If a claim is already present, it will be overwritten. Value can be a regular or JSON string; if JSON, decoded data is used as the claim''s value.'
type: object
additionalProperties: true
set_channel_token_claims:
description: 'Set customized claims. If a claim is already present, it will be overwritten. Value can be a regular or JSON string; if JSON, decoded data is used as the claim''s value.'
type: object
additionalProperties: true
set_claims:
description: 'Set customized claims to both tokens. If a claim is already present, it will be overwritten. Value can be a regular or JSON string; if JSON, decoded data is used as the claim''s value.'
type: object
additionalProperties: true
trust_access_token_introspection:
description: 'Use this parameter to enable and disable further checks on a payload before the new token is signed. If you set this to `true`, the expiry or scopes are not checked on a payload.'
type: boolean
default: true
trust_channel_token_introspection:
description: 'Providing an opaque channel token for plugin introspection, and verifying expiry and scopes on introspection results may make further payload checks unnecessary before the plugin signs a new token. This also applies when using a JWT token with introspection JSON as per config.channel_token_introspection_jwt_claim. Use this parameter to manage additional payload checks before signing a new token. With true (default), payload''s expiry or scopes aren''t checked.'
type: boolean
default: true
verify_access_token_expiry:
description: Quickly turn access token expiry verification off and on as needed.
type: boolean
default: true
verify_access_token_introspection_expiry:
description: Quickly turn access token introspection expiry verification off and on as needed.
type: boolean
default: true
verify_access_token_introspection_scopes:
description: 'Quickly turn off and on the access token introspection scopes verification, specified with `config.access_token_introspection_scopes_required`.'
type: boolean
default: true
verify_access_token_scopes:
description: 'Quickly turn off and on the access token required scopes verification, specified with `config.access_token_scopes_required`.'
type: boolean
default: true
verify_access_token_signature:
description: Quickly turn access token signature verification off and on as needed.
type: boolean
default: true
verify_channel_token_expiry:
type: boolean
default: true
verify_channel_token_introspection_expiry:
description: Quickly turn on/off the channel token introspection expiry verification.
type: boolean
default: true
verify_channel_token_introspection_scopes:
description: Quickly turn on/off the channel token introspection scopes verification specified with `config.channel_token_introspection_scopes_required`.
type: boolean
default: true
verify_channel_token_scopes:
description: Quickly turn on/off the channel token required scopes verification specified with `config.channel_token_scopes_required`.
type: boolean
default: true
verify_channel_token_signature:
description: Quickly turn on/off the channel token signature verification.
type: boolean
default: true
name:
type: string
const: jwt-signer
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
KafkaLogPlugin:
x-speakeasy-entity: PluginKafkaLog
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/KafkaLogPluginConfig'
KafkaLogPluginConfig:
properties:
config:
type: object
properties:
authentication:
type: object
properties:
mechanism:
description: 'The SASL authentication mechanism. Supported options: `PLAIN` or `SCRAM-SHA-256`.'
type: string
enum:
- PLAIN
- SCRAM-SHA-256
- SCRAM-SHA-512
password:
description: Password for SASL authentication.
type: string
strategy:
description: 'The authentication strategy for the plugin, the only option for the value is `sasl`.'
type: string
enum:
- sasl
tokenauth:
description: Enable this to indicate `DelegationToken` authentication
type: boolean
user:
description: Username for SASL authentication.
type: string
bootstrap_servers:
description: 'Set of bootstrap brokers in a `{host: host, port: port}` list format.'
type: array
items:
properties:
host:
description: 'A string representing a host name, such as example.com.'
type: string
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
maximum: 65535
minimum: 0
required:
- host
- port
type: object
cluster_name:
description: 'An identifier for the Kafka cluster. By default, this field generates a random string. You can also set your own custom cluster identifier. If more than one Kafka plugin is configured without a `cluster_name` (that is, if the default autogenerated value is removed), these plugins will use the same producer, and by extension, the same cluster. Logs will be sent to the leader of the cluster.'
type: string
custom_fields_by_lua:
description: Lua code as a key-value map
type: object
additionalProperties: true
keepalive:
type: integer
default: 60000
keepalive_enabled:
type: boolean
default: false
producer_async:
description: Flag to enable asynchronous mode.
type: boolean
default: true
producer_async_buffering_limits_messages_in_memory:
description: Maximum number of messages that can be buffered in memory in asynchronous mode.
type: integer
default: 50000
producer_async_flush_timeout:
description: Maximum time interval in milliseconds between buffer flushes in asynchronous mode.
type: integer
default: 1000
producer_request_acks:
description: 'The number of acknowledgments the producer requires the leader to have received before considering a request complete. Allowed values: 0 for no acknowledgments; 1 for only the leader; and -1 for the full ISR (In-Sync Replica set).'
type: integer
default: 1
enum:
- -1
- 0
- 1
producer_request_limits_bytes_per_request:
description: Maximum size of a Produce request in bytes.
type: integer
default: 1048576
producer_request_limits_messages_per_request:
description: Maximum number of messages to include into a single Produce request.
type: integer
default: 200
producer_request_retries_backoff_timeout:
description: Backoff interval between retry attempts in milliseconds.
type: integer
default: 100
producer_request_retries_max_attempts:
description: Maximum number of retry attempts per single Produce request.
type: integer
default: 10
producer_request_timeout:
description: Time to wait for a Produce response in milliseconds
type: integer
default: 2000
security:
type: object
properties:
certificate_id:
description: UUID of certificate entity for mTLS authentication.
type: string
uuid: true
ssl:
description: Enables TLS.
type: boolean
timeout:
description: Socket timeout in milliseconds.
type: integer
default: 10000
topic:
description: The Kafka topic to publish to.
type: string
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: kafka-log
protocols:
description: 'A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls.'
type: array
items:
enum:
- grpc
- grpcs
- http
- https
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
- ws
- wss
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
KafkaUpstreamPlugin:
x-speakeasy-entity: PluginKafkaUpstream
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/KafkaUpstreamPluginConfig'
KafkaUpstreamPluginConfig:
properties:
config:
type: object
properties:
authentication:
type: object
properties:
mechanism:
description: 'The SASL authentication mechanism. Supported options: `PLAIN`, `SCRAM-SHA-256`, or `SCRAM-SHA-512`.'
type: string
enum:
- PLAIN
- SCRAM-SHA-256
- SCRAM-SHA-512
password:
description: Password for SASL authentication.
type: string
strategy:
description: 'The authentication strategy for the plugin, the only option for the value is `sasl`.'
type: string
enum:
- sasl
tokenauth:
description: Enable this to indicate `DelegationToken` authentication.
type: boolean
user:
description: Username for SASL authentication.
type: string
bootstrap_servers:
description: 'Set of bootstrap brokers in a `{host: host, port: port}` list format.'
type: array
items:
properties:
host:
description: 'A string representing a host name, such as example.com.'
type: string
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
maximum: 65535
minimum: 0
required:
- host
- port
type: object
cluster_name:
description: 'An identifier for the Kafka cluster. By default, this field generates a random string. You can also set your own custom cluster identifier. If more than one Kafka plugin is configured without a `cluster_name` (that is, if the default autogenerated value is removed), these plugins will use the same producer, and by extension, the same cluster. Logs will be sent to the leader of the cluster.'
type: string
forward_body:
description: 'Include the request body in the message. At least one of these must be true: `forward_method`, `forward_uri`, `forward_headers`, `forward_body`.'
type: boolean
default: true
forward_headers:
description: 'Include the request headers in the message. At least one of these must be true: `forward_method`, `forward_uri`, `forward_headers`, `forward_body`.'
type: boolean
default: false
forward_method:
description: 'Include the request method in the message. At least one of these must be true: `forward_method`, `forward_uri`, `forward_headers`, `forward_body`.'
type: boolean
default: false
forward_uri:
description: 'Include the request URI and URI arguments (as in, query arguments) in the message. At least one of these must be true: `forward_method`, `forward_uri`, `forward_headers`, `forward_body`.'
type: boolean
default: false
keepalive:
description: Keepalive timeout in milliseconds.
type: integer
default: 60000
keepalive_enabled:
type: boolean
default: false
producer_async:
description: Flag to enable asynchronous mode.
type: boolean
default: true
producer_async_buffering_limits_messages_in_memory:
description: Maximum number of messages that can be buffered in memory in asynchronous mode.
type: integer
default: 50000
producer_async_flush_timeout:
description: Maximum time interval in milliseconds between buffer flushes in asynchronous mode.
type: integer
default: 1000
producer_request_acks:
description: 'The number of acknowledgments the producer requires the leader to have received before considering a request complete. Allowed values: 0 for no acknowledgments; 1 for only the leader; and -1 for the full ISR (In-Sync Replica set).'
type: integer
default: 1
enum:
- -1
- 0
- 1
producer_request_limits_bytes_per_request:
description: Maximum size of a Produce request in bytes.
type: integer
default: 1048576
producer_request_limits_messages_per_request:
description: Maximum number of messages to include into a single producer request.
type: integer
default: 200
producer_request_retries_backoff_timeout:
description: Backoff interval between retry attempts in milliseconds.
type: integer
default: 100
producer_request_retries_max_attempts:
description: Maximum number of retry attempts per single Produce request.
type: integer
default: 10
producer_request_timeout:
description: Time to wait for a Produce response in milliseconds.
type: integer
default: 2000
security:
type: object
properties:
certificate_id:
description: UUID of certificate entity for mTLS authentication.
type: string
uuid: true
ssl:
description: Enables TLS.
type: boolean
timeout:
description: Socket timeout in milliseconds.
type: integer
default: 10000
topic:
description: The Kafka topic to publish to.
type: string
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: kafka-upstream
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
Key:
x-speakeasy-entity: Key
description: 'A Key object holds a representation of asymmetric keys in various formats. When Kong or a Kong plugin requires a specific public or private key to perform certain operations, it can use this entity.'
type: object
properties:
created_at:
description: Unix epoch when the resource was created.
type: integer
nullable: true
id:
type: string
nullable: true
jwk:
description: A JSON Web Key represented as a string.
type: string
nullable: true
kid:
description: A unique identifier for a key.
type: string
name:
description: The name to associate with the given keys.
type: string
nullable: true
pem:
description: A keypair in PEM format.
type: object
nullable: true
properties:
private_key:
type: string
public_key:
type: string
set:
description: The id (an UUID) of the key-set with which to associate the key.
type: object
nullable: true
properties:
id:
type: string
x-foreign: true
tags:
description: An optional set of strings associated with the Key for grouping and filtering.
type: array
items:
type: string
updated_at:
description: Unix epoch when the resource was last updated.
type: integer
nullable: true
x5t:
type: string
nullable: true
example:
id: d958f66b-8e99-44d2-b0b4-edd5bbf24658
jwk: '{"alg":"RSA", "kid": "42", ...}'
kid: '42'
name: a-key
pem:
private_key: '-----BEGIN'
public_key: '-----BEGIN'
set:
id: b86b331c-dcd0-4b3e-97ce-47c5a9543031
additionalProperties: false
required:
- kid
KeyAuth:
x-speakeasy-entity: KeyAuth
type: object
properties:
consumer:
type: object
nullable: true
properties:
id:
type: string
x-foreign: true
created_at:
description: Unix epoch when the resource was created.
type: integer
nullable: true
id:
type: string
nullable: true
key:
type: string
tags:
type: array
items:
type: string
example:
consumer:
id: 84a73fb8-50fc-44a7-a4d5-aa17728ee83f
id: b2f34145-0343-41a4-9602-4c69dec2f269
key: IL1deIyHyQA40WpeLeA1bIUXuvTwlGjo
additionalProperties: false
required:
- key
KeyAuthEncPlugin:
x-speakeasy-entity: PluginKeyAuthEnc
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/KeyAuthEncPluginConfig'
KeyAuthEncPluginConfig:
properties:
config:
type: object
properties:
anonymous:
description: 'An optional string (consumer UUID or username) value to use as an “anonymous” consumer if authentication fails. If empty (default null), the request will fail with an authentication failure `4xx`. Note that this value must refer to the consumer `id` or `username` attribute, and **not** its `custom_id`.'
type: string
hide_credentials:
description: 'An optional boolean value telling the plugin to show or hide the credential from the upstream service. If `true`, the plugin strips the credential from the request (i.e., the header, query string, or request body containing the key) before proxying it.'
type: boolean
default: false
key_in_body:
description: 'If enabled, the plugin reads the request body (if said request has one and its MIME type is supported) and tries to find the key in it. Supported MIME types: `application/www-form-urlencoded`, `application/json`, and `multipart/form-data`.'
type: boolean
default: false
key_in_header:
description: 'If enabled (default), the plugin reads the request header and tries to find the key in it.'
type: boolean
default: true
key_in_query:
description: 'If enabled (default), the plugin reads the query parameter in the request and tries to find the key in it.'
type: boolean
default: true
key_names:
description: 'Describes an array of parameter names where the plugin will look for a key. The client must send the authentication key in one of those key names, and the plugin will try to read the credential from a header, request body, or query string parameter with the same name. Key names may only contain [a-z], [A-Z], [0-9], [_] underscore, and [-] hyphen.'
type: array
items:
description: A string representing an HTTP header name.
type: string
default:
- apikey
realm:
description: When authentication fails the plugin sends `WWW-Authenticate` header with `realm` attribute value.
type: string
run_on_preflight:
description: 'A boolean value that indicates whether the plugin should run (and try to authenticate) on `OPTIONS` preflight requests. If set to `false`, then `OPTIONS` requests are always allowed.'
type: boolean
default: true
name:
type: string
const: key-auth-enc
protocols:
description: 'A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls.'
type: array
items:
enum:
- grpc
- grpcs
- http
- https
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
- ws
- wss
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
KeyAuthPlugin:
x-speakeasy-entity: PluginKeyAuth
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/KeyAuthPluginConfig'
KeyAuthPluginConfig:
properties:
config:
type: object
properties:
anonymous:
description: 'An optional string (consumer UUID or username) value to use as an “anonymous” consumer if authentication fails. If empty (default null), the request will fail with an authentication failure `4xx`.'
type: string
hide_credentials:
description: 'An optional boolean value telling the plugin to show or hide the credential from the upstream service. If `true`, the plugin strips the credential from the request.'
type: boolean
default: false
key_in_body:
description: 'If enabled, the plugin reads the request body. Supported MIME types: `application/www-form-urlencoded`, `application/json`, and `multipart/form-data`.'
type: boolean
default: false
key_in_header:
description: 'If enabled (default), the plugin reads the request header and tries to find the key in it.'
type: boolean
default: true
key_in_query:
description: 'If enabled (default), the plugin reads the query parameter in the request and tries to find the key in it.'
type: boolean
default: true
key_names:
description: 'Describes an array of parameter names where the plugin will look for a key. The key names may only contain [a-z], [A-Z], [0-9], [_] underscore, and [-] hyphen.'
type: array
items:
description: A string representing an HTTP header name.
type: string
default:
- apikey
realm:
description: When authentication fails the plugin sends `WWW-Authenticate` header with `realm` attribute value.
type: string
run_on_preflight:
description: 'A boolean value that indicates whether the plugin should run (and try to authenticate) on `OPTIONS` preflight requests. If set to `false`, then `OPTIONS` requests are always allowed.'
type: boolean
default: true
name:
type: string
const: key-auth
protocols:
description: 'A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls.'
type: array
items:
enum:
- grpc
- grpcs
- http
- https
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
- ws
- wss
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
KeyAuthWithoutParents:
x-speakeasy-entity: KeyAuth
type: object
properties:
consumer:
type: object
nullable: true
properties:
id:
type: string
x-foreign: true
created_at:
description: Unix epoch when the resource was created.
type: integer
nullable: true
id:
type: string
nullable: true
key:
type: string
tags:
type: array
items:
type: string
example:
id: b2f34145-0343-41a4-9602-4c69dec2f269
key: IL1deIyHyQA40WpeLeA1bIUXuvTwlGjo
additionalProperties: false
required:
- key
KeySet:
x-speakeasy-entity: KeySet
type: object
properties:
created_at:
description: Unix epoch when the resource was created.
type: integer
nullable: true
id:
type: string
nullable: true
name:
type: string
nullable: true
tags:
type: array
items:
type: string
updated_at:
description: Unix epoch when the resource was last updated.
type: integer
nullable: true
example:
id: b58c7d9d-e54f-444c-b24d-cdfc4159f61e
name: example-key-set
tags:
- idp-keys
additionalProperties: false
LdapAuthAdvancedPlugin:
x-speakeasy-entity: PluginLdapAuthAdvanced
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/LdapAuthAdvancedPluginConfig'
LdapAuthAdvancedPluginConfig:
properties:
config:
type: object
properties:
anonymous:
description: 'An optional string (consumer UUID or username) value to use as an “anonymous” consumer if authentication fails. If empty (default null), the request will fail with an authentication failure `4xx`. Note that this value must refer to the consumer `id` or `username` attribute, and **not** its `custom_id`.'
type: string
default: ''
attribute:
description: 'Attribute to be used to search the user; e.g., "cn".'
type: string
base_dn:
description: 'Base DN as the starting point for the search; e.g., ''dc=example,dc=com''.'
type: string
bind_dn:
description: The DN to bind to. Used to perform LDAP search of user. This `bind_dn` should have permissions to search for the user being authenticated.
type: string
cache_ttl:
description: Cache expiry time in seconds.
type: number
default: 60
consumer_by:
description: 'Whether to authenticate consumers based on `username`, `custom_id`, or both.'
type: array
items:
enum:
- custom_id
- username
type: string
default:
- custom_id
- username
consumer_optional:
description: 'Whether consumer mapping is optional. If `consumer_optional=true`, the plugin will not attempt to associate a consumer with the LDAP authenticated user.'
type: boolean
default: false
group_base_dn:
description: 'Sets a distinguished name (DN) for the entry where LDAP searches for groups begin. This field is case-insensitive.'',dc=com''.'
type: string
group_member_attribute:
description: Sets the attribute holding the members of the LDAP group. This field is case-sensitive.
type: string
default: memberOf
group_name_attribute:
description: 'Sets the attribute holding the name of a group, typically called `name` (in Active Directory) or `cn` (in OpenLDAP). This field is case-insensitive.'
type: string
groups_required:
description: 'The groups required to be present in the LDAP search result for successful authorization. This config parameter works in both **AND** / **OR** cases. - When `["group1 group2"]` are in the same array indices, both `group1` AND `group2` need to be present in the LDAP search result. - When `["group1", "group2"]` are in different array indices, either `group1` OR `group2` need to be present in the LDAP search result.'
type: array
items:
type: string
header_type:
description: 'An optional string to use as part of the Authorization header. By default, a valid Authorization header looks like this: `Authorization: ldap base64(username:password)`. If `header_type` is set to "basic", then the Authorization header would be `Authorization: basic base64(username:password)`. Note that `header_type` can take any string, not just `''ldap''` and `''basic''`.'
type: string
default: ldap
hide_credentials:
description: An optional boolean value telling the plugin to hide the credential to the upstream server. It will be removed by Kong before proxying the request.
type: boolean
default: false
keepalive:
description: An optional value in milliseconds that defines how long an idle connection to LDAP server will live before being closed.
type: number
default: 60000
ldap_host:
description: Host on which the LDAP server is running.
type: string
ldap_password:
description: The password to the LDAP server.
type: string
ldap_port:
description: 'TCP port where the LDAP server is listening. 389 is the default port for non-SSL LDAP and AD. 636 is the port required for SSL LDAP and AD. If `ldaps` is configured, you must use port 636.'
type: number
default: 389
ldaps:
description: 'Set it to `true` to use `ldaps`, a secure protocol (that can be configured to TLS) to connect to the LDAP server. When `ldaps` is configured, you must use port 636. If the `ldap` setting is enabled, ensure the `start_tls` setting is disabled.'
type: boolean
default: false
log_search_results:
description: Displays all the LDAP search results received from the LDAP server for debugging purposes. Not recommended to be enabled in a production environment.
type: boolean
default: false
realm:
description: When authentication fails the plugin sends `WWW-Authenticate` header with `realm` attribute value.
type: string
start_tls:
description: 'Set it to `true` to issue StartTLS (Transport Layer Security) extended operation over `ldap` connection. If the `start_tls` setting is enabled, ensure the `ldaps` setting is disabled.'
type: boolean
default: false
timeout:
description: An optional timeout in milliseconds when waiting for connection with LDAP server.
type: number
default: 10000
verify_ldap_host:
description: Set to `true` to authenticate LDAP server. The server certificate will be verified according to the CA certificates specified by the `lua_ssl_trusted_certificate` directive.
type: boolean
default: false
name:
type: string
const: ldap-auth-advanced
protocols:
description: 'A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls.'
type: array
items:
enum:
- grpc
- grpcs
- http
- https
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
- ws
- wss
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
LdapAuthPlugin:
x-speakeasy-entity: PluginLdapAuth
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/LdapAuthPluginConfig'
LdapAuthPluginConfig:
properties:
config:
type: object
properties:
anonymous:
description: 'An optional string (consumer UUID or username) value to use as an “anonymous” consumer if authentication fails. If empty (default null), the request fails with an authentication failure `4xx`.'
type: string
attribute:
description: Attribute to be used to search the user; e.g. cn
type: string
base_dn:
description: 'Base DN as the starting point for the search; e.g., dc=example,dc=com'
type: string
cache_ttl:
description: Cache expiry time in seconds.
type: number
default: 60
header_type:
description: An optional string to use as part of the Authorization header
type: string
default: ldap
hide_credentials:
description: An optional boolean value telling the plugin to hide the credential to the upstream server. It will be removed by Kong before proxying the request.
type: boolean
default: false
keepalive:
description: An optional value in milliseconds that defines how long an idle connection to LDAP server will live before being closed.
type: number
default: 60000
ldap_host:
description: 'A string representing a host name, such as example.com.'
type: string
ldap_port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 389
maximum: 65535
minimum: 0
ldaps:
description: 'Set to `true` to connect using the LDAPS protocol (LDAP over TLS). When `ldaps` is configured, you must use port 636. If the `ldap` setting is enabled, ensure the `start_tls` setting is disabled.'
type: boolean
default: false
realm:
description: When authentication fails the plugin sends `WWW-Authenticate` header with `realm` attribute value.
type: string
start_tls:
description: 'Set it to `true` to issue StartTLS (Transport Layer Security) extended operation over `ldap` connection. If the `start_tls` setting is enabled, ensure the `ldaps` setting is disabled.'
type: boolean
default: false
timeout:
description: An optional timeout in milliseconds when waiting for connection with LDAP server.
type: number
default: 10000
verify_ldap_host:
description: Set to `true` to authenticate LDAP server. The server certificate will be verified according to the CA certificates specified by the `lua_ssl_trusted_certificate` directive.
type: boolean
default: false
name:
type: string
const: ldap-auth
protocols:
description: 'A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls.'
type: array
items:
enum:
- grpc
- grpcs
- http
- https
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
- ws
- wss
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
LogglyPlugin:
x-speakeasy-entity: PluginLoggly
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/LogglyPluginConfig'
LogglyPluginConfig:
properties:
config:
type: object
properties:
client_errors_severity:
type: string
default: info
enum:
- alert
- crit
- debug
- emerg
- err
- info
- notice
- warning
custom_fields_by_lua:
description: Lua code as a key-value map
type: object
additionalProperties: true
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: logs-01.loggly.com
key:
type: string
log_level:
type: string
default: info
enum:
- alert
- crit
- debug
- emerg
- err
- info
- notice
- warning
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 514
maximum: 65535
minimum: 0
server_errors_severity:
type: string
default: info
enum:
- alert
- crit
- debug
- emerg
- err
- info
- notice
- warning
successful_severity:
type: string
default: info
enum:
- alert
- crit
- debug
- emerg
- err
- info
- notice
- warning
tags:
type: array
items:
type: string
default:
- kong
timeout:
type: number
default: 10000
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: loggly
protocols:
description: A set of strings representing protocols.
type: array
items:
description: 'A string representing a protocol, such as HTTP or HTTPS.'
enum:
- grpc
- grpcs
- http
- https
- tcp
- tls
- tls_passthrough
- udp
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
MTLSAuth:
x-speakeasy-entity: MTLSAuth
type: object
properties:
ca_certificate:
type: object
properties:
id:
type: string
x-foreign: true
consumer:
type: object
nullable: true
properties:
id:
type: string
x-foreign: true
created_at:
description: Unix epoch when the resource was created.
type: integer
nullable: true
id:
type: string
nullable: true
subject_name:
type: string
tags:
type: array
items:
type: string
example:
ca_certificate:
id: b2f34145-0343-41a4-9602-4c69dec2f260
consumer:
id: 84a73fb8-50fc-44a7-a4d5-aa17728ee83f
id: b2f34145-0343-41a4-9602-4c69dec2f269
subject_name: CA_Subject_Name
additionalProperties: false
required:
- subject_name
MTLSAuthWithoutParents:
x-speakeasy-entity: MTLSAuth
type: object
properties:
ca_certificate:
type: object
properties:
id:
type: string
x-foreign: true
consumer:
type: object
nullable: true
properties:
id:
type: string
x-foreign: true
created_at:
description: Unix epoch when the resource was created.
type: integer
nullable: true
id:
type: string
nullable: true
subject_name:
type: string
tags:
type: array
items:
type: string
example:
ca_certificate:
id: b2f34145-0343-41a4-9602-4c69dec2f260
id: b2f34145-0343-41a4-9602-4c69dec2f269
subject_name: CA_Subject_Name
additionalProperties: false
required:
- subject_name
MockingPlugin:
x-speakeasy-entity: PluginMocking
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/MockingPluginConfig'
MockingPluginConfig:
properties:
config:
type: object
properties:
api_specification:
description: 'The contents of the specification file. You must use this option for hybrid or DB-less mode. You can include the full specification as part of the configuration. In Kong Manager, you can copy and paste the contents of the spec directly into the `Config.Api Specification` text field.'
type: string
api_specification_filename:
description: The path and name of the specification file loaded into Kong Gateway's database. You cannot use this option for DB-less or hybrid mode.
type: string
custom_base_path:
description: The base path to be used for path match evaluation. This value is ignored if `include_base_path` is set to `false`.
type: string
include_base_path:
description: Indicates whether to include the base path when performing path match evaluation.
type: boolean
default: false
included_status_codes:
description: A global list of the HTTP status codes that can only be selected and returned.
type: array
items:
type: integer
max_delay_time:
description: The maximum value in seconds of delay time. Set this value when `random_delay` is enabled and you want to adjust the default. The value must be greater than the `min_delay_time`.
type: number
default: 1
min_delay_time:
description: The minimum value in seconds of delay time. Set this value when `random_delay` is enabled and you want to adjust the default. The value must be less than the `max_delay_time`.
type: number
default: 0.001
random_delay:
description: Enables a random delay in the mocked response. Introduces delays to simulate real-time response times by APIs.
type: boolean
default: false
random_examples:
description: Randomly selects one example and returns it. This parameter requires the spec to have multiple examples configured.
type: boolean
default: false
random_status_code:
description: 'Determines whether to randomly select an HTTP status code from the responses of the corresponding API method. The default value is `false`, which means the minimum HTTP status code is always selected and returned.'
type: boolean
default: false
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: mocking
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
MtlsAuthPlugin:
x-speakeasy-entity: PluginMtlsAuth
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/MtlsAuthPluginConfig'
MtlsAuthPluginConfig:
properties:
config:
type: object
properties:
allow_partial_chain:
description: 'Allow certificate verification with only an intermediate certificate. When this is enabled, you don''t need to upload the full chain to Kong Certificates.'
type: boolean
default: false
anonymous:
description: 'An optional string (consumer UUID or username) value to use as an “anonymous” consumer if authentication fails. If empty (default null), the request fails with an authentication failure `4xx`. Note that this value must refer to the consumer `id` or `username` attribute, and **not** its `custom_id`.'
type: string
authenticated_group_by:
description: 'Certificate property to use as the authenticated group. Valid values are `CN` (Common Name) or `DN` (Distinguished Name). Once `skip_consumer_lookup` is applied, any client with a valid certificate can access the Service/API. To restrict usage to only some of the authenticated users, also add the ACL plugin (not covered here) and create allowed or denied groups of users.'
type: string
default: CN
enum:
- CN
- DN
ca_certificates:
description: List of CA Certificates strings to use as Certificate Authorities (CA) when validating a client certificate. At least one is required but you can specify as many as needed. The value of this array is comprised of primary keys (`id`).
type: array
items:
type: string
uuid: true
cache_ttl:
description: Cache expiry time in seconds.
type: number
default: 60
cert_cache_ttl:
description: The length of time in seconds between refreshes of the revocation check status cache.
type: number
default: 60000
consumer_by:
description: 'Whether to match the subject name of the client-supplied certificate against consumer''s `username` and/or `custom_id` attribute. If set to `[]` (the empty array), then auto-matching is disabled.'
type: array
items:
enum:
- custom_id
- username
type: string
default:
- custom_id
- username
default_consumer:
description: 'The UUID or username of the consumer to use when a trusted client certificate is presented but no consumer matches. Note that this value must refer to the consumer `id` or `username` attribute, and **not** its `custom_id`.'
type: string
http_proxy_host:
description: 'A string representing a host name, such as example.com.'
type: string
http_proxy_port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
maximum: 65535
minimum: 0
http_timeout:
description: HTTP timeout threshold in milliseconds when communicating with the OCSP server or downloading CRL.
type: number
default: 30000
https_proxy_host:
description: 'A string representing a host name, such as example.com.'
type: string
https_proxy_port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
maximum: 65535
minimum: 0
revocation_check_mode:
description: 'Controls client certificate revocation check behavior. If set to `SKIP`, no revocation check is performed. If set to `IGNORE_CA_ERROR`, the plugin respects the revocation status when either OCSP or CRL URL is set, and doesn''t fail on network issues. If set to `STRICT`, the plugin only treats the certificate as valid when it''s able to verify the revocation status.'
type: string
default: IGNORE_CA_ERROR
enum:
- IGNORE_CA_ERROR
- SKIP
- STRICT
send_ca_dn:
description: Sends the distinguished names (DN) of the configured CA list in the TLS handshake message.
type: boolean
default: false
skip_consumer_lookup:
description: Skip consumer lookup once certificate is trusted against the configured CA list.
type: boolean
default: false
name:
type: string
const: mtls-auth
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
OasValidationPlugin:
x-speakeasy-entity: PluginOasValidation
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/OasValidationPluginConfig'
OasValidationPluginConfig:
properties:
config:
type: object
properties:
allowed_header_parameters:
description: 'List of header parameters in the request that will be ignored when performing HTTP header validation. These are additional headers added to an API request beyond those defined in the API specification. For example, you might include the HTTP header `User-Agent`, which lets servers and network peers identify the application, operating system, vendor, and/or version of the requesting user agent.'
type: string
default: 'Host,Content-Type,User-Agent,Accept,Content-Length'
api_spec:
description: 'The API specification defined using either Swagger or the OpenAPI. This can be either a JSON or YAML based file. If using a YAML file, the spec needs to be URI-Encoded to preserve the YAML format.'
type: string
api_spec_encoded:
description: Indicates whether the api_spec is URI-Encoded.
type: boolean
default: true
custom_base_path:
description: The base path to be used for path match evaluation. This value is ignored if `include_base_path` is set to `false`.
type: string
header_parameter_check:
description: 'If set to true, checks if HTTP header parameters in the request exist in the API specification.'
type: boolean
default: false
include_base_path:
description: Indicates whether to include the base path when performing path match evaluation.
type: boolean
default: false
notify_only_request_validation_failure:
description: 'If set to true, notifications via event hooks are enabled, but request based validation failures don''t affect the request flow.'
type: boolean
default: false
notify_only_response_body_validation_failure:
description: 'If set to true, notifications via event hooks are enabled, but response validation failures don''t affect the response flow.'
type: boolean
default: false
query_parameter_check:
description: 'If set to true, checks if query parameters in the request exist in the API specification.'
type: boolean
default: false
validate_request_body:
description: 'If set to true, validates the request body content against the API specification.'
type: boolean
default: true
validate_request_header_params:
description: 'If set to true, validates HTTP header parameters against the API specification.'
type: boolean
default: true
validate_request_query_params:
description: 'If set to true, validates query parameters against the API specification.'
type: boolean
default: true
validate_request_uri_params:
description: 'If set to true, validates URI parameters in the request against the API specification.'
type: boolean
default: true
validate_response_body:
description: 'If set to true, validates the response from the upstream services against the API specification. If validation fails, it results in an `HTTP 406 Not Acceptable` status code.'
type: boolean
default: false
verbose_response:
description: 'If set to true, returns a detailed error message for invalid requests & responses. This is useful while testing.'
type: boolean
default: false
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: oas-validation
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
Oauth2IntrospectionPlugin:
x-speakeasy-entity: PluginOauth2Introspection
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/Oauth2IntrospectionPluginConfig'
Oauth2IntrospectionPluginConfig:
properties:
config:
type: object
properties:
anonymous:
description: 'An optional string (consumer UUID or username) value to use as an “anonymous” consumer if authentication fails. If empty (default null), the request fails with an authentication failure `4xx`. Note that this value must refer to the consumer `id` or `username` attribute, and **not** its `custom_id`.'
type: string
default: ''
authorization_value:
description: 'The value to set as the `Authorization` header when querying the introspection endpoint. This depends on the OAuth 2.0 server, but usually is the `client_id` and `client_secret` as a Base64-encoded Basic Auth string (`Basic MG9hNWl...`).'
type: string
consumer_by:
description: 'A string indicating whether to associate OAuth2 `username` or `client_id` with the consumer''s username. OAuth2 `username` is mapped to a consumer''s `username` field, while an OAuth2 `client_id` maps to a consumer''s `custom_id`.'
type: string
default: username
enum:
- client_id
- username
custom_claims_forward:
description: 'A list of custom claims to be forwarded from the introspection response to the upstream request. Claims are forwarded in headers with prefix `X-Credential-{claim-name}`.'
type: array
items:
type: string
default: []
custom_introspection_headers:
description: A list of custom headers to be added in the introspection request.
type: object
additionalProperties: true
hide_credentials:
description: An optional boolean value telling the plugin to hide the credential to the upstream API server. It will be removed by Kong before proxying the request.
type: boolean
default: false
introspect_request:
description: 'A boolean indicating whether to forward information about the current downstream request to the introspect endpoint. If true, headers `X-Request-Path` and `X-Request-Http-Method` will be inserted into the introspect request.'
type: boolean
default: false
introspection_url:
description: 'A string representing a URL, such as https://example.com/path/to/resource?q=search.'
type: string
keepalive:
description: An optional value in milliseconds that defines how long an idle connection lives before being closed.
type: integer
default: 60000
run_on_preflight:
description: 'A boolean value that indicates whether the plugin should run (and try to authenticate) on `OPTIONS` preflight requests. If set to `false`, then `OPTIONS` requests will always be allowed.'
type: boolean
default: true
timeout:
description: An optional timeout in milliseconds when sending data to the upstream server.
type: integer
default: 10000
token_type_hint:
description: The `token_type_hint` value to associate to introspection requests.
type: string
ttl:
description: The TTL in seconds for the introspection response. Set to 0 to disable the expiration.
type: number
default: 30
name:
type: string
const: oauth-2-introspection
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
Oauth2Plugin:
x-speakeasy-entity: PluginOauth2
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/Oauth2PluginConfig'
Oauth2PluginConfig:
properties:
config:
type: object
properties:
accept_http_if_already_terminated:
description: Accepts HTTPs requests that have already been terminated by a proxy or load balancer.
type: boolean
default: false
anonymous:
description: An optional string (consumer UUID or username) value to use as an “anonymous” consumer if authentication fails.
type: string
auth_header_name:
description: The name of the header that is supposed to carry the access token.
type: string
default: authorization
enable_authorization_code:
description: An optional boolean value to enable the three-legged Authorization Code flow (RFC 6742 Section 4.1).
type: boolean
default: false
enable_client_credentials:
description: An optional boolean value to enable the Client Credentials Grant flow (RFC 6742 Section 4.4).
type: boolean
default: false
enable_implicit_grant:
description: An optional boolean value to enable the Implicit Grant flow which allows to provision a token as a result of the authorization process (RFC 6742 Section 4.2).
type: boolean
default: false
enable_password_grant:
description: An optional boolean value to enable the Resource Owner Password Credentials Grant flow (RFC 6742 Section 4.3).
type: boolean
default: false
global_credentials:
description: An optional boolean value that allows using the same OAuth credentials generated by the plugin with any other service whose OAuth 2.0 plugin configuration also has `config.global_credentials=true`.
type: boolean
default: false
hide_credentials:
description: An optional boolean value telling the plugin to show or hide the credential from the upstream service.
type: boolean
default: false
mandatory_scope:
description: An optional boolean value telling the plugin to require at least one `scope` to be authorized by the end user.
type: boolean
default: false
persistent_refresh_token:
type: boolean
default: false
pkce:
description: Specifies a mode of how the Proof Key for Code Exchange (PKCE) should be handled by the plugin.
type: string
default: lax
enum:
- lax
- none
- strict
provision_key:
description: The unique key the plugin has generated when it has been added to the Service.
type: string
realm:
description: When authentication fails the plugin sends `WWW-Authenticate` header with `realm` attribute value.
type: string
refresh_token_ttl:
description: Time-to-live value for data
type: number
default: 1209600
maximum: 100000000
minimum: 0
reuse_refresh_token:
description: An optional boolean value that indicates whether an OAuth refresh token is reused when refreshing an access token.
type: boolean
default: false
scopes:
description: 'Describes an array of scope names that will be available to the end user. If `mandatory_scope` is set to `true`, then `scopes` are required.'
type: array
items:
type: string
token_expiration:
description: 'An optional integer value telling the plugin how many seconds a token should last, after which the client will need to refresh the token. Set to `0` to disable the expiration.'
type: number
default: 7200
name:
type: string
const: oauth2
protocols:
description: 'A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls.'
type: array
items:
enum:
- grpc
- grpcs
- http
- https
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
- ws
- wss
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
OidcJwk:
x-speakeasy-entity: OidcJwk
type: object
properties:
id:
type: string
default: c3cfba2d-1617-453f-a416-52e6edb5f9a0
nullable: true
jwks:
type: object
nullable: true
properties:
keys:
type: array
items:
properties:
alg:
type: string
crv:
type: string
d:
type: string
dp:
type: string
dq:
type: string
e:
type: string
issuer:
type: string
k:
type: string
key_ops:
type: array
items:
type: string
kid:
type: string
kty:
type: string
'n':
type: string
oth:
type: string
p:
type: string
q:
type: string
qi:
type: string
r:
type: string
t:
type: string
use:
type: string
x:
type: string
x5c:
type: array
items:
type: string
x5t:
type: string
x5t#S256:
type: string
x5u:
type: string
'y':
type: string
type: object
additionalProperties: false
OpaPlugin:
x-speakeasy-entity: PluginOpa
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/OpaPluginConfig'
OpaPluginConfig:
properties:
config:
type: object
properties:
include_body_in_opa_input:
type: boolean
default: false
include_consumer_in_opa_input:
description: 'If set to true, the Kong Gateway Consumer object in use for the current request (if any) is included as input to OPA.'
type: boolean
default: false
include_parsed_json_body_in_opa_input:
description: 'If set to true and the `Content-Type` header of the current request is `application/json`, the request body will be JSON decoded and the decoded struct is included as input to OPA.'
type: boolean
default: false
include_route_in_opa_input:
description: 'If set to true, the Kong Gateway Route object in use for the current request is included as input to OPA.'
type: boolean
default: false
include_service_in_opa_input:
description: 'If set to true, the Kong Gateway Service object in use for the current request is included as input to OPA.'
type: boolean
default: false
include_uri_captures_in_opa_input:
description: 'If set to true, the regex capture groups captured on the Kong Gateway Route''s path field in the current request (if any) are included as input to OPA.'
type: boolean
default: false
opa_host:
description: 'A string representing a host name, such as example.com.'
type: string
default: localhost
opa_path:
description: 'A string representing a URL path, such as /path/to/resource. Must start with a forward slash (/) and must not contain empty segments (i.e., two consecutive forward slashes).'
type: string
opa_port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 8181
maximum: 65535
minimum: 0
opa_protocol:
description: The protocol to use when talking to Open Policy Agent (OPA) server. Allowed protocols are `http` and `https`.
type: string
default: http
enum:
- http
- https
ssl_verify:
description: 'If set to true, the OPA certificate will be verified according to the CA certificates specified in lua_ssl_trusted_certificate.'
type: boolean
default: true
name:
type: string
const: opa
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
OpenidConnectPlugin:
x-speakeasy-entity: PluginOpenidConnect
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/OpenidConnectPluginConfig'
OpenidConnectPluginConfig:
properties:
config:
type: object
properties:
anonymous:
description: 'An optional string (consumer UUID or username) value that functions as an “anonymous” consumer if authentication fails. If empty (default null), requests that fail authentication will return a `4xx` HTTP status code. This value must refer to the consumer `id` or `username` attribute, and **not** its `custom_id`.'
type: string
audience:
description: The audience passed to the authorization endpoint.
type: array
items:
type: string
audience_claim:
description: 'The claim that contains the audience. If multiple values are set, it means the claim is inside a nested object of the token payload.'
type: array
items:
type: string
default:
- aud
audience_required:
description: The audiences (`audience_claim` claim) required to be present in the access token (or introspection results) for successful authorization. This config parameter works in both **AND** / **OR** cases.
type: array
items:
type: string
auth_methods:
description: Types of credentials/grants to enable.
type: array
items:
enum:
- authorization_code
- bearer
- client_credentials
- introspection
- kong_oauth2
- password
- refresh_token
- session
- userinfo
type: string
default:
- authorization_code
- bearer
- client_credentials
- introspection
- kong_oauth2
- password
- refresh_token
- session
- userinfo
authenticated_groups_claim:
description: 'The claim that contains authenticated groups. This setting can be used together with ACL plugin, but it also enables IdP managed groups with other applications and integrations. If multiple values are set, it means the claim is inside a nested object of the token payload.'
type: array
items:
type: string
authorization_cookie_domain:
description: The authorization cookie Domain flag.
type: string
authorization_cookie_http_only:
description: 'Forbids JavaScript from accessing the cookie, for example, through the `Document.cookie` property.'
type: boolean
default: true
authorization_cookie_name:
description: The authorization cookie name.
type: string
default: authorization
authorization_cookie_path:
description: The authorization cookie Path flag.
type: string
default: /
authorization_cookie_same_site:
description: 'Controls whether a cookie is sent with cross-origin requests, providing some protection against cross-site request forgery attacks.'
type: string
default: Default
enum:
- Default
- Lax
- None
- Strict
authorization_cookie_secure:
description: 'Cookie is only sent to the server when a request is made with the https: scheme (except on localhost), and therefore is more resistant to man-in-the-middle attacks.'
type: boolean
authorization_endpoint:
description: The authorization endpoint. If set it overrides the value in `authorization_endpoint` returned by the discovery endpoint.
type: string
authorization_query_args_client:
description: Extra query arguments passed from the client to the authorization endpoint.
type: array
items:
type: string
authorization_query_args_names:
description: Extra query argument names passed to the authorization endpoint.
type: array
items:
type: string
authorization_query_args_values:
description: Extra query argument values passed to the authorization endpoint.
type: array
items:
type: string
authorization_rolling_timeout:
description: Specifies how long the session used for the authorization code flow can be used in seconds until it needs to be renewed. 0 disables the checks and rolling.
type: number
default: 600
bearer_token_cookie_name:
description: The name of the cookie in which the bearer token is passed.
type: string
bearer_token_param_type:
description: 'Where to look for the bearer token: - `header`: search the `Authorization`, `access-token`, and `x-access-token` HTTP headers - `query`: search the URL''s query string - `body`: search the HTTP request body - `cookie`: search the HTTP request cookies specified with `config.bearer_token_cookie_name`.'
type: array
items:
enum:
- body
- cookie
- header
- query
type: string
default:
- body
- header
- query
by_username_ignore_case:
description: 'If `consumer_by` is set to `username`, specify whether `username` can match consumers case-insensitively.'
type: boolean
default: false
cache_introspection:
description: Cache the introspection endpoint requests.
type: boolean
default: true
cache_token_exchange:
description: Cache the token exchange endpoint requests.
type: boolean
default: true
cache_tokens:
description: Cache the token endpoint requests.
type: boolean
default: true
cache_tokens_salt:
description: Salt used for generating the cache key that is used for caching the token endpoint requests.
type: string
cache_ttl:
description: The default cache ttl in seconds that is used in case the cached object does not specify the expiry.
type: number
default: 3600
cache_ttl_max:
description: The maximum cache ttl in seconds (enforced).
type: number
cache_ttl_min:
description: The minimum cache ttl in seconds (enforced).
type: number
cache_ttl_neg:
description: The negative cache ttl in seconds.
type: number
cache_ttl_resurrect:
description: The resurrection ttl in seconds.
type: number
cache_user_info:
description: Cache the user info requests.
type: boolean
default: true
claims_forbidden:
description: 'If given, these claims are forbidden in the token payload.'
type: array
items:
type: string
client_alg:
description: The algorithm to use for client_secret_jwt (only HS***) or private_key_jwt authentication.
type: array
items:
enum:
- ES256
- ES384
- ES512
- EdDSA
- HS256
- HS384
- HS512
- PS256
- PS384
- PS512
- RS256
- RS384
- RS512
type: string
client_arg:
description: The client to use for this request (the selection is made with a request parameter with the same name).
type: string
default: client_id
client_auth:
description: 'The default OpenID Connect client authentication method is ''client_secret_basic'' (using ''Authorization: Basic'' header), ''client_secret_post'' (credentials in body), ''client_secret_jwt'' (signed client assertion in body), ''private_key_jwt'' (private key-signed assertion), ''tls_client_auth'' (client certificate), ''self_signed_tls_client_auth'' (self-signed client certificate), and ''none'' (no authentication).'
type: array
items:
enum:
- client_secret_basic
- client_secret_jwt
- client_secret_post
- none
- private_key_jwt
- self_signed_tls_client_auth
- tls_client_auth
type: string
client_credentials_param_type:
description: 'Where to look for the client credentials: - `header`: search the HTTP headers - `query`: search the URL''s query string - `body`: search from the HTTP request body.'
type: array
items:
enum:
- body
- header
- query
type: string
default:
- body
- header
- query
client_id:
description: The client id(s) that the plugin uses when it calls authenticated endpoints on the identity provider.
type: array
items:
type: string
client_jwk:
description: The JWK used for the private_key_jwt authentication.
type: array
items:
properties:
alg:
type: string
crv:
type: string
d:
type: string
dp:
type: string
dq:
type: string
e:
type: string
issuer:
type: string
k:
type: string
key_ops:
type: array
items:
type: string
kid:
type: string
kty:
type: string
'n':
type: string
oth:
type: string
p:
type: string
q:
type: string
qi:
type: string
r:
type: string
t:
type: string
use:
type: string
x:
type: string
x5c:
type: array
items:
type: string
x5t:
type: string
x5t#S256:
type: string
x5u:
type: string
'y':
type: string
type: object
client_secret:
description: The client secret.
type: array
items:
type: string
cluster_cache_redis:
type: object
properties:
cluster_max_redirections:
description: Maximum retry attempts for redirection.
type: integer
default: 5
cluster_nodes:
description: Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element.
type: array
items:
properties:
ip:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
minLength: 1
connect_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
connection_is_proxied:
description: 'If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address.'
type: boolean
default: false
database:
description: Database to use for the Redis connection when using the `redis` strategy
type: integer
default: 0
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
keepalive_backlog:
description: 'Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`.'
type: integer
maximum: 2147483646
minimum: 0
keepalive_pool_size:
description: 'The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn''t specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low.'
type: integer
default: 256
maximum: 2147483646
minimum: 1
password:
description: 'Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis.'
type: string
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
read_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
send_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
sentinel_master:
description: Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel.
type: string
sentinel_nodes:
description: Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element.
type: array
items:
properties:
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
minLength: 1
sentinel_password:
description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.'
type: string
sentinel_role:
description: Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel.
type: string
enum:
- any
- master
- slave
sentinel_username:
description: 'Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won''t be performed. This requires Redis v6.2.0+.'
type: string
server_name:
description: A string representing an SNI (server name indication) value for TLS.
type: string
ssl:
description: 'If set to true, uses SSL to connect to Redis.'
type: boolean
default: false
ssl_verify:
description: 'If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly.'
type: boolean
default: false
username:
description: 'Username to use for Redis connections. If undefined, ACL authentication won''t be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`.'
type: string
shorthand_fields:
cluster_addresses:
items:
type: string
minLength: 1
type: array
sentinel_addresses:
items:
type: string
minLength: 1
type: array
timeout:
type: integer
cluster_cache_strategy:
description: 'The strategy to use for the cluster cache. If set, the plugin will share cache with nodes configured with the same strategy backend. Currentlly only introspection cache is shared.'
type: string
default: 'off'
enum:
- 'off'
- redis
consumer_by:
description: 'Consumer fields used for mapping: - `id`: try to find the matching Consumer by `id` - `username`: try to find the matching Consumer by `username` - `custom_id`: try to find the matching Consumer by `custom_id`.'
type: array
items:
enum:
- custom_id
- id
- username
type: string
default:
- custom_id
- username
consumer_claim:
description: 'The claim used for consumer mapping. If multiple values are set, it means the claim is inside a nested object of the token payload.'
type: array
items:
type: string
consumer_optional:
description: Do not terminate the request if consumer mapping fails.
type: boolean
default: false
credential_claim:
description: 'The claim used to derive virtual credentials (e.g. to be consumed by the rate-limiting plugin), in case the consumer mapping is not used. If multiple values are set, it means the claim is inside a nested object of the token payload.'
type: array
items:
type: string
default:
- sub
disable_session:
description: Disable issuing the session cookie with the specified grants.
type: array
items:
enum:
- authorization_code
- bearer
- client_credentials
- introspection
- kong_oauth2
- password
- refresh_token
- session
- userinfo
type: string
discovery_headers_names:
description: Extra header names passed to the discovery endpoint.
type: array
items:
type: string
discovery_headers_values:
description: Extra header values passed to the discovery endpoint.
type: array
items:
type: string
display_errors:
description: Display errors on failure responses.
type: boolean
default: false
domains:
description: The allowed values for the `hd` claim.
type: array
items:
type: string
downstream_access_token_header:
description: The downstream access token header.
type: string
downstream_access_token_jwk_header:
description: The downstream access token JWK header.
type: string
downstream_headers_claims:
description: 'The downstream header claims. If multiple values are set, it means the claim is inside a nested object of the token payload.'
type: array
items:
type: string
downstream_headers_names:
description: The downstream header names for the claim values.
type: array
items:
type: string
downstream_id_token_header:
description: The downstream id token header.
type: string
downstream_id_token_jwk_header:
description: The downstream id token JWK header.
type: string
downstream_introspection_header:
description: The downstream introspection header.
type: string
downstream_introspection_jwt_header:
description: The downstream introspection JWT header.
type: string
downstream_refresh_token_header:
description: The downstream refresh token header.
type: string
downstream_session_id_header:
description: The downstream session id header.
type: string
downstream_user_info_header:
description: The downstream user info header.
type: string
downstream_user_info_jwt_header:
description: The downstream user info JWT header (in case the user info returns a JWT response).
type: string
dpop_proof_lifetime:
description: 'Specifies the lifetime in seconds of the DPoP proof. It determines how long the same proof can be used after creation. The creation time is determined by the nonce creation time if a nonce is used, and the iat claim otherwise.'
type: number
default: 300
dpop_use_nonce:
description: Specifies whether to challenge the client with a nonce value for DPoP proof. When enabled it will also be used to calculate the DPoP proof lifetime.
type: boolean
default: false
enable_hs_signatures:
description: 'Enable shared secret, for example, HS256, signatures (when disabled they will not be accepted).'
type: boolean
default: false
end_session_endpoint:
description: The end session endpoint. If set it overrides the value in `end_session_endpoint` returned by the discovery endpoint.
type: string
expose_error_code:
description: 'Specifies whether to expose the error code header, as defined in RFC 6750. If an authorization request fails, this header is sent in the response. Set to `false` to disable.'
type: boolean
default: true
extra_jwks_uris:
description: JWKS URIs whose public keys are trusted (in addition to the keys found with the discovery).
type: array
items:
description: 'A string representing a URL, such as https://example.com/path/to/resource?q=search.'
type: string
forbidden_destroy_session:
description: Destroy any active session for the forbidden requests.
type: boolean
default: true
forbidden_error_message:
description: The error message for the forbidden requests (when not using the redirection).
type: string
default: Forbidden
forbidden_redirect_uri:
description: Where to redirect the client on forbidden requests.
type: array
items:
description: 'A string representing a URL, such as https://example.com/path/to/resource?q=search.'
type: string
groups_claim:
description: 'The claim that contains the groups. If multiple values are set, it means the claim is inside a nested object of the token payload.'
type: array
items:
type: string
default:
- groups
groups_required:
description: The groups (`groups_claim` claim) required to be present in the access token (or introspection results) for successful authorization. This config parameter works in both **AND** / **OR** cases.
type: array
items:
type: string
hide_credentials:
description: 'Remove the credentials used for authentication from the request. If multiple credentials are sent with the same request, the plugin will remove those that were used for successful authentication.'
type: boolean
default: false
http_proxy:
description: The HTTP proxy.
type: string
http_proxy_authorization:
description: The HTTP proxy authorization.
type: string
http_version:
description: 'The HTTP version used for the requests by this plugin: - `1.1`: HTTP 1.1 (the default) - `1.0`: HTTP 1.0.'
type: number
default: 1.1
https_proxy:
description: The HTTPS proxy.
type: string
https_proxy_authorization:
description: The HTTPS proxy authorization.
type: string
id_token_param_name:
description: The name of the parameter used to pass the id token.
type: string
id_token_param_type:
description: 'Where to look for the id token: - `header`: search the HTTP headers - `query`: search the URL''s query string - `body`: search the HTTP request body.'
type: array
items:
enum:
- body
- header
- query
type: string
default:
- body
- header
- query
ignore_signature:
description: 'Skip the token signature verification on certain grants: - `password`: OAuth password grant - `client_credentials`: OAuth client credentials grant - `authorization_code`: authorization code flow - `refresh_token`: OAuth refresh token grant - `session`: session cookie authentication - `introspection`: OAuth introspection - `userinfo`: OpenID Connect user info endpoint authentication.'
type: array
items:
enum:
- authorization_code
- client_credentials
- introspection
- password
- refresh_token
- session
- userinfo
type: string
default: []
introspect_jwt_tokens:
description: Specifies whether to introspect the JWT access tokens (can be used to check for revocations).
type: boolean
default: false
introspection_accept:
description: 'The value of `Accept` header for introspection requests: - `application/json`: introspection response as JSON - `application/token-introspection+jwt`: introspection response as JWT (from the current IETF draft document) - `application/jwt`: introspection response as JWT (from the obsolete IETF draft document).'
type: string
default: application/json
enum:
- application/json
- application/jwt
- application/token-introspection+jwt
introspection_check_active:
description: Check that the introspection response has an `active` claim with a value of `true`.
type: boolean
default: true
introspection_endpoint:
description: The introspection endpoint. If set it overrides the value in `introspection_endpoint` returned by the discovery endpoint.
type: string
introspection_endpoint_auth_method:
description: 'The introspection endpoint authentication method: : `client_secret_basic`, `client_secret_post`, `client_secret_jwt`, `private_key_jwt`, `tls_client_auth`, `self_signed_tls_client_auth`, or `none`: do not authenticate'
type: string
enum:
- client_secret_basic
- client_secret_jwt
- client_secret_post
- none
- private_key_jwt
- self_signed_tls_client_auth
- tls_client_auth
introspection_headers_client:
description: Extra headers passed from the client to the introspection endpoint.
type: array
items:
type: string
introspection_headers_names:
description: Extra header names passed to the introspection endpoint.
type: array
items:
type: string
introspection_headers_values:
description: Extra header values passed to the introspection endpoint.
type: array
items:
type: string
introspection_hint:
description: Introspection hint parameter value passed to the introspection endpoint.
type: string
default: access_token
introspection_post_args_client:
description: Extra post arguments passed from the client to the introspection endpoint.
type: array
items:
type: string
introspection_post_args_client_headers:
description: Extra post arguments passed from the client headers to the introspection endpoint.
type: array
items:
type: string
introspection_post_args_names:
description: Extra post argument names passed to the introspection endpoint.
type: array
items:
type: string
introspection_post_args_values:
description: Extra post argument values passed to the introspection endpoint.
type: array
items:
type: string
introspection_token_param_name:
description: Designate token's parameter name for introspection.
type: string
default: token
issuer:
description: 'The discovery endpoint (or the issuer identifier). When there is no discovery endpoint, please also configure `config.using_pseudo_issuer=true`.'
type: string
issuers_allowed:
description: The issuers allowed to be present in the tokens (`iss` claim).
type: array
items:
type: string
jwt_session_claim:
description: The claim to match against the JWT session cookie.
type: string
default: sid
jwt_session_cookie:
description: The name of the JWT session cookie.
type: string
keepalive:
description: Use keepalive with the HTTP client.
type: boolean
default: true
leeway:
description: 'Defines leeway time (in seconds) for `auth_time`, `exp`, `iat`, and `nbf` claims'
type: number
default: 0
login_action:
description: 'What to do after successful login: - `upstream`: proxy request to upstream service - `response`: terminate request with a response - `redirect`: redirect to a different location.'
type: string
default: upstream
enum:
- redirect
- response
- upstream
login_methods:
description: Enable login functionality with specified grants.
type: array
items:
enum:
- authorization_code
- bearer
- client_credentials
- introspection
- kong_oauth2
- password
- refresh_token
- session
- userinfo
type: string
default:
- authorization_code
login_redirect_mode:
description: 'Where to place `login_tokens` when using `redirect` `login_action`: - `query`: place tokens in query string - `fragment`: place tokens in url fragment (not readable by servers).'
type: string
default: fragment
enum:
- fragment
- query
login_redirect_uri:
description: Where to redirect the client when `login_action` is set to `redirect`.
type: array
items:
description: 'A string representing a URL, such as https://example.com/path/to/resource?q=search.'
type: string
login_tokens:
description: 'What tokens to include in `response` body or `redirect` query string or fragment: - `id_token`: include id token - `access_token`: include access token - `refresh_token`: include refresh token - `tokens`: include the full token endpoint response - `introspection`: include introspection response.'
type: array
items:
enum:
- access_token
- id_token
- introspection
- refresh_token
- tokens
type: string
default:
- id_token
logout_methods:
description: 'The request methods that can activate the logout: - `POST`: HTTP POST method - `GET`: HTTP GET method - `DELETE`: HTTP DELETE method.'
type: array
items:
enum:
- DELETE
- GET
- POST
type: string
default:
- DELETE
- POST
logout_post_arg:
description: The request body argument that activates the logout.
type: string
logout_query_arg:
description: The request query argument that activates the logout.
type: string
logout_redirect_uri:
description: Where to redirect the client after the logout.
type: array
items:
description: 'A string representing a URL, such as https://example.com/path/to/resource?q=search.'
type: string
logout_revoke:
description: |-
Revoke tokens as part of the logout.
For more granular token revocation, you can also adjust the `logout_revoke_access_token` and `logout_revoke_refresh_token` parameters.
type: boolean
default: false
logout_revoke_access_token:
description: Revoke the access token as part of the logout. Requires `logout_revoke` to be set to `true`.
type: boolean
default: true
logout_revoke_refresh_token:
description: Revoke the refresh token as part of the logout. Requires `logout_revoke` to be set to `true`.
type: boolean
default: true
logout_uri_suffix:
description: The request URI suffix that activates the logout.
type: string
max_age:
description: The maximum age (in seconds) compared to the `auth_time` claim.
type: number
mtls_introspection_endpoint:
description: Alias for the introspection endpoint to be used for mTLS client authentication. If set it overrides the value in `mtls_endpoint_aliases` returned by the discovery endpoint.
type: string
mtls_revocation_endpoint:
description: Alias for the introspection endpoint to be used for mTLS client authentication. If set it overrides the value in `mtls_endpoint_aliases` returned by the discovery endpoint.
type: string
mtls_token_endpoint:
description: Alias for the token endpoint to be used for mTLS client authentication. If set it overrides the value in `mtls_endpoint_aliases` returned by the discovery endpoint.
type: string
no_proxy:
description: Do not use proxy with these hosts.
type: string
password_param_type:
description: 'Where to look for the username and password: - `header`: search the HTTP headers - `query`: search the URL''s query string - `body`: search the HTTP request body.'
type: array
items:
enum:
- body
- header
- query
type: string
default:
- body
- header
- query
preserve_query_args:
description: 'With this parameter, you can preserve request query arguments even when doing authorization code flow.'
type: boolean
default: false
proof_of_possession_auth_methods_validation:
description: 'If set to true, only the auth_methods that are compatible with Proof of Possession (PoP) can be configured when PoP is enabled. If set to false, all auth_methods will be configurable and PoP checks will be silently skipped for those auth_methods that are not compatible with PoP.'
type: boolean
default: true
proof_of_possession_dpop:
description: 'Enable Demonstrating Proof-of-Possession (DPoP). If set to strict, all request are verified despite the presence of the DPoP key claim (cnf.jkt). If set to optional, only tokens bound with DPoP''s key are verified with the proof.'
type: string
default: 'off'
enum:
- 'off'
- optional
- strict
proof_of_possession_mtls:
description: 'Enable mtls proof of possession. If set to strict, all tokens (from supported auth_methods: bearer, introspection, and session granted with bearer or introspection) are verified, if set to optional, only tokens that contain the certificate hash claim are verified. If the verification fails, the request will be rejected with 401.'
type: string
default: 'off'
enum:
- 'off'
- optional
- strict
pushed_authorization_request_endpoint:
description: The pushed authorization endpoint. If set it overrides the value in `pushed_authorization_request_endpoint` returned by the discovery endpoint.
type: string
pushed_authorization_request_endpoint_auth_method:
description: 'The pushed authorization request endpoint authentication method: `client_secret_basic`, `client_secret_post`, `client_secret_jwt`, `private_key_jwt`, `tls_client_auth`, `self_signed_tls_client_auth`, or `none`: do not authenticate'
type: string
enum:
- client_secret_basic
- client_secret_jwt
- client_secret_post
- none
- private_key_jwt
- self_signed_tls_client_auth
- tls_client_auth
redirect_uri:
description: The redirect URI passed to the authorization and token endpoints.
type: array
items:
description: 'A string representing a URL, such as https://example.com/path/to/resource?q=search.'
type: string
redis:
type: object
properties:
cluster_max_redirections:
description: Maximum retry attempts for redirection.
type: integer
default: 5
cluster_nodes:
description: Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element.
type: array
items:
properties:
ip:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
minLength: 1
connect_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
connection_is_proxied:
description: 'If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address.'
type: boolean
default: false
database:
description: Database to use for the Redis connection when using the `redis` strategy
type: integer
default: 0
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
keepalive_backlog:
description: 'Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`.'
type: integer
maximum: 2147483646
minimum: 0
keepalive_pool_size:
description: 'The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn''t specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low.'
type: integer
default: 256
maximum: 2147483646
minimum: 1
password:
description: 'Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis.'
type: string
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
prefix:
description: The Redis session key prefix.
type: string
read_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
send_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
sentinel_master:
description: Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel.
type: string
sentinel_nodes:
description: Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element.
type: array
items:
properties:
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
minLength: 1
sentinel_password:
description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.'
type: string
sentinel_role:
description: Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel.
type: string
enum:
- any
- master
- slave
sentinel_username:
description: 'Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won''t be performed. This requires Redis v6.2.0+.'
type: string
server_name:
description: A string representing an SNI (server name indication) value for TLS.
type: string
socket:
description: The Redis unix socket path.
type: string
ssl:
description: 'If set to true, uses SSL to connect to Redis.'
type: boolean
default: false
ssl_verify:
description: 'If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly.'
type: boolean
default: false
username:
description: 'Username to use for Redis connections. If undefined, ACL authentication won''t be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`.'
type: string
shorthand_fields:
cluster_addresses:
items:
type: string
minLength: 1
type: array
sentinel_addresses:
items:
type: string
minLength: 1
type: array
timeout:
type: integer
rediscovery_lifetime:
description: Specifies how long (in seconds) the plugin waits between discovery attempts. Discovery is still triggered on an as-needed basis.
type: number
default: 30
refresh_token_param_name:
description: The name of the parameter used to pass the refresh token.
type: string
refresh_token_param_type:
description: 'Where to look for the refresh token: - `header`: search the HTTP headers - `query`: search the URL''s query string - `body`: search the HTTP request body.'
type: array
items:
enum:
- body
- header
- query
type: string
default:
- body
- header
- query
refresh_tokens:
description: Specifies whether the plugin should try to refresh (soon to be) expired access tokens if the plugin has a `refresh_token` available.
type: boolean
default: true
require_proof_key_for_code_exchange:
description: 'Forcibly enable or disable the proof key for code exchange. When not set the value is determined through the discovery using the value of `code_challenge_methods_supported`, and enabled automatically (in case the `code_challenge_methods_supported` is missing, the PKCE will not be enabled).'
type: boolean
require_pushed_authorization_requests:
description: Forcibly enable or disable the pushed authorization requests. When not set the value is determined through the discovery using the value of `require_pushed_authorization_requests` (which defaults to `false`).
type: boolean
require_signed_request_object:
description: 'Forcibly enable or disable the usage of signed request object on authorization or pushed authorization endpoint. When not set the value is determined through the discovery using the value of `require_signed_request_object`, and enabled automatically (in case the `require_signed_request_object` is missing, the feature will not be enabled).'
type: boolean
resolve_distributed_claims:
description: 'Distributed claims are represented by the `_claim_names` and `_claim_sources` members of the JSON object containing the claims. If this parameter is set to `true`, the plugin explicitly resolves these distributed claims.'
type: boolean
default: false
response_mode:
description: 'Response mode passed to the authorization endpoint: - `query`: for parameters in query string - `form_post`: for parameters in request body - `fragment`: for parameters in uri fragment (rarely useful as the plugin itself cannot read it) - `query.jwt`, `form_post.jwt`, `fragment.jwt`: similar to `query`, `form_post` and `fragment` but the parameters are encoded in a JWT - `jwt`: shortcut that indicates the default encoding for the requested response type.'
type: string
default: query
enum:
- form_post
- form_post.jwt
- fragment
- fragment.jwt
- jwt
- query
- query.jwt
response_type:
description: The response type passed to the authorization endpoint.
type: array
items:
type: string
default:
- code
reverify:
description: Specifies whether to always verify tokens stored in the session.
type: boolean
default: false
revocation_endpoint:
description: The revocation endpoint. If set it overrides the value in `revocation_endpoint` returned by the discovery endpoint.
type: string
revocation_endpoint_auth_method:
description: 'The revocation endpoint authentication method: : `client_secret_basic`, `client_secret_post`, `client_secret_jwt`, `private_key_jwt`, `tls_client_auth`, `self_signed_tls_client_auth`, or `none`: do not authenticate'
type: string
enum:
- client_secret_basic
- client_secret_jwt
- client_secret_post
- none
- private_key_jwt
- self_signed_tls_client_auth
- tls_client_auth
revocation_token_param_name:
description: Designate token's parameter name for revocation.
type: string
default: token
roles_claim:
description: 'The claim that contains the roles. If multiple values are set, it means the claim is inside a nested object of the token payload.'
type: array
items:
type: string
default:
- roles
roles_required:
description: The roles (`roles_claim` claim) required to be present in the access token (or introspection results) for successful authorization. This config parameter works in both **AND** / **OR** cases.
type: array
items:
type: string
run_on_preflight:
description: Specifies whether to run this plugin on pre-flight (`OPTIONS`) requests.
type: boolean
default: true
scopes:
description: The scopes passed to the authorization and token endpoints.
type: array
items:
type: string
default:
- openid
scopes_claim:
description: 'The claim that contains the scopes. If multiple values are set, it means the claim is inside a nested object of the token payload.'
type: array
items:
type: string
default:
- scope
scopes_required:
description: The scopes (`scopes_claim` claim) required to be present in the access token (or introspection results) for successful authorization. This config parameter works in both **AND** / **OR** cases.
type: array
items:
type: string
search_user_info:
description: 'Specify whether to use the user info endpoint to get additional claims for consumer mapping, credential mapping, authenticated groups, and upstream and downstream headers.'
type: boolean
default: false
session_absolute_timeout:
description: 'Limits how long the session can be renewed in seconds, until re-authentication is required. 0 disables the checks.'
type: number
default: 86400
session_audience:
description: 'The session audience, which is the intended target application. For example `"my-application"`.'
type: string
default: default
session_cookie_domain:
description: The session cookie Domain flag.
type: string
session_cookie_http_only:
description: 'Forbids JavaScript from accessing the cookie, for example, through the `Document.cookie` property.'
type: boolean
default: true
session_cookie_name:
description: The session cookie name.
type: string
default: session
session_cookie_path:
description: The session cookie Path flag.
type: string
default: /
session_cookie_same_site:
description: 'Controls whether a cookie is sent with cross-origin requests, providing some protection against cross-site request forgery attacks.'
type: string
default: Lax
enum:
- Default
- Lax
- None
- Strict
session_cookie_secure:
description: 'Cookie is only sent to the server when a request is made with the https: scheme (except on localhost), and therefore is more resistant to man-in-the-middle attacks.'
type: boolean
session_enforce_same_subject:
description: 'When set to `true`, audiences are forced to share the same subject.'
type: boolean
default: false
session_hash_storage_key:
description: 'When set to `true`, the storage key (session ID) is hashed for extra security. Hashing the storage key means it is impossible to decrypt data from the storage without a cookie.'
type: boolean
default: false
session_hash_subject:
description: 'When set to `true`, the value of subject is hashed before being stored. Only applies when `session_store_metadata` is enabled.'
type: boolean
default: false
session_idling_timeout:
description: Specifies how long the session can be inactive until it is considered invalid in seconds. 0 disables the checks and touching.
type: number
default: 900
session_memcached_host:
description: The memcached host.
type: string
default: 127.0.0.1
session_memcached_port:
description: The memcached port.
type: integer
default: 11211
maximum: 65535
minimum: 0
session_memcached_prefix:
description: The memcached session key prefix.
type: string
session_memcached_socket:
description: The memcached unix socket path.
type: string
session_remember:
description: Enables or disables persistent sessions.
type: boolean
default: false
session_remember_absolute_timeout:
description: 'Limits how long the persistent session can be renewed in seconds, until re-authentication is required. 0 disables the checks.'
type: number
default: 2592000
session_remember_cookie_name:
description: Persistent session cookie name. Use with the `remember` configuration parameter.
type: string
default: remember
session_remember_rolling_timeout:
description: Specifies how long the persistent session is considered valid in seconds. 0 disables the checks and rolling.
type: number
default: 604800
session_request_headers:
description: 'Set of headers to send to upstream, use id, audience, subject, timeout, idling-timeout, rolling-timeout, absolute-timeout. E.g. `[ "id", "timeout" ]` will set Session-Id and Session-Timeout request headers.'
type: array
items:
enum:
- absolute-timeout
- audience
- id
- idling-timeout
- rolling-timeout
- subject
- timeout
type: string
session_response_headers:
description: 'Set of headers to send to downstream, use id, audience, subject, timeout, idling-timeout, rolling-timeout, absolute-timeout. E.g. `[ "id", "timeout" ]` will set Session-Id and Session-Timeout response headers.'
type: array
items:
enum:
- absolute-timeout
- audience
- id
- idling-timeout
- rolling-timeout
- subject
- timeout
type: string
session_rolling_timeout:
description: Specifies how long the session can be used in seconds until it needs to be renewed. 0 disables the checks and rolling.
type: number
default: 3600
session_secret:
description: The session secret.
type: string
session_storage:
description: 'The session storage for session data: - `cookie`: stores session data with the session cookie (the session cannot be invalidated or revoked without changing session secret, but is stateless, and doesn''t require a database) - `memcache`: stores session data in memcached - `redis`: stores session data in Redis.'
type: string
default: cookie
enum:
- cookie
- memcache
- memcached
- redis
session_store_metadata:
description: Configures whether or not session metadata should be stored. This metadata includes information about the active sessions for a specific audience belonging to a specific subject.
type: boolean
default: false
ssl_verify:
description: 'Verify identity provider server certificate. If set to `true`, the plugin uses the CA certificate set in the `kong.conf` config parameter `lua_ssl_trusted_certificate`.'
type: boolean
default: false
timeout:
description: Network IO timeout in milliseconds.
type: number
default: 10000
tls_client_auth_cert_id:
description: ID of the Certificate entity representing the client certificate to use for mTLS client authentication for connections between Kong and the Auth Server.
type: string
uuid: true
tls_client_auth_ssl_verify:
description: Verify identity provider server certificate during mTLS client authentication.
type: boolean
default: true
token_cache_key_include_scope:
description: 'Include the scope in the token cache key, so token with different scopes are considered diffrent tokens.'
type: boolean
default: false
token_endpoint:
description: The token endpoint. If set it overrides the value in `token_endpoint` returned by the discovery endpoint.
type: string
token_endpoint_auth_method:
description: 'The token endpoint authentication method: `client_secret_basic`, `client_secret_post`, `client_secret_jwt`, `private_key_jwt`, `tls_client_auth`, `self_signed_tls_client_auth`, or `none`: do not authenticate'
type: string
enum:
- client_secret_basic
- client_secret_jwt
- client_secret_post
- none
- private_key_jwt
- self_signed_tls_client_auth
- tls_client_auth
token_exchange_endpoint:
description: The token exchange endpoint.
type: string
token_headers_client:
description: Extra headers passed from the client to the token endpoint.
type: array
items:
type: string
token_headers_grants:
description: 'Enable the sending of the token endpoint response headers only with certain grants: - `password`: with OAuth password grant - `client_credentials`: with OAuth client credentials grant - `authorization_code`: with authorization code flow - `refresh_token` with refresh token grant.'
type: array
items:
enum:
- authorization_code
- client_credentials
- password
- refresh_token
type: string
token_headers_names:
description: Extra header names passed to the token endpoint.
type: array
items:
type: string
token_headers_prefix:
description: Add a prefix to the token endpoint response headers before forwarding them to the downstream client.
type: string
token_headers_replay:
description: The names of token endpoint response headers to forward to the downstream client.
type: array
items:
type: string
token_headers_values:
description: Extra header values passed to the token endpoint.
type: array
items:
type: string
token_post_args_client:
description: 'Pass extra arguments from the client to the OpenID-Connect plugin. If arguments exist, the client can pass them using: - Query parameters - Request Body - Request Header This parameter can be used with `scope` values, like this: `config.token_post_args_client=scope` In this case, the token would take the `scope` value from the query parameter or from the request body or from the header and send it to the token endpoint.'
type: array
items:
type: string
token_post_args_names:
description: Extra post argument names passed to the token endpoint.
type: array
items:
type: string
token_post_args_values:
description: Extra post argument values passed to the token endpoint.
type: array
items:
type: string
unauthorized_destroy_session:
description: Destroy any active session for the unauthorized requests.
type: boolean
default: true
unauthorized_error_message:
description: The error message for the unauthorized requests (when not using the redirection).
type: string
default: Unauthorized
unauthorized_redirect_uri:
description: Where to redirect the client on unauthorized requests.
type: array
items:
description: 'A string representing a URL, such as https://example.com/path/to/resource?q=search.'
type: string
unexpected_redirect_uri:
description: Where to redirect the client when unexpected errors happen with the requests.
type: array
items:
description: 'A string representing a URL, such as https://example.com/path/to/resource?q=search.'
type: string
upstream_access_token_header:
description: The upstream access token header.
type: string
default: 'authorization:bearer'
upstream_access_token_jwk_header:
description: The upstream access token JWK header.
type: string
upstream_headers_claims:
description: The upstream header claims. Only top level claims are supported.
type: array
items:
type: string
upstream_headers_names:
description: The upstream header names for the claim values.
type: array
items:
type: string
upstream_id_token_header:
description: The upstream id token header.
type: string
upstream_id_token_jwk_header:
description: The upstream id token JWK header.
type: string
upstream_introspection_header:
description: The upstream introspection header.
type: string
upstream_introspection_jwt_header:
description: The upstream introspection JWT header.
type: string
upstream_refresh_token_header:
description: The upstream refresh token header.
type: string
upstream_session_id_header:
description: The upstream session id header.
type: string
upstream_user_info_header:
description: The upstream user info header.
type: string
upstream_user_info_jwt_header:
description: The upstream user info JWT header (in case the user info returns a JWT response).
type: string
userinfo_accept:
description: 'The value of `Accept` header for user info requests: - `application/json`: user info response as JSON - `application/jwt`: user info response as JWT (from the obsolete IETF draft document).'
type: string
default: application/json
enum:
- application/json
- application/jwt
userinfo_endpoint:
description: The user info endpoint. If set it overrides the value in `userinfo_endpoint` returned by the discovery endpoint.
type: string
userinfo_headers_client:
description: Extra headers passed from the client to the user info endpoint.
type: array
items:
type: string
userinfo_headers_names:
description: Extra header names passed to the user info endpoint.
type: array
items:
type: string
userinfo_headers_values:
description: Extra header values passed to the user info endpoint.
type: array
items:
type: string
userinfo_query_args_client:
description: Extra query arguments passed from the client to the user info endpoint.
type: array
items:
type: string
userinfo_query_args_names:
description: Extra query argument names passed to the user info endpoint.
type: array
items:
type: string
userinfo_query_args_values:
description: Extra query argument values passed to the user info endpoint.
type: array
items:
type: string
using_pseudo_issuer:
description: 'If the plugin uses a pseudo issuer. When set to true, the plugin will not discover the configuration from the issuer URL specified with `config.issuer`.'
type: boolean
default: false
verify_claims:
description: Verify tokens for standard claims.
type: boolean
default: true
verify_nonce:
description: Verify nonce on authorization code flow.
type: boolean
default: true
verify_parameters:
description: Verify plugin configuration against discovery.
type: boolean
default: false
verify_signature:
description: Verify signature of tokens.
type: boolean
default: true
shorthand_fields:
authorization_cookie_httponly:
type: boolean
authorization_cookie_lifetime:
type: number
authorization_cookie_samesite:
type: string
session_compressor:
type: string
session_cookie_httponly:
type: boolean
session_cookie_idletime:
type: number
session_cookie_lifetime:
type: number
session_cookie_maxsize:
type: integer
session_cookie_renew:
type: number
session_cookie_samesite:
type: string
session_memcache_host:
type: string
session_memcache_port:
type: integer
session_memcache_prefix:
type: string
session_memcache_socket:
type: string
session_redis_cluster_max_redirections:
type: integer
session_redis_cluster_nodes:
items:
properties:
ip:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
type: array
session_redis_connect_timeout:
type: integer
session_redis_host:
type: string
session_redis_password:
type: string
session_redis_port:
type: integer
session_redis_prefix:
type: string
session_redis_read_timeout:
type: integer
session_redis_send_timeout:
type: integer
session_redis_server_name:
type: string
session_redis_socket:
type: string
session_redis_ssl:
type: boolean
session_redis_ssl_verify:
type: boolean
session_redis_username:
type: string
session_strategy:
type: string
name:
type: string
const: openid-connect
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
OpentelemetryPlugin:
x-speakeasy-entity: PluginOpentelemetry
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/OpentelemetryPluginConfig'
OpentelemetryPluginConfig:
properties:
config:
type: object
properties:
batch_flush_delay:
description: 'The delay, in seconds, between two consecutive batches.'
type: integer
batch_span_count:
description: The number of spans to be sent in a single batch.
type: integer
connect_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 1000
maximum: 2147483646
minimum: 0
header_type:
type: string
default: preserve
enum:
- aws
- b3
- b3-single
- datadog
- gcp
- ignore
- jaeger
- ot
- preserve
- w3c
headers:
description: The custom headers to be added in the HTTP request sent to the OTLP server. This setting is useful for adding the authentication headers (token) for the APM backend.
type: object
additionalProperties: true
http_response_header_for_traceid:
type: string
logs_endpoint:
description: 'A string representing a URL, such as https://example.com/path/to/resource?q=search.'
type: string
propagation:
type: object
default:
default_format: w3c
properties:
clear:
description: 'Header names to clear after context extraction. This allows to extract the context from a certain header and then remove it from the request, useful when extraction and injection are performed on different header formats and the original header should not be sent to the upstream. If left empty, no headers are cleared.'
type: array
items:
type: string
default_format:
description: 'The default header format to use when extractors did not match any format in the incoming headers and `inject` is configured with the value: `preserve`. This can happen when no tracing header was found in the request, or the incoming tracing header formats were not included in `extract`.'
type: string
enum:
- aws
- b3
- b3-single
- datadog
- gcp
- jaeger
- ot
- w3c
extract:
description: 'Header formats used to extract tracing context from incoming requests. If multiple values are specified, the first one found will be used for extraction. If left empty, Kong will not extract any tracing context information from incoming requests and generate a trace with no parent and a new trace ID.'
type: array
items:
enum:
- aws
- b3
- datadog
- gcp
- jaeger
- ot
- w3c
type: string
inject:
description: 'Header formats used to inject tracing context. The value `preserve` will use the same header format as the incoming request. If multiple values are specified, all of them will be used during injection. If left empty, Kong will not inject any tracing context information in outgoing requests.'
type: array
items:
enum:
- aws
- b3
- b3-single
- datadog
- gcp
- jaeger
- ot
- preserve
- w3c
type: string
required:
- default_format
queue:
type: object
default:
max_batch_size: 200
properties:
concurrency_limit:
description: The number of of queue delivery timers. -1 indicates unlimited.
type: integer
default: 1
enum:
- -1
- 1
initial_retry_delay:
description: Time in seconds before the initial retry is made for a failing batch.
type: number
default: 0.01
maximum: 1000000
minimum: 0.001
max_batch_size:
description: Maximum number of entries that can be processed at a time.
type: integer
default: 1
maximum: 1000000
minimum: 1
max_bytes:
description: 'Maximum number of bytes that can be waiting on a queue, requires string content.'
type: integer
max_coalescing_delay:
description: Maximum number of (fractional) seconds to elapse after the first entry was queued before the queue starts calling the handler.
type: number
default: 1
maximum: 3600
minimum: 0
max_entries:
description: Maximum number of entries that can be waiting on the queue.
type: integer
default: 10000
maximum: 1000000
minimum: 1
max_retry_delay:
description: 'Maximum time in seconds between retries, caps exponential backoff.'
type: number
default: 60
maximum: 1000000
minimum: 0.001
max_retry_time:
description: Time in seconds before the queue gives up calling a failed handler for a batch.
type: number
default: 60
read_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 5000
maximum: 2147483646
minimum: 0
resource_attributes:
type: object
additionalProperties: true
sampling_rate:
description: 'Tracing sampling rate for configuring the probability-based sampler. When set, this value supersedes the global `tracing_sampling_rate` setting from kong.conf.'
type: number
maximum: 1
minimum: 0
send_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 5000
maximum: 2147483646
minimum: 0
traces_endpoint:
description: 'A string representing a URL, such as https://example.com/path/to/resource?q=search.'
type: string
shorthand_fields:
endpoint:
description: 'A string representing a URL, such as https://example.com/path/to/resource?q=search.'
type: string
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: opentelemetry
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
Partial:
x-speakeasy-entity: Partial
type: object
properties:
config:
type: object
additionalProperties: true
created_at:
description: Unix epoch when the resource was created.
type: integer
nullable: true
id:
type: string
nullable: true
name:
type: string
nullable: true
tags:
type: array
items:
type: string
type:
type: string
updated_at:
description: Unix epoch when the resource was last updated.
type: integer
nullable: true
additionalProperties: false
required:
- type
- config
PluginBase:
description: 'A Plugin entity represents a plugin configuration that will be executed during the HTTP request/response lifecycle. It is how you can add functionalities to Services that run behind Kong, like Authentication or Rate Limiting for example. You can find more information about how to install and what values each plugin takes by visiting the [Kong Hub](https://docs.konghq.com/hub/). When adding a Plugin Configuration to a Service, every request made by a client to that Service will run said Plugin. If a Plugin needs to be tuned to different values for some specific Consumers, you can do so by creating a separate plugin instance that specifies both the Service and the Consumer, through the `service` and `consumer` fields.'
type: object
properties:
created_at:
description: Unix epoch when the resource was created.
type: integer
nullable: true
enabled:
description: Whether the plugin is applied.
type: boolean
default: true
nullable: true
id:
type: string
nullable: true
instance_name:
type: string
nullable: true
name:
description: 'The name of the Plugin that''s going to be added. Currently, the Plugin must be installed in every Kong instance separately.'
type: string
ordering:
type: object
nullable: true
properties:
after:
type: object
properties:
access:
type: array
items:
type: string
before:
type: object
properties:
access:
type: array
items:
type: string
partials:
type: array
items:
properties:
id:
type: string
name:
type: string
path:
type: string
type: object
nullable: true
tags:
description: An optional set of strings associated with the Plugin for grouping and filtering.
type: array
items:
type: string
updated_at:
description: Unix epoch when the resource was last updated.
type: integer
nullable: true
example:
config:
anonymous: null
hide_credentials: false
key_in_body: false
key_in_header: true
key_in_query: true
key_names:
- apikey
run_on_preflight: true
enabled: true
id: 3fd1eea1-885a-4011-b986-289943ff8177
name: key-auth
partials:
- id: cff1230a-00f7-4ae8-b376-c370f0eb4dae
name: foo-partial
path: config.redis
- id: 129ee345-cba8-4e55-9d6d-93c223ff91ae
name: bar-partial
path: config.redis
protocols:
- grpc
- grpcs
- http
- https
additionalProperties: false
required:
- name
PostFunctionPlugin:
x-speakeasy-entity: PluginPostFunction
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/PostFunctionPluginConfig'
PostFunctionPluginConfig:
properties:
config:
type: object
properties:
access:
type: array
items:
type: string
default: []
body_filter:
type: array
items:
type: string
default: []
certificate:
type: array
items:
type: string
default: []
header_filter:
type: array
items:
type: string
default: []
log:
type: array
items:
type: string
default: []
rewrite:
type: array
items:
type: string
default: []
ws_client_frame:
type: array
items:
type: string
default: []
ws_close:
type: array
items:
type: string
default: []
ws_handshake:
type: array
items:
type: string
default: []
ws_upstream_frame:
type: array
items:
type: string
default: []
name:
type: string
const: post-function
protocols:
description: A set of strings representing protocols.
type: array
items:
description: 'A string representing a protocol, such as HTTP or HTTPS.'
enum:
- grpc
- grpcs
- http
- https
- tcp
- tls
- tls_passthrough
- udp
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
PreFunctionPlugin:
x-speakeasy-entity: PluginPreFunction
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/PreFunctionPluginConfig'
PreFunctionPluginConfig:
properties:
config:
type: object
properties:
access:
type: array
items:
type: string
default: []
body_filter:
type: array
items:
type: string
default: []
certificate:
type: array
items:
type: string
default: []
header_filter:
type: array
items:
type: string
default: []
log:
type: array
items:
type: string
default: []
rewrite:
type: array
items:
type: string
default: []
ws_client_frame:
type: array
items:
type: string
default: []
ws_close:
type: array
items:
type: string
default: []
ws_handshake:
type: array
items:
type: string
default: []
ws_upstream_frame:
type: array
items:
type: string
default: []
name:
type: string
const: pre-function
protocols:
description: A set of strings representing protocols.
type: array
items:
description: 'A string representing a protocol, such as HTTP or HTTPS.'
enum:
- grpc
- grpcs
- http
- https
- tcp
- tls
- tls_passthrough
- udp
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
PrometheusPlugin:
x-speakeasy-entity: PluginPrometheus
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/PrometheusPluginConfig'
PrometheusPluginConfig:
properties:
config:
type: object
properties:
ai_metrics:
description: 'A boolean value that determines if ai metrics should be collected. If enabled, the `ai_llm_requests_total`, `ai_llm_cost_total` and `ai_llm_tokens_total` metrics will be exported.'
type: boolean
default: false
bandwidth_metrics:
description: 'A boolean value that determines if bandwidth metrics should be collected. If enabled, `bandwidth_bytes` and `stream_sessions_total` metrics will be exported.'
type: boolean
default: false
latency_metrics:
description: 'A boolean value that determines if latency metrics should be collected. If enabled, `kong_latency_ms`, `upstream_latency_ms` and `request_latency_ms` metrics will be exported.'
type: boolean
default: false
per_consumer:
description: 'A boolean value that determines if per-consumer metrics should be collected. If enabled, the `kong_http_requests_total` and `kong_bandwidth_bytes` metrics fill in the consumer label when available.'
type: boolean
default: false
status_code_metrics:
description: 'A boolean value that determines if status code metrics should be collected. If enabled, `http_requests_total`, `stream_sessions_total` metrics will be exported.'
type: boolean
default: false
upstream_health_metrics:
description: 'A boolean value that determines if upstream metrics should be collected. If enabled, `upstream_target_health` metric will be exported.'
type: boolean
default: false
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: prometheus
protocols:
description: A set of strings representing protocols.
type: array
items:
description: 'A string representing a protocol, such as HTTP or HTTPS.'
enum:
- grpc
- grpcs
- http
- https
- tcp
- tls
- tls_passthrough
- udp
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
ProxyCacheAdvancedPlugin:
x-speakeasy-entity: PluginProxyCacheAdvanced
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/ProxyCacheAdvancedPluginConfig'
ProxyCacheAdvancedPluginConfig:
properties:
config:
type: object
properties:
bypass_on_err:
description: 'Unhandled errors while trying to retrieve a cache entry (such as redis down) are resolved with `Bypass`, with the request going upstream.'
type: boolean
default: false
cache_control:
description: 'When enabled, respect the Cache-Control behaviors defined in RFC7234.'
type: boolean
default: false
cache_ttl:
description: TTL in seconds of cache entities.
type: integer
default: 300
minimum: 0
content_type:
description: 'Upstream response content types considered cacheable. The plugin performs an **exact match** against each specified value; for example, if the upstream is expected to respond with a `application/json; charset=utf-8` content-type, the plugin configuration must contain said value or a `Bypass` cache status is returned.'
type: array
items:
type: string
default:
- application/json
- text/plain
ignore_uri_case:
description: 'Determines whether to treat URIs as case sensitive. By default, case sensitivity is enabled. If set to true, requests are cached while ignoring case sensitivity in the URI.'
type: boolean
default: false
memory:
type: object
properties:
dictionary_name:
description: The name of the shared dictionary in which to hold cache entities when the memory strategy is selected. Note that this dictionary currently must be defined manually in the Kong Nginx template.
type: string
default: kong_db_cache
redis:
type: object
properties:
cluster_max_redirections:
description: Maximum retry attempts for redirection.
type: integer
default: 5
cluster_nodes:
description: Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element.
type: array
items:
properties:
ip:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
minLength: 1
connect_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
connection_is_proxied:
description: 'If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address.'
type: boolean
default: false
database:
description: Database to use for the Redis connection when using the `redis` strategy
type: integer
default: 0
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
keepalive_backlog:
description: 'Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`.'
type: integer
maximum: 2147483646
minimum: 0
keepalive_pool_size:
description: 'The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn''t specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low.'
type: integer
default: 256
maximum: 2147483646
minimum: 1
password:
description: 'Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis.'
type: string
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
read_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
send_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
sentinel_master:
description: Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel.
type: string
sentinel_nodes:
description: Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element.
type: array
items:
properties:
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
minLength: 1
sentinel_password:
description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.'
type: string
sentinel_role:
description: Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel.
type: string
enum:
- any
- master
- slave
sentinel_username:
description: 'Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won''t be performed. This requires Redis v6.2.0+.'
type: string
server_name:
description: A string representing an SNI (server name indication) value for TLS.
type: string
ssl:
description: 'If set to true, uses SSL to connect to Redis.'
type: boolean
default: false
ssl_verify:
description: 'If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly.'
type: boolean
default: false
username:
description: 'Username to use for Redis connections. If undefined, ACL authentication won''t be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`.'
type: string
shorthand_fields:
cluster_addresses:
items:
type: string
minLength: 1
type: array
sentinel_addresses:
items:
type: string
minLength: 1
type: array
timeout:
type: integer
request_method:
description: 'Downstream request methods considered cacheable. Available options: `HEAD`, `GET`, `POST`, `PATCH`, `PUT`.'
type: array
items:
enum:
- GET
- HEAD
- PATCH
- POST
- PUT
type: string
default:
- GET
- HEAD
response_code:
description: Upstream response status code considered cacheable. The integers must be a value between 100 and 900.
type: array
items:
maximum: 900
minimum: 100
type: integer
default:
- 200
- 301
- 404
minLength: 1
response_headers:
description: Caching related diagnostic headers that should be included in cached responses
type: object
properties:
X-Cache-Key:
type: boolean
default: true
X-Cache-Status:
type: boolean
default: true
age:
type: boolean
default: true
storage_ttl:
description: Number of seconds to keep resources in the storage backend. This value is independent of `cache_ttl` or resource TTLs defined by Cache-Control behaviors.
type: integer
strategy:
description: 'The backing data store in which to hold cache entities. Accepted values are: `memory` and `redis`.'
type: string
enum:
- memory
- redis
vary_headers:
description: 'Relevant headers considered for the cache key. If undefined, none of the headers are taken into consideration.'
type: array
items:
type: string
vary_query_params:
description: 'Relevant query parameters considered for the cache key. If undefined, all params are taken into consideration.'
type: array
items:
type: string
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
consumer_group:
description: 'If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: proxy-cache-advanced
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
ProxyCachePlugin:
x-speakeasy-entity: PluginProxyCache
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/ProxyCachePluginConfig'
ProxyCachePluginConfig:
properties:
config:
type: object
properties:
cache_control:
description: 'When enabled, respect the Cache-Control behaviors defined in RFC7234.'
type: boolean
default: false
cache_ttl:
description: 'TTL, in seconds, of cache entities.'
type: integer
default: 300
minimum: 0
content_type:
description: Upstream response content types considered cacheable. The plugin performs an **exact match** against each specified value.
type: array
items:
type: string
default:
- application/json
- text/plain
ignore_uri_case:
type: boolean
default: false
memory:
type: object
properties:
dictionary_name:
description: The name of the shared dictionary in which to hold cache entities when the memory strategy is selected. Note that this dictionary currently must be defined manually in the Kong Nginx template.
type: string
default: kong_db_cache
request_method:
description: Downstream request methods considered cacheable.
type: array
items:
enum:
- GET
- HEAD
- PATCH
- POST
- PUT
type: string
default:
- GET
- HEAD
response_code:
description: Upstream response status code considered cacheable.
type: array
items:
maximum: 900
minimum: 100
type: integer
default:
- 200
- 301
- 404
minLength: 1
response_headers:
description: Caching related diagnostic headers that should be included in cached responses
type: object
properties:
X-Cache-Key:
type: boolean
default: true
X-Cache-Status:
type: boolean
default: true
age:
type: boolean
default: true
storage_ttl:
description: Number of seconds to keep resources in the storage backend. This value is independent of `cache_ttl` or resource TTLs defined by Cache-Control behaviors.
type: integer
strategy:
description: The backing data store in which to hold cache entities.
type: string
enum:
- memory
vary_headers:
description: 'Relevant headers considered for the cache key. If undefined, none of the headers are taken into consideration.'
type: array
items:
type: string
vary_query_params:
description: 'Relevant query parameters considered for the cache key. If undefined, all params are taken into consideration.'
type: array
items:
type: string
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
consumer_group:
description: 'If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: proxy-cache
protocols:
description: A set of strings representing protocols.
type: array
items:
description: 'A string representing a protocol, such as HTTP or HTTPS.'
enum:
- grpc
- grpcs
- http
- https
- tcp
- tls
- tls_passthrough
- udp
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
RateLimitingAdvancedPlugin:
x-speakeasy-entity: PluginRateLimitingAdvanced
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/RateLimitingAdvancedPluginConfig'
RateLimitingAdvancedPluginConfig:
properties:
config:
type: object
properties:
compound_identifier:
description: 'Similar to `identifer`, but supports combining multiple items. The priority of `compound_identifier` is higher than `identifier`, which means if `compound_identifer` is set, it will be used, otherwise `identifier` will be used.'
type: array
items:
enum:
- consumer
- consumer-group
- credential
- header
- ip
- path
- service
type: string
consumer_groups:
description: List of consumer groups allowed to override the rate limiting settings for the given Route or Service. Required if `enforce_consumer_groups` is set to `true`.
type: array
items:
type: string
dictionary_name:
description: 'The shared dictionary where counters are stored. When the plugin is configured to synchronize counter data externally (that is `config.strategy` is `cluster` or `redis` and `config.sync_rate` isn''t `-1`), this dictionary serves as a buffer to populate counters in the data store on each synchronization cycle.'
type: string
default: kong_rate_limiting_counters
disable_penalty:
description: 'If set to `true`, this doesn''t count denied requests (status = `429`). If set to `false`, all requests, including denied ones, are counted. This parameter only affects the `sliding` window_type.'
type: boolean
default: false
enforce_consumer_groups:
description: 'Determines if consumer groups are allowed to override the rate limiting settings for the given Route or Service. Flipping `enforce_consumer_groups` from `true` to `false` disables the group override, but does not clear the list of consumer groups. You can then flip `enforce_consumer_groups` to `true` to re-enforce the groups.'
type: boolean
default: false
error_code:
description: Set a custom error code to return when the rate limit is exceeded.
type: number
default: 429
minimum: 0
error_message:
description: Set a custom error message to return when the rate limit is exceeded.
type: string
default: API rate limit exceeded
header_name:
description: A string representing an HTTP header name.
type: string
hide_client_headers:
description: Optionally hide informative response headers that would otherwise provide information about the current status of limits and counters.
type: boolean
default: false
identifier:
description: 'The type of identifier used to generate the rate limit key. Defines the scope used to increment the rate limiting counters. Can be `ip`, `credential`, `consumer`, `service`, `header`, `path` or `consumer-group`.'
type: string
default: consumer
enum:
- consumer
- consumer-group
- credential
- header
- ip
- path
- service
limit:
description: One or more requests-per-window limits to apply. There must be a matching number of window limits and sizes specified.
type: array
items:
type: number
lock_dictionary_name:
description: The shared dictionary where concurrency control locks are stored. The default shared dictionary is `kong_locks`. The shared dictionary should be declare in nginx-kong.conf.
type: string
default: kong_locks
namespace:
description: 'The rate limiting library namespace to use for this plugin instance. Counter data and sync configuration is isolated in each namespace. NOTE: For the plugin instances sharing the same namespace, all the configurations that are required for synchronizing counters, e.g. `strategy`, `redis`, `sync_rate`, `dictionary_name`, need to be the same.'
type: string
path:
description: 'A string representing a URL path, such as /path/to/resource. Must start with a forward slash (/) and must not contain empty segments (i.e., two consecutive forward slashes).'
type: string
redis:
type: object
properties:
cluster_max_redirections:
description: Maximum retry attempts for redirection.
type: integer
default: 5
cluster_nodes:
description: Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element.
type: array
items:
properties:
ip:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
minLength: 1
connect_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
connection_is_proxied:
description: 'If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address.'
type: boolean
default: false
database:
description: Database to use for the Redis connection when using the `redis` strategy
type: integer
default: 0
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
keepalive_backlog:
description: 'Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`.'
type: integer
maximum: 2147483646
minimum: 0
keepalive_pool_size:
description: 'The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn''t specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low.'
type: integer
default: 256
maximum: 2147483646
minimum: 1
password:
description: 'Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis.'
type: string
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
read_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
redis_proxy_type:
description: 'If the `connection_is_proxied` is enabled, this field indicates the proxy type and version you are using. For example, you can enable this optioin when you want authentication between Kong and Envoy proxy.'
type: string
enum:
- envoy_v1.31
send_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
sentinel_master:
description: Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel.
type: string
sentinel_nodes:
description: Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element.
type: array
items:
properties:
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
minLength: 1
sentinel_password:
description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.'
type: string
sentinel_role:
description: Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel.
type: string
enum:
- any
- master
- slave
sentinel_username:
description: 'Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won''t be performed. This requires Redis v6.2.0+.'
type: string
server_name:
description: A string representing an SNI (server name indication) value for TLS.
type: string
ssl:
description: 'If set to true, uses SSL to connect to Redis.'
type: boolean
default: false
ssl_verify:
description: 'If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly.'
type: boolean
default: false
username:
description: 'Username to use for Redis connections. If undefined, ACL authentication won''t be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`.'
type: string
shorthand_fields:
cluster_addresses:
items:
type: string
minLength: 1
type: array
sentinel_addresses:
items:
type: string
minLength: 1
type: array
timeout:
type: integer
retry_after_jitter_max:
description: 'The upper bound of a jitter (random delay) in seconds to be added to the `Retry-After` header of denied requests (status = `429`) in order to prevent all the clients from coming back at the same time. The lower bound of the jitter is `0`; in this case, the `Retry-After` header is equal to the `RateLimit-Reset` header.'
type: number
default: 0
strategy:
description: 'The rate-limiting strategy to use for retrieving and incrementing the limits. Available values are: `local` and `cluster`.'
type: string
default: local
enum:
- cluster
- local
- redis
sync_rate:
description: How often to sync counter data to the central data store. A value of 0 results in synchronous behavior; a value of -1 ignores sync behavior entirely and only stores counters in node memory. A value greater than 0 will sync the counters in the specified number of seconds. The minimum allowed interval is 0.02 seconds (20ms).
type: number
window_size:
description: One or more window sizes to apply a limit to (defined in seconds). There must be a matching number of window limits and sizes specified.
type: array
items:
type: number
window_type:
description: 'Sets the time window type to either `sliding` (default) or `fixed`. Sliding windows apply the rate limiting logic while taking into account previous hit rates (from the window that immediately precedes the current) using a dynamic weight. Fixed windows consist of buckets that are statically assigned to a definitive time range, each request is mapped to only one fixed window based on its timestamp and will affect only that window''s counters.'
type: string
default: sliding
enum:
- fixed
- sliding
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
consumer_group:
description: 'If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: rate-limiting-advanced
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
RateLimitingPlugin:
x-speakeasy-entity: PluginRateLimiting
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/RateLimitingPluginConfig'
RateLimitingPluginConfig:
properties:
config:
type: object
properties:
day:
description: The number of HTTP requests that can be made per day.
type: number
minimum: 0
error_code:
description: Set a custom error code to return when the rate limit is exceeded.
type: number
default: 429
minimum: 0
error_message:
description: Set a custom error message to return when the rate limit is exceeded.
type: string
default: API rate limit exceeded
fault_tolerant:
description: 'A boolean value that determines if the requests should be proxied even if Kong has troubles connecting a third-party data store. If `true`, requests will be proxied anyway, effectively disabling the rate-limiting function until the data store is working again. If `false`, then the clients will see `500` errors.'
type: boolean
default: true
header_name:
description: A string representing an HTTP header name.
type: string
hide_client_headers:
description: Optionally hide informative response headers.
type: boolean
default: false
hour:
description: The number of HTTP requests that can be made per hour.
type: number
minimum: 0
limit_by:
description: The entity that is used when aggregating the limits.
type: string
default: consumer
enum:
- consumer
- consumer-group
- credential
- header
- ip
- path
- service
minute:
description: The number of HTTP requests that can be made per minute.
type: number
minimum: 0
month:
description: The number of HTTP requests that can be made per month.
type: number
minimum: 0
path:
description: 'A string representing a URL path, such as /path/to/resource. Must start with a forward slash (/) and must not contain empty segments (i.e., two consecutive forward slashes).'
type: string
policy:
description: The rate-limiting policies to use for retrieving and incrementing the limits.
type: string
default: local
enum:
- cluster
- local
- redis
redis:
description: Redis configuration
type: object
properties:
database:
description: Database to use for the Redis connection when using the `redis` strategy
type: integer
default: 0
host:
description: 'A string representing a host name, such as example.com.'
type: string
password:
description: 'Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis.'
type: string
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
server_name:
description: A string representing an SNI (server name indication) value for TLS.
type: string
ssl:
description: 'If set to true, uses SSL to connect to Redis.'
type: boolean
default: false
ssl_verify:
description: 'If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly.'
type: boolean
default: false
timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
username:
description: 'Username to use for Redis connections. If undefined, ACL authentication won''t be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`.'
type: string
second:
description: The number of HTTP requests that can be made per second.
type: number
minimum: 0
sync_rate:
description: How often to sync counter data to the central data store. A value of -1 results in synchronous behavior.
type: number
default: -1
year:
description: The number of HTTP requests that can be made per year.
type: number
minimum: 0
shorthand_fields:
redis_database:
type: integer
redis_host:
type: string
redis_password:
minLength: 0
type: string
redis_port:
type: integer
redis_server_name:
type: string
redis_ssl:
type: boolean
redis_ssl_verify:
type: boolean
redis_timeout:
type: integer
redis_username:
type: string
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
consumer_group:
description: 'If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: rate-limiting
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
RedirectPlugin:
x-speakeasy-entity: PluginRedirect
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/RedirectPluginConfig'
RedirectPluginConfig:
properties:
config:
type: object
properties:
keep_incoming_path:
description: Use the incoming request's path and query string in the redirect URL
type: boolean
default: false
location:
description: The URL to redirect to
type: string
status_code:
description: The response code to send. Must be an integer between 100 and 599.
type: integer
default: 301
maximum: 599
minimum: 100
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
consumer_group:
description: 'If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: redirect
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
RequestSizeLimitingPlugin:
x-speakeasy-entity: PluginRequestSizeLimiting
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/RequestSizeLimitingPluginConfig'
RequestSizeLimitingPluginConfig:
properties:
config:
type: object
properties:
allowed_payload_size:
description: Allowed request payload size in megabytes. Default is `128` megabytes (128000000 bytes).
type: integer
default: 128
require_content_length:
description: Set to `true` to ensure a valid `Content-Length` header exists before reading the request body.
type: boolean
default: false
size_unit:
description: 'Size unit can be set either in `bytes`, `kilobytes`, or `megabytes` (default). This configuration is not available in versions prior to Kong Gateway 1.3 and Kong Gateway (OSS) 2.0.'
type: string
default: megabytes
enum:
- bytes
- kilobytes
- megabytes
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: request-size-limiting
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
RequestTerminationPlugin:
x-speakeasy-entity: PluginRequestTermination
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/RequestTerminationPluginConfig'
RequestTerminationPluginConfig:
properties:
config:
type: object
properties:
body:
description: The raw response body to send. This is mutually exclusive with the `config.message` field.
type: string
content_type:
description: Content type of the raw response configured with `config.body`.
type: string
echo:
description: 'When set, the plugin will echo a copy of the request back to the client. The main usecase for this is debugging. It can be combined with `trigger` in order to debug requests on live systems without disturbing real traffic.'
type: boolean
default: false
message:
description: 'The message to send, if using the default response generator.'
type: string
status_code:
description: The response code to send. Must be an integer between 100 and 599.
type: integer
default: 503
maximum: 599
minimum: 100
trigger:
description: A string representing an HTTP header name.
type: string
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
consumer_group:
description: 'If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: request-termination
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
RequestTransformerAdvancedPlugin:
x-speakeasy-entity: PluginRequestTransformerAdvanced
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/RequestTransformerAdvancedPluginConfig'
RequestTransformerAdvancedPluginConfig:
properties:
config:
type: object
properties:
add:
type: object
properties:
body:
type: array
items:
type: string
default: []
headers:
type: array
items:
type: string
default: []
json_types:
type: array
items:
enum:
- boolean
- number
- string
type: string
default: []
querystring:
type: array
items:
type: string
default: []
allow:
type: object
properties:
body:
type: array
items:
type: string
append:
type: object
properties:
body:
type: array
items:
type: string
default: []
headers:
type: array
items:
type: string
default: []
json_types:
type: array
items:
enum:
- boolean
- number
- string
type: string
default: []
querystring:
type: array
items:
type: string
default: []
dots_in_keys:
description: 'Specify whether dots (for example, `customers.info.phone`) should be treated as part of a property name or used to descend into nested JSON objects. See [Arrays and nested objects](#arrays-and-nested-objects).'
type: boolean
default: true
http_method:
description: 'A string representing an HTTP method, such as GET, POST, PUT, or DELETE. The string must contain only uppercase letters.'
type: string
pattern: '^[A-Z]+$'
remove:
type: object
properties:
body:
type: array
items:
type: string
default: []
headers:
type: array
items:
type: string
default: []
querystring:
type: array
items:
type: string
default: []
rename:
type: object
properties:
body:
type: array
items:
type: string
default: []
headers:
type: array
items:
type: string
default: []
querystring:
type: array
items:
type: string
default: []
replace:
type: object
properties:
body:
type: array
items:
type: string
default: []
headers:
type: array
items:
type: string
default: []
json_types:
type: array
items:
enum:
- boolean
- number
- string
type: string
default: []
querystring:
type: array
items:
type: string
default: []
uri:
type: string
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
consumer_group:
description: 'If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: request-transformer-advanced
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
RequestTransformerPlugin:
x-speakeasy-entity: PluginRequestTransformer
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/RequestTransformerPluginConfig'
RequestTransformerPluginConfig:
properties:
config:
type: object
properties:
add:
type: object
properties:
body:
type: array
items:
type: string
default: []
headers:
type: array
items:
pattern: '^[^:]+:.*$'
type: string
default: []
querystring:
type: array
items:
type: string
default: []
append:
type: object
properties:
body:
type: array
items:
type: string
default: []
headers:
type: array
items:
pattern: '^[^:]+:.*$'
type: string
default: []
querystring:
type: array
items:
type: string
default: []
http_method:
description: 'A string representing an HTTP method, such as GET, POST, PUT, or DELETE. The string must contain only uppercase letters.'
type: string
pattern: '^[A-Z]+$'
remove:
type: object
properties:
body:
type: array
items:
type: string
default: []
headers:
type: array
items:
type: string
default: []
querystring:
type: array
items:
type: string
default: []
rename:
type: object
properties:
body:
type: array
items:
type: string
default: []
headers:
type: array
items:
pattern: '^[^:]+:.*$'
type: string
default: []
querystring:
type: array
items:
type: string
default: []
replace:
type: object
properties:
body:
type: array
items:
type: string
default: []
headers:
type: array
items:
pattern: '^[^:]+:.*$'
type: string
default: []
querystring:
type: array
items:
type: string
default: []
uri:
type: string
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
consumer_group:
description: 'If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: request-transformer
protocols:
description: A set of strings representing protocols.
type: array
items:
description: 'A string representing a protocol, such as HTTP or HTTPS.'
enum:
- grpc
- grpcs
- http
- https
- tcp
- tls
- tls_passthrough
- udp
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
RequestValidatorPlugin:
x-speakeasy-entity: PluginRequestValidator
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/RequestValidatorPluginConfig'
RequestValidatorPluginConfig:
properties:
config:
type: object
properties:
allowed_content_types:
description: 'List of allowed content types. The value can be configured with the `charset` parameter. For example, `application/json; charset=UTF-8`.'
type: array
items:
type: string
default:
- application/json
body_schema:
description: The request body schema specification. One of `body_schema` or `parameter_schema` must be specified.
type: string
content_type_parameter_validation:
description: Determines whether to enable parameters validation of request content-type.
type: boolean
default: true
parameter_schema:
description: Array of parameter validator specification. One of `body_schema` or `parameter_schema` must be specified.
type: array
items:
properties:
explode:
description: 'Required when `schema` and `style` are set. When `explode` is `true`, parameter values of type `array` or `object` generate separate parameters for each value of the array or key-value pair of the map. For other types of parameters, this property has no effect.'
type: boolean
in:
description: The location of the parameter.
type: string
enum:
- header
- path
- query
name:
description: 'The name of the parameter. Parameter names are case-sensitive, and correspond to the parameter name used by the `in` property. If `in` is `path`, the `name` field MUST correspond to the named capture group from the configured `route`.'
type: string
required:
description: Determines whether this parameter is mandatory.
type: boolean
schema:
description: 'Requred when `style` and `explode` are set. This is the schema defining the type used for the parameter. It is validated using `draft4` for JSON Schema draft 4 compliant validator. In addition to being a valid JSON Schema, the parameter schema MUST have a top-level `type` property to enable proper deserialization before validating.'
type: string
style:
description: Required when `schema` and `explode` are set. Describes how the parameter value will be deserialized depending on the type of the parameter value.
type: string
enum:
- deepObject
- form
- label
- matrix
- pipeDelimited
- simple
- spaceDelimited
required:
- in
- name
- required
type: object
verbose_response:
description: 'If enabled, the plugin returns more verbose and detailed validation errors.'
type: boolean
default: false
version:
description: 'Which validator to use. Supported values are `kong` (default) for using Kong''s own schema validator, or `draft4` for using a JSON Schema Draft 4-compliant validator.'
type: string
default: kong
enum:
- draft4
- kong
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: request-validator
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
ResponseRatelimitingPlugin:
x-speakeasy-entity: PluginResponseRatelimiting
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/ResponseRatelimitingPluginConfig'
ResponseRatelimitingPluginConfig:
properties:
config:
type: object
properties:
block_on_first_violation:
description: A boolean value that determines if the requests should be blocked as soon as one limit is being exceeded. This will block requests that are supposed to consume other limits too.
type: boolean
default: false
fault_tolerant:
description: 'A boolean value that determines if the requests should be proxied even if Kong has troubles connecting a third-party datastore. If `true`, requests will be proxied anyway, effectively disabling the rate-limiting function until the datastore is working again. If `false`, then the clients will see `500` errors.'
type: boolean
default: true
header_name:
description: The name of the response header used to increment the counters.
type: string
default: x-kong-limit
hide_client_headers:
description: Optionally hide informative response headers.
type: boolean
default: false
limit_by:
description: 'The entity that will be used when aggregating the limits: `consumer`, `credential`, `ip`. If the `consumer` or the `credential` cannot be determined, the system will always fallback to `ip`.'
type: string
default: consumer
enum:
- consumer
- credential
- ip
limits:
description: A map that defines rate limits for the plugin.
type: object
additionalProperties: true
minLength: 1
policy:
description: The rate-limiting policies to use for retrieving and incrementing the limits.
type: string
default: local
enum:
- cluster
- local
- redis
redis:
description: Redis configuration
type: object
properties:
database:
description: Database to use for the Redis connection when using the `redis` strategy
type: integer
default: 0
host:
description: 'A string representing a host name, such as example.com.'
type: string
password:
description: 'Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis.'
type: string
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
server_name:
description: A string representing an SNI (server name indication) value for TLS.
type: string
ssl:
description: 'If set to true, uses SSL to connect to Redis.'
type: boolean
default: false
ssl_verify:
description: 'If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly.'
type: boolean
default: false
timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
username:
description: 'Username to use for Redis connections. If undefined, ACL authentication won''t be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`.'
type: string
shorthand_fields:
redis_database:
type: integer
redis_host:
type: string
redis_password:
minLength: 0
type: string
redis_port:
type: integer
redis_server_name:
type: string
redis_ssl:
type: boolean
redis_ssl_verify:
type: boolean
redis_timeout:
type: integer
redis_username:
type: string
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: response-ratelimiting
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
ResponseTransformerAdvancedPlugin:
x-speakeasy-entity: PluginResponseTransformerAdvanced
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/ResponseTransformerAdvancedPluginConfig'
ResponseTransformerAdvancedPluginConfig:
properties:
config:
type: object
properties:
add:
type: object
properties:
headers:
type: array
items:
type: string
default: []
if_status:
type: array
items:
type: string
default: []
json:
type: array
items:
type: string
default: []
json_types:
type: array
items:
enum:
- boolean
- number
- string
type: string
default: []
allow:
type: object
properties:
json:
type: array
items:
type: string
append:
type: object
properties:
headers:
type: array
items:
type: string
default: []
if_status:
type: array
items:
type: string
default: []
json:
type: array
items:
type: string
default: []
json_types:
type: array
items:
enum:
- boolean
- number
- string
type: string
default: []
dots_in_keys:
description: 'Whether dots (for example, `customers.info.phone`) should be treated as part of a property name or used to descend into nested JSON objects..'
type: boolean
default: true
remove:
type: object
properties:
headers:
type: array
items:
type: string
default: []
if_status:
type: array
items:
type: string
default: []
json:
type: array
items:
type: string
default: []
rename:
type: object
properties:
headers:
type: array
items:
pattern: '^[^:]+:.*$'
type: string
default: []
if_status:
type: array
items:
type: string
default: []
replace:
type: object
properties:
body:
description: String with which to replace the entire response body.
type: string
headers:
type: array
items:
type: string
default: []
if_status:
type: array
items:
type: string
default: []
json:
type: array
items:
type: string
default: []
json_types:
type: array
items:
enum:
- boolean
- number
- string
type: string
default: []
transform:
type: object
properties:
functions:
type: array
items:
type: string
default: []
if_status:
type: array
items:
type: string
default: []
json:
type: array
items:
type: string
default: []
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
consumer_group:
description: 'If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: response-transformer-advanced
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
ResponseTransformerPlugin:
x-speakeasy-entity: PluginResponseTransformer
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/ResponseTransformerPluginConfig'
ResponseTransformerPluginConfig:
properties:
config:
type: object
properties:
add:
type: object
properties:
headers:
type: array
items:
pattern: '^[^:]+:.*$'
type: string
default: []
json:
type: array
items:
pattern: '^[^:]+:.*$'
type: string
default: []
json_types:
description: |-
List of JSON type names. Specify the types of the JSON values returned when appending
JSON properties. Each string element can be one of: boolean, number, or string.
type: array
items:
enum:
- boolean
- number
- string
type: string
default: []
append:
type: object
properties:
headers:
type: array
items:
pattern: '^[^:]+:.*$'
type: string
default: []
json:
type: array
items:
pattern: '^[^:]+:.*$'
type: string
default: []
json_types:
description: |-
List of JSON type names. Specify the types of the JSON values returned when appending
JSON properties. Each string element can be one of: boolean, number, or string.
type: array
items:
enum:
- boolean
- number
- string
type: string
default: []
remove:
type: object
properties:
headers:
type: array
items:
type: string
default: []
json:
type: array
items:
type: string
default: []
rename:
type: object
properties:
headers:
type: array
items:
pattern: '^[^:]+:.*$'
type: string
default: []
json:
type: array
items:
pattern: '^[^:]+:.*$'
type: string
default: []
replace:
type: object
properties:
headers:
type: array
items:
pattern: '^[^:]+:.*$'
type: string
default: []
json:
type: array
items:
pattern: '^[^:]+:.*$'
type: string
default: []
json_types:
description: |-
List of JSON type names. Specify the types of the JSON values returned when appending
JSON properties. Each string element can be one of: boolean, number, or string.
type: array
items:
enum:
- boolean
- number
- string
type: string
default: []
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
consumer_group:
description: 'If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: response-transformer
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
RouteByHeaderPlugin:
x-speakeasy-entity: PluginRouteByHeader
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/RouteByHeaderPluginConfig'
RouteByHeaderPluginConfig:
properties:
config:
type: object
properties:
rules:
description: Route by header rules.
type: array
items:
properties:
condition:
type: object
additionalProperties: true
minLength: 1
upstream_name:
type: string
required:
- condition
- upstream_name
type: object
default: []
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: route-by-header
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
RouteExpression:
x-speakeasy-entity: RouteExpression
description: 'Route entities define rules to match client requests. Each Route is associated with a Service, and a Service may have multiple Routes associated to it. Every request matching a given Route will be proxied to its associated Service. The combination of Routes and Services (and the separation of concerns between them) offers a powerful routing mechanism with which it is possible to define fine-grained entry-points in Kong leading to different upstream services of your infrastructure. You need at least one matching rule that applies to the protocol being matched by the Route.'
type: object
properties:
created_at:
description: Unix epoch when the resource was created.
type: integer
nullable: true
expression:
description: Use Router Expression to perform route match. This option is only available when `router_flavor` is set to `expressions`.
type: string
nullable: true
https_redirect_status_code:
description: 'The status code Kong responds with when all properties of a Route match except the protocol i.e. if the protocol of the request is `HTTP` instead of `HTTPS`. `Location` header is injected by Kong if the field is set to 301, 302, 307 or 308. Note: This config applies only if the Route is configured to only accept the `https` protocol.'
type: integer
default: 426
enum:
- 426
- 301
- 302
- 307
- 308
nullable: true
id:
type: string
nullable: true
name:
description: 'The name of the Route. Route names must be unique, and they are case sensitive. For example, there can be two different Routes named "test" and "Test".'
type: string
nullable: true
path_handling:
description: 'Controls how the Service path, Route path and requested path are combined when sending a request to the upstream. See above for a detailed description of each behavior.'
type: string
default: v0
enum:
- v0
- v1
nullable: true
preserve_host:
description: 'When matching a Route via one of the `hosts` domain names, use the request `Host` header in the upstream request headers. If set to `false`, the upstream `Host` header will be that of the Service''s `host`.'
type: boolean
default: false
nullable: true
priority:
type: integer
default: 0
nullable: true
protocols:
description: 'An array of the protocols this Route should allow. See the [Route Object](#route-object) section for a list of accepted protocols. When set to only `"https"`, HTTP requests are answered with an upgrade error. When set to only `"http"`, HTTPS requests are answered with an error.'
type: array
items:
enum:
- grpc
- grpcs
- http
- https
- tcp
- tls
- tls_passthrough
- udp
- ws
- wss
type: string
default:
- http
- https
nullable: true
request_buffering:
description: 'Whether to enable request body buffering or not. With HTTP 1.1, it may make sense to turn this off on services that receive data with chunked transfer encoding.'
type: boolean
default: true
nullable: true
response_buffering:
description: 'Whether to enable response body buffering or not. With HTTP 1.1, it may make sense to turn this off on services that send data with chunked transfer encoding.'
type: boolean
default: true
nullable: true
service:
description: The Service this Route is associated to. This is where the Route proxies traffic to.
type: object
nullable: true
properties:
id:
type: string
x-foreign: true
strip_path:
description: 'When matching a Route via one of the `paths`, strip the matching prefix from the upstream request URL.'
type: boolean
default: true
nullable: true
tags:
description: An optional set of strings associated with the Route for grouping and filtering.
type: array
items:
type: string
updated_at:
description: Unix epoch when the resource was last updated.
type: integer
nullable: true
additionalProperties: false
RouteJson:
x-speakeasy-entity: Route
description: 'Route entities define rules to match client requests. Each Route is associated with a Service, and a Service may have multiple Routes associated to it. Every request matching a given Route will be proxied to its associated Service. The combination of Routes and Services (and the separation of concerns between them) offers a powerful routing mechanism with which it is possible to define fine-grained entry-points in Kong leading to different upstream services of your infrastructure. You need at least one matching rule that applies to the protocol being matched by the Route.'
type: object
properties:
created_at:
description: Unix epoch when the resource was created.
type: integer
nullable: true
destinations:
description: A list of IP destinations of incoming connections that match this Route when using stream routing. Each entry is an object with fields "ip" (optionally in CIDR range notation) and/or "port".
type: array
items:
properties:
ip:
type: string
port:
type: integer
type: object
nullable: true
headers:
description: 'One or more lists of values indexed by header name that will cause this Route to match if present in the request. The `Host` header cannot be used with this attribute: hosts should be specified using the `hosts` attribute. When `headers` contains only one value and that value starts with the special prefix `~*`, the value is interpreted as a regular expression.'
type: object
additionalProperties:
items:
type: string
type: array
nullable: true
hosts:
description: A list of domain names that match this Route. Note that the hosts value is case sensitive.
type: array
items:
type: string
nullable: true
https_redirect_status_code:
description: 'The status code Kong responds with when all properties of a Route match except the protocol i.e. if the protocol of the request is `HTTP` instead of `HTTPS`. `Location` header is injected by Kong if the field is set to 301, 302, 307 or 308. Note: This config applies only if the Route is configured to only accept the `https` protocol.'
type: integer
default: 426
enum:
- 426
- 301
- 302
- 307
- 308
nullable: true
id:
type: string
nullable: true
methods:
description: A list of HTTP methods that match this Route.
type: array
items:
type: string
nullable: true
name:
description: 'The name of the Route. Route names must be unique, and they are case sensitive. For example, there can be two different Routes named "test" and "Test".'
type: string
nullable: true
path_handling:
description: 'Controls how the Service path, Route path and requested path are combined when sending a request to the upstream. See above for a detailed description of each behavior.'
type: string
default: v0
enum:
- v0
- v1
nullable: true
paths:
description: A list of paths that match this Route.
type: array
items:
type: string
nullable: true
preserve_host:
description: 'When matching a Route via one of the `hosts` domain names, use the request `Host` header in the upstream request headers. If set to `false`, the upstream `Host` header will be that of the Service''s `host`.'
type: boolean
default: false
nullable: true
protocols:
description: 'An array of the protocols this Route should allow. See the [Route Object](#route-object) section for a list of accepted protocols. When set to only `"https"`, HTTP requests are answered with an upgrade error. When set to only `"http"`, HTTPS requests are answered with an error.'
type: array
items:
enum:
- grpc
- grpcs
- http
- https
- tcp
- tls
- tls_passthrough
- udp
- ws
- wss
type: string
default:
- http
- https
nullable: true
regex_priority:
description: 'A number used to choose which route resolves a given request when several routes match it using regexes simultaneously. When two routes match the path and have the same `regex_priority`, the older one (lowest `created_at`) is used. Note that the priority for non-regex routes is different (longer non-regex routes are matched before shorter ones).'
type: integer
default: 0
nullable: true
request_buffering:
description: 'Whether to enable request body buffering or not. With HTTP 1.1, it may make sense to turn this off on services that receive data with chunked transfer encoding.'
type: boolean
default: true
nullable: true
response_buffering:
description: 'Whether to enable response body buffering or not. With HTTP 1.1, it may make sense to turn this off on services that send data with chunked transfer encoding.'
type: boolean
default: true
nullable: true
service:
description: The Service this Route is associated to. This is where the Route proxies traffic to.
type: object
nullable: true
properties:
id:
type: string
x-foreign: true
snis:
description: A list of SNIs that match this Route when using stream routing.
type: array
items:
type: string
nullable: true
sources:
description: A list of IP sources of incoming connections that match this Route when using stream routing. Each entry is an object with fields "ip" (optionally in CIDR range notation) and/or "port".
type: array
items:
properties:
ip:
type: string
port:
type: integer
type: object
nullable: true
strip_path:
description: 'When matching a Route via one of the `paths`, strip the matching prefix from the upstream request URL.'
type: boolean
default: true
nullable: true
tags:
description: An optional set of strings associated with the Route for grouping and filtering.
type: array
items:
type: string
updated_at:
description: Unix epoch when the resource was last updated.
type: integer
nullable: true
example:
hosts:
- foo.example.com
- foo.example.us
id: 56c4566c-14cc-4132-9011-4139fcbbe50a
name: example-route
paths:
- /v1
- /v2
service:
id: bd380f99-659d-415e-b0e7-72ea05df3218
additionalProperties: false
RouteTransformerAdvancedPlugin:
x-speakeasy-entity: PluginRouteTransformerAdvanced
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/RouteTransformerAdvancedPluginConfig'
RouteTransformerAdvancedPluginConfig:
properties:
config:
type: object
properties:
escape_path:
type: boolean
default: false
host:
type: string
path:
type: string
port:
type: string
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: route-transformer-advanced
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
SNI:
x-speakeasy-entity: SNI
description: 'An SNI object represents a many-to-one mapping of hostnames to a certificate. That is, a certificate object can have many hostnames associated with it; when Kong receives an SSL request, it uses the SNI field in the Client Hello to lookup the certificate object based on the SNI associated with the certificate.'
type: object
properties:
certificate:
description: The id (a UUID) of the certificate with which to associate the SNI hostname. The Certificate must have a valid private key associated with it to be used by the SNI object.
type: object
properties:
id:
type: string
x-foreign: true
created_at:
description: Unix epoch when the resource was created.
type: integer
nullable: true
id:
type: string
nullable: true
name:
description: The SNI name to associate with the given certificate.
type: string
tags:
description: An optional set of strings associated with the SNIs for grouping and filtering.
type: array
items:
type: string
updated_at:
description: Unix epoch when the resource was last updated.
type: integer
nullable: true
example:
certificate:
id: bd380f99-659d-415e-b0e7-72ea05df3218
id: 36c4566c-14cc-4132-9011-4139fcbbe50a
name: some.example.org
additionalProperties: false
required:
- name
- certificate
SamlPlugin:
x-speakeasy-entity: PluginSaml
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/SamlPluginConfig'
SamlPluginConfig:
properties:
config:
type: object
properties:
anonymous:
description: 'An optional string (consumer UUID or username) value to use as an “anonymous” consumer. If not set, a Kong Consumer must exist for the SAML IdP user credentials, mapping the username format to the Kong Consumer username.'
type: string
assertion_consumer_path:
description: 'A string representing a URL path, such as /path/to/resource. Must start with a forward slash (/) and must not contain empty segments (i.e., two consecutive forward slashes).'
type: string
idp_certificate:
description: The public certificate provided by the IdP. This is used to validate responses from the IdP. Only include the contents of the certificate. Do not include the header (`BEGIN CERTIFICATE`) and footer (`END CERTIFICATE`) lines.
type: string
idp_sso_url:
description: 'A string representing a URL, such as https://example.com/path/to/resource?q=search.'
type: string
issuer:
description: The unique identifier of the IdP application. Formatted as a URL containing information about the IdP so the SP can validate that the SAML assertions it receives are issued from the correct IdP.
type: string
nameid_format:
description: 'The requested `NameId` format. Options available are: - `Unspecified` - `EmailAddress` - `Persistent` - `Transient`'
type: string
default: EmailAddress
enum:
- EmailAddress
- Persistent
- Transient
- Unspecified
redis:
type: object
properties:
cluster_max_redirections:
description: Maximum retry attempts for redirection.
type: integer
default: 5
cluster_nodes:
description: Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element.
type: array
items:
properties:
ip:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
minLength: 1
connect_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
connection_is_proxied:
description: 'If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address.'
type: boolean
default: false
database:
description: Database to use for the Redis connection when using the `redis` strategy
type: integer
default: 0
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
keepalive_backlog:
description: 'Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`.'
type: integer
maximum: 2147483646
minimum: 0
keepalive_pool_size:
description: 'The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn''t specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low.'
type: integer
default: 256
maximum: 2147483646
minimum: 1
password:
description: 'Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis.'
type: string
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
prefix:
description: The Redis session key prefix.
type: string
read_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
send_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
sentinel_master:
description: Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel.
type: string
sentinel_nodes:
description: Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element.
type: array
items:
properties:
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
minLength: 1
sentinel_password:
description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.'
type: string
sentinel_role:
description: Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel.
type: string
enum:
- any
- master
- slave
sentinel_username:
description: 'Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won''t be performed. This requires Redis v6.2.0+.'
type: string
server_name:
description: A string representing an SNI (server name indication) value for TLS.
type: string
socket:
description: The Redis unix socket path.
type: string
ssl:
description: 'If set to true, uses SSL to connect to Redis.'
type: boolean
default: false
ssl_verify:
description: 'If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly.'
type: boolean
default: false
username:
description: 'Username to use for Redis connections. If undefined, ACL authentication won''t be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`.'
type: string
shorthand_fields:
cluster_addresses:
items:
type: string
minLength: 1
type: array
sentinel_addresses:
items:
type: string
minLength: 1
type: array
timeout:
type: integer
request_digest_algorithm:
description: 'The digest algorithm for Authn requests: - `SHA256` - `SHA1`'
type: string
default: SHA256
enum:
- SHA1
- SHA256
request_signature_algorithm:
description: 'The signature algorithm for signing Authn requests. Options available are: - `SHA256` - `SHA384` - `SHA512`'
type: string
default: SHA256
enum:
- SHA256
- SHA384
- SHA512
request_signing_certificate:
description: The certificate for signing requests.
type: string
request_signing_key:
description: 'The private key for signing requests. If this parameter is set, requests sent to the IdP are signed. The `request_signing_certificate` parameter must be set as well.'
type: string
response_digest_algorithm:
description: 'The algorithm for verifying digest in SAML responses: - `SHA256` - `SHA1`'
type: string
default: SHA256
enum:
- SHA1
- SHA256
response_encryption_key:
description: The private encryption key required to decrypt encrypted assertions.
type: string
response_signature_algorithm:
description: 'The algorithm for validating signatures in SAML responses. Options available are: - `SHA256` - `SHA384` - `SHA512`'
type: string
default: SHA256
enum:
- SHA256
- SHA384
- SHA512
session_absolute_timeout:
description: The session cookie absolute timeout in seconds. Specifies how long the session can be used until it is no longer valid.
type: number
default: 86400
session_audience:
description: 'The session audience, for example "my-application"'
type: string
default: default
session_cookie_domain:
description: The session cookie domain flag.
type: string
session_cookie_http_only:
description: 'Forbids JavaScript from accessing the cookie, for example, through the `Document.cookie` property.'
type: boolean
default: true
session_cookie_name:
description: The session cookie name.
type: string
default: session
session_cookie_path:
description: 'A string representing a URL path, such as /path/to/resource. Must start with a forward slash (/) and must not contain empty segments (i.e., two consecutive forward slashes).'
type: string
default: /
session_cookie_same_site:
description: 'Controls whether a cookie is sent with cross-origin requests, providing some protection against cross-site request forgery attacks.'
type: string
default: Lax
enum:
- Default
- Lax
- None
- Strict
session_cookie_secure:
description: 'The cookie is only sent to the server when a request is made with the https:scheme (except on localhost), and therefore is more resistant to man-in-the-middle attacks.'
type: boolean
session_enforce_same_subject:
description: 'When set to `true`, audiences are forced to share the same subject.'
type: boolean
default: false
session_hash_storage_key:
description: 'When set to `true`, the storage key (session ID) is hashed for extra security. Hashing the storage key means it is impossible to decrypt data from the storage without a cookie.'
type: boolean
default: false
session_hash_subject:
description: 'When set to `true`, the value of subject is hashed before being stored. Only applies when `session_store_metadata` is enabled.'
type: boolean
default: false
session_idling_timeout:
description: The session cookie idle time in seconds.
type: number
default: 900
session_memcached_host:
description: The memcached host.
type: string
default: 127.0.0.1
session_memcached_port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 11211
maximum: 65535
minimum: 0
session_memcached_prefix:
description: The memcached session key prefix.
type: string
session_memcached_socket:
description: The memcached unix socket path.
type: string
session_remember:
description: Enables or disables persistent sessions
type: boolean
default: false
session_remember_absolute_timeout:
description: Persistent session absolute timeout in seconds.
type: number
default: 2592000
session_remember_cookie_name:
description: Persistent session cookie name
type: string
default: remember
session_remember_rolling_timeout:
description: Persistent session rolling timeout in seconds.
type: number
default: 604800
session_request_headers:
type: array
items:
enum:
- absolute-timeout
- audience
- id
- idling-timeout
- rolling-timeout
- subject
- timeout
type: string
session_response_headers:
type: array
items:
enum:
- absolute-timeout
- audience
- id
- idling-timeout
- rolling-timeout
- subject
- timeout
type: string
session_rolling_timeout:
description: The session cookie absolute timeout in seconds. Specifies how long the session can be used until it is no longer valid.
type: number
default: 3600
session_secret:
description: 'The session secret. This must be a random string of 32 characters from the base64 alphabet (letters, numbers, `/`, `_` and `+`). It is used as the secret key for encrypting session data as well as state information that is sent to the IdP in the authentication exchange.'
type: string
maxLength: 32
minLength: 32
pattern: '^[0-9a-zA-Z/_+]+$'
session_storage:
description: 'The session storage for session data: - `cookie`: stores session data with the session cookie. The session cannot be invalidated or revoked without changing the session secret, but is stateless, and doesn''t require a database. - `memcached`: stores session data in memcached - `redis`: stores session data in Redis'
type: string
default: cookie
enum:
- cookie
- memcache
- memcached
- redis
session_store_metadata:
description: Configures whether or not session metadata should be stored. This includes information about the active sessions for the `specific_audience` belonging to a specific subject.
type: boolean
default: false
validate_assertion_signature:
description: Enable signature validation for SAML responses.
type: boolean
default: true
shorthand_fields:
session_auth_ttl:
type: number
session_compressor:
type: string
session_cookie_httponly:
type: boolean
session_cookie_idletime:
type: number
session_cookie_lifetime:
type: number
session_cookie_maxsize:
type: integer
session_cookie_renew:
type: number
session_cookie_samesite:
type: string
session_memcache_host:
type: string
session_memcache_port:
type: integer
session_memcache_prefix:
type: string
session_memcache_socket:
type: string
session_redis_cluster_max_redirections:
type: integer
session_redis_cluster_maxredirections:
type: integer
session_redis_cluster_nodes:
items:
properties:
ip:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
type: array
session_redis_connect_timeout:
type: integer
session_redis_host:
type: string
session_redis_password:
type: string
session_redis_port:
type: integer
session_redis_prefix:
type: string
session_redis_read_timeout:
type: integer
session_redis_send_timeout:
type: integer
session_redis_server_name:
type: string
session_redis_socket:
type: string
session_redis_ssl:
type: boolean
session_redis_ssl_verify:
type: boolean
session_redis_username:
type: string
session_strategy:
type: string
name:
type: string
const: saml
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
Service:
x-speakeasy-entity: Service
description: 'Service entities, as the name implies, are abstractions of each of your own upstream services. Examples of Services would be a data transformation microservice, a billing API, etc. The main attribute of a Service is its URL (where Kong should proxy traffic to), which can be set as a single string or by specifying its `protocol`, `host`, `port` and `path` individually. Services are associated to Routes (a Service can have many Routes associated with it). Routes are entry-points in Kong and define rules to match client requests. Once a Route is matched, Kong proxies the request to its associated Service. See the [Proxy Reference][proxy-reference] for a detailed explanation of how Kong proxies traffic.'
type: object
properties:
ca_certificates:
description: 'Array of `CA Certificate` object UUIDs that are used to build the trust store while verifying upstream server''s TLS certificate. If set to `null` when Nginx default is respected. If default CA list in Nginx are not specified and TLS verification is enabled, then handshake with upstream server will always fail (because no CA are trusted).'
type: array
items:
type: string
nullable: true
client_certificate:
description: Certificate to be used as client certificate while TLS handshaking to the upstream server.
type: object
nullable: true
properties:
id:
type: string
x-foreign: true
connect_timeout:
description: The timeout in milliseconds for establishing a connection to the upstream server.
type: integer
default: 60000
nullable: true
created_at:
description: Unix epoch when the resource was created.
type: integer
nullable: true
enabled:
description: 'Whether the Service is active. If set to `false`, the proxy behavior will be as if any routes attached to it do not exist (404). Default: `true`.'
type: boolean
default: true
nullable: true
host:
description: The host of the upstream server. Note that the host value is case sensitive.
type: string
id:
type: string
nullable: true
name:
description: The Service name.
type: string
nullable: true
path:
description: The path to be used in requests to the upstream server.
type: string
nullable: true
port:
description: The upstream server port.
type: integer
default: 80
nullable: true
protocol:
description: The protocol used to communicate with the upstream.
type: string
default: http
enum:
- grpc
- grpcs
- http
- https
- tcp
- tls
- tls_passthrough
- udp
- ws
- wss
nullable: true
read_timeout:
description: The timeout in milliseconds between two successive read operations for transmitting a request to the upstream server.
type: integer
default: 60000
nullable: true
retries:
description: The number of retries to execute upon failure to proxy.
type: integer
default: 5
nullable: true
tags:
description: An optional set of strings associated with the Service for grouping and filtering.
type: array
items:
type: string
tls_verify:
description: 'Whether to enable verification of upstream server TLS certificate. If set to `null`, then the Nginx default is respected.'
type: boolean
nullable: true
tls_verify_depth:
description: 'Maximum depth of chain while verifying Upstream server''s TLS certificate. If set to `null`, then the Nginx default is respected.'
type: integer
nullable: true
updated_at:
description: Unix epoch when the resource was last updated.
type: integer
nullable: true
url:
description: 'Helper field to set `protocol`, `host`, `port` and `path` using a URL. This field is write-only and is not returned in responses.'
type: string
writeOnly: true
write_timeout:
description: The timeout in milliseconds between two successive write operations for transmitting a request to the upstream server.
type: integer
default: 60000
nullable: true
example:
host: example.internal
id: 49fd316e-c457-481c-9fc7-8079153e4f3c
name: example-service
path: /
port: 80
protocol: http
additionalProperties: false
required:
- host
ServiceProtectionPlugin:
x-speakeasy-entity: PluginServiceProtection
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/ServiceProtectionPluginConfig'
ServiceProtectionPluginConfig:
properties:
config:
type: object
properties:
dictionary_name:
description: 'The shared dictionary where counters are stored. When the plugin is configured to synchronize counter data externally (that is `config.strategy` is `cluster` or `redis` and `config.sync_rate` isn''t `-1`), this dictionary serves as a buffer to populate counters in the data store on each synchronization cycle.'
type: string
default: kong_rate_limiting_counters
disable_penalty:
description: 'If set to `true`, this doesn''t count denied requests (status = `429`). If set to `false`, all requests, including denied ones, are counted. This parameter only affects the `sliding` window_type.'
type: boolean
default: false
error_code:
description: Set a custom error code to return when the rate limit is exceeded.
type: number
default: 429
minimum: 0
error_message:
description: Set a custom error message to return when the rate limit is exceeded.
type: string
default: API rate limit exceeded
hide_client_headers:
description: Optionally hide informative response headers that would otherwise provide information about the current status of limits and counters.
type: boolean
default: false
limit:
description: One or more requests-per-window limits to apply. There must be a matching number of window limits and sizes specified.
type: array
items:
type: number
lock_dictionary_name:
description: The shared dictionary where concurrency control locks are stored. The default shared dictionary is `kong_locks`. The shared dictionary should be declared in nginx-kong.conf.
type: string
default: kong_locks
namespace:
description: 'The rate limiting library namespace to use for this plugin instance. Counter data and sync configuration is isolated in each namespace. NOTE: For the plugin instances sharing the same namespace, all the configurations that are required for synchronizing counters, e.g. `strategy`, `redis`, `sync_rate`, `dictionary_name`, need to be the same.'
type: string
redis:
type: object
properties:
cluster_max_redirections:
description: Maximum retry attempts for redirection.
type: integer
default: 5
cluster_nodes:
description: Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element.
type: array
items:
properties:
ip:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
minLength: 1
connect_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
connection_is_proxied:
description: 'If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address.'
type: boolean
default: false
database:
description: Database to use for the Redis connection when using the `redis` strategy
type: integer
default: 0
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
keepalive_backlog:
description: 'Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`.'
type: integer
maximum: 2147483646
minimum: 0
keepalive_pool_size:
description: 'The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn''t specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low.'
type: integer
default: 256
maximum: 2147483646
minimum: 1
password:
description: 'Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis.'
type: string
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
read_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
send_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
sentinel_master:
description: Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel.
type: string
sentinel_nodes:
description: Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element.
type: array
items:
properties:
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
minLength: 1
sentinel_password:
description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.'
type: string
sentinel_role:
description: Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel.
type: string
enum:
- any
- master
- slave
sentinel_username:
description: 'Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won''t be performed. This requires Redis v6.2.0+.'
type: string
server_name:
description: A string representing an SNI (server name indication) value for TLS.
type: string
ssl:
description: 'If set to true, uses SSL to connect to Redis.'
type: boolean
default: false
ssl_verify:
description: 'If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly.'
type: boolean
default: false
username:
description: 'Username to use for Redis connections. If undefined, ACL authentication won''t be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`.'
type: string
shorthand_fields:
cluster_addresses:
items:
type: string
minLength: 1
type: array
sentinel_addresses:
items:
type: string
minLength: 1
type: array
timeout:
type: integer
retry_after_jitter_max:
description: 'The upper bound of a jitter (random delay) in seconds to be added to the `Retry-After` header of denied requests (status = `429`) in order to prevent all the clients from coming back at the same time. The lower bound of the jitter is `0`; in this case, the `Retry-After` header is equal to the `RateLimit-Reset` header.'
type: number
default: 0
strategy:
description: 'The rate-limiting strategy to use for retrieving and incrementing the limits. Available values are: `local` and `cluster`.'
type: string
default: local
enum:
- cluster
- local
- redis
sync_rate:
description: How often to sync counter data to the central data store. A value of 0 results in synchronous behavior; a value of -1 ignores sync behavior entirely and only stores counters in node memory. A value greater than 0 will sync the counters in the specified number of seconds. The minimum allowed interval is 0.02 seconds (20ms).
type: number
window_size:
description: One or more window sizes to apply a limit to (defined in seconds). There must be a matching number of window limits and sizes specified.
type: array
items:
type: number
window_type:
description: 'Sets the time window type to either `sliding` (default) or `fixed`. Sliding windows apply the rate limiting logic while taking into account previous hit rates (from the window that immediately precedes the current) using a dynamic weight. Fixed windows consist of buckets that are statically assigned to a definitive time range, each request is mapped to only one fixed window based on its timestamp and will affect only that window''s counters.'
type: string
default: sliding
enum:
- fixed
- sliding
name:
type: string
const: service-protection
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
SessionPlugin:
x-speakeasy-entity: PluginSession
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/SessionPluginConfig'
SessionPluginConfig:
properties:
config:
type: object
properties:
absolute_timeout:
description: 'The session cookie absolute timeout, in seconds. Specifies how long the session can be used until it is no longer valid.'
type: number
default: 86400
audience:
description: 'The session audience, which is the intended target application. For example `"my-application"`.'
type: string
default: default
cookie_domain:
description: The domain with which the cookie is intended to be exchanged.
type: string
cookie_http_only:
description: Applies the `HttpOnly` tag so that the cookie is sent only to a server.
type: boolean
default: true
cookie_name:
description: The name of the cookie.
type: string
default: session
cookie_path:
description: The resource in the host where the cookie is available.
type: string
default: /
cookie_same_site:
description: Determines whether and how a cookie may be sent with cross-site requests.
type: string
default: Strict
enum:
- Default
- Lax
- None
- Strict
cookie_secure:
description: Applies the Secure directive so that the cookie may be sent to the server only with an encrypted request over the HTTPS protocol.
type: boolean
default: true
idling_timeout:
description: 'The session cookie idle time, in seconds.'
type: number
default: 900
logout_methods:
description: A set of HTTP methods that the plugin will respond to.
type: array
items:
enum:
- DELETE
- GET
- POST
type: string
default:
- DELETE
- POST
logout_post_arg:
description: The POST argument passed to logout requests. Do not change this property.
type: string
default: session_logout
logout_query_arg:
description: The query argument passed to logout requests.
type: string
default: session_logout
read_body_for_logout:
type: boolean
default: false
remember:
description: Enables or disables persistent sessions.
type: boolean
default: false
remember_absolute_timeout:
description: 'The persistent session absolute timeout limit, in seconds.'
type: number
default: 2592000
remember_cookie_name:
description: Persistent session cookie name. Use with the `remember` configuration parameter.
type: string
default: remember
remember_rolling_timeout:
description: 'The persistent session rolling timeout window, in seconds.'
type: number
default: 604800
request_headers:
description: 'List of information to include, as headers, in the response to the downstream.'
type: array
items:
enum:
- absolute-timeout
- audience
- id
- idling-timeout
- rolling-timeout
- subject
- timeout
type: string
response_headers:
description: 'List of information to include, as headers, in the response to the downstream.'
type: array
items:
enum:
- absolute-timeout
- audience
- id
- idling-timeout
- rolling-timeout
- subject
- timeout
type: string
rolling_timeout:
description: 'The session cookie rolling timeout, in seconds. Specifies how long the session can be used until it needs to be renewed.'
type: number
default: 3600
secret:
description: The secret that is used in keyed HMAC generation.
type: string
default: lt9BJW1n5RfhCxTbNIKqsj8THW7YNdXTA0VW6KQwBUwg
stale_ttl:
description: 'The duration, in seconds, after which an old cookie is discarded, starting from the moment when the session becomes outdated and is replaced by a new one.'
type: number
default: 10
storage:
description: 'Determines where the session data is stored. `kong`: Stores encrypted session data into Kong''s current database strategy; the cookie will not contain any session data. `cookie`: Stores encrypted session data within the cookie itself.'
type: string
default: cookie
enum:
- cookie
- kong
shorthand_fields:
cookie_discard:
type: number
cookie_httponly:
type: boolean
cookie_idletime:
type: number
cookie_lifetime:
type: number
cookie_persistent:
type: boolean
cookie_renew:
type: number
cookie_samesite:
type: string
name:
type: string
const: session
protocols:
description: A set of strings representing protocols.
type: array
items:
description: 'A string representing a protocol, such as HTTP or HTTPS.'
enum:
- grpc
- grpcs
- http
- https
- tcp
- tls
- tls_passthrough
- udp
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
StandardWebhooksPlugin:
x-speakeasy-entity: PluginStandardWebhooks
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/StandardWebhooksPluginConfig'
StandardWebhooksPluginConfig:
properties:
config:
type: object
properties:
secret_v1:
description: Webhook secret
type: string
tolerance_second:
description: 'Tolerance of the webhook timestamp in seconds. If the webhook timestamp is older than this number of seconds, it will be rejected with a ''400'' response.'
type: integer
default: 300
minimum: -1
consumer_group:
description: 'If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: standard-webhooks
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
StatsdAdvancedPlugin:
x-speakeasy-entity: PluginStatsdAdvanced
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/StatsdAdvancedPluginConfig'
StatsdAdvancedPluginConfig:
properties:
config:
type: object
properties:
allow_status_codes:
description: List of status code ranges that are allowed to be logged in metrics.
type: array
items:
pattern: '^[0-9]+-[0-9]+$'
type: string
consumer_identifier_default:
description: 'The default consumer identifier for metrics. This will take effect when a metric''s consumer identifier is omitted. Allowed values are `custom_id`, `consumer_id`, `username`.'
type: string
default: custom_id
enum:
- consumer_id
- custom_id
- username
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: localhost
hostname_in_prefix:
description: Include the `hostname` in the `prefix` for each metric name.
type: boolean
default: false
metrics:
description: List of Metrics to be logged.
type: array
items:
properties:
consumer_identifier:
type: string
enum:
- consumer_id
- custom_id
- username
name:
type: string
enum:
- cache_datastore_hits_total
- cache_datastore_misses_total
- kong_latency
- latency
- request_count
- request_per_user
- request_size
- response_size
- shdict_usage
- status_count
- status_count_per_user
- status_count_per_user_per_route
- status_count_per_workspace
- unique_users
- upstream_latency
sample_rate:
type: number
minimum: 0
service_identifier:
type: string
enum:
- service_host
- service_id
- service_name
- service_name_or_host
stat_type:
type: string
enum:
- counter
- gauge
- histogram
- meter
- set
- timer
workspace_identifier:
type: string
enum:
- workspace_id
- workspace_name
required:
- name
- stat_type
type: object
default:
- name: cache_datastore_misses_total
sample_rate: 1
stat_type: counter
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 8125
maximum: 65535
minimum: 0
prefix:
description: String to prefix to each metric's name.
type: string
default: kong
queue:
type: object
properties:
concurrency_limit:
description: The number of of queue delivery timers. -1 indicates unlimited.
type: integer
default: 1
enum:
- -1
- 1
initial_retry_delay:
description: Time in seconds before the initial retry is made for a failing batch.
type: number
default: 0.01
maximum: 1000000
minimum: 0.001
max_batch_size:
description: Maximum number of entries that can be processed at a time.
type: integer
default: 1
maximum: 1000000
minimum: 1
max_bytes:
description: 'Maximum number of bytes that can be waiting on a queue, requires string content.'
type: integer
max_coalescing_delay:
description: Maximum number of (fractional) seconds to elapse after the first entry was queued before the queue starts calling the handler.
type: number
default: 1
maximum: 3600
minimum: 0
max_entries:
description: Maximum number of entries that can be waiting on the queue.
type: integer
default: 10000
maximum: 1000000
minimum: 1
max_retry_delay:
description: 'Maximum time in seconds between retries, caps exponential backoff.'
type: number
default: 60
maximum: 1000000
minimum: 0.001
max_retry_time:
description: Time in seconds before the queue gives up calling a failed handler for a batch.
type: number
default: 60
service_identifier_default:
description: 'The default service identifier for metrics. This will take effect when a metric''s service identifier is omitted. Allowed values are `service_name_or_host`, `service_id`, `service_name`, `service_host`.'
type: string
default: service_name_or_host
enum:
- service_host
- service_id
- service_name
- service_name_or_host
udp_packet_size:
description: 'Combine UDP packet up to the size configured. If zero (0), don''t combine the UDP packet. Must be a number between 0 and 65507 (inclusive).'
type: number
default: 0
maximum: 65507
minimum: 0
use_tcp:
description: Use TCP instead of UDP.
type: boolean
default: false
workspace_identifier_default:
description: 'The default workspace identifier for metrics. This will take effect when a metric''s workspace identifier is omitted. Allowed values are `workspace_id`, `workspace_name`. '
type: string
default: workspace_id
enum:
- workspace_id
- workspace_name
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: statsd-advanced
protocols:
description: A set of strings representing protocols.
type: array
items:
description: 'A string representing a protocol, such as HTTP or HTTPS.'
enum:
- grpc
- grpcs
- http
- https
- tcp
- tls
- tls_passthrough
- udp
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
StatsdPlugin:
x-speakeasy-entity: PluginStatsd
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/StatsdPluginConfig'
StatsdPluginConfig:
properties:
config:
type: object
properties:
allow_status_codes:
description: List of status code ranges that are allowed to be logged in metrics.
type: array
items:
pattern: '^[0-9]+-[0-9]+$'
type: string
consumer_identifier_default:
type: string
default: custom_id
enum:
- consumer_id
- custom_id
- username
flush_timeout:
type: number
host:
description: The IP address or hostname of StatsD server to send data to.
type: string
default: localhost
hostname_in_prefix:
type: boolean
default: false
metrics:
description: List of metrics to be logged.
type: array
items:
properties:
consumer_identifier:
description: Authenticated user detail.
type: string
enum:
- consumer_id
- custom_id
- username
name:
description: StatsD metric’s name.
type: string
enum:
- cache_datastore_hits_total
- cache_datastore_misses_total
- kong_latency
- latency
- request_count
- request_per_user
- request_size
- response_size
- shdict_usage
- status_count
- status_count_per_user
- status_count_per_user_per_route
- status_count_per_workspace
- unique_users
- upstream_latency
sample_rate:
description: Sampling rate
type: number
minimum: 0
service_identifier:
description: Service detail.
type: string
enum:
- service_host
- service_id
- service_name
- service_name_or_host
stat_type:
description: Determines what sort of event a metric represents.
type: string
enum:
- counter
- gauge
- histogram
- meter
- set
- timer
workspace_identifier:
description: Workspace detail.
type: string
enum:
- workspace_id
- workspace_name
required:
- name
- stat_type
type: object
port:
description: The port of StatsD server to send data to.
type: integer
default: 8125
maximum: 65535
minimum: 0
prefix:
description: String to prefix to each metric's name.
type: string
default: kong
queue:
type: object
properties:
concurrency_limit:
description: The number of of queue delivery timers. -1 indicates unlimited.
type: integer
default: 1
enum:
- -1
- 1
initial_retry_delay:
description: Time in seconds before the initial retry is made for a failing batch.
type: number
default: 0.01
maximum: 1000000
minimum: 0.001
max_batch_size:
description: Maximum number of entries that can be processed at a time.
type: integer
default: 1
maximum: 1000000
minimum: 1
max_bytes:
description: 'Maximum number of bytes that can be waiting on a queue, requires string content.'
type: integer
max_coalescing_delay:
description: Maximum number of (fractional) seconds to elapse after the first entry was queued before the queue starts calling the handler.
type: number
default: 1
maximum: 3600
minimum: 0
max_entries:
description: Maximum number of entries that can be waiting on the queue.
type: integer
default: 10000
maximum: 1000000
minimum: 1
max_retry_delay:
description: 'Maximum time in seconds between retries, caps exponential backoff.'
type: number
default: 60
maximum: 1000000
minimum: 0.001
max_retry_time:
description: Time in seconds before the queue gives up calling a failed handler for a batch.
type: number
default: 60
queue_size:
type: integer
retry_count:
type: integer
service_identifier_default:
type: string
default: service_name_or_host
enum:
- service_host
- service_id
- service_name
- service_name_or_host
tag_style:
type: string
enum:
- dogstatsd
- influxdb
- librato
- signalfx
udp_packet_size:
type: number
default: 0
maximum: 65507
minimum: 0
use_tcp:
type: boolean
default: false
workspace_identifier_default:
type: string
default: workspace_id
enum:
- workspace_id
- workspace_name
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: statsd
protocols:
description: A set of strings representing protocols.
type: array
items:
description: 'A string representing a protocol, such as HTTP or HTTPS.'
enum:
- grpc
- grpcs
- http
- https
- tcp
- tls
- tls_passthrough
- udp
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
SyslogPlugin:
x-speakeasy-entity: PluginSyslog
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/SyslogPluginConfig'
SyslogPluginConfig:
properties:
config:
type: object
properties:
client_errors_severity:
type: string
default: info
enum:
- alert
- crit
- debug
- emerg
- err
- info
- notice
- warning
custom_fields_by_lua:
description: Lua code as a key-value map
type: object
additionalProperties: true
facility:
description: The facility is used by the operating system to decide how to handle each log message.
type: string
default: user
enum:
- auth
- authpriv
- cron
- daemon
- ftp
- kern
- local0
- local1
- local2
- local3
- local4
- local5
- local6
- local7
- lpr
- mail
- news
- syslog
- user
- uucp
log_level:
type: string
default: info
enum:
- alert
- crit
- debug
- emerg
- err
- info
- notice
- warning
server_errors_severity:
type: string
default: info
enum:
- alert
- crit
- debug
- emerg
- err
- info
- notice
- warning
successful_severity:
type: string
default: info
enum:
- alert
- crit
- debug
- emerg
- err
- info
- notice
- warning
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: syslog
protocols:
description: A set of strings representing protocols.
type: array
items:
description: 'A string representing a protocol, such as HTTP or HTTPS.'
enum:
- grpc
- grpcs
- http
- https
- tcp
- tls
- tls_passthrough
- udp
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
Target:
x-speakeasy-entity: Target
description: 'A target is an ip address/hostname with a port that identifies an instance of a backend service. Every upstream can have many targets, and the targets can be dynamically added, modified, or deleted. Changes take effect on the fly. To disable a target, post a new one with `weight=0`; alternatively, use the `DELETE` convenience method to accomplish the same. The current target object definition is the one with the latest `created_at`.'
type: object
properties:
created_at:
description: Unix epoch when the resource was created.
type: number
nullable: true
id:
type: string
nullable: true
tags:
description: An optional set of strings associated with the Target for grouping and filtering.
type: array
items:
type: string
target:
description: 'The target address (ip or hostname) and port. If the hostname resolves to an SRV record, the `port` value will be overridden by the value from the DNS record.'
type: string
nullable: true
updated_at:
description: Unix epoch when the resource was last updated.
type: number
nullable: true
upstream:
type: object
nullable: true
properties:
id:
type: string
x-foreign: true
weight:
description: 'The weight this target gets within the upstream loadbalancer (`0`-`65535`). If the hostname resolves to an SRV record, the `weight` value will be overridden by the value from the DNS record.'
type: integer
default: 100
nullable: true
example:
id: 089292a7-ba3d-4d88-acf0-97b4b2e2621a
target: 203.0.113.42
upstream:
id: 5f1d7e76-2fed-4806-a6af-869984f025cb
weight: 100
additionalProperties: false
TargetWithoutParents:
x-speakeasy-entity: Target
description: 'A target is an ip address/hostname with a port that identifies an instance of a backend service. Every upstream can have many targets, and the targets can be dynamically added, modified, or deleted. Changes take effect on the fly. To disable a target, post a new one with `weight=0`; alternatively, use the `DELETE` convenience method to accomplish the same. The current target object definition is the one with the latest `created_at`.'
type: object
properties:
created_at:
description: Unix epoch when the resource was created.
type: number
nullable: true
id:
type: string
nullable: true
tags:
description: An optional set of strings associated with the Target for grouping and filtering.
type: array
items:
type: string
target:
description: 'The target address (ip or hostname) and port. If the hostname resolves to an SRV record, the `port` value will be overridden by the value from the DNS record.'
type: string
nullable: true
updated_at:
description: Unix epoch when the resource was last updated.
type: number
nullable: true
upstream:
type: object
nullable: true
properties:
id:
type: string
x-foreign: true
weight:
description: 'The weight this target gets within the upstream loadbalancer (`0`-`65535`). If the hostname resolves to an SRV record, the `weight` value will be overridden by the value from the DNS record.'
type: integer
default: 100
nullable: true
example:
id: 089292a7-ba3d-4d88-acf0-97b4b2e2621a
target: 203.0.113.42
weight: 100
additionalProperties: false
TcpLogPlugin:
x-speakeasy-entity: PluginTcpLog
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/TcpLogPluginConfig'
TcpLogPluginConfig:
properties:
config:
type: object
properties:
custom_fields_by_lua:
description: 'A list of key-value pairs, where the key is the name of a log field and the value is a chunk of Lua code, whose return value sets or replaces the log field value.'
type: object
additionalProperties: true
host:
description: The IP address or host name to send data to.
type: string
keepalive:
description: An optional value in milliseconds that defines how long an idle connection lives before being closed.
type: number
default: 60000
port:
description: The port to send data to on the upstream server.
type: integer
maximum: 65535
minimum: 0
timeout:
description: An optional timeout in milliseconds when sending data to the upstream server.
type: number
default: 10000
tls:
description: Indicates whether to perform a TLS handshake against the remote server.
type: boolean
default: false
tls_sni:
description: An optional string that defines the SNI (Server Name Indication) hostname to send in the TLS handshake.
type: string
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: tcp-log
protocols:
description: A set of strings representing protocols.
type: array
items:
description: 'A string representing a protocol, such as HTTP or HTTPS.'
enum:
- grpc
- grpcs
- http
- https
- tcp
- tls
- tls_passthrough
- udp
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
TlsHandshakeModifierPlugin:
x-speakeasy-entity: PluginTlsHandshakeModifier
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/TlsHandshakeModifierPluginConfig'
TlsHandshakeModifierPluginConfig:
properties:
config:
type: object
properties:
tls_client_certificate:
description: TLS Client Certificate
type: string
default: REQUEST
enum:
- REQUEST
name:
type: string
const: tls-handshake-modifier
protocols:
description: 'A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls.'
type: array
items:
enum:
- grpcs
- https
- tls
type: string
default:
- grpcs
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
TlsMetadataHeadersPlugin:
x-speakeasy-entity: PluginTlsMetadataHeaders
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/TlsMetadataHeadersPluginConfig'
TlsMetadataHeadersPluginConfig:
properties:
config:
type: object
properties:
client_cert_fingerprint_header_name:
description: Define the HTTP header name used for the SHA1 fingerprint of the client certificate.
type: string
default: X-Client-Cert-Fingerprint
client_cert_header_name:
description: Define the HTTP header name used for the PEM format URL encoded client certificate.
type: string
default: X-Client-Cert
client_cert_issuer_dn_header_name:
description: Define the HTTP header name used for the issuer DN of the client certificate.
type: string
default: X-Client-Cert-Issuer-DN
client_cert_subject_dn_header_name:
description: Define the HTTP header name used for the subject DN of the client certificate.
type: string
default: X-Client-Cert-Subject-DN
client_serial_header_name:
description: Define the HTTP header name used for the serial number of the client certificate.
type: string
default: X-Client-Cert-Serial
inject_client_cert_details:
description: Enables TLS client certificate metadata values to be injected into HTTP headers.
type: boolean
default: false
name:
type: string
const: tls-metadata-headers
protocols:
description: 'A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls.'
type: array
items:
enum:
- grpcs
- https
- tls
type: string
default:
- grpcs
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
UdpLogPlugin:
x-speakeasy-entity: PluginUdpLog
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/UdpLogPluginConfig'
UdpLogPluginConfig:
properties:
config:
type: object
properties:
custom_fields_by_lua:
description: Lua code as a key-value map
type: object
additionalProperties: true
host:
description: 'A string representing a host name, such as example.com.'
type: string
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
maximum: 65535
minimum: 0
timeout:
description: An optional timeout in milliseconds when sending data to the upstream server.
type: number
default: 10000
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: udp-log
protocols:
description: A set of strings representing protocols.
type: array
items:
description: 'A string representing a protocol, such as HTTP or HTTPS.'
enum:
- grpc
- grpcs
- http
- https
- tcp
- tls
- tls_passthrough
- udp
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
Upstream:
x-speakeasy-entity: Upstream
description: 'The upstream object represents a virtual hostname and can be used to loadbalance incoming requests over multiple services (targets). So for example an upstream named `service.v1.xyz` for a Service object whose `host` is `service.v1.xyz`. Requests for this Service would be proxied to the targets defined within the upstream. An upstream also includes a [health checker][healthchecks], which is able to enable and disable targets based on their ability or inability to serve requests. The configuration for the health checker is stored in the upstream object, and applies to all of its targets.'
type: object
properties:
algorithm:
description: Which load balancing algorithm to use.
type: string
default: round-robin
enum:
- consistent-hashing
- least-connections
- round-robin
- latency
nullable: true
client_certificate:
description: 'If set, the certificate to be used as client certificate while TLS handshaking to the upstream server.'
type: object
nullable: true
properties:
id:
type: string
x-foreign: true
created_at:
description: Unix epoch when the resource was created.
type: integer
nullable: true
hash_fallback:
description: 'What to use as hashing input if the primary `hash_on` does not return a hash (eg. header is missing, or no Consumer identified). Not available if `hash_on` is set to `cookie`.'
type: string
default: none
enum:
- none
- consumer
- ip
- header
- cookie
- path
- query_arg
- uri_capture
nullable: true
hash_fallback_header:
description: The header name to take the value from as hash input. Only required when `hash_fallback` is set to `header`.
type: string
nullable: true
hash_fallback_query_arg:
description: The name of the query string argument to take the value from as hash input. Only required when `hash_fallback` is set to `query_arg`.
type: string
nullable: true
hash_fallback_uri_capture:
description: The name of the route URI capture to take the value from as hash input. Only required when `hash_fallback` is set to `uri_capture`.
type: string
nullable: true
hash_on:
description: What to use as hashing input. Using `none` results in a weighted-round-robin scheme with no hashing.
type: string
default: none
enum:
- none
- consumer
- ip
- header
- cookie
- path
- query_arg
- uri_capture
nullable: true
hash_on_cookie:
description: 'The cookie name to take the value from as hash input. Only required when `hash_on` or `hash_fallback` is set to `cookie`. If the specified cookie is not in the request, Kong will generate a value and set the cookie in the response.'
type: string
nullable: true
hash_on_cookie_path:
description: The cookie path to set in the response headers. Only required when `hash_on` or `hash_fallback` is set to `cookie`.
type: string
default: /
nullable: true
hash_on_header:
description: The header name to take the value from as hash input. Only required when `hash_on` is set to `header`.
type: string
nullable: true
hash_on_query_arg:
description: The name of the query string argument to take the value from as hash input. Only required when `hash_on` is set to `query_arg`.
type: string
nullable: true
hash_on_uri_capture:
description: The name of the route URI capture to take the value from as hash input. Only required when `hash_on` is set to `uri_capture`.
type: string
nullable: true
healthchecks:
type: object
nullable: true
properties:
active:
type: object
properties:
concurrency:
type: integer
default: 10
headers:
type: object
additionalProperties:
type: string
healthy:
type: object
properties:
http_statuses:
type: array
items:
type: integer
default:
- 200
- 302
interval:
type: number
default: 0
successes:
type: integer
default: 0
http_path:
type: string
default: /
https_sni:
type: string
https_verify_certificate:
type: boolean
default: true
timeout:
type: number
default: 1
type:
type: string
default: http
enum:
- tcp
- http
- https
- grpc
- grpcs
unhealthy:
type: object
properties:
http_failures:
type: integer
default: 0
http_statuses:
type: array
items:
type: integer
default:
- 429
- 404
- 500
- 501
- 502
- 503
- 504
- 505
interval:
type: number
default: 0
tcp_failures:
type: integer
default: 0
timeouts:
type: integer
default: 0
passive:
type: object
properties:
healthy:
type: object
properties:
http_statuses:
type: array
items:
type: integer
default:
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 226
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
successes:
type: integer
default: 0
type:
type: string
default: http
enum:
- tcp
- http
- https
- grpc
- grpcs
unhealthy:
type: object
properties:
http_failures:
type: integer
default: 0
http_statuses:
type: array
items:
type: integer
default:
- 429
- 500
- 503
tcp_failures:
type: integer
default: 0
timeouts:
type: integer
default: 0
threshold:
type: number
default: 0
host_header:
description: The hostname to be used as `Host` header when proxying requests through Kong.
type: string
nullable: true
id:
type: string
nullable: true
name:
description: 'This is a hostname, which must be equal to the `host` of a Service.'
type: string
slots:
description: 'The number of slots in the load balancer algorithm. If `algorithm` is set to `round-robin`, this setting determines the maximum number of slots. If `algorithm` is set to `consistent-hashing`, this setting determines the actual number of slots in the algorithm. Accepts an integer in the range `10`-`65536`.'
type: integer
default: 10000
nullable: true
tags:
description: An optional set of strings associated with the Upstream for grouping and filtering.
type: array
items:
type: string
updated_at:
description: Unix epoch when the resource was last updated.
type: integer
nullable: true
use_srv_name:
description: 'If set, the balancer will use SRV hostname(if DNS Answer has SRV record) as the proxy upstream `Host`.'
type: boolean
default: false
nullable: true
example:
algorithm: round-robin
hash_fallback: none
hash_on: none
hash_on_cookie_path: /
healthchecks:
active:
concurrency: 10
healthy:
http_statuses:
- 200
- 302
interval: 0
successes: 0
http_path: /
https_verify_certificate: true
timeout: 1
type: http
unhealthy:
http_failures: 0
http_statuses:
- 429
- 404
- 500
- 501
- 502
- 503
- 504
- 505
interval: 0
tcp_failures: 0
timeouts: 0
passive:
healthy:
http_statuses:
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 226
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
successes: 0
type: http
unhealthy:
http_failures: 0
http_statuses:
- 429
- 500
- 503
tcp_failures: 0
timeouts: 0
threshold: 0
id: 6eed5e9c-5398-4026-9a4c-d48f18a2431e
name: api.example.internal
slots: 10000
additionalProperties: false
required:
- name
UpstreamOauthPlugin:
x-speakeasy-entity: PluginUpstreamOauth
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/UpstreamOauthPluginConfig'
UpstreamOauthPluginConfig:
properties:
config:
type: object
properties:
behavior:
type: object
properties:
idp_error_response_body_template:
description: The template to use to create the body of the response to return to the consumer if Kong fails to obtain a token from the IdP.
type: string
default: '{ "code": "{{status}}", "message": "{{message}}" }'
idp_error_response_content_type:
description: The Content-Type of the response to return to the consumer if Kong fails to obtain a token from the IdP.
type: string
default: application/json; charset=utf-8
idp_error_response_message:
description: The message to embed in the body of the response to return to the consumer if Kong fails to obtain a token from the IdP.
type: string
default: Failed to authenticate request to upstream
idp_error_response_status_code:
description: The response code to return to the consumer if Kong fails to obtain a token from the IdP.
type: integer
default: 502
maximum: 599
minimum: 500
purge_token_on_upstream_status_codes:
description: An array of status codes which will force an access token to be purged when returned by the upstream. An empty array will disable this functionality.
type: array
items:
maximum: 599
minimum: 100
type: integer
default:
- 401
upstream_access_token_header_name:
description: The name of the header used to send the access token (obtained from the IdP) to the upstream service.
type: string
default: Authorization
cache:
type: object
properties:
default_ttl:
description: The lifetime of a token without an explicit `expires_in` value.
type: number
default: 3600
minimum: 0
eagerly_expire:
description: 'The number of seconds to eagerly expire a cached token. By default, a cached token expires 5 seconds before its lifetime as defined in `expires_in`.'
type: integer
default: 5
minimum: -1
memory:
type: object
properties:
dictionary_name:
description: The shared dictionary used by the plugin to cache tokens if `config.cache.strategy` is set to `memory`.
type: string
default: kong_db_cache
redis:
type: object
properties:
cluster_max_redirections:
description: Maximum retry attempts for redirection.
type: integer
default: 5
cluster_nodes:
description: Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element.
type: array
items:
properties:
ip:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
minLength: 1
connect_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
connection_is_proxied:
description: 'If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address.'
type: boolean
default: false
database:
description: Database to use for the Redis connection when using the `redis` strategy
type: integer
default: 0
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
keepalive_backlog:
description: 'Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`.'
type: integer
maximum: 2147483646
minimum: 0
keepalive_pool_size:
description: 'The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn''t specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low.'
type: integer
default: 256
maximum: 2147483646
minimum: 1
password:
description: 'Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis.'
type: string
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
read_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
send_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
sentinel_master:
description: Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel.
type: string
sentinel_nodes:
description: Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element.
type: array
items:
properties:
host:
description: 'A string representing a host name, such as example.com.'
type: string
default: 127.0.0.1
port:
description: 'An integer representing a port number between 0 and 65535, inclusive.'
type: integer
default: 6379
maximum: 65535
minimum: 0
type: object
minLength: 1
sentinel_password:
description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.'
type: string
sentinel_role:
description: Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel.
type: string
enum:
- any
- master
- slave
sentinel_username:
description: 'Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won''t be performed. This requires Redis v6.2.0+.'
type: string
server_name:
description: A string representing an SNI (server name indication) value for TLS.
type: string
ssl:
description: 'If set to true, uses SSL to connect to Redis.'
type: boolean
default: false
ssl_verify:
description: 'If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly.'
type: boolean
default: false
username:
description: 'Username to use for Redis connections. If undefined, ACL authentication won''t be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`.'
type: string
shorthand_fields:
cluster_addresses:
items:
type: string
minLength: 1
type: array
sentinel_addresses:
items:
type: string
minLength: 1
type: array
timeout:
type: integer
strategy:
description: The method Kong should use to cache tokens issued by the IdP.
type: string
default: memory
enum:
- memory
- redis
client:
type: object
properties:
auth_method:
description: 'The authentication method used in client requests to the IdP. Supported values are: `client_secret_basic` to send `client_id` and `client_secret` in the `Authorization: Basic` header, `client_secret_post` to send `client_id` and `client_secret` as part of the request body, or `client_secret_jwt` to send a JWT signed with the `client_secret` using the client assertion as part of the body.'
type: string
default: client_secret_post
enum:
- client_secret_basic
- client_secret_jwt
- client_secret_post
- none
client_secret_jwt_alg:
description: The algorithm to use with JWT when using `client_secret_jwt` authentication.
type: string
default: HS512
enum:
- HS256
- HS512
http_proxy:
description: The proxy to use when making HTTP requests to the IdP.
type: string
http_proxy_authorization:
description: The `Proxy-Authorization` header value to be used with `http_proxy`.
type: string
http_version:
description: 'The HTTP version used for requests made by this plugin. Supported values: `1.1` for HTTP 1.1 and `1.0` for HTTP 1.0.'
type: number
default: 1.1
https_proxy:
description: The proxy to use when making HTTPS requests to the IdP.
type: string
https_proxy_authorization:
description: The `Proxy-Authorization` header value to be used with `https_proxy`.
type: string
keep_alive:
description: Whether to use keepalive connections to the IdP.
type: boolean
default: true
no_proxy:
description: A comma-separated list of hosts that should not be proxied.
type: string
ssl_verify:
description: Whether to verify the certificate presented by the IdP when using HTTPS.
type: boolean
default: false
timeout:
description: Network I/O timeout for requests to the IdP in milliseconds.
type: integer
default: 10000
maximum: 2147483646
minimum: 0
oauth:
type: object
properties:
audience:
description: List of audiences passed to the IdP when obtaining a new token.
type: array
items:
type: string
default: []
client_id:
description: The client ID for the application registration in the IdP.
type: string
client_secret:
description: The client secret for the application registration in the IdP.
type: string
grant_type:
description: The OAuth grant type to be used.
type: string
default: client_credentials
enum:
- client_credentials
- password
password:
description: The password to use if `config.oauth.grant_type` is set to `password`.
type: string
scopes:
description: List of scopes to request from the IdP when obtaining a new token.
type: array
items:
type: string
default:
- openid
token_endpoint:
description: The token endpoint URI.
type: string
token_headers:
description: Extra headers to be passed in the token endpoint request.
type: object
additionalProperties: true
token_post_args:
description: Extra post arguments to be passed in the token endpoint request.
type: object
additionalProperties: true
username:
description: The username to use if `config.oauth.grant_type` is set to `password`.
type: string
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
consumer_group:
description: 'If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: upstream-oauth
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
UpstreamTimeoutPlugin:
x-speakeasy-entity: PluginUpstreamTimeout
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/UpstreamTimeoutPluginConfig'
UpstreamTimeoutPluginConfig:
properties:
config:
type: object
properties:
connect_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
maximum: 2147483646
minimum: 0
read_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
maximum: 2147483646
minimum: 0
send_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
maximum: 2147483646
minimum: 0
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: upstream-timeout
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
Vault:
x-speakeasy-entity: Vault
description: 'Vault entities are used to configure different Vault connectors. Examples of Vaults are Environment Variables, Hashicorp Vault and AWS Secrets Manager. Configuring a Vault allows referencing the secrets with other entities. For example a certificate entity can store a reference to a certificate and key, stored in a vault, instead of storing the certificate and key within the entity. This allows a proper separation of secrets and configuration and prevents secret sprawl.'
type: object
properties:
config:
description: The configuration properties for the Vault which can be found on the vaults' documentation page.
type: object
additionalProperties: true
created_at:
description: Unix epoch when the resource was created.
type: integer
nullable: true
description:
description: The description of the Vault entity.
type: string
nullable: true
id:
type: string
nullable: true
name:
description: 'The name of the Vault that''s going to be added. Currently, the Vault implementation must be installed in every Kong instance.'
type: string
prefix:
description: The unique prefix (or identifier) for this Vault configuration. The prefix is used to load the right Vault configuration and implementation when referencing secrets with the other entities.
type: string
tags:
description: An optional set of strings associated with the Vault for grouping and filtering.
type: array
items:
type: string
updated_at:
description: Unix epoch when the resource was last updated.
type: integer
nullable: true
example:
config:
prefix: ENV_PREFIX
description: environment variable based vault
id: 2747d1e5-8246-4f65-a939-b392f1ee17f8
name: env
prefix: env
tags:
- foo
- bar
additionalProperties: false
required:
- name
- prefix
- config
VaultAuthPlugin:
x-speakeasy-entity: PluginVaultAuth
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/VaultAuthPluginConfig'
VaultAuthPluginConfig:
properties:
config:
type: object
properties:
access_token_name:
description: 'Describes an array of comma-separated parameter names where the plugin looks for an access token. The client must send the access token in one of those key names, and the plugin will try to read the credential from a header or the querystring parameter with the same name. The key names can only contain [a-z], [A-Z], [0-9], [_], and [-].'
type: string
items:
description: A string representing an HTTP header name.
type: string
default: access_token
anonymous:
description: 'An optional string (consumer UUID or username) value to use as an “anonymous” consumer if authentication fails. If empty (default null), the request fails with an authentication failure `4xx`. Note that this value must refer to the consumer `id` or `username` attribute, and **not** its `custom_id`.'
type: string
hide_credentials:
description: 'An optional boolean value telling the plugin to show or hide the credential from the upstream service. If `true`, the plugin will strip the credential from the request (i.e. the header or querystring containing the key) before proxying it.'
type: boolean
default: false
run_on_preflight:
description: 'A boolean value that indicates whether the plugin should run (and try to authenticate) on `OPTIONS` preflight requests. If set to `false`, then `OPTIONS` requests will always be allowed.'
type: boolean
default: true
secret_token_name:
description: 'Describes an array of comma-separated parameter names where the plugin looks for a secret token. The client must send the secret in one of those key names, and the plugin will try to read the credential from a header or the querystring parameter with the same name. The key names can only contain [a-z], [A-Z], [0-9], [_], and [-].'
type: string
items:
description: A string representing an HTTP header name.
type: string
default: secret_token
tokens_in_body:
description: 'If enabled, the plugin will read the request body (if said request has one and its MIME type is supported) and try to find the key in it. Supported MIME types are `application/www-form-urlencoded`, `application/json`, and `multipart/form-data`.'
type: boolean
default: false
vault:
description: A reference to an existing `vault` object within the database. `vault` entities define the connection and authentication parameters used to connect to a Vault HTTP(S) API.
type: string
name:
type: string
const: vault-auth
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
WebsocketSizeLimitPlugin:
x-speakeasy-entity: PluginWebsocketSizeLimit
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/WebsocketSizeLimitPluginConfig'
WebsocketSizeLimitPluginConfig:
properties:
config:
type: object
properties:
client_max_payload:
type: integer
maximum: 33554432
minimum: 1
upstream_max_payload:
type: integer
maximum: 33554432
minimum: 1
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: websocket-size-limit
protocols:
description: 'A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls.'
type: array
items:
enum:
- ws
- wss
type: string
default:
- ws
- wss
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
WebsocketValidatorPlugin:
x-speakeasy-entity: PluginWebsocketValidator
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/WebsocketValidatorPluginConfig'
WebsocketValidatorPluginConfig:
properties:
config:
type: object
properties:
client:
type: object
properties:
binary:
type: object
properties:
schema:
description: Schema used to validate upstream-originated binary frames. The semantics of this field depend on the validation type set by `config.upstream.binary.type`.
type: string
type:
description: 'The corresponding validation library for `config.upstream.binary.schema`. Currently, only `draft4` is supported.'
type: string
enum:
- draft4
required:
- schema
- type
text:
type: object
properties:
schema:
description: Schema used to validate upstream-originated binary frames. The semantics of this field depend on the validation type set by `config.upstream.binary.type`.
type: string
type:
description: 'The corresponding validation library for `config.upstream.binary.schema`. Currently, only `draft4` is supported.'
type: string
enum:
- draft4
required:
- schema
- type
upstream:
type: object
properties:
binary:
type: object
properties:
schema:
description: Schema used to validate upstream-originated binary frames. The semantics of this field depend on the validation type set by `config.upstream.binary.type`.
type: string
type:
description: 'The corresponding validation library for `config.upstream.binary.schema`. Currently, only `draft4` is supported.'
type: string
enum:
- draft4
required:
- schema
- type
text:
type: object
properties:
schema:
description: Schema used to validate upstream-originated binary frames. The semantics of this field depend on the validation type set by `config.upstream.binary.type`.
type: string
type:
description: 'The corresponding validation library for `config.upstream.binary.schema`. Currently, only `draft4` is supported.'
type: string
enum:
- draft4
required:
- schema
- type
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: websocket-validator
protocols:
description: 'A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls.'
type: array
items:
enum:
- ws
- wss
type: string
default:
- ws
- wss
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
XmlThreatProtectionPlugin:
x-speakeasy-entity: PluginXmlThreatProtection
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/XmlThreatProtectionPluginConfig'
XmlThreatProtectionPluginConfig:
properties:
config:
type: object
properties:
allow_dtd:
description: Indicates whether an XML Document Type Definition (DTD) section is allowed.
type: boolean
default: false
allowed_content_types:
description: 'A list of Content-Type values with payloads that are allowed, but aren''t validated.'
type: array
items:
pattern: '^[^\t\n\v\f\r ]+\/[^ ;]+$'
type: string
default: []
attribute:
description: Maximum size of the attribute value.
type: integer
default: 1048576
minimum: 0
bla_max_amplification:
description: Sets the maximum allowed amplification. This protects against the Billion Laughs Attack.
type: number
default: 100
minimum: 1
bla_threshold:
description: Sets the threshold after which the protection starts. This protects against the Billion Laughs Attack.
type: integer
default: 8388608
minimum: 1024
buffer:
description: Maximum size of the unparsed buffer (see below).
type: integer
default: 1048576
minimum: 0
checked_content_types:
description: A list of Content-Type values with payloads that must be validated.
type: array
items:
pattern: '^[^\t\n\v\f\r ]+\/[^ ;]+$'
type: string
default:
- application/xml
comment:
description: Maximum size of comments.
type: integer
default: 1024
minimum: 0
document:
description: Maximum size of the entire document.
type: integer
default: 10485760
minimum: 0
entity:
description: Maximum size of entity values in EntityDecl.
type: integer
default: 1024
minimum: 0
entityname:
description: Maximum size of entity names in EntityDecl.
type: integer
default: 1024
minimum: 0
entityproperty:
description: 'Maximum size of systemId, publicId, or notationName in EntityDecl.'
type: integer
default: 1024
minimum: 0
localname:
description: Maximum size of the localname. This applies to tags and attributes.
type: integer
default: 1024
minimum: 0
max_attributes:
description: 'Maximum number of attributes allowed on a tag, including default ones. Note: If namespace-aware parsing is disabled, then the namespaces definitions are counted as attributes.'
type: integer
default: 100
minimum: 0
max_children:
description: 'Maximum number of children allowed (Element, Text, Comment, ProcessingInstruction, CDATASection). Note: Adjacent text and CDATA sections are counted as one. For example, text-cdata-text-cdata is one child.'
type: integer
default: 100
minimum: 0
max_depth:
description: Maximum depth of tags. Child elements such as Text or Comments are not counted as another level.
type: integer
default: 50
minimum: 0
max_namespaces:
description: Maximum number of namespaces defined on a tag. This value is required if parsing is namespace-aware.
type: integer
default: 20
minimum: 0
namespace_aware:
description: 'If not parsing namespace aware, all prefixes and namespace attributes will be counted as regular attributes and element names, and validated as such.'
type: boolean
default: true
namespaceuri:
description: Maximum size of the namespace URI. This value is required if parsing is namespace-aware.
type: integer
default: 1024
minimum: 0
pidata:
description: Maximum size of processing instruction data.
type: integer
default: 1024
minimum: 0
pitarget:
description: Maximum size of processing instruction targets.
type: integer
default: 1024
minimum: 0
prefix:
description: Maximum size of the prefix. This applies to tags and attributes. This value is required if parsing is namespace-aware.
type: integer
default: 1024
minimum: 0
text:
description: Maximum text inside tags (counted over all adjacent text/CDATA elements combined).
type: integer
default: 1048576
minimum: 0
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: xml-threat-protection
protocols:
description: A set of strings representing HTTP protocols.
type: array
items:
enum:
- grpc
- grpcs
- http
- https
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
ZipkinPlugin:
x-speakeasy-entity: PluginZipkin
allOf:
- $ref: '#/components/schemas/PluginBase'
- $ref: '#/components/schemas/ZipkinPluginConfig'
ZipkinPluginConfig:
properties:
config:
type: object
properties:
connect_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 2000
maximum: 2147483646
minimum: 0
default_header_type:
description: 'Allows specifying the type of header to be added to requests with no pre-existing tracing headers and when `config.header_type` is set to `"preserve"`. When `header_type` is set to any other value, `default_header_type` is ignored.'
type: string
default: b3
enum:
- aws
- b3
- b3-single
- datadog
- gcp
- jaeger
- ot
- w3c
default_service_name:
description: Set a default service name to override `unknown-service-name` in the Zipkin spans.
type: string
header_type:
description: All HTTP requests going through the plugin are tagged with a tracing HTTP request. This property codifies what kind of tracing header the plugin expects on incoming requests
type: string
default: preserve
enum:
- aws
- b3
- b3-single
- datadog
- gcp
- ignore
- jaeger
- ot
- preserve
- w3c
http_endpoint:
description: 'A string representing a URL, such as https://example.com/path/to/resource?q=search.'
type: string
http_response_header_for_traceid:
type: string
http_span_name:
description: Specify whether to include the HTTP path in the span name.
type: string
default: method
enum:
- method
- method_path
include_credential:
description: Specify whether the credential of the currently authenticated consumer should be included in metadata sent to the Zipkin server.
type: boolean
default: true
local_service_name:
description: The name of the service as displayed in Zipkin.
type: string
default: kong
phase_duration_flavor:
description: Specify whether to include the duration of each phase as an annotation or a tag.
type: string
default: annotations
enum:
- annotations
- tags
propagation:
type: object
default:
default_format: b3
properties:
clear:
description: 'Header names to clear after context extraction. This allows to extract the context from a certain header and then remove it from the request, useful when extraction and injection are performed on different header formats and the original header should not be sent to the upstream. If left empty, no headers are cleared.'
type: array
items:
type: string
default_format:
description: 'The default header format to use when extractors did not match any format in the incoming headers and `inject` is configured with the value: `preserve`. This can happen when no tracing header was found in the request, or the incoming tracing header formats were not included in `extract`.'
type: string
enum:
- aws
- b3
- b3-single
- datadog
- gcp
- jaeger
- ot
- w3c
extract:
description: 'Header formats used to extract tracing context from incoming requests. If multiple values are specified, the first one found will be used for extraction. If left empty, Kong will not extract any tracing context information from incoming requests and generate a trace with no parent and a new trace ID.'
type: array
items:
enum:
- aws
- b3
- datadog
- gcp
- jaeger
- ot
- w3c
type: string
inject:
description: 'Header formats used to inject tracing context. The value `preserve` will use the same header format as the incoming request. If multiple values are specified, all of them will be used during injection. If left empty, Kong will not inject any tracing context information in outgoing requests.'
type: array
items:
enum:
- aws
- b3
- b3-single
- datadog
- gcp
- jaeger
- ot
- preserve
- w3c
type: string
required:
- default_format
queue:
type: object
properties:
concurrency_limit:
description: The number of of queue delivery timers. -1 indicates unlimited.
type: integer
default: 1
enum:
- -1
- 1
initial_retry_delay:
description: Time in seconds before the initial retry is made for a failing batch.
type: number
default: 0.01
maximum: 1000000
minimum: 0.001
max_batch_size:
description: Maximum number of entries that can be processed at a time.
type: integer
default: 1
maximum: 1000000
minimum: 1
max_bytes:
description: 'Maximum number of bytes that can be waiting on a queue, requires string content.'
type: integer
max_coalescing_delay:
description: Maximum number of (fractional) seconds to elapse after the first entry was queued before the queue starts calling the handler.
type: number
default: 1
maximum: 3600
minimum: 0
max_entries:
description: Maximum number of entries that can be waiting on the queue.
type: integer
default: 10000
maximum: 1000000
minimum: 1
max_retry_delay:
description: 'Maximum time in seconds between retries, caps exponential backoff.'
type: number
default: 60
maximum: 1000000
minimum: 0.001
max_retry_time:
description: Time in seconds before the queue gives up calling a failed handler for a batch.
type: number
default: 60
read_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 5000
maximum: 2147483646
minimum: 0
sample_ratio:
description: 'How often to sample requests that do not contain trace IDs. Set to `0` to turn sampling off, or to `1` to sample **all** requests. '
type: number
default: 0.001
maximum: 1
minimum: 0
send_timeout:
description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
type: integer
default: 5000
maximum: 2147483646
minimum: 0
static_tags:
description: The tags specified on this property will be added to the generated request traces.
type: array
items:
properties:
name:
type: string
not_one_of:
- error
- http.method
- http.path
- http.status_code
- kong.balancer.state
- kong.balancer.try
- kong.consumer
- kong.credential
- kong.node.id
- kong.route
- kong.service
- lc
- peer.hostname
value:
type: string
required:
- name
- value
type: object
tags_header:
description: The Zipkin plugin will add extra headers to the tags associated with any HTTP requests that come with a header named as configured by this property.
type: string
default: Zipkin-Tags
traceid_byte_count:
description: The length in bytes of each request's Trace ID.
type: integer
default: 16
enum:
- 8
- 16
consumer:
description: 'If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer.'
type: object
additionalProperties: false
properties:
id:
type: string
name:
type: string
const: zipkin
protocols:
description: A set of strings representing protocols.
type: array
items:
description: 'A string representing a protocol, such as HTTP or HTTPS.'
enum:
- grpc
- grpcs
- http
- https
- tcp
- tls
- tls_passthrough
- udp
- ws
- wss
type: string
default:
- grpc
- grpcs
- http
- https
route:
description: 'If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used.'
type: object
additionalProperties: false
properties:
id:
type: string
service:
description: 'If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched.'
type: object
additionalProperties: false
properties:
id:
type: string
responses:
HTTP401Error:
description: Unauthorized
content:
application/json:
examples:
DuplicateApiKey:
summary: Duplicate API key found
value:
message: Duplicate API key found
status: 401
InvalidAuthCred:
summary: Invalid authentication credentials
value:
message: Unauthorized
status: 401
NoAPIKey:
summary: No API key found
value:
message: No API key found in request
status: 401
schema:
$ref: '#/components/schemas/GatewayUnauthorizedError'
securitySchemes:
adminToken:
in: header
name: Kong-Admin-Token
type: apiKey
tags:
- name: CustomPlugins
- description: |
Service entities are abstractions of your microservice interfaces or formal APIs. For example, a service could be a data transformation microservice or a billing API.
The main attribute of a service is the destination URL for proxying traffic. This URL can be set as a single string or by specifying its protocol, host, port and path individually.
Services are associated to routes, and a single service can have many routes associated with it. Routes are entrypoints in Kong Gateway which define rules to match client requests. Once a route is matched, Kong Gateway proxies the request to its associated service. See the [Proxy Reference](https://docs.konghq.com/gateway/latest/how-kong-works/routing-traffic/) for a detailed explanation of how Kong proxies traffic.
Services can be both [tagged and filtered by tags](https://docs.konghq.com/gateway/latest/admin-api/#tags).
name: Services
- description: |
Route entities define rules to match client requests. Each route is associated with a service, and a service may have multiple routes associated to it. Every request matching a given route will be proxied to the associated service. You need at least one matching rule that applies to the protocol being matched by the route.
The combination of routes and services, and the separation of concerns between them, offers a powerful routing mechanism with which it is possible to define fine-grained entrypoints in Kong Gateway leading to different upstream services of your infrastructure.
Depending on the protocol, one of the following attributes must be set:
- `http`: At least one of `methods`, `hosts`, `headers`, or `paths`
- `https`: At least one of `methods`, `hosts`, `headers`, `paths`, or `snis`
- `tcp`: At least one of `sources` or `destinations`
- `tls`: at least one of `sources`, `destinations`, or `snis`
- `tls_passthrough`: set `snis`
- `grpc`: At least one of `hosts`, `headers`, or `paths`
- `grpcs`: At least one of `hosts`, `headers`, `paths`, or `snis`
- `ws`: At least one of `hosts`, `headers`, or `paths`
- `wss`: At least one of `hosts`, `headers`, `paths`, or `snis`
A route can't have both `tls` and `tls_passthrough` protocols at same time.
Learn more about the router:
- [Configure routes using expressions](https://docs.konghq.com/gateway/latest/key-concepts/routes/expressions)
- [Router Expressions language reference](https://docs.konghq.com/gateway/latest/reference/router-expressions-language/)
name: Routes
- description: |
A plugin entity represents a plugin configuration that will be executed during the HTTP request/response lifecycle. Plugins let you add functionality to services that run behind a Kong Gateway instance, like authentication or rate limiting.
You can find more information about available plugins and which values each plugin accepts at the [Plugin Hub](https://docs.konghq.com/hub/).
When adding a plugin configuration to a service, the plugin will run on every request made by a client to that service. If a plugin needs to be tuned to different values for some specific consumers, you can do so by creating a separate plugin instance that specifies both the service and the consumer, through the service and consumer fields.
Plugins can be both [tagged and filtered by tags](https://docs.konghq.com/gateway/latest/admin-api/#tags).
name: Plugins
- description: |
The consumer object represents a consumer - or a user - of a service.
You can either rely on Kong Gateway as the primary datastore, or you can map the consumer list with your database to keep consistency between Kong Gateway and your existing primary datastore.
name: Consumers
- description: |-
Consumer groups enable the organization and categorization of consumers (users or applications) within an API ecosystem.
By grouping consumers together, you eliminate the need to manage them individually, providing a scalable, efficient approach to managing configurations.
name: Consumer Groups
- description: |
A certificate object represents a public certificate, and can be optionally paired with the corresponding private key. These objects are used by Kong Gateway to handle SSL/TLS termination for encrypted requests, or for use as a trusted CA store when validating peer certificate of client/service.
Certificates are optionally associated with SNI objects to tie a cert/key pair to one or more hostnames.
If intermediate certificates are required in addition to the main certificate, they should be concatenated together into one string.
name: Certificates
- description: |-
An SNI object represents a many-to-one mapping of hostnames to a certificate.
A certificate object can have many hostnames associated with it. When Kong Gateway receives an SSL request, it uses the SNI field in the Client Hello to look up the certificate object based on the SNI associated with the certificate.
name: SNIs
- description: |-
A CA certificate object represents a trusted certificate authority.
These objects are used by Kong Gateway to verify the validity of a client or server certificate.
name: CA Certificates
- description: |-
The upstream object represents a virtual hostname and can be used to load balance incoming requests over multiple services (targets).
An upstream also includes a [health checker](https://docs.konghq.com/gateway/latest/how-kong-works/health-checks/), which can enable and disable targets based on their ability or inability to serve requests.
The configuration for the health checker is stored in the upstream object, and applies to all of its targets.
name: Upstreams
- description: |
Vault objects are used to configure different vault connectors for [managing secrets](https://docs.konghq.com/gateway/latest/kong-enterprise/secrets-management/).
Configuring a vault lets you reference secrets from other entities.
This allows for a proper separation of secrets and configuration and prevents secret sprawl.
For example, you could store a certificate and a key in a vault, then reference them from a certificate entity. This way, the certificate and key are not stored in the entity directly and are more secure.
Secrets rotation can be managed using [TTLs](https://docs.konghq.com/gateway/latest/kong-enterprise/secrets-management/advanced-usage/).
name: Vaults
- description: |
A key object holds a representation of asymmetric keys in various formats. When Kong Gateway or a Kong plugin requires a specific public or private key to perform certain operations, it can use this entity.
name: Keys
- description: |
A JSON Web key set. Key sets are the preferred way to expose keys to plugins because they tell the plugin where to look for keys or have a scoping mechanism to restrict plugins to specific keys.
name: KeySets
- name: API-keys
- name: Basic-auth credentials
- name: JWTs
- name: HMAC-auth credentials
- name: MTLS-auth credentials
- name: ACLs
- name: OIDC JWKs
- name: Partials
externalDocs:
description: Documentation for Kong Gateway and its APIs
url: 'https://developer.konghq.com'
security:
- adminToken: []