openapi: 3.1.0 info: title: Konnect API version: 2.0.0 description: The Konnect platform API contact: name: Kong url: 'https://cloud.konghq.com' email: support@konghq.com x-extensions-note: | This API uses the `x-expression` vendor extension to indicate that a string property is a DSL expression. Supported types: - `boolean`: An expression evaluates to boolean. For example, `context.topic.name == 'my-topic'` - `string`: A template string expression that evaluates to a string or a literal string value. For example, `${context.topic.name.substring(0, context.topic.name.length-4)}` or `my-literal-value` Additionally, `x-sensitive` flag indicates that a field contains sensitive information. When the value of the field is provided in plain text, it's encrypted at rest and it's never returned in API responses. When the value is an expression, the expression itself is stored and returned in API responses. `x-min-runtime-version` indicates the minimum Event Gateway runtime version required to use a certain policy or policy feature. The runtime version can be configured at the Event Gateway entity level. It must be a string containing a semantic version in the `MAJOR.MINOR` format, e.g., `"1.1"`. info.[x-latest-public-runtime-version] indicates the latest public runtime version of Event Gateway. When `x-min-runtime-version > x-latest-public-runtime-version`, the property or schema will only appear in dev schemas. license: name: Apache 2.0 url: 'https://www.apache.org/licenses/LICENSE-2.0.html' servers: - url: 'https://global.api.konghq.com' - url: 'https://us.api.konghq.com' - url: 'https://eu.api.konghq.com' - url: 'https://au.api.konghq.com' - url: 'https://me.api.konghq.com' - url: 'https://in.api.konghq.com' paths: /ip-addresses.json: servers: - url: 'https://ip-addresses.origin.konghq.com' get: x-speakeasy-entity-operation: terraform-resource: null terraform-datasource: PlatformIpAddresses#read operationId: list-ip-addresses summary: List Platform IP Addresses description: 'Get Konnect IP addresses by region/hostname, ingress, and egress' responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/IpAddressesResponse' 4XX: description: Client error 5XX: description: Server error tags: - Platform IPs /v0/serverless-cloud-gateways: post: x-speakeasy-entity-operation: terraform-resource: ServerlessCloudGateway#create terraform-datasource: null operationId: create-serverless-cloud-gateway summary: Create a new serverless cloud gateway description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Create a new serverless cloud gateway requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateServerlessCloudGatewayRequest' responses: '201': $ref: '#/components/responses/CreateServerlessCloudGatewayResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' servers: - url: 'https://global.api.konghq.com/' tags: - Serverless Cloud Gateways '/v0/serverless-cloud-gateways/{controlPlaneId}': parameters: - name: controlPlaneId in: path description: Id of the Serverless Cloud Gateway control plane required: true schema: type: string format: uuid example: bf138ba2-c9b1-4229-b268-04d9d8a6410b x-speakeasy-match: control_plane.id get: x-speakeasy-entity-operation: terraform-resource: ServerlessCloudGateway#read terraform-datasource: null operationId: get-serverless-cloud-gateway summary: Get the serverless cloud gateway description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Get the serverless cloud gateway responses: '200': $ref: '#/components/responses/RetrieveServerlessCloudGatewayResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Serverless Cloud Gateways delete: x-speakeasy-entity-operation: terraform-resource: ServerlessCloudGateway#delete terraform-datasource: null operationId: delete-serverless-cloud-gateway summary: Delete the serverless cloud gateway description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Delete the serverless cloud gateway responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Serverless Cloud Gateways /v1/auth-servers: post: x-speakeasy-entity-operation: terraform-resource: IdentityAuthServer#create terraform-datasource: null operationId: createAuthServer summary: Create a new auth server description: 'Create a new auth server. Each auth server has a unique, randomly generated, public issuer URL.' requestBody: $ref: '#/components/requestBodies/CreateAuthServer' responses: '201': $ref: '#/components/responses/AuthServer' '400': $ref: '#/components/responses/BadRequest' '409': $ref: '#/components/responses/Conflict' tags: - Auth Server '/v1/auth-servers/{authServerId}': parameters: - $ref: '#/components/parameters/authServerId' get: x-speakeasy-entity-operation: terraform-resource: IdentityAuthServer#read terraform-datasource: null operationId: getAuthServer summary: Get an auth server description: Get an auth server. responses: '200': $ref: '#/components/responses/AuthServer' '404': $ref: '#/components/responses/NotFound' tags: - Auth Server patch: x-speakeasy-entity-operation: terraform-resource: IdentityAuthServer#update terraform-datasource: null operationId: updateAuthServer summary: Update an auth server description: Update an auth server. requestBody: $ref: '#/components/requestBodies/UpdateAuthServer' responses: '200': $ref: '#/components/responses/AuthServer' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' tags: - Auth Server delete: x-speakeasy-entity-operation: terraform-resource: IdentityAuthServer#delete terraform-datasource: null operationId: deleteAuthServer summary: Delete an auth server description: 'Delete an auth server. If force=true, delete the auth server and all its associated resources. If force=false, only allow deletion if no resources are associated with the auth server. This action is irreversible.' parameters: - name: force in: query description: 'If true, delete the specified auth server and all its associated resources. If false, only allow deletion if no clients, scopes or claims are associated with the auth server.' schema: type: string default: 'false' enum: - 'true' - 'false' x-speakeasy-name-override: force_destroy responses: '204': description: Success '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' tags: - Auth Server '/v1/auth-servers/{authServerId}/claims': parameters: - $ref: '#/components/parameters/authServerIdForChildren' post: x-speakeasy-entity-operation: terraform-resource: IdentityAuthServerClaim#create terraform-datasource: null operationId: createAuthServerClaim summary: Create a new auth server claim description: 'Create a new claim for a given auth server. The `name` attribute will appear in the JWT access token as a claim with the given case-sensitive name. The `value` attribute will be used to populate the claim value in the JWT access token. The value can be templated, which allows you to use variables like `${ uuidv4 }` to generate dynamic values. Claim values are hydrated based on their types, which may include JSON.' requestBody: $ref: '#/components/requestBodies/CreateClaim' responses: '201': $ref: '#/components/responses/Claim' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' tags: - Auth Server Claims '/v1/auth-servers/{authServerId}/claims/{claimId}': parameters: - $ref: '#/components/parameters/authServerIdForChildren' - $ref: '#/components/parameters/claimId' get: x-speakeasy-entity-operation: terraform-resource: IdentityAuthServerClaim#read terraform-datasource: null operationId: getAuthServerClaim summary: Get an auth server claim description: Get a claim for given auth server. responses: '200': $ref: '#/components/responses/Claim' '404': $ref: '#/components/responses/NotFound' tags: - Auth Server Claims patch: x-speakeasy-entity-operation: terraform-resource: IdentityAuthServerClaim#update terraform-datasource: null operationId: updateAuthServerClaim summary: Update an auth server claim description: Update a claim for a given auth server. requestBody: $ref: '#/components/requestBodies/UpdateClaim' responses: '200': $ref: '#/components/responses/Claim' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' tags: - Auth Server Claims delete: x-speakeasy-entity-operation: terraform-resource: IdentityAuthServerClaim#delete terraform-datasource: null operationId: deleteAuthServerClaim summary: Delete an auth server claim description: 'Delete a claim for a given auth server. If the claim is included in any scopes, it will be removed from those scopes.' responses: '204': description: Success '404': $ref: '#/components/responses/NotFound' tags: - Auth Server Claims '/v1/auth-servers/{authServerId}/clients': parameters: - $ref: '#/components/parameters/authServerIdForChildren' post: x-speakeasy-entity-operation: terraform-resource: IdentityAuthServerClient#create terraform-datasource: null operationId: createAuthServerClient summary: Create a new auth server client description: Create a new client for a given auth server. The client ID and secret will be generated automatically. The `name` attribute must be unique within the auth server. The `grant_types` and `response_types` attributes define the OAuth 2.0 and OpenID Connect capabilities of the client. requestBody: $ref: '#/components/requestBodies/CreateClient' responses: '201': $ref: '#/components/responses/CreatedClient' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' tags: - Auth Server Clients '/v1/auth-servers/{authServerId}/clients/{clientId}': parameters: - $ref: '#/components/parameters/authServerIdForChildren' - $ref: '#/components/parameters/clientId' get: x-speakeasy-entity-operation: terraform-resource: IdentityAuthServerClient#read terraform-datasource: null operationId: getAuthServerClient summary: Get an auth server client description: Get a client for given auth server. responses: '200': $ref: '#/components/responses/Client' '404': $ref: '#/components/responses/NotFound' tags: - Auth Server Clients put: x-speakeasy-entity-operation: terraform-resource: IdentityAuthServerClient#update terraform-datasource: null operationId: replaceAuthServerClient summary: Replace an auth server client description: 'Replace a client for a given auth server. The client ID and secret can be provided to update an existing client, or to create a client with the matching ID and secret.' requestBody: $ref: '#/components/requestBodies/ReplaceClient' responses: '200': $ref: '#/components/responses/Client' '201': $ref: '#/components/responses/Client' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' tags: - Auth Server Clients delete: x-speakeasy-entity-operation: terraform-resource: IdentityAuthServerClient#delete terraform-datasource: null operationId: deleteAuthServerClient summary: Delete an auth server client description: Delete a client for a given auth server. All tokens associated with the client will also be deleted. This action is irreversible. responses: '204': description: Success '404': $ref: '#/components/responses/NotFound' tags: - Auth Server Clients '/v1/auth-servers/{authServerId}/scopes': parameters: - $ref: '#/components/parameters/authServerIdForChildren' post: x-speakeasy-entity-operation: terraform-resource: IdentityAuthServerScope#create terraform-datasource: null operationId: createAuthServerScope summary: Create a new auth server scope description: Create a new scope for a given auth server. The `name` attribute must be unique within the auth server. requestBody: $ref: '#/components/requestBodies/CreateScope' responses: '201': $ref: '#/components/responses/Scope' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' tags: - Auth Server Scopes '/v1/auth-servers/{authServerId}/scopes/{scopeId}': parameters: - $ref: '#/components/parameters/authServerIdForChildren' - $ref: '#/components/parameters/scopeId' get: x-speakeasy-entity-operation: terraform-resource: IdentityAuthServerScope#read terraform-datasource: null operationId: getAuthServerScope summary: Get an auth server scope description: Get a scope for given auth server. responses: '200': $ref: '#/components/responses/Scope' '404': $ref: '#/components/responses/NotFound' tags: - Auth Server Scopes patch: x-speakeasy-entity-operation: terraform-resource: IdentityAuthServerScope#update terraform-datasource: null operationId: updateAuthServerScope summary: Update an auth server scope description: Update a scope for a given auth server. requestBody: $ref: '#/components/requestBodies/UpdateScope' responses: '200': $ref: '#/components/responses/Scope' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' tags: - Auth Server Scopes delete: x-speakeasy-entity-operation: terraform-resource: IdentityAuthServerScope#delete terraform-datasource: null operationId: deleteAuthServerScope summary: Delete an auth server scope description: 'Delete a scope for a given auth server. If the scope is included in any clients, it will be removed from those clients.' responses: '204': description: Success '404': $ref: '#/components/responses/NotFound' tags: - Auth Server Scopes /v1/catalog-services: post: x-speakeasy-entity-operation: CatalogService#create operationId: create-catalog-service summary: Create Service description: Creates a service. requestBody: $ref: '#/components/requestBodies/CreateCatalogServiceRequest' responses: '201': $ref: '#/components/responses/CatalogServiceResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Catalog Services '/v1/catalog-services/{id}': parameters: - name: id in: path description: The `id` of the service. required: true schema: type: string example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 get: x-speakeasy-entity-operation: terraform-resource: CatalogService#read terraform-datasource: null operationId: fetch-catalog-service summary: Get a Service description: Fetches a service. responses: '200': $ref: '#/components/responses/CatalogServiceResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Catalog Services patch: x-speakeasy-entity-operation: CatalogService#update operationId: update-catalog-service summary: Update Service description: Updates a service. requestBody: $ref: '#/components/requestBodies/UpdateCatalogServiceRequest' responses: '200': $ref: '#/components/responses/CatalogServiceResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' tags: - Catalog Services delete: x-speakeasy-entity-operation: CatalogService#delete operationId: delete-catalog-service summary: Delete Service description: Deletes a service. responses: '204': description: Service was deleted successfully. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Catalog Services '/v1/cmeks/{cmekId}': parameters: - $ref: '#/components/parameters/cmekId' get: x-speakeasy-entity-operation: terraform-resource: CMEK#read terraform-datasource: null operationId: get-cmek summary: Get a CMEK description: Get a customer managed encryption key. responses: '200': $ref: '#/components/responses/CMEK' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - CMEK put: x-speakeasy-entity-operation: 'CMEK#create,update' operationId: put-cmek summary: Create or replace a CMEK description: Create or replace a customer managed encryption key. requestBody: $ref: '#/components/requestBodies/ReplaceCMEK' responses: '200': $ref: '#/components/responses/CMEK' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - CMEK delete: x-speakeasy-entity-operation: CMEK#delete operationId: delete-cmek summary: Delete a CMEK description: 'Delete a customer managed encryption key. Avoid revoking or deleting a KMS key and CMEK that is actively used by Konnect, as this can lead to data loss or service disruptions.' responses: '204': description: Success '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - CMEK /v1/event-gateways: post: x-speakeasy-entity-operation: terraform-resource: EventGateway#create terraform-datasource: null operationId: create-event-gateway summary: Create Event Gateway description: Create a Event gateway in the Konnect Organization. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateGatewayRequest' responses: '201': $ref: '#/components/responses/CreateGatewayResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' '500': $ref: '#/components/responses/Internal' '503': $ref: '#/components/responses/NotAvailable' tags: - Event Gateways '/v1/event-gateways/{gatewayId}': parameters: - name: gatewayId in: path description: The UUID of your Gateway. required: true schema: type: string format: uuid example: 9524ec7d-36d9-465d-a8c5-83a3c9390458 x-speakeasy-match: id get: x-speakeasy-entity-operation: terraform-resource: EventGateway#read terraform-datasource: null operationId: get-event-gateway summary: Get an Event Gateway description: Returns information about an individual Event gateway. responses: '200': description: A response to retrieving a single eventgateway. content: application/json: schema: $ref: '#/components/schemas/EventGatewayInfo' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/Internal' '503': $ref: '#/components/responses/NotAvailable' tags: - Event Gateways put: x-speakeasy-entity-operation: terraform-resource: EventGateway#update terraform-datasource: null operationId: update-event-gateway summary: Update Event Gateway description: Update an individual gateway. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateGatewayRequest' responses: '200': $ref: '#/components/responses/UpdateGatewayResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/Internal' '503': $ref: '#/components/responses/NotAvailable' tags: - Event Gateways delete: x-speakeasy-entity-operation: terraform-resource: EventGateway#delete terraform-datasource: null operationId: delete-event-gateway summary: Delete Event Gateway description: Delete an individual gateway. responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateways '/v1/event-gateways/{gatewayId}/backend-clusters': parameters: - $ref: '#/components/parameters/gatewayId' post: x-speakeasy-entity-operation: terraform-resource: EventGatewayBackendCluster#create terraform-datasource: null operationId: create-event-gateway-backend-cluster summary: Create Backend Cluster description: Creates a new backend cluster. requestBody: $ref: '#/components/requestBodies/CreateBackendClusterRequest' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/BackendCluster' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Backend Clusters '/v1/event-gateways/{gatewayId}/backend-clusters/{backendClusterId}': parameters: - $ref: '#/components/parameters/gatewayId' - name: backendClusterId in: path description: The ID of the Backend Cluster. required: true schema: type: string format: uuid x-speakeasy-match: id get: x-speakeasy-entity-operation: terraform-resource: EventGatewayBackendCluster#read terraform-datasource: null operationId: get-event-gateway-backend-cluster summary: Get a Backend Cluster description: Returns information about a specific backend cluster. responses: '200': description: A single backend cluster object. content: application/json: schema: $ref: '#/components/schemas/BackendCluster' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Backend Clusters put: x-speakeasy-entity-operation: terraform-resource: EventGatewayBackendCluster#update terraform-datasource: null operationId: update-event-gateway-backend-cluster summary: Update Backend Cluster description: Updates an existing backend cluster. requestBody: $ref: '#/components/requestBodies/UpdateBackendClusterRequest' responses: '200': description: Updated backend cluster object. content: application/json: schema: $ref: '#/components/schemas/BackendCluster' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Backend Clusters delete: x-speakeasy-entity-operation: terraform-resource: EventGatewayBackendCluster#delete terraform-datasource: null operationId: delete-event-gateway-backend-cluster summary: Delete Backend Cluster description: Deletes a specific backend cluster. responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Backend Clusters '/v1/event-gateways/{gatewayId}/data-plane-certificates': parameters: - $ref: '#/components/parameters/gatewayId' post: x-speakeasy-entity-operation: terraform-resource: EventGatewayDataPlaneCertificate#create terraform-datasource: null operationId: create-event-gateway-data-plane-certificate summary: Create a New DataPlane Certificate description: Create new dataplane certificate to this event gateway. A dataplane certificate allows dataplanes configured with the certificate and corresponding private key to establish connection with this event gateway. requestBody: $ref: '#/components/requestBodies/CreateEventGatewayDataPlaneCertificateRequest' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/EventGatewayDataPlaneCertificate' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway DataPlane Certificates '/v1/event-gateways/{gatewayId}/data-plane-certificates/{certificateId}': parameters: - $ref: '#/components/parameters/gatewayId' - name: certificateId in: path description: The ID of the dataplane certificate. required: true schema: type: string format: uuid x-speakeasy-match: id get: x-speakeasy-entity-operation: terraform-resource: EventGatewayDataPlaneCertificate#read terraform-datasource: null operationId: get-event-gateway-data-plane-certificate summary: Get a DataPlane Certificate description: Returns information about an individual dataplane certificate. responses: '200': description: A single dataplane certificate. content: application/json: schema: $ref: '#/components/schemas/EventGatewayDataPlaneCertificate' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway DataPlane Certificates put: x-speakeasy-entity-operation: terraform-resource: EventGatewayDataPlaneCertificate#update terraform-datasource: null operationId: update-event-gateway-data-plane-certificate summary: Update Event Gateway DataPlane Certificate description: Updates an existing dataplane certificate associated with the specified Event Gateway. requestBody: $ref: '#/components/requestBodies/UpdateEventGatewayDataPlaneCertificateRequest' responses: '200': description: Updated event gateway dataplane certificate object. content: application/json: schema: $ref: '#/components/schemas/EventGatewayDataPlaneCertificate' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway DataPlane Certificates delete: x-speakeasy-entity-operation: terraform-resource: EventGatewayDataPlaneCertificate#delete terraform-datasource: null operationId: delete-event-gateway-data-plane-certificate summary: Delete Event Gateway DataPlane Certificate description: Deletes a specific dataplane certificate associated with the Event Gateway. responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway DataPlane Certificates '/v1/event-gateways/{gatewayId}/listeners': parameters: - $ref: '#/components/parameters/gatewayId' post: x-speakeasy-entity-operation: terraform-resource: EventGatewayListener#create terraform-datasource: null operationId: create-event-gateway-listener summary: Create Event Gateway Listener description: Creates a new listener associated with the specified Event Gateway. requestBody: $ref: '#/components/requestBodies/CreateEventGatewayListenerRequest' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/EventGatewayListener' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Listeners '/v1/event-gateways/{gatewayId}/listeners/{eventGatewayListenerId}': parameters: - $ref: '#/components/parameters/gatewayId' - name: eventGatewayListenerId in: path description: The ID of the Event Gateway Listener. required: true schema: type: string format: uuid x-speakeasy-match: id get: x-speakeasy-entity-operation: terraform-resource: EventGatewayListener#read terraform-datasource: null operationId: get-event-gateway-listener summary: Get an Event Gateway Listener description: Returns information about a specific listener associated with the Event Gateway. responses: '200': description: A single event gateway listener object. content: application/json: schema: $ref: '#/components/schemas/EventGatewayListener' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Listeners put: x-speakeasy-entity-operation: terraform-resource: EventGatewayListener#update terraform-datasource: null operationId: update-event-gateway-listener summary: Update Event Gateway Listener description: Updates an existing listener associated with the specified Event Gateway. requestBody: $ref: '#/components/requestBodies/UpdateEventGatewayListenerRequest' responses: '200': description: Updated event gateway listener object. content: application/json: schema: $ref: '#/components/schemas/EventGatewayListener' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Listeners delete: x-speakeasy-entity-operation: terraform-resource: EventGatewayListener#delete terraform-datasource: null operationId: delete-event-gateway-listener summary: Delete Event Gateway Listener description: Deletes a specific listener associated with the Event Gateway. responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Listeners '/v1/event-gateways/{gatewayId}/listeners/{eventGatewayListenerId}/policies/{policyId}#ForwardToVirtualCluster': get: x-speakeasy-entity-operation: terraform-resource: EventGatewayListenerPolicyForwardToVirtualCluster#read terraform-datasource: null operationId: get-event-gateway-listener-policy-forward-to_virtual_cluster summary: Get a Policy for Listener description: Returns information about a specific policy associated with the Event Gateway listener. responses: '200': description: A single policy object. content: application/json: schema: $ref: '#/components/schemas/EventGatewayListenerPolicy' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Listener Policies put: x-speakeasy-entity-operation: terraform-resource: EventGatewayListenerPolicyForwardToVirtualCluster#update terraform-datasource: null operationId: update-event-gateway-listener-policy-forward-to_virtual_cluster summary: Update Policy for Listener description: Updates an existing policy associated with the specified Event Gateway listener. requestBody: content: application/json: schema: $ref: '#/components/schemas/ForwardToVirtualClusterPolicy' responses: '200': description: Updated policy object. content: application/json: schema: $ref: '#/components/schemas/EventGatewayListenerPolicy' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Listener Policies delete: x-speakeasy-entity-operation: terraform-resource: EventGatewayListenerPolicyForwardToVirtualCluster#delete terraform-datasource: null operationId: delete-event-gateway-listener-policy-forward-to_virtual_cluster summary: Delete Policy for Listener description: Deletes a specific policy associated with the Event Gateway listener. responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Listener Policies parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/eventGatewayListenerId' - name: policyId in: path description: The UUID of the policy. required: true schema: type: string format: uuid example: 9524ec7d-36d9-465d-a8c5-83a3c9390458 x-speakeasy-match: id '/v1/event-gateways/{gatewayId}/listeners/{eventGatewayListenerId}/policies/{policyId}#TlsServer': get: x-speakeasy-entity-operation: terraform-resource: EventGatewayListenerPolicyTlsServer#read terraform-datasource: null operationId: get-event-gateway-listener-policy-tls-server summary: Get a Policy for Listener description: Returns information about a specific policy associated with the Event Gateway listener. responses: '200': description: A single policy object. content: application/json: schema: $ref: '#/components/schemas/EventGatewayListenerPolicy' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Listener Policies put: x-speakeasy-entity-operation: terraform-resource: EventGatewayListenerPolicyTlsServer#update terraform-datasource: null operationId: update-event-gateway-listener-policy-tls-server summary: Update Policy for Listener description: Updates an existing policy associated with the specified Event Gateway listener. requestBody: content: application/json: schema: $ref: '#/components/schemas/EventGatewayTLSListenerSensitiveDataAwarePolicy' responses: '200': description: Updated policy object. content: application/json: schema: $ref: '#/components/schemas/EventGatewayListenerPolicy' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Listener Policies delete: x-speakeasy-entity-operation: terraform-resource: EventGatewayListenerPolicyTlsServer#delete terraform-datasource: null operationId: delete-event-gateway-listener-policy-tls-server summary: Delete Policy for Listener description: Deletes a specific policy associated with the Event Gateway listener. responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Listener Policies parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/eventGatewayListenerId' - name: policyId in: path description: The UUID of the policy. required: true schema: type: string format: uuid example: 9524ec7d-36d9-465d-a8c5-83a3c9390458 x-speakeasy-match: id '/v1/event-gateways/{gatewayId}/listeners/{eventGatewayListenerId}/policies#ForwardToVirtualCluster': post: x-speakeasy-entity-operation: terraform-resource: EventGatewayListenerPolicyForwardToVirtualCluster#create terraform-datasource: null operationId: create-event-gateway-listener-policy-forward-to_virtual_cluster summary: Create Policy for Listener description: Creates a new policy associated with the specified Event Gateway listener. parameters: - $ref: '#/components/parameters/EventGatewayPolicyBefore' - $ref: '#/components/parameters/EventGatewayPolicyAfter' requestBody: content: application/json: schema: $ref: '#/components/schemas/ForwardToVirtualClusterPolicy' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/EventGatewayListenerPolicy' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Listener Policies parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/eventGatewayListenerId' '/v1/event-gateways/{gatewayId}/listeners/{eventGatewayListenerId}/policies#TlsServer': post: x-speakeasy-entity-operation: terraform-resource: EventGatewayListenerPolicyTlsServer#create terraform-datasource: null operationId: create-event-gateway-listener-policy-tls-server summary: Create Policy for Listener description: Creates a new policy associated with the specified Event Gateway listener. parameters: - $ref: '#/components/parameters/EventGatewayPolicyBefore' - $ref: '#/components/parameters/EventGatewayPolicyAfter' requestBody: content: application/json: schema: $ref: '#/components/schemas/EventGatewayTLSListenerPolicy' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/EventGatewayListenerPolicy' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Listener Policies parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/eventGatewayListenerId' '/v1/event-gateways/{gatewayId}/schema-registries': parameters: - $ref: '#/components/parameters/gatewayId' post: x-speakeasy-entity-operation: terraform-resource: EventGatewaySchemaRegistry#create terraform-datasource: null operationId: create-event-gateway-schema-registry summary: Create Schema Registry description: Creates a new schema registry associated with the specified Event Gateway. requestBody: $ref: '#/components/requestBodies/CreateSchemaRegistryRequest' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/SchemaRegistry' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Schema Registries '/v1/event-gateways/{gatewayId}/schema-registries/{schemaRegistryId}': parameters: - $ref: '#/components/parameters/gatewayId' - name: schemaRegistryId in: path description: The ID of the Schema Registry. required: true schema: type: string format: uuid x-speakeasy-match: id get: x-speakeasy-entity-operation: terraform-resource: EventGatewaySchemaRegistry#read terraform-datasource: null operationId: get-event-gateway-schema-registry summary: Get a Schema Registry description: Returns information about a specific schema registry associated with the Event Gateway. responses: '200': description: A single schema registry object. content: application/json: schema: $ref: '#/components/schemas/SchemaRegistry' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Schema Registries put: x-speakeasy-entity-operation: terraform-resource: EventGatewaySchemaRegistry#update terraform-datasource: null operationId: update-event-gateway-schema-registry summary: Update Schema Registry description: Updates an existing schema registry associated with the specified Event Gateway. requestBody: $ref: '#/components/requestBodies/UpdateSchemaRegistryRequest' responses: '200': description: Updated schema registry object. content: application/json: schema: $ref: '#/components/schemas/SchemaRegistry' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Schema Registries delete: x-speakeasy-entity-operation: terraform-resource: EventGatewaySchemaRegistry#delete terraform-datasource: null operationId: delete-event-gateway-schema-registry summary: Delete Schema Registry description: Deletes a specific schema registry associated with the Event Gateway. responses: '204': description: No Content '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Schema Registries '/v1/event-gateways/{gatewayId}/static-keys': parameters: - $ref: '#/components/parameters/gatewayId' post: x-speakeasy-entity-operation: terraform-resource: EventGatewayStaticKey#create terraform-datasource: null operationId: create-event-gateway-static-key summary: Create a New Static Key description: Create new static key to this event gateway. requestBody: $ref: '#/components/requestBodies/CreateEventGatewayStaticKeyRequest' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/EventGatewayStaticKey' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Static Keys '/v1/event-gateways/{gatewayId}/static-keys/{staticKeyId}': parameters: - $ref: '#/components/parameters/gatewayId' - name: staticKeyId in: path description: The ID of the static key. required: true schema: type: string format: uuid x-speakeasy-match: id get: x-speakeasy-entity-operation: terraform-resource: EventGatewayStaticKey#read terraform-datasource: null operationId: get-event-gateway-static-key summary: Get a Static Key description: Returns information about an individual static key. responses: '200': description: A single static key. content: application/json: schema: $ref: '#/components/schemas/EventGatewayStaticKey' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Static Keys delete: x-speakeasy-entity-operation: terraform-resource: EventGatewayStaticKey#delete terraform-datasource: null operationId: delete-event-gateway-static-key summary: Delete Event Gateway Static Key description: Deletes a specific static key associated with the Event Gateway. responses: '204': description: No Content '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Static Keys '/v1/event-gateways/{gatewayId}/tls-trust-bundles': parameters: - $ref: '#/components/parameters/gatewayId' post: x-speakeasy-entity-operation: terraform-resource: EventGatewayTLSTrustBundle#create terraform-datasource: null operationId: create-event-gateway-tls-trust-bundle summary: Create TLS Trust Bundle description: |- Creates a new TLS trust bundle containing trusted CA certificates for client certificate verification. **Requires a minimum runtime version of `1.1`**. requestBody: $ref: '#/components/requestBodies/CreateTLSTrustBundleRequest' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/TLSTrustBundle' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway TLS Trust Bundles x-min-runtime-version: '1.1' x-speakeasy-param-computed: false '/v1/event-gateways/{gatewayId}/tls-trust-bundles/{tlsTrustBundleId}': parameters: - $ref: '#/components/parameters/gatewayId' - name: tlsTrustBundleId in: path description: The ID of the TLS trust bundle. required: true schema: type: string format: uuid x-speakeasy-match: id get: x-speakeasy-entity-operation: terraform-resource: EventGatewayTLSTrustBundle#read terraform-datasource: null operationId: get-event-gateway-tls-trust-bundle summary: Get a TLS Trust Bundle description: |- Returns information about a specific TLS trust bundle. **Requires a minimum runtime version of `1.1`**. responses: '200': description: A single TLS trust bundle object. content: application/json: schema: $ref: '#/components/schemas/TLSTrustBundle' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway TLS Trust Bundles x-min-runtime-version: '1.1' x-speakeasy-param-computed: false put: x-speakeasy-entity-operation: terraform-resource: EventGatewayTLSTrustBundle#update terraform-datasource: null operationId: update-event-gateway-tls-trust-bundle summary: Update TLS Trust Bundle description: |- Updates an existing TLS trust bundle. **Requires a minimum runtime version of `1.1`**. requestBody: $ref: '#/components/requestBodies/UpdateTLSTrustBundleRequest' responses: '200': description: Updated TLS trust bundle object. content: application/json: schema: $ref: '#/components/schemas/TLSTrustBundle' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway TLS Trust Bundles x-min-runtime-version: '1.1' x-speakeasy-param-computed: false delete: x-speakeasy-entity-operation: terraform-resource: EventGatewayTLSTrustBundle#delete terraform-datasource: null operationId: delete-event-gateway-tls-trust-bundle summary: Delete TLS Trust Bundle description: |- Deletes a specific TLS trust bundle associated with the Event Gateway. **Requires a minimum runtime version of `1.1`**. responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway TLS Trust Bundles x-min-runtime-version: '1.1' x-speakeasy-param-computed: false '/v1/event-gateways/{gatewayId}/virtual-clusters': parameters: - $ref: '#/components/parameters/gatewayId' post: x-speakeasy-entity-operation: terraform-resource: EventGatewayVirtualCluster#create terraform-datasource: null operationId: create-event-gateway-virtual-cluster summary: Create Virtual Cluster description: Creates a new virtual cluster associated with the specified Event Gateway. requestBody: $ref: '#/components/requestBodies/CreateVirtualClusterRequest' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/VirtualCluster' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Clusters '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}': parameters: - $ref: '#/components/parameters/gatewayId' - name: virtualClusterId in: path description: The ID of the Virtual Cluster. required: true schema: type: string format: uuid x-speakeasy-match: id get: x-speakeasy-entity-operation: terraform-resource: EventGatewayVirtualCluster#read terraform-datasource: null operationId: get-event-gateway-virtual-cluster summary: Get a Virtual Cluster description: Returns information about a specific virtual cluster associated with the Event Gateway. responses: '200': description: A single virtual cluster object. content: application/json: schema: $ref: '#/components/schemas/VirtualCluster' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Virtual Clusters put: x-speakeasy-entity-operation: terraform-resource: EventGatewayVirtualCluster#update terraform-datasource: null operationId: update-event-gateway-virtual-cluster summary: Update Virtual Cluster description: Updates an existing virtual cluster associated with the specified Event Gateway. requestBody: $ref: '#/components/requestBodies/UpdateVirtualClusterRequest' responses: '200': description: Updated virtual cluster object. content: application/json: schema: $ref: '#/components/schemas/VirtualCluster' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Clusters delete: x-speakeasy-entity-operation: terraform-resource: EventGatewayVirtualCluster#delete terraform-datasource: null operationId: delete-event-gateway-virtual-cluster summary: Delete Virtual Cluster description: Deletes a specific virtual cluster associated with the Event Gateway. responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Virtual Clusters '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/cluster-policies/{policyId}#Acls': get: x-speakeasy-entity-operation: terraform-resource: EventGatewayClusterPolicyAcls#read terraform-datasource: null operationId: get-event-gateway-virtual-cluster-cluster-level-policy-acls summary: Get a Cluster Policy for Virtual Cluster description: Returns information about a specific cluster-level policy associated with the Event Gateway virtual cluster. responses: '200': description: A single cluster-level policy object. content: application/json: schema: $ref: '#/components/schemas/EventGatewayPolicy' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Virtual Cluster Policies put: x-speakeasy-entity-operation: terraform-resource: EventGatewayClusterPolicyAcls#update terraform-datasource: null operationId: update-event-gateway-virtual-cluster-cluster-level-policy-acls summary: Update Cluster Policy for Virtual Cluster description: Updates an existing cluster-level policy associated with the specified Event Gateway virtual cluster. requestBody: content: application/json: schema: $ref: '#/components/schemas/EventGatewayACLsPolicy' responses: '200': description: Updated cluster-level policy object. content: application/json: schema: $ref: '#/components/schemas/EventGatewayPolicy' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Policies delete: x-speakeasy-entity-operation: terraform-resource: EventGatewayClusterPolicyAcls#delete terraform-datasource: null operationId: delete-event-gateway-virtual-cluster-cluster-level-policy-acls summary: Delete Cluster Policy for Virtual Cluster description: Deletes a specific cluster-level policy associated with the Event Gateway virtual cluster. responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Virtual Cluster Policies parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' - name: policyId in: path description: The UUID of the policy. required: true schema: type: string format: uuid example: 9524ec7d-36d9-465d-a8c5-83a3c9390458 x-speakeasy-match: id '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/cluster-policies#Acls': post: x-speakeasy-entity-operation: terraform-resource: EventGatewayClusterPolicyAcls#create terraform-datasource: null operationId: create-event-gateway-virtual-cluster-cluster-level-policy-acls summary: Create Cluster Policy for Virtual Cluster description: Creates a new cluster-level policy associated with the specified Event Gateway virtual cluster. parameters: - $ref: '#/components/parameters/EventGatewayPolicyBefore' - $ref: '#/components/parameters/EventGatewayPolicyAfter' requestBody: content: application/json: schema: $ref: '#/components/schemas/EventGatewayACLsPolicy' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/EventGatewayPolicy' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Policies parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/consume-policies/{policyId}#Decrypt': get: x-speakeasy-entity-operation: terraform-resource: EventGatewayConsumePolicyDecrypt#read terraform-datasource: null operationId: get-event-gateway-virtual-cluster-consume-policy-decrypt summary: Get a Consume Policy for Virtual Cluster description: Returns information about a specific consume policy associated with the Event Gateway virtual cluster. responses: '200': description: A single consume policy object. content: application/json: schema: $ref: '#/components/schemas/EventGatewayPolicy' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Virtual Cluster Consume Policies put: x-speakeasy-entity-operation: terraform-resource: EventGatewayConsumePolicyDecrypt#update terraform-datasource: null operationId: update-event-gateway-virtual-cluster-consume-policy-decrypt summary: Update Consume Policy for Virtual Cluster description: Updates an existing consume policy associated with the specified Event Gateway virtual cluster. requestBody: content: application/json: schema: $ref: '#/components/schemas/EventGatewayDecryptPolicy' responses: '200': description: Updated consume policy object. content: application/json: schema: $ref: '#/components/schemas/EventGatewayPolicy' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Consume Policies delete: x-speakeasy-entity-operation: terraform-resource: EventGatewayConsumePolicyDecrypt#delete terraform-datasource: null operationId: delete-event-gateway-virtual-cluster-consume-policy-decrypt summary: Delete Consume Policy for Virtual Cluster description: Deletes a specific consume policy associated with the Event Gateway virtual cluster. responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Virtual Cluster Consume Policies parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' - name: policyId in: path description: The UUID of the policy. required: true schema: type: string format: uuid example: 9524ec7d-36d9-465d-a8c5-83a3c9390458 x-speakeasy-match: id '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/consume-policies/{policyId}#DecryptFields': get: x-speakeasy-entity-operation: terraform-resource: EventGatewayConsumePolicyDecryptFields#read terraform-datasource: null operationId: get-event-gateway-virtual-cluster-consume-policy-decrypt-fields summary: Get a Consume Policy for Virtual Cluster description: Returns information about a specific consume policy associated with the Event Gateway virtual cluster. responses: '200': description: A single consume policy object. content: application/json: schema: $ref: '#/components/schemas/EventGatewayPolicy' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Virtual Cluster Consume Policies put: x-speakeasy-entity-operation: terraform-resource: EventGatewayConsumePolicyDecryptFields#update terraform-datasource: null operationId: update-event-gateway-virtual-cluster-consume-policy-decrypt-fields summary: Update Consume Policy for Virtual Cluster description: Updates an existing consume policy associated with the specified Event Gateway virtual cluster. requestBody: content: application/json: schema: $ref: '#/components/schemas/EventGatewayParsedRecordDecryptFieldsPolicy' responses: '200': description: Updated consume policy object. content: application/json: schema: $ref: '#/components/schemas/EventGatewayPolicy' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Consume Policies delete: x-speakeasy-entity-operation: terraform-resource: EventGatewayConsumePolicyDecryptFields#delete terraform-datasource: null operationId: delete-event-gateway-virtual-cluster-consume-policy-decrypt-fields summary: Delete Consume Policy for Virtual Cluster description: Deletes a specific consume policy associated with the Event Gateway virtual cluster. responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Virtual Cluster Consume Policies parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' - name: policyId in: path description: The UUID of the policy. required: true schema: type: string format: uuid example: 9524ec7d-36d9-465d-a8c5-83a3c9390458 x-speakeasy-match: id '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/consume-policies/{policyId}#ModifyHeaders': get: x-speakeasy-entity-operation: terraform-resource: EventGatewayConsumePolicyModifyHeaders#read terraform-datasource: null operationId: get-event-gateway-virtual-cluster-consume-policy-modify-headers summary: Get a Consume Policy for Virtual Cluster description: Returns information about a specific consume policy associated with the Event Gateway virtual cluster. responses: '200': description: A single consume policy object. content: application/json: schema: $ref: '#/components/schemas/EventGatewayPolicy' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Virtual Cluster Consume Policies put: x-speakeasy-entity-operation: terraform-resource: EventGatewayConsumePolicyModifyHeaders#update terraform-datasource: null operationId: update-event-gateway-virtual-cluster-consume-policy-modify-headers summary: Update Consume Policy for Virtual Cluster description: Updates an existing consume policy associated with the specified Event Gateway virtual cluster. requestBody: content: application/json: schema: $ref: '#/components/schemas/EventGatewayModifyHeadersPolicy' responses: '200': description: Updated consume policy object. content: application/json: schema: $ref: '#/components/schemas/EventGatewayPolicy' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Consume Policies delete: x-speakeasy-entity-operation: terraform-resource: EventGatewayConsumePolicyModifyHeaders#delete terraform-datasource: null operationId: delete-event-gateway-virtual-cluster-consume-policy-modify-headers summary: Delete Consume Policy for Virtual Cluster description: Deletes a specific consume policy associated with the Event Gateway virtual cluster. responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Virtual Cluster Consume Policies parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' - name: policyId in: path description: The UUID of the policy. required: true schema: type: string format: uuid example: 9524ec7d-36d9-465d-a8c5-83a3c9390458 x-speakeasy-match: id '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/consume-policies/{policyId}#SchemaValidation': get: x-speakeasy-entity-operation: terraform-resource: EventGatewayConsumePolicySchemaValidation#read terraform-datasource: null operationId: get-event-gateway-virtual-cluster-consume-policy-schema-validation summary: Get a Consume Policy for Virtual Cluster description: Returns information about a specific consume policy associated with the Event Gateway virtual cluster. responses: '200': description: A single consume policy object. content: application/json: schema: $ref: '#/components/schemas/EventGatewayConsumePolicySchemaValidationTFOnly' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Virtual Cluster Consume Policies put: x-speakeasy-entity-operation: terraform-resource: EventGatewayConsumePolicySchemaValidation#update terraform-datasource: null operationId: update-event-gateway-virtual-cluster-consume-policy-schema-validation summary: Update Consume Policy for Virtual Cluster description: Updates an existing consume policy associated with the specified Event Gateway virtual cluster. requestBody: content: application/json: schema: $ref: '#/components/schemas/EventGatewayConsumeSchemaValidationPolicy' responses: '200': description: Updated consume policy object. content: application/json: schema: $ref: '#/components/schemas/EventGatewayConsumePolicySchemaValidationTFOnly' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Consume Policies delete: x-speakeasy-entity-operation: terraform-resource: EventGatewayConsumePolicySchemaValidation#delete terraform-datasource: null operationId: delete-event-gateway-virtual-cluster-consume-policy-schema-validation summary: Delete Consume Policy for Virtual Cluster description: Deletes a specific consume policy associated with the Event Gateway virtual cluster. responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Virtual Cluster Consume Policies parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' - name: policyId in: path description: The UUID of the policy. required: true schema: type: string format: uuid example: 9524ec7d-36d9-465d-a8c5-83a3c9390458 x-speakeasy-match: id '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/consume-policies/{policyId}#SkipRecord': get: x-speakeasy-entity-operation: terraform-resource: EventGatewayConsumePolicySkipRecord#read terraform-datasource: null operationId: get-event-gateway-virtual-cluster-consume-policy-skip-record summary: Get a Consume Policy for Virtual Cluster description: Returns information about a specific consume policy associated with the Event Gateway virtual cluster. responses: '200': description: A single consume policy object. content: application/json: schema: $ref: '#/components/schemas/EventGatewayPolicy' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Virtual Cluster Consume Policies put: x-speakeasy-entity-operation: terraform-resource: EventGatewayConsumePolicySkipRecord#update terraform-datasource: null operationId: update-event-gateway-virtual-cluster-consume-policy-skip-record summary: Update Consume Policy for Virtual Cluster description: Updates an existing consume policy associated with the specified Event Gateway virtual cluster. requestBody: content: application/json: schema: $ref: '#/components/schemas/EventGatewaySkipRecordPolicy' responses: '200': description: Updated consume policy object. content: application/json: schema: $ref: '#/components/schemas/EventGatewayPolicy' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Consume Policies delete: x-speakeasy-entity-operation: terraform-resource: EventGatewayConsumePolicySkipRecord#delete terraform-datasource: null operationId: delete-event-gateway-virtual-cluster-consume-policy-skip-record summary: Delete Consume Policy for Virtual Cluster description: Deletes a specific consume policy associated with the Event Gateway virtual cluster. responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Virtual Cluster Consume Policies parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' - name: policyId in: path description: The UUID of the policy. required: true schema: type: string format: uuid example: 9524ec7d-36d9-465d-a8c5-83a3c9390458 x-speakeasy-match: id '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/consume-policies#Decrypt': post: x-speakeasy-entity-operation: terraform-resource: EventGatewayConsumePolicyDecrypt#create terraform-datasource: null operationId: create-event-gateway-virtual-cluster-consume-policy-decrypt summary: Create Consume Policy for Virtual Cluster description: Creates a new consume policy associated with the specified Event Gateway virtual cluster. parameters: - $ref: '#/components/parameters/EventGatewayPolicyBefore' - $ref: '#/components/parameters/EventGatewayPolicyAfter' requestBody: content: application/json: schema: $ref: '#/components/schemas/EventGatewayDecryptPolicy' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/EventGatewayPolicy' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Consume Policies parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/consume-policies#DecryptFields': post: x-speakeasy-entity-operation: terraform-resource: EventGatewayConsumePolicyDecryptFields#create terraform-datasource: null operationId: create-event-gateway-virtual-cluster-consume-policy-decrypt-fields summary: Create Consume Policy for Virtual Cluster description: Creates a new consume policy associated with the specified Event Gateway virtual cluster. parameters: - $ref: '#/components/parameters/EventGatewayPolicyBefore' - $ref: '#/components/parameters/EventGatewayPolicyAfter' requestBody: content: application/json: schema: $ref: '#/components/schemas/EventGatewayParsedRecordDecryptFieldsPolicyCreate' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/EventGatewayPolicy' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Consume Policies parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/consume-policies#ModifyHeaders': post: x-speakeasy-entity-operation: terraform-resource: EventGatewayConsumePolicyModifyHeaders#create terraform-datasource: null operationId: create-event-gateway-virtual-cluster-consume-policy-modify-headers summary: Create Consume Policy for Virtual Cluster description: Creates a new consume policy associated with the specified Event Gateway virtual cluster. parameters: - $ref: '#/components/parameters/EventGatewayPolicyBefore' - $ref: '#/components/parameters/EventGatewayPolicyAfter' requestBody: content: application/json: schema: $ref: '#/components/schemas/EventGatewayModifyHeadersPolicyCreate' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/EventGatewayPolicy' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Consume Policies parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/consume-policies#SchemaValidation': post: x-speakeasy-entity-operation: terraform-resource: EventGatewayConsumePolicySchemaValidation#create terraform-datasource: null operationId: create-event-gateway-virtual-cluster-consume-policy-schema-validation summary: Create Consume Policy for Virtual Cluster description: Creates a new consume policy associated with the specified Event Gateway virtual cluster. parameters: - $ref: '#/components/parameters/EventGatewayPolicyBefore' - $ref: '#/components/parameters/EventGatewayPolicyAfter' requestBody: content: application/json: schema: $ref: '#/components/schemas/EventGatewayConsumeSchemaValidationPolicy' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/EventGatewayConsumePolicySchemaValidationTFOnly' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Consume Policies parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/consume-policies#SkipRecord': post: x-speakeasy-entity-operation: terraform-resource: EventGatewayConsumePolicySkipRecord#create terraform-datasource: null operationId: create-event-gateway-virtual-cluster-consume-policy-skip-record summary: Create Consume Policy for Virtual Cluster description: Creates a new consume policy associated with the specified Event Gateway virtual cluster. parameters: - $ref: '#/components/parameters/EventGatewayPolicyBefore' - $ref: '#/components/parameters/EventGatewayPolicyAfter' requestBody: content: application/json: schema: $ref: '#/components/schemas/EventGatewaySkipRecordPolicyCreate' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/EventGatewayPolicy' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Consume Policies parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/produce-policies/{policyId}#Encrypt': get: x-speakeasy-entity-operation: terraform-resource: EventGatewayProducePolicyEncrypt#read terraform-datasource: null operationId: get-event-gateway-virtual-cluster-produce-policy-encrypt summary: Get a Produce Policy for Virtual Cluster description: Returns information about a specific produce policy associated with the Event Gateway virtual cluster. responses: '200': description: A single produce policy object. content: application/json: schema: $ref: '#/components/schemas/EventGatewayPolicy' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Virtual Cluster Produce Policies put: x-speakeasy-entity-operation: terraform-resource: EventGatewayProducePolicyEncrypt#update terraform-datasource: null operationId: update-event-gateway-virtual-cluster-produce-policy-encrypt summary: Update Produce Policy for Virtual Cluster description: Updates an existing produce policy associated with the specified Event Gateway virtual cluster. requestBody: content: application/json: schema: $ref: '#/components/schemas/EventGatewayEncryptPolicy' responses: '200': description: Updated produce policy object. content: application/json: schema: $ref: '#/components/schemas/EventGatewayPolicy' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Produce Policies delete: x-speakeasy-entity-operation: terraform-resource: EventGatewayProducePolicyEncrypt#delete terraform-datasource: null operationId: delete-event-gateway-virtual-cluster-produce-policy-encrypt summary: Delete Produce Policy for Virtual Cluster description: Deletes a specific produce policy associated with the Event Gateway virtual cluster. responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Virtual Cluster Produce Policies parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' - name: policyId in: path description: The UUID of the policy. required: true schema: type: string format: uuid example: 9524ec7d-36d9-465d-a8c5-83a3c9390458 x-speakeasy-match: id '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/produce-policies/{policyId}#EncryptFields': get: x-speakeasy-entity-operation: terraform-resource: EventGatewayProducePolicyEncryptFields#read terraform-datasource: null operationId: get-event-gateway-virtual-cluster-produce-policy-encrypt-fields summary: Get a Produce Policy for Virtual Cluster description: Returns information about a specific produce policy associated with the Event Gateway virtual cluster. responses: '200': description: A single produce policy object. content: application/json: schema: $ref: '#/components/schemas/EventGatewayPolicy' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Virtual Cluster Produce Policies put: x-speakeasy-entity-operation: terraform-resource: EventGatewayProducePolicyEncryptFields#update terraform-datasource: null operationId: update-event-gateway-virtual-cluster-produce-policy-encrypt-fields summary: Update Produce Policy for Virtual Cluster description: Updates an existing produce policy associated with the specified Event Gateway virtual cluster. requestBody: content: application/json: schema: $ref: '#/components/schemas/EventGatewayParsedRecordEncryptFieldsPolicy' responses: '200': description: Updated produce policy object. content: application/json: schema: $ref: '#/components/schemas/EventGatewayPolicy' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Produce Policies delete: x-speakeasy-entity-operation: terraform-resource: EventGatewayProducePolicyEncryptFields#delete terraform-datasource: null operationId: delete-event-gateway-virtual-cluster-produce-policy-encrypt-fields summary: Delete Produce Policy for Virtual Cluster description: Deletes a specific produce policy associated with the Event Gateway virtual cluster. responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Virtual Cluster Produce Policies parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' - name: policyId in: path description: The UUID of the policy. required: true schema: type: string format: uuid example: 9524ec7d-36d9-465d-a8c5-83a3c9390458 x-speakeasy-match: id '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/produce-policies/{policyId}#ModifyHeaders': get: x-speakeasy-entity-operation: terraform-resource: EventGatewayProducePolicyModifyHeaders#read terraform-datasource: null operationId: get-event-gateway-virtual-cluster-produce-policy-modify-headers summary: Get a Produce Policy for Virtual Cluster description: Returns information about a specific produce policy associated with the Event Gateway virtual cluster. responses: '200': description: A single produce policy object. content: application/json: schema: $ref: '#/components/schemas/EventGatewayPolicy' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Virtual Cluster Produce Policies put: x-speakeasy-entity-operation: terraform-resource: EventGatewayProducePolicyModifyHeaders#update terraform-datasource: null operationId: update-event-gateway-virtual-cluster-produce-policy-modify-headers summary: Update Produce Policy for Virtual Cluster description: Updates an existing produce policy associated with the specified Event Gateway virtual cluster. requestBody: content: application/json: schema: $ref: '#/components/schemas/EventGatewayModifyHeadersPolicy' responses: '200': description: Updated produce policy object. content: application/json: schema: $ref: '#/components/schemas/EventGatewayPolicy' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Produce Policies delete: x-speakeasy-entity-operation: terraform-resource: EventGatewayProducePolicyModifyHeaders#delete terraform-datasource: null operationId: delete-event-gateway-virtual-cluster-produce-policy-modify-headers summary: Delete Produce Policy for Virtual Cluster description: Deletes a specific produce policy associated with the Event Gateway virtual cluster. responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Virtual Cluster Produce Policies parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' - name: policyId in: path description: The UUID of the policy. required: true schema: type: string format: uuid example: 9524ec7d-36d9-465d-a8c5-83a3c9390458 x-speakeasy-match: id '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/produce-policies/{policyId}#SchemaValidation': get: x-speakeasy-entity-operation: terraform-resource: EventGatewayProducePolicySchemaValidation#read terraform-datasource: null operationId: get-event-gateway-virtual-cluster-produce-policy-schema-validation summary: Get a Produce Policy for Virtual Cluster description: Returns information about a specific produce policy associated with the Event Gateway virtual cluster. responses: '200': description: A single produce policy object. content: application/json: schema: $ref: '#/components/schemas/EventGatewayProducePolicySchemaValidationTFOnly' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Virtual Cluster Produce Policies put: x-speakeasy-entity-operation: terraform-resource: EventGatewayProducePolicySchemaValidation#update terraform-datasource: null operationId: update-event-gateway-virtual-cluster-produce-policy-schema-validation summary: Update Produce Policy for Virtual Cluster description: Updates an existing produce policy associated with the specified Event Gateway virtual cluster. requestBody: content: application/json: schema: $ref: '#/components/schemas/EventGatewayProduceSchemaValidationPolicy' responses: '200': description: Updated produce policy object. content: application/json: schema: $ref: '#/components/schemas/EventGatewayProducePolicySchemaValidationTFOnly' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Produce Policies delete: x-speakeasy-entity-operation: terraform-resource: EventGatewayProducePolicySchemaValidation#delete terraform-datasource: null operationId: delete-event-gateway-virtual-cluster-produce-policy-schema-validation summary: Delete Produce Policy for Virtual Cluster description: Deletes a specific produce policy associated with the Event Gateway virtual cluster. responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Virtual Cluster Produce Policies parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' - name: policyId in: path description: The UUID of the policy. required: true schema: type: string format: uuid example: 9524ec7d-36d9-465d-a8c5-83a3c9390458 x-speakeasy-match: id '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/produce-policies#Encrypt': post: x-speakeasy-entity-operation: terraform-resource: EventGatewayProducePolicyEncrypt#create terraform-datasource: null operationId: create-event-gateway-virtual-cluster-produce-policy-encrypt summary: Create Produce Policy for Virtual Cluster description: Creates a new produce policy associated with the specified Event Gateway virtual cluster. parameters: - $ref: '#/components/parameters/EventGatewayPolicyBefore' - $ref: '#/components/parameters/EventGatewayPolicyAfter' requestBody: content: application/json: schema: $ref: '#/components/schemas/EventGatewayEncryptPolicy' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/EventGatewayPolicy' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Produce Policies parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/produce-policies#EncryptFields': post: x-speakeasy-entity-operation: terraform-resource: EventGatewayProducePolicyEncryptFields#create terraform-datasource: null operationId: create-event-gateway-virtual-cluster-produce-policy-encrypt-fields summary: Create Produce Policy for Virtual Cluster description: Creates a new produce policy associated with the specified Event Gateway virtual cluster. parameters: - $ref: '#/components/parameters/EventGatewayPolicyBefore' - $ref: '#/components/parameters/EventGatewayPolicyAfter' requestBody: content: application/json: schema: $ref: '#/components/schemas/EventGatewayParsedRecordEncryptFieldsPolicyCreate' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/EventGatewayPolicy' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Produce Policies parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/produce-policies#ModifyHeaders': post: x-speakeasy-entity-operation: terraform-resource: EventGatewayProducePolicyModifyHeaders#create terraform-datasource: null operationId: create-event-gateway-virtual-cluster-produce-policy-modify-headers summary: Create Produce Policy for Virtual Cluster description: Creates a new produce policy associated with the specified Event Gateway virtual cluster. parameters: - $ref: '#/components/parameters/EventGatewayPolicyBefore' - $ref: '#/components/parameters/EventGatewayPolicyAfter' requestBody: content: application/json: schema: $ref: '#/components/schemas/EventGatewayModifyHeadersPolicyCreate' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/EventGatewayPolicy' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Produce Policies parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/produce-policies#SchemaValidation': post: x-speakeasy-entity-operation: terraform-resource: EventGatewayProducePolicySchemaValidation#create terraform-datasource: null operationId: create-event-gateway-virtual-cluster-produce-policy-schema-validation summary: Create Produce Policy for Virtual Cluster description: Creates a new produce policy associated with the specified Event Gateway virtual cluster. parameters: - $ref: '#/components/parameters/EventGatewayPolicyBefore' - $ref: '#/components/parameters/EventGatewayPolicyAfter' requestBody: content: application/json: schema: $ref: '#/components/schemas/EventGatewayProduceSchemaValidationPolicy' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/EventGatewayProducePolicySchemaValidationTFOnly' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Produce Policies parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' /v1/integration-instances: post: x-speakeasy-entity-operation: IntegrationInstance#create operationId: create-integration-instance summary: Create Integration Instance description: Creates an integration instance. requestBody: $ref: '#/components/requestBodies/CreateIntegrationInstanceRequest' responses: '201': $ref: '#/components/responses/IntegrationInstanceResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Integration Instances '/v1/integration-instances/{id}': parameters: - name: id in: path description: The `id` of the integration instance. required: true schema: type: string example: 3f51fa25-310a-421d-bd1a-007f859021a3 get: x-speakeasy-entity-operation: terraform-resource: IntegrationInstance#read terraform-datasource: null operationId: fetch-integration-instance summary: Get an Integration Instance description: Fetches a integration instance. responses: '200': $ref: '#/components/responses/IntegrationInstanceResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Integration Instances patch: x-speakeasy-entity-operation: IntegrationInstance#update operationId: update-integration-instance summary: Update Integration Instance description: Updates an integration instance. requestBody: $ref: '#/components/requestBodies/UpdateIntegrationInstanceRequest' responses: '200': $ref: '#/components/responses/IntegrationInstanceResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' tags: - Integration Instances delete: x-speakeasy-entity-operation: IntegrationInstance#delete operationId: delete-integration-instance summary: Delete Integration Instance description: Deletes an integration instance. responses: '204': description: Integration Instance was deleted successfully. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Integration Instances '/v1/integration-instances/{integrationInstanceId}/auth-config': parameters: - name: integrationInstanceId in: path description: The `id` of the integration instance. required: true schema: type: string example: 3f51fa25-310a-421d-bd1a-007f859021a3 get: x-speakeasy-entity-operation: terraform-resource: IntegrationInstanceAuthConfig#read terraform-datasource: null operationId: get-integration-instance-auth-config summary: Get Integration Instance Auth Config description: Fetches auth config scoped to the given integration instance. responses: '200': $ref: '#/components/responses/IntegrationInstanceAuthConfigResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Integration Instance Auth Config put: x-speakeasy-entity-operation: 'IntegrationInstanceAuthConfig#create,update' operationId: upsert-integration-instance-auth-config summary: Upsert Integration Instance Auth Config description: Upserts auth config scoped to the given integration instance. requestBody: $ref: '#/components/requestBodies/UpsertIntegrationInstanceAuthConfigRequest' responses: '200': $ref: '#/components/responses/IntegrationInstanceAuthConfigResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Integration Instance Auth Config delete: x-speakeasy-entity-operation: IntegrationInstanceAuthConfig#delete operationId: delete-integration-instance-auth-config summary: Delete Integration Instance Auth Config description: Deletes the auth config scoped to the given integration instance. responses: '204': description: Integration Instance Auth Config was deleted successfully. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Integration Instance Auth Config '/v1/integration-instances/{integrationInstanceId}/auth-credential': parameters: - name: integrationInstanceId in: path description: The `id` of the integration instance. required: true schema: type: string example: 3f51fa25-310a-421d-bd1a-007f859021a3 post: x-speakeasy-entity-operation: IntegrationInstanceAuthCredential#create operationId: create-integration-instance-auth-credential summary: Create Integration Instance Auth Credential description: | Creates an auth credential scoped to the given integration instance. Auth credentials are singleton resources that have a 1-to-1 relationship with an integration instance. An attempt to create subsequent auth credentials for an instance will result in a 409 response. requestBody: $ref: '#/components/requestBodies/CreateIntegrationInstanceAuthCredentialRequest' responses: '201': $ref: '#/components/responses/IntegrationInstanceAuthCredentialResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' tags: - Integration Instance Auth Credentials get: x-speakeasy-entity-operation: terraform-resource: IntegrationInstanceAuthCredential#read terraform-datasource: null operationId: get-integration-instance-auth-credential summary: Get Integration Instance Auth Credential description: Fetches the auth credential scoped to the given integration instance. responses: '200': $ref: '#/components/responses/IntegrationInstanceAuthCredentialResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Integration Instance Auth Credentials delete: x-speakeasy-entity-operation: IntegrationInstanceAuthCredential#delete operationId: delete-integration-instance-auth-credential summary: Delete Integration Instance Auth Credential description: Deletes the auth credential scoped to the given integration instance. responses: '204': description: Integration Instance Auth Credential was deleted successfully. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Integration Instance Auth Credentials /v1/mesh/control-planes: get: x-speakeasy-entity-operation: MeshControlPlanes#get operationId: list-mesh-control-planes summary: List Control Planes description: Returns an array of control planes objects. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' responses: '200': $ref: '#/components/responses/ListMeshControlPlanesResponse' '401': $ref: '#/components/responses/MeshControlPlaneUnauthorizedError' '403': $ref: '#/components/responses/MeshControlPlaneForbiddenError' tags: - Mesh x-speakeasy-pagination: type: offsetLimit inputs: - name: 'page[number]' in: parameters type: page - name: 'page[size]' in: parameters type: limit outputs: results: $.data numPages: $.meta.page.total post: x-speakeasy-entity-operation: terraform-resource: MeshControlPlane#create terraform-datasource: null operationId: create-cp summary: Create a new control plane description: Create a new control plane requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateMeshControlPlaneRequest' responses: '201': $ref: '#/components/responses/CreateMeshControlPlaneResponse' '400': $ref: '#/components/responses/CreateMeshControlPlaneValidationError' '401': $ref: '#/components/responses/MeshControlPlaneUnauthorizedError' '403': $ref: '#/components/responses/MeshControlPlaneForbiddenError' tags: - Mesh '/v1/mesh/control-planes/{cpId}': parameters: - name: cpId in: path description: Id of the Konnect resource required: true schema: type: string format: uuid example: bf138ba2-c9b1-4229-b268-04d9d8a6410b x-speakeasy-match: id x-speakeasy-param-suppress-computed-diff: true get: x-speakeasy-entity-operation: terraform-resource: MeshControlPlane#read terraform-datasource: null operationId: get-mesh-control-plane summary: Get the control plane description: Get the control plane responses: '200': $ref: '#/components/responses/RetrieveMeshControlPlaneResponse' '401': $ref: '#/components/responses/MeshControlPlaneUnauthorizedError' '403': $ref: '#/components/responses/MeshControlPlaneForbiddenError' '404': $ref: '#/components/responses/MeshControlPlaneNotFoundError' tags: - Mesh delete: x-speakeasy-entity-operation: terraform-resource: MeshControlPlane#delete terraform-datasource: null operationId: delete-mesh-control-plane summary: Delete the control plane description: Delete the control plane responses: '204': description: No Content '400': $ref: '#/components/responses/DeleteMeshControlPlaneValidationError' '401': $ref: '#/components/responses/MeshControlPlaneUnauthorizedError' '403': $ref: '#/components/responses/MeshControlPlaneForbiddenError' '404': $ref: '#/components/responses/MeshControlPlaneNotFoundError' tags: - Mesh x-speakeasy-retries: strategy: backoff backoff: initialInterval: 1000 maxInterval: 60000 maxElapsedTime: 360000 exponent: 2 statusCodes: - 400 retryConnectionErrors: true put: x-speakeasy-entity-operation: terraform-resource: MeshControlPlane#update terraform-datasource: null operationId: update-cp summary: Update a whole control plane description: Update a whole control plane requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PutMeshControlPlaneRequest' responses: '200': $ref: '#/components/responses/PutMeshControlPlaneResponse' '400': $ref: '#/components/responses/PutMeshControlPlaneValidationError' '401': $ref: '#/components/responses/MeshControlPlaneUnauthorizedError' '403': $ref: '#/components/responses/MeshControlPlaneForbiddenError' '404': $ref: '#/components/responses/MeshControlPlaneNotFoundError' tags: - Mesh /v1/realms: post: x-speakeasy-entity-operation: terraform-resource: Realm#create terraform-datasource: null operationId: create-realm summary: Create a realm description: | Create a new Realm. Centrally Managed Consumers are created within a Realm. Each Realm can be restricted to a specific set of control planes if needed using `allowed_control_planes` or `allow_all_control_planes`. `ttl` and `negative_ttl` control how long the consumers are kept in memory by a running Gateway. Any `consumer_groups` added to the Realm are automatically applied to all consumers within this Realm. requestBody: $ref: '#/components/requestBodies/CreateConsumerRealm' responses: '201': $ref: '#/components/responses/CreateConsumerRealmResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' tags: - Realms '/v1/realms/{realmId}': parameters: - $ref: '#/components/parameters/realmId' get: x-speakeasy-entity-operation: terraform-resource: Realm#read terraform-datasource: null operationId: get-realm summary: Get a realm description: 'Fetch the details of a specific realm, identified by its UUID' responses: '200': description: success content: application/json: schema: $ref: '#/components/schemas/ConsumerRealm' tags: - Realms patch: x-speakeasy-entity-operation: terraform-resource: Realm#update terraform-datasource: null operationId: update-realm summary: Update a realm description: | Update a realm's details. Any consumers already cached in a running Gateway will not be affected body the changes to the Realm until `ttl` minutes have passed. requestBody: $ref: '#/components/requestBodies/UpdateConsumerRealm' responses: '200': description: success content: application/json: schema: $ref: '#/components/schemas/ConsumerRealm' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' tags: - Realms delete: x-speakeasy-entity-operation: terraform-resource: Realm#delete terraform-datasource: null operationId: delete-realm summary: Delete a realm description: | Delete a Realm, and all consumers and credentials containined within the Realm. Only empty Realms can be deleted, unless you specify `?force=true` as a query string parameter in your request. parameters: - name: force in: query description: | If set to "true", the realm and all consumers and credentials will be deleted when running `terraform destroy`. If set to "false", the realm will not be deleted until all child entities are manually removed. This will IRREVERSIBLY DELETE ALL REGISTERED CONSUMERS AND THEIR CREDENTIALS. Only set to "true" if you want this behavior. schema: type: string default: 'false' enum: - 'true' - 'false' x-speakeasy-name-override: force_destroy responses: '204': description: success '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '404': $ref: '#/components/responses/NotFound' tags: - Realms '/v1/realms/{realmId}/consumers': parameters: - $ref: '#/components/parameters/realmIdForChildren' post: x-speakeasy-entity-operation: terraform-resource: CentralizedConsumer#create terraform-datasource: null operationId: create-consumer-in-realm summary: Create a consumer description: | Create a new consumer in this Realm. It will be available to use for authentication within a few seconds, unless the consumer's username is blocked in the Gateway. If this is the case, the new consumer will be available in `negative_ttl` (see the Realm definition) seconds. requestBody: $ref: '#/components/requestBodies/CreateConsumer' responses: '201': $ref: '#/components/responses/CreateConsumerResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '404': $ref: '#/components/responses/NotFound' tags: - Centrally Managed Consumers '/v1/realms/{realmId}/consumers/{consumerId}': parameters: - $ref: '#/components/parameters/realmIdForChildren' - $ref: '#/components/parameters/consumerId' get: x-speakeasy-entity-operation: terraform-resource: CentralizedConsumer#read terraform-datasource: null operationId: get-consumer-from-realm summary: Get a consumer description: | Get a consumer from the given realm. responses: '200': description: success content: application/json: schema: $ref: '#/components/schemas/CentralizedConsumer' '404': $ref: '#/components/responses/NotFound' tags: - Centrally Managed Consumers patch: x-speakeasy-entity-operation: terraform-resource: CentralizedConsumer#update terraform-datasource: null operationId: update-consumer-in-realm summary: Update a consumer description: | Update a Consumer's details. Any consumers already cached in a running Gateway will not be affected body the changes to the Realm until `ttl` minutes have passed. requestBody: $ref: '#/components/requestBodies/UpdateConsumer' responses: '200': description: success content: application/json: schema: $ref: '#/components/schemas/CentralizedConsumer' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '404': $ref: '#/components/responses/NotFound' tags: - Centrally Managed Consumers delete: x-speakeasy-entity-operation: terraform-resource: CentralizedConsumer#delete terraform-datasource: null operationId: delete-consumer-in-realm summary: Delete a consumer description: | Delete a consumer. This operation removes the consumer from the system, causing all future authentication requests using keys associated with that consumer to fail. However, it does not immediately invalidate any cached keys stored in the gateway's state. These keys may remain usable until the cache expires, based on the TTL (Time-To-Live) configured for the realm. responses: '204': description: success '404': description: not found tags: - Centrally Managed Consumers '/v1/realms/{realmId}/consumers/{consumerId}/keys': parameters: - $ref: '#/components/parameters/realmIdForChildren' - $ref: '#/components/parameters/centralizedConsumerIdForChildren' post: x-speakeasy-entity-operation: terraform-resource: CentralizedConsumerKey#create terraform-datasource: null operationId: create-consumer-key summary: Create a key description: | This operation generates an API key for the specified consumer. The key is returned only at the time of creation and will not be retrievable in any subsequent GET requests on the entity. The API supports two key creation types: `new` and `legacy`. * `new`: The recommended and more efficient option. The API automatically generates the key and returns it during this operation. * `legacy`: Allows you to provide your own secret. This approach has a performance impact when proxying requests, as it involves additional processing and resource usage. Note: Regardless of the type selected, the key is only returned by the API when a key is created. It is not retrievable in the future. requestBody: $ref: '#/components/requestBodies/CreateApiKey' responses: '201': description: success content: application/json: schema: $ref: '#/components/schemas/CreateApiKeyResult' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '404': $ref: '#/components/responses/NotFound' tags: - Centrally Managed Keys '/v1/realms/{realmId}/consumers/{consumerId}/keys/{keyId}': parameters: - $ref: '#/components/parameters/realmIdForChildren' - $ref: '#/components/parameters/centralizedConsumerIdForChildren' - $ref: '#/components/parameters/keyId' get: x-speakeasy-entity-operation: terraform-resource: CentralizedConsumerKey#read terraform-datasource: null operationId: get-consumer-key summary: Get a key description: | Returns the key entity. This operation does **NOT** return the key itself. The key is only available at the time of creation. responses: '200': description: success content: application/json: schema: $ref: '#/components/schemas/ApiKey' '404': $ref: '#/components/responses/NotFound' tags: - Centrally Managed Keys delete: x-speakeasy-entity-operation: terraform-resource: CentralizedConsumerKey#delete terraform-datasource: null operationId: delete-consumer-key summary: Delete a key description: | Delete a key. This operation removes the key from the system, causing all future authentication requests using this key to fail. However, it does not immediately invalidate any cached keys stored in the gateway's state. These keys may remain usable until the cache expires, based on the TTL (Time-To-Live) configured for the realm. responses: '204': description: success '404': description: not found tags: - Centrally Managed Keys /v2/api-products: post: x-speakeasy-entity-operation: terraform-resource: ApiProduct#create terraform-datasource: null operationId: create-api-product summary: Create API Product description: | An API Product packages together associated APIs and their operations, backed by thorough documentation, with the objective of making API consumption straightforward for developers. requestBody: $ref: '#/components/requestBodies/CreateAPIProductRequest' responses: '201': $ref: '#/components/responses/APIProductResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ApiProductUnauthorized' '403': $ref: '#/components/responses/Forbidden' '415': $ref: '#/components/responses/UnsupportedMediaType' tags: - API Products '/v2/api-products/{apiProductId}/documents': parameters: - name: apiProductId in: path description: The API product identifier required: true schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a post: x-speakeasy-entity-operation: terraform-resource: APIProductDocument#create terraform-datasource: null operationId: create-api-product-document summary: Create API Product Document description: Creates a document for an API product. requestBody: $ref: '#/components/requestBodies/CreateAPIProductDocumentRequest' responses: '201': $ref: '#/components/responses/APIProductDocumentResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ApiProductUnauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/ApiProductNotFound' '409': $ref: '#/components/responses/SlugConflict' '415': $ref: '#/components/responses/UnsupportedMediaType' tags: - API Product Documentation '/v2/api-products/{apiProductId}/documents/{id}': parameters: - name: apiProductId in: path description: The API product identifier required: true schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a - name: id in: path description: The document identifier related to the API product required: true schema: type: string format: uuid example: de5c9818-be5c-42e6-b514-e3d4bc30ddeb get: x-speakeasy-entity-operation: terraform-resource: APIProductDocument#read terraform-datasource: null operationId: get-api-product-document summary: Get an API Product Document description: Returns a document for the API product. responses: '200': $ref: '#/components/responses/APIProductDocumentResponse' '401': $ref: '#/components/responses/ApiProductUnauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/ApiProductNotFound' tags: - API Product Documentation patch: x-speakeasy-entity-operation: terraform-resource: APIProductDocument#update terraform-datasource: null operationId: update-api-product-document summary: Update an API Product Document description: Updates a document for an API product. requestBody: $ref: '#/components/requestBodies/UpdateAPIProductDocumentRequest' responses: '200': $ref: '#/components/responses/APIProductDocumentResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ApiProductUnauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/ApiProductNotFound' '409': $ref: '#/components/responses/SlugConflict' '415': $ref: '#/components/responses/UnsupportedMediaType' tags: - API Product Documentation delete: x-speakeasy-entity-operation: terraform-resource: APIProductDocument#delete terraform-datasource: null operationId: delete-api-product-document summary: Delete API Product Documentation description: Removes a document from an API product. responses: '204': description: Document for the API product was deleted successfully. '401': $ref: '#/components/responses/ApiProductUnauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/ApiProductNotFound' tags: - API Product Documentation '/v2/api-products/{apiProductId}/product-versions': parameters: - name: apiProductId in: path description: The API Product ID required: true schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a post: x-speakeasy-entity-operation: terraform-resource: ApiProductVersion#create terraform-datasource: null operationId: create-api-product-version summary: Create API Product Version description: Creates a version of an API product. requestBody: $ref: '#/components/requestBodies/CreateAPIProductVersionRequest' responses: '201': $ref: '#/components/responses/APIProductVersionResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ApiProductUnauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/ApiProductNotFound' '409': $ref: '#/components/responses/ApiProductImplementationConflict' '415': $ref: '#/components/responses/UnsupportedMediaType' tags: - API Product Versions '/v2/api-products/{apiProductId}/product-versions/{apiProductVersionId}/specifications': parameters: - name: apiProductId in: path description: The API product identifier required: true schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a - name: apiProductVersionId in: path description: The API product version identifier required: true schema: type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 post: x-speakeasy-entity-operation: terraform-resource: APIProductSpecification#create terraform-datasource: null operationId: create-api-product-version-spec summary: Create API Product Version Specification description: | Creates a specification for a version of an API product. **Note:** You can only have one specification for a product version. requestBody: $ref: '#/components/requestBodies/CreateAPIProductVersionSpecRequest' responses: '201': $ref: '#/components/responses/APIProductVersionSpecResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ApiProductUnauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/ApiProductNotFound' '409': $ref: '#/components/responses/VersionSpecConflict' '415': $ref: '#/components/responses/UnsupportedMediaType' tags: - API Product Version Specification '/v2/api-products/{apiProductId}/product-versions/{apiProductVersionId}/specifications/{specificationId}': parameters: - name: apiProductId in: path description: The API product identifier required: true schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a - name: apiProductVersionId in: path description: The API product version identifier required: true schema: type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 - name: specificationId in: path description: The API product version specification identifier required: true schema: type: string format: uuid example: 742ff9f1-fb89-4aeb-a599-f0e278c7aeaa x-speakeasy-match: id get: x-speakeasy-entity-operation: terraform-resource: APIProductSpecification#read terraform-datasource: null operationId: get-api-product-version-spec summary: Get an API Product Version Specification description: Returns a specification for the version of an API product. responses: '200': $ref: '#/components/responses/APIProductVersionSpecResponse' '401': $ref: '#/components/responses/ApiProductUnauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/ApiProductNotFound' tags: - API Product Version Specification patch: x-speakeasy-entity-operation: terraform-resource: APIProductSpecification#update terraform-datasource: null operationId: update-api-product-version-spec summary: Update an API Product Version Specification description: Updates a specification from an API product version. requestBody: $ref: '#/components/requestBodies/UpdateAPIProductVersionSpecRequest' responses: '200': $ref: '#/components/responses/APIProductVersionSpecResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ApiProductUnauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/ApiProductNotFound' '409': $ref: '#/components/responses/VersionSpecHiddenConflict' '415': $ref: '#/components/responses/UnsupportedMediaType' tags: - API Product Version Specification delete: x-speakeasy-entity-operation: terraform-resource: APIProductSpecification#delete terraform-datasource: null operationId: delete-api-product-version-spec summary: Delete API Product Version Specification description: Removes a specification from a verion of an API product. responses: '204': description: Specification for the version of an API product was deleted successfully. '401': $ref: '#/components/responses/ApiProductUnauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/ApiProductNotFound' tags: - API Product Version Specification '/v2/api-products/{apiProductId}/product-versions/{id}': parameters: - name: apiProductId in: path description: The API product identifier required: true schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a - name: id in: path description: The API product version identifier required: true schema: type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 get: x-speakeasy-entity-operation: terraform-resource: ApiProductVersion#read terraform-datasource: null operationId: get-api-product-version summary: Get an API Product Version description: Returns a version of an API product. responses: '200': $ref: '#/components/responses/APIProductVersionResponse' '401': $ref: '#/components/responses/ApiProductUnauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/ApiProductNotFound' tags: - API Product Versions patch: x-speakeasy-entity-operation: terraform-resource: ApiProductVersion#update terraform-datasource: null operationId: update-api-product-version summary: Update an API Product Version description: Updates an API product version. requestBody: $ref: '#/components/requestBodies/UpdateAPIProductVersionRequest' responses: '200': $ref: '#/components/responses/APIProductVersionResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ApiProductUnauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/ApiProductNotFound' '409': $ref: '#/components/responses/ApiProductImplementationConflict' '415': $ref: '#/components/responses/UnsupportedMediaType' tags: - API Product Versions delete: x-speakeasy-entity-operation: terraform-resource: ApiProductVersion#delete terraform-datasource: null operationId: delete-api-product-version summary: Delete API Product Version description: Removes an API product version. responses: '204': description: API product version was deleted successfully. '401': $ref: '#/components/responses/ApiProductUnauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/ApiProductNotFound' tags: - API Product Versions '/v2/api-products/{id}': parameters: - name: id in: path description: API product identifier required: true schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a get: x-speakeasy-entity-operation: terraform-resource: ApiProduct#read terraform-datasource: null operationId: get-api-product summary: Get an API product description: Returns an API product. responses: '200': $ref: '#/components/responses/APIProductResponse' '401': $ref: '#/components/responses/ApiProductUnauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/ApiProductNotFound' tags: - API Products patch: x-speakeasy-entity-operation: terraform-resource: ApiProduct#update terraform-datasource: null operationId: update-api-product summary: Update an individual API product description: Updates an API product. requestBody: $ref: '#/components/requestBodies/UpdateAPIProductRequest' responses: '200': $ref: '#/components/responses/APIProductResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ApiProductUnauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/ApiProductNotFound' '415': $ref: '#/components/responses/UnsupportedMediaType' tags: - API Products delete: x-speakeasy-entity-operation: terraform-resource: ApiProduct#delete terraform-datasource: null operationId: delete-api-product summary: Delete API Product description: Removes an individual API product. responses: '204': description: API product was deleted successfully. '401': $ref: '#/components/responses/ApiProductUnauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/ApiProductNotFound' tags: - API Products /v2/application-auth-strategies: post: x-speakeasy-entity-operation: terraform-resource: ApplicationAuthStrategy#create terraform-datasource: null operationId: create-app-auth-strategy summary: Create App Auth Strategy description: Creates an application auth strategy. requestBody: $ref: '#/components/requestBodies/CreateAppAuthStrategy' responses: '201': $ref: '#/components/responses/CreateAppAuthStrategy' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - App Auth Strategies '/v2/application-auth-strategies/{authStrategyId}': parameters: - $ref: '#/components/parameters/AuthStrategyId' get: x-speakeasy-entity-operation: terraform-resource: ApplicationAuthStrategy#read terraform-datasource: null operationId: get-app-auth-strategy summary: Get App Auth Strategy description: Returns an application auth strategy. responses: '200': $ref: '#/components/responses/GetAppAuthStrategy' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - App Auth Strategies patch: x-speakeasy-entity-operation: terraform-resource: ApplicationAuthStrategy#update terraform-datasource: null operationId: update-app-auth-strategy summary: Update App Auth Strategy description: Updates an application auth strategy. requestBody: $ref: '#/components/requestBodies/UpdateAppAuthStrategy' responses: '200': $ref: '#/components/responses/UpdateAppAuthStrategy' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - App Auth Strategies delete: x-speakeasy-entity-operation: terraform-resource: ApplicationAuthStrategy#delete terraform-datasource: null operationId: delete-app-auth-strategy summary: Delete App Auth Strategy description: Deletes an application auth strategy. An application auth strategy can be deleted ONLY if it's not used by any product version within any portal regardless of their publication statuses. If an application auth strategy is still in use the request will result in an HTTP 409 CONFLICT. responses: '204': description: No Content. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' tags: - App Auth Strategies /v2/audit-log-destinations: post: x-speakeasy-entity-operation: terraform-resource: AuditLogDestination#create terraform-datasource: null operationId: create-audit-log-destination summary: Create Audit Log Destination description: Creates a configuration for the audit log destination. requestBody: $ref: '#/components/requestBodies/CreateAuditLogDestination' responses: '201': $ref: '#/components/responses/AuditLogDestinationSingle' '400': $ref: '#/components/responses/AuditLogDestinationBadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Audit Logs '/v2/audit-log-destinations/{auditLogDestinationId}': parameters: - $ref: '#/components/parameters/AuditLogDestinationId' get: x-speakeasy-entity-operation: terraform-resource: AuditLogDestination#read terraform-datasource: null operationId: get-audit-log-destination summary: Get Audit Log Destination description: Returns configuration for the audit log destination. responses: '200': $ref: '#/components/responses/AuditLogDestinationSingle' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Audit Logs patch: x-speakeasy-entity-operation: terraform-resource: AuditLogDestination#update terraform-datasource: null operationId: update-audit-log-destination summary: Update Audit Log Destination description: Updates configuration for the audit log destination. requestBody: $ref: '#/components/requestBodies/UpdateAuditLogDestination' responses: '200': $ref: '#/components/responses/AuditLogDestinationSingle' '400': $ref: '#/components/responses/AuditLogDestinationBadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Audit Logs delete: x-speakeasy-entity-operation: terraform-resource: AuditLogDestination#delete terraform-datasource: null operationId: delete-audit-log-destination summary: Delete Audit Log Destination description: Deletes configuration for the audit log destination. responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' tags: - Audit Logs /v2/audit-log-webhook: patch: x-speakeasy-entity-operation: terraform-resource: - AuditLog#create - AuditLog#update terraform-datasource: null operationId: update-audit-log-webhook summary: Update Audit Log Webhook description: Updates the configuration for a webhook to receive audit logs. requestBody: $ref: '#/components/requestBodies/UpdateAuditLogWebhook' responses: '200': $ref: '#/components/responses/AuditLogWebhook' '400': $ref: '#/components/responses/WebhookBadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Audit Logs get: x-speakeasy-entity-operation: terraform-resource: AuditLog#read terraform-datasource: null operationId: get-audit-log-webhook summary: Get Audit Log Webhook description: Returns configuration for the audit log webhook. responses: '200': $ref: '#/components/responses/AuditLogWebhook' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Audit Logs /v2/cloud-gateways/add-ons: post: x-speakeasy-entity-operation: terraform-resource: CloudGatewayAddon#create operationId: create-add-on summary: Create Add-On description: | Creates a new add-on for a control plane or control plane group. The add-on type is determined by the `config.kind` field — currently only `managed-cache.v0` is supported, which provisions a Redis-compatible cache co-located with your data planes. After it's created, the add-on transitions through `initializing → ready` as it deploys across data plane groups. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateAddOnRequest' responses: '201': $ref: '#/components/responses/CreateAddOnResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': description: Unauthorized content: application/problem+json: schema: $ref: '#/components/schemas/UnauthorizedError' '403': description: Forbidden content: application/problem+json: schema: $ref: '#/components/schemas/ForbiddenError' '404': description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/NotFoundError' '409': description: Conflict content: application/problem+json: schema: $ref: '#/components/schemas/ConflictError' servers: - url: 'https://global.api.konghq.com/' tags: - Add-Ons x-speakeasy-group: CloudGateways '/v2/cloud-gateways/add-ons/{addOnId}': get: x-speakeasy-entity-operation: terraform-resource: CloudGatewayAddon#read operationId: get-add-on summary: Get Add-On description: 'Retrieves a single add-on by ID, including its current lifecycle state and per data plane group deployment status.' parameters: - $ref: '#/components/parameters/AddOnId' responses: '200': $ref: '#/components/responses/RetrieveAddOnResponse' '401': description: Unauthorized content: application/problem+json: schema: $ref: '#/components/schemas/UnauthorizedError' '403': description: Forbidden content: application/problem+json: schema: $ref: '#/components/schemas/ForbiddenError' '404': description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/NotFoundError' servers: - url: 'https://global.api.konghq.com/' tags: - Add-Ons x-speakeasy-group: CloudGateways delete: x-speakeasy-entity-operation: terraform-resource: CloudGatewayAddon#delete terraform-datasource: null operationId: delete-add-on summary: Delete Add-On description: | Deletes an add-on by ID. The request is rejected if any Kong plugins are still referencing the managed cache add-on — remove those plugin references before deleting. parameters: - $ref: '#/components/parameters/AddOnId' responses: '204': description: No Content '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': description: Unauthorized content: application/problem+json: schema: $ref: '#/components/schemas/UnauthorizedError' '403': description: Forbidden content: application/problem+json: schema: $ref: '#/components/schemas/ForbiddenError' '404': description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/NotFoundError' servers: - url: 'https://global.api.konghq.com/' tags: - Add-Ons x-speakeasy-group: CloudGateways patch: x-speakeasy-entity-operation: terraform-resource: CloudGatewayAddon#update terraform-datasource: null operationId: update-add-on summary: Update Add-On description: | Updates the configuration of an existing add-on, such as changing the managed cache capacity tier. Tier upgrades are supported; downgrades are not. parameters: - $ref: '#/components/parameters/AddOnId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateAddOnRequest' responses: '200': $ref: '#/components/responses/UpdateAddOnResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': description: Unauthorized content: application/problem+json: schema: $ref: '#/components/schemas/UnauthorizedError' '403': description: Forbidden content: application/problem+json: schema: $ref: '#/components/schemas/ForbiddenError' '404': description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/NotFoundError' servers: - url: 'https://global.api.konghq.com/' tags: - Add-Ons x-speakeasy-group: CloudGateways /v2/cloud-gateways/configurations: put: x-speakeasy-entity-operation: terraform-resource: 'CloudGatewayConfiguration#create,update' terraform-datasource: null operationId: create-configuration summary: Create Configuration description: | Creates or replaces the Cloud Gateway configuration for a control plane and geo. The request fully describes the desired state — Kong diffs it against the current configuration, then adds, removes, or updates data plane groups to match. Any network referenced in the request that is currently `offline` automatically transitions to `initializing`. Use `kind: dedicated.v0` (default) for dedicated Cloud Gateways — `version`, `cloud_gateway_network_id`, and `autoscale` are required. Use `kind: serverless.v1` for serverless Cloud Gateways — those three fields must be omitted. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateConfigurationRequest' responses: '200': $ref: '#/components/responses/CreateConfigurationResponse' '400': $ref: '#/components/responses/CloudGatewaysBadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/CloudGatewaysForbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/CloudGatewaysConflict' servers: - url: 'https://global.api.konghq.com/' tags: - Data-Plane Group Configurations x-speakeasy-group: CloudGateways '/v2/cloud-gateways/configurations/{configurationId}': get: x-speakeasy-entity-operation: terraform-resource: CloudGatewayConfiguration#get terraform-datasource: null operationId: get-configuration summary: Get Configuration description: | Retrieves a single Cloud Gateway configuration by ID, including the current state of each deployed data plane group. Access is restricted to control planes the caller has permission to read. parameters: - $ref: '#/components/parameters/ConfigurationId' responses: '200': $ref: '#/components/responses/RetrieveConfigurationResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Data-Plane Group Configurations x-speakeasy-group: CloudGateways /v2/cloud-gateways/custom-domains: post: x-speakeasy-entity-operation: terraform-resource: CloudGatewayCustomDomain#create terraform-datasource: null operationId: create-custom-domains summary: Create Custom Domain description: | Registers a custom domain for a control plane. After creation, Konnect provisions a TLS certificate and configures SNI routing, transitioning the domain through `initializing → ready`. To complete setup, configure two CNAME records at your DNS registrar: one pointing your domain to the Konnect gateway hostname, and one pointing `_acme-challenge.` to the ACME challenge hostname provided by Konnect. Use the online-status endpoint to verify both records are correctly configured. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateCustomDomainRequest' responses: '201': $ref: '#/components/responses/CreateCustomDomainResponse' '400': $ref: '#/components/responses/CloudGatewaysBadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' servers: - url: 'https://global.api.konghq.com/' tags: - Custom Domains x-speakeasy-group: CloudGateways '/v2/cloud-gateways/custom-domains/{customDomainId}': get: x-speakeasy-entity-operation: terraform-resource: CloudGatewayCustomDomain#read terraform-datasource: null operationId: get-custom-domain summary: Get Custom Domain description: 'Retrieves a single custom domain by ID, including its current lifecycle state and any error metadata.' parameters: - $ref: '#/components/parameters/CustomDomainId' responses: '200': $ref: '#/components/responses/RetrieveCustomDomainResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Custom Domains x-speakeasy-group: CloudGateways delete: x-speakeasy-entity-operation: terraform-resource: CloudGatewayCustomDomain#delete terraform-datasource: null operationId: delete-custom-domain summary: Delete Custom Domain description: 'Deletes a custom domain by ID, removing the associated TLS certificate and SNI configuration from the control plane''s data planes.' parameters: - $ref: '#/components/parameters/CustomDomainId' responses: '204': description: No Content '400': $ref: '#/components/responses/CloudGatewaysBadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Custom Domains x-speakeasy-group: CloudGateways x-speakeasy-retries: strategy: backoff backoff: initialInterval: 10000 maxInterval: 60000 maxElapsedTime: 1800000 exponent: 1.5 statusCodes: - 400 retryConnectionErrors: false /v2/cloud-gateways/networks: get: x-speakeasy-entity-operation: terraform-resource: null terraform-datasource: CloudGatewayNetwork#read operationId: list-networks summary: List Networks description: | Returns a paginated list of Cloud Gateway networks visible to the caller. Filter by `state` to narrow results — for example, poll for `state=ready` to find networks available for data plane group configurations. parameters: - $ref: '#/components/parameters/NetworksFilter' - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' responses: '200': $ref: '#/components/responses/ListNetworksResponse' '400': $ref: '#/components/responses/CloudGatewaysBadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' servers: - url: 'https://global.api.konghq.com/' tags: - Networks x-speakeasy-group: CloudGateways post: x-speakeasy-entity-operation: terraform-resource: CloudGatewayNetwork#create terraform-datasource: null operationId: create-network summary: Create Network description: | Creates a new Cloud Gateway network in the specified provider account and region. Network creation is asynchronous — the network starts in `initializing` state and transitions to `ready` once provisioned. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateNetworkRequest' responses: '201': $ref: '#/components/responses/CreateNetworkResponse' '400': $ref: '#/components/responses/CloudGatewaysBadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/CloudGatewaysForbidden' '409': $ref: '#/components/responses/Conflict' servers: - url: 'https://global.api.konghq.com/' tags: - Networks x-speakeasy-group: CloudGateways '/v2/cloud-gateways/networks/{networkId}': get: x-speakeasy-entity-operation: terraform-resource: CloudGatewayNetwork#read terraform-datasource: null operationId: get-network summary: Get Network description: 'Retrieves a Cloud Gateway network by ID, including its current state and provider metadata.' parameters: - $ref: '#/components/parameters/NetworkId' responses: '200': $ref: '#/components/responses/RetrieveNetworkResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Networks x-speakeasy-group: CloudGateways patch: x-speakeasy-entity-operation: terraform-resource: CloudGatewayNetwork#update terraform-datasource: null operationId: update-network summary: Update Network description: Updates a Cloud Gateway network by ID. You can also rename the network. parameters: - $ref: '#/components/parameters/NetworkId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PatchNetworkRequest' responses: '200': $ref: '#/components/responses/PatchNetworkResponse' '400': $ref: '#/components/responses/CloudGatewaysBadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/CloudGatewaysForbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' servers: - url: 'https://global.api.konghq.com/' tags: - Networks x-speakeasy-group: CloudGateways delete: x-speakeasy-entity-operation: terraform-resource: CloudGatewayNetwork#delete terraform-datasource: null operationId: delete-network summary: Delete Network description: Deletes a Cloud Gateway network by ID. The network cannot be referenced by any active configuration before it can be deleted. parameters: - $ref: '#/components/parameters/NetworkId' responses: '204': description: No Content '400': $ref: '#/components/responses/CloudGatewaysBadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Networks x-speakeasy-group: CloudGateways x-speakeasy-retries: strategy: backoff backoff: initialInterval: 10000 maxInterval: 60000 maxElapsedTime: 1800000 exponent: 1.5 statusCodes: - 400 retryConnectionErrors: false '/v2/cloud-gateways/networks/{networkId}/private-dns': post: x-speakeasy-entity-operation: terraform-resource: CloudGatewayPrivateDns#create terraform-datasource: null operationId: create-private-dns summary: Create Private DNS description: | Creates a new private DNS attachment for a given network. The attachment type is determined by `private_dns_attachment_config.kind`. Supported types: `aws-private-hosted-zone-attachment`, `aws-outbound-resolver`, `gcp-private-hosted-zone-attachment`, `azure-private-hosted-zone-attachment`, and `azure-outbound-resolver`. parameters: - name: networkId in: path description: The network to operate on. required: true schema: $ref: '#/components/schemas/NetworkId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreatePrivateDnsRequest' responses: '201': $ref: '#/components/responses/CreatePrivateDnsResponse' '400': $ref: '#/components/responses/CloudGatewaysBadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' servers: - url: 'https://global.api.konghq.com/' tags: - Private DNS x-speakeasy-group: CloudGateways x-speakeasy-retries: strategy: backoff backoff: initialInterval: 30000 maxInterval: 60000 maxElapsedTime: 3600000 exponent: 1.5 statusCodes: - 400 retryConnectionErrors: false '/v2/cloud-gateways/networks/{networkId}/private-dns/{privateDnsId}': get: x-speakeasy-entity-operation: terraform-resource: CloudGatewayPrivateDns#read terraform-datasource: null operationId: get-private-dns summary: Get Private DNS description: 'Retrieves a private DNS attachment by ID, including its current state and attachment configuration.' parameters: - name: networkId in: path description: The network to operate on. required: true schema: $ref: '#/components/schemas/NetworkId' - $ref: '#/components/parameters/PrivateDnsId' responses: '200': $ref: '#/components/responses/RetrievePrivateDnsResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Private DNS x-speakeasy-group: CloudGateways delete: x-speakeasy-entity-operation: terraform-resource: CloudGatewayPrivateDns#delete terraform-datasource: null operationId: delete-private-dns summary: Delete Private DNS description: | Deletes a Private DNS attachment by ID. The attachment must be in a stable state (`ready` or `error`) before deletion — requests against attachments in a transitional state (`initializing`, `terminating`) will be rejected. parameters: - name: networkId in: path description: The network to operate on. required: true schema: $ref: '#/components/schemas/NetworkId' - $ref: '#/components/parameters/PrivateDnsId' responses: '204': description: No Content '400': $ref: '#/components/responses/CloudGatewaysBadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Private DNS x-speakeasy-group: CloudGateways x-speakeasy-retries: strategy: backoff backoff: initialInterval: 10000 maxInterval: 60000 maxElapsedTime: 1800000 exponent: 1.5 statusCodes: - 400 retryConnectionErrors: false '/v2/cloud-gateways/networks/{networkId}/transit-gateways': post: x-speakeasy-entity-operation: terraform-resource: CloudGatewayTransitGateway#create terraform-datasource: null operationId: create-transit-gateway summary: Create Transit Gateway description: | Creates a new transit gateway attachment for a given network. The attachment type is determined by the `transit_gateway_attachment_config.kind` field. Supported types: `aws-transit-gateway-attachment`, `aws-vpc-peering-attachment`, `aws-resource-endpoint-attachment`, `azure-vnet-peering-attachment`, `azure-vhub-peering-attachment`, and `gcp-vpc-peering-attachment`. Creation is asynchronous — the transit gateway starts in `initializing` state and transitions to `ready` once provisioned. parameters: - name: networkId in: path description: The network to operate on. required: true schema: $ref: '#/components/schemas/NetworkId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateTransitGatewayRequest' responses: '201': $ref: '#/components/responses/CreateTransitGatewayResponse' '400': $ref: '#/components/responses/CloudGatewaysBadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' servers: - url: 'https://global.api.konghq.com/' tags: - Transit Gateways x-speakeasy-group: CloudGateways x-speakeasy-retries: strategy: backoff backoff: initialInterval: 30000 maxInterval: 60000 maxElapsedTime: 3600000 exponent: 1.5 statusCodes: - 400 retryConnectionErrors: false '/v2/cloud-gateways/networks/{networkId}/transit-gateways/{transitGatewayId}': get: x-speakeasy-entity-operation: terraform-resource: CloudGatewayTransitGateway#read terraform-datasource: null operationId: get-transit-gateway summary: Get Transit Gateway description: 'Retrieves a transit gateway by ID, including its current state and attachment configuration.' parameters: - name: networkId in: path description: The network to operate on. required: true schema: $ref: '#/components/schemas/NetworkId' x-speakeasy-param-force-new: true - $ref: '#/components/parameters/TransitGatewayId' responses: '200': $ref: '#/components/responses/RetrieveTransitGatewayResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Transit Gateways x-speakeasy-group: CloudGateways patch: x-speakeasy-entity-operation: terraform-resource: CloudGatewayTransitGateway#update terraform-datasource: null operationId: update-transit-gateway summary: Update Transit Gateway description: | Updates a transit gateway by ID. Supports updating CIDR blocks on an AWS Transit Gateway, or updating the resource endpoint configuration on an AWS Resource Endpoint gateway. parameters: - name: networkId in: path description: The network to operate on. required: true schema: $ref: '#/components/schemas/NetworkId' x-speakeasy-param-force-new: true - $ref: '#/components/parameters/TransitGatewayId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PatchTransitGatewayRequest' responses: '200': $ref: '#/components/responses/PatchTransitGatewayResponse' '400': $ref: '#/components/responses/CloudGatewaysBadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' servers: - url: 'https://global.api.konghq.com/' tags: - Transit Gateways x-speakeasy-group: CloudGateways delete: x-speakeasy-entity-operation: terraform-resource: CloudGatewayTransitGateway#delete terraform-datasource: null operationId: delete-transit-gateway summary: Delete Transit Gateway description: Deletes a transit gateway by ID. The transit gateway must be in a non-transitional state before deletion. parameters: - name: networkId in: path description: The network to operate on. required: true schema: $ref: '#/components/schemas/NetworkId' x-speakeasy-param-force-new: true - $ref: '#/components/parameters/TransitGatewayId' responses: '204': description: No Content '400': $ref: '#/components/responses/CloudGatewaysBadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Transit Gateways x-speakeasy-group: CloudGateways x-speakeasy-retries: strategy: backoff backoff: initialInterval: 10000 maxInterval: 60000 maxElapsedTime: 1800000 exponent: 1.5 statusCodes: - 400 retryConnectionErrors: false /v2/cloud-gateways/provider-accounts: get: x-speakeasy-entity-operation: CloudGatewayProviderAccountList#read operationId: list-provider-accounts summary: List Provider Accounts description: Returns a paginated list of provider accounts linked to the organization. Filter by cloud provider to see accounts for a specific CSP. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' responses: '200': $ref: '#/components/responses/ListProviderAccountsResponse' '400': $ref: '#/components/responses/CloudGatewaysBadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' servers: - url: 'https://global.api.konghq.com/' tags: - Provider Accounts x-speakeasy-group: CloudGateways x-speakeasy-pagination: type: offsetLimit inputs: - name: 'page[number]' in: parameters type: page - name: 'page[size]' in: parameters type: limit outputs: results: $.data numPages: $.meta.page.total /v2/control-planes: get: x-speakeasy-entity-operation: terraform-resource: null terraform-datasource: - GatewayControlPlaneList#read operationId: list-control-planes summary: List Control Planes description: Returns an array of control plane objects containing information about the Konnect Control Planes. parameters: - name: 'page[size]' in: query description: The maximum number of items to include per page. The last page of a collection may include fewer items. required: true schema: type: integer const: 100 - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/ControlPlaneFilter' - $ref: '#/components/parameters/FilterByLabels' - $ref: '#/components/parameters/ControlPlaneSort' responses: '200': $ref: '#/components/responses/ListControlPlanesResponse' '400': $ref: '#/components/responses/ControlPlanesBadRequest' '401': $ref: '#/components/responses/ControlPlaneUnauthenticated' '403': $ref: '#/components/responses/ControlPlanePermissionDenied' '500': $ref: '#/components/responses/Internal' '503': $ref: '#/components/responses/ServiceUnavailable' tags: - Control Planes x-speakeasy-pagination: type: offsetLimit inputs: - name: 'page[number]' in: parameters type: page - name: 'page[size]' in: parameters type: limit outputs: results: $.data numPages: $.meta.page.total post: x-speakeasy-entity-operation: terraform-resource: GatewayControlPlane#create terraform-datasource: null operationId: create-control-plane summary: Create Control Plane description: Create a control plane in the Konnect Organization. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateControlPlaneRequest' responses: '201': $ref: '#/components/responses/CreateControlPlaneResponse' '400': $ref: '#/components/responses/ControlPlanesBadRequest' '401': $ref: '#/components/responses/ControlPlaneUnauthenticated' '403': $ref: '#/components/responses/ControlPlanePermissionDenied' '409': $ref: '#/components/responses/ControlPlaneConflict' '500': $ref: '#/components/responses/InternalServerError' '503': $ref: '#/components/responses/ServiceUnavailable' tags: - Control Planes '/v2/control-planes/{controlPlaneId}': parameters: - name: controlPlaneId in: path description: The control plane ID required: true schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a x-speakeasy-match: id get: x-speakeasy-entity-operation: terraform-resource: GatewayControlPlane#read terraform-datasource: null operationId: get-control-plane summary: Get a Control Plane description: Returns information about an individual control plane. responses: '200': $ref: '#/components/responses/RetrieveControlPlaneResponse' '400': $ref: '#/components/responses/ControlPlanesBadRequest' '401': $ref: '#/components/responses/ControlPlaneUnauthenticated' '403': $ref: '#/components/responses/ControlPlanePermissionDenied' '404': $ref: '#/components/responses/ControlPlaneNotFound' '500': $ref: '#/components/responses/Internal' '503': $ref: '#/components/responses/ServiceUnavailable' tags: - Control Planes patch: x-speakeasy-entity-operation: terraform-resource: GatewayControlPlane#update terraform-datasource: null operationId: update-control-plane summary: Update Control Plane description: Update an individual control plane. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateControlPlaneRequest' responses: '200': $ref: '#/components/responses/UpdateControlPlaneResponse' '400': $ref: '#/components/responses/ControlPlanesBadRequest' '401': $ref: '#/components/responses/ControlPlaneUnauthenticated' '403': $ref: '#/components/responses/ControlPlanePermissionDenied' '404': $ref: '#/components/responses/ControlPlaneNotFound' '500': $ref: '#/components/responses/InternalServerError' '503': $ref: '#/components/responses/ServiceUnavailable' tags: - Control Planes delete: x-speakeasy-entity-operation: terraform-resource: GatewayControlPlane#delete terraform-datasource: null operationId: delete-control-plane summary: Delete Control Plane description: Delete an individual control plane. responses: '204': description: No Content '400': $ref: '#/components/responses/ControlPlanesBadRequest' '401': $ref: '#/components/responses/ControlPlaneUnauthenticated' '403': $ref: '#/components/responses/ControlPlanePermissionDenied' '404': $ref: '#/components/responses/ControlPlaneNotFound' '500': $ref: '#/components/responses/InternalServerError' '503': $ref: '#/components/responses/ServiceUnavailable' tags: - Control Planes '/v2/control-planes/{controlPlaneId}/config-stores': post: x-speakeasy-entity-operation: terraform-resource: GatewayConfigStore#create terraform-datasource: null operationId: create-config-store summary: Create Config Store description: Create a Config Store parameters: - $ref: '#/components/parameters/controlPlaneId' requestBody: $ref: '#/components/requestBodies/CreateConfigStoreRequest' responses: '201': $ref: '#/components/responses/ConfigStoreResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ConfigStoreUnauthorized' '403': $ref: '#/components/responses/Forbidden' '415': $ref: '#/components/responses/UnsupportedMediaType' tags: - Config Stores '/v2/control-planes/{controlPlaneId}/config-stores/{configStoreId}': parameters: - $ref: '#/components/parameters/controlPlaneId' - $ref: '#/components/parameters/configStoreId' get: x-speakeasy-entity-operation: terraform-resource: GatewayConfigStore#read terraform-datasource: null operationId: get-config-store summary: Get a Config Store description: Returns a Config Store responses: '200': $ref: '#/components/responses/ConfigStoreResponse' '401': $ref: '#/components/responses/ConfigStoreUnauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Config Stores put: x-speakeasy-entity-operation: terraform-resource: GatewayConfigStore#update terraform-datasource: null operationId: update-config-store summary: Update an individual Config Store description: Updates a Config Store requestBody: $ref: '#/components/requestBodies/UpdateConfigStoreRequest' responses: '200': $ref: '#/components/responses/ConfigStoreResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ConfigStoreUnauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/ConfigStoreNotFound' '415': $ref: '#/components/responses/UnsupportedMediaType' tags: - Config Stores delete: x-speakeasy-entity-operation: terraform-resource: GatewayConfigStore#delete terraform-datasource: null operationId: delete-config-store summary: Delete Config Store description: Removes a config store parameters: - name: force in: query description: '[Overlay change] Always cascade delete when being managed with declarative configuation' required: true schema: type: string const: 'true' responses: '204': description: Config Store was deleted successfully. '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ConfigStoreUnauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Config Stores '/v2/control-planes/{controlPlaneId}/config-stores/{configStoreId}/secrets': parameters: - $ref: '#/components/parameters/controlPlaneId' - $ref: '#/components/parameters/configStoreIdForSecret' post: x-speakeasy-entity-operation: GatewayConfigStoreSecret#create operationId: create-config-store-secret summary: Create Config Store Secret description: Creates a secret for a Config Store. requestBody: $ref: '#/components/requestBodies/CreateConfigStoreSecretRequest' responses: '201': $ref: '#/components/responses/ConfigStoreSecretResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ConfigStoreSecretUnauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/ConfigStoreSecretNotFound' '415': $ref: '#/components/responses/UnsupportedMediaType' tags: - Config Store Secrets '/v2/control-planes/{controlPlaneId}/config-stores/{configStoreId}/secrets/{key}': parameters: - $ref: '#/components/parameters/controlPlaneId' - $ref: '#/components/parameters/configStoreIdForSecret' - name: key in: path description: Config Store Secret key required: true schema: type: string example: ConfigStoreSecretKey get: x-speakeasy-entity-operation: terraform-resource: GatewayConfigStoreSecret#read terraform-datasource: null operationId: get-config-store-secret summary: Get a Config Store Secret description: Returns the secret entity for the Config Store. Secret values once stored cannot be retrieved. responses: '200': $ref: '#/components/responses/ConfigStoreSecretResponse' '401': $ref: '#/components/responses/ConfigStoreSecretUnauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/ConfigStoreSecretNotFound' tags: - Config Store Secrets put: x-speakeasy-entity-operation: GatewayConfigStoreSecret#update operationId: update-config-store-secret summary: Update Config Store Secret description: Updates a secret for a Config Store. requestBody: $ref: '#/components/requestBodies/UpdateConfigStoreSecretRequest' responses: '200': $ref: '#/components/responses/ConfigStoreSecretResponse' '201': $ref: '#/components/responses/ConfigStoreSecretResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ConfigStoreSecretUnauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/ConfigStoreSecretNotFound' '415': $ref: '#/components/responses/UnsupportedMediaType' tags: - Config Store Secrets delete: x-speakeasy-entity-operation: GatewayConfigStoreSecret#delete operationId: delete-config-store-secret summary: Delete Config Store Secret description: Removes a secret from a Config Store. responses: '204': description: Secret for the Config Store was deleted successfully. '401': $ref: '#/components/responses/ConfigStoreSecretUnauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/ConfigStoreSecretNotFound' tags: - Config Store Secrets '/v2/control-planes/{controlPlaneId}/core-entities/ca_certificates': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayCACertificate#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 '/v2/control-planes/{controlPlaneId}/core-entities/ca_certificates/{CACertificateId}': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayCACertificate#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: terraform-datasource: null terraform-resource: GatewayCACertificate#read operationId: get-ca_certificate summary: Get 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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayCACertificate#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 '/v2/control-planes/{controlPlaneId}/core-entities/certificates': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayCertificate#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/CertificateRequest' responses: '201': description: Successfully created Certificate content: application/json: schema: $ref: '#/components/schemas/Certificate' '401': $ref: '#/components/responses/HTTP401Error' tags: - Certificates '/v2/control-planes/{controlPlaneId}/core-entities/certificates/{CertificateId}': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayCertificate#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: terraform-datasource: null terraform-resource: GatewayCertificate#read operationId: get-certificate summary: Get 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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayCertificate#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/CertificateRequest' responses: '200': description: Successfully upserted Certificate content: application/json: schema: $ref: '#/components/schemas/Certificate' '401': $ref: '#/components/responses/HTTP401Error' tags: - Certificates '/v2/control-planes/{controlPlaneId}/core-entities/cloned-plugins': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayClonedPlugin#create operationId: create-cloned-plugin summary: Create a new Cloned Plugin description: Create a new Cloned Plugin requestBody: description: Description of the new Cloned Plugin for creation required: true content: application/json: schema: $ref: '#/components/schemas/ClonedPlugin' responses: '201': description: Successfully created Cloned Plugin content: application/json: schema: $ref: '#/components/schemas/ClonedPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Cloned Plugins '/v2/control-planes/{controlPlaneId}/core-entities/cloned-plugins/{ClonedPluginId}': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayClonedPlugin#delete operationId: delete-cloned-plugin summary: Delete a Cloned Plugin description: Delete a Cloned Plugin parameters: - $ref: '#/components/parameters/ClonedPluginId' responses: '204': description: Successfully deleted Cloned Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' tags: - Cloned Plugins get: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayClonedPlugin#read operationId: get-cloned-plugin summary: Get a Cloned Plugin description: Get a Cloned Plugin using ID or name. responses: '200': description: Successfully fetched Cloned Plugin content: application/json: schema: $ref: '#/components/schemas/ClonedPlugin' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - Cloned Plugins parameters: - $ref: '#/components/parameters/ClonedPluginId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayClonedPlugin#update operationId: upsert-cloned-plugin summary: Upsert a Cloned Plugin description: Create or Update Cloned Plugin using ID or name. requestBody: description: Description of the Cloned Plugin required: true content: application/json: schema: $ref: '#/components/schemas/ClonedPlugin' responses: '200': description: Successfully upserted Cloned Plugin content: application/json: schema: $ref: '#/components/schemas/ClonedPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Cloned Plugins '/v2/control-planes/{controlPlaneId}/core-entities/consumer_groups': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayConsumerGroup#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 '/v2/control-planes/{controlPlaneId}/core-entities/consumer_groups/{ConsumerGroupId}': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayConsumerGroup#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: terraform-datasource: null terraform-resource: GatewayConsumerGroup#read operationId: get-consumer_group summary: Get a Consumer Group description: Get a Consumer Group using ID. parameters: - $ref: '#/components/parameters/ListConsumers' 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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayConsumerGroup#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 '/v2/control-planes/{controlPlaneId}/core-entities/consumer_groups/{ConsumerGroupId}/consumers': parameters: - $ref: '#/components/parameters/ConsumerGroupIdManageConsumers' - $ref: '#/components/parameters/controlPlaneId' 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 default: null nullable: true x-speakeasy-name-override: consumer_id x-speakeasy-param-computed: false responses: '201': description: Consumer added to group tags: - Consumer Groups '/v2/control-planes/{controlPlaneId}/core-entities/consumer_groups/{ConsumerGroupId}/consumers/{ConsumerId}': 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: ConsumerId in: path required: true schema: type: string x-speakeasy-name-override: consumer_id - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/consumers': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayConsumer#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 '/v2/control-planes/{controlPlaneId}/core-entities/consumers/{ConsumerId}': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayConsumer#delete operationId: delete-consumer summary: Delete a Consumer description: Delete a Consumer parameters: - $ref: '#/components/parameters/ConsumerId' responses: '204': description: Successfully deleted Consumer or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' tags: - Consumers get: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayConsumer#read operationId: get-consumer summary: Get 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/ConsumerId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayConsumer#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 '/v2/control-planes/{controlPlaneId}/core-entities/consumers/{ConsumerIdForNestedEntities}/acls': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayACL#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 '/v2/control-planes/{controlPlaneId}/core-entities/consumers/{ConsumerIdForNestedEntities}/acls/{ACLId}': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayACL#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: terraform-datasource: null terraform-resource: GatewayACL#read operationId: get-acl-with-consumer summary: Get 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 parameters: - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/consumers/{ConsumerIdForNestedEntities}/basic-auth': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayBasicAuth#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 '/v2/control-planes/{controlPlaneId}/core-entities/consumers/{ConsumerIdForNestedEntities}/basic-auth/{BasicAuthId}': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayBasicAuth#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: terraform-datasource: null terraform-resource: GatewayBasicAuth#read operationId: get-basic-auth-with-consumer summary: Get 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 parameters: - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/consumers/{ConsumerIdForNestedEntities}/hmac-auth': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayHMACAuth#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 '/v2/control-planes/{controlPlaneId}/core-entities/consumers/{ConsumerIdForNestedEntities}/hmac-auth/{HMACAuthId}': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayHMACAuth#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: terraform-datasource: null terraform-resource: GatewayHMACAuth#read operationId: get-hmac-auth-with-consumer summary: Get 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 parameters: - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/consumers/{ConsumerIdForNestedEntities}/jwt': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayJWT#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 content: application/json: schema: $ref: '#/components/schemas/JWTWithoutParents' responses: '201': description: Successfully created JWT content: application/json: schema: $ref: '#/components/schemas/JWT' tags: - JWTs '/v2/control-planes/{controlPlaneId}/core-entities/consumers/{ConsumerIdForNestedEntities}/jwt/{JWTId}': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayJWT#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: terraform-datasource: null terraform-resource: GatewayJWT#read operationId: get-jwt-with-consumer summary: Get 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 parameters: - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/consumers/{ConsumerIdForNestedEntities}/key-auth': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayKeyAuth#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 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 '/v2/control-planes/{controlPlaneId}/core-entities/consumers/{ConsumerIdForNestedEntities}/key-auth/{KeyAuthId}': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayKeyAuth#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: terraform-datasource: null terraform-resource: GatewayKeyAuth#read operationId: get-key-auth-with-consumer summary: Get 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 parameters: - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/consumers/{ConsumerIdForNestedEntities}/mtls-auth': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayMTLSAuth#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 '/v2/control-planes/{controlPlaneId}/core-entities/consumers/{ConsumerIdForNestedEntities}/mtls-auth/{MTLSAuthId}': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayMTLSAuth#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: terraform-datasource: null terraform-resource: GatewayMTLSAuth#read operationId: get-mtls-auth-with-consumer summary: Get 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 parameters: - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/custom-plugins': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayCustomPluginStreaming#create operationId: create-custom-plugin summary: Create a new CustomPlugin description: Create a new CustomPlugin requestBody: description: Description of the new CustomPlugin for creation required: true content: application/json: schema: $ref: '#/components/schemas/CustomPlugin' responses: '201': description: Successfully created CustomPlugin content: application/json: schema: $ref: '#/components/schemas/CustomPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - CustomPlugins '/v2/control-planes/{controlPlaneId}/core-entities/custom-plugins/{CustomPluginId}': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayCustomPluginStreaming#delete operationId: delete-custom-plugin summary: Delete a CustomPlugin description: Delete a CustomPlugin parameters: - $ref: '#/components/parameters/CustomPluginId' responses: '204': description: Successfully deleted CustomPlugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' tags: - CustomPlugins get: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayCustomPluginStreaming#read operationId: get-custom-plugin summary: Get a CustomPlugin description: Get a CustomPlugin using ID or name. responses: '200': description: Successfully fetched CustomPlugin content: application/json: schema: $ref: '#/components/schemas/CustomPlugin' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - CustomPlugins parameters: - $ref: '#/components/parameters/CustomPluginId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayCustomPluginStreaming#update operationId: upsert-custom-plugin summary: Upsert a CustomPlugin description: Create or Update CustomPlugin using ID or name. requestBody: description: Description of the CustomPlugin required: true content: application/json: schema: $ref: '#/components/schemas/CustomPlugin' responses: '200': description: Successfully upserted CustomPlugin content: application/json: schema: $ref: '#/components/schemas/CustomPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - CustomPlugins '/v2/control-planes/{controlPlaneId}/core-entities/graphql-rate-limiting-advanced/costs/{GraphQLCostDecorationId}': get: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayGraphQLCostDecoration#read operationId: get-graphql-rate-limiting-advanced-cost summary: Get a GraphQL Cost Decoration description: Get a GraphQL Cost Decoration using ID. responses: '200': description: Successfully fetched GraphQL Cost Decoration content: application/json: schema: $ref: '#/components/schemas/GraphQLCostDecoration' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - GraphQL Cost Decorations parameters: - $ref: '#/components/parameters/GraphQLCostDecorationId' - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/key-sets': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayKeySet#create operationId: create-key-set summary: Create a new KeySet description: Create a new KeySet requestBody: description: Description of the new KeySet for creation 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 '/v2/control-planes/{controlPlaneId}/core-entities/key-sets/{KeySetId}': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayKeySet#delete operationId: delete-key-set summary: Delete a KeySet description: Delete a KeySet parameters: - $ref: '#/components/parameters/KeySetId' responses: '204': description: Successfully deleted KeySet or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' tags: - KeySets get: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayKeySet#read operationId: get-key-set summary: Get 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/KeySetId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayKeySet#update operationId: upsert-key-set summary: Upsert a KeySet description: Create or Update KeySet using ID or name. requestBody: description: Description of the KeySet 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 '/v2/control-planes/{controlPlaneId}/core-entities/keys': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayKey#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 '/v2/control-planes/{controlPlaneId}/core-entities/keys/{KeyId}': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayKey#delete operationId: delete-key summary: Delete a Key description: Delete a Key parameters: - $ref: '#/components/parameters/KeyId' responses: '204': description: Successfully deleted Key or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' tags: - Keys get: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayKey#read operationId: get-key summary: Get 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/KeyId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayKey#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 '/v2/control-planes/{controlPlaneId}/core-entities/partials': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPartial#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 '/v2/control-planes/{controlPlaneId}/core-entities/partials/{PartialId}': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPartial#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-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPartial#read operationId: get-partial summary: Get 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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPartial#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugin-schemas': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-resource: GatewayCustomPluginSchema#create terraform-datasource: null operationId: create-plugin-schemas summary: Upload custom plugin schema description: Upload a custom plugin schema associated with a control plane. requestBody: $ref: '#/components/requestBodies/create-plugin-schemas' responses: '201': $ref: '#/components/responses/plugin-schemas' '400': $ref: '#/components/responses/KonnectCPLegacyBadRequest' '401': $ref: '#/components/responses/KonnectCPLegacyUnauthorized' '403': $ref: '#/components/responses/KonnectCPLegacyForbidden' '409': $ref: '#/components/responses/KonnectCPLegacyConflict' tags: - Custom Plugin Schemas '/v2/control-planes/{controlPlaneId}/core-entities/plugin-schemas/{name}': parameters: - $ref: '#/components/parameters/controlPlaneId' - name: name in: path description: The custom plugin name required: true schema: type: string example: myplugin get: x-speakeasy-entity-operation: terraform-resource: GatewayCustomPluginSchema#read terraform-datasource: null operationId: get-plugin-schema summary: Get a custom plugin schema description: Returns information about a custom plugin from a given name. responses: '200': $ref: '#/components/responses/plugin-schemas' '401': $ref: '#/components/responses/KonnectCPLegacyUnauthorized' '403': $ref: '#/components/responses/KonnectCPLegacyForbidden' '404': $ref: '#/components/responses/KonnectCPLegacyNotFound' tags: - Custom Plugin Schemas delete: x-speakeasy-entity-operation: terraform-resource: GatewayCustomPluginSchema#delete terraform-datasource: null operationId: delete-plugin-schemas summary: Delete custom plugin schema description: Delete an individual custom plugin schema. responses: '204': description: No Content '401': $ref: '#/components/responses/KonnectCPLegacyUnauthorized' '403': $ref: '#/components/responses/KonnectCPLegacyForbidden' '404': $ref: '#/components/responses/KonnectCPLegacyNotFound' tags: - Custom Plugin Schemas put: x-speakeasy-entity-operation: terraform-resource: GatewayCustomPluginSchema#update terraform-datasource: null operationId: update-plugin-schemas summary: Create or update a custom plugin schema description: Create or update an individual custom plugin schema. requestBody: $ref: '#/components/requestBodies/create-plugin-schemas' responses: '200': $ref: '#/components/responses/plugin-schemas' '400': $ref: '#/components/responses/KonnectCPLegacyBadRequest' '401': $ref: '#/components/responses/KonnectCPLegacyUnauthorized' '403': $ref: '#/components/responses/KonnectCPLegacyForbidden' '404': $ref: '#/components/responses/KonnectCPLegacyNotFound' tags: - Custom Plugin Schemas '/v2/control-planes/{controlPlaneId}/core-entities/plugins': parameters: - $ref: '#/components/parameters/controlPlaneId' post: operationId: create-plugin summary: Create a new Plugin description: Create a new Plugin requestBody: description: Description of the new Plugin for creation required: true content: application/json: schema: $ref: '#/components/schemas/Plugin' responses: '201': description: Successfully created Plugin content: application/json: schema: $ref: '#/components/schemas/Plugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}': delete: operationId: delete-plugin summary: Delete a Plugin description: Delete a Plugin parameters: - $ref: '#/components/parameters/PluginId' responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins get: operationId: get-plugin summary: Get a Plugin description: Get a Plugin using ID. parameters: - $ref: '#/components/parameters/ExpandPartials' responses: '200': description: Successfully fetched Plugin content: application/json: schema: $ref: '#/components/schemas/Plugin' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - Plugins parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/controlPlaneId' put: operationId: upsert-plugin summary: Upsert a Plugin description: Create or Update Plugin using ID. requestBody: description: Description of the Plugin required: true content: application/json: schema: $ref: '#/components/schemas/Plugin' responses: '200': description: Successfully upserted Plugin content: application/json: schema: $ref: '#/components/schemas/Plugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#Ace': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAce#delete operationId: delete-ace-plugin summary: Delete a Ace plugin description: Delete a Ace 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: terraform-datasource: null terraform-resource: GatewayPluginAce#read operationId: get-ace-plugin summary: Get a Ace plugin description: Get a Ace plugin responses: '200': description: Ace plugin content: application/json: schema: $ref: '#/components/schemas/AcePlugin' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - Plugins parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAce#update operationId: update-ace-plugin summary: Update a Ace plugin description: Update a Ace plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AcePlugin' responses: '200': description: Ace plugin content: application/json: schema: $ref: '#/components/schemas/AcePlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#ACL': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginACL#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: terraform-datasource: null terraform-resource: GatewayPluginACL#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginACL#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#Acme': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAcme#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: terraform-datasource: null terraform-resource: GatewayPluginAcme#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAcme#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#AiA2aProxy': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiA2aProxy#delete operationId: delete-aia2aproxy-plugin summary: Delete a AiA2aProxy plugin description: Delete a AiA2aProxy 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: terraform-datasource: null terraform-resource: GatewayPluginAiA2aProxy#read operationId: get-aia2aproxy-plugin summary: Get a AiA2aProxy plugin description: Get a AiA2aProxy plugin responses: '200': description: AiA2aProxy plugin content: application/json: schema: $ref: '#/components/schemas/AiA2aProxyPlugin' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - Plugins parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiA2aProxy#update operationId: update-aia2aproxy-plugin summary: Update a AiA2aProxy plugin description: Update a AiA2aProxy plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AiA2aProxyPlugin' responses: '200': description: AiA2aProxy plugin content: application/json: schema: $ref: '#/components/schemas/AiA2aProxyPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#AiAwsGuardrails': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiAwsGuardrails#delete operationId: delete-aiawsguardrails-plugin summary: Delete a AiAwsGuardrails plugin description: Delete a AiAwsGuardrails 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: terraform-datasource: null terraform-resource: GatewayPluginAiAwsGuardrails#read operationId: get-aiawsguardrails-plugin summary: Get a AiAwsGuardrails plugin description: Get a AiAwsGuardrails plugin responses: '200': description: AiAwsGuardrails plugin content: application/json: schema: $ref: '#/components/schemas/AiAwsGuardrailsPlugin' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - Plugins parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiAwsGuardrails#update operationId: update-aiawsguardrails-plugin summary: Update a AiAwsGuardrails plugin description: Update a AiAwsGuardrails plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AiAwsGuardrailsPlugin' responses: '200': description: AiAwsGuardrails plugin content: application/json: schema: $ref: '#/components/schemas/AiAwsGuardrailsPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#AiAzureContentSafety': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiAzureContentSafety#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: terraform-datasource: null terraform-resource: GatewayPluginAiAzureContentSafety#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiAzureContentSafety#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#AiCustomGuardrail': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiCustomGuardrail#delete operationId: delete-aicustomguardrail-plugin summary: Delete a AiCustomGuardrail plugin description: Delete a AiCustomGuardrail 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: terraform-datasource: null terraform-resource: GatewayPluginAiCustomGuardrail#read operationId: get-aicustomguardrail-plugin summary: Get a AiCustomGuardrail plugin description: Get a AiCustomGuardrail plugin responses: '200': description: AiCustomGuardrail plugin content: application/json: schema: $ref: '#/components/schemas/AiCustomGuardrailPlugin' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - Plugins parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiCustomGuardrail#update operationId: update-aicustomguardrail-plugin summary: Update a AiCustomGuardrail plugin description: Update a AiCustomGuardrail plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AiCustomGuardrailPlugin' responses: '200': description: AiCustomGuardrail plugin content: application/json: schema: $ref: '#/components/schemas/AiCustomGuardrailPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#AiGcpModelArmor': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiGcpModelArmor#delete operationId: delete-aigcpmodelarmor-plugin summary: Delete a AiGcpModelArmor plugin description: Delete a AiGcpModelArmor 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: terraform-datasource: null terraform-resource: GatewayPluginAiGcpModelArmor#read operationId: get-aigcpmodelarmor-plugin summary: Get a AiGcpModelArmor plugin description: Get a AiGcpModelArmor plugin responses: '200': description: AiGcpModelArmor plugin content: application/json: schema: $ref: '#/components/schemas/AiGcpModelArmorPlugin' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - Plugins parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiGcpModelArmor#update operationId: update-aigcpmodelarmor-plugin summary: Update a AiGcpModelArmor plugin description: Update a AiGcpModelArmor plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AiGcpModelArmorPlugin' responses: '200': description: AiGcpModelArmor plugin content: application/json: schema: $ref: '#/components/schemas/AiGcpModelArmorPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#AiLakeraGuard': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiLakeraGuard#delete operationId: delete-ailakeraguard-plugin summary: Delete a AiLakeraGuard plugin description: Delete a AiLakeraGuard 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: terraform-datasource: null terraform-resource: GatewayPluginAiLakeraGuard#read operationId: get-ailakeraguard-plugin summary: Get a AiLakeraGuard plugin description: Get a AiLakeraGuard plugin responses: '200': description: AiLakeraGuard plugin content: application/json: schema: $ref: '#/components/schemas/AiLakeraGuardPlugin' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - Plugins parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiLakeraGuard#update operationId: update-ailakeraguard-plugin summary: Update a AiLakeraGuard plugin description: Update a AiLakeraGuard plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AiLakeraGuardPlugin' responses: '200': description: AiLakeraGuard plugin content: application/json: schema: $ref: '#/components/schemas/AiLakeraGuardPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#AiLlmAsJudge': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiLlmAsJudge#delete operationId: delete-aillmasjudge-plugin summary: Delete a AiLlmAsJudge plugin description: Delete a AiLlmAsJudge 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: terraform-datasource: null terraform-resource: GatewayPluginAiLlmAsJudge#read operationId: get-aillmasjudge-plugin summary: Get a AiLlmAsJudge plugin description: Get a AiLlmAsJudge plugin responses: '200': description: AiLlmAsJudge plugin content: application/json: schema: $ref: '#/components/schemas/AiLlmAsJudgePlugin' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - Plugins parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiLlmAsJudge#update operationId: update-aillmasjudge-plugin summary: Update a AiLlmAsJudge plugin description: Update a AiLlmAsJudge plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AiLlmAsJudgePlugin' responses: '200': description: AiLlmAsJudge plugin content: application/json: schema: $ref: '#/components/schemas/AiLlmAsJudgePlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#AiMcpOauth2': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiMcpOauth2#delete operationId: delete-aimcpoauth2-plugin summary: Delete a AiMcpOauth2 plugin description: Delete a AiMcpOauth2 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: terraform-datasource: null terraform-resource: GatewayPluginAiMcpOauth2#read operationId: get-aimcpoauth2-plugin summary: Get a AiMcpOauth2 plugin description: Get a AiMcpOauth2 plugin responses: '200': description: AiMcpOauth2 plugin content: application/json: schema: $ref: '#/components/schemas/AiMcpOauth2Plugin' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - Plugins parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiMcpOauth2#update operationId: update-aimcpoauth2-plugin summary: Update a AiMcpOauth2 plugin description: Update a AiMcpOauth2 plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AiMcpOauth2Plugin' responses: '200': description: AiMcpOauth2 plugin content: application/json: schema: $ref: '#/components/schemas/AiMcpOauth2Plugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#AiMcpProxy': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiMcpProxy#delete operationId: delete-aimcpproxy-plugin summary: Delete a AiMcpProxy plugin description: Delete a AiMcpProxy 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: terraform-datasource: null terraform-resource: GatewayPluginAiMcpProxy#read operationId: get-aimcpproxy-plugin summary: Get a AiMcpProxy plugin description: Get a AiMcpProxy plugin responses: '200': description: AiMcpProxy plugin content: application/json: schema: $ref: '#/components/schemas/AiMcpProxyPlugin' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - Plugins parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiMcpProxy#update operationId: update-aimcpproxy-plugin summary: Update a AiMcpProxy plugin description: Update a AiMcpProxy plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AiMcpProxyPlugin' responses: '200': description: AiMcpProxy plugin content: application/json: schema: $ref: '#/components/schemas/AiMcpProxyPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#AiPromptCompressor': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiPromptCompressor#delete operationId: delete-aipromptcompressor-plugin summary: Delete a AiPromptCompressor plugin description: Delete a AiPromptCompressor 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: terraform-datasource: null terraform-resource: GatewayPluginAiPromptCompressor#read operationId: get-aipromptcompressor-plugin summary: Get a AiPromptCompressor plugin description: Get a AiPromptCompressor plugin responses: '200': description: AiPromptCompressor plugin content: application/json: schema: $ref: '#/components/schemas/AiPromptCompressorPlugin' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - Plugins parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiPromptCompressor#update operationId: update-aipromptcompressor-plugin summary: Update a AiPromptCompressor plugin description: Update a AiPromptCompressor plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AiPromptCompressorPlugin' responses: '200': description: AiPromptCompressor plugin content: application/json: schema: $ref: '#/components/schemas/AiPromptCompressorPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#AiPromptDecorator': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiPromptDecorator#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: terraform-datasource: null terraform-resource: GatewayPluginAiPromptDecorator#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiPromptDecorator#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#AiPromptGuard': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiPromptGuard#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: terraform-datasource: null terraform-resource: GatewayPluginAiPromptGuard#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiPromptGuard#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#AiPromptTemplate': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiPromptTemplate#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: terraform-datasource: null terraform-resource: GatewayPluginAiPromptTemplate#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiPromptTemplate#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#AiProxy': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiProxy#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: terraform-datasource: null terraform-resource: GatewayPluginAiProxy#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiProxy#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#AiProxyAdvanced': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiProxyAdvanced#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: terraform-datasource: null terraform-resource: GatewayPluginAiProxyAdvanced#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiProxyAdvanced#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#AiRagInjector': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiRagInjector#delete operationId: delete-airaginjector-plugin summary: Delete a AiRagInjector plugin description: Delete a AiRagInjector 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: terraform-datasource: null terraform-resource: GatewayPluginAiRagInjector#read operationId: get-airaginjector-plugin summary: Get a AiRagInjector plugin description: Get a AiRagInjector plugin responses: '200': description: AiRagInjector plugin content: application/json: schema: $ref: '#/components/schemas/AiRagInjectorPlugin' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - Plugins parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiRagInjector#update operationId: update-airaginjector-plugin summary: Update a AiRagInjector plugin description: Update a AiRagInjector plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AiRagInjectorPlugin' responses: '200': description: AiRagInjector plugin content: application/json: schema: $ref: '#/components/schemas/AiRagInjectorPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#AiRateLimitingAdvanced': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiRateLimitingAdvanced#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: terraform-datasource: null terraform-resource: GatewayPluginAiRateLimitingAdvanced#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiRateLimitingAdvanced#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#AiRequestTransformer': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiRequestTransformer#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: terraform-datasource: null terraform-resource: GatewayPluginAiRequestTransformer#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiRequestTransformer#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#AiResponseTransformer': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiResponseTransformer#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: terraform-datasource: null terraform-resource: GatewayPluginAiResponseTransformer#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiResponseTransformer#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#AiSanitizer': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiSanitizer#delete operationId: delete-aisanitizer-plugin summary: Delete a AiSanitizer plugin description: Delete a AiSanitizer 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: terraform-datasource: null terraform-resource: GatewayPluginAiSanitizer#read operationId: get-aisanitizer-plugin summary: Get a AiSanitizer plugin description: Get a AiSanitizer plugin responses: '200': description: AiSanitizer plugin content: application/json: schema: $ref: '#/components/schemas/AiSanitizerPlugin' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - Plugins parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiSanitizer#update operationId: update-aisanitizer-plugin summary: Update a AiSanitizer plugin description: Update a AiSanitizer plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AiSanitizerPlugin' responses: '200': description: AiSanitizer plugin content: application/json: schema: $ref: '#/components/schemas/AiSanitizerPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#AiSemanticCache': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiSemanticCache#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: terraform-datasource: null terraform-resource: GatewayPluginAiSemanticCache#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiSemanticCache#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#AiSemanticPromptGuard': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiSemanticPromptGuard#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: terraform-datasource: null terraform-resource: GatewayPluginAiSemanticPromptGuard#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiSemanticPromptGuard#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#AiSemanticResponseGuard': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiSemanticResponseGuard#delete operationId: delete-aisemanticresponseguard-plugin summary: Delete a AiSemanticResponseGuard plugin description: Delete a AiSemanticResponseGuard 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: terraform-datasource: null terraform-resource: GatewayPluginAiSemanticResponseGuard#read operationId: get-aisemanticresponseguard-plugin summary: Get a AiSemanticResponseGuard plugin description: Get a AiSemanticResponseGuard plugin responses: '200': description: AiSemanticResponseGuard plugin content: application/json: schema: $ref: '#/components/schemas/AiSemanticResponseGuardPlugin' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - Plugins parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiSemanticResponseGuard#update operationId: update-aisemanticresponseguard-plugin summary: Update a AiSemanticResponseGuard plugin description: Update a AiSemanticResponseGuard plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AiSemanticResponseGuardPlugin' responses: '200': description: AiSemanticResponseGuard plugin content: application/json: schema: $ref: '#/components/schemas/AiSemanticResponseGuardPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#AppDynamics': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAppDynamics#delete operationId: delete-appdynamics-plugin summary: Delete a AppDynamics plugin description: Delete a AppDynamics 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: terraform-datasource: null terraform-resource: GatewayPluginAppDynamics#read operationId: get-appdynamics-plugin summary: Get a AppDynamics plugin description: Get a AppDynamics plugin responses: '200': description: AppDynamics plugin content: application/json: schema: $ref: '#/components/schemas/AppDynamicsPlugin' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - Plugins parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAppDynamics#update operationId: update-appdynamics-plugin summary: Update a AppDynamics plugin description: Update a AppDynamics plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AppDynamicsPlugin' responses: '200': description: AppDynamics plugin content: application/json: schema: $ref: '#/components/schemas/AppDynamicsPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#AwsLambda': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAwsLambda#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: terraform-datasource: null terraform-resource: GatewayPluginAwsLambda#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAwsLambda#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#AzureFunctions': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAzureFunctions#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: terraform-datasource: null terraform-resource: GatewayPluginAzureFunctions#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAzureFunctions#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#BasicAuth': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginBasicAuth#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: terraform-datasource: null terraform-resource: GatewayPluginBasicAuth#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginBasicAuth#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#BotDetection': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginBotDetection#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: terraform-datasource: null terraform-resource: GatewayPluginBotDetection#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginBotDetection#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#Canary': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginCanary#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: terraform-datasource: null terraform-resource: GatewayPluginCanary#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginCanary#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#Confluent': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginConfluent#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: terraform-datasource: null terraform-resource: GatewayPluginConfluent#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginConfluent#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#ConfluentConsume': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginConfluentConsume#delete operationId: delete-confluentconsume-plugin summary: Delete a ConfluentConsume plugin description: Delete a ConfluentConsume 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: terraform-datasource: null terraform-resource: GatewayPluginConfluentConsume#read operationId: get-confluentconsume-plugin summary: Get a ConfluentConsume plugin description: Get a ConfluentConsume plugin responses: '200': description: ConfluentConsume plugin content: application/json: schema: $ref: '#/components/schemas/ConfluentConsumePlugin' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - Plugins parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginConfluentConsume#update operationId: update-confluentconsume-plugin summary: Update a ConfluentConsume plugin description: Update a ConfluentConsume plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ConfluentConsumePlugin' responses: '200': description: ConfluentConsume plugin content: application/json: schema: $ref: '#/components/schemas/ConfluentConsumePlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#CorrelationId': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginCorrelationId#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: terraform-datasource: null terraform-resource: GatewayPluginCorrelationId#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginCorrelationId#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#Cors': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginCors#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: terraform-datasource: null terraform-resource: GatewayPluginCors#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginCors#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#Datadog': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginDatadog#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: terraform-datasource: null terraform-resource: GatewayPluginDatadog#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginDatadog#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#Datakit': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginDatakit#delete operationId: delete-datakit-plugin summary: Delete a Datakit plugin description: Delete a Datakit 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: terraform-datasource: null terraform-resource: GatewayPluginDatakit#read operationId: get-datakit-plugin summary: Get a Datakit plugin description: Get a Datakit plugin responses: '200': description: Datakit plugin content: application/json: schema: $ref: '#/components/schemas/DatakitPlugin' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - Plugins parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginDatakit#update operationId: update-datakit-plugin summary: Update a Datakit plugin description: Update a Datakit plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DatakitPlugin' responses: '200': description: Datakit plugin content: application/json: schema: $ref: '#/components/schemas/DatakitPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#Degraphql': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginDegraphql#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: terraform-datasource: null terraform-resource: GatewayPluginDegraphql#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginDegraphql#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#ExitTransformer': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginExitTransformer#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: terraform-datasource: null terraform-resource: GatewayPluginExitTransformer#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginExitTransformer#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#FileLog': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginFileLog#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: terraform-datasource: null terraform-resource: GatewayPluginFileLog#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginFileLog#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#ForwardProxy': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginForwardProxy#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: terraform-datasource: null terraform-resource: GatewayPluginForwardProxy#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginForwardProxy#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#GraphqlProxyCacheAdvanced': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginGraphqlProxyCacheAdvanced#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: terraform-datasource: null terraform-resource: GatewayPluginGraphqlProxyCacheAdvanced#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginGraphqlProxyCacheAdvanced#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#GraphqlRateLimitingAdvanced': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginGraphqlRateLimitingAdvanced#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: terraform-datasource: null terraform-resource: GatewayPluginGraphqlRateLimitingAdvanced#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginGraphqlRateLimitingAdvanced#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#GrpcGateway': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginGrpcGateway#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: terraform-datasource: null terraform-resource: GatewayPluginGrpcGateway#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginGrpcGateway#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#GrpcWeb': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginGrpcWeb#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: terraform-datasource: null terraform-resource: GatewayPluginGrpcWeb#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginGrpcWeb#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#HeaderCertAuth': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginHeaderCertAuth#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: terraform-datasource: null terraform-resource: GatewayPluginHeaderCertAuth#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginHeaderCertAuth#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#HmacAuth': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginHmacAuth#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: terraform-datasource: null terraform-resource: GatewayPluginHmacAuth#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginHmacAuth#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#HttpLog': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginHttpLog#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: terraform-datasource: null terraform-resource: GatewayPluginHttpLog#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginHttpLog#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#InjectionProtection': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginInjectionProtection#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: terraform-datasource: null terraform-resource: GatewayPluginInjectionProtection#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginInjectionProtection#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#IpRestriction': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginIpRestriction#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: terraform-datasource: null terraform-resource: GatewayPluginIpRestriction#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginIpRestriction#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#Jq': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginJq#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: terraform-datasource: null terraform-resource: GatewayPluginJq#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginJq#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#JsonThreatProtection': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginJsonThreatProtection#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: terraform-datasource: null terraform-resource: GatewayPluginJsonThreatProtection#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginJsonThreatProtection#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#JweDecrypt': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginJweDecrypt#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: terraform-datasource: null terraform-resource: GatewayPluginJweDecrypt#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginJweDecrypt#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#Jwt': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginJwt#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: terraform-datasource: null terraform-resource: GatewayPluginJwt#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginJwt#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#JwtSigner': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginJwtSigner#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: terraform-datasource: null terraform-resource: GatewayPluginJwtSigner#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginJwtSigner#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#KafkaConsume': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginKafkaConsume#delete operationId: delete-kafkaconsume-plugin summary: Delete a KafkaConsume plugin description: Delete a KafkaConsume 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: terraform-datasource: null terraform-resource: GatewayPluginKafkaConsume#read operationId: get-kafkaconsume-plugin summary: Get a KafkaConsume plugin description: Get a KafkaConsume plugin responses: '200': description: KafkaConsume plugin content: application/json: schema: $ref: '#/components/schemas/KafkaConsumePlugin' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - Plugins parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginKafkaConsume#update operationId: update-kafkaconsume-plugin summary: Update a KafkaConsume plugin description: Update a KafkaConsume plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/KafkaConsumePlugin' responses: '200': description: KafkaConsume plugin content: application/json: schema: $ref: '#/components/schemas/KafkaConsumePlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#KafkaLog': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginKafkaLog#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: terraform-datasource: null terraform-resource: GatewayPluginKafkaLog#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginKafkaLog#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#KafkaUpstream': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginKafkaUpstream#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: terraform-datasource: null terraform-resource: GatewayPluginKafkaUpstream#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginKafkaUpstream#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#KeyAuth': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginKeyAuth#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: terraform-datasource: null terraform-resource: GatewayPluginKeyAuth#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginKeyAuth#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#LdapAuth': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginLdapAuth#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: terraform-datasource: null terraform-resource: GatewayPluginLdapAuth#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginLdapAuth#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#LdapAuthAdvanced': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginLdapAuthAdvanced#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: terraform-datasource: null terraform-resource: GatewayPluginLdapAuthAdvanced#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginLdapAuthAdvanced#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#Loggly': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginLoggly#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: terraform-datasource: null terraform-resource: GatewayPluginLoggly#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginLoggly#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#MeteringAndBilling': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginMeteringAndBilling#delete operationId: delete-meteringandbilling-plugin summary: Delete a MeteringAndBilling plugin description: Delete a MeteringAndBilling 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: terraform-datasource: null terraform-resource: GatewayPluginMeteringAndBilling#read operationId: get-meteringandbilling-plugin summary: Get a MeteringAndBilling plugin description: Get a MeteringAndBilling plugin responses: '200': description: MeteringAndBilling plugin content: application/json: schema: $ref: '#/components/schemas/MeteringAndBillingPlugin' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - Plugins parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginMeteringAndBilling#update operationId: update-meteringandbilling-plugin summary: Update a MeteringAndBilling plugin description: Update a MeteringAndBilling plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MeteringAndBillingPlugin' responses: '200': description: MeteringAndBilling plugin content: application/json: schema: $ref: '#/components/schemas/MeteringAndBillingPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#Mocking': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginMocking#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: terraform-datasource: null terraform-resource: GatewayPluginMocking#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginMocking#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#MtlsAuth': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginMtlsAuth#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: terraform-datasource: null terraform-resource: GatewayPluginMtlsAuth#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginMtlsAuth#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#OasValidation': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginOasValidation#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: terraform-datasource: null terraform-resource: GatewayPluginOasValidation#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginOasValidation#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#Oauth2Introspection': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginOauth2Introspection#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: terraform-datasource: null terraform-resource: GatewayPluginOauth2Introspection#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginOauth2Introspection#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#Opa': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginOpa#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: terraform-datasource: null terraform-resource: GatewayPluginOpa#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginOpa#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#OpenidConnect': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginOpenidConnect#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: terraform-datasource: null terraform-resource: GatewayPluginOpenidConnect#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginOpenidConnect#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#Opentelemetry': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginOpentelemetry#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: terraform-datasource: null terraform-resource: GatewayPluginOpentelemetry#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginOpentelemetry#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#PostFunction': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginPostFunction#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: terraform-datasource: null terraform-resource: GatewayPluginPostFunction#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginPostFunction#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#PreFunction': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginPreFunction#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: terraform-datasource: null terraform-resource: GatewayPluginPreFunction#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginPreFunction#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#Prometheus': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginPrometheus#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: terraform-datasource: null terraform-resource: GatewayPluginPrometheus#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginPrometheus#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#ProxyCache': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginProxyCache#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: terraform-datasource: null terraform-resource: GatewayPluginProxyCache#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginProxyCache#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#ProxyCacheAdvanced': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginProxyCacheAdvanced#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: terraform-datasource: null terraform-resource: GatewayPluginProxyCacheAdvanced#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginProxyCacheAdvanced#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#RateLimiting': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRateLimiting#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: terraform-datasource: null terraform-resource: GatewayPluginRateLimiting#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRateLimiting#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#RateLimitingAdvanced': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRateLimitingAdvanced#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: terraform-datasource: null terraform-resource: GatewayPluginRateLimitingAdvanced#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRateLimitingAdvanced#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#Redirect': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRedirect#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: terraform-datasource: null terraform-resource: GatewayPluginRedirect#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRedirect#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#RequestCallout': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRequestCallout#delete operationId: delete-requestcallout-plugin summary: Delete a RequestCallout plugin description: Delete a RequestCallout 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: terraform-datasource: null terraform-resource: GatewayPluginRequestCallout#read operationId: get-requestcallout-plugin summary: Get a RequestCallout plugin description: Get a RequestCallout plugin responses: '200': description: RequestCallout plugin content: application/json: schema: $ref: '#/components/schemas/RequestCalloutPlugin' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - Plugins parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRequestCallout#update operationId: update-requestcallout-plugin summary: Update a RequestCallout plugin description: Update a RequestCallout plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RequestCalloutPlugin' responses: '200': description: RequestCallout plugin content: application/json: schema: $ref: '#/components/schemas/RequestCalloutPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#RequestSizeLimiting': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRequestSizeLimiting#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: terraform-datasource: null terraform-resource: GatewayPluginRequestSizeLimiting#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRequestSizeLimiting#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#RequestTermination': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRequestTermination#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: terraform-datasource: null terraform-resource: GatewayPluginRequestTermination#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRequestTermination#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#RequestTransformer': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRequestTransformer#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: terraform-datasource: null terraform-resource: GatewayPluginRequestTransformer#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRequestTransformer#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#RequestTransformerAdvanced': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRequestTransformerAdvanced#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: terraform-datasource: null terraform-resource: GatewayPluginRequestTransformerAdvanced#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRequestTransformerAdvanced#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#RequestValidator': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRequestValidator#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: terraform-datasource: null terraform-resource: GatewayPluginRequestValidator#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRequestValidator#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#ResponseRatelimiting': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginResponseRatelimiting#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: terraform-datasource: null terraform-resource: GatewayPluginResponseRatelimiting#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginResponseRatelimiting#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#ResponseTransformer': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginResponseTransformer#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: terraform-datasource: null terraform-resource: GatewayPluginResponseTransformer#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginResponseTransformer#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#ResponseTransformerAdvanced': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginResponseTransformerAdvanced#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: terraform-datasource: null terraform-resource: GatewayPluginResponseTransformerAdvanced#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginResponseTransformerAdvanced#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#RouteByHeader': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRouteByHeader#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: terraform-datasource: null terraform-resource: GatewayPluginRouteByHeader#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRouteByHeader#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#RouteTransformerAdvanced': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRouteTransformerAdvanced#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: terraform-datasource: null terraform-resource: GatewayPluginRouteTransformerAdvanced#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRouteTransformerAdvanced#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#Saml': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginSaml#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: terraform-datasource: null terraform-resource: GatewayPluginSaml#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginSaml#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#ServiceProtection': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginServiceProtection#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: terraform-datasource: null terraform-resource: GatewayPluginServiceProtection#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginServiceProtection#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#Session': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginSession#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: terraform-datasource: null terraform-resource: GatewayPluginSession#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginSession#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#SolaceConsume': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginSolaceConsume#delete operationId: delete-solaceconsume-plugin summary: Delete a SolaceConsume plugin description: Delete a SolaceConsume 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: terraform-datasource: null terraform-resource: GatewayPluginSolaceConsume#read operationId: get-solaceconsume-plugin summary: Get a SolaceConsume plugin description: Get a SolaceConsume plugin responses: '200': description: SolaceConsume plugin content: application/json: schema: $ref: '#/components/schemas/SolaceConsumePlugin' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - Plugins parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginSolaceConsume#update operationId: update-solaceconsume-plugin summary: Update a SolaceConsume plugin description: Update a SolaceConsume plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SolaceConsumePlugin' responses: '200': description: SolaceConsume plugin content: application/json: schema: $ref: '#/components/schemas/SolaceConsumePlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#SolaceLog': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginSolaceLog#delete operationId: delete-solacelog-plugin summary: Delete a SolaceLog plugin description: Delete a SolaceLog 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: terraform-datasource: null terraform-resource: GatewayPluginSolaceLog#read operationId: get-solacelog-plugin summary: Get a SolaceLog plugin description: Get a SolaceLog plugin responses: '200': description: SolaceLog plugin content: application/json: schema: $ref: '#/components/schemas/SolaceLogPlugin' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - Plugins parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginSolaceLog#update operationId: update-solacelog-plugin summary: Update a SolaceLog plugin description: Update a SolaceLog plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SolaceLogPlugin' responses: '200': description: SolaceLog plugin content: application/json: schema: $ref: '#/components/schemas/SolaceLogPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#SolaceUpstream': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginSolaceUpstream#delete operationId: delete-solaceupstream-plugin summary: Delete a SolaceUpstream plugin description: Delete a SolaceUpstream 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: terraform-datasource: null terraform-resource: GatewayPluginSolaceUpstream#read operationId: get-solaceupstream-plugin summary: Get a SolaceUpstream plugin description: Get a SolaceUpstream plugin responses: '200': description: SolaceUpstream plugin content: application/json: schema: $ref: '#/components/schemas/SolaceUpstreamPlugin' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - Plugins parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginSolaceUpstream#update operationId: update-solaceupstream-plugin summary: Update a SolaceUpstream plugin description: Update a SolaceUpstream plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SolaceUpstreamPlugin' responses: '200': description: SolaceUpstream plugin content: application/json: schema: $ref: '#/components/schemas/SolaceUpstreamPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#StandardWebhooks': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginStandardWebhooks#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: terraform-datasource: null terraform-resource: GatewayPluginStandardWebhooks#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginStandardWebhooks#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#Statsd': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginStatsd#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: terraform-datasource: null terraform-resource: GatewayPluginStatsd#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginStatsd#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#StatsdAdvanced': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginStatsdAdvanced#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: terraform-datasource: null terraform-resource: GatewayPluginStatsdAdvanced#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginStatsdAdvanced#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#Syslog': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginSyslog#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: terraform-datasource: null terraform-resource: GatewayPluginSyslog#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginSyslog#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#TcpLog': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginTcpLog#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: terraform-datasource: null terraform-resource: GatewayPluginTcpLog#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginTcpLog#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#TlsHandshakeModifier': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginTlsHandshakeModifier#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: terraform-datasource: null terraform-resource: GatewayPluginTlsHandshakeModifier#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginTlsHandshakeModifier#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#TlsMetadataHeaders': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginTlsMetadataHeaders#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: terraform-datasource: null terraform-resource: GatewayPluginTlsMetadataHeaders#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginTlsMetadataHeaders#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#UdpLog': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginUdpLog#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: terraform-datasource: null terraform-resource: GatewayPluginUdpLog#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginUdpLog#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#UpstreamOauth': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginUpstreamOauth#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: terraform-datasource: null terraform-resource: GatewayPluginUpstreamOauth#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginUpstreamOauth#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#UpstreamTimeout': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginUpstreamTimeout#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: terraform-datasource: null terraform-resource: GatewayPluginUpstreamTimeout#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginUpstreamTimeout#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#VaultAuth': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginVaultAuth#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: terraform-datasource: null terraform-resource: GatewayPluginVaultAuth#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginVaultAuth#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#WebsocketSizeLimit': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginWebsocketSizeLimit#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: terraform-datasource: null terraform-resource: GatewayPluginWebsocketSizeLimit#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginWebsocketSizeLimit#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#WebsocketValidator': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginWebsocketValidator#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: terraform-datasource: null terraform-resource: GatewayPluginWebsocketValidator#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginWebsocketValidator#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#XmlThreatProtection': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginXmlThreatProtection#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: terraform-datasource: null terraform-resource: GatewayPluginXmlThreatProtection#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginXmlThreatProtection#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#Zipkin': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginZipkin#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: terraform-datasource: null terraform-resource: GatewayPluginZipkin#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' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginZipkin#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#Ace': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAce#create operationId: create-ace-plugin summary: Create a Ace plugin description: Create a Ace plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AcePlugin' responses: '201': description: Created Ace plugin content: application/json: schema: $ref: '#/components/schemas/AcePlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins#ACL': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginACL#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#Acme': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAcme#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#AiA2aProxy': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiA2aProxy#create operationId: create-aia2aproxy-plugin summary: Create a AiA2aProxy plugin description: Create a AiA2aProxy plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AiA2aProxyPlugin' responses: '201': description: Created AiA2aProxy plugin content: application/json: schema: $ref: '#/components/schemas/AiA2aProxyPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins#AiAwsGuardrails': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiAwsGuardrails#create operationId: create-aiawsguardrails-plugin summary: Create a AiAwsGuardrails plugin description: Create a AiAwsGuardrails plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AiAwsGuardrailsPlugin' responses: '201': description: Created AiAwsGuardrails plugin content: application/json: schema: $ref: '#/components/schemas/AiAwsGuardrailsPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins#AiAzureContentSafety': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiAzureContentSafety#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#AiCustomGuardrail': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiCustomGuardrail#create operationId: create-aicustomguardrail-plugin summary: Create a AiCustomGuardrail plugin description: Create a AiCustomGuardrail plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AiCustomGuardrailPlugin' responses: '201': description: Created AiCustomGuardrail plugin content: application/json: schema: $ref: '#/components/schemas/AiCustomGuardrailPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins#AiGcpModelArmor': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiGcpModelArmor#create operationId: create-aigcpmodelarmor-plugin summary: Create a AiGcpModelArmor plugin description: Create a AiGcpModelArmor plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AiGcpModelArmorPlugin' responses: '201': description: Created AiGcpModelArmor plugin content: application/json: schema: $ref: '#/components/schemas/AiGcpModelArmorPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins#AiLakeraGuard': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiLakeraGuard#create operationId: create-ailakeraguard-plugin summary: Create a AiLakeraGuard plugin description: Create a AiLakeraGuard plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AiLakeraGuardPlugin' responses: '201': description: Created AiLakeraGuard plugin content: application/json: schema: $ref: '#/components/schemas/AiLakeraGuardPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins#AiLlmAsJudge': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiLlmAsJudge#create operationId: create-aillmasjudge-plugin summary: Create a AiLlmAsJudge plugin description: Create a AiLlmAsJudge plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AiLlmAsJudgePlugin' responses: '201': description: Created AiLlmAsJudge plugin content: application/json: schema: $ref: '#/components/schemas/AiLlmAsJudgePlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins#AiMcpOauth2': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiMcpOauth2#create operationId: create-aimcpoauth2-plugin summary: Create a AiMcpOauth2 plugin description: Create a AiMcpOauth2 plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AiMcpOauth2Plugin' responses: '201': description: Created AiMcpOauth2 plugin content: application/json: schema: $ref: '#/components/schemas/AiMcpOauth2Plugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins#AiMcpProxy': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiMcpProxy#create operationId: create-aimcpproxy-plugin summary: Create a AiMcpProxy plugin description: Create a AiMcpProxy plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AiMcpProxyPlugin' responses: '201': description: Created AiMcpProxy plugin content: application/json: schema: $ref: '#/components/schemas/AiMcpProxyPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins#AiPromptCompressor': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiPromptCompressor#create operationId: create-aipromptcompressor-plugin summary: Create a AiPromptCompressor plugin description: Create a AiPromptCompressor plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AiPromptCompressorPlugin' responses: '201': description: Created AiPromptCompressor plugin content: application/json: schema: $ref: '#/components/schemas/AiPromptCompressorPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins#AiPromptDecorator': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiPromptDecorator#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#AiPromptGuard': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiPromptGuard#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#AiPromptTemplate': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiPromptTemplate#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#AiProxy': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiProxy#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#AiProxyAdvanced': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiProxyAdvanced#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#AiRagInjector': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiRagInjector#create operationId: create-airaginjector-plugin summary: Create a AiRagInjector plugin description: Create a AiRagInjector plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AiRagInjectorPlugin' responses: '201': description: Created AiRagInjector plugin content: application/json: schema: $ref: '#/components/schemas/AiRagInjectorPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins#AiRateLimitingAdvanced': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiRateLimitingAdvanced#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#AiRequestTransformer': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiRequestTransformer#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#AiResponseTransformer': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiResponseTransformer#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#AiSanitizer': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiSanitizer#create operationId: create-aisanitizer-plugin summary: Create a AiSanitizer plugin description: Create a AiSanitizer plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AiSanitizerPlugin' responses: '201': description: Created AiSanitizer plugin content: application/json: schema: $ref: '#/components/schemas/AiSanitizerPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins#AiSemanticCache': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiSemanticCache#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#AiSemanticPromptGuard': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiSemanticPromptGuard#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#AiSemanticResponseGuard': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAiSemanticResponseGuard#create operationId: create-aisemanticresponseguard-plugin summary: Create a AiSemanticResponseGuard plugin description: Create a AiSemanticResponseGuard plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AiSemanticResponseGuardPlugin' responses: '201': description: Created AiSemanticResponseGuard plugin content: application/json: schema: $ref: '#/components/schemas/AiSemanticResponseGuardPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins#AppDynamics': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAppDynamics#create operationId: create-appdynamics-plugin summary: Create a AppDynamics plugin description: Create a AppDynamics plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AppDynamicsPlugin' responses: '201': description: Created AppDynamics plugin content: application/json: schema: $ref: '#/components/schemas/AppDynamicsPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins#AwsLambda': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAwsLambda#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#AzureFunctions': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginAzureFunctions#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#BasicAuth': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginBasicAuth#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#BotDetection': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginBotDetection#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#Canary': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginCanary#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#Confluent': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginConfluent#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#ConfluentConsume': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginConfluentConsume#create operationId: create-confluentconsume-plugin summary: Create a ConfluentConsume plugin description: Create a ConfluentConsume plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ConfluentConsumePlugin' responses: '201': description: Created ConfluentConsume plugin content: application/json: schema: $ref: '#/components/schemas/ConfluentConsumePlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins#CorrelationId': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginCorrelationId#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#Cors': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginCors#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#Datadog': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginDatadog#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#Datakit': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginDatakit#create operationId: create-datakit-plugin summary: Create a Datakit plugin description: Create a Datakit plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DatakitPlugin' responses: '201': description: Created Datakit plugin content: application/json: schema: $ref: '#/components/schemas/DatakitPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins#Degraphql': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginDegraphql#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#ExitTransformer': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginExitTransformer#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#FileLog': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginFileLog#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#ForwardProxy': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginForwardProxy#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#GraphqlProxyCacheAdvanced': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginGraphqlProxyCacheAdvanced#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#GraphqlRateLimitingAdvanced': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginGraphqlRateLimitingAdvanced#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#GrpcGateway': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginGrpcGateway#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#GrpcWeb': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginGrpcWeb#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#HeaderCertAuth': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginHeaderCertAuth#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#HmacAuth': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginHmacAuth#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#HttpLog': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginHttpLog#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#InjectionProtection': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginInjectionProtection#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#IpRestriction': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginIpRestriction#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#Jq': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginJq#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#JsonThreatProtection': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginJsonThreatProtection#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#JweDecrypt': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginJweDecrypt#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#Jwt': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginJwt#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#JwtSigner': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginJwtSigner#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#KafkaConsume': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginKafkaConsume#create operationId: create-kafkaconsume-plugin summary: Create a KafkaConsume plugin description: Create a KafkaConsume plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/KafkaConsumePlugin' responses: '201': description: Created KafkaConsume plugin content: application/json: schema: $ref: '#/components/schemas/KafkaConsumePlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins#KafkaLog': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginKafkaLog#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#KafkaUpstream': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginKafkaUpstream#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#KeyAuth': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginKeyAuth#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#LdapAuth': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginLdapAuth#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#LdapAuthAdvanced': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginLdapAuthAdvanced#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#Loggly': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginLoggly#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#MeteringAndBilling': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginMeteringAndBilling#create operationId: create-meteringandbilling-plugin summary: Create a MeteringAndBilling plugin description: Create a MeteringAndBilling plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MeteringAndBillingPlugin' responses: '201': description: Created MeteringAndBilling plugin content: application/json: schema: $ref: '#/components/schemas/MeteringAndBillingPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins#Mocking': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginMocking#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#MtlsAuth': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginMtlsAuth#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#OasValidation': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginOasValidation#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#Oauth2Introspection': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginOauth2Introspection#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#Opa': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginOpa#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#OpenidConnect': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginOpenidConnect#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#Opentelemetry': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginOpentelemetry#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#PostFunction': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginPostFunction#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#PreFunction': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginPreFunction#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#Prometheus': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginPrometheus#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#ProxyCache': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginProxyCache#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#ProxyCacheAdvanced': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginProxyCacheAdvanced#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#RateLimiting': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRateLimiting#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#RateLimitingAdvanced': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRateLimitingAdvanced#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#Redirect': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRedirect#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#RequestCallout': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRequestCallout#create operationId: create-requestcallout-plugin summary: Create a RequestCallout plugin description: Create a RequestCallout plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RequestCalloutPlugin' responses: '201': description: Created RequestCallout plugin content: application/json: schema: $ref: '#/components/schemas/RequestCalloutPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins#RequestSizeLimiting': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRequestSizeLimiting#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#RequestTermination': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRequestTermination#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#RequestTransformer': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRequestTransformer#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#RequestTransformerAdvanced': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRequestTransformerAdvanced#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#RequestValidator': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRequestValidator#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#ResponseRatelimiting': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginResponseRatelimiting#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#ResponseTransformer': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginResponseTransformer#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#ResponseTransformerAdvanced': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginResponseTransformerAdvanced#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#RouteByHeader': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRouteByHeader#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#RouteTransformerAdvanced': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginRouteTransformerAdvanced#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#Saml': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginSaml#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#ServiceProtection': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginServiceProtection#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#Session': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginSession#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#SolaceConsume': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginSolaceConsume#create operationId: create-solaceconsume-plugin summary: Create a SolaceConsume plugin description: Create a SolaceConsume plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SolaceConsumePlugin' responses: '201': description: Created SolaceConsume plugin content: application/json: schema: $ref: '#/components/schemas/SolaceConsumePlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins#SolaceLog': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginSolaceLog#create operationId: create-solacelog-plugin summary: Create a SolaceLog plugin description: Create a SolaceLog plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SolaceLogPlugin' responses: '201': description: Created SolaceLog plugin content: application/json: schema: $ref: '#/components/schemas/SolaceLogPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins#SolaceUpstream': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginSolaceUpstream#create operationId: create-solaceupstream-plugin summary: Create a SolaceUpstream plugin description: Create a SolaceUpstream plugin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SolaceUpstreamPlugin' responses: '201': description: Created SolaceUpstream plugin content: application/json: schema: $ref: '#/components/schemas/SolaceUpstreamPlugin' '401': $ref: '#/components/responses/HTTP401Error' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/plugins#StandardWebhooks': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginStandardWebhooks#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#Statsd': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginStatsd#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#StatsdAdvanced': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginStatsdAdvanced#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#Syslog': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginSyslog#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#TcpLog': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginTcpLog#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#TlsHandshakeModifier': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginTlsHandshakeModifier#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#TlsMetadataHeaders': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginTlsMetadataHeaders#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#UdpLog': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginUdpLog#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#UpstreamOauth': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginUpstreamOauth#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#UpstreamTimeout': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginUpstreamTimeout#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#VaultAuth': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginVaultAuth#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#WebsocketSizeLimit': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginWebsocketSizeLimit#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#WebsocketValidator': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginWebsocketValidator#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#XmlThreatProtection': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginXmlThreatProtection#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 '/v2/control-planes/{controlPlaneId}/core-entities/plugins#Zipkin': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayPluginZipkin#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 '/v2/control-planes/{controlPlaneId}/core-entities/routes': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayRoute#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 '/v2/control-planes/{controlPlaneId}/core-entities/routes/{RouteId}': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayRoute#delete operationId: delete-route summary: Delete a Route description: Delete a Route parameters: - $ref: '#/components/parameters/RouteId' responses: '204': description: Successfully deleted Route or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' tags: - Routes get: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayRoute#read operationId: get-route summary: Get 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/RouteId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayRoute#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 '/v2/control-planes/{controlPlaneId}/core-entities/routes/{RouteId}#RouteExpression': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayRouteExpression#delete operationId: delete-route-RouteExpression summary: Delete a Route description: Delete a Route parameters: - $ref: '#/components/parameters/RouteId' responses: '204': description: Successfully deleted Route or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' tags: - Routes get: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayRouteExpression#read operationId: get-route-RouteExpression summary: Get 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/RouteId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayRouteExpression#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 '/v2/control-planes/{controlPlaneId}/core-entities/routes#RouteExpression': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayRouteExpression#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 '/v2/control-planes/{controlPlaneId}/core-entities/schemas/plugins/{pluginName}': get: operationId: fetch-plugin-schema summary: Get plugin schema description: Get the schema for a plugin responses: '200': $ref: '#/components/responses/GetPluginSchemaResponse' tags: - Plugins x-keep-sdk: true parameters: - name: pluginName in: path description: The name of the plugin required: true schema: type: string - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/services': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayService#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 '/v2/control-planes/{controlPlaneId}/core-entities/services/{ServiceId}': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayService#delete operationId: delete-service summary: Delete a Service description: Delete a Service parameters: - $ref: '#/components/parameters/ServiceId' responses: '204': description: Successfully deleted Service or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' tags: - Services get: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayService#read operationId: get-service summary: Get 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/ServiceId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayService#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 '/v2/control-planes/{controlPlaneId}/core-entities/snis': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewaySNI#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 '/v2/control-planes/{controlPlaneId}/core-entities/snis/{SNIId}': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewaySNI#delete operationId: delete-sni summary: Delete an SNI description: Delete an SNI parameters: - $ref: '#/components/parameters/SNIId' responses: '204': description: Successfully deleted SNI or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' tags: - SNIs get: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewaySNI#read operationId: get-sni summary: Get 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/SNIId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewaySNI#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 '/v2/control-planes/{controlPlaneId}/core-entities/upstreams': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayUpstream#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 '/v2/control-planes/{controlPlaneId}/core-entities/upstreams/{UpstreamId}': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayUpstream#delete operationId: delete-upstream summary: Delete an Upstream description: Delete an Upstream parameters: - $ref: '#/components/parameters/UpstreamId' responses: '204': description: Successfully deleted Upstream or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' tags: - Upstreams get: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayUpstream#read operationId: get-upstream summary: Get 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/UpstreamId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayUpstream#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 '/v2/control-planes/{controlPlaneId}/core-entities/upstreams/{UpstreamIdForTarget}/targets': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayTarget#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 '/v2/control-planes/{controlPlaneId}/core-entities/upstreams/{UpstreamIdForTarget}/targets/{TargetId}': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayTarget#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/TargetId' responses: '204': description: Successfully deleted Target or the resource didn't exist tags: - Targets get: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayTarget#read operationId: get-target-with-upstream summary: Get 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/TargetId' responses: '200': description: Successfully fetched Target content: application/json: schema: $ref: '#/components/schemas/Target' '404': description: Resource does not exist tags: - Targets parameters: - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/vaults': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayVault#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 '/v2/control-planes/{controlPlaneId}/core-entities/vaults/{VaultId}': delete: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayVault#delete operationId: delete-vault summary: Delete a Vault description: Delete a Vault parameters: - $ref: '#/components/parameters/VaultId' responses: '204': description: Successfully deleted Vault or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' tags: - Vaults get: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayVault#read operationId: get-vault summary: Get 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/VaultId' - $ref: '#/components/parameters/controlPlaneId' put: x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: GatewayVault#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 '/v2/control-planes/{controlPlaneId}/dp-client-certificates': parameters: - $ref: '#/components/parameters/controlPlaneId' post: x-speakeasy-entity-operation: terraform-resource: GatewayDataPlaneClientCertificate#create terraform-datasource: null operationId: create-dataplane-certificate summary: Pin New DP Client Certificate description: Pin a new DP Client Certificate to this control plane. A pinned dataplane certificate allows dataplanes configured with the certificate and corresponding private key to establish connection with this control plane. requestBody: $ref: '#/components/requestBodies/DataPlaneClientCertificateRequest' responses: '201': $ref: '#/components/responses/DataPlaneClientCertificateResponse' '400': $ref: '#/components/responses/KonnectCPLegacyBadRequest' '401': $ref: '#/components/responses/KonnectCPLegacyUnauthorized' '403': $ref: '#/components/responses/KonnectCPLegacyForbidden' '404': $ref: '#/components/responses/KonnectCPLegacyNotFound' tags: - DP Certificates '/v2/control-planes/{controlPlaneId}/dp-client-certificates/{certificateId}': parameters: - $ref: '#/components/parameters/controlPlaneId' - $ref: '#/components/parameters/DataPlaneCertificateId' get: x-speakeasy-entity-operation: terraform-resource: GatewayDataPlaneClientCertificate#read terraform-datasource: null operationId: get-dataplane-certificate summary: Get a DP Client Certificate description: Retrieve a pinned dataplane client certificate associated to this control plane. A pinned dataplane certificate allows dataplanes configured with the certificate and corresponding private key to establish connection with this control plane. responses: '200': $ref: '#/components/responses/DataPlaneClientCertificateResponse' '401': $ref: '#/components/responses/KonnectCPLegacyUnauthorized' '403': $ref: '#/components/responses/KonnectCPLegacyForbidden' '404': $ref: '#/components/responses/KonnectCPLegacyNotFound' tags: - DP Certificates put: x-speakeasy-entity-operation: terraform-resource: GatewayDataPlaneClientCertificate#update terraform-datasource: null operationId: update-dataplane-certificate summary: Update DP Client Certificate description: Update a DP Client Certificate for this control plane. A dataplane certificate allows dataplanes configured with the certificate and corresponding private key to establish connection with this control plane. requestBody: $ref: '#/components/requestBodies/DataPlaneClientCertificateRequest' responses: '200': $ref: '#/components/responses/DataPlaneClientCertificateResponse' '400': $ref: '#/components/responses/KonnectCPLegacyBadRequest' '401': $ref: '#/components/responses/KonnectCPLegacyUnauthorized' '403': $ref: '#/components/responses/KonnectCPLegacyForbidden' '404': $ref: '#/components/responses/KonnectCPLegacyNotFound' tags: - DP Certificates delete: x-speakeasy-entity-operation: terraform-resource: GatewayDataPlaneClientCertificate#delete terraform-datasource: null operationId: delete-dataplane-certificate summary: Delete DP Client Certificate description: Remove a pinned dataplane client certificate associated to this control plane. Removing a pinned dataplane certificate would invalidate any dataplanes currently connected to this control plane using this certificate. responses: '204': description: No Content '401': $ref: '#/components/responses/KonnectCPLegacyUnauthorized' '403': $ref: '#/components/responses/KonnectCPLegacyForbidden' '404': $ref: '#/components/responses/KonnectCPLegacyNotFound' tags: - DP Certificates '/v2/control-planes/{controlPlaneId}/group-memberships/add': parameters: - name: controlPlaneId in: path description: ID of a control plane group required: true schema: type: string x-speakeasy-name-override: id post: x-speakeasy-entity-operation: terraform-resource: GatewayControlPlaneMembership#create terraform-datasource: null operationId: post-control-planes-id-group-memberships-add summary: Add Control Plane Group Members description: Adds one or more control planes as a member of a control plane group. requestBody: $ref: '#/components/requestBodies/GroupMembershipAdd' responses: '204': description: No Content '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/Internal' '503': $ref: '#/components/responses/ServiceUnavailable' tags: - Control Plane Groups '/v2/control-planes/{controlPlaneId}/group-memberships/remove': parameters: - name: controlPlaneId in: path description: ID of a control plane group required: true schema: type: string x-speakeasy-name-override: id post: x-speakeasy-entity-operation: terraform-resource: GatewayControlPlaneMembership#delete terraform-datasource: null operationId: post-control-planes-id-group-memberships-remove summary: Remove Control Plane Group Members description: Removes one or more control planes from the members of a control plane group. requestBody: $ref: '#/components/requestBodies/GroupMembershipRemove' responses: '204': description: No Content '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/Internal' '503': $ref: '#/components/responses/ServiceUnavailable' tags: - Control Plane Groups '/v2/portals/{portalId}/appearance': get: x-speakeasy-entity-operation: terraform-resource: PortalAppearance#read terraform-datasource: null operationId: get-portal-appearance summary: Get Appearance Configuration description: 'Returns the current portal appearance configuration including any custom theme, colors, fonts, and image settings. Portals using the fully-customizable portal client may override or ignore these settings by disregarding them in the code.' parameters: - $ref: '#/components/parameters/PortalId' responses: '200': $ref: '#/components/responses/V2GetPortalAppearance' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Appearance patch: x-speakeasy-entity-operation: terraform-resource: 'PortalAppearance#create,update' terraform-datasource: null operationId: update-portal-appearance summary: Update Appearance Configuration description: 'Updates the current appearance configuration for this portal including setting pre-defined or custom themes, fonts, colors, and images. Note that portals using the fully-customizable portal client may override or ignore these settings by disregarding them in the code.' parameters: - $ref: '#/components/parameters/PortalId' requestBody: $ref: '#/components/requestBodies/V2UpdatePortalAppearance' responses: '200': $ref: '#/components/responses/V2UpdatePortalAppearance' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Appearance '/v2/portals/{portalId}/product-versions/{productVersionId}': parameters: - $ref: '#/components/parameters/V2ProductVersionId' - $ref: '#/components/parameters/PortalId' get: x-speakeasy-entity-operation: terraform-resource: PortalProductVersion#read terraform-datasource: null operationId: get-portal-product-version summary: Get a portal product version description: Get a portal product version responses: '200': $ref: '#/components/responses/V2PortalProductVersion' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Product Versions put: x-speakeasy-entity-operation: terraform-resource: 'PortalProductVersion#create,update' terraform-datasource: null operationId: replace-portal-product-version summary: Replace a portal product version description: Replace a portal product version requestBody: $ref: '#/components/requestBodies/V2ReplacePortalProductVersion' responses: '200': $ref: '#/components/responses/V2PortalProductVersion' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Product Versions delete: x-speakeasy-entity-operation: terraform-resource: PortalProductVersion#delete terraform-datasource: null operationId: delete-portal-product-version summary: Delete a portal product version description: Delete a portal product version responses: '204': description: No Content. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Product Versions '/v2/portals/{portalId}#classic': parameters: - name: portalId in: path description: ID of the portal. required: true schema: type: string format: uuid x-speakeasy-match: id get: x-speakeasy-entity-operation: terraform-resource: PortalClassic#read terraform-datasource: null operationId: get-portal-classic summary: Get Portal description: 'Returns the configuration for a single developer portal. This allows you to understand the current visibility, access, and domain settings.' responses: '200': $ref: '#/components/responses/V2GetPortal' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portals patch: x-speakeasy-entity-operation: terraform-resource: PortalClassic#update terraform-datasource: null operationId: update-portal-classic summary: Update Portal description: 'Updates the configuration for a single portal including the visibility, access, and custom domain settings.' requestBody: $ref: '#/components/requestBodies/V2UpdatePortal' responses: '200': $ref: '#/components/responses/V2UpdatePortal' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' tags: - Portals delete: x-speakeasy-entity-operation: terraform-resource: PortalClassic#delete terraform-datasource: null operationId: delete-portal-classic summary: Delete Portal description: 'Deletes a single portal, along with all related entities. Will not allow deletion if there are developers registered to portal or if there are portal product versions with application registration enabled, unless force=true query param is included in the request.' parameters: - name: force in: query description: 'If true, delete specified portal and all related entities, even if there are developers registered to portal or if there are portal product versions with application registration enabled. If false, do not allow deletion if there are developers registered to portal or if there are portal product versions with application registration enabled.' schema: type: string default: 'false' enum: - 'true' - 'false' responses: '204': description: No Content '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portals /v2/portals#classic: get: x-speakeasy-entity-operation: PortalClassicList#read operationId: list-portals-classic summary: List Portals description: 'Lists developer portals defined in this region for this organization. Each developer portal is available at a unique address and has isolated appearance, configuration, developers, and applications.' parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/V2SortPortals' responses: '200': $ref: '#/components/responses/V2ListPortals' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Portals x-speakeasy-pagination: type: offsetLimit inputs: - name: 'page[number]' in: parameters type: page - name: 'page[size]' in: parameters type: limit outputs: results: $.data numPages: $.meta.page.total post: x-speakeasy-entity-operation: terraform-resource: PortalClassic#create terraform-datasource: null operationId: create-portal-classic summary: Create Portal description: Creates a new developer portal scoped in this region for this organization. requestBody: $ref: '#/components/requestBodies/V2CreatePortal' responses: '201': $ref: '#/components/responses/V2CreatePortal' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Portals /v3/apis: post: x-speakeasy-entity-operation: terraform-resource: Api#create terraform-datasource: null operationId: create-api summary: Create API description: Creates an API. requestBody: $ref: '#/components/requestBodies/CreateApiRequest' responses: '201': $ref: '#/components/responses/ApiResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' '415': $ref: '#/components/responses/UnsupportedMediaType' tags: - API '/v3/apis/{apiId}': parameters: - name: apiId in: path description: The UUID API identifier required: true schema: type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 x-speakeasy-match: id get: x-speakeasy-entity-operation: terraform-resource: Api#read terraform-datasource: null operationId: fetch-api summary: Get an API description: Get an API. responses: '200': $ref: '#/components/responses/ApiResponse' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API patch: x-speakeasy-entity-operation: terraform-resource: Api#update terraform-datasource: null operationId: update-api summary: Update API description: Updates an API. parameters: - name: force in: query description: | If true, allows operations to be removed from the current version when using access control enforcement. If false, operations removal will be rejected with a 409 error. Omitting the value means true. schema: type: string default: 'false' enum: - 'true' - 'false' requestBody: $ref: '#/components/requestBodies/UpdateApiRequest' responses: '200': $ref: '#/components/responses/ApiResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' '409': $ref: '#/components/responses/ApiVersionPatchConflict' '415': $ref: '#/components/responses/UnsupportedMediaType' tags: - API delete: x-speakeasy-entity-operation: terraform-resource: Api#delete terraform-datasource: null operationId: delete-api summary: Delete API description: Deletes an API. responses: '204': description: API was deleted successfully. '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API '/v3/apis/{apiId}/documents': parameters: - $ref: '#/components/parameters/ApiId' post: x-speakeasy-entity-operation: terraform-resource: ApiDocument#create terraform-datasource: null operationId: create-api-document summary: Create API Document description: | Publish a new document attached to an API. All configuration options may be provided in the frontmatter section of `content`. If you set values in both the `POST` request _and_ in the frontmatter, the values in the `POST` request will take precedence. requestBody: $ref: '#/components/requestBodies/CreateApiDocumentRequest' responses: '201': $ref: '#/components/responses/ApiDocumentResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' '409': $ref: '#/components/responses/ApiSlugConflict' '415': $ref: '#/components/responses/UnsupportedMediaType' tags: - API Documentation '/v3/apis/{apiId}/documents/{documentId}': parameters: - $ref: '#/components/parameters/ApiId' - $ref: '#/components/parameters/DocumentId' get: x-speakeasy-entity-operation: terraform-resource: ApiDocument#read terraform-datasource: null operationId: fetch-api-document summary: Get an API Document description: Returns a document for the API. responses: '200': $ref: '#/components/responses/ApiDocumentResponse' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Documentation patch: x-speakeasy-entity-operation: terraform-resource: ApiDocument#update terraform-datasource: null operationId: update-api-document summary: Update API Document description: Updates a document for an API. requestBody: $ref: '#/components/requestBodies/UpdateApiDocumentRequest' responses: '200': $ref: '#/components/responses/ApiDocumentResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' '409': $ref: '#/components/responses/ApiSlugConflict' '415': $ref: '#/components/responses/UnsupportedMediaType' tags: - API Documentation delete: x-speakeasy-entity-operation: terraform-resource: ApiDocument#delete terraform-datasource: null operationId: delete-api-document summary: Delete API Documentation description: Removes a document from an API. responses: '204': description: Document for the API was deleted successfully. '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Documentation '/v3/apis/{apiId}/implementations': parameters: - $ref: '#/components/parameters/ApiId' post: x-speakeasy-entity-operation: terraform-resource: ApiImplementation#create terraform-datasource: null operationId: create-api-implementation summary: Create API Implementation description: | Creates an implementation for an API. If all operations in an API are implemented by a single gateway service and the service has no routes that are not part of the API, then the API can be linked to the service. For cases where an API is implemented by multiple gateway services, only a subset of routes in one or more gateway services, or API operations need to be made available for API packages, then the API should be linked to the control plane that defines the routes that overlap with the API. requestBody: $ref: '#/components/requestBodies/CreateApiImplementationRequest' responses: '201': $ref: '#/components/responses/ApiImplementationResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' '409': $ref: '#/components/responses/ApiImplementationConflict' tags: - API Implementation '/v3/apis/{apiId}/implementations/{implementationId}': parameters: - $ref: '#/components/parameters/ApiId' - $ref: '#/components/parameters/ImplementationId' get: x-speakeasy-entity-operation: terraform-resource: ApiImplementation#read terraform-datasource: null operationId: fetch-api-implementation summary: Get an API Implementation description: Retrieve a gateway implementation for this API responses: '200': $ref: '#/components/responses/ApiImplementationResponse' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Implementation delete: x-speakeasy-entity-operation: terraform-resource: ApiImplementation#delete terraform-datasource: null operationId: delete-api-implementation summary: Delete API Implementation description: Unlink a gateway implementation from this API responses: '204': description: API implementation was unlinked successfully. '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Implementation '/v3/apis/{apiId}/publications/{portalId}': parameters: - $ref: '#/components/parameters/ApiId' - $ref: '#/components/parameters/PortalId' put: x-speakeasy-entity-operation: terraform-resource: 'ApiPublication#create,update' terraform-datasource: null operationId: publish-api-to-portal summary: Publish API description: | Publish an API to a portal. requestBody: $ref: '#/components/requestBodies/PutApiPublicationRequest' responses: '200': $ref: '#/components/responses/ApiPublicationResponse' '400': $ref: '#/components/responses/ApiPublicationBadRequest' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Publication get: x-speakeasy-entity-operation: terraform-resource: ApiPublication#read terraform-datasource: null operationId: fetch-publication summary: Get a Publication description: | Retrieve an API's publication in a portal. If the API is not published to the portal, a 404 response is returned. responses: '200': $ref: '#/components/responses/ApiPublicationResponse' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Publication delete: x-speakeasy-entity-operation: terraform-resource: ApiPublication#delete terraform-datasource: null operationId: delete-publication summary: Delete Publication description: Unpublish an API from a portal. responses: '204': description: API was successfully unpublished from portal. '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Publication '/v3/apis/{apiId}/specifications': parameters: - $ref: '#/components/parameters/ApiId' post: x-speakeasy-entity-operation: terraform-resource: ApiSpecification#create terraform-datasource: null operationId: create-api-spec summary: Create API Specification description: | Creates a specification (OpenAPI or AsyncAPI) for an API. **Note:** You can only have one specification for an API. This endpoint is deprecated and will be removed: use /versions instead. requestBody: $ref: '#/components/requestBodies/CreateApiSpecRequest' responses: '201': $ref: '#/components/responses/ApiSpecResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' '409': $ref: '#/components/responses/ApiSpecConflict' '415': $ref: '#/components/responses/UnsupportedMediaType' deprecated: true tags: - API Specification '/v3/apis/{apiId}/specifications/{specId}': parameters: - $ref: '#/components/parameters/ApiId' - $ref: '#/components/parameters/SpecId' get: x-speakeasy-entity-operation: terraform-resource: ApiSpecification#read terraform-datasource: null operationId: fetch-api-spec summary: Get API Specification description: | Fetches the specification (OpenAPI or AsyncAPI) of an API. **Note:** This endpoint is deprecated and will be removed: use /versions instead. responses: '200': $ref: '#/components/responses/ApiSpecResponse' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' deprecated: true tags: - API Specification patch: x-speakeasy-entity-operation: terraform-resource: ApiSpecification#update terraform-datasource: null operationId: update-api-spec summary: Update API Specification description: | Updates the specification (OpenAPI or AsyncAPI) of an API. **Note:** This endpoint is deprecated and will be removed: use /versions instead. requestBody: $ref: '#/components/requestBodies/UpdateApiSpecRequest' responses: '200': $ref: '#/components/responses/ApiSpecResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' '409': $ref: '#/components/responses/ApiSpecHiddenConflict' '415': $ref: '#/components/responses/UnsupportedMediaType' deprecated: true tags: - API Specification delete: x-speakeasy-entity-operation: terraform-resource: ApiSpecification#delete terraform-datasource: null operationId: delete-api-spec summary: Delete API Specification description: | Deletes the specification (OpenAPI or AsyncAPI) of an API. **Note:** This endpoint is deprecated and will be removed: use /versions instead. responses: '204': description: API Specification was deleted successfully. '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' deprecated: true tags: - API Specification '/v3/apis/{apiId}/versions': parameters: - $ref: '#/components/parameters/ApiId' post: x-speakeasy-entity-operation: terraform-resource: ApiVersion#create terraform-datasource: null operationId: create-api-version summary: Create API Version description: | Creates a version (OpenAPI or AsyncAPI) for an API. requestBody: $ref: '#/components/requestBodies/CreateApiVersionRequest' responses: '201': $ref: '#/components/responses/ApiVersionResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' '409': $ref: '#/components/responses/ApiSpecConflict' '415': $ref: '#/components/responses/UnsupportedMediaType' tags: - API Version '/v3/apis/{apiId}/versions/{versionId}': parameters: - $ref: '#/components/parameters/ApiId' - $ref: '#/components/parameters/VersionId' get: x-speakeasy-entity-operation: terraform-resource: ApiVersion#read terraform-datasource: null operationId: fetch-api-version summary: Get an API Version description: Fetches the version (OpenAPI or AsyncAPI) of an API. responses: '200': $ref: '#/components/responses/ApiVersionResponse' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Version patch: x-speakeasy-entity-operation: terraform-resource: ApiVersion#update terraform-datasource: null operationId: update-api-version summary: Update API Version description: Updates the version (OpenAPI or AsyncAPI) of an API. parameters: - name: force in: query description: | If true, allows operations to be removed from the current version when using access control enforcement. If false, operations removal will be rejected with a 409 error. Omitting the value (i.e., setting `?force`) means true. schema: type: string default: 'false' enum: - 'true' - 'false' requestBody: $ref: '#/components/requestBodies/UpdateApiVersionRequest' responses: '200': $ref: '#/components/responses/ApiVersionResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' '409': $ref: '#/components/responses/ApiVersionPatchConflict' '415': $ref: '#/components/responses/UnsupportedMediaType' tags: - API Version delete: x-speakeasy-entity-operation: terraform-resource: ApiVersion#delete terraform-datasource: null operationId: delete-api-version summary: Delete API Version description: Deletes the version (OpenAPI or AsyncAPI) of an API. responses: '204': description: API Version was deleted successfully. '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Version /v3/authentication-settings: get: x-speakeasy-entity-operation: terraform-resource: AuthenticationSettings#read terraform-datasource: null operationId: get-authentication-settings summary: Get Auth Settings description: 'Returns authentication configuration, which determines how users can log in and how they are assigned to teams.' responses: '200': $ref: '#/components/responses/AuthenticationSettings' '401': $ref: '#/components/responses/IdentityUnauthenticated' servers: - url: 'https://global.api.konghq.com/' tags: - Auth Settings patch: x-speakeasy-entity-operation: 'AuthenticationSettings#create,update' operationId: update-authentication-settings summary: Update Auth Settings description: Updates authentication configuration. requestBody: $ref: '#/components/requestBodies/UpdateAuthenticationSettings' responses: '200': $ref: '#/components/responses/AuthenticationSettings' '400': $ref: '#/components/responses/IdentityBadRequest' '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/Unauthorized' servers: - url: 'https://global.api.konghq.com/' tags: - Auth Settings /v3/identity-providers: post: x-speakeasy-entity-operation: IdentityProvider#create operationId: create-identity-provider summary: Create Identity Provider description: | Creates a new identity provider. This operation allows the creation of a new identity provider for authentication purposes. requestBody: $ref: '#/components/requestBodies/CreateIdentityProviderRequest' responses: '201': $ref: '#/components/responses/IdentityProvider' '400': $ref: '#/components/responses/IdentityBadRequest' '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/CreateIdentityProviderPermissionDenied' '409': $ref: '#/components/responses/Conflict' servers: - url: 'https://global.api.konghq.com/' tags: - Auth Settings '/v3/identity-providers/{id}': parameters: - name: id in: path description: ID of the identity provider. required: true schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a get: x-speakeasy-entity-operation: terraform-resource: IdentityProvider#read terraform-datasource: null operationId: get-identity-provider summary: Get Identity Provider description: | Retrieves the configuration of a single identity provider. This operation returns information about a specific identity provider's settings and authentication integration details. responses: '200': $ref: '#/components/responses/IdentityProvider' '400': $ref: '#/components/responses/IdentityBadRequest' '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/IdentityPermissionDenied' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Auth Settings patch: x-speakeasy-entity-operation: IdentityProvider#update operationId: update-identity-provider summary: Update Identity Provider description: | Updates the configuration of an existing identity provider. This operation allows modifications to be made to an existing identity provider's configuration. requestBody: $ref: '#/components/requestBodies/UpdateIdentityProviderRequest' responses: '200': $ref: '#/components/responses/IdentityProvider' '400': $ref: '#/components/responses/IdentityBadRequest' '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/IdentityPermissionDenied' '404': $ref: '#/components/responses/IdentityNotFound' '409': $ref: '#/components/responses/Conflict' servers: - url: 'https://global.api.konghq.com/' tags: - Auth Settings delete: x-speakeasy-entity-operation: IdentityProvider#delete operationId: delete-identity-provider summary: Delete Identity Provider description: | Deletes an existing identity provider configuration. This operation removes a specific identity provider from the organization. responses: '204': description: No Content '400': $ref: '#/components/responses/IdentityBadRequest' '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/IdentityPermissionDenied' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Auth Settings '/v3/identity-providers/{idpId}/team-group-mappings': parameters: - name: idpId in: path description: ID of the identity provider. required: true schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a x-speakeasy-name-override: identityProviderId post: x-speakeasy-entity-operation: terraform-resource: IdentityProviderTeamGroupMapping#create terraform-datasource: null operationId: create-idp-team-group-mapping summary: Create Team Group Mapping description: | Creates a new team group mapping for the specified identity provider. A mapping associates an identity provider group with a Konnect team. requestBody: $ref: '#/components/requestBodies/CreateIdpTeamGroupMappingRequest' responses: '201': $ref: '#/components/responses/IdpTeamGroupMapping' '400': $ref: '#/components/responses/IdentityBadRequest' '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/IdentityPermissionDenied' '404': $ref: '#/components/responses/IdentityNotFound' '409': $ref: '#/components/responses/Conflict' servers: - url: 'https://global.api.konghq.com/' tags: - Auth Settings '/v3/identity-providers/{idpId}/team-group-mappings/{id}': parameters: - name: idpId in: path description: ID of the identity provider. required: true schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a x-speakeasy-name-override: identityProviderId - name: id in: path description: ID of the team group mapping. required: true schema: type: string format: uuid example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 get: x-speakeasy-entity-operation: terraform-resource: IdentityProviderTeamGroupMapping#read terraform-datasource: null operationId: get-idp-team-group-mapping summary: Get Team Group Mapping description: Returns the team group mapping for the specified ID. responses: '200': $ref: '#/components/responses/IdpTeamGroupMapping' '400': $ref: '#/components/responses/IdentityBadRequest' '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/IdentityPermissionDenied' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Auth Settings delete: x-speakeasy-entity-operation: terraform-resource: IdentityProviderTeamGroupMapping#delete terraform-datasource: null operationId: delete-idp-team-group-mapping summary: Delete Team Group Mapping description: | Deletes a team group mapping by ID. Returns 204 if the mapping was deleted, or 404 if the mapping was not found. responses: '204': description: No Content '400': $ref: '#/components/responses/IdentityBadRequest' '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/IdentityPermissionDenied' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Auth Settings /v3/portals: get: x-speakeasy-entity-operation: terraform-resource: null terraform-datasource: - Portal#read operationId: list-portals summary: List Portals description: 'Lists developer portals defined in this region for this organization. Each developer portal is available at a unique address and has isolated configuration, customization, developers, and applications.' parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/SortPortals' - name: filter in: query description: Filter portals returned in the response. required: false schema: $ref: '#/components/schemas/PortalFilterParameters' style: deepObject responses: '200': $ref: '#/components/responses/ListPortalsResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Portals post: x-speakeasy-entity-operation: terraform-resource: Portal#create terraform-datasource: null operationId: create-portal summary: Create Portal description: Creates a new developer portal scoped in this region for this organization. requestBody: $ref: '#/components/requestBodies/CreatePortal' responses: '201': $ref: '#/components/responses/PortalResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Portals '/v3/portals/{portalId}': parameters: - name: portalId in: path description: ID of the portal. required: true schema: type: string format: uuid x-speakeasy-match: id get: x-speakeasy-entity-operation: terraform-resource: Portal#read terraform-datasource: null operationId: get-portal summary: Get a Portal description: 'Returns the configuration for a single developer portal, including the current visibility, access, and domain settings.' responses: '200': $ref: '#/components/responses/PortalResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portals patch: x-speakeasy-entity-operation: terraform-resource: Portal#update terraform-datasource: null operationId: update-portal summary: Update Portal description: 'Updates the configuration for a single portal including the visibility, access, and custom domain settings.' requestBody: $ref: '#/components/requestBodies/UpdatePortal' responses: '200': $ref: '#/components/responses/PortalResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' tags: - Portals delete: x-speakeasy-entity-operation: terraform-resource: Portal#delete terraform-datasource: null operationId: delete-portal summary: Delete Portal description: 'Deletes a single portal, along with all related entities.' parameters: - name: force in: query description: | If set to "true", the portal and all child entities will be deleted when running `terraform destroy`. If set to "false", the portal will not be deleted until all child entities are manually removed. This will IRREVERSIBLY DELETE ALL REGISTERED DEVELOPERS AND THEIR CREDENTIALS. Only set to "true" if you want this behavior. schema: type: string default: 'false' enum: - 'true' - 'false' x-speakeasy-name-override: force_destroy responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portals '/v3/portals/{portalId}/assets/favicon': parameters: - $ref: '#/components/parameters/PortalId' get: x-speakeasy-entity-operation: terraform-resource: PortalFavicon#read terraform-datasource: null operationId: get-portal-asset-favicon summary: Get Favicon description: Returns the favicon of the portal. responses: '200': $ref: '#/components/responses/PortalAssetResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Assets put: x-speakeasy-entity-operation: terraform-resource: 'PortalFavicon#create,update' terraform-datasource: null operationId: replace-portal-asset-favicon summary: Replace Favicon description: Replaces the favicon of the portal. The favicon is used in the browser tab of the portal. requestBody: $ref: '#/components/requestBodies/ReplacePortalImageAsset' responses: '200': $ref: '#/components/responses/PortalAssetResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Assets '/v3/portals/{portalId}/assets/logo': parameters: - $ref: '#/components/parameters/PortalId' get: x-speakeasy-entity-operation: terraform-resource: PortalLogo#read terraform-datasource: null operationId: get-portal-asset-logo summary: Get Logo description: Returns the logo of the portal. responses: '200': $ref: '#/components/responses/PortalAssetResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Assets put: x-speakeasy-entity-operation: terraform-resource: 'PortalLogo#create,update' terraform-datasource: null operationId: replace-portal-asset-logo summary: Replace Logo description: Replaces the logo of the portal. requestBody: $ref: '#/components/requestBodies/ReplacePortalImageAsset' responses: '200': $ref: '#/components/responses/PortalAssetResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Assets '/v3/portals/{portalId}/audit-log-webhook': parameters: - $ref: '#/components/parameters/PortalId' patch: x-speakeasy-entity-operation: terraform-resource: 'PortalAuditLogWebhook#create,update' terraform-datasource: null operationId: update-portal-audit-log-webhook summary: Update Portal Audit Log Webhook description: Updates the configuration for a webhook to receive audit logs. requestBody: $ref: '#/components/requestBodies/UpdatePortalAuditLogWebhook' responses: '200': $ref: '#/components/responses/PortalAuditLogWebhook' '400': $ref: '#/components/responses/PortalWebhookBadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Audit Logs get: x-speakeasy-entity-operation: terraform-resource: PortalAuditLogWebhook#read terraform-datasource: null operationId: get-portal-audit-log-webhook summary: Get Portal Audit Log Webhook description: Returns configuration for the audit log webhook. responses: '200': $ref: '#/components/responses/PortalAuditLogWebhook' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Audit Logs delete: x-speakeasy-entity-operation: terraform-resource: PortalAuditLogWebhook#delete terraform-datasource: null operationId: delete-portal-audit-log-webhook summary: Delete Portal Audit Log Webhook description: 'Removes configuration for the audit log webhook. The destination ID is set to empty, and the webhook enabled field is set to false' responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' tags: - Portal Audit Logs '/v3/portals/{portalId}/authentication-settings': parameters: - $ref: '#/components/parameters/PortalId' get: x-speakeasy-entity-operation: terraform-resource: PortalAuth#read terraform-datasource: null operationId: get-portal-authentication-settings summary: Get Auth Settings description: 'Returns the developer authentication configuration for a portal, which determines how developers can log in and how they are assigned to teams.' responses: '200': $ref: '#/components/responses/PortalAuthenticationSettings' '401': $ref: '#/components/responses/Unauthorized' tags: - Portal Auth Settings patch: x-speakeasy-entity-operation: terraform-resource: 'PortalAuth#create,update' terraform-datasource: null operationId: update-portal-authentication-settings summary: Update Auth Settings description: Updates the developer authentication configuration for a portal. Developers can be allowed to login using basic auth (email & password) or use Single-Sign-On through an Identity Provider. Developers can be automatically assigned to teams by mapping claims from their IdP account. requestBody: $ref: '#/components/requestBodies/UpdatePortalAuthenticationSettings' responses: '200': $ref: '#/components/responses/PortalAuthenticationSettings' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Portal Auth Settings '/v3/portals/{portalId}/custom-domain': parameters: - $ref: '#/components/parameters/PortalId' get: x-speakeasy-entity-operation: terraform-resource: PortalCustomDomain#read terraform-datasource: null operationId: get-portal-custom-domain summary: Get Custom Domain description: Get the custom domain associated to the portal. responses: '200': $ref: '#/components/responses/PortalCustomDomain' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Custom Domains post: x-speakeasy-entity-operation: terraform-resource: PortalCustomDomain#create terraform-datasource: null operationId: create-portal-custom-domain summary: Create Custom Domain description: Creates the custom domain associated with the portal. Only one custom domain can be associated with a portal at a time. requestBody: $ref: '#/components/requestBodies/CreatePortalCustomDomain' responses: '201': $ref: '#/components/responses/PortalCustomDomain' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Custom Domains patch: x-speakeasy-entity-operation: terraform-resource: PortalCustomDomain#update terraform-datasource: null operationId: update-portal-custom-domain summary: Enable or Disable Domain description: Updates the portal domain associated with the portal. requestBody: $ref: '#/components/requestBodies/UpdatePortalCustomDomain' responses: '200': $ref: '#/components/responses/PortalCustomDomain' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Portal Custom Domains delete: x-speakeasy-entity-operation: terraform-resource: PortalCustomDomain#delete terraform-datasource: null operationId: delete-portal-custom-domain summary: Remove Domain description: Deletes the custom domain associated with the portal. responses: '204': description: No Content '404': $ref: '#/components/responses/NotFound' tags: - Portal Custom Domains '/v3/portals/{portalId}/customization': get: x-speakeasy-entity-operation: terraform-resource: PortalCustomization#read terraform-datasource: null operationId: get-portal-customization summary: Get Customization description: Returns the portal customization options. parameters: - $ref: '#/components/parameters/PortalId' responses: '200': $ref: '#/components/responses/PortalCustomizationResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Customization put: x-speakeasy-entity-operation: terraform-resource: 'PortalCustomization#create,update' terraform-datasource: null operationId: replace-portal-customization summary: Replace Customization description: Replace the portal customization options. parameters: - $ref: '#/components/parameters/PortalId' requestBody: $ref: '#/components/requestBodies/ReplacePortalCustomization' responses: '200': $ref: '#/components/responses/PortalCustomizationResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Customization '/v3/portals/{portalId}/ip-allow-list': parameters: - $ref: '#/components/parameters/PortalId' post: x-speakeasy-entity-operation: terraform-resource: PortalIPAllowList#create terraform-datasource: null operationId: create-portal-ip-allow-list summary: Create an IP allow list for a portal description: | Create an IP allow list for a portal. requestBody: $ref: '#/components/requestBodies/CreatePortalSourceIPRestriction' responses: '201': $ref: '#/components/responses/PortalSourceIPRestriction' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Portals IP Allow List '/v3/portals/{portalId}/ip-allow-list/{id}': parameters: - $ref: '#/components/parameters/PortalId' - name: id in: path description: ID of the allow list. required: true schema: type: string format: uuid get: x-speakeasy-entity-operation: terraform-resource: PortalIPAllowList#read terraform-datasource: null operationId: get-portal-ip-allow-list summary: Get an IP allow list for a portal description: | Get an IP allow list for a portal. responses: '200': $ref: '#/components/responses/PortalSourceIPRestriction' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portals IP Allow List put: x-speakeasy-entity-operation: terraform-resource: PortalIPAllowList#update terraform-datasource: null operationId: put-portal-ip-allow-list summary: Replace an IP allow list for a portal description: | Replace an IP allow list for a portal. requestBody: $ref: '#/components/requestBodies/CreatePortalSourceIPRestriction' responses: '200': $ref: '#/components/responses/PortalSourceIPRestriction' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portals IP Allow List delete: x-speakeasy-entity-operation: terraform-resource: PortalIPAllowList#delete terraform-datasource: null operationId: delete-portal-ip-allow-list summary: Delete an IP allow list from a portal description: | Delete the IP allow list for a portal. responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portals IP Allow List '/v3/portals/{portalId}/pages': post: x-speakeasy-entity-operation: terraform-resource: PortalPage#create terraform-datasource: null operationId: create-portal-page summary: Create Page description: 'Creates a new custom page for this portal. Custom pages can be used to display static content, documentation, or other information to developers. Title and Description properties may be provided in the frontmatter section of `content`. If you set values in both the `POST` request _and_ in the frontmatter, the values in frontmatter will take precedence.' parameters: - $ref: '#/components/parameters/PortalId' requestBody: $ref: '#/components/requestBodies/CreatePortalPage' responses: '201': $ref: '#/components/responses/PortalPage' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Pages x-speakeasy-group: Portal Pages '/v3/portals/{portalId}/pages/{pageId}': get: x-speakeasy-entity-operation: terraform-resource: PortalPage#read terraform-datasource: null operationId: get-portal-page summary: Get a Page description: 'Returns the configuration of a single custom page for this portal. Custom pages can be used to display static content, documentation, or other information to developers.' parameters: - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/PageId' responses: '200': $ref: '#/components/responses/PortalPage' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' tags: - Pages x-speakeasy-group: Portal Pages patch: x-speakeasy-entity-operation: terraform-resource: PortalPage#update terraform-datasource: null operationId: update-portal-page summary: Update Page description: Updates the configuration of a single custom page for this portal. parameters: - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/PageId' requestBody: $ref: '#/components/requestBodies/UpdatePortalPage' responses: '200': $ref: '#/components/responses/PortalPage' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Pages x-speakeasy-group: Portal Pages delete: x-speakeasy-entity-operation: terraform-resource: PortalPage#delete terraform-datasource: null operationId: delete-portal-page summary: Delete Page description: Deletes a single custom page for this portal. parameters: - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/PageId' responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Pages x-speakeasy-group: Portal Pages '/v3/portals/{portalId}/snippets': post: x-speakeasy-entity-operation: terraform-resource: PortalSnippet#create terraform-datasource: null operationId: create-portal-snippet summary: Create Snippet description: 'Creates a new custom snippet for this portal. Custom snippets can be used to display static content, documentation, or other information to developers. Title and Description properties may be provided in the frontmatter section of `content`. If you set values in both the `POST` request _and_ in the frontmatter, the values in the frontmatter will take precedence.' parameters: - $ref: '#/components/parameters/PortalId' requestBody: $ref: '#/components/requestBodies/CreatePortalSnippet' responses: '201': $ref: '#/components/responses/PortalSnippet' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Snippets '/v3/portals/{portalId}/snippets/{snippetId}': get: x-speakeasy-entity-operation: terraform-resource: PortalSnippet#read terraform-datasource: null operationId: get-portal-snippet summary: Get a Snippet description: 'Returns the configuration of a single custom snippet for this portal. Custom snippets can be used to display static content, documentation, or other information to developers.' parameters: - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/SnippetId' responses: '200': $ref: '#/components/responses/PortalSnippet' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Snippets patch: x-speakeasy-entity-operation: terraform-resource: PortalSnippet#update terraform-datasource: null operationId: update-portal-snippet summary: Update Snippet description: Updates the configuration of a single custom snippet for this portal. parameters: - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/SnippetId' requestBody: $ref: '#/components/requestBodies/UpdatePortalSnippet' responses: '200': $ref: '#/components/responses/PortalSnippet' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Snippets delete: x-speakeasy-entity-operation: terraform-resource: PortalSnippet#delete terraform-datasource: null operationId: delete-portal-snippet summary: Delete Snippet description: Deletes a single custom snippet for this portal. parameters: - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/SnippetId' responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Snippets '/v3/portals/{portalId}/teams': parameters: - $ref: '#/components/parameters/PortalId' post: x-speakeasy-entity-operation: terraform-resource: PortalTeam#create terraform-datasource: null operationId: create-portal-team summary: Create Team description: Creates a developer team in a portal. Developers can be added to teams to provide RBAC access to API products. Teams can be assigned roles that grant permissions to perform an action on a resource. requestBody: $ref: '#/components/requestBodies/PortalCreateTeam' responses: '201': $ref: '#/components/responses/PortalTeam' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Teams '/v3/portals/{portalId}/teams/{teamId}': parameters: - name: teamId in: path description: ID of the team. required: true schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a x-speakeasy-match: id - $ref: '#/components/parameters/PortalId' get: x-speakeasy-entity-operation: terraform-resource: PortalTeam#read terraform-datasource: null operationId: get-portal-team summary: Get Team description: Get an individual team. responses: '200': $ref: '#/components/responses/PortalTeam' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Teams patch: x-speakeasy-entity-operation: terraform-resource: PortalTeam#update terraform-datasource: null operationId: update-portal-team summary: Update Team description: Updates an individual developer team for a portal. requestBody: $ref: '#/components/requestBodies/PortalUpdateTeam' responses: '200': $ref: '#/components/responses/PortalTeam' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Teams delete: x-speakeasy-entity-operation: terraform-resource: PortalTeam#delete terraform-datasource: null operationId: delete-portal-team summary: Delete Team description: 'Deletes a developer team from a portal. Deleting a team also deletes its assigned roles. Members of the team are not deleted, but they will lose any access provided through the team.' responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Teams '/v3/portals/{portalId}/teams/{teamId}/assigned-roles': parameters: - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/TeamId' - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' post: x-speakeasy-entity-operation: terraform-resource: PortalTeamRole#create terraform-datasource: null operationId: assign-role-to-portal-teams summary: Assign Role description: 'Assign a role to a developer team. This associates the set of permissions in a role with the team, so that they will be applied to any developer who is a member of the team.' requestBody: $ref: '#/components/requestBodies/PortalAssignRole' responses: '201': $ref: '#/components/responses/PortalAssignedRole' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' tags: - Portal Team Roles '/v3/portals/{portalId}/teams/{teamId}/assigned-roles/{roleId}': parameters: - name: roleId in: path description: ID of the assigned role. required: true schema: type: string format: uuid example: 8350205f-a305-4e39-abe9-bc082a80091a x-speakeasy-match: id - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/TeamId' delete: x-speakeasy-entity-operation: terraform-resource: PortalTeamRole#delete terraform-datasource: null operationId: remove-role-from-portal-team summary: Remove Role description: Removes an assigned role from a developer team. This deletes the association of the role with team and each of its members. responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Team Roles /v3/system-accounts: get: x-speakeasy-entity-operation: terraform-datasource: - SystemAccount#read - SystemAccountList#read operationId: get-system-accounts summary: List System Accounts description: Returns an array of system accounts (SA) in the organization. Returns 400 if any filter parameters are invalid. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - name: filter in: query description: Filter system accounts returned in the response. required: false schema: type: object properties: name: $ref: '#/components/schemas/LegacyStringFieldFilter' description: $ref: '#/components/schemas/LegacyStringFieldFilter' konnect_managed: $ref: '#/components/schemas/BooleanFieldFilter' style: deepObject responses: '200': $ref: '#/components/responses/SystemAccountCollection' '400': $ref: '#/components/responses/IdentityBadRequest' '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/Unauthorized' servers: - url: 'https://global.api.konghq.com/' tags: - System Accounts x-speakeasy-pagination: type: offsetLimit inputs: - name: 'page[number]' in: parameters type: page - name: 'page[size]' in: parameters type: limit outputs: results: $.data numPages: $.meta.page.total post: x-speakeasy-entity-operation: terraform-resource: SystemAccount#create terraform-datasource: null operationId: post-system-accounts summary: Create System Account description: Creates a system account. Returns a 409 if a system account with the same name already exists. requestBody: $ref: '#/components/requestBodies/CreateSystemAccount' responses: '201': $ref: '#/components/responses/SystemAccountSingle' '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/Unauthorized' '409': $ref: '#/components/responses/IdentityConflict' servers: - url: 'https://global.api.konghq.com/' tags: - System Accounts '/v3/system-accounts/{accountId}': get: x-speakeasy-entity-operation: terraform-resource: SystemAccount#read terraform-datasource: null operationId: get-system-accounts-id summary: Get a System Account description: Returns the system account (SA) for the SA ID specified as a path parameter. responses: '200': $ref: '#/components/responses/SystemAccountSingle' '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: 'https://global.api.konghq.com/' tags: - System Accounts parameters: - name: accountId in: path description: ID of the system account. required: true schema: type: string x-speakeasy-match: id patch: x-speakeasy-entity-operation: terraform-resource: SystemAccount#update terraform-datasource: null operationId: patch-system-accounts-id summary: Update System Account description: Updates the specified system account. Returns a 409 if the updated name is the same as another system account in the organization. requestBody: $ref: '#/components/requestBodies/UpdateSystemAccount' responses: '200': $ref: '#/components/responses/SystemAccountSingle' '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/IdentityNotFound' '409': $ref: '#/components/responses/IdentityConflict' servers: - url: 'https://global.api.konghq.com/' tags: - System Accounts delete: x-speakeasy-entity-operation: terraform-resource: SystemAccount#delete terraform-datasource: null operationId: delete-system-accounts-id summary: Delete System Account description: Deletes the specified system account. Returns 404 if the requested account was not found. responses: '204': description: No Content '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: 'https://global.api.konghq.com/' tags: - System Accounts '/v3/system-accounts/{accountId}/access-tokens': parameters: - name: accountId in: path description: ID of the system account. required: true schema: type: string post: x-speakeasy-entity-operation: terraform-resource: SystemAccountAccessToken#create terraform-datasource: null operationId: post-system-accounts-id-access-tokens summary: Create System Account Access Token description: Creates an access token for the specified system account (SA). The access token can be used for authenticating API and CLI requests. The token will only be displayed once on creation. Returns a 409 if the system account already has a token with the same name. requestBody: $ref: '#/components/requestBodies/CreateSystemAccountAccessToken' responses: '201': $ref: '#/components/responses/SystemAccountAccessTokenCreated' '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/IdentityNotFound' '409': $ref: '#/components/responses/IdentityConflict' servers: - url: 'https://global.api.konghq.com/' tags: - System Accounts - Access Tokens '/v3/system-accounts/{accountId}/access-tokens/{tokenId}': get: x-speakeasy-entity-operation: terraform-resource: SystemAccountAccessToken#read terraform-datasource: null operationId: get-system-accounts-id-access-tokens-id summary: Get a System Account Access Token description: Returns the system account (SA) access token for the SA Access Token ID specified as a path parameter. responses: '200': $ref: '#/components/responses/SystemAccountAccessTokenSingle' '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: 'https://global.api.konghq.com/' tags: - System Accounts - Access Tokens parameters: - name: accountId in: path description: ID of the system account. required: true schema: type: string - name: tokenId in: path description: ID of the system account access token. required: true schema: type: string x-speakeasy-match: id patch: x-speakeasy-entity-operation: terraform-resource: SystemAccountAccessToken#update terraform-datasource: null operationId: patch-system-accounts-id-access-tokens-id summary: Update System Account Access Token description: Updates the specified access token. Returns a 409 if the updated name is the same as another token belonging to the specified system user. requestBody: $ref: '#/components/requestBodies/UpdateSystemAccountAccessToken' responses: '200': $ref: '#/components/responses/SystemAccountAccessTokenSingle' '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/IdentityNotFound' '409': $ref: '#/components/responses/IdentityConflict' servers: - url: 'https://global.api.konghq.com/' tags: - System Accounts - Access Tokens delete: x-speakeasy-entity-operation: terraform-resource: SystemAccountAccessToken#delete terraform-datasource: null operationId: delete-system-accounts-id-access-tokens-id summary: Delete System Account Access Token description: Deletes the specified token. Returns 404 if the token was not found. responses: '204': description: No Content '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: 'https://global.api.konghq.com/' tags: - System Accounts - Access Tokens '/v3/system-accounts/{accountId}/assigned-roles': parameters: - name: accountId in: path description: ID of the system account. required: true schema: type: string post: x-speakeasy-entity-operation: terraform-resource: SystemAccountRole#create terraform-datasource: null operationId: post-system-accounts-accountId-assigned-roles summary: Create Assigned Role for System Account description: Assigns a role to a system account. Returns 409 if role is already assigned. requestBody: $ref: '#/components/requestBodies/AssignRole' responses: '201': $ref: '#/components/responses/AssignedRoleSingle' '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/IdentityNotFound' '409': $ref: '#/components/responses/IdentityConflict' servers: - url: 'https://global.api.konghq.com/' tags: - System Accounts - Roles '/v3/system-accounts/{accountId}/assigned-roles/{roleId}': parameters: - name: accountId in: path description: ID of the system account. required: true schema: type: string - name: roleId in: path description: ID of the role. required: true schema: type: string x-speakeasy-match: id get: x-speakeasy-entity-operation: terraform-resource: SystemAccountRole#read terraform-datasource: null operationId: get-system-account-role summary: Get System Account Role description: Returns the assigned role for the specified ID. responses: '200': $ref: '#/components/responses/AssignedRoleSingle' '400': $ref: '#/components/responses/IdentityBadRequest' '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/IdentityPermissionDenied' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: 'https://global.api.konghq.com/' tags: - System Accounts - Roles delete: x-speakeasy-entity-operation: terraform-resource: SystemAccountRole#delete terraform-datasource: null operationId: delete-system-accounts-accountId-assigned-roles-roleId summary: Delete Assigned Role from System Account description: Removes an assigned role from a system account. Returns 404 if the system account or assigned role were not found. responses: '204': description: No Content '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: 'https://global.api.konghq.com/' tags: - System Accounts - Roles /v3/teams: get: x-speakeasy-entity-operation: terraform-datasource: - Team#read - TeamList#read operationId: list-teams summary: List Teams description: Returns an array of team objects containing information about the Konnect Teams. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - name: filter in: query description: Filter teams returned in the response. required: false schema: type: object properties: name: $ref: '#/components/schemas/LegacyStringFieldFilter' style: deepObject responses: '200': $ref: '#/components/responses/TeamCollection' '400': $ref: '#/components/responses/IdentityBadRequest' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Teams x-speakeasy-pagination: type: offsetLimit inputs: - name: 'page[number]' in: parameters type: page - name: 'page[size]' in: parameters type: limit outputs: results: $.data numPages: $.meta.page.total post: x-speakeasy-entity-operation: terraform-resource: Team#create terraform-datasource: null operationId: create-team summary: Create Team description: 'Creates a team in the Konnect Organization. ' requestBody: $ref: '#/components/requestBodies/CreateTeam' responses: '201': $ref: '#/components/responses/TeamSingle' '400': $ref: '#/components/responses/IdentityBadRequest' '403': $ref: '#/components/responses/IdentityPermissionDenied' servers: - url: 'https://global.api.konghq.com/' tags: - Teams '/v3/teams/{teamId}': parameters: - name: teamId in: path description: The team ID required: true schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a x-speakeasy-match: id get: x-speakeasy-entity-operation: terraform-resource: Team#read terraform-datasource: null operationId: get-team summary: Get a Team description: Returns information about a team from a given team ID. responses: '200': $ref: '#/components/responses/TeamSingle' '400': $ref: '#/components/responses/IdentityBadRequest' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Teams patch: x-speakeasy-entity-operation: terraform-resource: Team#update terraform-datasource: null operationId: update-team summary: Update Team description: Updates an individual team. requestBody: $ref: '#/components/requestBodies/UpdateTeam' responses: '200': $ref: '#/components/responses/TeamSingle' '400': $ref: '#/components/responses/IdentityBadRequest' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Teams delete: x-speakeasy-entity-operation: terraform-resource: Team#delete terraform-datasource: null operationId: delete-team summary: Delete Team description: Deletes an individual team. Returns 404 if the team is not found. responses: '204': description: No Content '400': $ref: '#/components/responses/IdentityBadRequest' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Teams '/v3/teams/{teamId}/assigned-roles': parameters: - name: teamId in: path description: The team ID required: true schema: type: string format: uuid example: e81bc3e5-e9db-4764-b7dd-e81e39072cbe post: x-speakeasy-entity-operation: terraform-resource: TeamRole#create terraform-datasource: null operationId: teams-assign-role summary: Assign Team Role description: Assigns a role to a team. Returns 409 if role is already assigned. requestBody: $ref: '#/components/requestBodies/AssignRole' responses: '201': $ref: '#/components/responses/AssignedRoleSingle' '400': $ref: '#/components/responses/IdentityBadRequest' '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/IdentityPermissionDenied' '404': $ref: '#/components/responses/IdentityNotFound' '409': $ref: '#/components/responses/IdentityConflict' servers: - url: 'https://global.api.konghq.com/' tags: - Roles '/v3/teams/{teamId}/assigned-roles/{roleId}': parameters: - name: teamId in: path description: The team ID. required: true schema: type: string format: uuid example: e81bc3e5-e9db-4764-b7dd-e81e39072cbe - name: roleId in: path description: The role ID. required: true schema: type: string format: uuid example: 8350205f-a305-4e39-abe9-bc082a80091a x-speakeasy-match: id get: x-speakeasy-entity-operation: terraform-resource: TeamRole#read terraform-datasource: null operationId: get-team-role summary: Get Team Role description: Returns the assigned role for the specified ID. responses: '200': $ref: '#/components/responses/AssignedRoleSingle' '400': $ref: '#/components/responses/IdentityBadRequest' '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/IdentityPermissionDenied' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Roles delete: x-speakeasy-entity-operation: terraform-resource: TeamRole#delete terraform-datasource: null operationId: teams-remove-role summary: Remove Team Role description: Removes an assigned role from a team. Returns 404 if the requested team or assigned role were not found. responses: '204': description: No Content '400': $ref: '#/components/responses/IdentityBadRequest' '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/IdentityPermissionDenied' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Roles '/v3/teams/{teamId}/system-accounts': parameters: - name: teamId in: path description: ID of the team. required: true schema: type: string post: x-speakeasy-entity-operation: terraform-resource: SystemAccountTeam#create terraform-datasource: null operationId: post-teams-teamId-system-accounts summary: Add System Account to a Team description: Adds a system account to a team. Returns a 409 if the system account is already a member of the team. requestBody: $ref: '#/components/requestBodies/AddSystemAccountToTeam' responses: '201': description: Created '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/IdentityNotFound' '409': $ref: '#/components/responses/IdentityConflict' servers: - url: 'https://global.api.konghq.com/' tags: - System Accounts - Team Membership '/v3/teams/{teamId}/system-accounts/{accountId}': parameters: - name: teamId in: path description: ID of the team. required: true schema: type: string - name: accountId in: path description: ID of the system account. required: true schema: type: string delete: x-speakeasy-entity-operation: terraform-resource: SystemAccountTeam#delete terraform-datasource: null operationId: delete-teams-teamId-system-accounts-accountId summary: Remove System Account From Team description: Removes a system account from a team. Returns 404 if the team or system account were not found. responses: '204': description: No Content '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: 'https://global.api.konghq.com/' tags: - System Accounts - Team Membership '/v3/teams/{teamId}/users': parameters: - name: teamId in: path description: ID of the team. required: true schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a post: x-speakeasy-entity-operation: terraform-resource: TeamUser#create terraform-datasource: null operationId: add-user-to-team summary: Add User description: Adds a user to a team. requestBody: $ref: '#/components/requestBodies/AddUserToTeam' responses: '201': description: Created '400': $ref: '#/components/responses/IdentityBadRequest' '404': $ref: '#/components/responses/IdentityNotFound' '409': $ref: '#/components/responses/IdentityConflict' servers: - url: 'https://global.api.konghq.com/' tags: - Team Membership '/v3/teams/{teamId}/users/{userId}': parameters: - name: userId in: path description: User ID required: true schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a - name: teamId in: path description: Team ID. required: true schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a delete: x-speakeasy-entity-operation: terraform-resource: TeamUser#delete terraform-datasource: null operationId: remove-user-from-team summary: Remove User description: |- Removes a user from a team. If the user was removed, returns a 204 empty response. Returns 404 if the user or team were not found. responses: '204': description: No Content '400': $ref: '#/components/responses/IdentityBadRequest' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Team Membership /v2/control-planes#single-resource: get: x-speakeasy-entity-operation: terraform-resource: null terraform-datasource: - GatewayControlPlane#read operationId: list-control-planes-single-resource summary: List Control Planes Datasource description: Returns an array of control plane objects containing information about the Konnect Control Planes. parameters: - $ref: '#/components/parameters/ControlPlaneFilter' - $ref: '#/components/parameters/FilterByLabels' - $ref: '#/components/parameters/ControlPlaneSort' responses: '200': $ref: '#/components/responses/ListControlPlanesResponse' '400': $ref: '#/components/responses/ControlPlanesBadRequest' '401': $ref: '#/components/responses/ControlPlaneUnauthenticated' '403': $ref: '#/components/responses/ControlPlanePermissionDenied' '500': $ref: '#/components/responses/Internal' '503': $ref: '#/components/responses/ServiceUnavailable' tags: - Control Planes /v2/audit-log-webhook#delete: patch: x-speakeasy-entity-operation: terraform-resource: AuditLog#delete terraform-datasource: null operationId: delete-audit-log-webhook summary: Delete the audit log webhook description: Disables the audit log webhook. requestBody: description: The request schema to disable an audit log webhook. content: application/json: schema: type: object properties: enabled: description: Indicates that the data should not be sent to the webhook. type: boolean const: false nullable: false responses: '200': $ref: '#/components/responses/AuditLogWebhook' '400': $ref: '#/components/responses/WebhookBadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Audit Logs /v3/authentication-settings#delete: patch: x-speakeasy-entity-operation: AuthenticationSettings#delete operationId: reset-authentication-settings summary: Reset Auth Settings description: Reset authentication configuration. requestBody: description: Reset authentication settings to defaults content: application/json: schema: type: object properties: basic_auth_enabled: type: boolean const: true oidc_auth_enabled: type: boolean default: null const: false nullable: true x-speakeasy-param-computed: false saml_auth_enabled: type: boolean default: null const: false nullable: true x-speakeasy-param-computed: false idp_mapping_enabled: type: boolean default: null const: false nullable: true x-speakeasy-param-computed: false konnect_mapping_enabled: type: boolean const: true responses: '200': $ref: '#/components/responses/AuthenticationSettings' '400': $ref: '#/components/responses/IdentityBadRequest' '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/Unauthorized' 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 AddOnId: name: addOnId description: ID of the add-on to operate on. required: true in: path schema: $ref: '#/components/schemas/AddOnId' x-speakeasy-match: id ApiId: schema: type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 name: apiId in: path required: true description: The UUID API identifier AuditLogDestinationId: schema: type: string format: uuid name: auditLogDestinationId in: path required: true description: ID of the Audit Log Destination. x-speakeasy-match: id authServerId: schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a name: authServerId in: path required: true description: The auth server ID x-speakeasy-match: id authServerIdForChildren: schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a name: authServerId in: path required: true description: The auth server ID x-speakeasy-name-override: auth_server_id AuthStrategyId: name: authStrategyId description: Application auth strategy identifier in: path required: true schema: $ref: '#/components/schemas/UUID' 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 centralizedConsumerIdForChildren: name: consumerId in: path required: true description: ID of the of the consumer schema: type: string 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 claimId: schema: type: string format: uuid example: 07d05309-45cc-4b37-92fb-1524846deec3 name: claimId in: path required: true description: The claim ID x-speakeasy-match: id clientId: schema: $ref: '#/components/schemas/ClientId' name: clientId in: path required: true description: The OAuth 2.0 client ID x-speakeasy-match: id ClonedPluginId: description: ID of the Cloned Plugin to lookup example: '' in: path name: ClonedPluginId required: true schema: type: string x-speakeasy-match: id cmekId: name: cmekId in: path required: true description: 'Customer Managed Encryption Key identifier. This ID is selected from a predefined, Konnect-specific list of allowed values and uniquely identifies a CMEK configuration within a given organization and Konnect region. While not global in function, these IDs behave like scoped namespaces with enforced uniqueness and enumeration constraints.' schema: type: string example: default default: default enum: - default x-speakeasy-name-override: id configStoreId: schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a name: configStoreId in: path required: true description: Config Store identifier x-speakeasy-match: id configStoreIdForSecret: schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a name: configStoreId in: path required: true description: Config Store identifier ConfigurationId: name: configurationId in: path description: The ID of the configuration to operate on. required: true schema: $ref: '#/components/schemas/ConfigurationId' 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: description: The UUID or name of the consumer group in: path name: ConsumerGroupId required: true schema: type: string example: cf4c7e60-11db-49dd-b300-7c7e5f0f7e6b x-speakeasy-name-override: consumer_group_id consumerId: x-speakeasy-match: id name: consumerId in: path required: true description: ID of the of the consumer schema: type: string ConsumerId: description: ID of the Consumer to lookup example: c1059869-6fa7-4329-a5f5-5946d14ca2c5 in: path name: ConsumerId required: true schema: type: string x-speakeasy-match: id ConsumerIdForNestedEntities: description: Consumer ID for nested entities example: '' in: path name: ConsumerIdForNestedEntities required: true schema: type: string x-speakeasy-name-override: consumer_id ControlPlaneFilter: name: filter description: Filters a collection of control-planes. required: false in: query schema: $ref: '#/components/schemas/ControlPlaneFilterParameters' style: deepObject controlPlaneId: x-speakeasy-param-force-new: true name: controlPlaneId in: path required: true schema: type: string format: uuid example: 9524ec7d-36d9-465d-a8c5-83a3c9390458 description: The UUID of your control plane. This variable is available in the Konnect manager. ControlPlaneSort: name: sort description: | Sorts a collection of control-planes. Supported sort attributes are: - created_at required: false in: query schema: $ref: '#/components/schemas/SortQuery' CustomDomainId: name: customDomainId description: ID of the custom domain to operate on. required: true in: path schema: $ref: '#/components/schemas/CustomDomainId' x-speakeasy-match: id CustomPluginId: description: ID of the CustomPlugin to lookup example: '' in: path name: CustomPluginId required: true schema: type: string x-speakeasy-match: id DataPlaneCertificateId: name: certificateId in: path schema: type: string required: true x-speakeasy-match: id DocumentId: schema: type: string format: uuid example: de5c9818-be5c-42e6-b514-e3d4bc30ddeb name: documentId description: The document identifier related to the API in: path required: true x-speakeasy-match: id eventGatewayListenerId: schema: type: string format: uuid name: eventGatewayListenerId in: path required: true description: The ID of the Event Gateway Listener. x-speakeasy-name-override: listenerId EventGatewayPolicyAfter: schema: type: string format: uuid in: query name: after x-speakeasy-terraform-ignore: true description: | Determines the id of the existing policy the new policy should be inserted after. Either 'before' or 'after' can be provided, when both are omitted the new policy is added to the end of the chain. When both are provided, the request fails with a 400 Bad Request. required: false EventGatewayPolicyBefore: schema: type: string format: uuid in: query name: before x-speakeasy-terraform-ignore: true description: | Determines the id of the existing policy the new policy should be inserted before. Either 'before' or 'after' can be provided, when both are omitted the new policy is added to the end of the chain. When both are provided, the request fails with a 400 Bad Request. required: false ExpandPartials: description: Expand partials for the plugin. example: true in: query name: expand_partials schema: type: boolean x-speakeasy-terraform-ignore: true FilterByLabels: x-speakeasy-name-override: filter_labels name: labels description: Filter control planes in the response by associated labels. in: query required: false schema: type: string example: 'key:value,existCheck' gatewayId: name: gatewayId in: path required: true schema: type: string format: uuid example: 9524ec7d-36d9-465d-a8c5-83a3c9390458 description: The UUID of your Gateway. GraphQLCostDecorationId: description: ID of the GraphQL Cost Decoration to lookup example: '' in: path name: GraphQLCostDecorationId 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 ImplementationId: schema: type: string format: uuid example: 032d905a-ed33-46a3-a093-d8f536af9a8a name: implementationId in: path required: true description: The Portal identifier 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 keyId: x-speakeasy-match: id name: keyId in: path required: true description: ID of the key schema: type: string KeyId: description: ID of the Key to lookup example: bba22c06-a632-42be-a018-1b9ff357b5b9 in: path name: KeyId required: true schema: type: string x-speakeasy-match: id KeySetId: description: ID of the KeySet to lookup example: 6cc34248-50b4-4a81-9201-3bdf7a83f712 in: path name: KeySetId required: true schema: type: string x-speakeasy-match: id ListConsumers: description: Expand the consumer group to include a list of its consumers. example: false in: query name: list_consumers schema: type: boolean MTLSAuthId: description: ID of the MTLS-auth credential to lookup example: '' in: path name: MTLSAuthId required: true schema: type: string x-speakeasy-match: id NetworkId: name: networkId in: path description: The network to operate on. required: true schema: $ref: '#/components/schemas/NetworkId' x-speakeasy-match: id NetworksFilter: name: filter description: Filters supported for networks. required: false in: query schema: $ref: '#/components/schemas/NetworksFilterParameters' style: deepObject PageId: schema: type: string format: uuid example: ebbac5b0-ac89-45c3-9d2e-c4542c657e79 name: pageId in: path required: true description: ID of the page. x-speakeasy-match: id PageNumber: name: 'page[number]' description: Determines which page of the entities to retrieve. required: false in: query allowEmptyValue: true schema: type: integer example: 1 x-speakeasy-terraform-ignore: true PageSize: name: 'page[size]' description: The maximum number of items to include per page. The last page of a collection may include fewer items. required: false in: query allowEmptyValue: true schema: type: integer example: 100 x-speakeasy-terraform-ignore: true 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 PortalId: schema: type: string format: uuid example: f32d905a-ed33-46a3-a093-d8f536af9a8a name: portalId in: path required: true description: The Portal identifier PrivateDnsId: name: privateDnsId in: path description: The ID of the Private DNS to operate on. required: true schema: $ref: '#/components/schemas/PrivateDnsId' x-speakeasy-match: id realmId: x-speakeasy-match: id name: realmId in: path required: true description: ID of the realm schema: type: string format: uuid realmIdForChildren: name: realmId in: path required: true description: ID of the realm schema: type: string format: uuid RouteId: description: ID of the Route to lookup example: a4326a41-aa12-44e3-93e4-6b6e58bfb9d7 in: path name: RouteId required: true schema: type: string x-speakeasy-match: id scopeId: schema: type: string format: uuid example: c5e12516-182c-4928-ae04-05374b3b1cca name: scopeId in: path required: true description: The scope ID x-speakeasy-match: id ServiceId: description: ID of the Service to lookup example: 7fca84d6-7d37-4a74-a7b0-93e576089a41 in: path name: ServiceId required: true schema: type: string x-speakeasy-match: id SNIId: description: ID of the SNI to lookup example: 64c17a1a-b7d7-4a65-a5a4-42e4a7016e7f in: path name: SNIId required: true schema: type: string x-speakeasy-match: id SnippetId: schema: type: string format: uuid example: ebbac5b0-ac89-45c3-9d2e-c4542c657e79 name: snippetId in: path required: true description: ID of the snippet. x-speakeasy-match: id SortPortals: name: sort description: | Sorts a collection of portals. Supported sort attributes are: - name - description - authentication_enabled - rbac_enabled - auto_approve_applications - auto_approve_developers - default_domain - canonical_domain - created_at - updated_at in: query required: false schema: type: string SpecId: schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a name: specId description: The API specification identifier in: path required: true x-speakeasy-match: id TargetId: description: ID of the Target to lookup example: 5a078780-5d4c-4aae-984a-bdc6f52113d8 in: path name: TargetId required: true schema: type: string x-speakeasy-match: id TeamId: schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a name: teamId in: path required: true description: ID of the team. TransitGatewayId: name: transitGatewayId in: path description: The ID of the transit gateway to operate on. required: true schema: $ref: '#/components/schemas/TransitGatewayId' x-speakeasy-match: id UpstreamId: description: ID of the Upstream to lookup example: 426d620c-7058-4ae6-aacc-f85a3204a2c5 in: path name: UpstreamId 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 V2ProductVersionId: name: productVersionId description: API product version identifier in: path required: true schema: $ref: '#/components/schemas/UUID' V2SortPortals: name: sort description: | Sorts a collection of portals. Supported sort attributes are: - name - description - is_public - rbac_enabled - auto_approve_applications - auto_approve_developers - default_domain - custom_domain - custom_client_domain - created_at - updated_at in: query required: false schema: type: string VaultId: description: ID of the Vault to lookup example: 9d4d6d19-77c6-428e-a965-9bc9647633e9 in: path name: VaultId required: true schema: type: string x-speakeasy-match: id VersionId: schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a name: versionId description: The API version identifier in: path required: true x-speakeasy-match: id virtualClusterId: schema: type: string format: uuid name: virtualClusterId in: path required: true description: The ID of the Virtual Cluster. schemas: GroupMembership: x-speakeasy-entity: GatewayControlPlaneMembership type: object properties: members: type: array items: type: object required: - id properties: id: type: string required: - members CreateControlPlaneRequest: x-speakeasy-entity: GatewayControlPlane description: The request schema for the create control plane request. type: object properties: name: description: The name of the control plane. type: string example: Test Control Plane maxLength: 256 minLength: 2 description: description: The description of the control plane in Konnect. type: string example: A test control plane for exploration. maxLength: 2048 nullable: false cluster_type: description: The ClusterType value of the cluster associated with the Control Plane. type: string example: CLUSTER_TYPE_CONTROL_PLANE enum: - CLUSTER_TYPE_CONTROL_PLANE - CLUSTER_TYPE_K8S_INGRESS_CONTROLLER - CLUSTER_TYPE_CONTROL_PLANE_GROUP - CLUSTER_TYPE_SERVERLESS - CLUSTER_TYPE_HYBRID - CLUSTER_TYPE_SERVERLESS_V1 x-speakeasy-unknown-values: allow auth_type: description: The auth type value of the cluster associated with the Runtime Group. type: string example: pinned_client_certs enum: - pinned_client_certs - pki_client_certs x-speakeasy-unknown-values: allow cloud_gateway: description: Whether this control-plane can be used for cloud-gateways. type: boolean example: false nullable: false proxy_urls: $ref: '#/components/schemas/ProxyURLs' labels: $ref: '#/components/schemas/Labels' additionalProperties: false required: - name title: CreateControlPlaneRequest UpdateControlPlaneRequest: description: The request schema for the update control plane request. type: object properties: name: description: The name of the control plane. type: string example: Test Control Plane default: null maxLength: 256 minLength: 2 nullable: true x-speakeasy-param-computed: false description: description: The description of the control plane in Konnect. type: string example: A test control plane for exploration. maxLength: 2048 nullable: false auth_type: description: The auth type value of the cluster associated with the Runtime Group. type: string example: pinned_client_certs enum: - pinned_client_certs - pki_client_certs x-speakeasy-unknown-values: allow proxy_urls: $ref: '#/components/schemas/ProxyURLs' labels: $ref: '#/components/schemas/Labels' additionalProperties: false title: UpdateControlPlaneRequest ControlPlane: x-speakeasy-entity: GatewayControlPlane description: The control plane object contains information about a Kong control plane. type: object properties: id: description: The control plane ID. type: string format: uuid example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 readOnly: true x-speakeasy-param-suppress-computed-diff: true name: description: The name of the control plane. type: string example: Test Control Plane description: description: The description of the control plane in Konnect. type: string example: A test control plane for exploration. nullable: false labels: $ref: '#/components/schemas/Labels' config: description: CP configuration object for related access endpoints. type: object additionalProperties: false properties: control_plane_endpoint: description: Control Plane Endpoint. type: string format: url example: 'https://acfe5f253f.cp.konghq.com' readOnly: true x-speakeasy-param-suppress-computed-diff: true telemetry_endpoint: description: Telemetry Endpoint. type: string format: url example: 'https://acfe5f253f.tp0.konghq.com' readOnly: true x-speakeasy-param-suppress-computed-diff: true cluster_type: description: The ClusterType value of the cluster associated with the Control Plane. type: string example: CLUSTER_TYPE_CONTROL_PLANE enum: - CLUSTER_TYPE_CONTROL_PLANE - CLUSTER_TYPE_K8S_INGRESS_CONTROLLER - CLUSTER_TYPE_CONTROL_PLANE_GROUP - CLUSTER_TYPE_SERVERLESS - CLUSTER_TYPE_HYBRID - CLUSTER_TYPE_SERVERLESS_V1 readOnly: true x-speakeasy-param-suppress-computed-diff: true x-speakeasy-unknown-values: allow auth_type: description: The auth type value of the cluster associated with the Runtime Group. type: string example: pinned_client_certs enum: - pinned_client_certs - pki_client_certs readOnly: true x-speakeasy-param-suppress-computed-diff: true x-speakeasy-unknown-values: allow cloud_gateway: description: Whether the Control Plane can be used for cloud-gateways. type: boolean nullable: false readOnly: true x-speakeasy-param-suppress-computed-diff: true proxy_urls: $ref: '#/components/schemas/ProxyURLs' required: - control_plane_endpoint - telemetry_endpoint - cluster_type - auth_type - cloud_gateway - proxy_urls created_at: description: An ISO-8604 timestamp representation of control plane creation date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true x-speakeasy-terraform-ignore: true updated_at: description: An ISO-8604 timestamp representation of control plane update date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true x-speakeasy-terraform-ignore: true additionalProperties: false required: - id - name - config - created_at - updated_at - description - labels Labels: description: | Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". type: object example: env: test additionalProperties: type: string pattern: '^[a-z0-9A-Z]{1}([a-z0-9A-Z-._]*[a-z0-9A-Z]+)?$' minLength: 1 maxLength: 63 nullable: true maxProperties: 50 title: Labels ProxyURL: description: Proxy URL associated with reaching the data-planes connected to a control-plane. type: object properties: host: description: Hostname of the proxy URL. type: string maxLength: 120 minLength: 1 port: description: Port of the proxy URL. type: integer minimum: 1 protocol: description: Protocol of the proxy URL. type: string maxLength: 32 minLength: 1 example: host: example.com port: 443 protocol: https additionalProperties: false required: - host - port - protocol title: ProxyURL ProxyURLs: description: Array of proxy URLs associated with reaching the data-planes connected to a control-plane. type: array items: $ref: '#/components/schemas/ProxyURL' format: set example: - host: example.com port: 443 protocol: https maxItems: 5 title: ProxyURLs ControlPlaneFilterParameters: type: object properties: id: description: 'Filter using **one** of the following operators: `eq`, `oeq`' type: object additionalProperties: false properties: eq: description: The field exactly matches the provided value. type: string oeq: description: The field matches any of the provided values. type: string name: description: 'Filter using **one** of the following operators: `eq`, `neq`, `contains`' type: object additionalProperties: false properties: eq: description: The field exactly matches the provided value. type: string contains: description: The field contains the provided value. type: string neq: description: The field does not match the provided value. type: string cluster_type: description: 'Filter using **one** of the following operators: `eq`, `oeq`, `neq`' type: object additionalProperties: false properties: eq: description: The field exactly matches the provided value. type: string neq: description: The field does not match the provided value. type: string oeq: description: The field matches any of the provided values. type: string cloud_gateway: $ref: '#/components/schemas/BooleanFieldFilter' additionalProperties: false title: ControlPlaneFilterParameters BooleanFieldFilter: description: Filter by a boolean value (true/false). type: boolean title: BooleanFieldFilter SortQuery: description: | The `asc` suffix is optional as the default sort order is ascending. The `desc` suffix is used to specify a descending order. Multiple sort attributes may be provided via a comma separated list. JSONPath notation may be used to specify a sub-attribute (eg: 'foo.bar desc'). type: string example: created_at desc title: SortQuery PageMeta: description: Contains pagination query parameters and the total number of objects returned. type: object properties: number: type: number example: 1 x-speakeasy-terraform-ignore: true size: type: number example: 10 x-speakeasy-terraform-ignore: true total: type: number example: 100 x-speakeasy-terraform-ignore: true required: - number - size - total PaginatedMeta: description: returns the pagination information type: object properties: page: $ref: '#/components/schemas/PageMeta' required: - page title: PaginatedMeta x-speakeasy-terraform-ignore: true BaseError: description: standard error type: object properties: status: description: | The HTTP status code of the error. Useful when passing the response body to child properties in a frontend UI. Must be returned as an integer. type: integer readOnly: true x-speakeasy-param-suppress-computed-diff: true title: description: | A short, human-readable summary of the problem. It should not change between occurences of a problem, except for localization. Should be provided as "Sentence case" for direct use in the UI. type: string readOnly: true x-speakeasy-param-suppress-computed-diff: true type: description: The error type. type: string readOnly: true x-speakeasy-param-suppress-computed-diff: true instance: description: | Used to return the correlation ID back to the user, in the format kong:trace:. This helps us find the relevant logs when a customer reports an issue. type: string readOnly: true x-speakeasy-param-suppress-computed-diff: true detail: description: | A human readable explanation specific to this occurence of the problem. This field may contain request/entity data to help the user understand what went wrong. Enclose variable values in square brackets. Should be provided as "Sentence case" for direct use in the UI. type: string readOnly: true x-speakeasy-param-suppress-computed-diff: true required: - status - title - instance - detail title: Error InvalidRules: description: invalid parameters rules type: string enum: - required - is_array - is_base64 - is_boolean - is_date_time - is_integer - is_null - is_number - is_object - is_string - is_uuid - is_fqdn - is_arn - unknown_property - missing_reference - is_label - matches_regex - invalid - is_supported_network_availability_zone_list - is_supported_network_cidr_block - is_supported_provider_region - type nullable: true readOnly: true x-speakeasy-param-suppress-computed-diff: true x-speakeasy-unknown-values: allow InvalidParameterStandard: type: object properties: field: type: string example: name readOnly: true x-speakeasy-param-suppress-computed-diff: true rule: $ref: '#/components/schemas/InvalidRules' source: type: string example: body default: null nullable: true x-speakeasy-param-computed: false reason: type: string example: is a required field readOnly: true x-speakeasy-param-suppress-computed-diff: true additionalProperties: false required: - field - reason InvalidParameterMinimumLength: type: object properties: field: type: string example: name readOnly: true x-speakeasy-param-suppress-computed-diff: true rule: description: invalid parameters rules type: string enum: - min_length - min_digits - min_lowercase - min_uppercase - min_symbols - min_items - min nullable: false readOnly: true x-speakeasy-param-suppress-computed-diff: true x-speakeasy-unknown-values: allow minimum: type: integer example: 8 source: type: string example: body default: null nullable: true x-speakeasy-param-computed: false reason: type: string example: must have at least 8 characters readOnly: true x-speakeasy-param-suppress-computed-diff: true additionalProperties: false required: - field - reason - rule - minimum InvalidParameterMaximumLength: type: object properties: field: type: string example: name readOnly: true x-speakeasy-param-suppress-computed-diff: true rule: description: invalid parameters rules type: string enum: - max_length - max_items - max nullable: false readOnly: true x-speakeasy-param-suppress-computed-diff: true x-speakeasy-unknown-values: allow maximum: type: integer example: 8 source: type: string example: body default: null nullable: true x-speakeasy-param-computed: false reason: type: string example: must not have more than 8 characters readOnly: true x-speakeasy-param-suppress-computed-diff: true additionalProperties: false required: - field - reason - rule - maximum InvalidParameterChoiceItem: type: object properties: field: type: string example: name readOnly: true x-speakeasy-param-suppress-computed-diff: true rule: description: invalid parameters rules type: string enum: - enum nullable: false readOnly: true x-speakeasy-param-suppress-computed-diff: true reason: type: string example: is a required field readOnly: true x-speakeasy-param-suppress-computed-diff: true choices: type: array items: {} minItems: 1 nullable: false readOnly: true uniqueItems: true x-speakeasy-param-suppress-computed-diff: true source: type: string example: body default: null nullable: true x-speakeasy-param-computed: false additionalProperties: false required: - field - reason - rule - choices InvalidParameterDependentItem: type: object properties: field: type: string example: name readOnly: true x-speakeasy-param-suppress-computed-diff: true rule: description: invalid parameters rules type: string enum: - dependent_fields nullable: true readOnly: true x-speakeasy-param-suppress-computed-diff: true reason: type: string example: is a required field readOnly: true x-speakeasy-param-suppress-computed-diff: true dependents: type: array items: {} default: null nullable: true readOnly: true uniqueItems: true x-speakeasy-param-computed: false x-speakeasy-param-suppress-computed-diff: true source: type: string example: body default: null nullable: true x-speakeasy-param-computed: false additionalProperties: false required: - field - rule - reason - dependents InvalidParameters: description: invalid parameters type: array items: oneOf: - $ref: '#/components/schemas/InvalidParameterStandard' - $ref: '#/components/schemas/InvalidParameterMinimumLength' - $ref: '#/components/schemas/InvalidParameterMaximumLength' - $ref: '#/components/schemas/InvalidParameterChoiceItem' - $ref: '#/components/schemas/InvalidParameterDependentItem' minItems: 1 nullable: false uniqueItems: true BadRequestError: allOf: - $ref: '#/components/schemas/BaseError' - type: object required: - invalid_parameters properties: invalid_parameters: $ref: '#/components/schemas/InvalidParameters' UnauthorizedError: allOf: - $ref: '#/components/schemas/BaseError' - type: object properties: status: example: 401 title: example: Unauthorized type: example: 'https://httpstatuses.com/401' instance: example: 'kong:trace:1234567890' detail: example: Invalid credentials ForbiddenError: allOf: - $ref: '#/components/schemas/BaseError' - type: object properties: status: example: 403 title: example: Forbidden type: example: 'https://httpstatuses.com/403' instance: example: 'kong:trace:1234567890' detail: example: Forbidden ConflictError: allOf: - $ref: '#/components/schemas/BaseError' - type: object properties: status: example: 409 title: example: Conflict type: example: 'https://httpstatuses.com/409' instance: example: 'kong:trace:1234567890' detail: example: Conflict NotFoundError: allOf: - $ref: '#/components/schemas/BaseError' - type: object properties: status: example: 404 title: example: Not Found type: example: 'https://httpstatuses.com/404' instance: example: 'kong:trace:1234567890' detail: example: Not found CreatedAt: description: An ISO-8601 timestamp representation of entity creation date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true UpdatedAt: description: An ISO-8601 timestamp representation of entity update date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true ControlPlaneId: description: ID of the Konnect control plane. Can be retrieved from the Control Planes API or the Konnect UI. type: string format: uuid example: 0949471e-b759-45ba-87ab-ee63fb781388 ConfigurationId: type: string format: uuid example: edaf40f9-9fb0-4ffe-bb74-4e763a6bd471 DataPlaneGroupId: description: ID of the data-plane group that represents a deployment target for a set of data-planes. type: string format: uuid example: cbb8872a-1f83-4806-bf69-fdf0b4783c7e readOnly: true x-speakeasy-param-suppress-computed-diff: true CustomDomainId: type: string format: uuid example: 39ed3790-085d-4605-9627-f96d86aaf425 readOnly: true x-speakeasy-param-suppress-computed-diff: true NetworkId: description: 'The network ID to operate on. For serverless.v1 kind of cloud gateways, this field should be omitted.' type: string format: uuid example: 36ae63d3-efd1-4bec-b246-62aa5d3f5695 x-speakeasy-param-suppress-computed-diff: true TransitGatewayId: type: string format: uuid example: 0850820b-d153-4a2a-b9be-7d2204779139 readOnly: true x-speakeasy-param-suppress-computed-diff: true PrivateDnsId: type: string format: uuid example: 1850820b-c69f-4a2a-b9be-bbcdbc5cd618 readOnly: true x-speakeasy-param-suppress-computed-diff: true ProviderAccountId: type: string format: uuid example: 929b2449-c69f-44c4-b6ad-9ecec6f811ae ControlPlaneGeo: description: | Geographic region of the control plane. Supported values: - `us` — United States - `eu` — Europe - `au` — Australia - `me` — Middle East - `in` — India - `sg` — Singapore type: string enum: - us - eu - au - me - in - sg title: Control-Plane Geo x-speakeasy-unknown-values: allow GatewayVersion: description: 'Supported gateway version. For serverless.v1 kind of cloud gateways, this field should be omitted.' type: string example: '3.10' title: Gateway Version InstanceTypeName: description: Instance type name to indicate capacity. type: string enum: - small - medium - large x-speakeasy-unknown-values: allow ApiAccess: description: | Controls how data planes in a configuration are exposed. Supported values: - `private` — data planes are accessible only within the VPC network; no public internet exposure - `public` — data planes are accessible from the public internet - `private+public` — equivalent to `public`; data planes are accessible from the public internet (default) type: string example: private+public enum: - private - public - private+public x-speakeasy-param-computed: true x-speakeasy-unknown-values: allow ProviderRegionId: description: Region ID for cloud provider region. type: string example: us-east-2 title: Provider Region ID ProviderName: description: Name of cloud provider. type: string example: aws enum: - aws - azure - gcp title: Provider Name x-speakeasy-unknown-values: allow ConfigurationDataPlaneGroupAutoscale: oneOf: - $ref: '#/components/schemas/ConfigurationDataPlaneGroupAutoscaleStatic' - $ref: '#/components/schemas/ConfigurationDataPlaneGroupAutoscaleAutopilot' ConfigurationDataPlaneGroupAutoscaleStatic: description: 'Object that describes the static autoscaling strategy. Deprecated in favor of the autopilot autoscaling strategy. Static autoscaling will be removed in a future version. For serverless.v1 kind of cloud gateways, this field should be omitted.' type: object properties: kind: type: string enum: - static instance_type: $ref: '#/components/schemas/InstanceTypeName' requested_instances: description: Number of data-planes the deployment target will contain. type: integer example: 3 additionalProperties: false deprecated: true required: - kind - instance_type - requested_instances title: Configuration Autoscale Static ConfigurationDataPlaneGroupAutoscaleAutopilot: description: 'Object that describes the autopilot autoscaling strategy. For serverless.v1 kind of cloud gateways, this field should be omitted.' type: object properties: kind: type: string enum: - autopilot base_rps: description: Base number of requests per second that the deployment target should support. type: integer example: 100 minimum: 1 max_rps: description: 'Max number of requests per second that the deployment target should support. If not set, this defaults to 10x base_rps. This field is deprecated and shouldn''t be used in new configurations as it will be removed in a future version. max_rps is now calculated as 10x base_rps.' type: integer example: 1000 deprecated: true readOnly: true x-speakeasy-param-computed: true x-speakeasy-param-suppress-computed-diff: true additionalProperties: false required: - kind - base_rps title: Configuration Autoscale Autopilot ConfigurationDataPlaneGroupEnvironment: description: Array of environment variables to set for a data-plane group. type: array items: $ref: '#/components/schemas/ConfigurationDataPlaneGroupEnvironmentField' title: Configuration Data-Plane Group Environment ConfigurationDataPlaneGroupEnvironmentField: description: Environment variable name and value to set for a data-plane group. type: object properties: name: description: | Name of the environment variable field to set for the data-plane group. Must be prefixed by KONG_ or OTEL_. type: string format: '^(KONG|OTEL)_[a-zA-Z_]+[a-zA-Z0-9_]*' example: KONG_LOG_LEVEL maxLength: 120 minLength: 6 value: description: Value assigned to the environment variable field for the data-plane group. type: string example: info maxLength: 2048 minLength: 1 required: - name - value title: Configuration Data-Plane Group Environment Field ConfigurationDataPlaneGroupConfig: description: 'Object that describes where a data-plane group will be deployed to, along with how many instances.' type: object properties: provider: $ref: '#/components/schemas/ProviderName' region: $ref: '#/components/schemas/ProviderRegionId' cloud_gateway_network_id: $ref: '#/components/schemas/NetworkId' autoscale: $ref: '#/components/schemas/ConfigurationDataPlaneGroupAutoscale' environment: $ref: '#/components/schemas/ConfigurationDataPlaneGroupEnvironment' additionalProperties: false required: - provider - region title: Configuration Data-Plane Group Config Item ConfigurationDataPlaneGroup: description: Object that describes the set of data-plane groups currently pointed to this configuration. type: object properties: id: $ref: '#/components/schemas/DataPlaneGroupId' provider: $ref: '#/components/schemas/ProviderName' region: $ref: '#/components/schemas/ProviderRegionId' autoscale: $ref: '#/components/schemas/ConfigurationDataPlaneGroupAutoscale' environment: $ref: '#/components/schemas/ConfigurationDataPlaneGroupEnvironment' cloud_gateway_network_id: $ref: '#/components/schemas/NetworkId' state: description: State of the data-plane group. type: string enum: - created - initializing - ready - terminating - terminated x-speakeasy-unknown-values: allow state_metadata: description: | Metadata describing the backing state of the dataplane group and why it may be in an erroneous state. type: object additionalProperties: false properties: reported_status: description: Reported status of the dataplane group from backing infrastructure. type: string example: ERROR default: null nullable: true x-speakeasy-param-computed: false reason: description: | Reason why the dataplane group may be in an erroneous state, reported from backing infrastructure. type: string example: | Dataplane group could not be deployed due to insufficient cloud provider compute instances. default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-terraform-ignore: true private_ip_addresses: description: | List of private IP addresses of the internal load balancer that proxies traffic to this data-plane group. type: array items: type: string example: - 192.168.248.132 - 192.168.66.81 - 192.168.137.135 default: null nullable: true x-speakeasy-param-computed: false egress_ip_addresses: description: | List of egress IP addresses for the network that this data-plane group runs on. type: array items: type: string example: - 71.78.149.75 - 91.149.112.244 - 51.235.15.121 default: null nullable: true x-speakeasy-param-computed: false created_at: description: An RFC-3339 timestamp representation of data-plane group creation date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true updated_at: description: An RFC-3339 timestamp representation of data-plane group update date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true required: - id - provider - region - state - created_at - updated_at title: Cloud Gateway Configuration Data-Plane Group ConfigurationKind: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Kind of the Cloud Gateway deployment. If serverless.v1 is specified, the following fields should be omitted (will be ignored if provided): autoscale, cloud_gateway_network_id, version. type: string default: dedicated.v0 enum: - dedicated.v0 - serverless.v1 title: ConfigurationKind x-speakeasy-unknown-values: allow CustomDomainKind: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Kind of the custom domain based on Cloud Gateway deployment. type: string default: dedicated.v0 enum: - dedicated.v0 - serverless.v1 title: CustomDomainKind x-speakeasy-unknown-values: allow ConfigurationManifest: x-speakeasy-entity: CloudGatewayConfiguration description: Object containing information about a control-plane's cloud-gateways configuration. type: object properties: id: $ref: '#/components/schemas/ConfigurationId' version: $ref: '#/components/schemas/GatewayVersion' api_access: $ref: '#/components/schemas/ApiAccess' dataplane_group_config: description: 'Object that describes where data-planes will be deployed to, along with how many instances.' type: array items: $ref: '#/components/schemas/ConfigurationDataPlaneGroupConfig' title: Configuration Data-Plane Group Configs x-speakeasy-terraform-ignore: true dataplane_groups: description: | List of data-plane groups that describe where data-planes will be deployed to, along with how many instances. type: array items: $ref: '#/components/schemas/ConfigurationDataPlaneGroup' format: set kind: $ref: '#/components/schemas/ConfigurationKind' entity_version: description: | Positive, monotonically increasing version integer, to serialize configuration changes. type: number example: 1 readOnly: true x-speakeasy-param-suppress-computed-diff: true created_at: description: An RFC-3339 timestamp representation of configuration creation date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true updated_at: description: An RFC-3339 timestamp representation of configuration update date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true control_plane_id: $ref: '#/components/schemas/ControlPlaneId' control_plane_geo: $ref: '#/components/schemas/ControlPlaneGeo' required: - id - control_plane_id - control_plane_geo - dataplane_group_config - dataplane_groups - entity_version - created_at - updated_at title: Configuration CreateConfigurationDataPlaneGroup: description: 'Object that describes where to deploy a data-plane group, along with how many instances.' type: object properties: provider: $ref: '#/components/schemas/ProviderName' region: $ref: '#/components/schemas/ProviderRegionId' cloud_gateway_network_id: $ref: '#/components/schemas/NetworkId' autoscale: $ref: '#/components/schemas/ConfigurationDataPlaneGroupAutoscale' environment: $ref: '#/components/schemas/ConfigurationDataPlaneGroupEnvironment' additionalProperties: false required: - provider - region title: CreateConfigurationDataPlaneGroup ProviderAccount: description: Object containing mapping for organization and cloud provider to account ID. type: object properties: id: $ref: '#/components/schemas/ProviderAccountId' provider: $ref: '#/components/schemas/ProviderName' provider_account_id: description: ID of the cloud provider account. type: string readOnly: true x-speakeasy-param-suppress-computed-diff: true created_at: description: An RFC-3339 timestamp representation of provider account creation date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true updated_at: description: An RFC-3339 timestamp representation of provider account update date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true required: - id - provider - provider_account_id - created_at - updated_at title: Cloud Gateway Provider Account NetworkCreateState: description: Initial state for creating a network. type: string default: initializing enum: - initializing - offline title: Network Create State x-speakeasy-unknown-values: allow NetworkState: description: | The current state of the network. Possible values: - `created`: The network was created, but provisioning hasn't started yet. - `initializing`: The network is being provisioned in the cloud provider. - `offline`: The network was created but isn't provisioned; no data planes can be deployed. - `ready`: The network is fully provisioned and available for data plane groups. - `terminating`: The network is being deleted and is no longer accepting new resources. - `terminated`: The network has been fully deleted and is no longer available. enum: - created - initializing - offline - ready - terminating - terminated readOnly: true title: Network State x-speakeasy-param-suppress-computed-diff: true x-speakeasy-terraform-ignore: true x-speakeasy-unknown-values: allow NetworkStateMetadata: description: | Metadata describing the backing state of the network and why it may be in an erroneous state. type: object properties: reported_status: description: Reported status of the network from backing infrastructure. type: string example: INVALID reason: description: | Reason why the network may be in an erroneous state, reported from backing infrastructure. type: string example: | Network could not be deployed due to insufficient cloud provider compute instances. additionalProperties: false readOnly: true title: Network State Metadata x-speakeasy-param-suppress-computed-diff: true x-speakeasy-terraform-ignore: true NetworkProviderMetadata: description: Metadata describing attributes returned by cloud-provider for the network. type: object properties: vpc_id: type: string title: VPC ID subnet_ids: type: array items: type: string title: Subnet IDs additionalProperties: false readOnly: true title: Network Provider Metadata x-speakeasy-param-suppress-computed-diff: true NetworkName: description: Human-readable name of the network. type: string example: us-east-2-network title: Network Name NetworkCIDRBlock: description: CIDR block for the network. Must not overlap with reserved blocks for the target region. Query the Resource Availability endpoint for valid CIDR ranges per region and provider. type: string example: 10.0.0.0/16 title: Network CIDR Block NetworkAvailabilityZones: description: List of availability zones that the network is attached to. type: array items: type: string example: - use2-az1 - use2-az2 - use2-az3 Network: x-speakeasy-entity: CloudGatewayNetwork description: Object containing information about a network to be used in configurations. type: object properties: id: $ref: '#/components/schemas/NetworkId' name: $ref: '#/components/schemas/NetworkName' default: description: | Whether the network is a default network or not. Default networks are Networks that are created automatically by Konnect when an organization is linked to a provider account. type: boolean example: false x-speakeasy-param-suppress-computed-diff: true cloud_gateway_provider_account_id: $ref: '#/components/schemas/ProviderAccountId' region: $ref: '#/components/schemas/ProviderRegionId' availability_zones: $ref: '#/components/schemas/NetworkAvailabilityZones' cidr_block: $ref: '#/components/schemas/NetworkCIDRBlock' state: $ref: '#/components/schemas/NetworkState' state_metadata: $ref: '#/components/schemas/NetworkStateMetadata' provider_metadata: $ref: '#/components/schemas/NetworkProviderMetadata' transit_gateway_count: description: The number of transit gateways attached to this network. type: integer example: 0 readOnly: true x-speakeasy-param-suppress-computed-diff: true configuration_reference_count: description: The number of configurations that reference this network. type: integer example: 0 readOnly: true x-speakeasy-param-suppress-computed-diff: true entity_version: description: | Monotonically-increasing version count of the network, to indicate the order of updates to the network. type: integer example: 1 readOnly: true x-speakeasy-param-suppress-computed-diff: true created_at: description: An RFC-3339 timestamp representation of network creation date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true updated_at: description: An RFC-3339 timestamp representation of network update date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true required: - id - name - default - cloud_gateway_provider_account_id - region - availability_zones - cidr_block - provider_metadata - state - transit_gateway_count - configuration_reference_count - entity_version - created_at - updated_at title: Network CreateNetworkRequest: x-speakeasy-entity: CloudGatewayNetwork description: Request schema for creating a network. type: object properties: name: $ref: '#/components/schemas/NetworkName' cloud_gateway_provider_account_id: $ref: '#/components/schemas/ProviderAccountId' region: $ref: '#/components/schemas/ProviderRegionId' availability_zones: $ref: '#/components/schemas/NetworkAvailabilityZones' cidr_block: $ref: '#/components/schemas/NetworkCIDRBlock' state: $ref: '#/components/schemas/NetworkCreateState' additionalProperties: false required: - name - cloud_gateway_provider_account_id - region - availability_zones - cidr_block title: CreateNetworkRequest PatchNetworkRequest: x-speakeasy-entity: CloudGatewayNetwork description: Request schema for updating a network. type: object properties: name: $ref: '#/components/schemas/NetworkName' additionalProperties: false title: PatchNetworkRequest TransitGatewayState: description: | The current state of the Transit Gateway. Possible values: - `created` - The attachment has been created but is not attached to transit gateway. - `initializing` - The attachment is in the process of being initialized and is setting up necessary resources. - `pending-acceptance` The attachment request is awaiting acceptance in customer VPC. - `pending-user-action` The attachment request is awaiting user action in customer VPC. - `ready` - The transit gateway attachment is fully operational and can route traffic as configured. - `terminating` - The attachment is in the process of being deleted and is no longer accepting new traffic. - `terminated` - The attachment has been fully deleted and is no longer available. - `error` - The attachment is in an error state. type: string enum: - created - initializing - pending-acceptance - pending-user-action - ready - terminating - terminated - error readOnly: true title: Transit Gateway State x-speakeasy-param-suppress-computed-diff: true x-speakeasy-unknown-values: allow AwsResourceEndpointConfigState: description: | The current state of the resource config in AWS Resource Endpoint. Possible values: - `initializing` - The config is in the process of being initialized and is setting up necessary resources. - `missing` - The config is missing and is no longer accepting new traffic. - `ready` - The config is fully operational and can route traffic as configured. - `error` - The config is in an error state, and is not operational. - `terminating` - The config is in the process of being deleted and is no longer accepting new traffic. type: string enum: - initializing - missing - ready - error - terminating readOnly: true title: AWS Resource Endpoint Config State x-speakeasy-param-suppress-computed-diff: true x-speakeasy-unknown-values: allow AwsTransitGatewayAttachmentConfig: type: object properties: kind: enum: - aws-transit-gateway-attachment title: AWS Transit Gateway Attachment Type transit_gateway_id: description: AWS Transit Gateway ID to create attachment to. type: string title: Transit Gateway ID ram_share_arn: description: Resource Share ARN to verify request to create transit gateway attachment. type: string title: RAM Share ARN additionalProperties: false required: - kind - transit_gateway_id - ram_share_arn title: AWS Transit Gateway Attachment Config AwsTransitGatewayAttachmentConfigForResponse: type: object properties: kind: enum: - aws-transit-gateway-attachment title: AWS Transit Gateway Attachment Type transit_gateway_id: description: AWS Transit Gateway ID to create attachment to. type: string title: Transit Gateway ID ram_share_arn: description: Resource Share ARN to verify request to create transit gateway attachment. type: string title: RAM Share ARN attachment_id: description: ID of the AWS Transit Gateway attachment. type: string default: null nullable: true title: AWS Transit Gateway Attachment ID x-speakeasy-param-computed: false additionalProperties: false required: - kind - transit_gateway_id - ram_share_arn title: AWS Transit Gateway Attachment Config AwsVpcPeeringGatewayAttachmentConfig: type: object properties: kind: enum: - aws-vpc-peering-attachment title: AWS VPC Peering Attachment Config peer_account_id: description: AWS account ID of the peer VPC owner. type: string example: '123456789012' peer_vpc_id: description: ID of the peer VPC to establish the peering connection with. type: string example: vpc-0a1b2c3d4e5f67890 peer_vpc_region: description: AWS region where the peer VPC is located. type: string example: us-east-2 additionalProperties: false required: - kind - peer_account_id - peer_vpc_id - peer_vpc_region title: AWS VPC Peering Attachment Config AwsVpcPeeringGatewayAttachmentConfigForResponse: type: object properties: kind: enum: - aws-vpc-peering-attachment title: AWS VPC Peering Attachment Config peer_account_id: description: AWS account ID of the peer VPC owner. type: string example: '123456789012' peer_vpc_id: description: ID of the peer VPC to establish the peering connection with. type: string example: vpc-0a1b2c3d4e5f67890 peer_vpc_region: description: AWS region where the peer VPC is located. type: string example: us-east-2 peering_connection_id: description: 'ID of the AWS VPC peering connection, assigned after the peering request is accepted.' type: string example: pcx-0a1b2c3d4e5f67890 default: null nullable: true x-speakeasy-param-computed: false additionalProperties: false required: - kind - peer_account_id - peer_vpc_id - peer_vpc_region title: AWS VPC Peering Attachment Config AwsResourceEndpointAttachmentConfig: type: object properties: kind: enum: - aws-resource-endpoint-attachment title: AWS Resource Endpoint Attachment Type ram_share_arn: description: Resource Share ARN to verify request to create transit gateway attachment. type: string title: RAM Share ARN resource_config: $ref: '#/components/schemas/AwsResourceEndpointConfig' additionalProperties: false required: - kind - ram_share_arn title: AWS Resource Endpoint Attachment Config AwsResourceEndpointAttachmentConfigResponse: type: object properties: kind: enum: - aws-resource-endpoint-attachment title: AWS Resource Endpoint Attachment Type ram_share_arn: description: Resource Share ARN to verify request to create transit gateway attachment. type: string title: RAM Share ARN resource_config: $ref: '#/components/schemas/AwsResourceEndpointConfigResponse' additionalProperties: false required: - kind - ram_share_arn - resource_config title: AWS Resource Endpoint Attachment Config Response AwsResourceEndpointConfig: description: | List of unique resource config mapping for aws resource endpoint. type: array items: type: object additionalProperties: false properties: resource_config_id: description: Resource Config ID to uniquely identify a resource configuration. type: string title: Resource Config ID domain_name: description: Domain Name to uniquely identify a resource configuration. type: string title: Domain Name required: - resource_config_id - domain_name title: AWS Resource Endpoint Config AwsResourceEndpointConfigResponse: description: | List of unique resource config mapping for aws resource endpoint. type: array items: type: object additionalProperties: false properties: resource_config_id: description: Resource Config ID to uniquely identify a resource configuration. type: string title: Resource Config ID domain_name: description: Domain Name to uniquely identify a resource configuration. type: string title: Domain Name state: $ref: '#/components/schemas/AwsResourceEndpointConfigState' required: - resource_config_id - domain_name - state title: AWS Resource Endpoint Config Response AzureVNETPeeringAttachmentConfig: type: object properties: kind: enum: - azure-vnet-peering-attachment title: Azure VNET Peering Attachment Type tenant_id: description: Tenant ID for the Azure VNET Peering attachment. type: string title: Tenant ID subscription_id: description: Subscription ID for the Azure VNET Peering attachment. type: string title: Subscription ID resource_group_name: description: Resource Group Name for the Azure VNET Peering attachment. type: string title: Resource Group Name vnet_name: description: VNET Name for the Azure VNET Peering attachment. type: string title: VNET Name additionalProperties: false required: - kind - tenant_id - subscription_id - resource_group_name - vnet_name title: Azure VNET Peering Attachment Config AzureVHubPeeringAttachmentConfig: type: object properties: kind: enum: - azure-vhub-peering-attachment title: Azure Virtual Hub Peering Attachment Type tenant_id: description: Tenant ID of the Azure Virtual Hub resource. type: string title: Tenant ID subscription_id: description: Subscription ID of the Azure Virtual Hub resource. type: string title: Subscription ID resource_group_name: description: Resource Group Name of the Azure Virtual Hub resource. type: string title: Resource Group Name vhub_name: description: Name of the Azure Virtual Hub resource. type: string title: Virtual Hub Name additionalProperties: false required: - kind - tenant_id - subscription_id - resource_group_name - vhub_name title: Azure Virtual Hub Peering Attachment Config GCPVPCPeeringAttachmentConfig: type: object properties: kind: enum: - gcp-vpc-peering-attachment title: GCP VPC Peering Attachment Type peer_project_id: description: GCP Project ID of the peer account to create attachment to. type: string title: GCP Project ID peer_vpc_name: description: GCP VPC Name of the peer account to create attachment to. type: string title: GCP VPC Name additionalProperties: false required: - kind - peer_project_id - peer_vpc_name title: GCP VPC Peering Attachment Config TransitGatewayDnsConfig: description: | List of mappings from remote DNS server IP address sets to proxied internal domains, for a transit gateway attachment. type: array items: type: object additionalProperties: false properties: remote_dns_server_ip_addresses: description: Remote DNS Server IP Addresses to connect to for resolving internal DNS via a transit gateway. type: array items: type: string example: - 10.0.0.2 title: Remote DNS Server IP Addresses domain_proxy_list: description: | Internal domain names to proxy for DNS resolution from the listed remote DNS server IP addresses, for a transit gateway. type: array items: type: string example: - foobar.com title: Domain Proxy List required: - remote_dns_server_ip_addresses - domain_proxy_list title: Transit Gateway DNS Config TransitGatewayName: description: Human-readable name of the transit gateway. type: string example: us-east-2 transit gateway title: Transit Gateway Name TransitGatewayCIDRBlocks: description: | CIDR blocks for constructing a route table for the transit gateway, when attaching to the owning network. type: array items: type: string example: - 10.0.0.0/8 - 100.64.0.0/10 - 172.16.0.0/12 title: Transit Gateway CIDR Blocks PrivateDnsResponse: oneOf: - $ref: '#/components/schemas/AwsPrivateHostedZoneResponse' - $ref: '#/components/schemas/AwsPrivateDnsResolverResponse' - $ref: '#/components/schemas/GcpPrivateHostedZoneResponse' - $ref: '#/components/schemas/AzurePrivateHostedZoneResponse' - $ref: '#/components/schemas/AzurePrivateDnsResolverResponse' AwsPrivateHostedZoneResponse: type: object properties: id: $ref: '#/components/schemas/PrivateDnsId' state: $ref: '#/components/schemas/PrivateDnsState' state_metadata: description: | Metadata describing the backing state of the Private Dns and why it may be in an erroneous state. type: object additionalProperties: false properties: reported_status: description: Reported status of the Private Dns from backing infrastructure. type: string example: ERROR default: null nullable: true x-speakeasy-param-computed: false reason: description: | Reason why the Private Dns may be in an erroneous state, reported from backing infrastructure. type: string example: | Failed to create Private Dns due to invalid Cloud Provider configuration. default: null nullable: true x-speakeasy-param-computed: false title: PrivateDnsStateMetadata entity_version: description: | Monotonically-increasing version count of the Private DNS, to indicate the order of updates to the Private DNS. type: integer example: 1 readOnly: true x-speakeasy-param-suppress-computed-diff: true created_at: description: An RFC-3339 timestamp representation of Private DNS creation date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true updated_at: description: An RFC-3339 timestamp representation of Private DNS update date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true name: $ref: '#/components/schemas/PrivateDnsName' private_dns_attachment_config: $ref: '#/components/schemas/AwsPrivateHostedZoneAttachmentConfig' required: - id - state - state_metadata - entity_version - created_at - updated_at - name - private_dns_attachment_config AwsPrivateHostedZoneAttachmentConfig: type: object properties: kind: enum: - aws-private-hosted-zone-attachment title: AWS Private Hosted Zone Type hosted_zone_id: description: AWS Hosted Zone to create attachment to. type: string title: Hosted Zone Id additionalProperties: false required: - kind - hosted_zone_id title: AWS Private Hosted Zone Attachment Config GcpPrivateHostedZoneAttachmentConfig: type: object properties: kind: enum: - gcp-private-hosted-zone-attachment title: GCP Private Hosted Zone Type domain_name: description: Domain name to create attachment to. type: string title: Domain Name peer_project_id: description: Customer's GCP Project ID. type: string title: Peer Project Id peer_vpc_name: description: Customer's GCP VPC ID. type: string title: Peer VPC Name additionalProperties: false required: - kind - domain_name - peer_project_id - peer_vpc_name title: GCP Private Hosted Zone Attachment Config GcpPrivateHostedZoneResponse: type: object properties: id: $ref: '#/components/schemas/PrivateDnsId' state: $ref: '#/components/schemas/PrivateDnsState' state_metadata: description: | Metadata describing the backing state of the Private Dns and why it may be in an erroneous state. type: object additionalProperties: false properties: reported_status: description: Reported status of the Private Dns from backing infrastructure. type: string example: ERROR default: null nullable: true x-speakeasy-param-computed: false reason: description: | Reason why the Private Dns may be in an erroneous state, reported from backing infrastructure. type: string example: | Failed to create Private Dns due to invalid Cloud Provider configuration. default: null nullable: true x-speakeasy-param-computed: false title: PrivateDnsStateMetadata entity_version: description: | Monotonically-increasing version count of the Private DNS, to indicate the order of updates to the Private DNS. type: integer example: 1 readOnly: true x-speakeasy-param-suppress-computed-diff: true created_at: description: An RFC-3339 timestamp representation of Private DNS creation date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true updated_at: description: An RFC-3339 timestamp representation of Private DNS update date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true name: $ref: '#/components/schemas/PrivateDnsName' private_dns_attachment_config: $ref: '#/components/schemas/GcpPrivateHostedZoneAttachmentConfig' required: - id - state - state_metadata - entity_version - created_at - updated_at - name - private_dns_attachment_config AzurePrivateHostedZoneAttachmentConfig: type: object properties: kind: enum: - azure-private-hosted-zone-attachment title: Azure Private Hosted Zone Type domain_name: description: Customer's Azure Private DNS Zone Name. type: string title: Domain Name peer_tenant_id: description: Customer's Azure Tenant ID. type: string title: Peer Tenant Id peer_subscription_id: description: Customer's Azure Subscription ID. type: string title: Peer Subscription Id peer_resource_group_id: description: Customer's Azure Resource Group ID. type: string title: Peer Resource Group Id peer_vnet_link_name: description: Customer's Azure VNet Link Name. type: string title: Peer VNet Link Name example: kind: azure-private-hosted-zone-attachment domain_name: example.private.azure.com peer_tenant_id: 87654321-4321-4321-4321-210987654321 peer_subscription_id: 12345678-1234-1234-1234-123456789012 peer_resource_group_id: customer-dns-rg peer_vnet_link_name: kong-vnet-link additionalProperties: false required: - kind - domain_name - peer_tenant_id - peer_subscription_id - peer_resource_group_id - peer_vnet_link_name title: Azure Private Hosted Zone Attachment Config AzurePrivateHostedZoneResponse: type: object properties: id: $ref: '#/components/schemas/PrivateDnsId' state: $ref: '#/components/schemas/PrivateDnsState' state_metadata: description: | Metadata describing the backing state of the Private Dns and why it may be in an erroneous state. type: object additionalProperties: false properties: reported_status: description: Reported status of the Private Dns from backing infrastructure. type: string example: ERROR default: null nullable: true x-speakeasy-param-computed: false reason: description: | Reason why the Private Dns may be in an erroneous state, reported from backing infrastructure. type: string example: | Failed to create Private Dns due to invalid Cloud Provider configuration. default: null nullable: true x-speakeasy-param-computed: false title: PrivateDnsStateMetadata entity_version: description: | Monotonically-increasing version count of the Private DNS, to indicate the order of updates to the Private DNS. type: integer example: 1 readOnly: true x-speakeasy-param-suppress-computed-diff: true created_at: description: An RFC-3339 timestamp representation of Private DNS creation date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true updated_at: description: An RFC-3339 timestamp representation of Private DNS update date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true name: $ref: '#/components/schemas/PrivateDnsName' private_dns_attachment_config: $ref: '#/components/schemas/AzurePrivateHostedZoneAttachmentConfig' required: - id - state - state_metadata - entity_version - created_at - updated_at - name - private_dns_attachment_config AwsPrivateDnsResolverResponse: type: object properties: id: $ref: '#/components/schemas/PrivateDnsId' state: $ref: '#/components/schemas/PrivateDnsState' state_metadata: description: | Metadata describing the backing state of the Private Dns and why it may be in an erroneous state. type: object additionalProperties: false properties: reported_status: description: Reported status of the Private Dns from backing infrastructure. type: string example: ERROR default: null nullable: true x-speakeasy-param-computed: false reason: description: | Reason why the Private Dns may be in an erroneous state, reported from backing infrastructure. type: string example: | Failed to create Private Dns due to invalid Cloud Provider configuration. default: null nullable: true x-speakeasy-param-computed: false title: PrivateDnsStateMetadata entity_version: description: | Monotonically-increasing version count of the Private DNS, to indicate the order of updates to the Private DNS. type: integer example: 1 readOnly: true x-speakeasy-param-suppress-computed-diff: true created_at: description: An RFC-3339 timestamp representation of Private DNS creation date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true updated_at: description: An RFC-3339 timestamp representation of Private DNS update date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true name: $ref: '#/components/schemas/PrivateDnsName' private_dns_attachment_config: $ref: '#/components/schemas/AwsPrivateDnsResolverAttachmentConfig' required: - id - state - state_metadata - entity_version - created_at - updated_at - name - private_dns_attachment_config AzurePrivateDnsResolverResponse: type: object properties: id: $ref: '#/components/schemas/PrivateDnsId' state: $ref: '#/components/schemas/PrivateDnsState' state_metadata: description: | Metadata describing the backing state of the Private Dns and why it may be in an erroneous state. type: object additionalProperties: false properties: reported_status: description: Reported status of the Private Dns from backing infrastructure. type: string example: ERROR default: null nullable: true x-speakeasy-param-computed: false reason: description: | Reason why the Private Dns may be in an erroneous state, reported from backing infrastructure. type: string example: | Failed to create Private Dns due to invalid Cloud Provider configuration. default: null nullable: true x-speakeasy-param-computed: false title: PrivateDnsStateMetadata entity_version: description: | Monotonically-increasing version count of the Private DNS, to indicate the order of updates to the Private DNS. type: integer example: 1 readOnly: true x-speakeasy-param-suppress-computed-diff: true created_at: description: An RFC-3339 timestamp representation of Private DNS creation date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true updated_at: description: An RFC-3339 timestamp representation of Private DNS update date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true name: $ref: '#/components/schemas/PrivateDnsName' private_dns_attachment_config: $ref: '#/components/schemas/AzurePrivateDnsResolverAttachmentConfig' required: - id - state - state_metadata - entity_version - created_at - updated_at - name - private_dns_attachment_config AwsPrivateDnsResolverAttachmentConfig: type: object properties: kind: enum: - aws-outbound-resolver title: AWS Private DNS Resolver Type dns_config: $ref: '#/components/schemas/PrivateDnsResolverConfig' additionalProperties: false required: - kind - dns_config title: AWS Private DNS Resolver Attachment Config AzurePrivateDnsResolverAttachmentConfig: type: object properties: kind: enum: - azure-outbound-resolver title: Azure Private DNS Resolver Type dns_config: $ref: '#/components/schemas/PrivateDnsResolverConfig' example: kind: azure-outbound-resolver dns_config: internal.example.com: remote_dns_server_ip_addresses: - 10.0.1.100 db.corp.internal: remote_dns_server_ip_addresses: - 10.0.2.100 additionalProperties: false required: - kind - dns_config title: Azure Private DNS Resolver Attachment Config PrivateDnsResolverConfig: description: | Object that contains mappings from proxied internal domains to remote DNS server IP address for a Private DNS Resolver. type: object example: internal.example.com: remote_dns_server_ip_addresses: - 10.0.1.100 db.corp.internal: remote_dns_server_ip_addresses: - 10.0.2.100 additionalProperties: $ref: '#/components/schemas/PrivateDnsResolverConfigObject' title: Private DNS Resolver Config Item PrivateDnsResolverConfigObject: type: object properties: remote_dns_server_ip_addresses: description: IP addresses of remote DNS servers used by the Private DNS Resolver for DNS resolution. type: array items: type: string example: - 10.0.0.2 required: - remote_dns_server_ip_addresses PrivateDnsName: description: Human-readable name of the Private DNS. type: string example: us-east-2-private-dns title: Private DNS Name PrivateDnsState: description: | The current state of the Private DNS attachment. Possible values: - `created` - The attachment has been created but is not attached to Private DNS. - `initializing` - The attachment is in the process of being initialized and is setting up necessary resources. - `pending-association` The attachment request is awaiting association to the cloud provider infrastructure in order for provisioning to proceed. - `ready` - The attachment is fully operational and can route traffic as configured. - `error` - The attachment is in an error state, and is not operational. - `terminating` - The attachment is in the process of being deleted. - `terminated` - The attachment has been fully deleted and is no longer available. type: string enum: - created - initializing - pending-association - ready - error - terminating - terminated title: Private DNS State x-speakeasy-unknown-values: allow CreatePrivateDnsRequest: description: Request schema for creating a Private DNS. type: object properties: name: $ref: '#/components/schemas/PrivateDnsName' private_dns_attachment_config: oneOf: - $ref: '#/components/schemas/AwsPrivateHostedZoneAttachmentConfig' - $ref: '#/components/schemas/AwsPrivateDnsResolverAttachmentConfig' - $ref: '#/components/schemas/GcpPrivateHostedZoneAttachmentConfig' - $ref: '#/components/schemas/AzurePrivateHostedZoneAttachmentConfig' - $ref: '#/components/schemas/AzurePrivateDnsResolverAttachmentConfig' title: CreatePrivateDnsRequest AwsTransitGatewayResponse: type: object properties: name: $ref: '#/components/schemas/TransitGatewayName' dns_config: $ref: '#/components/schemas/TransitGatewayDnsConfig' cidr_blocks: $ref: '#/components/schemas/TransitGatewayCIDRBlocks' transit_gateway_attachment_config: $ref: '#/components/schemas/AwsTransitGatewayAttachmentConfigForResponse' id: $ref: '#/components/schemas/TransitGatewayId' state: $ref: '#/components/schemas/TransitGatewayState' state_metadata: description: | Metadata describing the backing state of the transit gateway and why it may be in an erroneous state. type: object additionalProperties: false properties: reported_status: description: Reported status of the transit gateway from backing infrastructure. type: string example: ERROR reason: description: | Reason why the transit gateway may be in an erroneous state, reported from backing infrastructure. type: string example: | Transit Gateway Attachment configuration could not find a resource with the provided ram share arn. readOnly: true title: TransitGatewayStateMetadata x-speakeasy-param-suppress-computed-diff: true entity_version: description: | Monotonically-increasing version count of the transit gateway, to indicate the order of updates to the transit gateway. type: integer example: 1 readOnly: true x-speakeasy-param-suppress-computed-diff: true created_at: description: An RFC-3339 timestamp representation of transit gateway creation date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true updated_at: description: An RFC-3339 timestamp representation of transit gateway update date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true required: - name - cidr_blocks - transit_gateway_attachment_config - dns_config - id - state - entity_version - created_at - updated_at title: AWS Transit Gateway AwsVpcPeeringGatewayResponse: type: object properties: name: $ref: '#/components/schemas/TransitGatewayName' dns_config: $ref: '#/components/schemas/TransitGatewayDnsConfig' cidr_blocks: $ref: '#/components/schemas/TransitGatewayCIDRBlocks' transit_gateway_attachment_config: $ref: '#/components/schemas/AwsVpcPeeringGatewayAttachmentConfigForResponse' id: $ref: '#/components/schemas/TransitGatewayId' state: $ref: '#/components/schemas/TransitGatewayState' state_metadata: description: | Metadata describing the backing state of the transit gateway and why it may be in an erroneous state. type: object additionalProperties: false properties: reported_status: description: Reported status of the transit gateway from backing infrastructure. type: string example: ERROR reason: description: | Reason why the transit gateway may be in an erroneous state, reported from backing infrastructure. type: string example: | Transit Gateway Attachment configuration could not find a resource with the provided ram share arn. readOnly: true title: TransitGatewayStateMetadata x-speakeasy-param-suppress-computed-diff: true entity_version: description: | Monotonically-increasing version count of the transit gateway, to indicate the order of updates to the transit gateway. type: integer example: 1 readOnly: true x-speakeasy-param-suppress-computed-diff: true created_at: description: An RFC-3339 timestamp representation of transit gateway creation date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true updated_at: description: An RFC-3339 timestamp representation of transit gateway update date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true required: - name - cidr_blocks - transit_gateway_attachment_config - dns_config - id - state - entity_version - created_at - updated_at title: AWS VPC Peering Gateway AwsResourceEndpointGatewayResponse: type: object properties: name: $ref: '#/components/schemas/TransitGatewayName' dns_config: $ref: '#/components/schemas/TransitGatewayDnsConfig' transit_gateway_attachment_config: $ref: '#/components/schemas/AwsResourceEndpointAttachmentConfigResponse' id: $ref: '#/components/schemas/TransitGatewayId' state: $ref: '#/components/schemas/TransitGatewayState' state_metadata: description: | Metadata describing the backing state of the transit gateway and why it may be in an erroneous state. type: object additionalProperties: false properties: reported_status: description: Reported status of the transit gateway from backing infrastructure. type: string example: ERROR reason: description: | Reason why the transit gateway may be in an erroneous state, reported from backing infrastructure. type: string example: | Transit Gateway Attachment configuration could not find a resource with the provided ram share arn. readOnly: true title: TransitGatewayStateMetadata x-speakeasy-param-suppress-computed-diff: true entity_version: description: | Monotonically-increasing version count of the transit gateway, to indicate the order of updates to the transit gateway. type: integer example: 1 readOnly: true x-speakeasy-param-suppress-computed-diff: true created_at: description: An RFC-3339 timestamp representation of transit gateway creation date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true updated_at: description: An RFC-3339 timestamp representation of transit gateway update date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true required: - name - transit_gateway_attachment_config - id - dns_config - state - entity_version - created_at - updated_at title: AWS Resource Endpoint Gateway AzureTransitGatewayResponse: type: object properties: name: $ref: '#/components/schemas/TransitGatewayName' dns_config: $ref: '#/components/schemas/TransitGatewayDnsConfig' transit_gateway_attachment_config: $ref: '#/components/schemas/AzureVNETPeeringAttachmentConfig' id: $ref: '#/components/schemas/TransitGatewayId' state: $ref: '#/components/schemas/TransitGatewayState' state_metadata: description: | Metadata describing the backing state of the transit gateway and why it may be in an erroneous state. type: object additionalProperties: false properties: reported_status: description: Reported status of the transit gateway from backing infrastructure. type: string example: ERROR reason: description: | Reason why the transit gateway may be in an erroneous state, reported from backing infrastructure. type: string example: | Transit Gateway Attachment configuration could not find a resource with the provided ram share arn. readOnly: true title: TransitGatewayStateMetadata x-speakeasy-param-suppress-computed-diff: true entity_version: description: | Monotonically-increasing version count of the transit gateway, to indicate the order of updates to the transit gateway. type: integer example: 1 readOnly: true x-speakeasy-param-suppress-computed-diff: true created_at: description: An RFC-3339 timestamp representation of transit gateway creation date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true updated_at: description: An RFC-3339 timestamp representation of transit gateway update date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true required: - name - transit_gateway_attachment_config - id - dns_config - state - entity_version - created_at - updated_at title: Azure Transit Gateway AzureVHubPeeringGatewayResponse: type: object properties: name: $ref: '#/components/schemas/TransitGatewayName' dns_config: $ref: '#/components/schemas/TransitGatewayDnsConfig' transit_gateway_attachment_config: $ref: '#/components/schemas/AzureVHubPeeringAttachmentConfig' id: $ref: '#/components/schemas/TransitGatewayId' state: $ref: '#/components/schemas/TransitGatewayState' state_metadata: description: | Metadata describing the backing state of the transit gateway and why it may be in an erroneous state. type: object additionalProperties: false properties: reported_status: description: Reported status of the transit gateway from backing infrastructure. type: string example: ERROR reason: description: | Reason why the transit gateway may be in an erroneous state, reported from backing infrastructure. type: string example: | Transit Gateway Attachment configuration could not find a resource with the provided ram share arn. readOnly: true title: TransitGatewayStateMetadata x-speakeasy-param-suppress-computed-diff: true entity_version: description: | Monotonically-increasing version count of the transit gateway, to indicate the order of updates to the transit gateway. type: integer example: 1 readOnly: true x-speakeasy-param-suppress-computed-diff: true created_at: description: An RFC-3339 timestamp representation of transit gateway creation date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true updated_at: description: An RFC-3339 timestamp representation of transit gateway update date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true required: - name - transit_gateway_attachment_config - id - dns_config - state - entity_version - created_at - updated_at title: Azure Virtual Hub Peering Gateway x-speakeasy-name-override: AzureVhubPeeringGatewayResponse GCPVPCPeeringGatewayResponse: type: object properties: name: $ref: '#/components/schemas/TransitGatewayName' dns_config: $ref: '#/components/schemas/TransitGatewayDnsConfig' transit_gateway_attachment_config: $ref: '#/components/schemas/GCPVPCPeeringAttachmentConfig' id: $ref: '#/components/schemas/TransitGatewayId' state: $ref: '#/components/schemas/TransitGatewayState' state_metadata: description: | Metadata describing the backing state of the transit gateway and why it may be in an erroneous state. type: object additionalProperties: false properties: reported_status: description: Reported status of the transit gateway from backing infrastructure. type: string example: ERROR reason: description: | Reason why the transit gateway may be in an erroneous state, reported from backing infrastructure. type: string example: | Transit Gateway Attachment configuration could not find a resource with the provided ram share arn. readOnly: true title: TransitGatewayStateMetadata x-speakeasy-param-suppress-computed-diff: true entity_version: description: | Monotonically-increasing version count of the transit gateway, to indicate the order of updates to the transit gateway. type: integer example: 1 readOnly: true x-speakeasy-param-suppress-computed-diff: true created_at: description: An RFC-3339 timestamp representation of transit gateway creation date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true updated_at: description: An RFC-3339 timestamp representation of transit gateway update date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true required: - name - transit_gateway_attachment_config - id - dns_config - state - entity_version - created_at - updated_at title: GCP VPC Peering Transit Gateway TransitGatewayResponse: oneOf: - $ref: '#/components/schemas/AwsTransitGatewayResponse' - $ref: '#/components/schemas/AwsVpcPeeringGatewayResponse' - $ref: '#/components/schemas/AzureTransitGatewayResponse' - $ref: '#/components/schemas/AzureVHubPeeringGatewayResponse' - $ref: '#/components/schemas/GCPVPCPeeringGatewayResponse' - $ref: '#/components/schemas/AwsResourceEndpointGatewayResponse' CreateAwsTransitGateway: type: object properties: name: $ref: '#/components/schemas/TransitGatewayName' dns_config: $ref: '#/components/schemas/TransitGatewayDnsConfig' cidr_blocks: $ref: '#/components/schemas/TransitGatewayCIDRBlocks' transit_gateway_attachment_config: $ref: '#/components/schemas/AwsTransitGatewayAttachmentConfig' required: - name - cidr_blocks - transit_gateway_attachment_config title: AWS Transit Gateway x-speakeasy-name-override: AWSTransitGateway CreateAwsVpcPeeringGateway: type: object properties: name: $ref: '#/components/schemas/TransitGatewayName' dns_config: $ref: '#/components/schemas/TransitGatewayDnsConfig' cidr_blocks: $ref: '#/components/schemas/TransitGatewayCIDRBlocks' transit_gateway_attachment_config: $ref: '#/components/schemas/AwsVpcPeeringGatewayAttachmentConfig' required: - name - cidr_blocks - transit_gateway_attachment_config title: AWS Vpc Peering Gateway x-speakeasy-name-override: AWSVpcPeeringGateway CreateAwsResourceEndpointGateway: type: object properties: name: $ref: '#/components/schemas/TransitGatewayName' dns_config: $ref: '#/components/schemas/TransitGatewayDnsConfig' transit_gateway_attachment_config: $ref: '#/components/schemas/AwsResourceEndpointAttachmentConfig' required: - name - transit_gateway_attachment_config title: AWS Resource Endpoint Gateway x-speakeasy-name-override: AWSResourceEndpointGateway CreateAzureTransitGateway: type: object properties: name: $ref: '#/components/schemas/TransitGatewayName' dns_config: $ref: '#/components/schemas/TransitGatewayDnsConfig' transit_gateway_attachment_config: $ref: '#/components/schemas/AzureVNETPeeringAttachmentConfig' required: - name - transit_gateway_attachment_config title: Azure Transit Gateway x-speakeasy-name-override: AzureTransitGateway CreateAzureVHubPeeringGateway: type: object properties: name: $ref: '#/components/schemas/TransitGatewayName' dns_config: $ref: '#/components/schemas/TransitGatewayDnsConfig' transit_gateway_attachment_config: $ref: '#/components/schemas/AzureVHubPeeringAttachmentConfig' required: - name - transit_gateway_attachment_config title: Azure Virtual Hub Peering Gateway x-speakeasy-name-override: AzureVhubPeeringGateway CreateGCPVPCPeeringTransitGateway: type: object properties: name: $ref: '#/components/schemas/TransitGatewayName' dns_config: $ref: '#/components/schemas/TransitGatewayDnsConfig' transit_gateway_attachment_config: $ref: '#/components/schemas/GCPVPCPeeringAttachmentConfig' required: - name - transit_gateway_attachment_config title: GCP VPC Peering Transit Gateway x-speakeasy-name-override: GcpVpcPeeringTransitGateway CreateTransitGatewayRequest: description: Request schema for creating a transit gateway. type: object oneOf: - $ref: '#/components/schemas/CreateAwsTransitGateway' - $ref: '#/components/schemas/CreateAwsVpcPeeringGateway' - $ref: '#/components/schemas/CreateAwsResourceEndpointGateway' - $ref: '#/components/schemas/CreateAzureTransitGateway' - $ref: '#/components/schemas/CreateAzureVHubPeeringGateway' - $ref: '#/components/schemas/CreateGCPVPCPeeringTransitGateway' title: CreateTransitGatewayRequest PatchAwsResourceEndpointGateway: description: Request schema for updating AWS Resource Endpoint. properties: transit_gateway_attachment_config: type: object additionalProperties: false properties: kind: enum: - aws-resource-endpoint-attachment title: AWS Resource Endpoint Attachment Type resource_config: $ref: '#/components/schemas/AwsResourceEndpointConfig' required: - kind - resource_config required: - transit_gateway_attachment_config x-speakeasy-name-override: AWSResourceEndpointGateway PatchAwsTransitGateway: description: Request schema for updating AWS Transit Gateway properties: cidr_blocks: $ref: '#/components/schemas/TransitGatewayCIDRBlocks' required: - cidr_blocks x-speakeasy-name-override: AWSTransitGateway PatchTransitGatewayRequest: description: Request schema for updating a transit gateway. type: object oneOf: - $ref: '#/components/schemas/PatchAwsResourceEndpointGateway' - $ref: '#/components/schemas/PatchAwsTransitGateway' title: PatchTransitGatewayRequest CustomDomainState: description: | The current state of the custom domain. Possible values: - `created` — The domain has been registered but TLS provisioning has not yet started. - `initializing` — Konnect is provisioning the TLS certificate and configuring SNI routing. - `ready` — The domain is fully provisioned and serving traffic. - `terminating` — The domain is being deleted and its TLS certificate is being removed. - `terminated` — The domain has been fully deleted and is no longer available. - `error` — Provisioning failed; check `state_metadata` for details. type: string enum: - created - initializing - ready - terminating - terminated - error readOnly: true title: Custom Domain State x-speakeasy-param-suppress-computed-diff: true x-speakeasy-unknown-values: allow CustomDomainName: description: Domain name of the custom domain. type: string example: example.com title: Custom Domain Name CustomDomain: x-speakeasy-entity: CloudGatewayCustomDomain description: Object containing information about a custom domain for a control-plane. type: object properties: id: $ref: '#/components/schemas/CustomDomainId' control_plane_id: $ref: '#/components/schemas/ControlPlaneId' control_plane_geo: $ref: '#/components/schemas/ControlPlaneGeo' domain: $ref: '#/components/schemas/CustomDomainName' certificate_id: description: | Certificate ID for the certificate representing this domain and stored on data-planes for this control-plane. Can be retrieved via the control-planes API for this custom domain's control-plane. type: string format: uuid example: 3b7cbeee-fbec-440e-a5ef-89e7dec3b9d0 default: null nullable: true readOnly: true x-speakeasy-param-computed: false x-speakeasy-param-suppress-computed-diff: true sni_id: description: | Server Name Indication ID for this domain and stored on data-planes for this control-plane. Can be retrieved via the control-planes API for this custom domain's control-plane. type: string format: uuid example: a8f11ea8-af09-4422-9735-5d4f8910aba1 default: null nullable: true readOnly: true x-speakeasy-param-computed: false x-speakeasy-param-suppress-computed-diff: true state: $ref: '#/components/schemas/CustomDomainState' state_metadata: description: | Metadata describing the backing state of the custom domain and why it may be in an erroneous state. type: object additionalProperties: false properties: reported_status: description: Reported status of the custom domain from backing infrastructure. type: string example: INVALID reason: description: | Reason why the custom domain may be in an erroneous state, reported from backing infrastructure. type: string example: | CNAME points to '_acme-challenge..gateways.konghq.tech.' instead of '_acme-challenge..acme.gateways.konghq.tech.' readOnly: true title: CustomDomainStateMetadata x-speakeasy-param-suppress-computed-diff: true entity_version: description: | Monotonically-increasing version count of the custom domain, to indicate the order of updates to the custom domain. type: integer example: 1 readOnly: true x-speakeasy-param-suppress-computed-diff: true created_at: description: An RFC-3339 timestamp representation of custom domain creation date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true updated_at: description: An RFC-3339 timestamp representation of custom domain update date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true kind: $ref: '#/components/schemas/CustomDomainKind' required: - id - control_plane_id - control_plane_geo - domain - state - state_metadata - entity_version - created_at - updated_at title: Custom Domain CreateConfigurationRequest: description: | Describes the desired state of a control plane's Cloud Gateway deployment. Submitting this request replaces the current configuration; Kong reconciles running data plane groups to match. Use `kind: dedicated.v0` for Dedicated Cloud Gateways or `kind: serverless.v1` for Serverless — the required fields differ by kind. type: object properties: control_plane_id: $ref: '#/components/schemas/ControlPlaneId' control_plane_geo: $ref: '#/components/schemas/ControlPlaneGeo' version: $ref: '#/components/schemas/GatewayVersion' dataplane_groups: description: 'List of data-plane groups that describe where to deploy instances, along with how many instances.' type: array items: $ref: '#/components/schemas/CreateConfigurationDataPlaneGroup' format: set kind: $ref: '#/components/schemas/ConfigurationKind' api_access: $ref: '#/components/schemas/ApiAccess' additionalProperties: false required: - control_plane_id - control_plane_geo - dataplane_groups title: CreateConfigurationRequest CreateCustomDomainRequest: description: Request schema for creating a custom domain in the global API. type: object properties: control_plane_id: $ref: '#/components/schemas/ControlPlaneId' control_plane_geo: $ref: '#/components/schemas/ControlPlaneGeo' domain: $ref: '#/components/schemas/CustomDomainName' kind: $ref: '#/components/schemas/CustomDomainKind' additionalProperties: false required: - control_plane_id - control_plane_geo - domain title: CreateCustomDomainRequest AddOnId: type: string format: uuid example: 550e8400-e29b-41d4-a716-446655440000 readOnly: true x-speakeasy-param-suppress-computed-diff: true AddOnConfigResponse: description: Configuration object for different types of add-ons. type: object oneOf: - $ref: '#/components/schemas/ManagedCacheAddOnConfigResponse' title: AddOnConfigResponse ManagedCacheAddOnConfigResponse: description: Configuration for managed cache add-on. type: object properties: kind: description: Type of add-on configuration. type: string const: managed-cache.v0 capacity_config: $ref: '#/components/schemas/ManagedCacheCapacityConfig' data_plane_groups: description: List of data-plane groups where the managed cache is deployed. type: array items: $ref: '#/components/schemas/ManagedCacheAddOnDataPlaneGroup' readOnly: true x-speakeasy-param-suppress-computed-diff: true state_metadata: description: | Metadata describing the state of the managed cache add-on. type: object additionalProperties: false properties: cache_config_id: description: Reference to cache configuration for this add-on. type: string format: uuid example: edaf40f9-9fb0-4ffe-bb74-4e763a6bd471 cache_server_name: description: Env vault path to cache server name. type: string example: '{vault://env/ADDON_MANAGED_CACHE_SERVER_NAME}' cache_host: description: Env vault path to cache hostname. type: string example: '{vault://env/ADDON_MANAGED_CACHE_HOST}' cache_port: description: Env vault path to cache port. type: string example: '{vault://env/ADDON_MANAGED_CACHE_PORT}' cache_username: description: Env vault path to cache username. type: string example: '{vault://env/ADDON_MANAGED_CACHE_USERNAME}' cloud_authentication: description: | Metadata describing the cloud authentication details for managed cache add-on. type: object additionalProperties: false properties: auth_provider: description: Env vault path to cache auth provider. type: string example: '{vault://env/ADDON_MANAGED_CACHE_AUTH_PROVIDER}' aws_cache_name: description: Env vault path to aws cache name. type: string example: '{vault://env/ADDON_MANAGED_CACHE_AWS_CACHE_NAME}' aws_region: description: Env vault path to aws region. type: string example: '{vault://env/ADDON_MANAGED_CACHE_AWS_REGION}' aws_assume_role_arn: description: Env vault path to aws assume role arn. type: string example: '{vault://env/ADDON_MANAGED_CACHE_AWS_ASSUME_ROLE_ARN}' azure_tenant_id: description: Env vault path to azure tenant id. type: string example: '{vault://env/ADDON_MANAGED_CACHE_AZURE_TENANT_ID}' readOnly: true x-speakeasy-param-suppress-computed-diff: true additionalProperties: false required: - kind - capacity_config - data_plane_groups - state_metadata title: ManagedCacheAddOnConfigResponse ManagedCacheAddOnDataPlaneGroup: description: Object that describes a data-plane group where managed cache add-on is deployed. type: object properties: id: description: ID of the data-plane group. type: string format: uuid example: 1150820b-c69f-4a2a-b9be-bbcdbc5cd618 cloud_gateway_network_id: description: Network ID this data-plane group is attached to. type: string format: uuid example: 36ae63d3-efd1-4bec-b246-62aa5d3f5695 provider: $ref: '#/components/schemas/ProviderName' region: description: Region of cloud provider the data-plane group is deployed to. type: string example: us-east-1 state: description: | The current state of the managed cache add-on in the data-plane group. Possible values: - `initializing` - The add-on is in the process of being initialized/updated and is setting up necessary resources for this data-plane group. - `ready` - The add-on is fully operational for this data-plane group. - `error` - The add-on is in an error state, and is not operational for this data-plane group. - `terminating` - The add-on is in the process of being deleted for this data-plane group. type: string enum: - initializing - ready - error - terminating x-speakeasy-unknown-values: allow state_metadata: description: | Metadata describing the state of the managed cache add-on in the data-plane group. type: object additionalProperties: false properties: error_reason: description: | Reason why the managed cache add-on may be in an error state, reported from backing infrastructure. type: string example: | Failed to create managed cache add-on due to invalid configuration. additionalProperties: false readOnly: true required: - id - cloud_gateway_network_id - provider - region - state - state_metadata title: ManagedCacheAddOnDataPlaneGroup x-speakeasy-param-suppress-computed-diff: true AddOnState: description: | The current state of the add-on. Possible values: - `initializing` - The add-on is in the process of being initialized/updated. - `ready` - The add-on is fully operational. - `terminating` - The add-on is in the process of being deleted. type: string enum: - initializing - ready - terminating readOnly: true title: Add-On State x-speakeasy-param-suppress-computed-diff: true x-speakeasy-unknown-values: allow AddOnResponse: description: Object containing information about an add-on. type: object properties: id: $ref: '#/components/schemas/AddOnId' name: $ref: '#/components/schemas/AddOnName' owner: $ref: '#/components/schemas/AddOnOwner' config: $ref: '#/components/schemas/AddOnConfigResponse' entity_version: description: 'Monotonically-increasing version count of the add-on, to indicate the order of updates to the add-on.' type: integer example: 1 readOnly: true x-speakeasy-param-suppress-computed-diff: true state: $ref: '#/components/schemas/AddOnState' created_at: description: RFC-3339 timestamp representation of add-on creation date. type: string format: date-time example: '2025-08-26T06:56:41Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true updated_at: description: RFC-3339 timestamp representation of add-on update date. type: string format: date-time example: '2025-08-26T06:56:41Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true additionalProperties: false required: - id - name - owner - config - entity_version - state - created_at - updated_at title: AddOnResponse CreateAddOnRequest: description: Request schema for creating an add-on. type: object properties: name: $ref: '#/components/schemas/AddOnName' owner: $ref: '#/components/schemas/AddOnOwner' config: $ref: '#/components/schemas/CreateAddOnConfig' additionalProperties: false required: - name - owner - config title: CreateAddOnRequest AddOnName: description: Unique human-readable name of the add-on. type: string example: my-add-on maxLength: 70 minLength: 1 title: AddOnName AddOnOwner: description: Owner for the add-on. type: object oneOf: - $ref: '#/components/schemas/ControlPlaneAddOnOwner' - $ref: '#/components/schemas/ControlPlaneGroupAddOnOwner' title: AddOnOwner ControlPlaneAddOnOwner: description: Control Plane is the owner for the add-on. type: object properties: kind: description: Type of owner for the add-on. type: string const: control-plane control_plane_id: description: ID of the control-plane that owns this add-on. type: string format: uuid example: 123e4567-e89b-12d3-a456-426614174000 control_plane_geo: $ref: '#/components/schemas/ControlPlaneGeo' additionalProperties: false required: - kind - control_plane_id - control_plane_geo title: ControlPlaneAddOnOwner x-speakeasy-name-override: control_plane ControlPlaneGroupAddOnOwner: description: Control Plane Group is the owner for the add-on. type: object properties: kind: description: Type of owner for the add-on. type: string const: control-plane-group control_plane_group_id: description: ID of the control-plane group that owns this add-on. type: string format: uuid example: 123e4567-e89b-12d3-a456-426614174000 control_plane_group_geo: $ref: '#/components/schemas/ControlPlaneGeo' additionalProperties: false required: - kind - control_plane_group_id - control_plane_group_geo title: ControlPlaneGroupAddOnOwner x-speakeasy-name-override: control_plane_group CreateAddOnConfig: description: Configuration for creating different types of add-ons. type: object oneOf: - $ref: '#/components/schemas/CreateManagedCacheAddOnConfig' title: CreateAddOnConfig CreateManagedCacheAddOnConfig: description: Configuration for creating a managed cache add-on. type: object properties: kind: description: Type of add-on configuration. type: string const: managed-cache.v0 capacity_config: $ref: '#/components/schemas/ManagedCacheCapacityConfig' additionalProperties: false required: - kind - capacity_config title: CreateManagedCacheAddOnConfig x-speakeasy-name-override: managed_cache UpdateAddOnRequest: description: Request body for updating an add-on. type: object properties: config: $ref: '#/components/schemas/UpdateAddOnConfig' additionalProperties: false required: - config title: UpdateAddOnRequest UpdateAddOnConfig: description: Configuration for updating different types of add-ons. type: object oneOf: - $ref: '#/components/schemas/UpdateManagedCacheAddOnConfig' title: UpdateAddOnConfig UpdateManagedCacheAddOnConfig: description: Configuration for updating a managed cache add-on. type: object properties: kind: description: Type of add-on configuration. type: string const: managed-cache.v0 capacity_config: $ref: '#/components/schemas/ManagedCacheCapacityConfig' additionalProperties: false required: - kind - capacity_config title: UpdateManagedCacheAddOnConfig x-speakeasy-name-override: managed_cache ManagedCacheCapacityConfig: description: Configuration for managed cache capacity and performance characteristics. type: object oneOf: - $ref: '#/components/schemas/TieredCapacityConfig' title: ManagedCacheCapacityConfig TieredCapacityConfig: description: Capacity tiers with pre-configured size and performance characteristics. type: object properties: kind: description: Type of capacity configuration. type: string const: tiered tier: description: | Capacity tier that determines both cache size and performance characteristics: - micro: ~0.5 GiB capacity - small: ~1 GiB capacity - medium: ~3 GiB capacity - large: ~6 GiB capacity - xlarge: ~12 GiB capacity - 2xlarge: ~25 GiB capacity - 4xlarge: ~52 GiB capacity - 8xlarge: ~100 GiB capacity - 12xlarge: ~150 GiB capacity - 16xlarge: ~200 GiB capacity - 24xlarge: ~300 GiB capacity type: string enum: - micro - small - medium - large - xlarge - 2xlarge - 4xlarge - 8xlarge - 12xlarge - 16xlarge - 24xlarge x-speakeasy-unknown-values: allow example: kind: tiered tier: small additionalProperties: false required: - kind - tier title: TieredCapacityConfig x-speakeasy-name-override: Tiered NetworksFilterParameters: type: object properties: name: $ref: '#/components/schemas/CloudGatewaysStringFieldFilterOverride' state: $ref: '#/components/schemas/NetworkStateFieldFilter' additionalProperties: false title: NetworksFilterParameters CloudGatewaysStringFieldFilterOverride: description: 'Filter using **one** of the following operators: `eq`, `oeq`, `neq`, `contains`, `ocontains`' type: object properties: eq: description: The field exactly matches the provided value. type: string contains: description: The field contains the provided value. type: string neq: description: The field does not match the provided value. type: string oeq: description: The field matches any of the provided values. type: string ocontains: description: The field contains any of the provided values. type: string additionalProperties: false NetworkStateFieldFilter: description: 'Filter using **one** of the following operators: `eq`, `oeq`, `neq`' type: object properties: eq: description: The field exactly matches the provided value. $ref: '#/components/schemas/NetworkState' neq: description: The field does not match the provided value. $ref: '#/components/schemas/NetworkState' oeq: description: The field matches any of the provided values. type: string UuidFieldFilter: description: 'Filter using **one** of the following operators: `eq`, `oeq`, `neq`' type: object properties: eq: description: The field exactly matches the provided value. type: string oeq: description: The field matches any of the provided values. type: string neq: description: The field does not match the provided value. type: string additionalProperties: false MeshControlPlaneFeatures: type: array items: $ref: '#/components/schemas/MeshControlPlaneFeature' MeshControlPlaneFeatureHostnameGenerationCreation: properties: enabled: type: boolean required: - enabled MeshControlPlaneFeatureMeshCreation: properties: enabled: type: boolean required: - enabled MeshControlPlaneFeature: description: | Features to be enabled in the control plane. Currently only defaults are supported. type: object properties: type: type: string enum: - MeshCreation - HostnameGeneratorCreation x-speakeasy-unknown-values: allow hostnameGeneratorCreation: $ref: '#/components/schemas/MeshControlPlaneFeatureHostnameGenerationCreation' meshCreation: $ref: '#/components/schemas/MeshControlPlaneFeatureMeshCreation' required: - type MeshControlPlaneLabels: description: Labels to facilitate tagged search on control planes. Keys must be of length 1-63 characters. type: object example: test: 'true' additionalProperties: type: string pattern: '^[a-z0-9A-Z]{1}([a-z0-9A-Z\-\.\_]*[a-z0-9A-Z]+)?$' minLength: 1 maxLength: 63 nullable: true maxProperties: 10 nullable: true title: Labels MeshControlPlaneNonNullableLabels: description: Labels to facilitate tagged search on control planes. Keys must be of length 1-63 characters. type: object example: test: 'true' additionalProperties: type: string pattern: '^[a-z0-9A-Z]{1}([a-z0-9A-Z\-\.\_]*[a-z0-9A-Z]+)?$' minLength: 1 maxLength: 63 maxProperties: 10 nullable: true title: Labels MeshControlPlane: description: a control plane type: object properties: id: description: ID of the control plane. type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a readOnly: true x-speakeasy-param-suppress-computed-diff: true name: $ref: '#/components/schemas/MeshControlPlaneName' description: $ref: '#/components/schemas/MeshControlPlaneDescription' labels: $ref: '#/components/schemas/MeshControlPlaneLabels' features: $ref: '#/components/schemas/MeshControlPlaneFeatures' created_at: type: string format: date-time example: '2023-01-11T02:30:42.227Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true updated_at: type: string format: date-time example: '2023-01-11T02:30:42.227Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true required: - id - name - updated_at - created_at title: ControlPlane CreateMeshControlPlaneRequest: description: a payload to create a control plane type: object properties: name: $ref: '#/components/schemas/MeshControlPlaneName' description: $ref: '#/components/schemas/MeshControlPlaneDescription' features: $ref: '#/components/schemas/MeshControlPlaneFeatures' labels: $ref: '#/components/schemas/MeshControlPlaneLabels' additionalProperties: false required: - name title: CreateMeshControlPlaneRequest PutMeshControlPlaneRequest: description: a payload to update the whole control plane type: object properties: name: $ref: '#/components/schemas/MeshControlPlaneName' description: $ref: '#/components/schemas/MeshControlPlaneDescription' labels: $ref: '#/components/schemas/MeshControlPlaneNonNullableLabels' required: - name title: PutMeshControlPlaneRequest MeshControlPlaneName: description: The name of the control plane. type: string example: Test control plane maxLength: 100 minLength: 1 pattern: '^[a-z0-9A-Z]{1}.*$' MeshControlPlaneDescription: type: string example: A control plane to handle traffic on development environment. maxLength: 250 APIProductPortals: description: The list of portals which this API product is published to type: array items: $ref: '#/components/schemas/APIProductPortal' minItems: 0 title: APIProductPortals APIProductPortal: type: object properties: portal_id: type: string format: uuid example: 35a2624c-49fc-4764-99e1-224ed819f200 portal_name: type: string example: Developer Portal additionalProperties: false required: - portal_id - portal_name title: APIProductPortal APIProductVersionPublishStatus: type: string example: published enum: - published - unpublished title: APIProductVersionPublishStatus x-speakeasy-unknown-values: allow APIProductVersionPortals: description: The list of portals which this API product version is configured for type: array items: $ref: '#/components/schemas/APIProductVersionPortal' minItems: 0 title: APIProductVersionPortals APIProductVersionPortal: type: object properties: portal_id: type: string format: uuid example: 35a2624c-49fc-4764-99e1-224ed819f200 portal_name: type: string example: Developer Portal portal_product_version_id: type: string format: uuid example: 35a2624c-49fc-4764-99e1-224ed819f200 publish_status: $ref: '#/components/schemas/APIProductVersionPublishStatus' deprecated: type: boolean example: false application_registration_enabled: type: boolean example: true auto_approve_registration: type: boolean example: false auth_strategies: type: array items: $ref: '#/components/schemas/APIProductVersionAuthStrategy' additionalProperties: false required: - portal_id - portal_name - portal_product_version_id - publish_status - deprecated - application_registration_enabled - auto_approve_registration - auth_strategies title: APIProductVersionPortal APIProductVersionAuthStrategy: type: object properties: id: type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 name: type: string example: Key Auth example: id: 9f5061ce-78f6-4452-9108-ad7c02821fd5 name: Key Auth additionalProperties: false required: - id - name title: APIProductVersionAuthStrategy APIProduct: x-speakeasy-entity: ApiProduct type: object properties: id: description: The API product ID. type: string format: uuid example: b9e81174-b5bb-4638-a3c3-8afe61a0abf8 readOnly: true x-speakeasy-param-suppress-computed-diff: true name: description: The name of the API product type: string example: My Name description: description: The description of the API product type: string example: MyDescription default: null nullable: true x-speakeasy-param-computed: false portal_ids: description: | The list of portal identifiers which this API product is published to. This property is deprecated and will be removed in a future version. Use the `portals` property instead. type: array items: type: string format: uuid example: 25a2624c-49fc-4764-99e1-224ed819f200 deprecated: true minItems: 0 nullable: false uniqueItems: true portals: $ref: '#/components/schemas/APIProductPortals' version_count: description: The number of product versions attached to this API product type: number example: 10 created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' labels: $ref: '#/components/schemas/Labels' public_labels: $ref: '#/components/schemas/PublicLabels' additionalProperties: false required: - id - name - description - portal_ids - portals - created_at - updated_at - labels - public_labels - version_count title: API Product APIProductDocument: description: an api product document type: object properties: id: type: string format: uuid parent_document_id: type: string format: uuid default: null nullable: true x-speakeasy-param-computed: false title: type: string slug: type: string status: type: string enum: - unpublished - published x-speakeasy-unknown-values: allow metadata: type: object content: description: The unencoded markdown string of the api product document. type: string created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' required: - id - parent_document_id - title - slug - status - metadata - content - ast - updated_at - created_at title: ApiProductDocument AuthStrategySyncError: type: object properties: plugin_name: type: string value: type: string enum: - plugin_sync_error_comm - plugin_sync_error_unknown - plugin_sync_error_fatal - plugin_sync_error_updating_plugin_refs x-speakeasy-unknown-values: allow message: type: string info: type: object additionalProperties: true properties: details: type: array items: type: object additionalProperties: true properties: type: type: string message: type: array items: type: string example: plugin_name: konnect-application-auth value: plugin_sync_error_comm message: Unable to connect to the control plane to update plugin additionalProperties: false required: - message AuthStrategySyncErrors: description: The set of errors encountered when trying to sync the auth strategies on the version type: array items: $ref: '#/components/schemas/AuthStrategySyncError' example: - plugin_name: konnect-application-auth value: plugin_sync_error_comm message: Unable to connect to the control plane to update plugin nullable: true readOnly: true x-speakeasy-param-suppress-computed-diff: true x-speakeasy-terraform-ignore: true APIProductVersion: x-speakeasy-entity: ApiProductVersion type: object properties: id: description: The API product version identifier. type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 readOnly: true x-speakeasy-param-suppress-computed-diff: true name: description: The version of the API product type: string example: FirstVersion gateway_service: type: object default: null additionalProperties: false nullable: true properties: id: description: The identifier of a gateway service associated with the version of the API product. type: string format: uuid example: 09b4786a-3e48-4631-8f6b-62d1d8e1a7f3 nullable: true runtime_group_id: description: 'This field is deprecated, please use `control_plane_id` instead. The identifier of the control plane that the gateway service resides in' type: string format: uuid example: e4d9ebb1-26b4-426a-b00e-cb67044f3baf default: null deprecated: true nullable: true x-speakeasy-param-computed: false control_plane_id: description: The identifier of the control plane that the gateway service resides in type: string format: uuid example: e4d9ebb1-26b4-426a-b00e-cb67044f3baf required: - id - control_plane_id x-speakeasy-param-computed: false publish_status: description: 'This field is published if the API product version is published to at least one portal. This field is deprecated: Use [PortalProductVersion.publish_status](https://docs.konghq.com/konnect/api/portal-management/v2/#/operations/create-portal-product-version) instead.' type: string example: unpublished enum: - unpublished - published deprecated: true x-speakeasy-terraform-ignore: true x-speakeasy-unknown-values: allow deprecated: description: 'Whether this API product version is deprecated in at least one portal. This field is deprecated: Use [PortalProductVersion.deprecated](https://docs.konghq.com/konnect/api/portal-management/v2/#/operations/create-portal-product-version) instead' type: boolean example: false deprecated: true labels: $ref: '#/components/schemas/Labels' auth_strategy_sync_errors: $ref: '#/components/schemas/AuthStrategySyncErrors' portals: $ref: '#/components/schemas/APIProductVersionPortals' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - id - name - gateway_service - publish_status - deprecated - labels - portals - created_at - updated_at title: API Product Version APIProductVersionSpec: x-speakeasy-entity: APIProductSpecification type: object properties: id: description: The API product version specification identifier. type: string format: uuid example: 7710d5c4-d902-410b-992f-18b814155b53 readOnly: true x-speakeasy-param-suppress-computed-diff: true name: description: The name of the API product version specification type: string example: oas.yaml pattern: '^.+(?:\.yaml|\.yml|\.json)$' content: description: The contents of the API product version specification example: My YAML or JSON formatted OAS content type: string created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - id - name - content - created_at - updated_at title: API Product Version Spec CreateAPIProductDTO: x-speakeasy-entity: ApiProduct description: The request schema to create an API product. type: object properties: name: description: The name of the API product. type: string example: API Product maxLength: 100 minLength: 1 description: description: The description of the API product. type: string example: Text describing the API product default: null nullable: true x-speakeasy-param-computed: false labels: $ref: '#/components/schemas/Labels' public_labels: $ref: '#/components/schemas/PublicLabels' portal_ids: description: The list of portal identifiers which this API product should be published to type: array items: type: string format: uuid example: 25a2624c-49fc-4764-99e1-224ed819f200 minItems: 0 nullable: false uniqueItems: true additionalProperties: false required: - name - portal_ids title: Create API Product Request UpdateAPIProductDTO: x-speakeasy-entity: ApiProduct description: The request schema for updating an API product. type: object properties: name: description: The name for the API product. type: string example: API Product default: null maxLength: 100 minLength: 1 nullable: true x-speakeasy-param-computed: false description: description: The description of the API product. type: string example: Text describing the API product default: null nullable: true x-speakeasy-param-computed: false labels: $ref: '#/components/schemas/LabelsUpdate' public_labels: $ref: '#/components/schemas/PublicLabelsUpdate' portal_ids: description: The list of portal identifiers which this API product should be published to type: array items: type: string format: uuid example: 25a2624c-49fc-4764-99e1-224ed819f200 minItems: 0 nullable: false uniqueItems: true additionalProperties: false required: - portal_ids title: Update API Product Request CreateAPIProductVersionDTO: description: | The request schema to create a version of an API product. Note that the `publish_status` and `deprecated` fields are deprecated: Use [PortalProductVersion.publish_status](https://docs.konghq.com/konnect/api/portal-management/v2/#/operations/create-portal-product-version) instead. type: object properties: name: description: The version name of the API product version. type: string example: v1 minLength: 1 nullable: false publish_status: description: 'The publish status of the API product version. Applies publish status to all related portal product versions. This field is deprecated: Use [PortalProductVersion.publish_status](https://docs.konghq.com/konnect/api/portal-management/v2/#/operations/create-portal-product-version) instead.' type: string example: unpublished default: unpublished enum: - unpublished - published deprecated: true nullable: false x-speakeasy-unknown-values: allow deprecated: description: 'Indicates if the version of the API product is deprecated. Applies deprecation or removes deprecation from all related portal product versions. This field is deprecated: Use [PortalProductVersion.deprecated](https://docs.konghq.com/konnect/api/portal-management/v2/#/operations/create-portal-product-version) instead.' type: boolean example: false default: false deprecated: true nullable: false labels: $ref: '#/components/schemas/Labels' gateway_service: $ref: '#/components/schemas/GatewayServicePayload' oneOf: - $ref: '#/components/schemas/GatewayServicePayload' - $ref: '#/components/schemas/LegacyGatewayServicePayload' additionalProperties: false required: - name title: Create API Product Version Request CreateAPIProductVersionSpecDTO: x-speakeasy-entity: APIProductSpecification description: The request schema to create a specification for a version of an API product. type: object properties: name: description: The name of the API product version specification type: string example: oas.yaml maxLength: 255 minLength: 1 nullable: false pattern: '^.+(?:\.yaml|\.yml|\.json)$' content: description: The base64 encoded contents of the API product version specification example: TXkgWUFNTCBvciBKU09OIGZvcm1hdHRlZCBPQVMgY29udGVudA== format: byte minLength: 1 type: string x-speakeasy-terraform-custom-type: imports: - github.com/Kong/shared-speakeasy/customtypes/encodedstring schemaType: 'encodedstring.Base64InputType{}' valueType: encodedstring.Base64Input additionalProperties: false required: - name - content title: Create API Product Version Specification Request CreateAPIProductDocumentDTO: description: a document payload type: object properties: parent_document_id: description: parent document id type: string format: uuid example: dd4e1b98-3629-4dd3-acc0-759a726ffee2 default: null nullable: true x-speakeasy-param-computed: false slug: description: document slug. must be unique accross documents belonging to an api product type: string example: path-for-seo maxLength: 80 pattern: '^[\w-]+$' status: $ref: '#/components/schemas/PublishStatus' title: description: document title type: string example: How to create a document in Konnect DocumentHub minLength: 1 content: default: null description: Can be markdown string content or base64 encoded string example: '## My Markdown' nullable: true type: string x-speakeasy-param-computed: false x-speakeasy-terraform-custom-type: imports: - github.com/Kong/shared-speakeasy/customtypes/encodedstring schemaType: 'encodedstring.Base64OrPlainInputType{}' valueType: encodedstring.Base64OrPlainInput metadata: description: metadata of the document type: object example: author: John Doe default: {} nullable: false required: - slug - status - title title: CreateDocumentPayload UpdateAPIProductDocumentDTO: description: a document payload type: object properties: parent_document_id: description: | Parent document Id. If this value is explicitly set to null, the document will be put as a top level document at the bottom of the tree. type: string format: uuid example: dd4e1b98-3629-4dd3-acc0-759a726ffee2 default: null nullable: true x-speakeasy-param-computed: false slug: description: document slug. must be unique accross documents belonging to an api product type: string example: path-for-seo default: null maxLength: 80 nullable: true pattern: '^[\w-]+$' x-speakeasy-param-computed: false status: $ref: '#/components/schemas/PublishStatus' title: description: document title type: string example: How to update a document in Konnect DocumentHub default: null minLength: 1 nullable: true x-speakeasy-param-computed: false content: default: null description: Can be markdown string content or base64 encoded string example: YmFzZTY0LWVuY29kZWQgdGV4dCBzdHJpbmc= nullable: true type: string x-speakeasy-param-computed: false x-speakeasy-terraform-custom-type: imports: - github.com/Kong/shared-speakeasy/customtypes/encodedstring schemaType: 'encodedstring.Base64OrPlainInputType{}' valueType: encodedstring.Base64OrPlainInput metadata: type: object nullable: false title: UpdateDocumentAttributesAndContentPayload UpdateAPIProductVersionDTO: description: | The request schema for updating a version of an API product. Note that the `publish_status` and `deprecated` fields are deprecated: Use [PortalProductVersion.publish_status](https://docs.konghq.com/konnect/api/portal-management/v2/#/operations/create-portal-product-version) instead. type: object properties: name: description: The version name of the API product version. type: string example: v1 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false publish_status: description: 'The publish status of the API product version. Applies publish status to all related portal product versions. This field is deprecated: Use [PortalProductVersion.publish_status](https://docs.konghq.com/konnect/api/portal-management/v2/#/operations/create-portal-product-version) instead.' type: string example: unpublished enum: - unpublished - published deprecated: true x-speakeasy-unknown-values: allow deprecated: description: 'Indicates if the version of the API product is deprecated. Applies deprecation or removes deprecation from all related portal product versions. This field is deprecated: Use [PortalProductVersion.deprecated](https://docs.konghq.com/konnect/api/portal-management/v2/#/operations/create-portal-product-version) instead.' type: boolean example: false default: null deprecated: true nullable: true x-speakeasy-param-computed: false notify: description: | When set to `true`, and all the following conditions are true: - version of the API product deprecation has changed from `false` -> `true` - version of the API product is published then consumers of the now deprecated verion of the API product will be notified. type: boolean example: true nullable: false gateway_service: $ref: '#/components/schemas/GatewayServicePayload' anyOf: - $ref: '#/components/schemas/GatewayServicePayload' - $ref: '#/components/schemas/LegacyGatewayServicePayload' labels: $ref: '#/components/schemas/LabelsUpdate' additionalProperties: false title: Update API Product Version Request UpdateAPIProductVersionSpecDTO: x-speakeasy-entity: APIProductSpecification description: The request schema for updating a specification for a version of an API product. type: object properties: name: description: The name of the API product version specification type: string example: oas.yaml maxLength: 255 minLength: 1 nullable: false pattern: '^.+(?:\.yaml|\.yml|\.json)$' content: default: null description: The base64 encoded contents of the API product version specification example: TXkgWUFNTCBvciBKU09OIGZvcm1hdHRlZCBPQVMgY29udGVudA== format: byte minLength: 1 nullable: true type: string x-speakeasy-param-computed: false x-speakeasy-terraform-custom-type: imports: - github.com/Kong/shared-speakeasy/customtypes/encodedstring schemaType: 'encodedstring.Base64InputType{}' valueType: encodedstring.Base64Input additionalProperties: false title: Update API Product Version Specification Request LegacyGatewayServicePayload: type: object properties: id: description: The identifier of a gateway service associated with the version of the API product. type: string format: uuid example: 09b4786a-3e48-4631-8f6b-62d1d8e1a7f3 runtime_group_id: description: The identifier of the control plane that the gateway service resides in type: string format: uuid example: e4d9ebb1-26b4-426a-b00e-cb67044f3baf deprecated: true default: null additionalProperties: false nullable: true required: - id - runtime_group_id x-speakeasy-param-computed: false GatewayServicePayload: type: object properties: id: description: The identifier of a gateway service associated with the version of the API product. type: string format: uuid example: 09b4786a-3e48-4631-8f6b-62d1d8e1a7f3 control_plane_id: description: The identifier of the control plane that the gateway service resides in type: string format: uuid example: e4d9ebb1-26b4-426a-b00e-cb67044f3baf default: null additionalProperties: false nullable: true required: - id - control_plane_id x-speakeasy-param-computed: false StringFieldFilter: description: 'Filter using **one** of the following operators: `eq`, `oeq`, `neq`, `contains`, `ocontains`' type: object properties: eq: description: The field exactly matches the provided value. type: string contains: description: The field contains the provided value. type: string ocontains: description: The field contains any of the provided values. type: string oeq: description: The field matches any of the provided values. type: string neq: description: The field does not match the provided value. type: string additionalProperties: false PublicLabels: description: | Public labels store information about an entity that can be used for filtering a list of objects. Public labels are intended to store **PUBLIC** metadata. Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". type: object example: category: finance additionalProperties: type: string pattern: '^[a-z0-9A-Z]{1}([a-z0-9A-Z-._]*[a-z0-9A-Z]+)?$' minLength: 1 maxLength: 63 maxProperties: 50 title: PublicLabels UnsupportedMediaTypeError: allOf: - $ref: '#/components/schemas/BaseError' - type: object properties: status: example: 415 title: example: UnsupportedMediaType type: example: 'https://httpstatuses.com/415' instance: example: 'kong:trace:1234567890' detail: example: UnsupportedMediaType LabelsUpdate: description: | Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. Labels are intended to store **INTERNAL** metadata. Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". type: object example: env: test additionalProperties: type: string pattern: '^[a-z0-9A-Z]{1}([a-z0-9A-Z-._]*[a-z0-9A-Z]+)?$' minLength: 1 maxLength: 63 nullable: true maxProperties: 50 nullable: true writeOnly: true x-speakeasy-param-computed: true PublicLabelsUpdate: description: | Public labels store information about an entity that can be used for filtering a list of objects. Public labels are intended to store **PUBLIC** metadata. Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". type: object example: category: finance additionalProperties: type: string pattern: '^[a-z0-9A-Z]{1}([a-z0-9A-Z-._]*[a-z0-9A-Z]+)?$' minLength: 1 maxLength: 63 nullable: true maxProperties: 50 title: PublicLabelsUpdate writeOnly: true PublishStatus: type: string enum: - published - unpublished x-speakeasy-unknown-values: allow AppAuthStrategyConfigKeyAuth: description: | The most basic mode to configure an Application Auth Strategy for an API Product Version. Using this mode will allow developers to generate API keys that will authenticate their application requests. Once authenticated, an application will be granted access to any Product Version it is registered for that is configured for Key Auth. type: object properties: key_names: description: The names of the headers containing the API key. You can specify multiple header names. type: array items: type: string maxLength: 256 default: null maxItems: 10 minItems: 1 nullable: true x-speakeasy-param-computed: false ttl: description: Default maximum Time-To-Live for keys created under this strategy. type: object nullable: false properties: value: type: integer minimum: 1 unit: type: string enum: - days - weeks - years x-speakeasy-unknown-values: allow required: - value - unit additionalProperties: false title: AppAuthStrategyConfigKeyAuth PartialAppAuthStrategyConfigKeyAuth: description: | Key Auth configuration for updating an Application Auth Strategy. The ttl field can be set to null to unset the Time-To-Live. type: object properties: key_names: description: The names of the headers containing the API key. You can specify multiple header names. type: array items: type: string maxLength: 256 default: null maxItems: 10 minItems: 1 nullable: true x-speakeasy-param-computed: false ttl: description: Default maximum Time-To-Live for keys created under this strategy. Set to null to unset. type: object default: null nullable: true properties: value: type: integer minimum: 1 unit: type: string enum: - days - weeks - years x-speakeasy-unknown-values: allow required: - value - unit x-speakeasy-param-computed: false additionalProperties: false title: PartialAppAuthStrategyConfigKeyAuth PartialAppAuthStrategyConfigOpenIDConnect: description: | A more advanced mode to configure an API Product Version’s Application Auth Strategy. Using this mode will allow developers to use API credentials issued from an external IdP that will authenticate their application requests. Once authenticated, an application will be granted access to any Product Version it is registered for that is configured for the same Auth Strategy. An OIDC strategy may be used in conjunction with a DCR provider to automatically create the IdP application. type: object properties: issuer: type: string format: url default: null maxLength: 256 nullable: true x-speakeasy-param-computed: false credential_claim: type: array items: type: string maxLength: 128 default: null maxItems: 10 nullable: true x-speakeasy-param-computed: false scopes: type: array items: type: string maxLength: 128 default: null maxItems: 50 nullable: true x-speakeasy-param-computed: false auth_methods: type: array items: type: string maxLength: 64 default: null maxItems: 10 nullable: true x-speakeasy-param-computed: false additionalProperties: true title: PartialAppAuthStrategyConfigOpenIDConnect AppAuthStrategyConfigOpenIDConnect: description: | A more advanced mode to configure an API Product Version’s Application Auth Strategy. Using this mode will allow developers to use API credentials issued from an external IdP that will authenticate their application requests. Once authenticated, an application will be granted access to any Product Version it is registered for that is configured for the same Auth Strategy. An OIDC strategy may be used in conjunction with a DCR provider to automatically create the IdP application. type: object properties: issuer: type: string format: url maxLength: 256 credential_claim: type: array items: type: string maxLength: 128 maxItems: 10 scopes: type: array items: type: string maxLength: 128 maxItems: 50 auth_methods: type: array items: type: string maxLength: 64 maxItems: 10 additionalProperties: true required: - issuer - credential_claim - scopes - auth_methods title: AppAuthStrategyConfigOpenIDConnect AppAuthStrategyKeyAuthRequest: description: Request for creating a Key Auth Application Auth Strategy type: object properties: name: $ref: '#/components/schemas/AuthStrategyName' display_name: $ref: '#/components/schemas/AuthStrategyDisplayName' strategy_type: type: string enum: - key_auth configs: description: JSON-B object containing the configuration for the Key Auth strategy type: object additionalProperties: false properties: key-auth: $ref: '#/components/schemas/AppAuthStrategyConfigKeyAuth' required: - key-auth labels: $ref: '#/components/schemas/Labels' additionalProperties: false required: - name - display_name - strategy_type - configs title: AppAuthStrategyKeyAuthRequest AppAuthStrategyKeyAuthResponse: description: Response payload from creating or updating a Key Auth Application Auth Strategy type: object properties: id: $ref: '#/components/schemas/UUID' name: $ref: '#/components/schemas/AuthStrategyName' display_name: $ref: '#/components/schemas/AuthStrategyDisplayName' strategy_type: type: string enum: - key_auth configs: description: JSON-B object containing the configuration for the Key Auth strategy type: object additionalProperties: false properties: key-auth: $ref: '#/components/schemas/AppAuthStrategyConfigKeyAuth' required: - key-auth active: description: At least one published entity is using this auth strategy. type: boolean dcr_provider: type: object default: null additionalProperties: false nullable: true properties: id: $ref: '#/components/schemas/UUID' name: type: string display_name: $ref: '#/components/schemas/DcrProviderDisplayName' provider_type: description: The type of DCR provider. type: string enum: - auth0 - azureAd - curity - okta - http - kongIdentity x-speakeasy-unknown-values: allow readOnly: true required: - id - name - provider_type x-speakeasy-param-computed: false x-speakeasy-param-suppress-computed-diff: true labels: $ref: '#/components/schemas/Labels' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' supports_multiple_credentials: description: | Indicates whether this auth strategy supports multiple credentials. Always `true` for KEY_AUTH. type: boolean default: true readOnly: true x-speakeasy-param-suppress-computed-diff: true additionalProperties: false required: - id - name - display_name - strategy_type - configs - active - dcr_provider - labels - created_at - updated_at title: AppAuthStrategyKeyAuthResponse AppAuthStrategyOpenIDConnectRequest: description: Payload for creating an OIDC Application Auth Strategy type: object properties: name: $ref: '#/components/schemas/AuthStrategyName' display_name: $ref: '#/components/schemas/AuthStrategyDisplayName' strategy_type: type: string enum: - openid_connect configs: description: JSON-B object containing the configuration for the OIDC strategy type: object additionalProperties: false properties: openid-connect: $ref: '#/components/schemas/AppAuthStrategyConfigOpenIDConnect' required: - openid-connect dcr_provider_id: type: string format: uuid default: null nullable: true x-speakeasy-param-computed: false labels: $ref: '#/components/schemas/Labels' additionalProperties: false required: - name - display_name - strategy_type - configs title: AppAuthStrategyOpenIDConnectRequest AppAuthStrategyOpenIDConnectResponse: description: Response payload from creating an OIDC Application Auth Strategy type: object properties: id: $ref: '#/components/schemas/UUID' name: $ref: '#/components/schemas/AuthStrategyName' display_name: $ref: '#/components/schemas/AuthStrategyDisplayName' strategy_type: type: string enum: - openid_connect configs: description: JSON-B object containing the configuration for the OIDC strategy type: object additionalProperties: false properties: openid-connect: $ref: '#/components/schemas/AppAuthStrategyConfigOpenIDConnect' required: - openid-connect active: description: At least one published entity is using this auth strategy. type: boolean dcr_provider: type: object default: null additionalProperties: false nullable: true properties: id: $ref: '#/components/schemas/UUID' name: type: string display_name: $ref: '#/components/schemas/DcrProviderDisplayName' provider_type: description: The type of DCR provider. type: string enum: - auth0 - azureAd - curity - okta - http - kongIdentity x-speakeasy-unknown-values: allow readOnly: true required: - id - name - provider_type x-speakeasy-param-computed: false x-speakeasy-param-suppress-computed-diff: true labels: $ref: '#/components/schemas/Labels' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' supports_multiple_credentials: description: | Indicates whether this auth strategy supports multiple credentials. - `true` for Key Auth strategies and when supported for Client Credentials strategies - `false` when not supported for Client Credentials strategies type: boolean readOnly: true x-speakeasy-param-suppress-computed-diff: true additionalProperties: false required: - id - name - display_name - strategy_type - configs - active - dcr_provider - labels - created_at - updated_at title: AppAuthStrategyOpenIDConnectResponse CreateAppAuthStrategyRequest: x-speakeasy-entity: ApplicationAuthStrategy description: Request body for creating an Application Auth Strategy type: object discriminator: propertyName: strategy_type mapping: key_auth: '#/components/schemas/AppAuthStrategyKeyAuthRequest' openid_connect: '#/components/schemas/AppAuthStrategyOpenIDConnectRequest' oneOf: - $ref: '#/components/schemas/AppAuthStrategyKeyAuthRequest' - $ref: '#/components/schemas/AppAuthStrategyOpenIDConnectRequest' required: - strategy_type title: CreateAppAuthStrategyRequest AppAuthStrategy: x-speakeasy-entity: ApplicationAuthStrategy description: A set of plugin configurations that represent how the gateway will perform authentication and authorization for a Product Version. Called “Auth Strategy” for short in the context of portals/applications. The plugins are synced to any Gateway Service that is currently linked or becomes linked to the Product Version. type: object discriminator: propertyName: strategy_type mapping: key_auth: '#/components/schemas/AppAuthStrategyKeyAuthResponse' openid_connect: '#/components/schemas/AppAuthStrategyOpenIDConnectResponse' oneOf: - $ref: '#/components/schemas/AppAuthStrategyKeyAuthResponse' - $ref: '#/components/schemas/AppAuthStrategyOpenIDConnectResponse' required: - strategy_type title: AppAuthStrategy UpdateAppAuthStrategyRequest: x-speakeasy-entity: ApplicationAuthStrategy description: Request body for updating an Application Auth Strategy type: object properties: name: $ref: '#/components/schemas/AuthStrategyName' display_name: $ref: '#/components/schemas/AuthStrategyDisplayName' labels: $ref: '#/components/schemas/LabelsUpdate' dcr_provider_id: type: string format: uuid default: null nullable: true x-speakeasy-param-computed: false configs: description: JSON-B object containing the configuration for the OIDC strategy under the key 'openid-connect' or the configuration for the Key Auth strategy under the key 'key-auth' type: object oneOf: - $ref: '#/components/schemas/UpdateAppAuthStrategyRequestOpenIdConnect' - $ref: '#/components/schemas/UpdateAppAuthStrategyRequestKeyAuth' additionalProperties: false title: UpdateAppAuthStrategyRequest UpdateAppAuthStrategyRequestOpenIdConnect: type: object properties: openid-connect: $ref: '#/components/schemas/PartialAppAuthStrategyConfigOpenIDConnect' additionalProperties: false required: - openid-connect UpdateAppAuthStrategyRequestKeyAuth: type: object properties: key-auth: $ref: '#/components/schemas/PartialAppAuthStrategyConfigKeyAuth' additionalProperties: false required: - key-auth CreateAppAuthStrategyResponse: $ref: '#/components/schemas/AppAuthStrategy' UpdateAppAuthStrategyResponse: $ref: '#/components/schemas/AppAuthStrategy' GetAppAuthStrategyResponse: $ref: '#/components/schemas/AppAuthStrategy' DcrProviderDisplayName: description: | The display name of the DCR provider. This is used to identify the DCR provider in the Portal UI. type: string maxLength: 256 minLength: 1 AuthStrategyName: description: | The name of the auth strategy. This is used to identify the auth strategy in the Konnect UI. type: string maxLength: 256 minLength: 1 AuthStrategyDisplayName: description: | The display name of the Auth strategy. This is used to identify the Auth strategy in the Portal UI. type: string maxLength: 256 UUID: description: Contains a unique identifier used for this resource. type: string format: uuid example: 5f9fd312-a987-4628-b4c5-bb4f4fddd5f7 readOnly: true x-speakeasy-param-suppress-computed-diff: true IdentityProviderType: description: Specifies the type of identity provider. type: string example: oidc enum: - oidc - saml x-speakeasy-unknown-values: allow IdentityProviderLoginPath: description: The path used for initiating login requests with the identity provider. type: string example: myapp title: Identity Provider Login Path Property OIDCIdentityProviderIssuer: description: The issuer URI of the identity provider. This is the URL where the provider's metadata can be obtained. type: string format: uri example: 'https://konghq.okta.com/oauth2/default' title: OIDC Identity Provider Issuer Property OIDCIdentityProviderClientId: description: The client ID assigned to your application by the identity provider. type: string example: YOUR_CLIENT_ID title: OIDC Identity Provider Login Client Id Property OIDCIdentityProviderClientSecret: description: The Client Secret assigned to your application by the identity provider. type: string example: YOUR_CLIENT_SECRET title: OIDC Identity Provider Login Client Secret Property writeOnly: true x-speakeasy-param-sensitive: true x-speakeasy-terraform-plan-only: true OIDCIdentityProviderScopes: description: The scopes requested by your application when authenticating with the identity provider. type: array items: type: string default: - email - openid - profile title: OIDC Identity Provider Scopes Property OIDCIdentityProviderClaimMappings: description: | Defines the mappings between OpenID Connect (OIDC) claims and local claims used by your application for authentication. type: object properties: name: description: The claim mapping for the user's name. type: string example: name default: name email: description: The claim mapping for the user's email address. type: string example: email default: email groups: description: The claim mapping for the user's group membership information. type: string example: groups default: groups title: OIDC Claim Mappings SAMLIdentityProviderMetadataURL: description: The identity provider's metadata URL where the identity provider's metadata can be obtained. type: string format: uri example: 'https://mocksaml.com/api/saml/metadata' title: SAML Identity Provider Metadata URL SAMLIdentityProviderMetadata: description: | The identity provider's SAML metadata. If the identity provider supports a metadata URL, you can use the `idp_metadata_url` field instead. type: string example: | title: SAML Identity Provider Metadata CreateIdentityProvider: x-speakeasy-entity: IdentityProvider description: The identity provider that contains configuration data for creating an authentication integration. type: object properties: type: $ref: '#/components/schemas/IdentityProviderType' enabled: $ref: '#/components/schemas/IdentityProviderEnabled' login_path: $ref: '#/components/schemas/IdentityProviderLoginPath' config: type: object oneOf: - $ref: '#/components/schemas/OIDCIdentityProviderConfig' - $ref: '#/components/schemas/SAMLIdentityProviderConfig' title: Create Identity Provider UpdateIdentityProvider: x-speakeasy-entity: IdentityProvider description: The identity provider that contains configuration data for updating an authentication integration. type: object properties: enabled: $ref: '#/components/schemas/IdentityProviderEnabled' login_path: $ref: '#/components/schemas/IdentityProviderLoginPath' config: type: object oneOf: - $ref: '#/components/schemas/OIDCIdentityProviderConfig' - $ref: '#/components/schemas/SAMLIdentityProviderConfig' title: Update Identity Provider IdentityProvider: x-speakeasy-entity: IdentityProvider description: The identity provider that contains configuration data for authentication integration. type: object properties: id: $ref: '#/components/schemas/UUID' type: $ref: '#/components/schemas/IdentityProviderType' enabled: $ref: '#/components/schemas/IdentityProviderEnabled' login_path: $ref: '#/components/schemas/IdentityProviderLoginPath' config: type: object oneOf: - $ref: '#/components/schemas/OIDCIdentityProviderConfig' - $ref: '#/components/schemas/SAMLIdentityProviderConfig' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' title: Identity Provider OIDCIdentityProviderConfig: description: The identity provider that contains configuration data for the OIDC authentication integration. type: object properties: issuer_url: $ref: '#/components/schemas/OIDCIdentityProviderIssuer' client_id: $ref: '#/components/schemas/OIDCIdentityProviderClientId' client_secret: $ref: '#/components/schemas/OIDCIdentityProviderClientSecret' scopes: $ref: '#/components/schemas/OIDCIdentityProviderScopes' claim_mappings: $ref: '#/components/schemas/OIDCIdentityProviderClaimMappings' additionalProperties: false required: - issuer_url - client_id title: OIDC Identity Provider Config SAMLIdentityProviderConfig: description: The identity provider that contains configuration data for the SAML authentication integration. type: object properties: idp_metadata_url: $ref: '#/components/schemas/SAMLIdentityProviderMetadataURL' idp_metadata_xml: $ref: '#/components/schemas/SAMLIdentityProviderMetadata' sp_metadata_url: type: string format: uri example: 'https://cloud.konghq.com/v2/authenticate/the-saml-konnect-org/saml/metadata' readOnly: true x-speakeasy-param-suppress-computed-diff: true sp_entity_id: description: The entity ID of the service provider (SP). type: string example: 'https://cloud.konghq.com/sp/00000000-0000-0000-0000-000000000000' readOnly: true x-speakeasy-param-suppress-computed-diff: true login_url: description: The URL to redirect users to for initiating login with the identity provider. type: string example: 'https://cloud.konghq.com/login/the-saml-konnect-org' readOnly: true x-speakeasy-param-suppress-computed-diff: true callback_url: description: The URL where the SAML identity provider sends authentication responses after successful login attempts. type: string format: uri example: 'https://cloud.konghq.com/v2/authenticate/the-saml-konnect-org/saml/acs' readOnly: true x-speakeasy-param-suppress-computed-diff: true additionalProperties: false title: SAML Identity Provider Config Team: x-speakeasy-entity: Team description: The team object contains information about a group of users. type: object properties: id: description: The team ID. type: string format: uuid example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 readOnly: true x-speakeasy-param-suppress-computed-diff: true name: description: The name of the team. type: string example: IDM - Developers default: null maxLength: 250 nullable: true pattern: '^[\w \W]+$' x-speakeasy-param-computed: false description: description: The team description in Konnect. type: string example: The developers for the IDM API. default: null maxLength: 250 nullable: true x-speakeasy-param-computed: false system_team: description: 'Returns True if a user belongs to a `system_team`. System teams are teams that can manage Konnect objects, like "Organization Admin", or "Service"' type: boolean default: false readOnly: true x-speakeasy-param-suppress-computed-diff: true labels: $ref: '#/components/schemas/Labels' created_at: description: A Unix timestamp representation of team creation. type: string format: date-time example: '1992-02-07T17:46:57.52Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true updated_at: description: | A Unix timestamp representation of the most recent change to the team object in Konnect. type: string format: date-time example: '2022-02-07T17:00:00.52Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true example: id: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 name: IDM - Developers description: The developers for the IDM API. system_team: false labels: env: test created_at: '1992-02-07T17:46:57.52Z' updated_at: '2022-08-31T17:00:00.52Z' title: Team IdpTeamGroupMapping: description: A mapping between a Konnect team and an identity provider group. type: object properties: id: $ref: '#/components/schemas/UUID' team_id: description: The Konnect team ID. type: string format: uuid example: 6801e673-cc10-498a-94cd-4271de07a0d3 group: description: The identity provider group name. Group names are case sensitive. type: string example: Tech Leads created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' required: - id - team_id - group - created_at - updated_at title: IdpTeamGroupMapping AssignedRole: description: An assigned role is a role that has been assigned to a user or team. type: object properties: id: description: The ID of the role assignment. type: string format: uuid example: eaf7adf1-32c8-4bbf-b960-d1f8456afe67 role_name: description: Name of the role being assigned. type: string example: Viewer default: null nullable: true x-speakeasy-param-computed: false entity_id: description: A RBAC entity ID. type: string format: uuid example: 817d0422-45c9-4d88-8d64-45aef05c1ae7 default: null nullable: true x-speakeasy-param-computed: false entity_type_name: description: Name of the entity type the role is being assigned to. type: string example: Control Planes default: null nullable: true x-speakeasy-param-computed: false entity_region: description: Region of the entity. type: string example: eu enum: - us - eu - au - me - in - sg - '*' x-speakeasy-unknown-values: allow example: id: 54cc6168-ebb1-4300-8168-d62a0dd08fc8 role_name: Viewer entity_id: 18ee2573-dec0-4b83-be99-fa7700bcdc61 entity_type_name: Control Planes entity_region: us title: AssignedRole SystemAccount: x-speakeasy-entity: SystemAccount description: Schema of the system account. type: object properties: id: description: ID of the system account. type: string format: uuid readOnly: true x-speakeasy-param-suppress-computed-diff: true name: description: Name of the system account. type: string default: null nullable: true x-speakeasy-param-computed: false description: description: Description of the system account. type: string default: null nullable: true x-speakeasy-param-computed: false created_at: description: Timestamp of when the system account was created. type: string format: date-time readOnly: true x-speakeasy-param-suppress-computed-diff: true updated_at: description: Timestamp of when the system account was last updated. type: string format: date-time readOnly: true x-speakeasy-param-suppress-computed-diff: true konnect_managed: description: The system account is managed by Konnect (true/false). type: boolean default: null nullable: true x-speakeasy-param-computed: false example: id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 name: Example System Account description: This is a sample system account description. created_at: '2022-08-24T14:15:22Z' updated_at: '2022-10-05T10:33:49Z' konnect_managed: false title: System Account SystemAccountAccessToken: x-speakeasy-entity: SystemAccountAccessToken description: Schema of the system account access token. type: object properties: id: description: ID of the system account access token. type: string format: uuid readOnly: true x-speakeasy-param-suppress-computed-diff: true name: description: Name of the system account access token. type: string default: null nullable: true x-speakeasy-param-computed: false created_at: description: Timestamp of when the system account access token was created. type: string format: date-time readOnly: true x-speakeasy-param-suppress-computed-diff: true updated_at: description: Timestamp of when the system account access token was last updated. type: string format: date-time readOnly: true x-speakeasy-param-suppress-computed-diff: true expires_at: description: Timestamp of when the system account access token will expire. type: string format: date-time default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-terraform-custom-type: imports: - github.com/Kong/shared-speakeasy/customtypes/timetypes schemaType: 'timetypes.RFC3339PreciseToSecondType{}' valueType: timetypes.RFC3339PreciseToSecond last_used_at: description: Timestamp of when the system account access token was last used. type: string format: date-time readOnly: true x-speakeasy-param-suppress-computed-diff: true example: id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 name: Sample Access Token created_at: '2022-08-01T14:16:09Z' updated_at: '2022-08-02T08:35:49Z' expires_at: '2022-12-31T12:52:23Z' last_used_at: '2022-10-24T13:05:42Z' title: System Account Access Token IdentityProviderEnabled: description: | Indicates whether the identity provider is enabled. Only one identity provider can be active at a time, such as SAML or OIDC. type: boolean example: true default: false title: Identity Provider Enabled Property LegacyStringFieldFilter: description: 'Filter using **one** of the following operators: `eq`, `contains`' type: object properties: eq: description: The field exactly matches the provided value. type: string contains: description: The field contains the provided value. type: string additionalProperties: false ServerlessCloudGateway: x-speakeasy-entity: ServerlessCloudGateway description: A serverless cloud gateway type: object properties: control_plane: $ref: '#/components/schemas/ServerlessControlPlane' gateway_endpoint: description: Endpoint for the serverless cloud gateway. type: string format: hostname example: us-kong-4594857kpl.kongcloud.dev readOnly: true x-speakeasy-param-suppress-computed-diff: true created_at: type: string format: date-time example: '2023-01-11T02:30:42.227Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true updated_at: type: string format: date-time example: '2023-01-11T02:30:42.227Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true labels: $ref: '#/components/schemas/SCGWLabels' required: - control_plane - gateway_endpoint - updated_at - created_at title: ServerlessCloudGateway CreateServerlessCloudGatewayRequest: x-speakeasy-entity: ServerlessCloudGateway description: Schema to create a serverless cloud gateway. type: object properties: control_plane: $ref: '#/components/schemas/ServerlessControlPlane' cluster_cert: description: The cluster certificate (public key). type: string example: | -----BEGIN CERTIFICATE----- MIICRDCCAa2gAwIBAgIBADANBgkqhkiG9w0BAQ0FADA/MQswCQYDVQQGEwJ1czEL MAkGA1UECAwCVFgxDTALBgNVBAoMBFRlc3QxFDASBgNVBAMMC2V4YW1wbGUuY29t MB4XDTI0MDQyNjA5NTA1OVoXDTI1MDQyNjA5NTA1OVowPzELMAkGA1UEBhMCdXMx CzAJBgNVBAgMAlRYMQ0wCwYDVQQKDARUZXN0MRQwEgYDVQQDDAtleGFtcGxlLmNv bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA8FaJZmPsthBT1XkTyqUJiuQV 4p4KaLpNMioNQtIdeGKFXelmZlVfW0bfLGBgFmkwo19KIzFtOlITUjb0Qqlub2Dn TIPoDs7rXA8aw6umJu73Z6647U3+alxNCpwTuYOY2CJQ+HWEIuOuwAdtQkndEp9r 7ZWA2xLatQKBYEvEmykCAwEAAaNQME4wHQYDVR0OBBYEFGUznNeZK74vlA4bqKHb 706tyMwcMB8GA1UdIwQYMBaAFGUznNeZK74vlA4bqKHb706tyMwcMAwGA1UdEwQF MAMBAf8wDQYJKoZIhvcNAQENBQADgYEARmnu/2vUcmJYLlg86MN0prXGC3CGXsem fDtPF4SBPxfchdG7HJKywTloIiCBKGEQALkCHiJcQJNcSHmzH3/Qk+SrOJNH01gt HsKA4SNFJZR5fCRpT6USCukyE2Wlr+PWPscrFCWbLXhK4Ql/t0oog1255B10HqKk 1qDkNrzCd/o= -----END CERTIFICATE----- cluster_cert_key: description: The cluster certificate key (private key). type: string example: | -----BEGIN PRIVATE KEY----- MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAPBWiWZj7LYQU9V5 E8qlCYrkFeKeCmi6TTIqDULSHXhihV3pZmZVX1tG3yxgYBZpMKNfSiMxbTpSE1I2 9EKpbm9g50yD6A7O61wPGsOrpibu92euuO1N/mpcTQqcE7mDmNgiUPh1hCLjrsAH bUJJ3RKfa+2VgNsS2rUCgWBLxJspAgMBAAECgYEAvA7qqozL/1ZdUu/P1cQ36E86 9L03ZeVJXFRdVgj2eGqW8vob3z00RUb6gE3VQhQDNALvDwSw9G6eoblQfgz31Hju sb+j6bGOm2BqzYrx6rpcgme7k9ScV0tEbtiBNX0E/ToHvNywHtdOBvDocN2wh42Z 6bS9um51H+SXR036mgUCQQD4T7WrJHL97Hj8TtHnTw895xWKaGn94H7ZQa2lo1nk 7CQ4Oi8rFX5tDdyV7UU6fekBWuhpmIhSGJhyHD7UThBjAkEA98ef9ey2Qx+j+R8S tgpgJAF3LVNJJicEHCS/Vltgc84X/vidVAMa2+TYPxPrrUjxBr0STCeB5wZhvvsB D8cOAwJBAJ5JqaQPUx1dDe7Ai/vooO20Dj4xu0c0QYha3sfU7qwIgDo7lO/g/ruj 93a3TscvlkXf3oHZ0ySKOzual86ciMMCQQDGOLgaWHVy+4QFTzt70I8bHuUFqKRT VlEuZqN/ZXijDFQcES5jwFwjYE8zHy+ioEDaIDXcIJsGhA98Zndx9M+bAkA4IFdx 4YIDhuk1MJAYPqVQs5szEF/0BGymLNVYlIox48bZg+TH3uXwTVRVySxvpRa8dd3O 0gHs3EIV6GFUl7ev -----END PRIVATE KEY----- x-sensitive: true x-speakeasy-param-sensitive: true labels: $ref: '#/components/schemas/SCGWLabels' additionalProperties: false required: - control_plane - cluster_cert - cluster_cert_key title: CreateServerlessCloudGatewayRequest SCGWLabels: description: 'Labels to facilitate tagged search on serverless cloud gateways. Keys must be of length 1-63 characters, and cannot start with ''kong'', ''konnect'', ''mesh'', ''kic'', or ''_''.' type: object example: env: test additionalProperties: type: string pattern: '^[a-z0-9A-Z]{1}([a-z0-9A-Z\-\.\_]*[a-z0-9A-Z]+)?$' minLength: 1 maxLength: 63 title: Labels CpRegion: description: The control plane region. type: string example: us enum: - us - eu - au title: Control plane region x-enum-varnames: - US - Europe - Aus x-speakeasy-unknown-values: allow ServerlessControlPlane: type: object properties: id: description: ID of the serverless cloud gateway CP. type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a prefix: description: The prefix of the serverless cloud gateway CP. type: string example: 518da50bf7 region: $ref: '#/components/schemas/CpRegion' required: - id - prefix - region title: Control plane x-go-name: ControlPlane LogFormat: description: The output format of each log messages. type: string default: cef enum: - cef - json - cps x-speakeasy-unknown-values: allow AuditLogDestination: description: Audit Log Destination Schema type: object properties: id: description: The unique ID of the audit log destination. type: string format: uuid name: description: The name of the audit log destination. type: string default: null nullable: true x-speakeasy-param-computed: false endpoint: description: The endpoint that will receive audit log messages. type: string example: 'https://example.com/audit-logs' default: null nullable: true x-speakeasy-param-computed: false log_format: $ref: '#/components/schemas/LogFormat' skip_ssl_verification: description: Indicates if the SSL certificate verification of the host endpoint should be skipped when delivering payloads. type: boolean example: false default: false created_at: description: Timestamp when this webhook was created. type: string format: date-time readOnly: true x-speakeasy-param-suppress-computed-diff: true updated_at: description: 'Timestamp when this webhook was last updated. Initial value is 0001-01-01T00:00:0Z.' type: string format: date-time readOnly: true x-speakeasy-param-suppress-computed-diff: true title: AuditLogDestination CreateApiKeyResult: type: object properties: id: type: string type: $ref: '#/components/schemas/KeyTypeEnum' secret: type: string x-sensitive: true x-speakeasy-param-sensitive: true created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' tags: $ref: '#/components/schemas/Tags' required: - id - type - secret - created_at - updated_at - tags KeyTypeEnum: type: string enum: - legacy - new x-speakeasy-unknown-values: allow ApiKey: type: object properties: id: type: string created_at: $ref: '#/components/schemas/CreatedAt' tags: $ref: '#/components/schemas/Tags' type: $ref: '#/components/schemas/KeyTypeEnum' required: - id - created_at - type - tags ConsumerRealm: type: object properties: id: type: string x-speakeasy-param-suppress-computed-diff: true name: type: string ttl: $ref: '#/components/schemas/RealmTTL' negative_ttl: $ref: '#/components/schemas/NegativeTTL' consumer_groups: $ref: '#/components/schemas/RealmConsumerGroups' allowed_control_planes: $ref: '#/components/schemas/AllowedControlPlanes' allow_all_control_planes: $ref: '#/components/schemas/AllowAllControlPlanes' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' required: - id - name - allowed_control_planes - allow_all_control_planes - ttl - negative_ttl - consumer_groups - created_at - updated_at ConsumerRealmCreateRequest: type: object properties: name: type: string allowed_control_planes: $ref: '#/components/schemas/AllowedControlPlanes' allow_all_control_planes: $ref: '#/components/schemas/AllowAllControlPlanes' ttl: $ref: '#/components/schemas/RealmTTL' negative_ttl: $ref: '#/components/schemas/NegativeTTL' consumer_groups: $ref: '#/components/schemas/RealmConsumerGroups' additionalProperties: false required: - name UpdateConsumerPayload: type: object properties: username: $ref: '#/components/schemas/ConsumerUsername' custom_id: description: Field for storing an existing unique ID for the Consumer - useful for mapping Kong with users in your existing database. type: string default: null minLength: 1 nullable: true x-speakeasy-param-computed: false consumer_groups: description: | A list of consumer groups that the Consumer is in. If `consumer_groups` are provided on the Consumer object _and_ on the Realm, the Consumer will be placed in all defined consumer groups. type: array items: type: string uniqueItems: true default: null nullable: true title: ConsumerGroups x-speakeasy-param-computed: false x-speakeasy-param-suppress-computed-diff: true type: $ref: '#/components/schemas/ConsumerType' tags: $ref: '#/components/schemas/Tags' additionalProperties: false AllowAllControlPlanes: description: | Allow all control planes to use the realm. When this value is set it takes precedence on `allowed_control_planes`. type: boolean nullable: false x-speakeasy-param-suppress-computed-diff: true ConsumerRealmUpdateRequest: type: object properties: name: type: string default: null nullable: true x-speakeasy-param-computed: false allowed_control_planes: $ref: '#/components/schemas/AllowedControlPlanes' allow_all_control_planes: $ref: '#/components/schemas/AllowAllControlPlanes' consumer_groups: $ref: '#/components/schemas/RealmConsumerGroups' ttl: $ref: '#/components/schemas/RealmTTL' negative_ttl: $ref: '#/components/schemas/NegativeTTL' additionalProperties: false ConsumerUsername: description: The unique username of the Consumer. type: string minLength: 1 ConsumerCustomID: description: Field for storing an existing unique ID for the Consumer - useful for mapping Kong with users in your existing database. type: string minLength: 1 RealmTTL: description: | The time in minutes that the Consumer will be cached in memory on a running Gateway if it is successfully loaded from Konnect. type: integer default: 10 minimum: 5 NegativeTTL: description: | If a running Gateway triggers a lookup for a Consumer that cannot be authenticated this realm, a `negative_ttl` is set. The Gateway will not try to lookup the Consumer in Konnect for `negative_ttl` minutes. A Consumer will be cached for `negative_ttl` if they do not exist in the Realm, or if the provided credentials are invalid. type: integer default: 10 minimum: 5 ConsumerCreateRequest: type: object properties: username: $ref: '#/components/schemas/ConsumerUsername' custom_id: $ref: '#/components/schemas/ConsumerCustomID' consumer_groups: $ref: '#/components/schemas/ConsumerGroups' type: $ref: '#/components/schemas/ConsumerType' tags: $ref: '#/components/schemas/Tags' additionalProperties: false required: - username AllowedControlPlanes: description: | List of control plane ids that are allowed to use the realm. This is used when `allow_all_control_planes` value is set to false. type: array items: type: string uniqueItems: true x-speakeasy-param-suppress-computed-diff: true format: set ConsumerType: description: | Type of the consumer. type: string default: proxy enum: - proxy - developer - admin - application x-speakeasy-unknown-values: allow Tags: type: array items: type: string uniqueItems: true x-speakeasy-param-suppress-computed-diff: true ConsumerGroups: description: | A list of consumer groups that the Consumer is in. If `consumer_groups` are provided on the Consumer object _and_ on the Realm, the Consumer will be placed in all defined consumer groups. type: array items: type: string uniqueItems: true title: ConsumerGroups x-speakeasy-param-suppress-computed-diff: true CentralizedConsumer: 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: id: description: The Consumer ID. type: string format: uuid example: b9e81174-b5bb-4638-a3c3-8afe61a0abf8 readOnly: true x-speakeasy-param-suppress-computed-diff: true username: description: The unique username of the Consumer. You must send either this field or `custom_id` with the request. type: string 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 default: null nullable: true x-speakeasy-param-computed: false type: $ref: '#/components/schemas/ConsumerType' tags: $ref: '#/components/schemas/Tags' consumer_groups: $ref: '#/components/schemas/ConsumerGroups' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' example: custom_id: '4200' id: 8a388226-80e8-4027-a486-25e4f7db5d21 type: proxy consumer_groups: - gold tags: - partner username: bob-the-builder created_at: '2025-06-17T16:55:58.569399532Z' updated_at: '2025-06-17T16:55:58.569399532Z' additionalProperties: false required: - id - username - custom_id - type - tags - consumer_groups - created_at - updated_at RealmConsumerGroups: description: | A list of consumer groups to automatically add to any consumers created within this Realm. If `consumer_groups` are provided on the Consumer object _and_ on the Realm, the Consumer will be placed in all defined consumer groups. type: array items: type: string uniqueItems: true format: set title: RealmConsumerGroups x-speakeasy-param-suppress-computed-diff: true KMSARN: description: 'The Amazon Resource Name (ARN) of the Key Management Service (KMS) key to use for encryption and decryption. We recommend using one multi-region key (MRK) per Konnect region to enhance security and compliance, while also supporting failover to other AWS regions.' type: string example: 'arn:aws:kms:us-east-1:123456789012:key/mrk-12345678123412341234123456789012' CMEKName: description: The name of the CMEK. We recommend you match the key's name used in KMS. type: string example: My KMS Key minLength: 1 CMEKDescription: description: An optional description of the CMEK. type: string example: My Key Description CMEK: type: object properties: id: type: string x-speakeasy-ignore: true key_arn: $ref: '#/components/schemas/KMSARN' name: $ref: '#/components/schemas/CMEKName' description: $ref: '#/components/schemas/CMEKDescription' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' required: - id - key_arn - name - created_at - updated_at CreateCatalogService: type: object properties: name: description: | The machine name of the Service that uniquely identifies it within the catalog. type: string example: user-svc maxLength: 120 minLength: 1 pattern: '^[0-9a-z.-]+$' display_name: description: The display name of the Service. type: string example: User Service maxLength: 120 minLength: 1 description: description: Optionally provide a description of the Service. type: string default: null maxLength: 2048 nullable: true x-speakeasy-param-computed: false labels: $ref: '#/components/schemas/Labels' custom_fields: $ref: '#/components/schemas/CustomFields' additionalProperties: false required: - name - display_name UpdateCatalogService: type: object properties: name: description: | The machine name of the Service that uniquely identifies it within the catalog. type: string example: user-svc default: null maxLength: 120 minLength: 1 nullable: true pattern: '^[0-9a-z.-]+$' x-speakeasy-param-computed: false display_name: description: The display name of the Service. type: string example: User Service default: null maxLength: 120 minLength: 1 nullable: true x-speakeasy-param-computed: false description: description: Optionally provide a description of the Service. type: string default: null maxLength: 2048 nullable: true x-speakeasy-param-computed: false labels: $ref: '#/components/schemas/LabelsUpdate' custom_fields: $ref: '#/components/schemas/CustomFields' additionalProperties: false CatalogService: description: The service object contains information about a Service Catalog service. type: object properties: id: description: The service ID. type: string format: uuid example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 readOnly: true x-speakeasy-param-suppress-computed-diff: true name: description: | The machine name of the Service that uniquely identifies it within the catalog. type: string example: user-svc maxLength: 120 minLength: 1 pattern: '^[0-9a-z.-]+$' display_name: description: The display name of the Service. type: string example: User Service maxLength: 120 minLength: 1 description: description: Optionally provide a description of the Service. type: string default: null maxLength: 2048 nullable: true x-speakeasy-param-computed: false custom_fields: $ref: '#/components/schemas/CustomFields' labels: $ref: '#/components/schemas/Labels' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' required: - id - name - display_name - description - custom_fields - labels - created_at - updated_at title: CatalogService CreateIntegrationInstance: type: object properties: integration_name: description: The type of integration instance to create. type: string example: aws-lambda maxLength: 120 minLength: 1 pattern: '^[0-9a-z.-]+$' name: description: | The machine name of the integration instance that uniquely identifies it within the catalog. type: string example: aws-lambda-prod maxLength: 120 minLength: 1 pattern: '^[0-9a-z.-]+$' display_name: description: The display name of the integration instance. type: string example: AWS (prod) maxLength: 120 minLength: 1 description: description: Optionally provide a description of the integration instance. type: string default: null maxLength: 2048 nullable: true x-speakeasy-param-computed: false labels: $ref: '#/components/schemas/Labels' config: $ref: '#/components/schemas/IntegrationInstanceConfig' additionalProperties: false required: - integration_name - name - display_name - config UpdateIntegrationInstance: type: object properties: name: description: | The machine name of the integration instance that uniquely identifies it within the catalog. type: string example: aws-lambda-prod default: null maxLength: 120 minLength: 1 nullable: true pattern: '^[0-9a-z.-]+$' x-speakeasy-param-computed: false display_name: description: The display name of the integration instance. type: string example: AWS (prod) default: null maxLength: 120 minLength: 1 nullable: true x-speakeasy-param-computed: false description: description: Optionally provide a description of the integration instance. type: string default: null maxLength: 2048 nullable: true x-speakeasy-param-computed: false labels: $ref: '#/components/schemas/LabelsUpdate' config: $ref: '#/components/schemas/IntegrationInstanceConfig' additionalProperties: false IntegrationInstance: description: Information about an integration instance. type: object properties: id: description: The integration instance ID. type: string format: uuid example: 3f51fa25-310a-421d-bd1a-007f859021a3 readOnly: true x-speakeasy-param-suppress-computed-diff: true name: description: | The machine name of the integration instance that uniquely identifies it within the catalog. type: string example: aws-lambda-prod maxLength: 120 minLength: 1 pattern: '^[0-9a-z.-]+$' display_name: description: The display name of the integration instance. type: string example: AWS (prod) maxLength: 120 minLength: 1 description: description: The description of the integration instance. type: string default: null maxLength: 2048 nullable: true x-speakeasy-param-computed: false integration: $ref: '#/components/schemas/IntegrationRefWithoutInstance' authorized: description: Denotes whether the integration instance has been authorized within the catalog. type: boolean example: true readOnly: true x-speakeasy-param-suppress-computed-diff: true labels: $ref: '#/components/schemas/Labels' config: $ref: '#/components/schemas/IntegrationInstanceConfig' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' required: - id - name - display_name - description - integration - authorized - config - created_at - updated_at IntegrationInstanceConfig: description: | JSON object representing configuration specific to the integration instance. The expected schema depends on the integration type and is dynamically registered at runtime. type: object example: account_region: eu default: {} additionalProperties: true x-speakeasy-type-override: any CreateIntegrationInstanceAuthCredential: oneOf: - $ref: '#/components/schemas/CreateMultiKeyAuthCredential' title: CreateIntegrationInstanceAuthCredential IntegrationInstanceAuthCredential: description: Object containing metadata for an integration instance auth credential. oneOf: - $ref: '#/components/schemas/MultiKeyAuthCredential' title: IntegrationInstanceAuthCredential CreateMultiKeyAuthCredential: description: Payload used to create an `Multi Key` credential for an integration instance. type: object properties: type: type: string const: multi_key_auth config: type: object additionalProperties: false properties: headers: description: | A list of header key/value pairs used to transmit API credentials to the integration's external API. Header names are defined by the integration within its `Multi Key` authorization strategy definition. type: array items: type: object required: - name - key properties: name: description: Name of the request header type: string key: description: The key used to populate the request header type: string example: - name: x-api-key key: 9f2a3b4c8d6e7f00112233445566778899aabbccddeeff001122334455667788 required: - headers title: CreateMultiKeyAuthCredentialConfig x-speakeasy-param-force-new: true x-speakeasy-param-suppress-computed-diff: true additionalProperties: false required: - type - config writeOnly: true x-speakeasy-name-override: multi_key_auth MultiKeyAuthCredential: description: Represents a credential scoped to an integration instance that supports the `Multi Key` authorization strategy. type: object properties: id: type: string format: uuid example: 4f535923-ec24-456c-b4e5-e67f65c8c208 integration_instance: $ref: '#/components/schemas/IntegrationInstanceRef' missing_permissions: description: List of detected missing permissions required to enable the full functionality of the given integration instance. type: array items: $ref: '#/components/schemas/MissingPermission' tainted: description: Indicates that the credential is no longer valid and must be replaced with a new valid credential. type: boolean example: false expires_at: description: | Timestamp denoting when the when the credential will expire in RFC-3339 format with a "T" character separating date from time within the field value. When expired, the credential must be replaced with a new valid credential to re-enable full functionality for the given integration instance. A `null` value indicates no known expiration time. type: string format: date-time example: '2025-04-01T07:20:50Z' default: null nullable: true x-speakeasy-param-computed: false created_at: $ref: '#/components/schemas/CreatedAt' type: type: string const: multi_key_auth required: - id - integration_instance - missing_permissions - tainted - expires_at - created_at - type title: MultiKeyAuthCredential x-speakeasy-param-suppress-computed-diff: true MissingPermission: type: object properties: scopes: type: array items: type: string nullable: true x-speakeasy-param-computed: false default: null example: - 'incident:read' message: description: | Describes the degraded experience of the integration instance due to the missing permission. May also include a message on how to resolve the missing permission. type: string required: - scopes - message UpsertIntegrationInstanceAuthConfig: oneOf: - $ref: '#/components/schemas/UpsertOAuthAuthConfig' title: UpsertIntegrationInstanceAuthConfig IntegrationInstanceAuthConfig: oneOf: - $ref: '#/components/schemas/OAuthAuthConfig' title: IntegrationInstanceAuthConfig UpsertOAuthAuthConfig: type: object properties: type: type: string const: oauth client_id: description: The OAuth client identifier. type: string example: d745213a-b7e8-4998-abe3-41f164001970 client_secret: description: The OAuth client secret. type: string example: s3cr3t4p1cl13ntt0k3n1234567890abcdef writeOnly: true authorization_endpoint: description: The URL where users are redirected to authorize access. type: string format: uri example: 'https://identity.service.com/oauth/authorize' token_endpoint: description: The URL used to retrieve access tokens. type: string format: uri example: 'https://identity.service.com/oauth/token' additionalProperties: false required: - type - client_id - client_secret - authorization_endpoint - token_endpoint title: OAuth Config x-speakeasy-name-override: oauth_config OAuthAuthConfig: type: object properties: type: type: string const: oauth client_id: description: The OAuth client identifier. type: string example: d745213a-b7e8-4998-abe3-41f164001970 authorization_endpoint: description: The URL where users are redirected to authorize access. type: string format: uri example: 'https://identity.service.com/oauth/authorize' token_endpoint: description: The URL used to retrieve access tokens. type: string format: uri example: 'https://identity.service.com/oauth/token' required: - type - client_id - authorization_endpoint - token_endpoint x-speakeasy-name-override: OauthAuthConfig CustomFields: description: | Map of customizable, catalog-defined fields providing information about a service. type: object example: owner: John Appleseed dashboard: name: On-Call Dashboard link: 'https://my-dashboard-svc.io/dashboards/1' additionalProperties: oneOf: - $ref: '#/components/schemas/TextCustomField' - $ref: '#/components/schemas/NumericCustomField' - $ref: '#/components/schemas/BooleanCustomField' - $ref: '#/components/schemas/UrlCustomField' x-speakeasy-type-override: any TextCustomField: type: string default: null nullable: true x-speakeasy-param-computed: false NumericCustomField: type: number default: null nullable: true x-speakeasy-param-computed: false BooleanCustomField: type: boolean default: null nullable: true x-speakeasy-param-computed: false UrlCustomField: type: object properties: name: description: The human-readable name of the URL link. type: string example: On-Call Dashboard link: description: The href value of the URL link. type: string format: uri-reference example: 'https://my-dashboard-svc.io/dashboards/1' default: null nullable: true required: - name - link x-speakeasy-param-computed: false IntegrationRefWithoutInstance: description: Short-hand descriptor of an integration that omits instance metadata. type: object properties: name: type: string example: gateway-manager display_name: type: string example: gateway-manager required: - name - display_name IntegrationInstanceRef: description: Short-hand descriptor of an integration instance. type: object properties: id: description: The integration instance ID. type: string format: uuid example: 772b9caf-ddbc-4f4f-8aa4-8dfbbe420351 name: description: | The machine name of the integration instance that uniquely identifies it within the catalog. type: string example: aws-lambda-prod pattern: '^[0-9a-z.-]+$' display_name: description: The display name of the integration instance. type: string example: AWS (prod) required: - id - name - display_name V2ListPortalsResponse: description: A paginated list of portals in the current region in the organization. type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/V2Portal' example: meta: page: number: 1 size: 10 total: 1 data: - id: 8f9fd312-a987-4628-b4c5-bb4f4fddd5f7 created_at: '2022-02-07T17:46:57.52Z' updated_at: '2022-10-08T17:00:00.52Z' name: Portal A display_name: Developer Portal A description: The Portal A default_domain: 123455678abcd.us.portal.konghq.com is_public: false rbac_enabled: true auto_approve_applications: false auto_approve_developers: true custom_domain: api.example.com custom_client_domain: portal.example.com application_count: 0 developer_count: 0 published_product_count: 0 additionalProperties: false required: - data - meta V2PortalProductVersionPublishStatus: description: Publication status of the API product version on the portal type: string enum: - published - unpublished x-speakeasy-unknown-values: allow V2PortalProductVersionDeprecated: description: Whether the api product version on the portal is deprecated type: boolean V2NotifyDevelopers: description: Whether to notify developers who are affected by this change type: boolean title: NotifyDevelopers V2ApplicationRegistrationEnabled: description: Whether the application registration on this portal for the api product version is enabled type: boolean V2AutoApproveRegistration: description: Whether the application registration auto approval on this portal for the api product version is enabled type: boolean V2AuthStrategies: description: A list of authentication strategies type: array items: $ref: '#/components/schemas/AuthStrategy' maxItems: 1 minItems: 0 V2AuthStrategyIDs: description: A list of authentication strategy IDs type: array items: $ref: '#/components/schemas/UUID_RW' maxItems: 1 minItems: 0 V2ReplacePortalProductVersionPayload: description: Payload to update a Portal Product Version type: object properties: publish_status: $ref: '#/components/schemas/V2PortalProductVersionPublishStatus' auth_strategy_ids: $ref: '#/components/schemas/V2AuthStrategyIDs' application_registration_enabled: $ref: '#/components/schemas/V2ApplicationRegistrationEnabled' auto_approve_registration: $ref: '#/components/schemas/V2AutoApproveRegistration' deprecated: $ref: '#/components/schemas/V2PortalProductVersionDeprecated' notify_developers: $ref: '#/components/schemas/V2NotifyDevelopers' additionalProperties: false required: - publish_status - application_registration_enabled - auto_approve_registration - deprecated - auth_strategy_ids title: ReplacePortalProductVersionPayload V2PortalProductVersion: description: | A Portal Product Version holds metadata that describes how a Product Version is configured for a specific portal. It contains: - Lifecyle and deprecation statuses - Application registration settings like auto approve or whether application registration is enabled - The Authentication Strategy (if present) that is enabled for Application Registration type: object properties: id: $ref: '#/components/schemas/UUID' publish_status: $ref: '#/components/schemas/V2PortalProductVersionPublishStatus' product_version_id: $ref: '#/components/schemas/UUID_RW' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' auth_strategies: $ref: '#/components/schemas/V2AuthStrategies' application_registration_enabled: $ref: '#/components/schemas/V2ApplicationRegistrationEnabled' auto_approve_registration: $ref: '#/components/schemas/V2AutoApproveRegistration' deprecated: $ref: '#/components/schemas/V2PortalProductVersionDeprecated' additionalProperties: false required: - id - publish_status - application_registration_enabled - auto_approve_registration - product_version_id - deprecated - auth_strategies - created_at - updated_at title: PortalProductVersion V2GetPortalResponse: $ref: '#/components/schemas/V2Portal' V2UpdatePortalResponse: $ref: '#/components/schemas/V2Portal' V2CreatePortalResponse: $ref: '#/components/schemas/V2Portal' V2GetPortalAppearanceResponse: example: theme_name: custom use_custom_fonts: true custom_theme: colors: section: header: value: '#F8F8F8' description: Background for header body: value: '#FFFFFF' description: Background for main content hero: value: '#F8F8F8' description: Background for hero section accent: value: '#F8F8F8' description: Subtle background tertiary: value: '#FFFFFF' description: Tertiary background stroke: value: 'rgba(0,0,0,0.1)' description: Border color footer: value: '#07A88D' description: Background for footer text: header: value: 'rgba(0,0,0,0.8)' description: Header text hero: value: '#FFFFFF' description: Hero text headings: value: 'rgba(0,0,0,0.8)' description: Headings text primary: value: 'rgba(0,0,0,0.8)' description: Main content text secondary: value: 'rgba(0,0,0,0.8)' description: Supporting text accent: value: '#07A88D' description: Subtle text link: value: '#07A88D' description: Link text footer: value: '#FFFFFF' description: Footer text button: primary_fill: value: '#1155CB' description: Background for Primary Button primary_text: value: '#FFFFFF' description: Text for Primary Button custom_fonts: base: Roboto code: Roboto headings: Roboto text: catalog: welcome_message: Welcome primary_header: Come on in! images: favicon: data: 'data:image/png;base64,bmljZV9sb29raW5nX3BpY3R1cmU=' filename: favicon.ico logo: data: 'data:image/png;base64,bmljZV9sb29raW5nX3BpY3R1cmU=' filename: logo.png catalog_cover: data: 'data:image/jpeg;base64,bmljZV9sb29raW5nX3BpY3R1cmU=' allOf: - $ref: '#/components/schemas/V2PortalAppearance' - type: object required: - theme_name - use_custom_fonts - custom_theme - custom_fonts - text - images V2UpdatePortalAppearanceResponse: example: theme_name: custom use_custom_fonts: true custom_theme: colors: section: header: value: '#F8F8F8' description: Background for header body: value: '#FFFFFF' description: Background for main content hero: value: '#F8F8F8' description: Background for hero section accent: value: '#F8F8F8' description: Subtle background tertiary: value: '#FFFFFF' description: Tertiary background stroke: value: 'rgba(0,0,0,0.1)' description: Border color footer: value: '#07A88D' description: Background for footer text: header: value: 'rgba(0,0,0,0.8)' description: Header text hero: value: '#FFFFFF' description: Hero text headings: value: 'rgba(0,0,0,0.8)' description: Headings text primary: value: 'rgba(0,0,0,0.8)' description: Main content text secondary: value: 'rgba(0,0,0,0.8)' description: Supporting text accent: value: '#07A88D' description: Subtle text link: value: '#07A88D' description: Link text footer: value: '#FFFFFF' description: Footer text button: primary_fill: value: '#1155CB' description: Background for Primary Button primary_text: value: '#FFFFFF' description: Text for Primary Button custom_fonts: base: Roboto code: Roboto headings: Roboto text: catalog: welcome_message: Welcome primary_header: Come on in! images: favicon: data: 'data:image/png;base64,bmljZV9sb29raW5nX3BpY3R1cmU=' filename: favicon.ico logo: data: 'data:image/png;base64,bmljZV9sb29raW5nX3BpY3R1cmU=' filename: logo.png catalog_cover: data: 'data:image/jpeg;base64,bmljZV9sb29raW5nX3BpY3R1cmU=' allOf: - $ref: '#/components/schemas/V2PortalAppearance' - type: object required: - theme_name - use_custom_fonts - custom_theme - custom_fonts - text - images V2Portal: type: object properties: id: $ref: '#/components/schemas/UUID' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' name: $ref: '#/components/schemas/V2PortalName' display_name: $ref: '#/components/schemas/V2PortalDisplayName' description: $ref: '#/components/schemas/V2PortalDescription' default_domain: description: The domain assigned to the portal by Konnect. This is the default place to access the portal and its API if not using a `custom_domain``. type: string format: hostname readOnly: true x-speakeasy-param-suppress-computed-diff: true is_public: description: Whether the portal catalog can be accessed publicly without any developer authentication. Developer accounts and applications cannot be created if the portal is public. type: boolean rbac_enabled: description: 'Whether the portal resources are protected by Role Based Access Control (RBAC). If enabled, developers view or register for products until unless assigned to teams with access to view and consume specific products.' type: boolean auto_approve_applications: description: 'Whether the requests from applications to register for products will be automatically approved, or if they will be set to pending until approved by an admin.' type: boolean auto_approve_developers: description: 'Whether the developer account registrations will be automatically approved, or if they will be set to pending until approved by an admin.' type: boolean custom_domain: description: 'The custom domain to access the developer portal. A CNAME for the portal''s default domain must be able to be set for the custom domain for it to be valid. After setting a valid CNAME, an SSL/TLS certificate will be automatically manged for the custom domain, and traffic will be able to use the custom domain to route to the portal''s web client and API.' type: string format: hostname default: null nullable: true x-speakeasy-param-computed: false custom_client_domain: description: 'The custom domain to access a self-hosted customized developer portal client. If this is set, the Konnect-hosted portal client will no longer be available. `custom_domain` must be also set for this value to be set. See https://github.com/Kong/konnect-portal for information on how to get started deploying and customizing your own Konnect portal.' type: string format: hostname default: null nullable: true x-speakeasy-param-computed: false default_application_auth_strategy_id: $ref: '#/components/schemas/V2DefaultApplicationAuthStratID' labels: $ref: '#/components/schemas/Labels' application_count: description: Number of applications created in the portal. type: number developer_count: description: Number of developers using the portal. type: number published_product_count: description: Number of api products published to the portal type: number example: id: 9f9fd312-a987-4628-b4c5-bb4f4fddd5f7 created_at: '2022-02-07T17:46:57.52Z' updated_at: '2022-10-08T17:00:00.52Z' name: Portal A display_name: Developer Portal A description: The Portal A default_domain: 123455678abcd.us.portal.konghq.com is_public: false rbac_enabled: true auto_approve_applications: false auto_approve_developers: true custom_domain: api.example.com custom_client_domain: portal.example.com application_count: 0 developer_count: 0 published_product_count: 0 additionalProperties: false required: - id - created_at - updated_at - name - display_name - default_domain - is_public - rbac_enabled - auto_approve_applications - auto_approve_developers - custom_domain - custom_client_domain - description - application_count - developer_count - published_product_count V2PortalDescription: description: The description of the portal. type: string default: null maxLength: 512 nullable: true x-speakeasy-param-computed: false V2DefaultApplicationAuthStratID: description: Default strategy ID applied on applications for the portal type: string format: uuid example: 5f9fd312-a987-4628-b4c5-bb4f4fddd5f7 nullable: true x-speakeasy-param-computed: true V2CreatePortalRequest: type: object properties: name: $ref: '#/components/schemas/V2PortalName' display_name: $ref: '#/components/schemas/V2PortalDisplayName' description: $ref: '#/components/schemas/V2PortalDescription' is_public: description: Whether the portal catalog can be accessed publicly without any developer authentication. Developer accounts and applications cannot be created if the portal is public. type: boolean default: null nullable: true x-speakeasy-param-computed: false rbac_enabled: description: 'Whether the portal resources are protected by Role Based Access Control (RBAC). If enabled, developers view or register for products until unless assigned to teams with access to view and consume specific products.' type: boolean default: null nullable: true x-speakeasy-param-computed: false auto_approve_applications: description: 'Whether the requests from applications to register for products will be automatically approved, or if they will be set to pending until approved by an admin.' type: boolean default: null nullable: true x-speakeasy-param-computed: false auto_approve_developers: description: 'Whether the developer account registrations will be automatically approved, or if they will be set to pending until approved by an admin.' type: boolean default: null nullable: true x-speakeasy-param-computed: false custom_domain: description: 'The custom domain to access the developer portal. A CNAME for the portal''s default domain must be able to be set for the custom domain for it to be valid. After setting a valid CNAME, an SSL/TLS certificate will be automatically manged for the custom domain, and traffic will be able to use the custom domain to route to the portal''s web client and API.' type: string format: hostname default: null maxLength: 1024 nullable: true x-speakeasy-param-computed: false custom_client_domain: description: 'The custom domain to access a self-hosted customized developer portal client. If this is set, the Konnect-hosted portal will no longer be available. `custom_domain` must be also set for this value to be set. See https://github.com/Kong/konnect-portal for information on how to get started deploying and customizing your own Konnect portal.' type: string format: hostname default: null maxLength: 1024 nullable: true x-speakeasy-param-computed: false default_application_auth_strategy_id: $ref: '#/components/schemas/V2DefaultApplicationAuthStratID' labels: $ref: '#/components/schemas/Labels' example: name: DevPortal is_public: false rbac_enabled: true auto_approve_applications: false auto_approve_developers: false custom_domain: api.example.com custom_client_domain: portal.example.com default_application_auth_strategy_id: 5f9fd312-a987-4628-b4c5-bb4f4fddd5f7 additionalProperties: false required: - name V2PortalName: description: 'The name of the portal, used to distinguish it from other portals. Name must be unique.' type: string maxLength: 255 minLength: 1 V2PortalDisplayName: description: The display name of the portal. This value will be the portal's `name` in Portal API. type: string maxLength: 255 minLength: 1 V2UpdatePortalRequest: type: object properties: name: $ref: '#/components/schemas/V2PortalName' display_name: $ref: '#/components/schemas/V2PortalDisplayName' description: $ref: '#/components/schemas/V2PortalDescription' is_public: description: Whether the portal catalog can be accessed publicly without any developer authentication. Developer accounts and applications cannot be created if the portal is public. type: boolean default: null nullable: true x-speakeasy-param-computed: false rbac_enabled: description: 'Whether the portal resources are protected by Role Based Access Control (RBAC). If enabled, developers view or register for products until unless assigned to teams with access to view and consume specific products.' type: boolean default: null nullable: true x-speakeasy-param-computed: false auto_approve_applications: description: 'Whether the requests from applications to register for products will be automatically approved, or if they will be set to pending until approved by an admin.' type: boolean default: null nullable: true x-speakeasy-param-computed: false auto_approve_developers: description: 'Whether the developer account registrations will be automatically approved, or if they will be set to pending until approved by an admin.' type: boolean default: null nullable: true x-speakeasy-param-computed: false custom_domain: description: 'The custom domain to access the developer portal. A CNAME for the portal''s default domain must be able to be set for the custom domain for it to be valid. After setting a valid CNAME, an SSL/TLS certificate will be automatically manged for the custom domain, and traffic will be able to use the custom domain to route to the portal''s web client and API.' type: string format: hostname default: null maxLength: 1024 nullable: true x-speakeasy-param-computed: false custom_client_domain: description: 'The custom domain to access a self-hosted customized developer portal client. If this is set, the Konnect-hosted portal will no longer be available. `custom_domain` must be also set for this value to be set. See https://github.com/Kong/konnect-portal for information on how to get started deploying and customizing your own Konnect portal.' type: string format: hostname default: null maxLength: 1024 nullable: true x-speakeasy-param-computed: false default_application_auth_strategy_id: $ref: '#/components/schemas/V2DefaultApplicationAuthStratID' labels: $ref: '#/components/schemas/LabelsUpdate' example: name: Aperture is_public: false rbac_enabled: true auto_approve_applications: false auto_approve_developers: false custom_domain: api.example.com custom_client_domain: portal.example.com default_application_auth_strategy_id: 5f9fd312-a987-4628-b4c5-bb4f4fddd5f7 additionalProperties: false V2UpdatePortalAppearanceRequest: $ref: '#/components/schemas/V2PortalAppearance' V2AppearanceColorVariable: type: object properties: value: type: string maxLength: 255 description: type: string default: null maxLength: 512 nullable: true x-speakeasy-param-computed: false example: value: '#000000' description: The color for a type of thing additionalProperties: false required: - value V2AppearanceThemeColorVariables: type: object properties: section: type: object additionalProperties: false properties: header: $ref: '#/components/schemas/V2AppearanceColorVariable' body: $ref: '#/components/schemas/V2AppearanceColorVariable' hero: $ref: '#/components/schemas/V2AppearanceColorVariable' accent: $ref: '#/components/schemas/V2AppearanceColorVariable' tertiary: $ref: '#/components/schemas/V2AppearanceColorVariable' stroke: $ref: '#/components/schemas/V2AppearanceColorVariable' footer: $ref: '#/components/schemas/V2AppearanceColorVariable' required: - header - body - hero - accent - tertiary - stroke - footer text: type: object additionalProperties: false properties: header: $ref: '#/components/schemas/V2AppearanceColorVariable' hero: $ref: '#/components/schemas/V2AppearanceColorVariable' headings: $ref: '#/components/schemas/V2AppearanceColorVariable' primary: $ref: '#/components/schemas/V2AppearanceColorVariable' secondary: $ref: '#/components/schemas/V2AppearanceColorVariable' accent: $ref: '#/components/schemas/V2AppearanceColorVariable' link: $ref: '#/components/schemas/V2AppearanceColorVariable' footer: $ref: '#/components/schemas/V2AppearanceColorVariable' required: - header - hero - headings - primary - secondary - accent - link - footer button: type: object additionalProperties: false properties: primary_fill: $ref: '#/components/schemas/V2AppearanceColorVariable' primary_text: $ref: '#/components/schemas/V2AppearanceColorVariable' required: - primary_fill - primary_text example: section: header: value: '#0A161E' description: Background for header body: value: '#0C0C0C' description: Background for main content hero: value: '#1A1D21' description: Background for hero section accent: value: '#1F1F1F' description: Subtle background tertiary: value: '#222529' description: Tertiary background stroke: value: '#34393F' description: Border color footer: value: '#212429' description: Background for footer text: header: value: '#FFFFFF' description: Header text hero: value: 'rgba(255,255,255,0.8)' description: Hero text headings: value: '#FFFFFF' description: Headings text primary: value: '#C8C8C9' description: Main content text secondary: value: '#919294' description: Supporting text accent: value: '#FFFFFF' description: Subtle text link: value: '#2977FF' description: Link text footer: value: '#FFFFFF' description: Footer text button: primary_fill: value: '#1155CB' description: Background for Primary Button primary_text: value: '#FFFFFF' description: Text for Primary Button additionalProperties: false required: - section - text - button V2NullableAppearanceThemeVariables: description: Groups of variables for configuring visual details of the portal user interface. Set theme_name to 'custom' to use custom values for theme variables. type: object properties: colors: $ref: '#/components/schemas/V2AppearanceThemeColorVariables' example: colors: section: header: value: '#F8F8F8' description: Background for header body: value: '#FFFFFF' description: Background for main content hero: value: '#F8F8F8' description: Background for hero section accent: value: '#F8F8F8' description: Subtle background tertiary: value: '#FFFFFF' description: Tertiary background stroke: value: 'rgba(0,0,0,0.1)' description: Border color footer: value: '#07A88D' description: Background for footer text: header: value: 'rgba(0,0,0,0.8)' description: Header text hero: value: '#FFFFFF' description: Hero text headings: value: 'rgba(0,0,0,0.8)' description: Headings text primary: value: 'rgba(0,0,0,0.8)' description: Main content text secondary: value: 'rgba(0,0,0,0.8)' description: Supporting text accent: value: '#07A88D' description: Subtle text link: value: '#07A88D' description: Link text footer: value: '#FFFFFF' description: Footer text button: primary_fill: value: '#1155CB' description: Background for Primary Button primary_text: value: '#FFFFFF' description: Text for Primary Button default: null additionalProperties: false nullable: true required: - colors title: AppearanceThemeVariables x-speakeasy-param-computed: false V2NullableAppearanceFonts: description: Font selections to render text in the portal user interface. Must set use_custom_fonts to true to enable using custom font values. type: object properties: base: $ref: '#/components/schemas/V2AppearanceFontName' code: $ref: '#/components/schemas/V2AppearanceFontName' headings: $ref: '#/components/schemas/V2AppearanceFontName' default: null additionalProperties: false nullable: true required: - base - code - headings x-speakeasy-param-computed: false V2AppearanceFontName: description: The name of the font to render in the browser. type: string example: Roboto enum: - Roboto - Inter - Open Sans - Lato - Slabo 27px - Slabo 13px - Oswald - Source Sans Pro - Montserrat - Raleway - PT Sans - Lora - Roboto Mono - Inconsolata - Source Code Pro - PT Mono - Ubuntu Mono - IBM Plex Mono x-speakeasy-unknown-values: allow V2AppearanceImage: description: 'The image data to upload, along with an optional filename. Images must be a data URL with binary image data in base 64 format. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs.' type: object properties: data: $ref: '#/components/schemas/PortalAppearanceImageDataUri' filename: type: string default: null maxLength: 512 nullable: true x-speakeasy-param-computed: false example: data: 'data:image/jpeg;base64,bmljZV9sb29raW5nX3BpY3R1cmU=' default: null additionalProperties: false nullable: true required: - data x-speakeasy-param-computed: false V2AppearanceImages: description: A collection of binary image data to customize images in the portal type: object properties: logo: $ref: '#/components/schemas/V2AppearanceImage' favicon: $ref: '#/components/schemas/V2AppearanceImage' catalog_cover: $ref: '#/components/schemas/V2AppearanceImage' example: logo: data: 'data:image/png;base64,bmljZV9sb29raW5nX3BpY3R1cmU=' favicon: data: 'data:image/png;base64,bmljZV9sb29raW5nX3BpY3R1cmU=' catalog_cover: data: 'data:image/jpeg;base64,bmljZV9sb29raW5nX3BpY3R1cmU=' additionalProperties: false nullable: true x-speakeasy-param-computed: true V2NullableAppearanceTextVariables: description: Values to display for customizable text in the portal user interface type: object properties: catalog: type: object additionalProperties: false properties: welcome_message: type: string maxLength: 512 primary_header: type: string maxLength: 512 required: - welcome_message - primary_header example: catalog: welcome_message: Welcome to our service catalog primary_header: Find All of Our Services in a Single Place default: null additionalProperties: false nullable: true required: - catalog x-speakeasy-param-computed: false V2PortalAppearance: type: object properties: theme_name: $ref: '#/components/schemas/V2PortalTheme' custom_theme: $ref: '#/components/schemas/V2NullableAppearanceThemeVariables' custom_fonts: $ref: '#/components/schemas/V2NullableAppearanceFonts' use_custom_fonts: description: 'If true, fonts in custom_fonts will be used over the theme''s default fonts' type: boolean nullable: false text: $ref: '#/components/schemas/V2NullableAppearanceTextVariables' images: $ref: '#/components/schemas/V2AppearanceImages' example: theme_name: custom use_custom_fonts: true custom_theme: colors: section: header: value: '#F8F8F8' description: Background for header body: value: '#FFFFFF' description: Background for main content hero: value: '#F8F8F8' description: Background for hero section accent: value: '#F8F8F8' description: Subtle background tertiary: value: '#FFFFFF' description: Tertiary background stroke: value: 'rgba(0,0,0,0.1)' description: Border color footer: value: '#07A88D' description: Background for footer text: header: value: 'rgba(0,0,0,0.8)' description: Header text hero: value: '#FFFFFF' description: Hero text headings: value: 'rgba(0,0,0,0.8)' description: Headings text primary: value: 'rgba(0,0,0,0.8)' description: Main content text secondary: value: 'rgba(0,0,0,0.8)' description: Supporting text accent: value: '#07A88D' description: Subtle text link: value: '#07A88D' description: Link text footer: value: '#FFFFFF' description: Footer text button: primary_fill: value: '#1155CB' description: Background for Primary Button primary_text: value: '#FFFFFF' description: Text for Primary Button custom_fonts: base: Roboto code: Roboto headings: Roboto text: catalog: welcome_message: Welcome primary_header: Come one in! images: favicon: data: 'data:image/png;base64,bmljZV9sb29raW5nX3BpY3R1cmU=' filename: favicon.ico logo: data: 'data:image/png;base64,bmljZV9sb29raW5nX3BpY3R1cmU=' filename: logo.png catalog_cover: data: 'data:image/jpeg;base64,bmljZV9sb29raW5nX3BpY3R1cmU=' additionalProperties: false V2PortalTheme: description: Select a pre-existing default theme or specify 'custom' to use custom_theme variables. type: string example: mint_rocket enum: - mint_rocket - dark_mode - custom x-speakeasy-unknown-values: allow UUID_RW: description: Contains a unique identifier used for this resource. type: string format: uuid example: 5f9fd312-a987-4628-b4c5-bb4f4fddd5f7 AuthStrategyKeyAuth: description: KeyAuth Auth strategy that the application uses. type: object properties: id: description: The Application Auth Strategy ID. type: string format: uuid example: b9e81174-b5bb-4638-a3c3-8afe61a0abf8 readOnly: true x-speakeasy-param-suppress-computed-diff: true name: type: string example: name default: name credential_type: type: string enum: - key_auth key_names: type: array items: type: string ttl: description: Default maximum Time-To-Live for keys created under this strategy. type: object default: null nullable: true properties: value: type: integer minimum: 1 unit: type: string enum: - days - weeks - years x-speakeasy-unknown-values: allow required: - value - unit x-speakeasy-param-computed: false additionalProperties: false required: - id - name - credential_type - key_names AuthMethods: type: array items: description: Auth Methods enabled for this strategy type: string example: - bearer AvailableScopes: description: Possible developer selectable scopes for an application. Only present when using DCR Provider that supports it. type: array items: type: string example: - scope1 - scope2 AuthStrategyClientCredentials: description: Client Credential Auth strategy that the application uses. type: object properties: id: description: The Application Auth Strategy ID. type: string format: uuid example: b9e81174-b5bb-4638-a3c3-8afe61a0abf8 readOnly: true x-speakeasy-param-suppress-computed-diff: true name: type: string example: name default: name credential_type: type: string enum: - client_credentials - self_managed_client_credentials x-speakeasy-unknown-values: allow auth_methods: $ref: '#/components/schemas/AuthMethods' available_scopes: $ref: '#/components/schemas/AvailableScopes' additionalProperties: false required: - id - name - credential_type - auth_methods AuthStrategy: type: object discriminator: propertyName: credential_type mapping: key_auth: '#/components/schemas/AuthStrategyKeyAuth' client_credentials: '#/components/schemas/AuthStrategyClientCredentials' self_managed_client_credentials: '#/components/schemas/AuthStrategyClientCredentials' oneOf: - $ref: '#/components/schemas/AuthStrategyKeyAuth' - $ref: '#/components/schemas/AuthStrategyClientCredentials' PortalMenuItem: type: object properties: path: description: The absolute path of a page in a portal with a leading slash. type: string example: /about/company maxLength: 512 title: description: The link display text type: string example: My Page visibility: description: Whether a menu item is public or private. Private menu items are only accessible to authenticated users. type: string example: public enum: - public - private x-speakeasy-unknown-values: allow external: description: 'When clicked, open the link in a new window' type: boolean additionalProperties: false required: - path - title - visibility - external PortalFooterMenuSection: type: object properties: title: description: The footer menu section title type: string maxLength: 512 items: type: array items: $ref: '#/components/schemas/PortalMenuItem' additionalProperties: false required: - title - items PortalImageDataUri: description: 'must be a data URL with base64 image data, e.g., data:image/jpeg;base64,' type: string format: uri example: 'data:image/png;base64,YW5faW1hZ2VfZmlsZQ==' pattern: '^data:image/(png|jpe?g|gif|svg+xml|x-icon|ico|icon|vnd.microsoft.icon)(;base64)?,(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$' title: PortalImageDataUri ReplacePortalImageAsset: description: 'The image data to upload. Images must be a data URL with binary image data in base 64 format. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs.' type: object properties: data: $ref: '#/components/schemas/PortalImageDataUri' example: data: 'data:image/jpeg;base64,bmljZV9sb29raW5nX3BpY3R1cmU=' default: null additionalProperties: false nullable: true required: - data title: ReplacePortalImageAsset x-speakeasy-param-computed: false PageSlug: description: | The slug of a page in a portal, used to compute its full URL path within the portal hierarchy. When a page has a `parent_page_id`, its full path is built by joining the parent’s slug with its own. For example, if a parent page has the slug `slug1` and this page’s slug is `slug2`, the resulting path will be `/slug1/slug2`. This enables nested page structures like `/slug1/slug2/slug3`. type: string example: /my-page maxLength: 512 title: PageSlug ParentPageId: description: | Pages may be rendered as a tree of files. Specify the `id` of another page as the `parent_page_id` to add some hierarchy to your pages. type: string format: uuid example: null default: null nullable: true x-speakeasy-param-computed: false PageTitle: description: The title of a page in a portal. type: string example: My Page maxLength: 512 title: PageTitle PageContent: description: The renderable markdown content of a page in a portal. type: string example: '# Welcome to My Page' maxLength: 1000000 title: PageContent SnippetTitle: description: The display title of a snippet in a portal. type: string example: My Snippet maxLength: 512 title: SnippetTitle SnippetContent: description: The renderable markdown content of a page in a portal. type: string example: '# Welcome to My Snippet' maxLength: 1000000 title: SnippetContent VisibilityStatus: description: Whether the resource is publicly accessible to non-authenticated users. type: string example: public enum: - public - private title: VisibilityStatus x-speakeasy-unknown-values: allow PublishedStatus: description: Whether the resource is visible on a given portal. Defaults to unpublished. type: string example: published enum: - published - unpublished title: PublishedStatus x-speakeasy-unknown-values: allow Description: type: string example: A custom page about developer portals maxLength: 160 title: ResourceDescription PageVisibilityStatus: description: | Whether a page is publicly accessible to non-authenticated users. If not provided, the default_page_visibility value of the portal will be used. type: string example: public enum: - public - private title: PageVisibilityStatus x-speakeasy-unknown-values: allow SnippetVisibilityStatus: description: | Whether a snippet is publicly accessible to non-authenticated users. If not provided, the default_page_visibility value of the portal will be used. type: string example: public enum: - public - private title: PageVisibilityStatus x-speakeasy-unknown-values: allow UpdatePortalPageRequest: description: Update a page in a portal. type: object properties: slug: $ref: '#/components/schemas/PageSlug' title: $ref: '#/components/schemas/PageTitle' content: $ref: '#/components/schemas/PageContent' visibility: $ref: '#/components/schemas/VisibilityStatus' status: $ref: '#/components/schemas/PublishedStatus' description: $ref: '#/components/schemas/Description' parent_page_id: $ref: '#/components/schemas/ParentPageId' additionalProperties: false title: UpdatePortalPageRequest CreatePortalPageRequest: description: Create a page in a portal. type: object properties: slug: $ref: '#/components/schemas/PageSlug' title: $ref: '#/components/schemas/PageTitle' content: $ref: '#/components/schemas/PageContent' visibility: $ref: '#/components/schemas/PageVisibilityStatus' status: $ref: '#/components/schemas/PublishedStatus' description: $ref: '#/components/schemas/Description' parent_page_id: $ref: '#/components/schemas/ParentPageId' additionalProperties: false required: - slug - content title: CreatePortalPageRequest PortalPageResponse: description: Details about a page in a portal. type: object properties: id: $ref: '#/components/schemas/UUID' slug: $ref: '#/components/schemas/PageSlug' title: $ref: '#/components/schemas/PageTitle' content: $ref: '#/components/schemas/PageContent' visibility: $ref: '#/components/schemas/VisibilityStatus' status: $ref: '#/components/schemas/PublishedStatus' description: $ref: '#/components/schemas/Description' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' parent_page_id: $ref: '#/components/schemas/ParentPageId' additionalProperties: false required: - id - slug - title - content - visibility - status - created_at - updated_at - parent_page_id title: PortalPageResponse PortalSnippetResponse: description: Details about a snippet in a portal. type: object properties: id: $ref: '#/components/schemas/UUID' name: $ref: '#/components/schemas/SnippetName' title: $ref: '#/components/schemas/SnippetTitle' content: $ref: '#/components/schemas/SnippetContent' visibility: $ref: '#/components/schemas/VisibilityStatus' status: $ref: '#/components/schemas/PublishedStatus' description: $ref: '#/components/schemas/Description' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - id - name - content - visibility - status - created_at - updated_at title: PortalSnippetResponse UpdatePortalSnippetRequest: description: Update a snippet in a portal. type: object properties: name: $ref: '#/components/schemas/SnippetName' title: $ref: '#/components/schemas/SnippetTitle' content: $ref: '#/components/schemas/SnippetContent' visibility: $ref: '#/components/schemas/VisibilityStatus' status: $ref: '#/components/schemas/PublishedStatus' description: $ref: '#/components/schemas/Description' additionalProperties: false title: UpdatePortalSnippetRequest CreatePortalSnippetRequest: description: Create a snippet in a portal. type: object properties: name: $ref: '#/components/schemas/SnippetName' title: $ref: '#/components/schemas/SnippetTitle' content: $ref: '#/components/schemas/SnippetContent' visibility: $ref: '#/components/schemas/SnippetVisibilityStatus' status: $ref: '#/components/schemas/PublishedStatus' description: $ref: '#/components/schemas/Description' additionalProperties: false required: - name - content title: CreatePortalSnippetRequest PortalFilterParameters: type: object properties: id: $ref: '#/components/schemas/UuidFieldFilter' name: $ref: '#/components/schemas/StringFieldFilter' description: $ref: '#/components/schemas/StringFieldFilter' authentication_enabled: $ref: '#/components/schemas/BooleanFieldFilter' rbac_enabled: $ref: '#/components/schemas/BooleanFieldFilter' default_api_visibility: $ref: '#/components/schemas/StringFieldFilter' default_page_visibility: $ref: '#/components/schemas/StringFieldFilter' default_application_auth_strategy_id: $ref: '#/components/schemas/UuidFieldFilter' auto_approve_developers: $ref: '#/components/schemas/BooleanFieldFilter' auto_approve_applications: $ref: '#/components/schemas/BooleanFieldFilter' default_domain: $ref: '#/components/schemas/StringFieldFilter' canonical_domain: $ref: '#/components/schemas/StringFieldFilter' title: PortalFilterParameters PortalCustomDomain: type: object properties: hostname: type: string enabled: type: boolean ssl: $ref: '#/components/schemas/PortalCustomDomainSSL' cname_status: $ref: '#/components/schemas/PortalCustomDomainCnameStatus' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - hostname - enabled - ssl - cname_status - created_at - updated_at title: PortalCustomDomain PortalCustomDomainSSL: type: object properties: domain_verification_method: $ref: '#/components/schemas/PortalCustomDomainVerificationMethod' verification_status: $ref: '#/components/schemas/PortalCustomDomainVerificationStatus' validation_errors: $ref: '#/components/schemas/PortalCustomDomainValidationErrors' uploaded_at: description: An ISO-8601 timestamp representation of the ssl certificate upload date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true expires_at: description: An ISO-8601 timestamp representation of the ssl certificate expiration date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true skip_ca_check: description: | True when the provided certificate chain is served as-is without validation against a public trust store. type: boolean readOnly: true x-speakeasy-param-suppress-computed-diff: true additionalProperties: false required: - domain_verification_method - verification_status title: PortalCustomDomainSSL UpdatePortalCustomDomainSSL: type: object properties: custom_certificate: description: Custom certificate to be used for the SSL termination. type: string default: null nullable: true x-speakeasy-param-computed: false custom_private_key: description: Custom certificate private key to be used for the SSL termination. type: string default: null nullable: true x-speakeasy-param-computed: false skip_ca_check: description: | Advanced option. If true, the custom certificate is served exactly as provided, without attempting to bundle against a public trust store. Required for certificates issued by an internal/private CA. type: boolean default: false additionalProperties: false title: UpdatePortalCustomDomainSSL PortalCustomDomainVerificationMethod: type: string enum: - http - custom_certificate title: PortalCustomDomainVerificationMethod x-speakeasy-unknown-values: allow PortalCustomDomainVerificationStatus: type: string enum: - verified - pending - error readOnly: true title: PortalCustomDomainVerificationStatus x-speakeasy-param-suppress-computed-diff: true x-speakeasy-unknown-values: allow PortalCustomDomainCnameStatus: type: string enum: - verified - pending readOnly: true title: PortalCustomDomainCnameStatus x-speakeasy-param-suppress-computed-diff: true x-speakeasy-unknown-values: allow PortalCustomDomainValidationErrors: type: array items: type: string readOnly: true title: PortalCustomDomainValidationErrors x-speakeasy-param-suppress-computed-diff: true CreatePortalCustomDomainRequest: type: object properties: hostname: type: string enabled: type: boolean ssl: $ref: '#/components/schemas/CreatePortalCustomDomainSSL' additionalProperties: false required: - hostname - enabled - ssl title: CreatePortalCustomDomainRequest UpdatePortalCustomDomainRequest: type: object properties: enabled: type: boolean default: null nullable: true x-speakeasy-param-computed: false ssl: $ref: '#/components/schemas/UpdatePortalCustomDomainSSL' additionalProperties: false title: UpdatePortalCustomDomainRequest PortalClaimMappings: description: Mappings from a portal developer atribute to an Identity Provider claim. type: object properties: name: type: string example: name default: name email: type: string example: email default: email groups: type: string example: custom-group-claim default: groups example: name: name email: email groups: custom-group-claim maxProperties: 3 minProperties: 0 title: PortalClaimMappings OIDCAuthEnabled: description: The portal has OIDC enabled or disabled. type: boolean example: false deprecated: true x-speakeasy-param-computed: true SAMLAuthEnabled: description: A Konnect Identity Admin assigns teams to a developer. type: boolean example: false deprecated: true x-speakeasy-param-computed: true OIDCIdpMappingEnabled: description: IdP groups determine the Portal Teams a developer has. Replaced by idp_mapping_enabled. type: boolean example: true deprecated: true x-speakeasy-param-computed: true IDPMappingEnabled: description: Whether IdP groups determine the Konnect Portal teams a developer has. type: boolean example: true x-speakeasy-param-computed: true PortalAuthenticationSettingsResponse: x-speakeasy-entity: PortalAuth description: The developer authentication settings for a portal. type: object properties: basic_auth_enabled: description: The portal has basic auth enabled or disabled. type: boolean example: true oidc_auth_enabled: $ref: '#/components/schemas/OIDCAuthEnabled' saml_auth_enabled: $ref: '#/components/schemas/SAMLAuthEnabled' oidc_team_mapping_enabled: $ref: '#/components/schemas/OIDCIdpMappingEnabled' idp_mapping_enabled: $ref: '#/components/schemas/IDPMappingEnabled' konnect_mapping_enabled: description: A Konnect Identity Admin assigns teams to a developer. type: boolean example: false oidc_config: description: Configuration properties for an OpenID Connect Identity Provider. type: object example: issuer: 'https://identity.example.com/v2' client_id: x7id0o42lklas0blidl2 scopes: - email - openid - profile claim_mappings: name: name email: email groups: custom-group-claim deprecated: true properties: issuer: type: string example: 'https://identity.example.com/v2' client_id: type: string example: x7id0o42lklas0blidl2 scopes: type: array items: type: string default: openid example: - email - openid - profile default: - email - openid - profile claim_mappings: $ref: '#/components/schemas/PortalClaimMappings' readOnly: true required: - issuer - client_id title: PortalOIDCConfig x-speakeasy-param-suppress-computed-diff: true oidc_issuer: type: string example: 'https://identity.example.com/v2' default: null nullable: true x-speakeasy-param-computed: false oidc_client_id: type: string example: x7id0o42lklas0blidl2 default: null nullable: true x-speakeasy-param-computed: false oidc_scopes: type: array items: type: string example: - email - openid - profile default: null nullable: true x-speakeasy-param-computed: false oidc_claim_mappings: description: Mappings from a portal developer atribute to an Identity Provider claim. type: object example: name: name email: email groups: custom-group-claim default: null maxProperties: 3 minProperties: 0 nullable: true properties: name: type: string example: name default: name email: type: string example: email default: email groups: type: string example: custom-group-claim default: groups title: PortalClaimMappings x-speakeasy-param-computed: false example: basic_auth_enabled: true oidc_auth_enabled: true oidc_team_mapping_enabled: true konnect_mapping_enabled: false oidc_config: issuer: 'https://identity.example.com/v2' client_id: x7id0o42lklas0blidl2 scopes: - email - openid - profile claim_mappings: name: name email: email groups: custom-group-claim required: - basic_auth_enabled - konnect_mapping_enabled - oidc_auth_enabled - oidc_team_mapping_enabled title: PortalAuthenticationSettingsResponse x-speakeasy-transform-from-api: jq: | . + { oidc_issuer: .oidc_config.issuer, oidc_client_id: .oidc_config.client_id, oidc_claim_mappings: .oidc_config.claim_mappings, oidc_scopes: .oidc_config.scopes } | del(.oidc_config) PortalAssignRoleRequest: description: An assigned role associates a service and an action to a team. type: object properties: role_name: type: string example: API Viewer entity_id: type: string format: uuid example: e67490ce-44dc-4cbd-b65e-b52c746fc26a entity_type_name: type: string example: Services entity_region: description: Region of the entity. type: string example: eu enum: - us - eu - au - me - in - sg - '*' x-speakeasy-unknown-values: allow example: role_name: API Viewer entity_id: 18ee2573-dec0-4b83-be99-fa7700bcdc61 entity_type_name: Services entity_region: us required: - role_name - entity_id - entity_type_name - entity_region title: PortalAssignRoleRequest PortalAuthenticationSettingsUpdateRequest: x-speakeasy-entity: PortalAuth description: Properties to update a portal's developer auth settings. type: object properties: basic_auth_enabled: description: The organization has basic auth enabled. type: boolean example: true x-speakeasy-param-computed: true oidc_auth_enabled: description: 'Deprecated. Use the [Identity Provider API](https://developer.konghq.com/api/konnect/portal-management/v3/#/operations/update-portal-identity-provider) instead.' type: boolean example: false deprecated: true x-speakeasy-param-computed: true saml_auth_enabled: description: 'Deprecated. Use the [Identity Provider API](https://developer.konghq.com/api/konnect/portal-management/v3/#/operations/update-portal-identity-provider) instead.' type: boolean example: false deprecated: true x-speakeasy-param-computed: true oidc_team_mapping_enabled: $ref: '#/components/schemas/OIDCIdpMappingEnabled' konnect_mapping_enabled: description: Whether a Konnect Identity Admin assigns teams to a developer. type: boolean example: false x-speakeasy-param-computed: true idp_mapping_enabled: $ref: '#/components/schemas/IDPMappingEnabled' oidc_issuer: description: 'Deprecated. Use the [Identity Provider API](https://developer.konghq.com/api/konnect/portal-management/v3/#/operations/update-portal-identity-provider) instead.' type: string default: null deprecated: true nullable: true x-speakeasy-param-computed: false oidc_client_id: description: 'Deprecated. Use the [Identity Provider API](https://developer.konghq.com/api/konnect/portal-management/v3/#/operations/update-portal-identity-provider) instead.' type: string default: null deprecated: true nullable: true x-speakeasy-param-computed: false oidc_client_secret: description: 'Deprecated. Use the [Identity Provider API](https://developer.konghq.com/api/konnect/portal-management/v3/#/operations/update-portal-identity-provider) instead.' type: string default: null deprecated: true nullable: true x-speakeasy-param-computed: false oidc_scopes: description: 'Deprecated. Use the [Identity Provider API](https://developer.konghq.com/api/konnect/portal-management/v3/#/operations/update-portal-identity-provider) instead.' type: array items: type: string default: null deprecated: true nullable: true x-speakeasy-param-computed: false oidc_claim_mappings: description: 'Deprecated. Use the [Identity Provider API](https://developer.konghq.com/api/konnect/portal-management/v3/#/operations/update-portal-identity-provider) instead.' type: object example: name: name email: email groups: custom-group-claim default: null deprecated: true maxProperties: 3 minProperties: 0 nullable: true properties: name: type: string example: name default: name email: type: string example: email default: email groups: type: string example: custom-group-claim default: groups title: PortalClaimMappings x-speakeasy-param-computed: false example: basic_auth_enabled: true oidc_auth_enabled: true oidc_team_mapping_enabled: true konnect_mapping_enabled: false oidc_issuer: 'https://identity.example.com/v2' oidc_client_id: x7id0o42lklas0blidl2 oidc_scopes: - email - openid - profile oidc_claim_mappings: name: name email: email groups: custom-group-claim title: PortalAuthenticationSettingsUpdateRequest PortalUpdateTeamRequest: description: Properties to update on a team. type: object properties: name: type: string example: IDM - Developers default: null nullable: true pattern: '^[\w \W]+$' writeOnly: true x-speakeasy-param-computed: false description: type: string example: The Identity Management (IDM) API team. default: null maxLength: 250 nullable: true writeOnly: true x-speakeasy-param-computed: false can_own_applications: description: Whether the team is allowed to own applications. type: boolean example: true default: null nullable: true x-speakeasy-param-computed: false example: name: IDM - Developers description: The Identity Management (IDM) API team. can_own_applications: false title: PortalUpdateTeamRequest PortalCreateTeamRequest: x-speakeasy-entity: PortalTeam description: Details about a team to create. type: object properties: name: type: string example: IDM - Developers pattern: '^[\w \W]+$' writeOnly: true description: type: string example: The Identity Management (IDM) team. default: null maxLength: 250 nullable: true writeOnly: true x-speakeasy-param-computed: false can_own_applications: description: Whether the team is allowed to own applications type: boolean example: true x-speakeasy-param-computed: true example: name: IDM - Developers description: The Identity Management (IDM) team. can_own_applications: false required: - name title: PortalCreateTeamRequest PortalTeamResponse: description: Details about a developer team. type: object properties: id: type: string format: uuid example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 readOnly: true x-speakeasy-param-suppress-computed-diff: true name: type: string example: IDM - Developers default: null maxLength: 250 nullable: true pattern: '^[\w \W]+$' x-speakeasy-param-computed: false description: type: string example: The developers for the IDM API. default: null maxLength: 250 nullable: true x-speakeasy-param-computed: false created_at: type: string format: date-time example: '1992-02-07T17:46:57.52Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true updated_at: type: string format: date-time example: '2022-02-07T17:00:00.52Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true can_own_applications: description: Whether the team is allowed to own applications. type: boolean example: false default: null nullable: true x-speakeasy-param-computed: false example: id: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 name: IDM - Developers description: The developers for the IDM API. created_at: '1992-02-07T17:46:57.52Z' updated_at: '2022-08-31T17:00:00.52Z' can_own_applications: false title: PortalTeamResponse PortalAssignedRoleResponse: description: An assigned role associates a service and an action to a team. type: object properties: id: type: string format: uuid example: eaf7adf1-32c8-4bbf-b960-d1f8456afe67 role_name: type: string example: API Viewer entity_id: type: string format: uuid example: 817d0422-45c9-4d88-8d64-45aef05c1ae7 entity_type_name: type: string example: Services entity_region: description: Region of the entity. type: string example: eu enum: - us - eu - au - me - in - sg - '*' x-speakeasy-unknown-values: allow example: id: 1a3c2169-27f8-4594-926b-41df3432d5dc role_name: API Viewer entity_id: 18ee2573-dec0-4b83-be99-fa7700bcdc61 entity_type_name: Services entity_region: us required: - id - role_name - entity_id - entity_type_name - entity_region title: PortalAssignedRoleResponse SnippetName: description: The unique name of a snippet in a portal. type: string example: my-snippet maxLength: 512 title: SnippetName PortalCustomizationV3: description: The custom settings of this portal type: object properties: theme: type: object additionalProperties: false nullable: false properties: name: type: string nullable: false mode: type: string enum: - light - dark - system x-speakeasy-unknown-values: allow colors: type: object additionalProperties: false nullable: false properties: primary: type: string example: '#000000' nullable: false pattern: '^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$' x-validation-message: must be a valid hex color value x-speakeasy-param-computed: false x-speakeasy-param-computed: false layout: type: string nullable: false x-speakeasy-param-computed: false css: type: string default: null nullable: true x-speakeasy-param-computed: false menu: type: object additionalProperties: false nullable: false properties: main: type: array items: $ref: '#/components/schemas/PortalMenuItem' default: null nullable: true x-speakeasy-param-computed: false footer_sections: type: array items: $ref: '#/components/schemas/PortalFooterMenuSection' default: null nullable: true x-speakeasy-param-computed: false footer_bottom: type: array items: $ref: '#/components/schemas/PortalMenuItem' default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false spec_renderer: type: object additionalProperties: false nullable: false properties: try_it_ui: description: Enable in-browser testing for your APIs. All linked gateways must have the CORS plugin configured. type: boolean default: true try_it_insomnia: description: Enables users to open API specifications in Insomnia to explore and send requests with the native client. Only public API specifications are supported. type: boolean default: true infinite_scroll: description: 'Display the full spec on a single, scrollable page. If disabled, documentation, endpoints, and schemas appear on separate pages.' type: boolean default: true show_schemas: description: 'Control whether schemas are visible in your API specs. When enabled, schemas appear in the side navigation below the endpoints.' type: boolean default: true hide_internal: description: Manage visibility of internal endpoints and models. type: boolean default: false hide_deprecated: description: Manage visibility of deprecated endpoints and models. type: boolean default: false allow_custom_server_urls: description: Let users define a custom server URL for endpoints. This will be used to generate code snippets and to test the API. The URL is client-side only and is not saved. type: boolean default: true x-speakeasy-param-computed: false robots: type: string default: null nullable: true x-speakeasy-param-computed: false additionalProperties: false title: PortalCustomization x-speakeasy-name-override: PortalCustomization PortalAllowedIPs: description: The list of allowed ips for the portal. type: array items: type: string example: - 192.168.1.1 - 192.168.1.0/22 maxItems: 25 minItems: 1 uniqueItems: true IPEntry: description: An entry representing a collection of allowed IP addresses or CIDR blocks. type: object properties: id: description: Contains a unique identifier used for this resource. type: string format: uuid example: 5f9fd312-a987-4628-b4c5-bb4f4fddd5f7 readOnly: false allowed_ips: $ref: '#/components/schemas/PortalAllowedIPs' additionalProperties: false required: - id - allowed_ips ApiResponseSchema: type: object properties: id: description: The API identifier. type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 readOnly: true x-speakeasy-param-suppress-computed-diff: true name: description: | The name of your API. The `name + version` combination must be unique for each API you publish. type: string example: MyAPI maxLength: 255 minLength: 1 description: description: A description of your API. Will be visible on your live Portal. type: string default: null nullable: true x-speakeasy-param-computed: false version: description: An optional version for your API. Leave this empty if your API is unversioned. type: string maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: true current_version_summary: $ref: '#/components/schemas/ApiVersionSummary' slug: description: | The `slug` is used in generated URLs to provide human readable paths. Defaults to `slugify(name + version)` type: string example: my-api-v1 nullable: true pattern: '^[\w-]+$' x-speakeasy-param-computed: true api_spec_ids: description: The list of API specification ids for the API. type: array items: type: string format: uuid description: The id of the API specification. example: 123e4567-e89b-12d3-a456-426614174000 deprecated: true readOnly: true x-speakeasy-param-suppress-computed-diff: true portals: description: The list of portals which this API is published to. type: array items: type: object additionalProperties: false required: - id - name - display_name properties: id: description: The portal identifier. type: string format: uuid example: 25a2624c-49fc-4764-99e1-224ed819f200 name: description: 'The name of the portal, used to distinguish it from other portals.' type: string example: My Portal display_name: description: The display name of the portal. This value will be the portal's `name` in Portal API. type: string example: My Portal nullable: false readOnly: true uniqueItems: true x-speakeasy-param-suppress-computed-diff: true labels: $ref: '#/components/schemas/Labels' implementation_mode: description: the implementations that are associated with this api either gateway_entity_binding or access_control_enforcement type: string default: null nullable: true readOnly: true x-speakeasy-param-computed: false x-speakeasy-param-suppress-computed-diff: true attributes: $ref: '#/components/schemas/ApiAttributes' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - id - name - version - labels - created_at - updated_at - slug - portals - api_spec_ids - current_version_summary title: API AuthStrategyApiSyncError: type: object properties: control_plane_error: type: string enum: - control_plane_error_no_response - control_plane_error_invalid_response - control_plane_error_unavailable - control_plane_error_internal_error - control_plane_error_bad_request - control_plane_error_plugin_conflict - control_plane_error_data_constraint_error - control_plane_error_implementation_not_found x-speakeasy-unknown-values: allow message: type: string info: type: object additionalProperties: true properties: details: type: array items: type: object additionalProperties: true properties: type: type: string message: type: array items: type: string example: control_plane_error: control_plane_error_unavailable message: Unable to connect to the control plane to update plugin additionalProperties: false nullable: true required: - message ApiDocumentId: description: The API document identifier. type: string format: uuid example: de5c9818-be5c-42e6-b514-e3d4bc30ddeb readOnly: true title: API Document ID x-speakeasy-param-suppress-computed-diff: true ApiDocumentContent: description: Raw markdown content to display in your Portal type: string title: API Document Content ApiDocumentTitle: description: The title of the document. Used to populate the `` tag for the page type: string example: API Document title: API Document Title ApiDocumentStatus: description: If `status=published` the document will be visible in your live portal type: string default: unpublished enum: - published - unpublished x-speakeasy-unknown-values: allow ApiDocumentParentDocumentId: description: | API Documents may be rendered as a tree of files. Specify the `id` of another API Document as the `parent_document_id` to add some heirarchy do your documents. type: string format: uuid example: null default: null nullable: true title: API Document Parent Document ID x-speakeasy-param-computed: false ApiDocumentSlug: description: | The `slug` is used in generated URLs to provide human readable paths. Defaults to `slugify(title)` type: string example: api-document pattern: '^[\w-]+$' title: API Document Slug ApiDocument: type: object properties: id: $ref: '#/components/schemas/ApiDocumentId' content: $ref: '#/components/schemas/ApiDocumentContent' title: $ref: '#/components/schemas/ApiDocumentTitle' slug: $ref: '#/components/schemas/ApiDocumentSlug' status: $ref: '#/components/schemas/ApiDocumentStatus' parent_document_id: $ref: '#/components/schemas/ApiDocumentParentDocumentId' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false title: API Document ApiVersionSummary: type: object properties: id: description: The API version identifier. type: string format: uuid example: 7710d5c4-d902-410b-992f-18b814155b53 readOnly: true x-speakeasy-param-suppress-computed-diff: true version: description: The version of this api spec. type: string spec: type: object additionalProperties: false properties: type: $ref: '#/components/schemas/ApiSpecType' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false nullable: true readOnly: true title: API Version Summary x-speakeasy-param-suppress-computed-diff: true x-speakeasy-terraform-ignore: true APIVersionRequest: type: object properties: version: description: The version of the api. type: string example: 1.0.0 default: null nullable: true x-speakeasy-param-computed: false spec: type: object default: null additionalProperties: false nullable: true properties: content: default: null description: 'The raw content of API specification, in json or yaml format (OpenAPI or AsyncAPI).' example: '{"openapi":"3.0.3","info":{"title":"Example API","version":"1.0.0"},"paths":{"/example":{"get":{"summary":"Example endpoint","responses":{"200":{"description":"Successful response"}}}}}}' nullable: true type: string x-speakeasy-param-computed: false x-speakeasy-param-computed: false additionalProperties: false title: API Version Request ApiSpec: type: object properties: id: description: The API specification identifier. type: string format: uuid example: 7710d5c4-d902-410b-992f-18b814155b53 readOnly: true x-speakeasy-param-suppress-computed-diff: true content: default: null description: | The raw content of your API specification, in json or yaml format (OpenAPI or AsyncAPI). example: '{"openapi":"3.0.3","info":{"title":"Example API","version":"1.0.0"},"paths":{"/example":{"get":{"summary":"Example endpoint","responses":{"200":{"description":"Successful response"}}}}}}' nullable: true type: string x-speakeasy-param-computed: false validation_messages: description: The errors that occurred while parsing the API specification. type: array items: type: object additionalProperties: false required: - message properties: message: type: string readOnly: true x-speakeasy-param-suppress-computed-diff: true type: description: | The type of specification being stored. This allows us to render the specification correctly. type: string example: oas3 enum: - oas2 - oas3 - asyncapi title: API Spec Type x-speakeasy-unknown-values: allow created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false title: API Specification ApiPublicationVisibility: description: | The visibility of the API in the portal. Public API publications do not require authentication to view and retrieve information about them. Private API publications require authentication to retrieve information about them. type: string default: private enum: - public - private title: API Publication Visibility x-speakeasy-unknown-values: allow ApiPublicationAuthStrategyIds: description: | The auth strategy the API enforces for applications in the portal. Omitting this property means the portal's default application auth strategy will be used. Setting to null means the API will not require application authentication. DCR support for application registration is currently in development. type: array items: type: string format: uuid default: null maxItems: 1 minItems: 1 nullable: true title: API Publication Auth Strategy IDs x-speakeasy-param-computed: false AutoApproveRegistrations: description: 'Whether the application registration auto approval on this portal for the api is enabled. If set to false, fallbacks on portal''s auto_approve_applications value.' type: boolean title: Auto Approve Registrations ApiPublication: description: An API publication in a portal type: object properties: auto_approve_registrations: $ref: '#/components/schemas/AutoApproveRegistrations' auth_strategy_ids: $ref: '#/components/schemas/ApiPublicationAuthStrategyIds' visibility: $ref: '#/components/schemas/ApiPublicationVisibility' warnings: description: Informational warnings (e.g. incompatible fields stripped for ACE). Empty if none. type: array items: type: string readOnly: true x-speakeasy-param-suppress-computed-diff: true created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false title: API Publication ApiImplementationService: description: A Gateway service that implements an API type: object properties: control_plane_id: type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 id: type: string format: uuid example: 7710d5c4-d902-410b-992f-18b814155b53 auth_strategy_sync_error: allOf: - $ref: '#/components/schemas/AuthStrategyApiSyncError' readOnly: true x-speakeasy-ignore: true x-speakeasy-param-suppress-computed-diff: true additionalProperties: false required: - control_plane_id - id title: API Implementation Service ApiImplementationControlPlane: description: A Control plane that implements an API type: object properties: access_control_enforcement_enabled: description: Indicates if the access control enforcement plugin is installed globally in the target control plane type: boolean readOnly: true x-speakeasy-param-suppress-computed-diff: true control_plane_id: type: string format: uuid example: 7710d5c4-d902-410b-992f-18b814155b53 x-speakeasy-name-override: id additionalProperties: false required: - control_plane_id title: API Implementation Control Plane ApiImplementation: description: An entity that implements an API type: object oneOf: - $ref: '#/components/schemas/ApiImplementationGatewayServiceEntity' - $ref: '#/components/schemas/ApiImplementationControlPlaneEntity' title: API Implementation ApiImplementationGatewayServiceEntity: description: A gateway service that implements an API type: object properties: id: $ref: '#/components/schemas/UUID' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' service: $ref: '#/components/schemas/ApiImplementationService' additionalProperties: false title: ApiImplementationGatewayServiceEntity x-speakeasy-name-override: Service Reference ApiImplementationControlPlaneEntity: description: A control plane that implements an API type: object properties: id: $ref: '#/components/schemas/UUID' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' control_plane: $ref: '#/components/schemas/ApiImplementationControlPlane' additionalProperties: false title: ApiImplementationControlPlaneEntity x-speakeasy-name-override: Control Plane Reference ApiAttributes: description: A set of attributes that describe the API type: object example: env: - production domains: - web - mobile default: {} additionalProperties: nullable: true description: 'Set of attributes with unique keys. Each key can include lowercase letters, numbers, hyphens, and underscores.' type: array minItems: 1 maxItems: 20 items: type: string minLength: 1 maxLength: 512 pattern: '^[^,<>]*$' nullable: false title: API Attributes x-speakeasy-type-override: any ApiSpecType: description: | The type of specification being stored. This allows us to render the specification correctly. type: string example: oas3 enum: - oas2 - oas3 - asyncapi title: API Spec Type x-speakeasy-unknown-values: allow IpAddressesResponse: type: object properties: updateDate: description: | Timestamp of the last update in "YYYY-MM-DD-HH-mm-ss" format. type: string example: 2025-08-26-16-03-33 pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{2}-[0-9]{2}-[0-9]{2}$' regions: description: Mapping of region code to hostname/IP lists. type: object additionalProperties: $ref: '#/components/schemas/RegionEntry' ingressIPs: description: | Mapping of region code to ingress IP addresses. Each region maps to a list of IP addresses representing inbound entry points for the Konnect service. type: object additionalProperties: type: array items: type: string description: IPv4 or IPv6 address. x-speakeasy-name-override: ingressIps egressIPs: description: | Mapping of region code to egress IP addresses. Each region maps to a list of IP addresses representing outbound IPs used by Konnect. type: object additionalProperties: type: array items: type: string description: IPv4 or IPv6 address. x-speakeasy-name-override: egressIps required: - updateDate - regions - ingressIPs - egressIPs RegionEntry: description: Hostname-to-addresses map for a single region. type: object additionalProperties: type: array description: List of IP addresses (IPv4 and/or IPv6). items: type: string description: IPv4 or IPv6 address. EventGatewayInfo: description: The gateway object contains information about a Konnect gateway. type: object properties: id: description: The gateway ID. type: string format: uuid example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 readOnly: true x-speakeasy-param-suppress-computed-diff: true name: $ref: '#/components/schemas/GatewayName' description: $ref: '#/components/schemas/GatewayDescription' labels: $ref: '#/components/schemas/Labels' created_at: description: An ISO-8604 timestamp representation of gateway creation date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true x-speakeasy-terraform-ignore: true updated_at: description: An ISO-8604 timestamp representation of gateway update date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true x-speakeasy-terraform-ignore: true nodes_total: description: The total number of nodes associated with the Event Gateway. type: integer virtual_clusters_total: description: The total number of virtual clusters associated with the Event Gateway. type: integer min_runtime_version: $ref: '#/components/schemas/MinRuntimeVersion' version: description: | The version number of the event gateway. Every change to an entity under this gateway will modify the version. type: string example: v1.123 additionalProperties: false required: - id - name - created_at - updated_at - nodes_total - virtual_clusters_total - min_runtime_version - version EventGatewayListener: description: Listeners are used to expose virtual clusters to clients. type: object properties: id: description: The unique identifier of the listener. type: string format: uuid x-speakeasy-param-suppress-computed-diff: true name: description: The unique name of the listener. type: string maxLength: 255 minLength: 1 x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A human-readable description of the listener. type: string default: '' maxLength: 512 addresses: $ref: '#/components/schemas/EventGatewayListenerAddresses' ports: $ref: '#/components/schemas/EventGatewayListenerPorts' labels: $ref: '#/components/schemas/Labels' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - id - name - addresses - ports - created_at - updated_at EventGatewayListenerAddresses: description: | Which address or addresses to listen on. `0.0.0.0` means all addresses on the host. `::` means all addresses on the host in IPv6. If `0.0.0.0` or `::` is used, there can't be other extra addresses defined. WARNING: there are use cases where listening on all addresses is insecure. So use this with caution. `localhost` means only the localhost ipv4 address. type: array items: type: string minLength: 1 minItems: 1 EventGatewayListenerPorts: description: | Which port or ports to listen on. There can be multiple ways to define ports: - as a single port, e.g. 9092 - as a range of ports, e.g. 9092-9094 It's possible to combine both, e.g. [9092, "9093-9095", 9096]. type: array items: $ref: '#/components/schemas/EventGatewayListenerPort' minItems: 1 EventGatewayListenerPort: description: A port or a range of ports in the format 9092 or 9092-9094. type: string pattern: '^(\d{1,5}|\d{1,5}-\d{1,5})$' VirtualCluster: description: A representation of a Kafka cluster that maps to a backend cluster. type: object properties: id: description: The unique identifier of the virtual cluster. type: string format: uuid x-speakeasy-param-suppress-computed-diff: true description: description: A human-readable description of the virtual cluster. type: string default: '' maxLength: 512 destination: $ref: '#/components/schemas/BackendClusterReference' authentication: $ref: '#/components/schemas/VirtualClusterAuthenticationSensitiveDataAwareSchemes' namespace: $ref: '#/components/schemas/VirtualClusterNamespace' topic_aliases: description: |- Topic aliases allow exposing backend topics under additional names. An alias creates a new entry point to the same physical data. The alias `topic` field references namespace-visible names (if namespace is configured). Aliases are independent of namespace and can be used without it. **Requires a minimum runtime version of `1.2`**. type: array items: $ref: '#/components/schemas/VirtualClusterTopicAlias' nullable: true x-min-runtime-version: '1.2' x-speakeasy-param-computed: false name: $ref: '#/components/schemas/VirtualClusterName' dns_label: $ref: '#/components/schemas/VirtualClusterDNSLabel' acl_mode: $ref: '#/components/schemas/VirtualClusterACLMode' labels: $ref: '#/components/schemas/Labels' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - id - name - dns_label - destination - authentication - acl_mode - created_at - updated_at VirtualClusterName: description: The name of the virtual cluster. type: string maxLength: 255 minLength: 1 x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' VirtualClusterReference: description: A reference to a virtual cluster. $ref: '#/components/schemas/VirtualClusterReferenceById' VirtualClusterReferenceById: description: Reference a virtual cluster by its unique identifier. type: object properties: id: description: The unique identifier of the virtual cluster. type: string format: uuid minLength: 1 required: - id VirtualClusterAuthenticationSensitiveDataAwareSchemes: description: | How to handle authentication from clients. It tries to authenticate with every rule sequentially one by one. It succeeds on the first match, and fails if no rule matches. type: array items: $ref: '#/components/schemas/VirtualClusterAuthenticationSensitiveDataAwareScheme' minItems: 1 VirtualClusterAuthenticationSchemes: description: | How to handle authentication from clients. It tries to authenticate with every rule sequentially one by one. It succeeds on the first match, and fails if no rule matches. type: array items: $ref: '#/components/schemas/VirtualClusterAuthenticationScheme' minItems: 1 VirtualClusterAuthenticationSensitiveDataAwareScheme: discriminator: propertyName: type mapping: anonymous: '#/components/schemas/VirtualClusterAuthenticationAnonymous' sasl_plain: '#/components/schemas/VirtualClusterAuthenticationSaslPlainSensitiveDataAware' sasl_scram: '#/components/schemas/VirtualClusterAuthenticationSaslScram' oauth_bearer: '#/components/schemas/VirtualClusterAuthenticationOauthBearer' client_certificate: '#/components/schemas/VirtualClusterAuthenticationClientCertificate' oneOf: - $ref: '#/components/schemas/VirtualClusterAuthenticationAnonymous' - $ref: '#/components/schemas/VirtualClusterAuthenticationSaslPlainSensitiveDataAware' - $ref: '#/components/schemas/VirtualClusterAuthenticationSaslScram' - $ref: '#/components/schemas/VirtualClusterAuthenticationOauthBearer' - $ref: '#/components/schemas/VirtualClusterAuthenticationClientCertificate' VirtualClusterAuthenticationScheme: discriminator: propertyName: type mapping: anonymous: '#/components/schemas/VirtualClusterAuthenticationAnonymous' sasl_plain: '#/components/schemas/VirtualClusterAuthenticationSaslPlain' sasl_scram: '#/components/schemas/VirtualClusterAuthenticationSaslScram' oauth_bearer: '#/components/schemas/VirtualClusterAuthenticationOauthBearer' client_certificate: '#/components/schemas/VirtualClusterAuthenticationClientCertificate' oneOf: - $ref: '#/components/schemas/VirtualClusterAuthenticationAnonymous' - $ref: '#/components/schemas/VirtualClusterAuthenticationSaslPlain' - $ref: '#/components/schemas/VirtualClusterAuthenticationSaslScram' - $ref: '#/components/schemas/VirtualClusterAuthenticationOauthBearer' - $ref: '#/components/schemas/VirtualClusterAuthenticationClientCertificate' VirtualClusterAuthenticationAnonymous: type: object properties: type: type: string const: anonymous required: - type VirtualClusterAuthenticationClientCertificate: description: |- Client certificate (mTLS) authentication scheme for the virtual cluster. **Requires a minimum runtime version of `1.1`**. type: object properties: type: type: string const: client_certificate fetch_kong_identity_principal: $ref: '#/components/schemas/FetchKongIdentityPrincipal' example: type: client_certificate additionalProperties: false required: - type x-min-runtime-version: '1.1' x-speakeasy-param-computed: false TLSTrustBundle: description: |- A TLS trust bundle defines a set of trusted certificate authorities (CAs) used for client certificate verification during mutual TLS (mTLS). Trust bundles are referenced by TLS listener policies to determine which client certificates are accepted. **Requires a minimum runtime version of `1.1`**. type: object properties: id: description: The unique identifier of the TLS trust bundle. type: string format: uuid readOnly: true x-speakeasy-param-suppress-computed-diff: true name: $ref: '#/components/schemas/TLSTrustBundleName' description: description: A human-readable description of the TLS trust bundle. type: string default: '' maxLength: 512 config: $ref: '#/components/schemas/TLSTrustBundleConfig' labels: $ref: '#/components/schemas/Labels' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - id - name - config - created_at - updated_at x-min-runtime-version: '1.1' x-speakeasy-param-computed: false TLSTrustBundleName: description: The unique name of the TLS trust bundle. type: string maxLength: 255 minLength: 1 x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' TLSTrustBundleConfig: type: object properties: trusted_ca: description: | PEM-encoded list of trusted CA certificates used to verify client certificates. Can be a literal PEM string or a vault reference. type: string minLength: 1 x-expression: type: string fields: - vault required: - trusted_ca TLSTrustBundleReference: description: | A reference to a TLS trust bundle resource. Either `id` or `name` must be provided. Following changes to the trust bundle name won't affect the reference, as the system will create the entities relationship by `id`. $ref: '#/components/schemas/TLSTrustBundleReferenceById' TLSTrustBundleReferenceById: type: object properties: id: description: The unique identifier of the TLS trust bundle. type: string format: uuid minLength: 1 required: - id VirtualClusterAuthenticationSaslPlainSensitiveDataAware: description: SASL/PLAIN authentication scheme for the virtual cluster. type: object properties: type: type: string const: sasl_plain mediation: description: The mediation type for SASL/PLAIN authentication. type: string enum: - passthrough - terminate x-speakeasy-unknown-values: allow principals: description: 'List of principals to be able to authenticate with, used with `terminate` mediation.' type: array items: $ref: '#/components/schemas/VirtualClusterAuthenticationPrincipalSensitiveDataAware' default: null nullable: true x-speakeasy-param-computed: false fetch_kong_identity_principal: $ref: '#/components/schemas/FetchKongIdentityPrincipal' additionalProperties: false required: - type - mediation VirtualClusterAuthenticationSaslPlain: description: | SASL/PLAIN authentication scheme for the virtual cluster containing principals with username and password. type: object properties: type: type: string const: sasl_plain mediation: description: The mediation type for SASL/PLAIN authentication. type: string enum: - passthrough - terminate x-speakeasy-unknown-values: allow principals: description: 'List of principals to be able to authenticate with, used with `terminate` mediation.' type: array items: $ref: '#/components/schemas/VirtualClusterAuthenticationPrincipal' default: null minItems: 1 nullable: true x-speakeasy-param-computed: false fetch_kong_identity_principal: $ref: '#/components/schemas/FetchKongIdentityPrincipal' additionalProperties: false required: - type - mediation VirtualClusterAuthenticationPrincipalSensitiveDataAware: description: A principal for authentication. type: object properties: username: $ref: '#/components/schemas/GatewaySecretReferenceOrLiteral' password: $ref: '#/components/schemas/GatewaySecret' required: - username VirtualClusterAuthenticationPrincipal: description: A principal for authentication containing username and password. type: object properties: username: $ref: '#/components/schemas/GatewaySecretReferenceOrLiteral' password: $ref: '#/components/schemas/GatewaySecret' required: - username - password VirtualClusterAuthenticationJWKS: description: JSON Web Key Set configuration for verifying token signatures. type: object properties: endpoint: description: URL for JWKS endpoint. type: string format: uri minLength: 1 timeout: description: Total time from establishing connection to receive a response from JWKS endpoint. type: string default: 10s cache_expiration: description: Duration after which the gateway will fetch and cache JWKS. type: string default: 1h required: - endpoint VirtualClusterAuthenticationClaimsMapping: description: Maps JWT claims in the case when sub and scope are presented as different claims in your JWT token. type: object properties: sub: description: Maps the subject claim. type: string default: null minLength: 1 nullable: true x-speakeasy-param-computed: false scope: description: Maps the scope claim. type: string default: null minLength: 1 nullable: true x-speakeasy-param-computed: false VirtualClusterAuthenticationSaslScram: description: SASL/SCRAM authentication scheme for the virtual cluster. type: object properties: type: type: string const: sasl_scram algorithm: description: The algorithm used for SASL/SCRAM authentication. type: string enum: - sha256 - sha512 x-speakeasy-unknown-values: allow fetch_kong_identity_principal: $ref: '#/components/schemas/FetchKongIdentityPrincipal' additionalProperties: false required: - type - algorithm VirtualClusterAuthenticationOauthBearer: description: Oauth Bearer authentication scheme for the virtual cluster. type: object properties: type: type: string const: oauth_bearer mediation: description: | Methods to mediate authentication: * passthrough - pass authentication from the client through proxy to the backend cluster without any kind of validation * validate_forward - pass authentication from the client through proxy to the backend cluster. Proxy does the validation before forwarding it to the client. * terminate - terminate authentication at the proxy level and originate authentication to the backend cluster using the configuration defined at BackendCluster's authentication. SASL auth is not originated if authentication on the backend_cluster is not configured. type: string enum: - passthrough - validate_forward - terminate x-speakeasy-unknown-values: allow claims_mapping: $ref: '#/components/schemas/VirtualClusterAuthenticationClaimsMapping' jwks: $ref: '#/components/schemas/VirtualClusterAuthenticationJWKS' validate: $ref: '#/components/schemas/VirtualClusterAuthenticationValidate' fetch_kong_identity_principal: $ref: '#/components/schemas/FetchKongIdentityPrincipalOauthBearer' additionalProperties: false required: - type - mediation VirtualClusterAuthenticationValidate: description: Validation rules. type: object properties: audiences: description: List of expected audience values. One of them has to match the audience claim in the token. type: array items: $ref: '#/components/schemas/VirtualClusterAuthenticationAudience' default: null minItems: 1 nullable: true x-speakeasy-param-computed: false issuer: description: Expected token issuer in the token. type: string default: null minLength: 1 nullable: true x-speakeasy-param-computed: false VirtualClusterAuthenticationAudience: type: object properties: name: type: string minLength: 1 required: - name FetchKongIdentityPrincipal: description: |- Fetches principal metadata from Kong Identity after successful authentication. The principal is looked up by a custom key matched against the authenticated identity. **Requires a minimum runtime version of `1.2`**. type: object properties: directory: description: Kong Identity directory to use for principal lookup. type: string minLength: 1 fetch_by: $ref: '#/components/schemas/FetchKongIdentityPrincipalFetchBy' failure_mode: $ref: '#/components/schemas/FetchKongIdentityPrincipalFailureMode' required: - directory - fetch_by - failure_mode x-min-runtime-version: '1.2' x-speakeasy-param-computed: false FetchKongIdentityPrincipalOauthBearer: description: |- Fetches principal metadata from Kong Identity after successful OAUTHBEARER authentication. The principal is looked up by the iss and sub claims from the JWT token. **Requires a minimum runtime version of `1.2`**. type: object properties: directory: description: Kong Identity directory to use for principal lookup. type: string minLength: 1 failure_mode: $ref: '#/components/schemas/FetchKongIdentityPrincipalFailureMode' required: - directory - failure_mode x-min-runtime-version: '1.2' x-speakeasy-param-computed: false FetchKongIdentityPrincipalFetchBy: description: |- Defines how to look up the principal in Kong Identity. **Requires a minimum runtime version of `1.2`**. type: object properties: key: description: | The metadata key in Kong Identity to match the authenticated identity against. Value for the lookup is a `username` in case of `sasl_plain` or `sasl_scram`. In case of `client_certificate` it's a principal mapped by the listener TLSServer policy. type: string minLength: 1 required: - key x-min-runtime-version: '1.2' x-speakeasy-param-computed: false FetchKongIdentityPrincipalFailureMode: description: |- Behavior when the Kong Identity principal lookup fails. * `error` - fail the authentication if the principal lookup fails. * `ignore` - proceed without principal metadata if the lookup fails. **Requires a minimum runtime version of `1.2`**. type: string enum: - error - ignore x-min-runtime-version: '1.2' x-speakeasy-param-computed: false x-speakeasy-unknown-values: allow VirtualClusterDNSLabel: description: |- The DNS label used in the bootstrap server URL to identify the virtual cluster when using SNI routing. The format follows the RFC1035: 1-63 chars, lowercase alphanumeric or '-', must start and end with an alphanumeric character. type: string example: vcluster-1 maxLength: 63 minLength: 1 pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$' VirtualClusterACLMode: description: | Configures whether or not ACL policies are enforced on the gateway. - `enforce_on_gateway` means the gateway enforces its own ACL policies for this virtual cluster and does not forward ACL-related commands to the backend cluster. Note that if there are no ACL policies configured, all access is denied. - `passthrough` tells the gateway to forward all ACL-related commands. type: string enum: - enforce_on_gateway - passthrough x-speakeasy-unknown-values: allow BackendCluster: description: The Kafka cluster. type: object properties: id: description: The unique identifier of the backend cluster. type: string format: uuid readOnly: true x-speakeasy-param-suppress-computed-diff: true name: $ref: '#/components/schemas/BackendClusterName' description: description: A human-readable description of the backend cluster. type: string default: '' maxLength: 512 authentication: $ref: '#/components/schemas/BackendClusterAuthenticationSensitiveDataAwareScheme' insecure_allow_anonymous_virtual_cluster_auth: description: | If true, virtual clusters can have allow anonymous authentication and use this backend cluster. This setting is not recommended for production use as it may create privilege escalation vulnerabilities. type: boolean default: false bootstrap_servers: $ref: '#/components/schemas/BootstrapServers' tls: $ref: '#/components/schemas/BackendClusterTLS' metadata_update_interval_seconds: $ref: '#/components/schemas/BackendMetadataUpdateIntervalSeconds' labels: $ref: '#/components/schemas/Labels' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - id - name - authentication - bootstrap_servers - tls - created_at - updated_at BackendClusterName: description: The unique name of the backend cluster. type: string maxLength: 255 minLength: 1 x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' BackendClusterReference: description: The backend cluster associated with the virtual cluster. type: object properties: id: description: The unique identifier of the backend cluster. type: string format: uuid name: $ref: '#/components/schemas/BackendClusterName' additionalProperties: false required: - id - name BackendClusterReferenceModify: description: | The backend cluster associated with the virtual cluster. Either `id` or `name` must be provided. Following changes to the backend cluster name won't affect the reference, as the system will create the entities relationship by `id`. properties: id: description: The unique identifier of the backend cluster. type: string format: uuid BootstrapServers: description: 'A list of cluster bootstrap servers in the format address:port.' type: array items: type: string description: 'Endpoint in address:port format.' pattern: '^(([a-zA-Z0-9\.\-]+)|\[([a-fA-F0-9:]+)\]):\d+$' minLength: 1 minItems: 1 BackendClusterTLS: type: object properties: enabled: description: 'If true, TLS is enabled for connections to this backend cluster. If false, TLS is explicitly disabled.' type: boolean insecure_skip_verify: description: 'If true, skip certificate verification. It''s not secure to use for production.' type: boolean default: false ca_bundle: $ref: '#/components/schemas/GatewaySecretReferenceOrLiteral' tls_versions: description: List of supported TLS versions. type: array items: type: string enum: - tls12 - tls13 x-speakeasy-unknown-values: allow default: - tls12 - tls13 client_identity: description: |- Client mTLS configuration. **Requires a minimum runtime version of `1.1`**. type: object properties: certificate: $ref: '#/components/schemas/GatewaySecretReferenceOrLiteral' key: $ref: '#/components/schemas/GatewaySecret' required: - certificate - key x-min-runtime-version: '1.1' x-speakeasy-param-computed: false required: - enabled BackendMetadataUpdateIntervalSeconds: description: The interval at which metadata is updated in seconds. type: integer default: 60 maximum: 43200 minimum: 1 BackendClusterAuthenticationScheme: discriminator: propertyName: type mapping: anonymous: '#/components/schemas/BackendClusterAuthenticationAnonymous' sasl_plain: '#/components/schemas/BackendClusterAuthenticationSaslPlain' sasl_scram: '#/components/schemas/BackendClusterAuthenticationSaslScram' oneOf: - $ref: '#/components/schemas/BackendClusterAuthenticationAnonymous' - $ref: '#/components/schemas/BackendClusterAuthenticationSaslPlain' - $ref: '#/components/schemas/BackendClusterAuthenticationSaslScram' BackendClusterAuthenticationSensitiveDataAwareScheme: discriminator: propertyName: type mapping: anonymous: '#/components/schemas/BackendClusterAuthenticationAnonymous' sasl_plain: '#/components/schemas/BackendClusterAuthenticationSaslPlainSensitiveDataAware' sasl_scram: '#/components/schemas/BackendClusterAuthenticationSaslScramSensitiveDataAware' oneOf: - $ref: '#/components/schemas/BackendClusterAuthenticationAnonymous' - $ref: '#/components/schemas/BackendClusterAuthenticationSaslPlainSensitiveDataAware' - $ref: '#/components/schemas/BackendClusterAuthenticationSaslScramSensitiveDataAware' BackendClusterAuthenticationAnonymous: description: Anonymous authentication scheme for the backend cluster. type: object properties: type: description: The type of authentication scheme. type: string const: anonymous additionalProperties: false required: - type BackendClusterAuthenticationSaslPlainSensitiveDataAware: description: | SASL/PLAIN authentication scheme for the backend cluster without requiring sensitive password data. type: object properties: type: type: string const: sasl_plain username: $ref: '#/components/schemas/GatewaySecretReferenceOrLiteral' password: $ref: '#/components/schemas/GatewaySecret' additionalProperties: false required: - type - username BackendClusterAuthenticationSaslPlain: description: SASL/PLAIN authentication scheme for the backend cluster. type: object properties: type: type: string const: sasl_plain username: $ref: '#/components/schemas/GatewaySecretReferenceOrLiteral' password: $ref: '#/components/schemas/GatewaySecret' additionalProperties: false required: - type - username - password BackendClusterAuthenticationSaslScramSensitiveDataAware: description: | SASL/SCRAM authentication scheme for the backend cluster without requiring sensitive password data. type: object properties: type: type: string const: sasl_scram algorithm: description: The algorithm used for SASL/SCRAM authentication. type: string enum: - sha256 - sha512 x-speakeasy-unknown-values: allow username: $ref: '#/components/schemas/GatewaySecretReferenceOrLiteral' password: $ref: '#/components/schemas/GatewaySecret' additionalProperties: false required: - type - username - algorithm BackendClusterAuthenticationSaslScram: description: SASL/SCRAM authentication scheme for the backend cluster. type: object properties: type: type: string const: sasl_scram algorithm: description: The algorithm used for SASL/SCRAM authentication. type: string enum: - sha256 - sha512 x-speakeasy-unknown-values: allow username: $ref: '#/components/schemas/GatewaySecretReferenceOrLiteral' password: $ref: '#/components/schemas/GatewaySecret' additionalProperties: false required: - type - username - algorithm - password SchemaRegistry: description: A schema registry that contains schemas. type: object properties: name: description: The unique name of the schema registry. type: string maxLength: 255 minLength: 1 x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A human-readable description. type: string maxLength: 512 x-speakeasy-param-computed: true type: description: The type of the schema registry. type: string config: description: The configuration of the schema registry. type: object default: null nullable: true x-speakeasy-param-computed: false labels: $ref: '#/components/schemas/Labels' id: description: The unique identifier of the schema registry. type: string format: uuid created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' required: - name - type - id - created_at - updated_at SchemaRegistryConfluentSensitiveDataAware: description: A Confluent schema registry. type: object properties: name: description: The unique name of the schema registry. type: string maxLength: 255 minLength: 1 x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A human-readable description. type: string maxLength: 512 x-speakeasy-param-computed: true type: description: The type of the schema registry. type: string const: confluent config: description: The configuration of the schema registry. type: object $ref: '#/components/schemas/SchemaRegistryConfluentConfigSensitiveDataAware' labels: $ref: '#/components/schemas/Labels' required: - name - type - config SchemaRegistryConfluent: description: A Confluent schema registry. type: object properties: name: description: The unique name of the schema registry. type: string maxLength: 255 minLength: 1 x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A human-readable description. type: string maxLength: 512 x-speakeasy-param-computed: true type: description: The type of the schema registry. type: string const: confluent config: description: The configuration of the schema registry. type: object $ref: '#/components/schemas/SchemaRegistryConfluentConfig' labels: $ref: '#/components/schemas/Labels' required: - name - type - config SchemaRegistryConfluentConfigSensitiveDataAware: description: | The configuration of [Confluent Schema Registry](https://github.com/confluentinc/schema-registry) type: object properties: schema_type: description: The format of the message. type: string enum: - avro - json x-speakeasy-unknown-values: allow endpoint: description: The endpoint of the Confluent schema registry. type: string format: uri minLength: 1 timeout_seconds: description: | Total time in seconds from establishing connection to receive a response from schema registry. type: integer default: 10 minimum: 1 authentication: $ref: '#/components/schemas/SchemaRegistryAuthenticationSensitiveDataAwareScheme' required: - schema_type - endpoint SchemaRegistryConfluentConfig: description: | The configuration of [Confluent Schema Registry](https://github.com/confluentinc/schema-registry) type: object properties: schema_type: description: The format of the message. type: string enum: - avro - json x-speakeasy-unknown-values: allow endpoint: description: The endpoint of the Confluent schema registry. type: string format: uri minLength: 1 timeout_seconds: description: | Total time in seconds from establishing connection to receive a response from schema registry. type: integer default: 10 minimum: 1 authentication: $ref: '#/components/schemas/SchemaRegistryAuthenticationScheme' required: - schema_type - endpoint SchemaRegistryAuthenticationSensitiveDataAwareScheme: description: The authentication configuration for the schema registry. discriminator: propertyName: type mapping: basic: '#/components/schemas/SchemaRegistryAuthenticationBasicSensitiveDataAware' oneOf: - $ref: '#/components/schemas/SchemaRegistryAuthenticationBasicSensitiveDataAware' SchemaRegistryAuthenticationScheme: description: The authentication configuration for the schema registry. discriminator: propertyName: type mapping: basic: '#/components/schemas/SchemaRegistryAuthenticationBasic' oneOf: - $ref: '#/components/schemas/SchemaRegistryAuthenticationBasic' SchemaRegistryAuthenticationBasicSensitiveDataAware: type: object properties: type: type: string const: basic username: $ref: '#/components/schemas/GatewaySecretReferenceOrLiteral' password: $ref: '#/components/schemas/GatewaySecret' required: - type - username SchemaRegistryAuthenticationBasic: description: Basic authentication scheme for the schema registry with username and password. type: object properties: type: type: string const: basic username: $ref: '#/components/schemas/GatewaySecretReferenceOrLiteral' password: $ref: '#/components/schemas/GatewaySecret' required: - type - username - password SchemaRegistryReference: description: A reference to a schema Registry. $ref: '#/components/schemas/SchemaRegistryReferenceById' SchemaRegistryReferenceById: type: object properties: id: description: The unique identifier of the schema registry. type: string format: uuid minLength: 1 required: - id SchemaRegistryCreate: description: The typed schema of the schema registry to create it. discriminator: propertyName: type mapping: confluent: '#/components/schemas/SchemaRegistryConfluent' oneOf: - $ref: '#/components/schemas/SchemaRegistryConfluent' SchemaRegistryUpdate: description: The typed schema of the schema registry to modify it. discriminator: propertyName: type mapping: confluent: '#/components/schemas/SchemaRegistryConfluentSensitiveDataAware' oneOf: - $ref: '#/components/schemas/SchemaRegistryConfluentSensitiveDataAware' EventGatewayPolicy: description: A policy associated with an Event Gateway. type: object properties: type: description: The type name of the policy. type: string maxLength: 255 minLength: 1 name: description: A unique user-defined name of the policy. type: string maxLength: 255 nullable: false x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A human-readable description of the policy. type: string default: '' maxLength: 512 enabled: description: Whether the policy is enabled. type: boolean default: true labels: $ref: '#/components/schemas/Labels' id: description: The unique identifier of the policy. type: string format: uuid config: description: The configuration of the policy. type: object default: null nullable: true x-speakeasy-param-computed: false created_at: $ref: '#/components/schemas/CreatedAt' parent_policy_id: description: 'The unique identifier of the parent policy, if any.' type: string format: uuid default: null nullable: true x-speakeasy-param-computed: false updated_at: $ref: '#/components/schemas/UpdatedAt' condition: description: A string containing the boolean expression that determines whether the policy is applied. type: string default: '' maxLength: 1000 x-expression: type: boolean fields: [] required: - type - id - created_at - updated_at EventGatewayListenerPolicy: description: A policy associated with an Event Gateway. type: object properties: type: description: The type name of the policy. type: string maxLength: 255 minLength: 1 name: description: A unique user-defined name of the policy. type: string maxLength: 255 nullable: false x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A human-readable description of the policy. type: string default: '' maxLength: 512 enabled: description: Whether the policy is enabled. type: boolean default: true labels: $ref: '#/components/schemas/Labels' id: description: The unique identifier of the policy. type: string format: uuid config: description: The configuration of the policy. type: object created_at: $ref: '#/components/schemas/CreatedAt' parent_policy_id: description: 'The unique identifier of the parent policy, if any.' type: string format: uuid default: null nullable: true x-speakeasy-param-computed: false updated_at: $ref: '#/components/schemas/UpdatedAt' required: - type - id - created_at - updated_at - config EventGatewayTLSListenerSensitiveDataAwarePolicy: description: | The TLS Server policy defines the certificates and keys used by the gateway server when the client connects to the gateway over TLS. While it is possible to have multiple TLS policies on a listener, only one can be active at a time. type: object properties: type: description: The type name of the policy. type: string const: tls_server maxLength: 255 minLength: 1 name: description: A unique user-defined name of the policy. type: string maxLength: 255 nullable: false x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A human-readable description of the policy. type: string default: '' maxLength: 512 enabled: description: Whether the policy is enabled. type: boolean default: true labels: $ref: '#/components/schemas/Labels' config: description: The configuration of the policy. type: object $ref: '#/components/schemas/EventGatewayTLSListenerPolicyConfigSensitiveDataAware' required: - type - config EventGatewayTLSListenerPolicy: description: | The TLS Server policy defines the certificates and keys used by the gateway server when the client connects to the gateway over TLS. While it is possible to have multiple TLS policies on a listener, only one can be active at a time. type: object properties: type: description: The type name of the policy. type: string const: tls_server maxLength: 255 minLength: 1 name: description: A unique user-defined name of the policy. type: string maxLength: 255 nullable: false x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A human-readable description of the policy. type: string default: '' maxLength: 512 enabled: description: Whether the policy is enabled. type: boolean default: true labels: $ref: '#/components/schemas/Labels' config: description: The configuration of the policy. type: object $ref: '#/components/schemas/EventGatewayTLSListenerPolicyConfig' required: - type - config title: TLS Listener EventGatewayTLSListenerPolicyConfigSensitiveDataAware: type: object properties: certificates: type: array items: $ref: '#/components/schemas/TLSCertificateSensitiveDataAware' maxItems: 1 minItems: 1 versions: $ref: '#/components/schemas/TLSVersionRange' allow_plaintext: description: | If false, only TLS connections are allowed. If true, both TLS and plaintext connections are allowed. type: boolean default: false client_authentication: description: |- Configures mutual TLS (mTLS) client certificate verification. When set, the gateway requests or requires clients to present a certificate during the TLS handshake. **Requires a minimum runtime version of `1.1`**. type: object properties: mode: description: | * required - Reject TLS connections without a valid client certificate. * requested - Request a client certificate during the TLS handshake, but allow connections without one (falls back to other configured authentication methods). If a certificate is presented but cannot be verified, the connection is closed. type: string enum: - required - requested x-speakeasy-unknown-values: allow tls_trust_bundles: description: | TLS trust bundles contain CA certificate bundles used to verify client certificates. All bundles are merged into a single trust store; a client certificate is accepted if it chains to any trusted CA across all bundles. type: array items: $ref: '#/components/schemas/TLSTrustBundleReference' minItems: 1 principal_mapping: description: |- An expression that extracts a principal identifier from a verified client certificate. This expression must evaluate to a string. **Requires a minimum runtime version of `1.1`**. type: string example: '${context.certificate.subject[''CN''] ? context.certificate.subject[''CN''] : context.certificate.sans.uri[0]}' x-expression: type: string fields: - name: context.certificate.serialNumber type: string description: The string serial number of the certificate - name: context.certificate.subject type: object description: | A map of the subject distinguished name. A distinguished name as described by RFC 4514 is represented as a map with each key being the attribute type and the value being the attribute value. For example: * `certificate.subject['CN']` is the common name * `certificate.subject['O']` is the organization - name: context.certificate.issuer type: object description: | A map of the issuer distinguished name. A distinguished name as described by RFC 4514 is represented as a map with each key being the attribute type and the value being the attribute value. For example: * `certificate.issuer['CN']` is the common name * `certificate.issuer['O']` is the organization - name: context.certificate.sans.dns type: array items: type: string description: An array of the DNS Subject Alternative Names from the certificate. - name: context.certificate.sans.uri type: array items: type: string description: An array of the URI Subject Alternative Names from the certificate. x-min-runtime-version: '1.1' x-speakeasy-param-computed: false required: - mode - tls_trust_bundles x-min-runtime-version: '1.1' x-speakeasy-param-computed: false required: - certificates EventGatewayTLSListenerPolicyConfig: type: object properties: certificates: type: array items: $ref: '#/components/schemas/TLSCertificate' maxItems: 1 minItems: 1 versions: $ref: '#/components/schemas/TLSVersionRange' allow_plaintext: description: | If false, only TLS connections are allowed. If true, both TLS and plaintext connections are allowed. type: boolean default: false client_authentication: description: |- Configures mutual TLS (mTLS) client certificate verification. When set, the gateway requests or requires clients to present a certificate during the TLS handshake. **Requires a minimum runtime version of `1.1`**. type: object properties: mode: description: | * required - Reject TLS connections without a valid client certificate. * requested - Request a client certificate during the TLS handshake, but allow connections without one (falls back to other configured authentication methods). If a certificate is presented but cannot be verified, the connection is closed. type: string enum: - required - requested x-speakeasy-unknown-values: allow tls_trust_bundles: description: | TLS trust bundles contain CA certificate bundles used to verify client certificates. All bundles are merged into a single trust store; a client certificate is accepted if it chains to any trusted CA across all bundles. type: array items: $ref: '#/components/schemas/TLSTrustBundleReference' minItems: 1 principal_mapping: description: |- An expression that extracts a principal identifier from a verified client certificate. This expression must evaluate to a string. **Requires a minimum runtime version of `1.1`**. type: string example: '${context.certificate.subject[''CN''] ? context.certificate.subject[''CN''] : context.certificate.sans.uri[0]}' x-expression: type: string fields: - name: context.certificate.serialNumber type: string description: The string serial number of the certificate - name: context.certificate.subject type: object description: | A map of the subject distinguished name. A distinguished name as described by RFC 4514 is represented as a map with each key being the attribute type and the value being the attribute value. For example: * `certificate.subject['CN']` is the common name * `certificate.subject['O']` is the organization - name: context.certificate.issuer type: object description: | A map of the issuer distinguished name. A distinguished name as described by RFC 4514 is represented as a map with each key being the attribute type and the value being the attribute value. For example: * `certificate.issuer['CN']` is the common name * `certificate.issuer['O']` is the organization - name: context.certificate.sans.dns type: array items: type: string description: An array of the DNS Subject Alternative Names from the certificate. - name: context.certificate.sans.uri type: array items: type: string description: An array of the URI Subject Alternative Names from the certificate. x-min-runtime-version: '1.1' x-speakeasy-param-computed: false required: - mode - tls_trust_bundles x-min-runtime-version: '1.1' x-speakeasy-param-computed: false required: - certificates TLSCertificateSensitiveDataAware: description: A TLS certificate and its associated private key. type: object properties: certificate: $ref: '#/components/schemas/GatewaySecretReferenceOrLiteral' key: $ref: '#/components/schemas/GatewaySecret' required: - certificate TLSCertificate: description: A TLS certificate and its associated private key. type: object properties: certificate: $ref: '#/components/schemas/GatewaySecretReferenceOrLiteral' key: $ref: '#/components/schemas/GatewaySecret' required: - certificate - key TLSVersionRange: description: A range of TLS versions. type: object properties: min: description: Minimum TLS version to use. type: string default: TLSv1.2 enum: - TLSv1.2 - TLSv1.3 x-speakeasy-unknown-values: allow max: description: Maximum TLS version to use. type: string default: TLSv1.3 enum: - TLSv1.2 - TLSv1.3 x-speakeasy-unknown-values: allow default: min: TLSv1.2 max: TLSv1.3 ForwardToVirtualClusterPolicy: description: | Forwards requests to virtual clusters configured with port routing or SNI routing. While there can be multiple of these policies configured on a listener, there can only be one instance of `port_mapping`. When multiple policies are configured, the first one that matches the connection is used. If no policy matches, the connection is rejected. When using `port_mapping`, there must be a mapping port for each broker on the backend cluster see `ForwardToClusterBySNIConfig` for more details. type: object properties: type: description: The type name of the policy. type: string const: forward_to_virtual_cluster maxLength: 255 minLength: 1 name: description: A unique user-defined name of the policy. type: string maxLength: 255 nullable: false x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A human-readable description of the policy. type: string default: '' maxLength: 512 enabled: description: Whether the policy is enabled. type: boolean default: true labels: $ref: '#/components/schemas/Labels' config: description: The configuration of the policy. type: object discriminator: propertyName: type mapping: port_mapping: '#/components/schemas/ForwardToClusterByPortMappingConfig' sni: '#/components/schemas/ForwardToClusterBySNIConfig' oneOf: - $ref: '#/components/schemas/ForwardToClusterBySNIConfig' - $ref: '#/components/schemas/ForwardToClusterByPortMappingConfig' required: - type - config title: Forward to Virtual Cluster ForwardToClusterByPortMappingConfig: description: | The configuration to forward request to `destination` and rewrite ports accordingly. All broker ids must fit in the range of ports defined in the listener, if it doesn't the metadata request will return an error. For example with ports: [9000, "9092-9094", "9100"] and `bootstrap_port: at_start` and brokers with ids 1, 2, 3, 4 we will map: bootstrap to 9000 broker 1 to 9001, broker 2 to 9002, broker 3 to 9003, and broker 4 to 9004 and fail the metadata request as these ports are not open. However, with the same configuration but with brokers with ids: 92,93,94,100 we will map: bootstrap to 9000, broker 92 to 9092, broker 93 to 9093, broker 94 to 9094, and broker 100 to 9100. In most cases users should use a single range `["9090-9094"] ` and `bootstrap_port: at_start` and connect with `<host>:9090` as bootstrap server. Being able to use multiple ranges is only useful when when dealing with gaps in broker ids. It is strongly discouraged to use port mapping in production. type: object properties: type: type: string const: port_mapping destination: $ref: '#/components/schemas/VirtualClusterReference' advertised_host: description: 'Virtual brokers are advertised to clients using this host. Any kind of host supported by kafka can be used. If not defined, it''s listen_address. If listen_address is `0.0.0.0` it''s the destination IP of the TCP connection.' type: string pattern: '^[a-z0-9](?:[a-z0-9\-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9\-]{0,61}[a-z0-9])?)*$' bootstrap_port: description: | If set to `at_start`, the first port will be used as a bootstrap port. It provides a stable endpoint to use as the bootstrap server for clients, regardless of broker IDs in the cluster. Additionally, it offsets all ports by one, so for example, if there are 3 brokers (id=1, id=2, id=3) then we will use 4 ports: 9092 (bootstrap), 9093 (id=1), 9094 (id=2), 9095 (id=3) With `none` we will use 3 ports: 9092 (id=1), 9093 (id=2), 9094 (id=3). type: string default: at_start enum: - none - at_start x-speakeasy-unknown-values: allow min_broker_id: description: The lowest broker node ID in the cluster. type: integer default: 0 additionalProperties: false required: - type - destination - advertised_host ForwardToClusterBySNIConfig: description: | The configuration to forward requests to virtual clusters configured with SNI routing. type: object properties: type: type: string const: sni sni_suffix: description: | Optional suffix for TLS SNI validation. This suffix is concatenated with the virtual cluster "dns.label" label to form the base name for the SNI. If not provided, the virtual cluster "dns.label" label alone is used as the base name for the SNI. For example with sni_suffix: `.example.com` and virtual cluster "dns.label" label: `my-cluster`, the SNI suffix for it is `my-cluster.example.com`. If "dns.label" label is absent on the virtual cluster, the traffic won't be routed there. The bootstrap host is `bootstrap.my-cluster.example.com` and then each broker is addressable at `broker-0.my-cluster.example.com`, `broker-1.my-cluster.example.com`, etc. This means that your deployment needs to have a wildcard certificate for the domain and a DNS resolver that routes `*.my-cluster.example.com` to the proxy. The accepted format is a DNS subdomain starting with either `.` or `-`. For example, `-keg.example.com`, `.keg.example.com`, `.namespace.svc.cluster.local`, and `.localhost` are all valid, while `keg.example.com` is not. type: string example: .example.com nullable: false pattern: '^[\.-]([a-z0-9]([a-z0-9-]*[a-z0-9])?\.)*([a-z0-9-]*[a-z0-9])$' advertised_port: description: | Virtual brokers are advertised to clients with this port instead of listen_port. Useful when proxy is behind loadbalancer listening on different port. type: integer maximum: 65535 minimum: 1 nullable: false broker_host_format: description: |- Configures DNS names assigned to brokers in virtual clusters. - `per_cluster_suffix` is the default and allocates one level in the hierarchy for virtual clusters: `broker-{node_id}.{virtual_cluster}.{sni_suffix}` - `shared_suffix` puts all brokers from every virtual clusters into the same level: `broker-{node_id}-{virtual_cluster}.{sni_suffix}`. This makes it easier to manage certificates for this listener. **Requires a minimum runtime version of `1.1`**. type: object properties: type: type: string default: per_cluster_suffix enum: - per_cluster_suffix - shared_suffix x-speakeasy-unknown-values: allow required: - type x-min-runtime-version: '1.1' x-speakeasy-param-computed: false additionalProperties: false required: - type EventGatewayEncryptPolicy: description: Encrypts Kafka records or keys using AES_256_GCM. Keys are therefore 256 bits long. type: object properties: type: description: The type name of the policy. type: string const: encrypt maxLength: 255 minLength: 1 name: description: A unique user-defined name of the policy. type: string maxLength: 255 nullable: false x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A human-readable description of the policy. type: string default: '' maxLength: 512 enabled: description: Whether the policy is enabled. type: boolean default: true labels: $ref: '#/components/schemas/Labels' config: description: The configuration of the policy. type: object $ref: '#/components/schemas/EventGatewayEncryptConfig' condition: description: A string containing the boolean expression that determines whether the policy is applied. type: string example: 'context.topic.name.endsWith("my_suffix") && record.headers["x-flag"] == "a-value"' default: '' maxLength: 1000 x-expression: type: boolean fields: - name: context.auth.principal.name type: string description: 'Name of authenticated principal. Username in case of PLAIN/SCRAM, `sub` claim in case of OAUTHBEARER.' - name: context.auth.principal.id type: string description: |- Kong Identity principal ID. Only populated when Kong Identity principal fetching is configured and succeeds. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.principal.metadata type: object description: |- Kong Identity principal metadata. Only populated when Kong Identity principal fetching is configured and succeeds. Values can be strings, numbers, booleans, arrays or nested JSON objects. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.type type: string description: | The matched authentication type from a virtual cluster: anonymous, sasl_plain, sasl_scram_sha256, sasl_scram_sha512, sasl_oauth_bearer. - name: context.topic.name type: string description: The name of the topic. - name: record.headers type: object description: An associative array of header key value pairs. required: - type - config title: Encrypt EventGatewayEncryptConfig: description: The configuration of the encrypt policy. type: object properties: failure_mode: $ref: '#/components/schemas/EncryptionFailureMode' part_of_record: description: Describes the parts of a record to encrypt. type: array items: $ref: '#/components/schemas/EncryptionRecordPart' minItems: 1 encryption_key: $ref: '#/components/schemas/EncryptionKey' required: - failure_mode - part_of_record - encryption_key EventGatewayParsedRecordEncryptFieldsPolicy: description: |- Encrypts fields of parsed Kafka records using AES_256_GCM. Keys are therefore 256 bits long. Note this policy can only be used as a child of a `EventGatewayProduceSchemaValidationPolicy` policy. **Requires a minimum runtime version of `1.2`**. type: object properties: type: description: The type name of the policy. type: string const: encrypt_fields maxLength: 255 minLength: 1 name: description: A unique user-defined name of the policy. type: string maxLength: 255 nullable: false x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A human-readable description of the policy. type: string default: '' maxLength: 512 enabled: description: Whether the policy is enabled. type: boolean default: true labels: $ref: '#/components/schemas/Labels' config: description: The configuration of the policy. type: object $ref: '#/components/schemas/EventGatewayParsedRecordEncryptFieldsConfig' condition: description: | A string containing the boolean expression that determines whether the policy is applied. When the policy is applied as a child policy of schema_validation, the expression can also reference `record.value` fields. type: string example: record.value.content.foo.bar == "a-value" default: '' maxLength: 1000 x-expression: type: boolean fields: - name: context.auth.principal.name type: string description: 'Name of authenticated principal. Username in case of PLAIN/SCRAM, `sub` claim in case of OAUTHBEARER.' - name: context.auth.principal.id type: string description: |- Kong Identity principal ID. Only populated when Kong Identity principal fetching is configured and succeeds. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.principal.metadata type: object description: |- Kong Identity principal metadata. Only populated when Kong Identity principal fetching is configured and succeeds. Values can be strings, numbers, booleans, arrays or nested JSON objects. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.type type: string description: | The matched authentication type from a virtual cluster: anonymous, sasl_plain, sasl_scram_sha256, sasl_scram_sha512, sasl_oauth_bearer. - name: context.topic.name type: string description: The name of the topic. - name: record.headers type: object description: An associative array of header key value pairs. - name: record.value.validated type: boolean description: Indicates whether the record value was successfully validated. - name: record.value.content type: object description: The content of the record value. - name: record.value.schema type: object x-min-runtime-version: '1.2' description: |- Registry-supplied schema metadata for the record value. Populated when the value was validated by a Confluent schema registry. Fields: `id` (uint), `version` (uint, when returned by the registry), `format` ("avro"|"json"), and either `avro.{name, namespace}` or `json.{title, id}`. Sub-fields are absent when not applicable; use `has()` to test presence. **Requires a minimum runtime version of `1.2`**. x-speakeasy-param-computed: false - name: record.key.schema type: object x-min-runtime-version: '1.2' description: |- Same shape as `record.value.schema`, populated when the record key has schema_validation configured. **Requires a minimum runtime version of `1.2`**. x-speakeasy-param-computed: false required: - type - config title: Encrypt Parsed Record x-min-runtime-version: '1.2' x-speakeasy-param-computed: false EventGatewayParsedRecordEncryptFieldsPolicyCreate: description: |- Encrypts fields of parsed Kafka records using AES_256_GCM. Keys are therefore 256 bits long. Note this policy can only be used as a child of a `EventGatewayProduceSchemaValidationPolicy` policy. **Requires a minimum runtime version of `1.2`**. type: object properties: type: description: The type name of the policy. type: string const: encrypt_fields maxLength: 255 minLength: 1 name: description: A unique user-defined name of the policy. type: string maxLength: 255 nullable: false x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A human-readable description of the policy. type: string default: '' maxLength: 512 enabled: description: Whether the policy is enabled. type: boolean default: true labels: $ref: '#/components/schemas/Labels' config: description: The configuration of the policy. type: object $ref: '#/components/schemas/EventGatewayParsedRecordEncryptFieldsConfig' condition: description: | A string containing the boolean expression that determines whether the policy is applied. When the policy is applied as a child policy of schema_validation, the expression can also reference `record.value` fields. type: string example: record.value.content.foo.bar == "a-value" default: '' maxLength: 1000 x-expression: type: boolean fields: - name: context.auth.principal.name type: string description: 'Name of authenticated principal. Username in case of PLAIN/SCRAM, `sub` claim in case of OAUTHBEARER.' - name: context.auth.principal.id type: string description: |- Kong Identity principal ID. Only populated when Kong Identity principal fetching is configured and succeeds. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.principal.metadata type: object description: |- Kong Identity principal metadata. Only populated when Kong Identity principal fetching is configured and succeeds. Values can be strings, numbers, booleans, arrays or nested JSON objects. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.type type: string description: | The matched authentication type from a virtual cluster: anonymous, sasl_plain, sasl_scram_sha256, sasl_scram_sha512, sasl_oauth_bearer. - name: context.topic.name type: string description: The name of the topic. - name: record.headers type: object description: An associative array of header key value pairs. - name: record.value.validated type: boolean description: Indicates whether the record value was successfully validated. - name: record.value.content type: object description: The content of the record value. - name: record.value.schema type: object x-min-runtime-version: '1.2' description: |- Registry-supplied schema metadata for the record value. Populated when the value was validated by a Confluent schema registry. Fields: `id` (uint), `version` (uint, when returned by the registry), `format` ("avro"|"json"), and either `avro.{name, namespace}` or `json.{title, id}`. Sub-fields are absent when not applicable; use `has()` to test presence. **Requires a minimum runtime version of `1.2`**. x-speakeasy-param-computed: false - name: record.key.schema type: object x-min-runtime-version: '1.2' description: |- Same shape as `record.value.schema`, populated when the record key has schema_validation configured. **Requires a minimum runtime version of `1.2`**. x-speakeasy-param-computed: false parent_policy_id: description: The unique identifier of the parent schema validation policy. type: string format: uuid required: - type - config - parent_policy_id title: Encrypt Parsed Record Fields x-min-runtime-version: '1.2' x-speakeasy-param-computed: false EventGatewayParsedRecordEncryptFieldsConfig: description: The configuration of the encrypt parsed record policy. type: object properties: failure_mode: $ref: '#/components/schemas/ProduceFailureMode' encrypt_fields: description: Selects which fields to encrypt and with what keys. type: array items: $ref: '#/components/schemas/EventGatewayParsedRecordEncryptionSelector' maxItems: 256 minItems: 1 required: - failure_mode - encrypt_fields EventGatewayParsedRecordEncryptionSelector: description: Selects fields of a parsed record for encryption and defines what key to encrypt them with. type: object properties: encryption_key: $ref: '#/components/schemas/EncryptionKey' paths: $ref: '#/components/schemas/EventGatewayParsedRecordFieldPathsArray' required: - paths - encryption_key EventGatewayParsedRecordFieldPathsArray: type: array items: type: object required: - match properties: match: description: | A field selector. It can select nested fields and array entries. Currently supported are exact matches. type: string example: 'someObject.someArray[1].fieldName' maxItems: 50 EventGatewayDecryptPolicy: description: Decrypts Kafka records or keys using AES_256_GCM. Keys are therefore 256 bits long. type: object properties: type: description: The type name of the policy. type: string const: decrypt maxLength: 255 minLength: 1 name: description: A unique user-defined name of the policy. type: string maxLength: 255 nullable: false x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A human-readable description of the policy. type: string default: '' maxLength: 512 enabled: description: Whether the policy is enabled. type: boolean default: true labels: $ref: '#/components/schemas/Labels' config: description: The configuration of the policy. type: object $ref: '#/components/schemas/EventGatewayDecryptPolicyConfig' condition: description: A string containing the boolean expression that determines whether the policy is applied. type: string example: 'context.topic.name.endsWith("my_suffix") && record.headers["x-flag"] == "a-value"' default: '' maxLength: 1000 x-expression: type: boolean fields: - name: context.auth.principal.name type: string description: 'Name of authenticated principal. Username in case of PLAIN/SCRAM, `sub` claim in case of OAUTHBEARER.' - name: context.auth.principal.id type: string description: |- Kong Identity principal ID. Only populated when Kong Identity principal fetching is configured and succeeds. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.principal.metadata type: object description: |- Kong Identity principal metadata. Only populated when Kong Identity principal fetching is configured and succeeds. Values can be strings, numbers, booleans, arrays or nested JSON objects. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.type type: string description: | The matched authentication type from a virtual cluster: anonymous, sasl_plain, sasl_scram_sha256, sasl_scram_sha512, sasl_oauth_bearer. - name: context.topic.name type: string description: The name of the topic. - name: record.headers type: object description: An associative array of header key value pairs. required: - type - config title: Decrypt EventGatewayDecryptPolicyConfig: description: The configuration of the decrypt policy. type: object properties: failure_mode: $ref: '#/components/schemas/EncryptionFailureMode' key_sources: description: Describes how to find a symmetric key for decryption. type: array items: $ref: '#/components/schemas/EventGatewayKeySource' minItems: 1 part_of_record: description: Describes the parts of a record to decrypt. type: array items: $ref: '#/components/schemas/DecryptionRecordPart' minItems: 1 required: - failure_mode - key_sources - part_of_record EventGatewayParsedRecordDecryptFieldsPolicy: description: |- Decrypts fields of parsed Kafka records using AES_256_GCM. Keys are therefore 256 bits long. Note this policy can only be used as a child of a `EventGatewayConsumeSchemaValidationPolicy` policy. **Requires a minimum runtime version of `1.2`**. type: object properties: type: description: The type name of the policy. type: string const: decrypt_fields maxLength: 255 minLength: 1 name: description: A unique user-defined name of the policy. type: string maxLength: 255 nullable: false x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A human-readable description of the policy. type: string default: '' maxLength: 512 enabled: description: Whether the policy is enabled. type: boolean default: true labels: $ref: '#/components/schemas/Labels' config: description: The configuration of the policy. type: object $ref: '#/components/schemas/EventGatewayParsedRecordDecryptFieldsConfig' condition: description: | A string containing the boolean expression that determines whether the policy is applied. When the policy is applied as a child policy of schema_validation, the expression can also reference `record.value` fields. type: string example: record.value.content.foo.bar == "a-value" default: '' maxLength: 1000 x-expression: type: boolean fields: - name: context.auth.principal.name type: string description: 'Name of authenticated principal. Username in case of PLAIN/SCRAM, `sub` claim in case of OAUTHBEARER.' - name: context.auth.principal.id type: string description: |- Kong Identity principal ID. Only populated when Kong Identity principal fetching is configured and succeeds. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.principal.metadata type: object description: |- Kong Identity principal metadata. Only populated when Kong Identity principal fetching is configured and succeeds. Values can be strings, numbers, booleans, arrays or nested JSON objects. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.type type: string description: | The matched authentication type from a virtual cluster: anonymous, sasl_plain, sasl_scram_sha256, sasl_scram_sha512, sasl_oauth_bearer. - name: context.topic.name type: string description: The name of the topic. - name: record.headers type: object description: An associative array of header key value pairs. - name: record.value.validated type: boolean description: Indicates whether the record value was successfully validated. - name: record.value.content type: object description: The content of the record value. - name: record.value.schema type: object x-min-runtime-version: '1.2' description: |- Registry-supplied schema metadata for the record value. Populated when the value was validated by a Confluent schema registry. Fields: `id` (uint), `version` (uint, when returned by the registry), `format` ("avro"|"json"), and either `avro.{name, namespace}` or `json.{title, id}`. Sub-fields are absent when not applicable; use `has()` to test presence. **Requires a minimum runtime version of `1.2`**. x-speakeasy-param-computed: false - name: record.key.schema type: object x-min-runtime-version: '1.2' description: |- Same shape as `record.value.schema`, populated when the record key has schema_validation configured. **Requires a minimum runtime version of `1.2`**. x-speakeasy-param-computed: false required: - type - config title: Decrypt Parsed Record Fields x-min-runtime-version: '1.2' x-speakeasy-param-computed: false EventGatewayParsedRecordDecryptFieldsPolicyCreate: description: |- Decrypts fields of parsed Kafka records using AES_256_GCM. Keys are therefore 256 bits long. Note this policy can only be used as a child of a `EventGatewayConsumeSchemaValidationPolicy` policy. **Requires a minimum runtime version of `1.2`**. type: object properties: type: description: The type name of the policy. type: string const: decrypt_fields maxLength: 255 minLength: 1 name: description: A unique user-defined name of the policy. type: string maxLength: 255 nullable: false x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A human-readable description of the policy. type: string default: '' maxLength: 512 enabled: description: Whether the policy is enabled. type: boolean default: true labels: $ref: '#/components/schemas/Labels' config: description: The configuration of the policy. type: object $ref: '#/components/schemas/EventGatewayParsedRecordDecryptFieldsConfig' condition: description: | A string containing the boolean expression that determines whether the policy is applied. When the policy is applied as a child policy of schema_validation, the expression can also reference `record.value` fields. type: string example: record.value.content.foo.bar == "a-value" default: '' maxLength: 1000 x-expression: type: boolean fields: - name: context.auth.principal.name type: string description: 'Name of authenticated principal. Username in case of PLAIN/SCRAM, `sub` claim in case of OAUTHBEARER.' - name: context.auth.principal.id type: string description: |- Kong Identity principal ID. Only populated when Kong Identity principal fetching is configured and succeeds. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.principal.metadata type: object description: |- Kong Identity principal metadata. Only populated when Kong Identity principal fetching is configured and succeeds. Values can be strings, numbers, booleans, arrays or nested JSON objects. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.type type: string description: | The matched authentication type from a virtual cluster: anonymous, sasl_plain, sasl_scram_sha256, sasl_scram_sha512, sasl_oauth_bearer. - name: context.topic.name type: string description: The name of the topic. - name: record.headers type: object description: An associative array of header key value pairs. - name: record.value.validated type: boolean description: Indicates whether the record value was successfully validated. - name: record.value.content type: object description: The content of the record value. - name: record.value.schema type: object x-min-runtime-version: '1.2' description: |- Registry-supplied schema metadata for the record value. Populated when the value was validated by a Confluent schema registry. Fields: `id` (uint), `version` (uint, when returned by the registry), `format` ("avro"|"json"), and either `avro.{name, namespace}` or `json.{title, id}`. Sub-fields are absent when not applicable; use `has()` to test presence. **Requires a minimum runtime version of `1.2`**. x-speakeasy-param-computed: false - name: record.key.schema type: object x-min-runtime-version: '1.2' description: |- Same shape as `record.value.schema`, populated when the record key has schema_validation configured. **Requires a minimum runtime version of `1.2`**. x-speakeasy-param-computed: false parent_policy_id: description: The unique identifier of the parent schema validation policy. type: string format: uuid required: - type - config - parent_policy_id title: Decrypt Parsed Record Fields x-min-runtime-version: '1.2' x-speakeasy-param-computed: false EventGatewayParsedRecordDecryptFieldsConfig: description: The configuration of the decrypt parsed record fields policy. type: object properties: failure_mode: $ref: '#/components/schemas/ConsumeFailureMode' key_sources: description: Describes how to find a symmetric key for decryption. type: array items: $ref: '#/components/schemas/EventGatewayKeySource' minItems: 1 decrypt_fields: $ref: '#/components/schemas/EventGatewayParsedRecordDecryptionSelector' required: - failure_mode - key_sources - decrypt_fields EventGatewayParsedRecordDecryptionSelector: description: Selects fields of a parsed record for decryption. type: object properties: paths: $ref: '#/components/schemas/EventGatewayParsedRecordFieldPathsArray' required: - paths EventGatewayModifyHeadersPolicy: description: A policy that modifies headers for requests. type: object properties: type: description: The type name of the policy. type: string const: modify_headers maxLength: 255 minLength: 1 name: description: A unique user-defined name of the policy. type: string maxLength: 255 nullable: false x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A human-readable description of the policy. type: string default: '' maxLength: 512 enabled: description: Whether the policy is enabled. type: boolean default: true labels: $ref: '#/components/schemas/Labels' config: description: The configuration of the modify headers policy. type: object properties: actions: description: Actions are run in sequential order and act on individual headers. type: array items: $ref: '#/components/schemas/EventGatewayModifyHeaderAction' default: null minItems: 1 nullable: true x-speakeasy-param-computed: false condition: description: | A string containing the boolean expression that determines whether the policy is applied. When the policy is applied as a child policy of schema_validation, the expression can also reference `record.value` fields. type: string example: record.value.content.foo.bar == "a-value" default: '' maxLength: 1000 x-expression: type: boolean fields: - name: context.auth.principal.name type: string description: 'Name of authenticated principal. Username in case of PLAIN/SCRAM, `sub` claim in case of OAUTHBEARER.' - name: context.auth.principal.id type: string description: |- Kong Identity principal ID. Only populated when Kong Identity principal fetching is configured and succeeds. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.principal.metadata type: object description: |- Kong Identity principal metadata. Only populated when Kong Identity principal fetching is configured and succeeds. Values can be strings, numbers, booleans, arrays or nested JSON objects. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.type type: string description: | The matched authentication type from a virtual cluster: anonymous, sasl_plain, sasl_scram_sha256, sasl_scram_sha512, sasl_oauth_bearer. - name: context.topic.name type: string description: The name of the topic. - name: record.headers type: object description: An associative array of header key value pairs. - name: record.value.validated type: boolean description: Indicates whether the record value was successfully validated. - name: record.value.content type: object description: The content of the record value. - name: record.value.schema type: object x-min-runtime-version: '1.2' description: |- Registry-supplied schema metadata for the record value. Populated when the value was validated by a Confluent schema registry. Fields: `id` (uint), `version` (uint, when returned by the registry), `format` ("avro"|"json"), and either `avro.{name, namespace}` or `json.{title, id}`. Sub-fields are absent when not applicable; use `has()` to test presence. **Requires a minimum runtime version of `1.2`**. x-speakeasy-param-computed: false - name: record.key.schema type: object x-min-runtime-version: '1.2' description: |- Same shape as `record.value.schema`, populated when the record key has schema_validation configured. **Requires a minimum runtime version of `1.2`**. x-speakeasy-param-computed: false required: - type - config title: Modify Headers EventGatewayModifyHeadersPolicyCreate: description: A policy that modifies headers for requests. type: object properties: type: description: The type name of the policy. type: string const: modify_headers maxLength: 255 minLength: 1 name: description: A unique user-defined name of the policy. type: string maxLength: 255 nullable: false x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A human-readable description of the policy. type: string default: '' maxLength: 512 enabled: description: Whether the policy is enabled. type: boolean default: true labels: $ref: '#/components/schemas/Labels' config: description: The configuration of the modify headers policy. type: object properties: actions: description: Actions are run in sequential order and act on individual headers. type: array items: $ref: '#/components/schemas/EventGatewayModifyHeaderAction' default: null minItems: 1 nullable: true x-speakeasy-param-computed: false condition: description: | A string containing the boolean expression that determines whether the policy is applied. When the policy is applied as a child policy of schema_validation, the expression can also reference `record.value` fields. type: string example: record.value.content.foo.bar == "a-value" default: '' maxLength: 1000 x-expression: type: boolean fields: - name: context.auth.principal.name type: string description: 'Name of authenticated principal. Username in case of PLAIN/SCRAM, `sub` claim in case of OAUTHBEARER.' - name: context.auth.principal.id type: string description: |- Kong Identity principal ID. Only populated when Kong Identity principal fetching is configured and succeeds. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.principal.metadata type: object description: |- Kong Identity principal metadata. Only populated when Kong Identity principal fetching is configured and succeeds. Values can be strings, numbers, booleans, arrays or nested JSON objects. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.type type: string description: | The matched authentication type from a virtual cluster: anonymous, sasl_plain, sasl_scram_sha256, sasl_scram_sha512, sasl_oauth_bearer. - name: context.topic.name type: string description: The name of the topic. - name: record.headers type: object description: An associative array of header key value pairs. - name: record.value.validated type: boolean description: Indicates whether the record value was successfully validated. - name: record.value.content type: object description: The content of the record value. - name: record.value.schema type: object x-min-runtime-version: '1.2' description: |- Registry-supplied schema metadata for the record value. Populated when the value was validated by a Confluent schema registry. Fields: `id` (uint), `version` (uint, when returned by the registry), `format` ("avro"|"json"), and either `avro.{name, namespace}` or `json.{title, id}`. Sub-fields are absent when not applicable; use `has()` to test presence. **Requires a minimum runtime version of `1.2`**. x-speakeasy-param-computed: false - name: record.key.schema type: object x-min-runtime-version: '1.2' description: |- Same shape as `record.value.schema`, populated when the record key has schema_validation configured. **Requires a minimum runtime version of `1.2`**. x-speakeasy-param-computed: false parent_policy_id: description: 'The unique identifier of the parent schema validation policy, if any.' type: string format: uuid nullable: false required: - type - config title: Modify headers EventGatewaySkipRecordPolicy: description: A policy that skips processing of a record. type: object properties: type: description: The type name of the policy. type: string const: skip_record maxLength: 255 minLength: 1 name: description: A unique user-defined name of the policy. type: string maxLength: 255 nullable: false x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A human-readable description of the policy. type: string default: '' maxLength: 512 enabled: description: Whether the policy is enabled. type: boolean default: true labels: $ref: '#/components/schemas/Labels' condition: description: | A string containing the boolean expression that determines whether the policy is applied. When the policy is applied as a child policy of schema_validation, the expression can also reference `record.value` fields. type: string example: record.value.content.foo.bar == "a-value" default: '' maxLength: 1000 x-expression: type: boolean fields: - name: context.auth.principal.name type: string description: 'Name of authenticated principal. Username in case of PLAIN/SCRAM, `sub` claim in case of OAUTHBEARER.' - name: context.auth.principal.id type: string description: |- Kong Identity principal ID. Only populated when Kong Identity principal fetching is configured and succeeds. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.principal.metadata type: object description: |- Kong Identity principal metadata. Only populated when Kong Identity principal fetching is configured and succeeds. Values can be strings, numbers, booleans, arrays or nested JSON objects. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.type type: string description: | The matched authentication type from a virtual cluster: anonymous, sasl_plain, sasl_scram_sha256, sasl_scram_sha512, sasl_oauth_bearer. - name: context.topic.name type: string description: The name of the topic. - name: record.headers type: object description: An associative array of header key value pairs. - name: record.value.validated type: boolean description: Indicates whether the record value was successfully validated. - name: record.value.content type: object description: The content of the record value. - name: record.value.schema type: object x-min-runtime-version: '1.2' description: |- Registry-supplied schema metadata for the record value. Populated when the value was validated by a Confluent schema registry. Fields: `id` (uint), `version` (uint, when returned by the registry), `format` ("avro"|"json"), and either `avro.{name, namespace}` or `json.{title, id}`. Sub-fields are absent when not applicable; use `has()` to test presence. **Requires a minimum runtime version of `1.2`**. x-speakeasy-param-computed: false - name: record.key.schema type: object x-min-runtime-version: '1.2' description: |- Same shape as `record.value.schema`, populated when the record key has schema_validation configured. **Requires a minimum runtime version of `1.2`**. x-speakeasy-param-computed: false required: - type EventGatewaySkipRecordPolicyCreate: description: A policy that skips processing of a record. type: object properties: type: description: The type name of the policy. type: string const: skip_record maxLength: 255 minLength: 1 name: description: A unique user-defined name of the policy. type: string maxLength: 255 nullable: false x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A human-readable description of the policy. type: string default: '' maxLength: 512 enabled: description: Whether the policy is enabled. type: boolean default: true labels: $ref: '#/components/schemas/Labels' condition: description: | A string containing the boolean expression that determines whether the policy is applied. When the policy is applied as a child policy of schema_validation, the expression can also reference `record.value` fields. type: string example: record.value.content.foo.bar == "a-value" default: '' maxLength: 1000 x-expression: type: boolean fields: - name: context.auth.principal.name type: string description: 'Name of authenticated principal. Username in case of PLAIN/SCRAM, `sub` claim in case of OAUTHBEARER.' - name: context.auth.principal.id type: string description: |- Kong Identity principal ID. Only populated when Kong Identity principal fetching is configured and succeeds. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.principal.metadata type: object description: |- Kong Identity principal metadata. Only populated when Kong Identity principal fetching is configured and succeeds. Values can be strings, numbers, booleans, arrays or nested JSON objects. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.type type: string description: | The matched authentication type from a virtual cluster: anonymous, sasl_plain, sasl_scram_sha256, sasl_scram_sha512, sasl_oauth_bearer. - name: context.topic.name type: string description: The name of the topic. - name: record.headers type: object description: An associative array of header key value pairs. - name: record.value.validated type: boolean description: Indicates whether the record value was successfully validated. - name: record.value.content type: object description: The content of the record value. - name: record.value.schema type: object x-min-runtime-version: '1.2' description: |- Registry-supplied schema metadata for the record value. Populated when the value was validated by a Confluent schema registry. Fields: `id` (uint), `version` (uint, when returned by the registry), `format` ("avro"|"json"), and either `avro.{name, namespace}` or `json.{title, id}`. Sub-fields are absent when not applicable; use `has()` to test presence. **Requires a minimum runtime version of `1.2`**. x-speakeasy-param-computed: false - name: record.key.schema type: object x-min-runtime-version: '1.2' description: |- Same shape as `record.value.schema`, populated when the record key has schema_validation configured. **Requires a minimum runtime version of `1.2`**. x-speakeasy-param-computed: false parent_policy_id: description: 'The unique identifier of the parent schema validation policy, if any.' type: string format: uuid nullable: false required: - type title: Skip Record EventGatewayModifyHeaderAction: description: An action that modifies a header. discriminator: propertyName: op mapping: remove: '#/components/schemas/EventGatewayModifyHeaderRemoveAction' set: '#/components/schemas/EventGatewayModifyHeaderSetAction' oneOf: - $ref: '#/components/schemas/EventGatewayModifyHeaderRemoveAction' - $ref: '#/components/schemas/EventGatewayModifyHeaderSetAction' EventGatewayModifyHeaderRemoveAction: description: An action that removes a header by key. type: object properties: op: type: string const: remove key: description: The key of the header to remove. type: string required: - op - key EventGatewayModifyHeaderSetAction: description: An action that sets a header key and value. type: object properties: op: type: string const: set key: description: The key of the header to set. type: string value: description: The value of the header to set. type: string required: - op - key - value EventGatewayConsumeSchemaValidationPolicy: description: A policy that validates consume messages against a schema registry. type: object properties: type: description: The type name of the policy. type: string const: schema_validation maxLength: 255 minLength: 1 name: description: A unique user-defined name of the policy. type: string maxLength: 255 nullable: false x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A human-readable description of the policy. type: string default: '' maxLength: 512 enabled: description: Whether the policy is enabled. type: boolean default: true labels: $ref: '#/components/schemas/Labels' config: description: The configuration of the policy. type: object $ref: '#/components/schemas/EventGatewayConsumeSchemaValidationPolicyConfig' condition: description: A string containing the boolean expression that determines whether the policy is applied. type: string example: 'context.topic.name.endsWith("my_suffix") && record.headers["x-flag"] == "a-value"' default: '' maxLength: 1000 x-expression: type: boolean fields: - name: context.auth.principal.name type: string description: 'Name of authenticated principal. Username in case of PLAIN/SCRAM, `sub` claim in case of OAUTHBEARER.' - name: context.auth.principal.id type: string description: |- Kong Identity principal ID. Only populated when Kong Identity principal fetching is configured and succeeds. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.principal.metadata type: object description: |- Kong Identity principal metadata. Only populated when Kong Identity principal fetching is configured and succeeds. Values can be strings, numbers, booleans, arrays or nested JSON objects. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.type type: string description: | The matched authentication type from a virtual cluster: anonymous, sasl_plain, sasl_scram_sha256, sasl_scram_sha512, sasl_oauth_bearer. - name: context.topic.name type: string description: The name of the topic. - name: record.headers type: object description: An associative array of header key value pairs. required: - type - config title: Schema Validation EventGatewayConsumeSchemaValidationPolicyConfig: description: The configuration of the consume schema validation policy. discriminator: propertyName: type mapping: confluent_schema_registry: '#/components/schemas/EventGatewayConsumeSchemaValidationPolicySchemaRegistryConfig' json: '#/components/schemas/EventGatewayConsumeSchemaValidationPolicyJsonConfig' oneOf: - $ref: '#/components/schemas/EventGatewayConsumeSchemaValidationPolicySchemaRegistryConfig' - $ref: '#/components/schemas/EventGatewayConsumeSchemaValidationPolicyJsonConfig' EventGatewayConsumeSchemaValidationPolicyJsonConfig: description: The configuration of the consume schema validation policy when using JSON parsing without schema. type: object properties: schema_registry: $ref: '#/components/schemas/SchemaRegistryReference' failure_mode: $ref: '#/components/schemas/ConsumeFailureMode' validate_key: description: |- If true, validate the record key. **Requires a minimum runtime version of `1.2`**. type: boolean x-min-runtime-version: '1.2' x-speakeasy-param-computed: false validate_value: description: |- If true, validate the record value. **Requires a minimum runtime version of `1.2`**. type: boolean x-min-runtime-version: '1.2' x-speakeasy-param-computed: false key_validation_action: $ref: '#/components/schemas/ConsumeKeyValidationAction' value_validation_action: $ref: '#/components/schemas/ConsumeValueValidationAction' type: type: string const: json required: - type EventGatewayConsumeSchemaValidationPolicySchemaRegistryConfig: description: The configuration of the consume schema validation policy when using a schema registry. type: object properties: schema_registry: $ref: '#/components/schemas/SchemaRegistryReference' failure_mode: $ref: '#/components/schemas/ConsumeFailureMode' validate_key: description: |- If true, validate the record key. **Requires a minimum runtime version of `1.2`**. type: boolean x-min-runtime-version: '1.2' x-speakeasy-param-computed: false validate_value: description: |- If true, validate the record value. **Requires a minimum runtime version of `1.2`**. type: boolean x-min-runtime-version: '1.2' x-speakeasy-param-computed: false key_validation_action: $ref: '#/components/schemas/ConsumeKeyValidationAction' value_validation_action: $ref: '#/components/schemas/ConsumeValueValidationAction' type: type: string const: confluent_schema_registry required: - type EventGatewayProduceSchemaValidationPolicy: description: A policy that validates produce messages against a schema registry. type: object properties: type: description: The type name of the policy. type: string const: schema_validation maxLength: 255 minLength: 1 name: description: A unique user-defined name of the policy. type: string maxLength: 255 nullable: false x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A human-readable description of the policy. type: string default: '' maxLength: 512 enabled: description: Whether the policy is enabled. type: boolean default: true labels: $ref: '#/components/schemas/Labels' config: description: The configuration of the policy. type: object $ref: '#/components/schemas/EventGatewayProduceSchemaValidationPolicyConfig' condition: description: A string containing the boolean expression that determines whether the policy is applied. type: string example: 'context.topic.name.endsWith("my_suffix") && record.headers["x-flag"] == "a-value"' default: '' maxLength: 1000 x-expression: type: boolean fields: - name: context.auth.principal.name type: string description: 'Name of authenticated principal. Username in case of PLAIN/SCRAM, `sub` claim in case of OAUTHBEARER.' - name: context.auth.principal.id type: string description: |- Kong Identity principal ID. Only populated when Kong Identity principal fetching is configured and succeeds. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.principal.metadata type: object description: |- Kong Identity principal metadata. Only populated when Kong Identity principal fetching is configured and succeeds. Values can be strings, numbers, booleans, arrays or nested JSON objects. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.type type: string description: | The matched authentication type from a virtual cluster: anonymous, sasl_plain, sasl_scram_sha256, sasl_scram_sha512, sasl_oauth_bearer. - name: context.topic.name type: string description: The name of the topic. - name: record.headers type: object description: An associative array of header key value pairs. required: - type - config title: Schema Validation EventGatewayProduceSchemaValidationPolicyConfig: description: The configuration of the produce schema validation policy. discriminator: propertyName: type mapping: confluent_schema_registry: '#/components/schemas/EventGatewayProduceSchemaValidationPolicySchemaRegistryConfig' json: '#/components/schemas/EventGatewayProduceSchemaValidationPolicyJsonConfig' oneOf: - $ref: '#/components/schemas/EventGatewayProduceSchemaValidationPolicySchemaRegistryConfig' - $ref: '#/components/schemas/EventGatewayProduceSchemaValidationPolicyJsonConfig' EventGatewayProduceSchemaValidationPolicyJsonConfig: description: The configuration of the produce schema validation policy when using JSON parsing without schema. type: object properties: schema_registry: $ref: '#/components/schemas/SchemaRegistryReference' failure_mode: $ref: '#/components/schemas/ProduceFailureMode' validate_key: description: |- If true, validate the record key. **Requires a minimum runtime version of `1.2`**. type: boolean x-min-runtime-version: '1.2' x-speakeasy-param-computed: false validate_value: description: |- If true, validate the record value. **Requires a minimum runtime version of `1.2`**. type: boolean x-min-runtime-version: '1.2' x-speakeasy-param-computed: false key_validation_action: $ref: '#/components/schemas/ProduceKeyValidationAction' value_validation_action: $ref: '#/components/schemas/ProduceValueValidationAction' type: type: string const: json required: - type EventGatewayProduceSchemaValidationPolicySchemaRegistryConfig: description: The configuration of the produce schema validation policy when using a schema registry. type: object properties: schema_registry: $ref: '#/components/schemas/SchemaRegistryReference' failure_mode: $ref: '#/components/schemas/ProduceFailureMode' validate_key: description: |- If true, validate the record key. **Requires a minimum runtime version of `1.2`**. type: boolean x-min-runtime-version: '1.2' x-speakeasy-param-computed: false validate_value: description: |- If true, validate the record value. **Requires a minimum runtime version of `1.2`**. type: boolean x-min-runtime-version: '1.2' x-speakeasy-param-computed: false key_validation_action: $ref: '#/components/schemas/ProduceKeyValidationAction' value_validation_action: $ref: '#/components/schemas/ProduceValueValidationAction' type: type: string const: confluent_schema_registry required: - type EventGatewayACLsPolicy: description: Apply Kafka ACLs to virtual cluster traffic. type: object properties: type: description: The type name of the policy. type: string const: acls maxLength: 255 minLength: 1 name: description: A unique user-defined name of the policy. type: string maxLength: 255 nullable: false x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A human-readable description of the policy. type: string default: '' maxLength: 512 enabled: description: Whether the policy is enabled. type: boolean default: true labels: $ref: '#/components/schemas/Labels' config: description: The configuration of the policy. type: object $ref: '#/components/schemas/EventGatewayACLPolicyConfig' condition: description: A string containing the boolean expression that determines whether the policy is applied. type: string example: context.auth.principal.name == "this-user" default: '' maxLength: 1000 x-expression: type: boolean fields: - name: context.auth.principal.name type: string description: 'Name of authenticated principal. Username in case of PLAIN/SCRAM, `sub` claim in case of OAUTHBEARER.' - name: context.auth.principal.id type: string description: |- Kong Identity principal ID. Only populated when Kong Identity principal fetching is configured and succeeds. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.principal.metadata type: object description: |- Kong Identity principal metadata. Only populated when Kong Identity principal fetching is configured and succeeds. Values can be strings, numbers, booleans, arrays or nested JSON objects. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.type type: string description: | The matched authentication type from a virtual cluster: anonymous, sasl_plain, sasl_scram_sha256, sasl_scram_sha512, sasl_oauth_bearer. required: - type - config title: ACL EventGatewayACLPolicyConfig: description: Apply ACLs to virtual cluster traffic. type: object properties: rules: description: Every ACL rule in this list applies independently. type: array items: $ref: '#/components/schemas/EventGatewayACLRule' minItems: 1 required: - rules EventGatewayACLRule: description: A Kafka ACL rule to apply to virtual cluster traffic type: object properties: resource_type: description: This rule applies to access only for type of resource type: string enum: - topic - group - transactional_id - cluster x-speakeasy-unknown-values: allow action: description: How to handle the request if the rule matches type: string enum: - allow - deny x-speakeasy-unknown-values: allow operations: description: Types of Kafka operations to match against. Note that not every operation can apply to every resource type. type: array items: $ref: '#/components/schemas/EventGatewayACLOperation' resource_names: description: 'If any of these entries match, the resource name matches for this rule. A maximum of 50 entries are allowed.' type: array items: $ref: '#/components/schemas/EventGatewayACLResourceName' required: - resource_type - action - operations - resource_names EventGatewayACLOperation: description: An Event Gateway operation to match against in an ACL rule. type: object properties: name: type: string enum: - all - alter - alter_configs - create - delete - describe - describe_configs - idempotent_write - read - write x-speakeasy-unknown-values: allow required: - name EventGatewayACLResourceName: description: An Event Gateway resource name to match against in an ACL rule. type: object properties: match: description: | Currently supported are exact matches and globs. All `*` characters are interpreted as globs, i.e. they match zero or more of any character. type: string format: glob required: - match EventGatewayKeySource: description: | A key source that describes how to find a symmetric key for encryption or decryption. It can be an AWS KMS key source that uses a KMS to find a symmetric key, or a static key source that uses a static symmetric key provided as secrets. discriminator: propertyName: type mapping: aws: '#/components/schemas/EventGatewayAWSKeySource' static: '#/components/schemas/EventGatewayStaticKeySource' oneOf: - $ref: '#/components/schemas/EventGatewayAWSKeySource' - $ref: '#/components/schemas/EventGatewayStaticKeySource' EventGatewayAWSKeySource: description: | A key source that uses an AWS KMS to find a symmetric key. Load KMS credentials from the environment. See [aws docs](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/credproviders.html#credproviders-default-credentials-provider-chain) for more information about how credential retrieval. type: object properties: type: type: string const: aws additionalProperties: false required: - type EventGatewayStaticKeySource: description: | A key source that uses static symmetric keys. type: object properties: type: type: string const: static additionalProperties: false required: - type EncryptionFailureMode: description: | Describes how to handle failing encryption or decryption. Use `error` if the record should be rejected if encryption or decryption fails. Use `passthrough` to ignore encryption or decryption failure and continue proxying the record. type: string enum: - error - passthrough x-speakeasy-unknown-values: allow ProduceFailureMode: description: |- Describes how to handle a failure in a policy applied to produced records. * `reject` - rejects the record batch. * `passthrough` - passes the record silently to the backend cluster even though policy execution failed. * `mark` - passes the record to the backend cluster but marks it with a `kong/policy-failure-<id>` header whose value is the reason for the policy failure (truncated to 512 characters). **Requires a minimum runtime version of `1.2`**. type: string enum: - reject - passthrough - mark x-min-runtime-version: '1.2' x-speakeasy-param-computed: false x-speakeasy-unknown-values: allow ConsumeFailureMode: description: |- Describes how to handle a failure in a policy applied to consumed records. * `error` - the batch is not delivered to the client. Use sparingly: erroring on a batch causes clients to get stuck on the problematic offset and requires manual intervention to skip it. * `skip` - the record is not delivered to the client. * `passthrough` - passes the record to the client even though policy execution failed. * `mark` - passes the record to the client but marks it with a `kong/policy-failure-<id>` header whose value is the reason for the policy failure (truncated to 512 characters). **Requires a minimum runtime version of `1.2`**. type: string enum: - error - skip - passthrough - mark x-min-runtime-version: '1.2' x-speakeasy-param-computed: false x-speakeasy-unknown-values: allow EncryptionRecordPart: description: | * key - encrypt the record key * value - encrypt the record value type: string enum: - key - value x-speakeasy-unknown-values: allow DecryptionRecordPart: description: | * key - decrypt the record key * value - decrypt the record value type: string enum: - key - value x-speakeasy-unknown-values: allow EncryptionKey: description: | The key to use for encryption. discriminator: propertyName: type mapping: aws: '#/components/schemas/EncryptionKeyAWS' static: '#/components/schemas/EncryptionKeyStatic' oneOf: - $ref: '#/components/schemas/EncryptionKeyAWS' - $ref: '#/components/schemas/EncryptionKeyStatic' EncryptionKeyAWS: description: | The AWS KMS key to use for encryption. type: object properties: type: type: string const: aws arn: description: The AWS KMS key ARN. type: string maxLength: 2048 minLength: 10 pattern: '^arn:aws:kms:.+' example: type: aws arn: 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' required: - type - arn EncryptionKeyStatic: description: | A static encryption key. type: object properties: type: type: string const: static key: $ref: '#/components/schemas/EncryptionKeyStaticReference' required: - type - key EncryptionKeyStaticReference: description: | A static encryption key reference, either by ID or by value. $ref: '#/components/schemas/EncryptionKeyStaticReferenceById' EncryptionKeyStaticReferenceById: description: A static encryption key reference by ID. type: object properties: id: description: The ID of the static key defined in the key source. type: string format: uuid minLength: 1 required: - id ConsumeKeyValidationAction: description: | Deprecated. Use `failure_mode`. Defines a behavior when record key is not valid. * mark - marks a record with kong/server header and client ID value to help to identify the clients violating schema. * skip - skips delivering a record. type: string deprecated: true enum: - mark - skip x-speakeasy-unknown-values: allow ConsumeValueValidationAction: description: | Deprecated. Use `failure_mode`. Defines a behavior when record value is not valid. * mark - marks a record with kong/server header and client ID value to help to identify the clients violating schema. * skip - skips delivering a record. type: string deprecated: true enum: - mark - skip x-speakeasy-unknown-values: allow ProduceKeyValidationAction: description: | Defines a behavior when record key is not valid. * reject - rejects a batch for topic partition. Only available for produce. * mark - marks a record with kong/server header and client ID value to help to identify the clients violating schema. type: string enum: - reject - mark x-speakeasy-unknown-values: allow ProduceValueValidationAction: description: | Defines a behavior when record value is not valid. * reject - rejects a batch for topic partition. Only available for produce. * mark - marks a record with kong/server header and client ID value to help to identify the clients violating schema. type: string enum: - reject - mark x-speakeasy-unknown-values: allow EventGatewayDataPlaneCertificate: description: A dataplane certificate. type: object properties: id: description: The unique identifier of the certificate. type: string format: uuid certificate: description: JSON escaped string of the certificate. type: string name: description: The name to identify of the certificate. type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A description of the certificate. type: string default: null nullable: true x-speakeasy-param-computed: false created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' metadata: $ref: '#/components/schemas/CertificateMetadata' required: - id - certificate - created_at - updated_at CertificateMetadata: description: Metadata extracted from a certificate. type: object properties: issuer: description: The issuer of the certificate. type: string default: null nullable: true x-speakeasy-param-computed: false subject: description: The subject of the certificate. type: string default: null nullable: true x-speakeasy-param-computed: false key_usages: description: The key usages of the certificate. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false expiry: description: The expiry date of the certificate as a unix timestamp. type: integer format: int64 default: null nullable: true x-speakeasy-param-computed: false san_names: description: The Subject Alternative Names (SAN) of the certificate. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false dns_names: description: The DNS names in the certificate SAN. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false email_addresses: description: The email addresses in the certificate SAN. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false ip_addresses: description: The IP addresses in the certificate SAN. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false uris: description: The URIs in the certificate SAN. type: array items: type: string format: uri default: null nullable: true x-speakeasy-param-computed: false sha256_fingerprint: description: The SHA-256 fingerprint of the certificate. type: string default: null nullable: true x-speakeasy-param-computed: false VirtualClusterNamespace: description: | Namespace allows to implement multitenancy using a single backend cluster. It allows to either hide or enforce a static prefix on resources (topics, consumer group IDs, transaction IDs). type: object properties: mode: description: | * hide_prefix - the configured prefix is hidden from clients for topics and IDs when reading. Created resources are written with the prefix on the backend cluster. * enforce_prefix - the configured prefix remains visible to clients. Created resources must include the prefix or the request will fail. type: string enum: - hide_prefix - enforce_prefix x-speakeasy-unknown-values: allow prefix: description: | The namespace is differentiated by this chosen prefix. For example, if the prefix is set to "analytics_" the topic named "analytics_user_clicks" is available to the clients of the virtual cluster. Topics without the prefix will be ignored unless added via `additional.topics`. type: string minLength: 1 additional: $ref: '#/components/schemas/VirtualClusterNamespaceAdditionalProperties' required: - mode - prefix x-speakeasy-param-computed: false VirtualClusterNamespaceAdditionalProperties: type: object properties: topics: description: | Additional backend topics to expose even if they don't match the namespace prefix. The topics are not affected by the hide/enforce prefix mode. If the client tries to create a topic that matches this list, the request is rejected. type: array items: $ref: '#/components/schemas/VirtualClusterNamespaceTopicSelector' nullable: false consumer_groups: description: | Consumer group IDs to expose even if they don't start with the namespace prefix. type: array items: $ref: '#/components/schemas/VirtualClusterNamespaceIdSelector' nullable: false x-speakeasy-param-computed: false VirtualClusterTopicAlias: description: |- A topic alias maps an alias name to a namespace-visible topic name. Clients can produce to, consume from, and discover the topic under the alias name. The original topic name remains accessible. **Requires a minimum runtime version of `1.2`**. type: object properties: alias: description: The client-visible topic name. type: string minLength: 1 topic: description: The namespace-visible topic name this alias resolves to. type: string minLength: 1 condition: description: | CEL expression evaluated against the connection's auth context. If omitted or empty, the alias is active for all connections. type: string default: '' x-expression: type: boolean fields: - name: context.auth.principal.name type: string description: 'Name of authenticated principal. Username in case of PLAIN/SCRAM, `sub` claim in case of OAUTHBEARER.' - name: context.auth.principal.id type: string description: |- Kong Identity principal ID. Only populated when Kong Identity principal fetching is configured and succeeds. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.principal.metadata type: object description: |- Kong Identity principal metadata. Only populated when Kong Identity principal fetching is configured and succeeds. Values can be strings, numbers, booleans, arrays or nested JSON objects. **Requires a minimum runtime version of `1.2`**. x-min-runtime-version: '1.2' x-speakeasy-param-computed: false - name: context.auth.type type: string description: | The matched authentication type from a virtual cluster: anonymous, sasl_plain, sasl_scram_sha256, sasl_scram_sha512, sasl_oauth_bearer. - name: context.auth.token.claims type: object description: 'All claims from the JWT token. Only populated for sasl_oauth_bearer authentication. Claims can be strings, numbers, booleans, arrays or nested JSON objects.' conflict: $ref: '#/components/schemas/VirtualClusterTopicAliasConflict' required: - alias - topic x-min-runtime-version: '1.2' x-speakeasy-param-computed: false VirtualClusterTopicAliasConflict: description: | How to handle conflicts where an alias shadows a physical topic. * warn - activate the alias but log a warning and set the conflict metric to 1. * ignore - activate the alias silently. type: string default: warn enum: - warn - ignore x-enum-varnames: - VirtualClusterTopicAliasConflictWarn - VirtualClusterTopicAliasConflictIgnore x-speakeasy-unknown-values: allow VirtualClusterNamespaceTopicSelector: type: object discriminator: propertyName: type mapping: glob: '#/components/schemas/VirtualClusterNamespaceTopicSelectorGlob' exact_list: '#/components/schemas/VirtualClusterNamespaceTopicSelectorExactList' oneOf: - $ref: '#/components/schemas/VirtualClusterNamespaceTopicSelectorGlob' - $ref: '#/components/schemas/VirtualClusterNamespaceTopicSelectorExactList' required: - type VirtualClusterNamespaceTopicSelectorGlob: type: object properties: type: type: string const: glob glob: description: 'Expose any backend topic that matches this glob pattern (e.g., `operations_data_*`).' type: string format: glob minLength: 1 pattern: '^[A-Za-z0-9._?*-]+$' conflict: description: | How to inform the user about conflicts where multiple backend topics would map to the same virtual topic name. * warn - log in the Event Gateway logs. Additionally, it sets knep_namespace_topic_conflict to 1. * ignore - do not do anything. It does not cause knep_namespace_topic_conflict metric to be set to 1. type: string default: warn enum: - warn - ignore x-speakeasy-unknown-values: allow required: - type - glob VirtualClusterNamespaceTopicSelectorExactList: type: object properties: type: type: string const: exact_list exact_list: description: Explicit allow-list of backend topic names. type: array items: $ref: '#/components/schemas/NamespaceExactAllowListItem' default: null minItems: 1 nullable: true x-speakeasy-param-computed: false conflict: description: | How to inform the user about conflicts where multiple backend topics would map to the same virtual topic name. * warn - log in the Event Gateway logs. Additionally, it sets knep_namespace_topic_conflict to 1. * ignore - do not do anything. It does not cause knep_namespace_topic_conflict metric to be set to 1. type: string default: warn enum: - warn - ignore x-speakeasy-unknown-values: allow required: - type NamespaceExactAllowListItem: type: object properties: backend: type: string minLength: 1 required: - backend VirtualClusterNamespaceIdSelector: type: object discriminator: propertyName: type mapping: glob: '#/components/schemas/VirtualClusterNamespaceIdSelectorGlob' exact_list: '#/components/schemas/VirtualClusterNamespaceIdSelectorExactList' oneOf: - $ref: '#/components/schemas/VirtualClusterNamespaceIdSelectorGlob' - $ref: '#/components/schemas/VirtualClusterNamespaceIdSelectorExactList' required: - type VirtualClusterNamespaceIdSelectorGlob: type: object properties: type: type: string const: glob glob: description: 'Expose any id that matches this glob pattern (e.g., `my_id_*`).' type: string format: glob minLength: 1 pattern: '^[A-Za-z0-9._?*-]+$' required: - type - glob VirtualClusterNamespaceIdSelectorExactList: type: object properties: type: type: string const: exact_list exact_list: type: array items: type: object required: - value properties: value: type: string minLength: 1 default: null minItems: 1 nullable: true x-speakeasy-param-computed: false required: - type EventGatewayStaticKey: description: | A symmetric key with its secret value. type: object properties: name: description: The unique name of the static key. type: string maxLength: 255 minLength: 1 x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A human-readable description of the static key. type: string default: '' maxLength: 512 labels: $ref: '#/components/schemas/Labels' id: description: The unique identifier of the static key. type: string format: uuid value: $ref: '#/components/schemas/GatewaySecret' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' required: - name - id - created_at - updated_at EventGatewayStaticKeyCreate: description: | A symmetric key with its secret value for creation. type: object properties: name: description: The unique name of the static key. type: string maxLength: 255 minLength: 1 x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A human-readable description of the static key. type: string default: '' maxLength: 512 labels: $ref: '#/components/schemas/Labels' value: $ref: '#/components/schemas/GatewaySecret' required: - name - value GatewayName: description: The name of the Gateway. type: string maxLength: 255 minLength: 1 x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' GatewayDescription: description: A human-readable description of the Gateway. type: string maxLength: 512 MinRuntimeVersion: description: | The minimum runtime version supported by the API. This is the lowest version of the data plane release that can be used with the entity model. When not specified, the minimum runtime version will be pinned to the latest available release. type: string example: '1.1' pattern: ^\d+\.\d+$ CreateGatewayRequest: description: The request schema for the create gateway request. type: object properties: name: $ref: '#/components/schemas/GatewayName' description: $ref: '#/components/schemas/GatewayDescription' min_runtime_version: $ref: '#/components/schemas/MinRuntimeVersion' labels: $ref: '#/components/schemas/Labels' additionalProperties: false required: - name title: CreateGatewayRequest MinRuntimeVersionUpdate: description: | The minimum runtime version supported by the API. This is the lowest version of the data plane release that can be used with the entity model. When not specified, the minimum runtime version will not be updated. type: string example: '1.1' pattern: ^\d+\.\d+$ UpdateGatewayRequest: description: The request schema for the update gateway request. type: object properties: name: $ref: '#/components/schemas/GatewayName' description: $ref: '#/components/schemas/GatewayDescription' min_runtime_version: $ref: '#/components/schemas/MinRuntimeVersionUpdate' labels: $ref: '#/components/schemas/Labels' additionalProperties: false title: UpdateGatewayRequest GatewaySecretReferenceOrLiteral: description: | A literal value or a reference to an existing secret as a template string expression. The value is stored and returned by the API as-is, not treated as sensitive information. type: string minLength: 1 x-expression: type: string fields: - vault GatewaySecret: description: | A sensitive value containing the secret or a reference to a secret as a template string expression. If the value is provided as plain text, it is encrypted at rest and omitted from API responses. If provided as an expression, the expression itself is stored and returned by the API. type: string example: '${vault.env[''MY_ENV_VAR'']}' minLength: 1 x-expression: type: string fields: - vault x-sensitive: true ResponseType: description: OAuth 2.0 response type type: string enum: - none - token - code - id_token x-speakeasy-unknown-values: allow ResponseTypes: description: List of OAuth 2.0 response types type: array items: $ref: '#/components/schemas/ResponseType' nullable: false GrantType: description: OAuth 2.0 grant type type: string enum: - implicit - client_credentials x-speakeasy-unknown-values: allow GrantTypes: description: List of OAuth 2.0 grant types type: array items: $ref: '#/components/schemas/GrantType' nullable: false uniqueItems: true RedirectURIs: description: 'The URIs that the client is allowed to redirect to after authentication in interactive flows. All redirect URIs must be absolute URIs, be secure (HTTPS), and must not include a fragment component.' type: array items: type: string format: uri nullable: false LoginURI: description: The URI of the login page where the user is redirected to authenticate in interactive flows. The login page must be secure (HTTPS). type: string format: uri default: null nullable: true x-speakeasy-param-computed: false TokenDuration: description: 'The duration of the minted token is valid for, in seconds' type: integer default: 300 maximum: 2592000 minimum: 60 ClientAllowAllScopes: description: Specifies whether the client is allowed to request all scopes type: boolean default: false ClientAllowScopes: description: Specifies the scopes IDs that the client is allowed to request type: array items: type: string format: uuid nullable: false uniqueItems: true ClientId: description: The OAuth 2.0 client ID type: string example: kYa9iQFU5xPDSIUH9z1z maxLength: 36 minLength: 1 pattern: '[-_\w]+' readOnly: true x-speakeasy-param-suppress-computed-diff: true AuthServerName: description: The name of the auth server type: string minLength: 1 AuthServerDescription: description: The description of the auth server type: string Audience: description: The recipients that the tokens are intended for. This becomes the 'aud' claim in an access token type: string minLength: 1 UpdateAlgorithm: description: Algorithm used in the key signing process type: string enum: - RS256 - RS384 - RS512 - PS256 - PS384 - PS512 x-speakeasy-unknown-values: allow Algorithm: description: Algorithm used in the key signing process type: string default: RS256 enum: - RS256 - RS384 - RS512 - PS256 - PS384 - PS512 x-speakeasy-unknown-values: allow Issuer: description: The complete URL for the custom authorization server. This becomes the 'iss' claim in an access token. type: string TokenEndpointAuthMethod: description: Requested authentication method for OAuth 2.0 endpoints. type: string default: client_secret_post enum: - client_secret_post - none x-speakeasy-unknown-values: allow TrustedOrigins: description: A list or trusted origins to apply the CORS header on for the auth server type: array items: $ref: '#/components/schemas/TrustedOrigin' maxLength: 16 uniqueItems: true TrustedOrigin: description: A trusted origin for the auth server type: string format: uri example: 'https://example.com' AuthServer: type: object properties: id: description: The ID of the auth server type: string format: uuid name: $ref: '#/components/schemas/AuthServerName' description: $ref: '#/components/schemas/AuthServerDescription' audience: $ref: '#/components/schemas/Audience' signing_algorithm: $ref: '#/components/schemas/Algorithm' issuer: $ref: '#/components/schemas/Issuer' metadata_uri: description: The URI of the metadata document for the auth server type: string format: uri jwks_uri: description: The URI of the JWKS endpoint for the auth server type: string format: uri readOnly: true x-speakeasy-param-suppress-computed-diff: true labels: $ref: '#/components/schemas/Labels' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' trusted_origins: $ref: '#/components/schemas/TrustedOrigins' required: - id - name - description - audience - signing_algorithm - issuer - metadata_uri - labels - created_at - updated_at ClaimName: description: The name of the claim type: string minLength: 1 ClaimValue: description: Specifies the value of the claim. It may contain a static value or a dynamic (templated) value. Static values which are valid JSON will result in a JSON object in the token claims. type: string minLength: 1 UpdateClaimIncludeInToken: description: 'Specifies whether to include claim in the token. If the value is set to ''false'' for a claim, the client instead uses the access token to get claims from the ''/userinfo'' endpoint.' type: boolean ClaimIncludeInToken: description: 'Specifies whether to include claim in the token. If the value is set to ''false'' for a claim, the client instead uses the access token to get claims from the ''/userinfo'' endpoint.' type: boolean default: false UpdateClaimIncludeInAllScopes: description: 'Specifies whether to include the claim in all scopes. If the value is set to ''false'' for a claim, the claim is only included in the scopes that explicitly list it.' type: boolean ClaimIncludeInAllScopes: description: 'Specifies whether to include the claim in all scopes. If the value is set to ''false'' for a claim, the claim is only included in the scopes that explicitly list it.' type: boolean default: false ClaimIncludeInScopes: description: Specifies the scopes IDs in which the claim is included type: array items: type: string format: uuid nullable: false UpdateClaimEnabled: description: 'Specifies whether the claim is enabled. If the claim is not enabled, it will not be included in the token or the ''/userinfo'' endpoint.' type: boolean ClaimEnabled: description: 'Specifies whether the claim is enabled. If the claim is not enabled, it will not be included in the token or the ''/userinfo'' endpoint.' type: boolean default: true Claim: type: object properties: id: description: The ID of the claim type: string format: uuid name: $ref: '#/components/schemas/ClaimName' value: $ref: '#/components/schemas/ClaimValue' include_in_token: $ref: '#/components/schemas/ClaimIncludeInToken' include_in_all_scopes: $ref: '#/components/schemas/ClaimIncludeInAllScopes' include_in_scopes: $ref: '#/components/schemas/ClaimIncludeInScopes' enabled: $ref: '#/components/schemas/ClaimEnabled' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' required: - id - name - value - include_in_token - include_in_all_scopes - include_in_scopes - enabled - created_at - updated_at ScopeName: description: The name of the scope type: string minLength: 1 ScopeDescription: description: Description of the scope type: string UpdateScopeDefault: description: 'Specifies whether the scope is included by default in access tokens without being explicitly requested by the client. If the scope is not allowed by the client, it will not be included in the access token.' type: boolean ScopeDefault: description: 'Specifies whether the scope is included by default in access tokens without being explicitly requested by the client. If the scope is not allowed by the client, it will not be included in the access token.' type: boolean default: false UpdateScopeIncludeInMetadata: description: Specifies whether to include the scope in the metadata document type: boolean ScopeIncludeInMetadata: description: Specifies whether to include the scope in the metadata document type: boolean default: false UpdateScopeEnabled: description: 'Specifies whether the scope is enabled. If the scope is not enabled, it cannot be requested by clients and will not be included in the access token.' type: boolean ScopeEnabled: description: 'Specifies whether the scope is enabled. If the scope is not enabled, it cannot be requested by clients and will not be included in the access token.' type: boolean default: true Scope: type: object properties: id: description: The ID of the scope type: string format: uuid name: $ref: '#/components/schemas/ScopeName' description: $ref: '#/components/schemas/ScopeDescription' default: $ref: '#/components/schemas/ScopeDefault' include_in_metadata: $ref: '#/components/schemas/ScopeIncludeInMetadata' enabled: $ref: '#/components/schemas/ScopeEnabled' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' required: - id - name - description - default - include_in_metadata - enabled - created_at - updated_at ClientName: description: The name of the client type: string minLength: 1 Client: type: object properties: id: $ref: '#/components/schemas/ClientId' name: $ref: '#/components/schemas/ClientName' grant_types: $ref: '#/components/schemas/GrantTypes' redirect_uris: $ref: '#/components/schemas/RedirectURIs' login_uri: $ref: '#/components/schemas/LoginURI' access_token_duration: $ref: '#/components/schemas/TokenDuration' id_token_duration: $ref: '#/components/schemas/TokenDuration' allow_all_scopes: $ref: '#/components/schemas/ClientAllowAllScopes' allow_scopes: $ref: '#/components/schemas/ClientAllowScopes' labels: $ref: '#/components/schemas/Labels' response_types: $ref: '#/components/schemas/ResponseTypes' token_endpoint_auth_method: $ref: '#/components/schemas/TokenEndpointAuthMethod' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' required: - id - name - grant_types - redirect_uris - allow_all_scopes - allow_scopes - access_token_duration - id_token_duration - labels - response_types - created_at - updated_at CreatedClient: allOf: - $ref: '#/components/schemas/Client' - type: object properties: client_secret: description: The OAuth 2.0 client secret type: string example: YAzsyUlNZ5gNGeKS9H3VAdxVPzhPo4ae x-speakeasy-param-computed: true DataPlaneClientCertificate: x-speakeasy-entity: GatewayDataPlaneClientCertificate type: object properties: id: description: Unique ID of the certificate entity. type: string created_at: description: Date certificate was created. type: integer updated_at: description: Date certificate was last updated. type: integer cert: description: JSON escaped string of the certificate. type: string default: null nullable: true x-speakeasy-param-computed: false title: description: Title of the certificate. type: string default: null nullable: true x-speakeasy-param-computed: false ConfigStore: type: object properties: id: description: The Config Store ID. type: string format: uuid example: b9e81174-b5bb-4638-a3c3-8afe61a0abf8 readOnly: true x-speakeasy-param-suppress-computed-diff: true name: description: The name of the Config Store type: string example: My Name default: null nullable: true x-speakeasy-param-computed: false created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' CreateConfigStore: description: The request schema to create a Config Store. type: object properties: name: type: string example: Config Store default: null maxLength: 100 minLength: 1 nullable: true x-speakeasy-param-computed: false additionalProperties: false title: Create Config Store Request UpdateConfigStore: description: The request schema to update a Config Store. type: object properties: name: type: string example: Config Store default: null maxLength: 100 minLength: 1 nullable: true x-speakeasy-param-computed: false additionalProperties: false title: Update Config Store Request ConfigStoreSecret: type: object properties: key: type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-force-new: true value: type: string default: null nullable: true writeOnly: true x-sensitive: true x-speakeasy-param-computed: false x-speakeasy-param-sensitive: true created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' CreateConfigStoreSecret: type: object properties: key: type: string maxLength: 512 minLength: 1 x-speakeasy-param-force-new: true value: type: string maxLength: 5120 minLength: 1 writeOnly: true x-sensitive: true x-speakeasy-param-sensitive: true required: - key - value UpdateConfigStoreSecret: type: object properties: value: type: string maxLength: 5120 minLength: 1 writeOnly: true x-sensitive: true x-speakeasy-param-sensitive: true required: - value ACL: x-speakeasy-entity: GatewayACL type: object properties: consumer: type: object nullable: true properties: id: type: string x-foreign: true x-speakeasy-terraform-ignore: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true group: type: string id: description: A string representing a UUID (universally unique identifier). type: string nullable: true tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false example: consumer: id: 84a73fb8-50fc-44a7-a4d5-aa17728ee83f group: foo id: b1f34145-0343-41a4-9602-4c69dec2f269 additionalProperties: false required: - group ACLPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/ACLPluginConfig' ACLPluginConfig: x-speakeasy-entity: GatewayPluginACL properties: config: type: object default: null nullable: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: false name: const: acl 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false ACLWithoutParents: x-speakeasy-entity: GatewayACL type: object properties: consumer: type: object nullable: true properties: id: type: string x-foreign: true x-speakeasy-terraform-ignore: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true group: type: string id: description: A string representing a UUID (universally unique identifier). type: string nullable: true tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false example: group: foo id: b1f34145-0343-41a4-9602-4c69dec2f269 additionalProperties: false required: - group AcePlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AcePluginConfig' AcePluginConfig: x-speakeasy-entity: GatewayPluginAce properties: config: type: object default: null nullable: true 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`. When set, the plugin will skip ACE processing for requests that are already authenticated by other plugins with higher priority.' type: string default: null nullable: true x-speakeasy-param-computed: false match_policy: description: 'Determines how the ACE plugin will behave when a request doesn''t match an existing operation from an API or API package in Dev Portal. The `required` setting requires every incoming request to match a defined operation. If a request doesn''t match, ACE rejects the request outright with a 404. The `if_present` setting makes the ACE plugin only engage with a request when it matches an operation, allowing a request to still be processed by other plugins with a lower priority than ACE.' type: string default: if_present enum: - if_present - required x-speakeasy-unknown-values: allow rate_limiting: type: object default: null nullable: true properties: redis: type: object default: null nullable: true properties: cloud_authentication: description: Cloud auth related configs for connecting to a Cloud Provider's Redis instance. type: object default: null nullable: true properties: auth_provider: description: Auth providers to be used to authenticate to a Cloud Provider's Redis instance. type: string enum: - aws - azure - gcp x-referenceable: true x-speakeasy-unknown-values: allow aws_access_key_id: description: AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_is_serverless: description: This flag specifies whether the cluster is serverless when auth_provider is set to `aws`. type: boolean default: true aws_region: description: The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false 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 x-referenceable: true 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 default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: string default: '6379' maximum: 65535 minimum: 0 x-referenceable: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false sentinel_password: description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false server_name: description: A string representing an SNI (server name indication) value for TLS. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-transform-from-api: jq: | if has("port") then .port |= if type == "number" then tostring else . end else . end x-speakeasy-transform-to-api: jq: | if has("port") then if (.port | type) == "string" and (.port | test("^[0-9]+$")) then .port |= tonumber else . end else . end sync_rate: description: 'How often to sync counter data to the central data store. A value of 0 results in synchronous behavior (counter synchronization happens in each request''s context and contributes directly to the latency of the request). A value greater than 0 results in asynchronous behavior and specifies the interval (in seconds) for synchronizing counters. The minimum allowed interval is 0.02 seconds (20ms). If omitted, the plugin ignores sync behavior entirely and only stores counters in node memory.' type: number default: null maximum: 3600 minimum: 0 nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-param-computed: false name: const: ace protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false x-supported-partials: - name: redis-ee paths: - config.rate_limiting.redis AcmePlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AcmePluginConfig' AcmePluginConfig: x-speakeasy-entity: GatewayPluginAcme properties: config: type: object properties: account_email: description: The account identifier. Can be reused in a different plugin instance. type: string x-encrypted: true x-referenceable: true account_key: description: The private key associated with the account. type: object default: null nullable: true properties: key_id: description: The Key ID. type: string x-encrypted: true key_set: description: The name of the key set to associate the Key ID with. type: string default: null nullable: true x-encrypted: true x-speakeasy-param-computed: false required: - key_id x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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: type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 x-speakeasy-unknown-values: allow storage_config: type: object default: null nullable: true properties: consul: type: object default: null nullable: true properties: host: description: 'A string representing a host name, such as example.com.' type: string default: null nullable: true x-speakeasy-param-computed: false https: description: Boolean representation of https. type: boolean default: false kv_path: description: KV prefix path. type: string default: null nullable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer default: null maximum: 65535 minimum: 0 nullable: true x-speakeasy-param-computed: false timeout: description: Timeout in milliseconds. type: number default: null nullable: true x-speakeasy-param-computed: false token: description: Consul ACL token. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false kong: type: object default: null additionalProperties: true nullable: true x-speakeasy-param-computed: false redis: type: object default: null nullable: true properties: cloud_authentication: description: Cloud auth related configs for connecting to a Cloud Provider's Redis instance. type: object default: null nullable: true properties: auth_provider: description: Auth providers to be used to authenticate to a Cloud Provider's Redis instance. type: string enum: - aws - azure - gcp x-referenceable: true x-speakeasy-unknown-values: allow aws_access_key_id: description: AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_is_serverless: description: This flag specifies whether the cluster is serverless when auth_provider is set to `aws`. type: boolean default: true aws_region: description: The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false 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 default: null nullable: true 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 x-speakeasy-param-computed: false host: description: 'A string representing a host name, such as example.com.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false password: description: 'Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: string default: '6379' maximum: 65535 minimum: 0 x-referenceable: true server_name: description: A string representing an SNI (server name indication) value for TLS. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-transform-from-api: jq: | if has("port") then .port |= if type == "number" then tostring else . end else . end x-speakeasy-transform-to-api: jq: | if has("port") then if (.port | type) == "string" and (.port | test("^[0-9]+$")) then .port |= tonumber else . end else . end shm: type: object default: null nullable: true properties: shm_name: description: Name of shared memory zone used for Kong API gateway storage type: string default: kong x-speakeasy-param-computed: false vault: type: object default: null nullable: true properties: auth_method: description: 'Auth Method, default to token, can be ''token'' or ''kubernetes''.' type: string default: token enum: - kubernetes - token x-speakeasy-unknown-values: allow auth_path: description: Vault's authentication path to use. type: string default: null nullable: true x-speakeasy-param-computed: false auth_role: description: The role to try and assign. type: string default: null nullable: true x-speakeasy-param-computed: false host: description: 'A string representing a host name, such as example.com.' type: string default: null nullable: true x-speakeasy-param-computed: false https: description: Boolean representation of https. type: boolean default: false jwt_path: description: The path to the JWT. type: string default: null nullable: true x-speakeasy-param-computed: false kv_path: description: KV prefix path. type: string default: null nullable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer default: null maximum: 65535 minimum: 0 nullable: true x-speakeasy-param-computed: false timeout: description: Timeout in milliseconds. type: number default: null nullable: true x-speakeasy-param-computed: false tls_server_name: description: 'SNI used in request, default to host if omitted.' type: string default: null nullable: true x-speakeasy-param-computed: false tls_verify: description: Turn on TLS verification. type: boolean default: true token: description: Consul ACL token. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-param-computed: false 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 required: - account_email name: const: acme protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set default: - grpc - grpcs - http - https required: - config x-supported-partials: - name: redis-ce paths: - config.storage_config.redis AiA2aProxyPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiA2aProxyPluginConfig' AiA2aProxyPluginConfig: x-speakeasy-entity: GatewayPluginAiA2aProxy properties: config: type: object default: null nullable: true properties: logging: type: object properties: log_payloads: description: 'If enabled, logs request/response bodies to Kong log plugin(s) output. Requires log_statistics to be enabled.' type: boolean default: false log_statistics: description: 'If enabled, adds A2A metrics to Kong log plugin(s) output.' type: boolean default: false max_payload_size: description: Maximum size in bytes for logged request/response payloads. Payloads exceeding this size will be truncated. type: integer default: 1048576 x-speakeasy-param-computed: true max_request_body_size: description: Maximum size of request body to parse for A2A metadata. Set to 0 for unlimited. type: integer default: 1048576 x-speakeasy-param-computed: false name: const: ai-a2a-proxy protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false AiAwsGuardrailsPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiAwsGuardrailsPluginConfig' AiAwsGuardrailsPluginConfig: x-speakeasy-entity: GatewayPluginAiAwsGuardrails properties: config: type: object properties: allow_masking: description: Allow to masking the request/response instead of blocking it. Streaming will be disabled if this is enabled. type: boolean default: false aws_access_key_id: description: The AWS access key ID to use for authentication type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_assume_role_arn: description: The target AWS IAM role ARN used to access the guardrails service type: string default: null nullable: true x-speakeasy-param-computed: false aws_region: description: The AWS region to use for the Bedrock API type: string aws_role_session_name: description: The identifier of the assumed role session type: string default: null nullable: true x-speakeasy-param-computed: false aws_secret_access_key: description: The AWS secret access key to use for authentication type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_sts_endpoint_url: description: Override the STS endpoint URL when assuming a different role type: string default: null nullable: true x-speakeasy-param-computed: false guarding_mode: description: The guardrail mode to use for the request type: string default: INPUT enum: - BOTH - INPUT - OUTPUT x-speakeasy-unknown-values: allow guardrails_id: description: The guardrail identifier used in the request to apply the guardrail. type: string guardrails_version: description: 'The guardrail version used in the request to apply the guardrail. Note that the value of this field must match the pattern `(([1-9][0-9]{0,7})|(DRAFT))` according to the AWS documentation https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ApplyGuardrail.html#API_runtime_ApplyGuardrail_RequestSyntax.' type: string log_blocked_content: description: Whether to log prompts and responses that are blocked by the guardrail. type: boolean default: false response_buffer_size: description: The amount of bytes receiving from upstream to be buffered before sending to the guardrails service. This only applies to the response content guard. type: number default: 100 ssl_verify: description: Verify TLS certificate when connecting to the bedrock service. type: boolean default: false stop_on_error: description: Stop processing if an error occurs type: boolean default: true text_source: description: Select where to pick the 'text' for the Content Guard Services request. type: string default: concatenate_all_content enum: - concatenate_all_content - concatenate_user_content x-speakeasy-unknown-values: allow timeout: description: Connection timeout with the bedrock service type: number default: 10000 required: - aws_region - guardrails_id - guardrails_version 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: ai-aws-guardrails protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config AiAzureContentSafetyPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiAzureContentSafetyPluginConfig' AiAzureContentSafetyPluginConfig: x-speakeasy-entity: GatewayPluginAiAzureContentSafety 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 default: null nullable: true x-speakeasy-param-computed: false azure_client_secret: description: 'If `azure_use_managed_identity` is true, set the client secret if required.' type: string default: null nullable: true x-encrypted: true x-speakeasy-param-computed: false azure_tenant_id: description: 'If `azure_use_managed_identity` is true, set the tenant ID if required.' type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false content_safety_key: description: 'If `azure_use_managed_identity` is true, set the API key to call Content Safety.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false content_safety_url: description: 'Full URL, inc protocol, of the Azure Content Safety instance.' type: string x-referenceable: true guarding_mode: description: The guard mode to use for the request type: string default: INPUT enum: - BOTH - INPUT - OUTPUT x-speakeasy-unknown-values: allow halt_on_blocklist_hit: description: Tells Azure to reject the request if any blocklist filter is hit. type: boolean default: true log_blocked_content: description: Whether to log prompts and responses that are blocked by the guardrail. type: boolean default: false 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 x-speakeasy-unknown-values: allow response_buffer_size: description: The amount of bytes receiving from upstream to be buffered before sending to the guardrails service. This only applies to the response content guard. type: number default: 100 reveal_failure_reason: description: 'Set true to tell the caller why their request was rejected, if so.' type: boolean default: true ssl_verify: description: Whether to verify the certificate presented by the Azure Content Safety service when using HTTPS. type: boolean default: false stop_on_error: description: Stop processing if an error occurs 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 x-speakeasy-unknown-values: allow required: - content_safety_url name: const: ai-azure-content-safety protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config AiCustomGuardrailPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiCustomGuardrailPluginConfig' AiCustomGuardrailPluginConfig: x-speakeasy-entity: GatewayPluginAiCustomGuardrail properties: config: type: object properties: allow_masking: description: Allow to masking the request/response instead of blocking it. Streaming will be disabled if this is enabled. type: boolean default: false custom_metrics: description: A list of custom metrics to be recorded. type: object default: null additionalProperties: type: string nullable: true x-speakeasy-param-computed: false functions: description: Custom functions to be used in expression templates. type: object default: null additionalProperties: type: string x-lua-required: true nullable: true x-speakeasy-param-computed: false guarding_mode: description: The guardrail mode to use for the request type: string default: INPUT enum: - BOTH - INPUT - OUTPUT x-speakeasy-unknown-values: allow metrics: type: object properties: block_detail: description: Metric to indicate the detail for blocking the input. type: string default: null nullable: true x-speakeasy-param-computed: false block_reason: description: Metric to indicate the reason for blocking the input. type: string default: null nullable: true x-speakeasy-param-computed: false masked: description: Metric to indicate whether the input was masked. type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: true params: description: 'Parameters to be used in the guardrail service request. Keys are the parameter name and values can be either Lua expressions in the form `$(some_lua_expression)`or string. For expression, it will be evaluated as the value for the corresponding key. For string, it will be attempted to be parsed as string in JSON format, otherwise it will be used as is.' type: object default: null additionalProperties: type: string x-lua-required: true x-referenceable: true nullable: true x-speakeasy-param-computed: false request: description: Configuration specific to guardrail request. type: object properties: auth: description: Authentication configuration for HTTP request. type: object properties: location: description: 'Specify whether the ''param_name'' and ''param_value'' options go in a query string, or the POST form/JSON body.' type: string default: header enum: - body - header - query x-speakeasy-unknown-values: allow name: description: Specify name here. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false value: description: Specify the full token value for 'name'. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: true body: description: 'A map used to evaluate a JSON object. Keys are the field names in the new object, and values can be either Lua expressions in the form `$(some_lua_expression)`or string. For expression, it will be evaluated as the value for the corresponding key. For string, it will be decoded as string in JSON format or be used as is.' type: object default: null additionalProperties: type: string x-referenceable: true nullable: true x-speakeasy-param-computed: false headers: description: 'A map used to evaluate a JSON object. Keys are the field names in the new object, and values can be either Lua expressions in the form `$(some_lua_expression)`or string. For expression, it will be evaluated as the value for the corresponding key. For string, it will be decoded as string in JSON format or be used as is.' type: object default: null additionalProperties: type: string x-referenceable: true nullable: true x-speakeasy-param-computed: false queries: description: 'A map used to evaluate a JSON object. Keys are the field names in the new object, and values can be either Lua expressions in the form `$(some_lua_expression)`or string. For expression, it will be evaluated as the value for the corresponding key. For string, it will be decoded as string in JSON format or be used as is.' type: object default: null additionalProperties: type: string x-referenceable: true nullable: true x-speakeasy-param-computed: false url: description: the url string or a template to generate one type: string required: - url response: description: Configuration specific to parse guardrail response. type: object properties: block: description: template or string to evaluate block field type: string block_message: description: template or string to evaluate block_message field type: string required: - block - block_message response_buffer_size: description: The amount of bytes receiving from upstream to be buffered before sending to the guardrail service. This only applies to the response content guard. type: number default: 100 ssl_verify: description: Whether to verify SSL certificate when Kong makes request to guardrail service. type: boolean default: false stop_on_error: description: Stop processing if an error occurs. type: boolean default: true text_source: description: Select where to pick the 'text' for the guardrail service request. type: string default: last_message enum: - concatenate_all_content - concatenate_user_content - last_message x-speakeasy-unknown-values: allow timeout: description: Connection timeout with the guardrail service type: number default: 10000 required: - request - response 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: ai-custom-guardrail protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config AiGcpModelArmorPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiGcpModelArmorPluginConfig' AiGcpModelArmorPluginConfig: x-speakeasy-entity: GatewayPluginAiGcpModelArmor properties: config: type: object properties: enable_multi_language_detection: description: Enables multi-language detection mode. Must be used with 'source_language'. type: boolean default: false gcp_metadata_url: description: 'Custom metadata URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If null, Kong will use the default Google metadata endpoint.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false gcp_oauth_token_url: description: 'Custom OAuth token URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If null, Kong will use the default Google OAuth token endpoint.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: 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` or from the instance/container metadata service.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false gcp_use_service_account: description: Use service account auth for GCP-based providers and models. type: boolean default: false guarding_mode: description: The guardrail mode to use for the request type: string default: INPUT enum: - BOTH - INPUT - OUTPUT x-speakeasy-unknown-values: allow location_id: description: GCP Location ID for the GCP Model Armor subscription. type: string log_blocked_content: description: Whether to log prompts and responses that are blocked by the guardrail. type: boolean default: false project_id: description: GCP Project ID for the GCP Model Armor subscription. type: string request_failure_message: description: The message to return when a failure occurs on the request phase. type: string default: Request was filtered by GCP Model Armor response_buffer_size: description: The amount of bytes receiving from upstream to be buffered before sending to the model armor service. This only applies to the response content guard. type: number default: 100 response_failure_message: description: The message to return when a failure occurs on the response phase. type: string default: Response was filtered by GCP Model Armor reveal_failure_categories: description: Whether to reveal failure categories in the response to the caller. type: boolean default: false source_language: description: Source language (ISO code) to use when 'enable_multi_language_detection' is enabled. type: string default: null nullable: true x-speakeasy-param-computed: false stop_on_error: description: Stop processing if an error occurs. type: boolean default: true template_id: description: GCP Model Armor Template ID to enforce. type: string text_source: description: Select where to pick the 'text' for the GCP Model Armor Services request. type: string default: last_message enum: - concatenate_all_content - concatenate_user_content - last_message x-speakeasy-unknown-values: allow timeout: description: Connection timeout with the GCP Model Armor service type: number default: 10000 required: - location_id - project_id - template_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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: ai-gcp-model-armor protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config AiLakeraGuardPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiLakeraGuardPluginConfig' AiLakeraGuardPluginConfig: x-speakeasy-entity: GatewayPluginAiLakeraGuard properties: config: type: object default: null nullable: true properties: api_key: description: API key for the Lakera Guard subscription. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false guarding_mode: description: The guardrail mode to use for the request type: string default: INPUT enum: - BOTH - INPUT - OUTPUT x-speakeasy-unknown-values: allow lakera_service_url: description: The guard-operation URL of the Lakera Guard service. Defaults to the SaaS /v2/guard endpoint. It can be set to a locally hosted instance of Lakera Guard. type: string default: 'https://api.lakera.ai/v2/guard' x-referenceable: true log_blocked_content: description: Whether to log prompts and responses that are blocked by the guardrail. type: boolean default: false project_id: description: 'Project ID to apply filters from. If null, it will use the subscription''s default project.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false request_failure_message: description: The message to return when a failure occurs on the request phase. type: string default: Request was filtered by Lakera Guard response_buffer_size: description: The amount of bytes receiving from upstream to be buffered before sending to the Lakera Guard service. This only applies to the response content guard. type: number default: 100 response_failure_message: description: The message to return when a failure occurs on the response phase. type: string default: Response was filtered by Lakera Guard reveal_failure_categories: description: 'Whether to reveal failure categories in the response to the caller. They will always be written to the gateway logs, even if set to false.' type: boolean default: false stop_on_error: description: Stop processing if an error occurs. type: boolean default: true text_source: description: Select where to pick the 'text' for the Lakera Guard request (when text/generation is selected). type: string default: concatenate_all_content enum: - concatenate_all_content - concatenate_user_content - last_message x-speakeasy-unknown-values: allow timeout: description: Connection timeout with the Lakera Guard service type: number default: 10000 verify_ssl: description: Whether to verify the SSL certificate of the configured Lakera Guard endpoint. type: boolean default: true x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: ai-lakera-guard protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false AiLlmAsJudgePlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiLlmAsJudgePluginConfig' AiLlmAsJudgePluginConfig: x-speakeasy-entity: GatewayPluginAiLlmAsJudge properties: config: type: object properties: http_proxy_host: description: 'A string representing a host name, such as example.com.' type: string default: null nullable: true x-speakeasy-param-computed: false http_proxy_port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer default: null maximum: 65535 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false https_proxy_port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer default: null maximum: 65535 minimum: 0 nullable: true x-speakeasy-param-computed: false https_verify: description: Verify the TLS certificate of the AI upstream service. type: boolean default: true ignore_assistant_prompts: description: Ignore and discard any assistant prompts when evaluating the request type: boolean default: true ignore_system_prompts: description: Ignore and discard any system prompts when evaluating the request type: boolean default: true ignore_tool_prompts: description: Ignore and discard any tool prompts when evaluating the request type: boolean default: true llm: type: object properties: auth: type: object default: null nullable: true 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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_metadata_url: description: 'Custom metadata URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If null, Kong will use the default Google metadata endpoint.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false gcp_oauth_token_url: description: 'Custom OAuth token URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If null, Kong will use the default Google OAuth token endpoint.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false header_value: description: 'Specify the full auth header value for ''header_name'', for example ''Bearer key'' or just ''key''.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow param_name: description: 'If AI model requires authentication via query parameter, specify its name here.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false param_value: description: Specify the full parameter value for 'param_name'. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false description: description: 'The semantic description of the target, required if using semantic load balancing. Specially, setting this to ''CATCHALL'' will indicate such target to be used when no other targets match the semantic threshold. Only used by ai-proxy-advanced.' type: string default: null nullable: true x-speakeasy-param-computed: false logging: type: object default: null nullable: true properties: log_payloads: description: 'If enabled, will log the request and response body into the Kong log plugin(s) output.Furthermore if Opentelemetry instrumentation is enabled the traces will contain this data as well.' 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 x-speakeasy-param-computed: false metadata: description: 'For internal use only. ' type: object additionalProperties: true nullable: true x-speakeasy-terraform-ignore: true x-speakeasy-type-override: any model: type: object properties: model_alias: description: The model name parameter from the request that this model should map to. type: string default: null nullable: true x-speakeasy-param-computed: false name: description: Model name to execute. type: string default: null nullable: true x-speakeasy-param-computed: false options: description: Key/value settings for the model type: object default: null nullable: true properties: anthropic_version: description: 'Defines the schema/API version, if using Anthropic provider.' type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false azure_instance: description: Instance name for Azure OpenAI hosted models. type: string default: null nullable: true x-speakeasy-param-computed: false bedrock: type: object default: null nullable: true properties: aws_assume_role_arn: description: If using AWS providers (Bedrock) you can assume a different role after authentication with the current IAM context is successful. type: string default: null nullable: true x-speakeasy-param-computed: false aws_region: description: If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option. type: string default: null nullable: true x-speakeasy-param-computed: false aws_role_session_name: description: 'If using AWS providers (Bedrock), set the identifier of the assumed role session.' type: string default: null nullable: true x-speakeasy-param-computed: false aws_sts_endpoint_url: description: 'If using AWS providers (Bedrock), override the STS endpoint URL when assuming a different role.' type: string default: null nullable: true x-speakeasy-param-computed: false batch_bucket_prefix: description: 'S3 URI prefix (s3://bucket/prefix/) where Bedrock will get input files from and store results to for native batch API.' type: string default: null nullable: true x-speakeasy-param-computed: false batch_role_arn: description: AWS role arn used for calling batch API. Try to get the value from request if ommited. type: string default: null nullable: true x-speakeasy-param-computed: false embeddings_normalize: description: 'If using AWS providers (Bedrock), set to true to normalize the embeddings.' type: boolean default: false performance_config_latency: description: Force the client's performance configuration 'latency' for all requests. Leave empty to let the consumer select the performance configuration. type: string default: null nullable: true x-speakeasy-param-computed: false video_output_s3_uri: description: 'S3 URI (s3://bucket/prefix) where Bedrock will store generated video files. Required for video generation.' type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false cohere: type: object default: null nullable: true properties: embedding_input_type: description: The purpose of the input text to calculate embedding vectors. type: string default: classification enum: - classification - clustering - image - search_document - search_query x-speakeasy-unknown-values: allow wait_for_model: description: Wait for the model if it is not ready type: boolean default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false dashscope: type: object default: null nullable: true properties: international: description: | Two Dashscope endpoints are available, and the international endpoint will be used when this is set to `true`. It is recommended to set this to `true` when using international version of dashscope. type: boolean default: true x-speakeasy-param-computed: false databricks: type: object default: null nullable: true properties: workspace_instance_id: description: Workspace Instance ID ('dbc-xxx-yyy') for Databricks model serving. type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false embeddings_dimensions: description: 'If using embeddings models, set the number of dimensions to generate.' type: integer default: null nullable: true x-speakeasy-param-computed: false gemini: type: object default: null nullable: true properties: api_endpoint: description: 'If running Gemini on Vertex, specify the regional API endpoint (hostname only).' type: string default: null nullable: true x-speakeasy-param-computed: false endpoint_id: description: 'If running Gemini on Vertex Model Garden, specify the endpoint ID.' type: string default: null nullable: true x-speakeasy-param-computed: false location_id: description: 'If running Gemini on Vertex, specify the location ID.' type: string default: null nullable: true x-speakeasy-param-computed: false project_id: description: 'If running Gemini on Vertex, specify the project ID.' type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false huggingface: type: object default: null nullable: true properties: use_cache: description: Use the cache layer on the inference API type: boolean default: null nullable: true x-speakeasy-param-computed: false wait_for_model: description: Wait for the model if it is not ready type: boolean default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false input_cost: description: Defines the cost per 1M tokens in your prompt. type: number default: null nullable: true x-speakeasy-param-computed: false llama2_format: description: 'If using llama2 provider, select the upstream message format.' type: string enum: - ollama - openai - raw x-speakeasy-unknown-values: allow max_tokens: description: 'Defines the max_tokens, if using chat or completion models.' type: integer default: null nullable: true x-speakeasy-param-computed: false mistral_format: description: 'If using mistral provider, select the upstream message format.' type: string enum: - ollama - openai x-speakeasy-unknown-values: allow output_cost: description: Defines the cost per 1M tokens in the output of the AI. type: number default: null nullable: true x-speakeasy-param-computed: false temperature: description: 'Defines the matching temperature, if using chat or completion models.' type: number default: null maximum: 5 minimum: 0 nullable: true x-speakeasy-param-computed: false top_k: description: 'Defines the top-k most likely tokens, if supported.' type: integer default: null maximum: 500 minimum: 0 nullable: true x-speakeasy-param-computed: false top_p: description: 'Defines the top-p probability mass, if supported.' type: number default: null maximum: 1 minimum: 0 nullable: true x-speakeasy-param-computed: false upstream_path: description: 'Manually specify or override the AI operation path, used when e.g. using the ''preserve'' route_type.' type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false provider: description: AI provider request format - Kong translates requests to and from the specified backend compatible formats. type: string enum: - anthropic - azure - bedrock - cerebras - cohere - dashscope - databricks - deepseek - gemini - huggingface - llama2 - mistral - ollama - openai - vllm - xai x-speakeasy-unknown-values: allow required: - provider route_type: description: 'The model''s operation implementation, for this provider. ' type: string enum: - audio/v1/audio/speech - audio/v1/audio/transcriptions - audio/v1/audio/translations - image/v1/images/edits - image/v1/images/generations - llm/v1/assistants - llm/v1/batches - llm/v1/chat - llm/v1/completions - llm/v1/embeddings - llm/v1/files - llm/v1/responses - preserve - realtime/v1/realtime - video/v1/videos/generations x-speakeasy-unknown-values: allow weight: description: The weight this target gets within the upstream loadbalancer (1-65535). Only used by ai-proxy-advanced. type: integer default: 100 maximum: 65535 minimum: 1 required: - model - route_type message_countback: description: Number of messages in the chat history to use for evaluating the request type: number default: 1 maximum: 1000 minimum: 1 prompt: description: Use this prompt to tune the LLM system/assistant message for the llm as a judge prompt. type: string default: 'You are a strict evaluator. You will be given a prompt and a response. Your task is to judge whether the response is correct or incorrect. You must assign a score between 1 and 100, where: 100 represents a completely correct and ideal response, 1 represents a completely incorrect or irrelevant response. Your score must be a single number only — no text, labels, or explanations. Use the full range of values (e.g., 13, 47, 86), not just round numbers like 10, 50, or 100. Be accurate and consistent, as this score will be used by another model for learning and evaluation.' sampling_rate: description: Judging request sampling rate for configuring the probability-based sampler. type: number default: 1 maximum: 1 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: ai-llm-as-judge protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config x-supported-partials: - name: model paths: - config.llm AiMcpOauth2Plugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiMcpOauth2PluginConfig' AiMcpOauth2PluginConfig: x-speakeasy-entity: GatewayPluginAiMcpOauth2 properties: config: description: 'The configuration for MCP authorization in OAuth2. If this is enabled, make sure the configured metadata_endpoint is also covered by the same route so the authorization can be applied correctly.' type: object properties: args: description: Additional arguments to send in the POST body. type: object default: null additionalProperties: type: string nullable: true x-speakeasy-param-computed: false authorization_servers: type: array items: description: The authorization server identifier. type: string minLength: 1 cache_introspection: description: 'If enabled, the plugin will cache the introspection response for the access token. This can improve performance by reducing the number of introspection requests to the authorization server.' type: boolean default: true claim_to_header: description: Map top-level token claims to upstream headers. Mutually exclusive with upstream_headers. type: array items: properties: claim: description: The claim name to be used in the access token. type: string header: description: The HTTP header name to be used for forwarding the claim value to the upstream. type: string required: - claim - header type: object default: null minLength: 1 nullable: true x-speakeasy-param-computed: false client_alg: description: The client JWT signing algorithm. type: string enum: - ES256 - ES384 - ES512 - EdDSA - HS256 - HS384 - HS512 - PS256 - PS384 - PS512 - RS256 - RS384 - RS512 x-speakeasy-unknown-values: allow client_auth: description: The client authentication method. type: string enum: - client_secret_basic - client_secret_jwt - client_secret_post - none - private_key_jwt - self_signed_tls_client_auth - tls_client_auth x-speakeasy-unknown-values: allow client_id: description: The client ID for authentication. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false client_jwk: description: The client JWK for private_key_jwt authentication. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false client_secret: description: The client secret for authentication. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow default: - custom_id - username minLength: 1 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false consumer_groups_claim: description: 'The claim used for consumer groups mapping. If multiple values are set, it means the claim is inside a nested object of the token payload.' type: array items: type: string default: null minLength: 1 nullable: true x-speakeasy-param-computed: false consumer_groups_optional: description: Do not terminate the request if consumer groups mapping fails. type: boolean default: false 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 headers: description: Additional headers for the introspection request. type: object default: null additionalProperties: type: string nullable: true x-speakeasy-param-computed: false http_proxy: description: HTTP proxy to use. type: string default: null nullable: true x-speakeasy-param-computed: false http_proxy_authorization: description: HTTP proxy authorization header. type: string default: null nullable: true x-speakeasy-param-computed: false http_version: description: The HTTP version used for requests. type: number x-speakeasy-param-computed: true https_proxy: description: HTTPS proxy to use. type: string default: null nullable: true x-speakeasy-param-computed: false https_proxy_authorization: description: HTTPS proxy authorization header. type: string default: null nullable: true x-speakeasy-param-computed: false insecure_relaxed_audience_validation: description: 'If enabled, the plugin will not validate the audience of the access token. Disable it if the authorization server does not correctly set the audience claim according to RFC 8707 and MCP specification.' type: boolean default: false introspection_endpoint: description: 'The Token Introspection Endpoint. If not provided, the plugin will attempt to use JWKS to verify the token. If the token is opaque, this field must be provided.' type: string default: null nullable: true x-speakeasy-param-computed: false introspection_format: description: Controls introspection response format. type: string enum: - base64 - base64url - string x-speakeasy-unknown-values: allow jwks_cache_ttl: description: The cache TTL in seconds for JWKS. type: integer default: 3600 jwks_endpoint: description: 'The JWKS endpoint URL for fetching the authorization server''s public keys. If not provided, the plugin will attempt to discover it from the authorization server metadata.' type: string default: null nullable: true x-speakeasy-param-computed: false jwt_claims_leeway: description: 'The leeway in seconds for JWT claims validation (exp, nbf). This allows tokens that are slightly expired or not yet valid due to clock skew.' type: integer default: 0 keepalive: description: Enable HTTP keepalive for requests. type: boolean default: true max_request_body_size: description: 'max allowed body size allowed to be handled as MCP request. 0 means unlimited, but the size of this body will still be limited by Nginx''s client_max_body_size.' type: integer default: 1048576 metadata_cache_ttl: description: The cache TTL in seconds for discovered authorization server metadata. type: integer default: 3600 metadata_discovery_endpoint: description: 'Custom OAuth 2.0 authorization server metadata discovery URL. If provided, the plugin will use this URL directly instead of trying standard well-known discovery paths. The custom endpoint URL should end with either ''/.well-known/openid-configuration'' or ''/.well-known/oauth-authorization-server''.' type: string default: null nullable: true x-speakeasy-param-computed: false metadata_discovery_retry: description: The number of retry attempts for metadata discovery requests per URL. type: integer default: 3 metadata_endpoint: description: 'The path for OAuth 2.0 Protected Resource Metadata. Default to $resource/.well-known/oauth-protected-resource. For example, if the configured resource is https://api.example.com/mcp, the metadata endpoint is /mcp/.well-known/oauth-protected-resource.' type: string default: null nullable: true x-speakeasy-param-computed: false mtls_introspection_endpoint: description: The mTLS alias for the introspection endpoint. type: string default: null nullable: true x-speakeasy-param-computed: false no_proxy: description: Comma-separated list of hosts to exclude from proxy. type: string default: null nullable: true x-speakeasy-param-computed: false passthrough_credentials: description: 'Keep the credentials used for authentication in the request. If multiple credentials are sent with the same request, the plugin will keep those that were used for successful authentication.' type: boolean default: false resource: description: The resource identifier. type: string scopes_supported: type: array items: description: Recommended scopes that are used in authorization requests to request access to this protected resource. type: string default: null minLength: 1 nullable: true x-speakeasy-param-computed: false ssl_verify: description: Verify the SSL certificate. type: boolean default: true timeout: description: Network I/O timeout in milliseconds. type: number default: 10000 tls_client_auth_cert: description: PEM-encoded client certificate for mTLS. type: string default: null nullable: true x-speakeasy-param-computed: false tls_client_auth_key: description: PEM-encoded private key for mTLS. type: string default: null nullable: true x-speakeasy-param-computed: false tls_client_auth_ssl_verify: description: Verify server certificate in mTLS. type: boolean default: true token_exchange: description: Configuration details about token exchange that should happen before reaching upstream MCP server type: object default: null nullable: true properties: cache: type: object default: null nullable: true properties: enabled: description: Whether to cache exchanged token type: boolean default: true ttl: description: The default cache TTL to store exchanged token. If the exchange endpoint does not provide 'expires_in' data when token is exchanged this TTL value will be used to cache it. type: integer default: 3600 x-speakeasy-param-computed: false client_auth: description: 'The type of authentication method to use with the exchange endpoint. Use ''inherit'' to use the same client_id, and secret as in introspection_endpoint.' type: string default: client_secret_basic enum: - client_secret_basic - client_secret_post - inherit - none x-speakeasy-unknown-values: allow client_id: description: The client ID for authentication. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false client_secret: description: The client secret for authentication. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false enabled: description: Whether Token Exchange should be enabled type: boolean default: false request: type: object default: null nullable: true properties: actor_token: description: Static actor token value (when source is config). type: string default: null nullable: true x-speakeasy-param-computed: false actor_token_header: description: Header name containing actor token (when source is header). type: string default: null nullable: true x-speakeasy-param-computed: false actor_token_source: description: Where to obtain actor token. type: string default: none enum: - config - header - none x-speakeasy-unknown-values: allow actor_token_type: description: The token type identifier of actor token. type: string default: 'urn:ietf:params:oauth:token-type:access_token' audience: description: Audiences used in the token exchange request. type: array items: type: string default: null minLength: 1 nullable: true x-speakeasy-param-computed: false requested_token_type: description: The desired output token type. type: string default: 'urn:ietf:params:oauth:token-type:access_token' resource: description: The absolute URI of target MCP service where token will be used. type: string default: null nullable: true x-speakeasy-param-computed: false scopes: description: Scopes used in the token exchange request. type: array items: type: string default: null minLength: 1 nullable: true x-speakeasy-param-computed: false subject_token_type: description: The type of token to be exchanged. type: string default: 'urn:ietf:params:oauth:token-type:access_token' x-speakeasy-param-computed: false token_endpoint: description: The token exchange endopint. type: string required: - token_endpoint x-speakeasy-param-computed: false upstream_headers: description: Map token claims to upstream headers using path-based access. Each entry specifies a header name and a path (array of strings) to traverse the token claims. Mutually exclusive with claim_to_header. type: array items: properties: header: description: The name of the header. type: string path: description: The path of the header value. type: array items: type: string minLength: 1 required: - header - path type: object default: null nullable: true x-speakeasy-param-computed: false required: - authorization_servers - resource name: const: ai-mcp-oauth2 protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config AiMcpProxyPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiMcpProxyPluginConfig' AiMcpProxyPluginConfig: x-speakeasy-entity: GatewayPluginAiMcpProxy properties: config: type: object properties: access_token_claim_field: description: 'The claim in the OAuth2 access token to use as the subject for ACL evaluation when ''acl_attribute_type'' is set to ''oauth_access_token''. Nested claim can be fetched by using a jq filter starts with dot, e.g., ".user.email": https://jqlang.org/manual/#object-identifier-index.' type: string default: null minLength: 1 nullable: true x-speakeasy-param-computed: false acl_attribute_type: description: 'The type of attributes that ACL is evaluated with. Should only be configured on listener modes, not conversion-only.' type: string default: consumer enum: - consumer - oauth_access_token x-speakeasy-unknown-values: allow consumer_identifier: description: 'Which subject type entries in ACL lists refer to for per-consumer matching. Should only be configured on listener modes, not conversion-only.' type: string default: username enum: - consumer_id - custom_id - username x-speakeasy-unknown-values: allow default_acl: description: 'Optional list of default ACL rules keyed by scope (for example: tools).' type: array items: description: Default ACL entry for the given scope. `deny` has higher precedence than `allow`. properties: allow: description: 'Subjects (e.g. Consumer name, Consumer Groups, or Claim values depending on configuration) explicitly allowed to access this scope.' type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false deny: description: 'Subjects (e.g. Consumer name, Consumer Groups, or Claim values depending on configuration) explicitly denied from this scope. `deny` takes precedence over `allow`.' type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false scope: description: 'Scope for this default ACL entry (for example: ''tools''). Defaults to ''tools''.' type: string default: tools type: object default: null nullable: true x-speakeasy-param-computed: false include_consumer_groups: description: 'If enabled (true), allows Consumer Group names to be used in default and per-primitive ACL. Should only be configured on listener modes, not conversion-only.' type: boolean default: false logging: type: object properties: log_audits: description: 'If true, emit audit logs for ACL evaluations.' type: boolean default: false 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, will add mcp metrics into the Kong log plugin(s) output.' type: boolean default: false x-speakeasy-param-computed: true max_request_body_size: description: 'max allowed body size allowed to be handled as MCP request. 0 means unlimited, but the size of this body will still be limited by Nginx''s client_max_body_size.' type: integer default: 1048576 mode: description: 'The mode of the MCP proxy. Possible values are: ''passthrough-listener'', ''conversion-listener'', ''conversion-only'', ''listener''.' type: string enum: - conversion-listener - conversion-only - listener - passthrough-listener x-speakeasy-unknown-values: allow server: type: object default: null nullable: true properties: forward_client_headers: description: Whether to forward the client request headers to the upstream server when calling the tools. type: boolean default: true session: description: Enable managed session when Kong responds as MCP server in listener or conversion-listener modes. This doesn't affect the passthrough-listener mode as the state in that mode is maintained by the upstream MCP servers. type: object default: null nullable: true properties: client: description: The configuration for client-side session storage. type: object default: null nullable: true properties: secrets: description: 'The secrets that are used in session encryption. Required when the strategy is ''client''. The first secret is used for encryption, while all secrets are used for decryption to support key rotation.' type: array items: minLength: 8 type: string x-encrypted: true x-referenceable: true default: null minLength: 1 nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false managed: description: 'If enabled, Kong will maintain managed sessions with the MCP server.' type: boolean default: true redis: type: object default: null nullable: true properties: cloud_authentication: description: Cloud auth related configs for connecting to a Cloud Provider's Redis instance. type: object default: null nullable: true properties: auth_provider: description: Auth providers to be used to authenticate to a Cloud Provider's Redis instance. type: string enum: - aws - azure - gcp x-referenceable: true x-speakeasy-unknown-values: allow aws_access_key_id: description: AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_is_serverless: description: This flag specifies whether the cluster is serverless when auth_provider is set to `aws`. type: boolean default: true aws_region: description: The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false 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 x-referenceable: true 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 default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: string default: '6379' maximum: 65535 minimum: 0 x-referenceable: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false sentinel_password: description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false server_name: description: A string representing an SNI (server name indication) value for TLS. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-transform-from-api: jq: | if has("port") then .port |= if type == "number" then tostring else . end else . end x-speakeasy-transform-to-api: jq: | if has("port") then if (.port | type) == "string" and (.port | test("^[0-9]+$")) then .port |= tonumber else . end else . end session_ttl: description: The time-to-live (TTL) for each session in seconds. type: number default: 86400 strategy: description: 'The strategy for the session. If the value is ''client'', the session is encrypted into MCP session id assigned to the client. If the value is not ''client'', the session is stored in the configured database.' type: string enum: - client - redis x-speakeasy-unknown-values: allow x-speakeasy-param-computed: false tag: description: 'The tag of the MCP server. This is used to filter the exported MCP tools. The field should contain exactly one tag. ' type: string default: null nullable: true x-speakeasy-param-computed: false timeout: description: The timeout for calling the tools in milliseconds. type: number default: 10000 x-speakeasy-param-computed: false tools: type: array items: properties: acl: description: Optional per-primitive ACL. `deny` has higher precedence than `allow`. type: object default: null nullable: true properties: allow: description: 'Subjects (e.g. Consumer name, Consumer Groups, or Claim values depending on configuration) explicitly allowed to use this primitive.' type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false deny: description: 'Subjects (e.g. Consumer name, Consumer Groups, or Claim values depending on configuration) explicitly denied from using this primitive. `deny` takes precedence over `allow`.' type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false annotations: type: object default: null nullable: true properties: destructive_hint: description: 'If true, the tool may perform destructive updates' type: boolean default: null nullable: true x-speakeasy-param-computed: false idempotent_hint: description: 'If true, repeated calls with same args have no additional effect' type: boolean default: null nullable: true x-speakeasy-param-computed: false open_world_hint: description: 'If true, tool interacts with external entities' type: boolean default: null nullable: true x-speakeasy-param-computed: false read_only_hint: description: 'If true, the tool does not modify its environment' type: boolean default: null nullable: true x-speakeasy-param-computed: false title: description: Human-readable title for the tool type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false description: description: The description of the MCP tool. This is used to provide information about the tool's functionality and usage. type: string headers: description: 'The headers of the exported API. By default, Kong will extract the headers from API configuration. If the configured headers are not exactly matched, this field is required.' type: object default: null additionalProperties: items: type: string type: array nullable: true x-speakeasy-param-computed: false host: description: 'The host of the exported API, which must match the route''s hosts. It should be the route''s host. By default, Kong will extract the host from API configuration. If the configured host is wildcard, this field is required.' type: string default: null nullable: true x-speakeasy-param-computed: false method: description: 'The method of the exported API, which must be one of the route''s method. By default, Kong will extract the method from API configuration. If the configured method is not exactly matched, this field is required.' type: string enum: - DELETE - GET - PATCH - POST - PUT x-speakeasy-unknown-values: allow name: description: 'Tool identifier. In passthrough-listener mode, used to match remote MCP Server tools for ACL enforcement. In other modes, it is also used as the tool name (overrides tools.annotations.title if present).' type: string default: null nullable: true x-speakeasy-param-computed: false parameters: description: 'The API parameters specification defined in OpenAPI JSON format. For example, ''[{"name": "city", "in": "query", "description": "Name of the city to get the weather for", "required": true, "schema": {"type": "string"}}]''.See https://swagger.io/docs/specification/v3_0/describing-parameters/ for more details.' items: type: object properties: name: type: string in: type: string required: type: boolean schema: type: object properties: type: type: string description: type: string nullable: true type: array path: description: 'The path of the exported API, which must match the route''s paths. Path not starting with ''/'' are treated as relative path and the route path will be added as the prefix. If the upstream path is different from the route one, to match the route''s path, use relative path and strip_path to strip the added prefix. Relative path is unsupported when the route path is regex. By default, Kong will extract the path from API configuration.' type: string default: null nullable: true x-speakeasy-param-computed: false query: description: 'The query arguments of the exported API. If the generated query arguments are not exactly matched, this field is required.' type: object default: null additionalProperties: items: type: string type: array nullable: true x-speakeasy-param-computed: false request_body: description: 'The API requestBody specification defined in OpenAPI JSON format. For example, ''{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"color":{"type":"array","items":{"type":"string"}}}}}}''.See https://swagger.io/docs/specification/v3_0/describing-request-body/describing-request-body/ for more details. Note that `$ref` is not supported so we need to inline the schema.' type: object default: null additionalProperties: true nullable: true x-speakeasy-param-computed: false x-speakeasy-type-override: any responses: description: 'The API responses specification defined in OpenAPI JSON format. This specification will be used to validate the upstream response and map it back to the structuredOutput. For example, ''{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"string"}}}}}}}''.See https://swagger.io/docs/specification/v3_0/describing-responses/ for more details.Only one non-error (status code < 400) response is supported. Note that `$ref` is not supported.' additionalProperties: true default: null nullable: true type: object x-speakeasy-param-computed: false x-speakeasy-type-override: any scheme: description: 'The scheme of the exported API, which must be one of the route''s scheme. By default, Kong will extract the scheme from API configuration. If the configured scheme is not expected, this field can be used to override it.' type: string enum: - http - https x-speakeasy-unknown-values: allow required: - description type: object default: null nullable: true x-speakeasy-param-computed: false required: - mode name: const: ai-mcp-proxy protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config AiPromptCompressorPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiPromptCompressorPluginConfig' AiPromptCompressorPluginConfig: x-speakeasy-entity: GatewayPluginAiPromptCompressor properties: config: type: object properties: compression_ranges: description: What value to be used to compress with. The 'value' is interpreted as rate or target_token depending on compressor_type. type: array items: properties: max_tokens: type: integer min_tokens: type: integer value: type: number required: - max_tokens - min_tokens - value type: object compressor_type: description: What compression type to use to compress with type: string default: rate enum: - rate - target_token x-speakeasy-unknown-values: allow compressor_url: description: The url of the compressor type: string default: 'http://localhost:8080' keepalive_timeout: description: The keepalive timeout for the established http connnection type: number default: 60000 log_text_data: description: Log the text data type: boolean default: false message_type: type: array items: enum: - assistant - system - user type: string x-speakeasy-unknown-values: allow default: - user stop_on_error: description: Stop processing if an error occurs type: boolean default: true timeout: description: Connection timeout with the compressor type: number default: 10000 required: - compression_ranges 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: ai-prompt-compressor protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config AiPromptDecoratorPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiPromptDecoratorPluginConfig' AiPromptDecoratorPluginConfig: x-speakeasy-entity: GatewayPluginAiPromptDecorator properties: config: type: object default: null nullable: true properties: llm_format: description: LLM input and output format and schema to use type: string default: openai enum: - anthropic - bedrock - cohere - gemini - huggingface - openai x-speakeasy-unknown-values: allow max_request_body_size: description: 'max allowed body size allowed to be introspected. 0 means unlimited, but the size of this body will still be limited by Nginx''s client_max_body_size.' type: integer default: 1048576 prompts: type: object default: null nullable: true 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: 100000 minLength: 1 type: string role: type: string default: system enum: - assistant - system - user x-speakeasy-unknown-values: allow required: - content type: object default: null maxLength: 15 nullable: true x-speakeasy-param-computed: false 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: 100000 minLength: 1 type: string role: type: string default: system enum: - assistant - system - user x-speakeasy-unknown-values: allow required: - content type: object default: null maxLength: 15 nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: ai-prompt-decorator protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false AiPromptGuardPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiPromptGuardPluginConfig' AiPromptGuardPluginConfig: x-speakeasy-entity: GatewayPluginAiPromptGuard properties: config: type: object default: null nullable: true 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 default: null maxLength: 10 nullable: true x-speakeasy-param-computed: false 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 default: null maxLength: 10 nullable: true x-speakeasy-param-computed: false genai_category: description: Generative AI category of the request type: string default: text/generation enum: - audio/speech - audio/transcription - image/generation - realtime/generation - text/embeddings - text/generation - video/generation x-speakeasy-unknown-values: allow llm_format: description: LLM input and output format and schema to use type: string default: openai enum: - anthropic - bedrock - cohere - gemini - huggingface - openai x-speakeasy-unknown-values: allow 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. 0 means unlimited, but the size of this body will still be limited by Nginx''s client_max_body_size.' type: integer default: 1048576 x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: ai-prompt-guard protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false AiPromptTemplatePlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiPromptTemplatePluginConfig' AiPromptTemplatePluginConfig: x-speakeasy-entity: GatewayPluginAiPromptTemplate 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. 0 means unlimited, but the size of this body will still be limited by Nginx''s client_max_body_size.' type: integer default: 1048576 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 required: - templates 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: ai-prompt-template protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config AiProxyAdvancedPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiProxyAdvancedPluginConfig' AiProxyAdvancedPluginConfig: x-speakeasy-entity: GatewayPluginAiProxyAdvanced properties: config: type: object properties: acls: description: Optional ACL rules. Deny rules take precedence over allow rules. type: object default: null nullable: true properties: allow: description: Requests matching any allow rule are permitted unless also matched by a deny rule. type: array items: description: ACL rule composed of one or more match conditions. properties: match: description: All conditions must match for the rule to apply (logical AND). type: array items: description: Single match condition (e.g. user or model value). properties: key: description: 'Helper key used by some types: consumer (id|username), consumer_group (id|name), header (header name).' type: string default: null nullable: true x-speakeasy-param-computed: false type: description: The attribute to match against. type: string enum: - consumer - consumer_group - header - ip - model - path - provider x-speakeasy-unknown-values: allow values: description: Allowed values for the selected type. type: array items: type: string minLength: 1 required: - type - values type: object minLength: 1 required: - match type: object default: null minLength: 1 nullable: true x-speakeasy-param-computed: false deny: description: Requests matching any deny rule are blocked. Deny rules take precedence over allow rules. type: array items: description: ACL rule composed of one or more match conditions. properties: match: description: All conditions must match for the rule to apply (logical AND). type: array items: description: Single match condition (e.g. user or model value). properties: key: description: 'Helper key used by some types: consumer (id|username), consumer_group (id|name), header (header name).' type: string default: null nullable: true x-speakeasy-param-computed: false type: description: The attribute to match against. type: string enum: - consumer - consumer_group - header - ip - model - path - provider x-speakeasy-unknown-values: allow values: description: Allowed values for the selected type. type: array items: type: string minLength: 1 required: - type - values type: object minLength: 1 required: - match type: object default: null minLength: 1 nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false balancer: type: object default: null nullable: true properties: algorithm: description: Which load balancing algorithm to use. type: string default: round-robin enum: - consistent-hashing - least-connections - lowest-latency - lowest-usage - priority - round-robin - semantic x-speakeasy-unknown-values: allow connect_timeout: type: integer default: 60000 maximum: 2147483646 minimum: 1 fail_timeout: description: The period of time (in milliseconds) the target will be considered unavailable after the number of unsuccessful attempts reaches `max_fails`. type: integer default: 10000 maximum: 2147483646 minimum: 1 failover_criteria: description: 'Specifies in which cases an upstream response should be failover to the next target. Each option in the array is equivalent to the function of http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream' type: array items: enum: - error - http_403 - http_404 - http_429 - http_500 - http_502 - http_503 - http_504 - invalid_header - non_idempotent - timeout type: string x-speakeasy-unknown-values: allow default: - error - timeout 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 x-speakeasy-unknown-values: allow max_fails: description: 'Number of unsuccessful attempts to communicate with a target that should occur in the duration defined by `fail_timeout` before the target is considered unavailable. The zero value disables the circuit breaker. What is considered an unsuccessful attempt is defined by `failover_criteria`. Note the cases of `error`, `timeout` and `invalid_header` are always considered unsuccessful attempts, while the cases of `http_403` and `http_404` are never considered unsuccessful attempts.' type: integer default: 0 maximum: 32767 minimum: 0 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`, `completion_tokens` and `cost`.' type: string default: total-tokens enum: - completion-tokens - cost - llm-accuracy - prompt-tokens - total-tokens x-speakeasy-unknown-values: allow write_timeout: type: integer default: 60000 maximum: 2147483646 minimum: 1 x-speakeasy-param-computed: false embeddings: type: object default: null nullable: true properties: auth: type: object default: null nullable: true 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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_metadata_url: description: 'Custom metadata URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If null, Kong will use the default Google metadata endpoint.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false gcp_oauth_token_url: description: 'Custom OAuth token URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If null, Kong will use the default Google OAuth token endpoint.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false header_value: description: 'Specify the full auth header value for ''header_name'', for example ''Bearer key'' or just ''key''.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow param_name: description: 'If AI model requires authentication via query parameter, specify its name here.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false param_value: description: Specify the full parameter value for 'param_name'. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false model: type: object properties: name: description: Model name to execute. type: string options: description: Key/value settings for the model type: object default: null nullable: true properties: azure: type: object default: null nullable: true properties: api_version: description: '''api-version'' for Azure OpenAI instances.' type: string default: '2023-05-15' deployment_id: description: Deployment ID for Azure OpenAI instances. type: string default: null nullable: true x-speakeasy-param-computed: false instance: description: Instance name for Azure OpenAI hosted models. type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false bedrock: type: object default: null nullable: true properties: aws_assume_role_arn: description: If using AWS providers (Bedrock) you can assume a different role after authentication with the current IAM context is successful. type: string default: null nullable: true x-speakeasy-param-computed: false aws_region: description: If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option. type: string default: null nullable: true x-speakeasy-param-computed: false aws_role_session_name: description: 'If using AWS providers (Bedrock), set the identifier of the assumed role session.' type: string default: null nullable: true x-speakeasy-param-computed: false aws_sts_endpoint_url: description: 'If using AWS providers (Bedrock), override the STS endpoint URL when assuming a different role.' type: string default: null nullable: true x-speakeasy-param-computed: false batch_bucket_prefix: description: 'S3 URI prefix (s3://bucket/prefix/) where Bedrock will get input files from and store results to for native batch API.' type: string default: null nullable: true x-speakeasy-param-computed: false batch_role_arn: description: AWS role arn used for calling batch API. Try to get the value from request if ommited. type: string default: null nullable: true x-speakeasy-param-computed: false embeddings_normalize: description: 'If using AWS providers (Bedrock), set to true to normalize the embeddings.' type: boolean default: false performance_config_latency: description: Force the client's performance configuration 'latency' for all requests. Leave empty to let the consumer select the performance configuration. type: string default: null nullable: true x-speakeasy-param-computed: false video_output_s3_uri: description: 'S3 URI (s3://bucket/prefix) where Bedrock will store generated video files. Required for video generation.' type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false gemini: type: object default: null nullable: true properties: api_endpoint: description: 'If running Gemini on Vertex, specify the regional API endpoint (hostname only).' type: string default: null nullable: true x-speakeasy-param-computed: false location_id: description: 'If running Gemini on Vertex, specify the location ID.' type: string default: null nullable: true x-speakeasy-param-computed: false project_id: description: 'If running Gemini on Vertex, specify the project ID.' type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false huggingface: type: object default: null nullable: true properties: use_cache: description: Use the cache layer on the inference API type: boolean default: null nullable: true x-speakeasy-param-computed: false wait_for_model: description: Wait for the model if it is not ready type: boolean default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false upstream_url: description: upstream url for the embeddings type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false provider: description: AI provider format to use for embeddings API type: string enum: - azure - bedrock - gemini - huggingface - mistral - ollama - openai x-speakeasy-unknown-values: allow required: - name - provider required: - model x-speakeasy-param-computed: false genai_category: description: Generative AI category of the request type: string default: text/generation enum: - audio/speech - audio/transcription - image/generation - realtime/generation - text/embeddings - text/generation - video/generation x-speakeasy-unknown-values: allow llm_format: description: LLM input and output format and schema to use type: string default: openai enum: - anthropic - bedrock - cohere - gemini - huggingface - openai x-speakeasy-unknown-values: allow max_request_body_size: description: 'max allowed body size allowed to be introspected. 0 means unlimited, but the size of this body will still be limited by Nginx''s client_max_body_size.' type: integer default: 1048576 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 x-speakeasy-unknown-values: allow targets: type: array items: properties: auth: type: object default: null nullable: true 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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_metadata_url: description: 'Custom metadata URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If null, Kong will use the default Google metadata endpoint.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false gcp_oauth_token_url: description: 'Custom OAuth token URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If null, Kong will use the default Google OAuth token endpoint.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false header_value: description: 'Specify the full auth header value for ''header_name'', for example ''Bearer key'' or just ''key''.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow param_name: description: 'If AI model requires authentication via query parameter, specify its name here.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false param_value: description: Specify the full parameter value for 'param_name'. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false description: description: 'The semantic description of the target, required if using semantic load balancing. Specially, setting this to ''CATCHALL'' will indicate such target to be used when no other targets match the semantic threshold. Only used by ai-proxy-advanced.' type: string default: null nullable: true x-speakeasy-param-computed: false logging: type: object default: null nullable: true properties: log_payloads: description: 'If enabled, will log the request and response body into the Kong log plugin(s) output.Furthermore if Opentelemetry instrumentation is enabled the traces will contain this data as well.' 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 x-speakeasy-param-computed: false metadata: description: 'For internal use only. ' type: object additionalProperties: true nullable: true x-speakeasy-terraform-ignore: true x-speakeasy-type-override: any model: type: object properties: model_alias: description: The model name parameter from the request that this model should map to. type: string default: null nullable: true x-speakeasy-param-computed: false name: description: Model name to execute. type: string default: null nullable: true x-speakeasy-param-computed: false options: description: Key/value settings for the model type: object default: null nullable: true properties: anthropic_version: description: 'Defines the schema/API version, if using Anthropic provider.' type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false azure_instance: description: Instance name for Azure OpenAI hosted models. type: string default: null nullable: true x-speakeasy-param-computed: false bedrock: type: object default: null nullable: true properties: aws_assume_role_arn: description: If using AWS providers (Bedrock) you can assume a different role after authentication with the current IAM context is successful. type: string default: null nullable: true x-speakeasy-param-computed: false aws_region: description: If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option. type: string default: null nullable: true x-speakeasy-param-computed: false aws_role_session_name: description: 'If using AWS providers (Bedrock), set the identifier of the assumed role session.' type: string default: null nullable: true x-speakeasy-param-computed: false aws_sts_endpoint_url: description: 'If using AWS providers (Bedrock), override the STS endpoint URL when assuming a different role.' type: string default: null nullable: true x-speakeasy-param-computed: false batch_bucket_prefix: description: 'S3 URI prefix (s3://bucket/prefix/) where Bedrock will get input files from and store results to for native batch API.' type: string default: null nullable: true x-speakeasy-param-computed: false batch_role_arn: description: AWS role arn used for calling batch API. Try to get the value from request if ommited. type: string default: null nullable: true x-speakeasy-param-computed: false embeddings_normalize: description: 'If using AWS providers (Bedrock), set to true to normalize the embeddings.' type: boolean default: false performance_config_latency: description: Force the client's performance configuration 'latency' for all requests. Leave empty to let the consumer select the performance configuration. type: string default: null nullable: true x-speakeasy-param-computed: false video_output_s3_uri: description: 'S3 URI (s3://bucket/prefix) where Bedrock will store generated video files. Required for video generation.' type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false cohere: type: object default: null nullable: true properties: embedding_input_type: description: The purpose of the input text to calculate embedding vectors. type: string default: classification enum: - classification - clustering - image - search_document - search_query x-speakeasy-unknown-values: allow wait_for_model: description: Wait for the model if it is not ready type: boolean default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false dashscope: type: object default: null nullable: true properties: international: description: | Two Dashscope endpoints are available, and the international endpoint will be used when this is set to `true`. It is recommended to set this to `true` when using international version of dashscope. type: boolean default: true x-speakeasy-param-computed: false databricks: type: object default: null nullable: true properties: workspace_instance_id: description: Workspace Instance ID ('dbc-xxx-yyy') for Databricks model serving. type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false embeddings_dimensions: description: 'If using embeddings models, set the number of dimensions to generate.' type: integer default: null nullable: true x-speakeasy-param-computed: false gemini: type: object default: null nullable: true properties: api_endpoint: description: 'If running Gemini on Vertex, specify the regional API endpoint (hostname only).' type: string default: null nullable: true x-speakeasy-param-computed: false endpoint_id: description: 'If running Gemini on Vertex Model Garden, specify the endpoint ID.' type: string default: null nullable: true x-speakeasy-param-computed: false location_id: description: 'If running Gemini on Vertex, specify the location ID.' type: string default: null nullable: true x-speakeasy-param-computed: false project_id: description: 'If running Gemini on Vertex, specify the project ID.' type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false huggingface: type: object default: null nullable: true properties: use_cache: description: Use the cache layer on the inference API type: boolean default: null nullable: true x-speakeasy-param-computed: false wait_for_model: description: Wait for the model if it is not ready type: boolean default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false input_cost: description: Defines the cost per 1M tokens in your prompt. type: number default: null nullable: true x-speakeasy-param-computed: false llama2_format: description: 'If using llama2 provider, select the upstream message format.' type: string enum: - ollama - openai - raw x-speakeasy-unknown-values: allow max_tokens: description: 'Defines the max_tokens, if using chat or completion models.' type: integer default: null nullable: true x-speakeasy-param-computed: false mistral_format: description: 'If using mistral provider, select the upstream message format.' type: string enum: - ollama - openai x-speakeasy-unknown-values: allow output_cost: description: Defines the cost per 1M tokens in the output of the AI. type: number default: null nullable: true x-speakeasy-param-computed: false temperature: description: 'Defines the matching temperature, if using chat or completion models.' type: number default: null maximum: 5 minimum: 0 nullable: true x-speakeasy-param-computed: false top_k: description: 'Defines the top-k most likely tokens, if supported.' type: integer default: null maximum: 500 minimum: 0 nullable: true x-speakeasy-param-computed: false top_p: description: 'Defines the top-p probability mass, if supported.' type: number default: null maximum: 1 minimum: 0 nullable: true x-speakeasy-param-computed: false upstream_path: description: 'Manually specify or override the AI operation path, used when e.g. using the ''preserve'' route_type.' type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false provider: description: AI provider request format - Kong translates requests to and from the specified backend compatible formats. type: string enum: - anthropic - azure - bedrock - cerebras - cohere - dashscope - databricks - deepseek - gemini - huggingface - llama2 - mistral - ollama - openai - vllm - xai x-speakeasy-unknown-values: allow required: - provider route_type: description: 'The model''s operation implementation, for this provider. ' type: string enum: - audio/v1/audio/speech - audio/v1/audio/transcriptions - audio/v1/audio/translations - image/v1/images/edits - image/v1/images/generations - llm/v1/assistants - llm/v1/batches - llm/v1/chat - llm/v1/completions - llm/v1/embeddings - llm/v1/files - llm/v1/responses - preserve - realtime/v1/realtime - video/v1/videos/generations x-speakeasy-unknown-values: allow weight: description: The weight this target gets within the upstream loadbalancer (1-65535). Only used by ai-proxy-advanced. type: integer default: 100 maximum: 65535 minimum: 1 required: - model - route_type type: object vectordb: type: object default: null nullable: true 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 x-speakeasy-unknown-values: allow pgvector: type: object default: null nullable: true properties: database: description: the database of the pgvector database type: string default: kong-pgvector host: description: the host of the pgvector database type: string default: 127.0.0.1 password: description: the password of the pgvector database type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: the port of the pgvector database type: integer default: 5432 ssl: description: whether to use ssl for the pgvector database type: boolean default: false ssl_cert: description: the path of ssl cert to use for the pgvector database type: string default: null nullable: true x-speakeasy-param-computed: false ssl_cert_key: description: the path of ssl cert key to use for the pgvector database type: string default: null nullable: true x-speakeasy-param-computed: false ssl_required: description: whether ssl is required for the pgvector database type: boolean default: false ssl_verify: description: whether to verify ssl for the pgvector database type: boolean default: false ssl_version: description: the ssl version to use for the pgvector database type: string default: tlsv1_2 enum: - any - tlsv1_2 - tlsv1_3 x-speakeasy-unknown-values: allow timeout: description: the timeout of the pgvector database type: number default: 5000 user: description: the user of the pgvector database type: string default: postgres x-referenceable: true x-speakeasy-param-computed: false redis: type: object default: null nullable: true properties: cloud_authentication: description: Cloud auth related configs for connecting to a Cloud Provider's Redis instance. type: object default: null nullable: true properties: auth_provider: description: Auth providers to be used to authenticate to a Cloud Provider's Redis instance. type: string enum: - aws - azure - gcp x-referenceable: true x-speakeasy-unknown-values: allow aws_access_key_id: description: AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_is_serverless: description: This flag specifies whether the cluster is serverless when auth_provider is set to `aws`. type: boolean default: true aws_region: description: The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false 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 x-referenceable: true 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 default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: string default: '6379' maximum: 65535 minimum: 0 x-referenceable: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false sentinel_password: description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false server_name: description: A string representing an SNI (server name indication) value for TLS. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-transform-from-api: jq: | if has("port") then .port |= if type == "number" then tostring else . end else . end x-speakeasy-transform-to-api: jq: | if has("port") then if (.port | type) == "string" and (.port | test("^[0-9]+$")) then .port |= tonumber else . end else . end strategy: description: which vector database driver to use type: string enum: - pgvector - redis x-speakeasy-unknown-values: allow threshold: description: the default similarity threshold for accepting semantic search results (float). Higher threshold means more results are considered similar. type: number default: null nullable: true x-speakeasy-param-computed: false required: - dimensions - distance_metric - strategy x-speakeasy-param-computed: false required: - targets 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: ai-proxy-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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config x-supported-partials: - name: embeddings paths: - config.embeddings - name: model paths: - 'config.targets[]' - name: vectordb paths: - config.vectordb AiProxyPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiProxyPluginConfig' AiProxyPluginConfig: x-speakeasy-entity: GatewayPluginAiProxy properties: config: type: object properties: auth: type: object default: null nullable: true 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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_metadata_url: description: 'Custom metadata URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If null, Kong will use the default Google metadata endpoint.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false gcp_oauth_token_url: description: 'Custom OAuth token URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If null, Kong will use the default Google OAuth token endpoint.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false header_value: description: 'Specify the full auth header value for ''header_name'', for example ''Bearer key'' or just ''key''.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow param_name: description: 'If AI model requires authentication via query parameter, specify its name here.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false param_value: description: Specify the full parameter value for 'param_name'. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false genai_category: description: Generative AI category of the request type: string default: text/generation enum: - audio/speech - audio/transcription - image/generation - text/embeddings - text/generation - video/generation x-speakeasy-unknown-values: allow llm_format: description: LLM input and output format and schema to use type: string default: openai enum: - anthropic - bedrock - cohere - gemini - huggingface - openai x-speakeasy-unknown-values: allow logging: type: object default: null nullable: true properties: log_payloads: description: 'If enabled, will log the request and response body into the Kong log plugin(s) output.Furthermore if Opentelemetry instrumentation is enabled the traces will contain this data as well.' 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 x-speakeasy-param-computed: false max_request_body_size: description: 'max allowed body size allowed to be introspected. 0 means unlimited, but the size of this body will still be limited by Nginx''s client_max_body_size.' type: integer default: 1048576 model: type: object properties: model_alias: description: The model name parameter from the request that this model should map to. type: string default: null nullable: true x-speakeasy-param-computed: false name: description: Model name to execute. type: string default: null nullable: true x-speakeasy-param-computed: false options: description: Key/value settings for the model type: object default: null nullable: true properties: anthropic_version: description: 'Defines the schema/API version, if using Anthropic provider.' type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false azure_instance: description: Instance name for Azure OpenAI hosted models. type: string default: null nullable: true x-speakeasy-param-computed: false bedrock: type: object default: null nullable: true properties: aws_assume_role_arn: description: If using AWS providers (Bedrock) you can assume a different role after authentication with the current IAM context is successful. type: string default: null nullable: true x-speakeasy-param-computed: false aws_region: description: If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option. type: string default: null nullable: true x-speakeasy-param-computed: false aws_role_session_name: description: 'If using AWS providers (Bedrock), set the identifier of the assumed role session.' type: string default: null nullable: true x-speakeasy-param-computed: false aws_sts_endpoint_url: description: 'If using AWS providers (Bedrock), override the STS endpoint URL when assuming a different role.' type: string default: null nullable: true x-speakeasy-param-computed: false batch_bucket_prefix: description: 'S3 URI prefix (s3://bucket/prefix/) where Bedrock will get input files from and store results to for native batch API.' type: string default: null nullable: true x-speakeasy-param-computed: false batch_role_arn: description: AWS role arn used for calling batch API. Try to get the value from request if ommited. type: string default: null nullable: true x-speakeasy-param-computed: false embeddings_normalize: description: 'If using AWS providers (Bedrock), set to true to normalize the embeddings.' type: boolean default: false performance_config_latency: description: Force the client's performance configuration 'latency' for all requests. Leave empty to let the consumer select the performance configuration. type: string default: null nullable: true x-speakeasy-param-computed: false video_output_s3_uri: description: 'S3 URI (s3://bucket/prefix) where Bedrock will store generated video files. Required for video generation.' type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false cohere: type: object default: null nullable: true properties: embedding_input_type: description: The purpose of the input text to calculate embedding vectors. type: string default: classification enum: - classification - clustering - image - search_document - search_query x-speakeasy-unknown-values: allow wait_for_model: description: Wait for the model if it is not ready type: boolean default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false dashscope: type: object default: null nullable: true properties: international: description: | Two Dashscope endpoints are available, and the international endpoint will be used when this is set to `true`. It is recommended to set this to `true` when using international version of dashscope. type: boolean default: true x-speakeasy-param-computed: false databricks: type: object default: null nullable: true properties: workspace_instance_id: description: Workspace Instance ID ('dbc-xxx-yyy') for Databricks model serving. type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false embeddings_dimensions: description: 'If using embeddings models, set the number of dimensions to generate.' type: integer default: null nullable: true x-speakeasy-param-computed: false gemini: type: object default: null nullable: true properties: api_endpoint: description: 'If running Gemini on Vertex, specify the regional API endpoint (hostname only).' type: string default: null nullable: true x-speakeasy-param-computed: false endpoint_id: description: 'If running Gemini on Vertex Model Garden, specify the endpoint ID.' type: string default: null nullable: true x-speakeasy-param-computed: false location_id: description: 'If running Gemini on Vertex, specify the location ID.' type: string default: null nullable: true x-speakeasy-param-computed: false project_id: description: 'If running Gemini on Vertex, specify the project ID.' type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false huggingface: type: object default: null nullable: true properties: use_cache: description: Use the cache layer on the inference API type: boolean default: null nullable: true x-speakeasy-param-computed: false wait_for_model: description: Wait for the model if it is not ready type: boolean default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false input_cost: description: Defines the cost per 1M tokens in your prompt. type: number default: null nullable: true x-speakeasy-param-computed: false llama2_format: description: 'If using llama2 provider, select the upstream message format.' type: string enum: - ollama - openai - raw x-speakeasy-unknown-values: allow max_tokens: description: 'Defines the max_tokens, if using chat or completion models.' type: integer default: null nullable: true x-speakeasy-param-computed: false mistral_format: description: 'If using mistral provider, select the upstream message format.' type: string enum: - ollama - openai x-speakeasy-unknown-values: allow output_cost: description: Defines the cost per 1M tokens in the output of the AI. type: number default: null nullable: true x-speakeasy-param-computed: false temperature: description: 'Defines the matching temperature, if using chat or completion models.' type: number default: null maximum: 5 minimum: 0 nullable: true x-speakeasy-param-computed: false top_k: description: 'Defines the top-k most likely tokens, if supported.' type: integer default: null maximum: 500 minimum: 0 nullable: true x-speakeasy-param-computed: false top_p: description: 'Defines the top-p probability mass, if supported.' type: number default: null maximum: 1 minimum: 0 nullable: true x-speakeasy-param-computed: false upstream_path: description: 'Manually specify or override the AI operation path, used when e.g. using the ''preserve'' route_type.' type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false provider: description: AI provider request format - Kong translates requests to and from the specified backend compatible formats. type: string enum: - anthropic - azure - bedrock - cerebras - cohere - dashscope - databricks - deepseek - gemini - huggingface - llama2 - mistral - ollama - openai - vllm - xai x-speakeasy-unknown-values: allow required: - provider 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 x-speakeasy-unknown-values: allow route_type: description: 'The model''s operation implementation, for this provider. ' type: string enum: - audio/v1/audio/speech - audio/v1/audio/transcriptions - audio/v1/audio/translations - image/v1/images/edits - image/v1/images/generations - llm/v1/assistants - llm/v1/batches - llm/v1/chat - llm/v1/completions - llm/v1/embeddings - llm/v1/files - llm/v1/responses - preserve - realtime/v1/realtime - video/v1/videos/generations x-speakeasy-unknown-values: allow required: - model - route_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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: ai-proxy 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config AiRagInjectorPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiRagInjectorPluginConfig' AiRagInjectorPluginConfig: x-speakeasy-entity: GatewayPluginAiRagInjector properties: config: type: object properties: collection_acl_config: description: Per-collection ACL overrides type: object default: null additionalProperties: properties: allow: description: Consumer identifiers allowed access to this collection type: array items: type: string default: [] deny: description: Consumer identifiers denied access to this collection type: array items: type: string default: [] type: object nullable: true x-speakeasy-param-computed: false consumer_identifier: description: The type of consumer identifier used for ACL checks type: string default: consumer_group enum: - consumer_group - consumer_id - custom_id - username x-speakeasy-unknown-values: allow embeddings: type: object properties: auth: type: object default: null nullable: true 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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_metadata_url: description: 'Custom metadata URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If null, Kong will use the default Google metadata endpoint.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false gcp_oauth_token_url: description: 'Custom OAuth token URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If null, Kong will use the default Google OAuth token endpoint.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false header_value: description: 'Specify the full auth header value for ''header_name'', for example ''Bearer key'' or just ''key''.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow param_name: description: 'If AI model requires authentication via query parameter, specify its name here.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false param_value: description: Specify the full parameter value for 'param_name'. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false model: type: object properties: name: description: Model name to execute. type: string options: description: Key/value settings for the model type: object default: null nullable: true properties: azure: type: object default: null nullable: true properties: api_version: description: '''api-version'' for Azure OpenAI instances.' type: string default: '2023-05-15' deployment_id: description: Deployment ID for Azure OpenAI instances. type: string default: null nullable: true x-speakeasy-param-computed: false instance: description: Instance name for Azure OpenAI hosted models. type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false bedrock: type: object default: null nullable: true properties: aws_assume_role_arn: description: If using AWS providers (Bedrock) you can assume a different role after authentication with the current IAM context is successful. type: string default: null nullable: true x-speakeasy-param-computed: false aws_region: description: If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option. type: string default: null nullable: true x-speakeasy-param-computed: false aws_role_session_name: description: 'If using AWS providers (Bedrock), set the identifier of the assumed role session.' type: string default: null nullable: true x-speakeasy-param-computed: false aws_sts_endpoint_url: description: 'If using AWS providers (Bedrock), override the STS endpoint URL when assuming a different role.' type: string default: null nullable: true x-speakeasy-param-computed: false batch_bucket_prefix: description: 'S3 URI prefix (s3://bucket/prefix/) where Bedrock will get input files from and store results to for native batch API.' type: string default: null nullable: true x-speakeasy-param-computed: false batch_role_arn: description: AWS role arn used for calling batch API. Try to get the value from request if ommited. type: string default: null nullable: true x-speakeasy-param-computed: false embeddings_normalize: description: 'If using AWS providers (Bedrock), set to true to normalize the embeddings.' type: boolean default: false performance_config_latency: description: Force the client's performance configuration 'latency' for all requests. Leave empty to let the consumer select the performance configuration. type: string default: null nullable: true x-speakeasy-param-computed: false video_output_s3_uri: description: 'S3 URI (s3://bucket/prefix) where Bedrock will store generated video files. Required for video generation.' type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false gemini: type: object default: null nullable: true properties: api_endpoint: description: 'If running Gemini on Vertex, specify the regional API endpoint (hostname only).' type: string default: null nullable: true x-speakeasy-param-computed: false location_id: description: 'If running Gemini on Vertex, specify the location ID.' type: string default: null nullable: true x-speakeasy-param-computed: false project_id: description: 'If running Gemini on Vertex, specify the project ID.' type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false huggingface: type: object default: null nullable: true properties: use_cache: description: Use the cache layer on the inference API type: boolean default: null nullable: true x-speakeasy-param-computed: false wait_for_model: description: Wait for the model if it is not ready type: boolean default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false upstream_url: description: upstream url for the embeddings type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false provider: description: AI provider format to use for embeddings API type: string enum: - azure - bedrock - gemini - huggingface - mistral - ollama - openai x-speakeasy-unknown-values: allow required: - name - provider required: - model fetch_chunks_count: description: The maximum number of chunks to fetch from vectordb type: number default: 5 filter_mode: description: 'Defines how the plugin behaves when a filter is invalid. Set to `compatible` to ignore invalid filters, or `strict` to raise an error. This can be overridden per request.' type: string default: compatible enum: - compatible - strict x-speakeasy-unknown-values: allow global_acl_config: description: Global ACL configuration for all RAG operations type: object default: null nullable: true properties: allow: description: 'Consumer identifiers allowed access (groups, IDs, usernames, or custom IDs based on consumer_identifier setting)' type: array items: type: string default: [] deny: description: 'Consumer identifiers denied access (groups, IDs, usernames, or custom IDs based on consumer_identifier setting)' type: array items: type: string default: [] x-speakeasy-param-computed: false inject_as_role: type: string default: user enum: - assistant - system - user x-speakeasy-unknown-values: allow inject_template: type: string default: |- <CONTEXT> <PROMPT> max_filter_clauses: description: Maximum number of filter clauses allowed type: integer default: 100 maximum: 1000 minimum: 1 stop_on_failure: description: Halt the LLM request process in case of a vectordb or embeddings service failure type: boolean default: false stop_on_filter_error: description: Default behavior when filter parsing fails (can be overridden per-request) 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 x-speakeasy-unknown-values: allow pgvector: type: object default: null nullable: true properties: database: description: the database of the pgvector database type: string default: kong-pgvector host: description: the host of the pgvector database type: string default: 127.0.0.1 password: description: the password of the pgvector database type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: the port of the pgvector database type: integer default: 5432 ssl: description: whether to use ssl for the pgvector database type: boolean default: false ssl_cert: description: the path of ssl cert to use for the pgvector database type: string default: null nullable: true x-speakeasy-param-computed: false ssl_cert_key: description: the path of ssl cert key to use for the pgvector database type: string default: null nullable: true x-speakeasy-param-computed: false ssl_required: description: whether ssl is required for the pgvector database type: boolean default: false ssl_verify: description: whether to verify ssl for the pgvector database type: boolean default: false ssl_version: description: the ssl version to use for the pgvector database type: string default: tlsv1_2 enum: - any - tlsv1_2 - tlsv1_3 x-speakeasy-unknown-values: allow timeout: description: the timeout of the pgvector database type: number default: 5000 user: description: the user of the pgvector database type: string default: postgres x-referenceable: true x-speakeasy-param-computed: false redis: type: object default: null nullable: true properties: cloud_authentication: description: Cloud auth related configs for connecting to a Cloud Provider's Redis instance. type: object default: null nullable: true properties: auth_provider: description: Auth providers to be used to authenticate to a Cloud Provider's Redis instance. type: string enum: - aws - azure - gcp x-referenceable: true x-speakeasy-unknown-values: allow aws_access_key_id: description: AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_is_serverless: description: This flag specifies whether the cluster is serverless when auth_provider is set to `aws`. type: boolean default: true aws_region: description: The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false 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 x-referenceable: true 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 default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: string default: '6379' maximum: 65535 minimum: 0 x-referenceable: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false sentinel_password: description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false server_name: description: A string representing an SNI (server name indication) value for TLS. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-transform-from-api: jq: | if has("port") then .port |= if type == "number" then tostring else . end else . end x-speakeasy-transform-to-api: jq: | if has("port") then if (.port | type) == "string" and (.port | test("^[0-9]+$")) then .port |= tonumber else . end else . end strategy: description: which vector database driver to use type: string enum: - pgvector - redis x-speakeasy-unknown-values: allow threshold: description: the default similarity threshold for accepting semantic search results (float). Higher threshold means more results are considered similar. type: number default: null nullable: true x-speakeasy-param-computed: false required: - dimensions - distance_metric - strategy vectordb_namespace: description: The namespace of the vectordb to use for embeddings lookup type: string default: kong_rag_injector 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: ai-rag-injector protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config x-supported-partials: - name: embeddings paths: - config.embeddings - name: vectordb paths: - config.vectordb AiRateLimitingAdvancedPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiRateLimitingAdvancedPluginConfig' AiRateLimitingAdvancedPluginConfig: x-speakeasy-entity: GatewayPluginAiRateLimitingAdvanced properties: config: type: object default: null nullable: true properties: custom_cost_count_function: description: 'If defined, it uses custom function to generate cost for the inference request' type: string default: null nullable: true x-speakeasy-param-computed: false decrease_by_fractions_in_redis: description: 'By default, Kong decreates the AI rate limiting counters by whole number in Redis. This setting allows to decrease the counters by float number.' type: boolean default: false 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. The dictionary must be defined in the nginx configuration using `lua_shared_dict` directive (e.g., `lua_shared_dict kong_rate_limiting_counters 12m`).' 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 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 default: null nullable: true x-speakeasy-param-computed: false 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`. Note if `identifier` is `consumer-group`, the plugin must be applied on a consumer group entity. Because a consumer may belong to multiple consumer groups, the plugin needs to know explicitly which consumer group to limit the rate.' type: string default: consumer enum: - consumer - consumer-group - credential - header - ip - path - service x-speakeasy-unknown-values: allow llm_format: description: LLM input and output format and schema to use type: string enum: - anthropic - bedrock - cohere - gemini - huggingface - openai x-speakeasy-unknown-values: allow llm_providers: description: 'The provider config. Takes an array of `name`, `limit` and `window size` values. Mutually exclusive with `policies`.' type: array items: properties: 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 name: description: The LLM provider to which the rate limit applies. type: string enum: - anthropic - azure - bedrock - cohere - customCost - gemini - huggingface - llama2 - mistral - openai - requestPrompt x-speakeasy-unknown-values: allow 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 required: - limit - name - window_size type: object default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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: null nullable: true x-speakeasy-param-computed: false policies: description: Policy-based rate limiting. Each policy defines match conditions and limits. Mutually exclusive with `llm_providers`. type: array items: properties: id: description: UUID reference to a reusable ai_rate_limiting_policies DAO entity. Mutually exclusive with inline limits. type: string limits: description: Rate limits to enforce when this policy matches. type: array items: properties: limit: description: The rate limit threshold for this window. type: number tokens_count_strategy: description: 'What to count for this limit. Supported strategies: total_tokens, prompt_tokens, completion_tokens, cost.' type: string default: total_tokens enum: - completion_tokens - cost - prompt_tokens - total_tokens x-speakeasy-unknown-values: allow window_size: description: The window size in seconds. type: integer required: - limit - window_size type: object default: null minLength: 1 nullable: true x-speakeasy-param-computed: false match: description: 'Array of match conditions (AND logic). If omitted, this policy acts as a fallback for unmatched requests.' type: array items: properties: key: description: 'Sub-key for consumer (id|username|custom_id), consumer_group (id|name), or header (header name).' type: string default: null nullable: true x-speakeasy-param-computed: false partition_by: description: 'If true, the matched value contributes to the composite rate limit counter key.' type: boolean default: false type: description: The attribute to match against. type: string enum: - consumer - consumer_group - header - ip - model - path - provider x-speakeasy-unknown-values: allow values: description: 'Values to match. If omitted, matches any value of this type.' type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false required: - type type: object default: null nullable: true x-speakeasy-param-computed: false window_type: description: The time window type for this policy. type: string default: sliding enum: - fixed - sliding x-speakeasy-unknown-values: allow type: object default: null nullable: true x-speakeasy-param-computed: false redis: type: object default: null nullable: true properties: cloud_authentication: description: Cloud auth related configs for connecting to a Cloud Provider's Redis instance. type: object default: null nullable: true properties: auth_provider: description: Auth providers to be used to authenticate to a Cloud Provider's Redis instance. type: string enum: - aws - azure - gcp x-referenceable: true x-speakeasy-unknown-values: allow aws_access_key_id: description: AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_is_serverless: description: This flag specifies whether the cluster is serverless when auth_provider is set to `aws`. type: boolean default: true aws_region: description: The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false 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 x-referenceable: true 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 default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: string default: '6379' maximum: 65535 minimum: 0 x-referenceable: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false sentinel_password: description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false server_name: description: A string representing an SNI (server name indication) value for TLS. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-transform-from-api: jq: | if has("port") then .port |= if type == "number" then tostring else . end else . end x-speakeasy-transform-to-api: jq: | if has("port") then if (.port | type) == "string" and (.port | test("^[0-9]+$")) then .port |= tonumber else . end else . end request_prompt_count_function: description: 'If defined, it use custom function to count requests for the request prompt provider' type: string default: null nullable: true x-speakeasy-param-computed: false 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`, `redis` and `cluster`.' type: string default: local enum: - cluster - local - redis x-speakeasy-unknown-values: allow 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 x-speakeasy-unknown-values: allow x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: ai-rate-limiting-advanced protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false x-supported-partials: - name: redis-ee paths: - config.redis AiRequestTransformerPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiRequestTransformerPluginConfig' AiRequestTransformerPluginConfig: x-speakeasy-entity: GatewayPluginAiRequestTransformer properties: config: type: object properties: http_proxy_host: description: 'A string representing a host name, such as example.com.' type: string default: null nullable: true x-speakeasy-param-computed: false http_proxy_port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer default: null maximum: 65535 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false https_proxy_port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer default: null maximum: 65535 minimum: 0 nullable: true x-speakeasy-param-computed: false https_verify: description: Verify the TLS certificate of the AI upstream service. type: boolean default: true llm: type: object properties: auth: type: object default: null nullable: true 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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_metadata_url: description: 'Custom metadata URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If null, Kong will use the default Google metadata endpoint.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false gcp_oauth_token_url: description: 'Custom OAuth token URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If null, Kong will use the default Google OAuth token endpoint.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false header_value: description: 'Specify the full auth header value for ''header_name'', for example ''Bearer key'' or just ''key''.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow param_name: description: 'If AI model requires authentication via query parameter, specify its name here.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false param_value: description: Specify the full parameter value for 'param_name'. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false description: description: 'The semantic description of the target, required if using semantic load balancing. Specially, setting this to ''CATCHALL'' will indicate such target to be used when no other targets match the semantic threshold. Only used by ai-proxy-advanced.' type: string default: null nullable: true x-speakeasy-param-computed: false logging: type: object default: null nullable: true properties: log_payloads: description: 'If enabled, will log the request and response body into the Kong log plugin(s) output.Furthermore if Opentelemetry instrumentation is enabled the traces will contain this data as well.' 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 x-speakeasy-param-computed: false metadata: description: 'For internal use only. ' type: object additionalProperties: true nullable: true x-speakeasy-terraform-ignore: true x-speakeasy-type-override: any model: type: object properties: model_alias: description: The model name parameter from the request that this model should map to. type: string default: null nullable: true x-speakeasy-param-computed: false name: description: Model name to execute. type: string default: null nullable: true x-speakeasy-param-computed: false options: description: Key/value settings for the model type: object default: null nullable: true properties: anthropic_version: description: 'Defines the schema/API version, if using Anthropic provider.' type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false azure_instance: description: Instance name for Azure OpenAI hosted models. type: string default: null nullable: true x-speakeasy-param-computed: false bedrock: type: object default: null nullable: true properties: aws_assume_role_arn: description: If using AWS providers (Bedrock) you can assume a different role after authentication with the current IAM context is successful. type: string default: null nullable: true x-speakeasy-param-computed: false aws_region: description: If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option. type: string default: null nullable: true x-speakeasy-param-computed: false aws_role_session_name: description: 'If using AWS providers (Bedrock), set the identifier of the assumed role session.' type: string default: null nullable: true x-speakeasy-param-computed: false aws_sts_endpoint_url: description: 'If using AWS providers (Bedrock), override the STS endpoint URL when assuming a different role.' type: string default: null nullable: true x-speakeasy-param-computed: false batch_bucket_prefix: description: 'S3 URI prefix (s3://bucket/prefix/) where Bedrock will get input files from and store results to for native batch API.' type: string default: null nullable: true x-speakeasy-param-computed: false batch_role_arn: description: AWS role arn used for calling batch API. Try to get the value from request if ommited. type: string default: null nullable: true x-speakeasy-param-computed: false embeddings_normalize: description: 'If using AWS providers (Bedrock), set to true to normalize the embeddings.' type: boolean default: false performance_config_latency: description: Force the client's performance configuration 'latency' for all requests. Leave empty to let the consumer select the performance configuration. type: string default: null nullable: true x-speakeasy-param-computed: false video_output_s3_uri: description: 'S3 URI (s3://bucket/prefix) where Bedrock will store generated video files. Required for video generation.' type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false cohere: type: object default: null nullable: true properties: embedding_input_type: description: The purpose of the input text to calculate embedding vectors. type: string default: classification enum: - classification - clustering - image - search_document - search_query x-speakeasy-unknown-values: allow wait_for_model: description: Wait for the model if it is not ready type: boolean default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false dashscope: type: object default: null nullable: true properties: international: description: | Two Dashscope endpoints are available, and the international endpoint will be used when this is set to `true`. It is recommended to set this to `true` when using international version of dashscope. type: boolean default: true x-speakeasy-param-computed: false databricks: type: object default: null nullable: true properties: workspace_instance_id: description: Workspace Instance ID ('dbc-xxx-yyy') for Databricks model serving. type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false embeddings_dimensions: description: 'If using embeddings models, set the number of dimensions to generate.' type: integer default: null nullable: true x-speakeasy-param-computed: false gemini: type: object default: null nullable: true properties: api_endpoint: description: 'If running Gemini on Vertex, specify the regional API endpoint (hostname only).' type: string default: null nullable: true x-speakeasy-param-computed: false endpoint_id: description: 'If running Gemini on Vertex Model Garden, specify the endpoint ID.' type: string default: null nullable: true x-speakeasy-param-computed: false location_id: description: 'If running Gemini on Vertex, specify the location ID.' type: string default: null nullable: true x-speakeasy-param-computed: false project_id: description: 'If running Gemini on Vertex, specify the project ID.' type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false huggingface: type: object default: null nullable: true properties: use_cache: description: Use the cache layer on the inference API type: boolean default: null nullable: true x-speakeasy-param-computed: false wait_for_model: description: Wait for the model if it is not ready type: boolean default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false input_cost: description: Defines the cost per 1M tokens in your prompt. type: number default: null nullable: true x-speakeasy-param-computed: false llama2_format: description: 'If using llama2 provider, select the upstream message format.' type: string enum: - ollama - openai - raw x-speakeasy-unknown-values: allow max_tokens: description: 'Defines the max_tokens, if using chat or completion models.' type: integer default: null nullable: true x-speakeasy-param-computed: false mistral_format: description: 'If using mistral provider, select the upstream message format.' type: string enum: - ollama - openai x-speakeasy-unknown-values: allow output_cost: description: Defines the cost per 1M tokens in the output of the AI. type: number default: null nullable: true x-speakeasy-param-computed: false temperature: description: 'Defines the matching temperature, if using chat or completion models.' type: number default: null maximum: 5 minimum: 0 nullable: true x-speakeasy-param-computed: false top_k: description: 'Defines the top-k most likely tokens, if supported.' type: integer default: null maximum: 500 minimum: 0 nullable: true x-speakeasy-param-computed: false top_p: description: 'Defines the top-p probability mass, if supported.' type: number default: null maximum: 1 minimum: 0 nullable: true x-speakeasy-param-computed: false upstream_path: description: 'Manually specify or override the AI operation path, used when e.g. using the ''preserve'' route_type.' type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false provider: description: AI provider request format - Kong translates requests to and from the specified backend compatible formats. type: string enum: - anthropic - azure - bedrock - cerebras - cohere - dashscope - databricks - deepseek - gemini - huggingface - llama2 - mistral - ollama - openai - vllm - xai x-speakeasy-unknown-values: allow required: - provider route_type: description: 'The model''s operation implementation, for this provider. ' type: string enum: - audio/v1/audio/speech - audio/v1/audio/transcriptions - audio/v1/audio/translations - image/v1/images/edits - image/v1/images/generations - llm/v1/assistants - llm/v1/batches - llm/v1/chat - llm/v1/completions - llm/v1/embeddings - llm/v1/files - llm/v1/responses - preserve - realtime/v1/realtime - video/v1/videos/generations x-speakeasy-unknown-values: allow weight: description: The weight this target gets within the upstream loadbalancer (1-65535). Only used by ai-proxy-advanced. type: integer default: 100 maximum: 65535 minimum: 1 required: - model - route_type max_request_body_size: description: 'max allowed body size allowed to be introspected. 0 means unlimited, but the size of this body will still be limited by Nginx''s client_max_body_size.' type: integer default: 1048576 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 default: null nullable: true x-speakeasy-param-computed: false required: - prompt 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: ai-request-transformer protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config x-supported-partials: - name: model paths: - config.llm AiResponseTransformerPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiResponseTransformerPluginConfig' AiResponseTransformerPluginConfig: x-speakeasy-entity: GatewayPluginAiResponseTransformer properties: config: type: object properties: http_proxy_host: description: 'A string representing a host name, such as example.com.' type: string default: null nullable: true x-speakeasy-param-computed: false http_proxy_port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer default: null maximum: 65535 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false https_proxy_port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer default: null maximum: 65535 minimum: 0 nullable: true x-speakeasy-param-computed: false https_verify: description: Verify the TLS certificate of the AI upstream service. type: boolean default: true llm: type: object properties: auth: type: object default: null nullable: true 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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_metadata_url: description: 'Custom metadata URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If null, Kong will use the default Google metadata endpoint.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false gcp_oauth_token_url: description: 'Custom OAuth token URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If null, Kong will use the default Google OAuth token endpoint.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false header_value: description: 'Specify the full auth header value for ''header_name'', for example ''Bearer key'' or just ''key''.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow param_name: description: 'If AI model requires authentication via query parameter, specify its name here.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false param_value: description: Specify the full parameter value for 'param_name'. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false description: description: 'The semantic description of the target, required if using semantic load balancing. Specially, setting this to ''CATCHALL'' will indicate such target to be used when no other targets match the semantic threshold. Only used by ai-proxy-advanced.' type: string default: null nullable: true x-speakeasy-param-computed: false logging: type: object default: null nullable: true properties: log_payloads: description: 'If enabled, will log the request and response body into the Kong log plugin(s) output.Furthermore if Opentelemetry instrumentation is enabled the traces will contain this data as well.' 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 x-speakeasy-param-computed: false metadata: description: 'For internal use only. ' type: object additionalProperties: true nullable: true x-speakeasy-terraform-ignore: true x-speakeasy-type-override: any model: type: object properties: model_alias: description: The model name parameter from the request that this model should map to. type: string default: null nullable: true x-speakeasy-param-computed: false name: description: Model name to execute. type: string default: null nullable: true x-speakeasy-param-computed: false options: description: Key/value settings for the model type: object default: null nullable: true properties: anthropic_version: description: 'Defines the schema/API version, if using Anthropic provider.' type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false azure_instance: description: Instance name for Azure OpenAI hosted models. type: string default: null nullable: true x-speakeasy-param-computed: false bedrock: type: object default: null nullable: true properties: aws_assume_role_arn: description: If using AWS providers (Bedrock) you can assume a different role after authentication with the current IAM context is successful. type: string default: null nullable: true x-speakeasy-param-computed: false aws_region: description: If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option. type: string default: null nullable: true x-speakeasy-param-computed: false aws_role_session_name: description: 'If using AWS providers (Bedrock), set the identifier of the assumed role session.' type: string default: null nullable: true x-speakeasy-param-computed: false aws_sts_endpoint_url: description: 'If using AWS providers (Bedrock), override the STS endpoint URL when assuming a different role.' type: string default: null nullable: true x-speakeasy-param-computed: false batch_bucket_prefix: description: 'S3 URI prefix (s3://bucket/prefix/) where Bedrock will get input files from and store results to for native batch API.' type: string default: null nullable: true x-speakeasy-param-computed: false batch_role_arn: description: AWS role arn used for calling batch API. Try to get the value from request if ommited. type: string default: null nullable: true x-speakeasy-param-computed: false embeddings_normalize: description: 'If using AWS providers (Bedrock), set to true to normalize the embeddings.' type: boolean default: false performance_config_latency: description: Force the client's performance configuration 'latency' for all requests. Leave empty to let the consumer select the performance configuration. type: string default: null nullable: true x-speakeasy-param-computed: false video_output_s3_uri: description: 'S3 URI (s3://bucket/prefix) where Bedrock will store generated video files. Required for video generation.' type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false cohere: type: object default: null nullable: true properties: embedding_input_type: description: The purpose of the input text to calculate embedding vectors. type: string default: classification enum: - classification - clustering - image - search_document - search_query x-speakeasy-unknown-values: allow wait_for_model: description: Wait for the model if it is not ready type: boolean default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false dashscope: type: object default: null nullable: true properties: international: description: | Two Dashscope endpoints are available, and the international endpoint will be used when this is set to `true`. It is recommended to set this to `true` when using international version of dashscope. type: boolean default: true x-speakeasy-param-computed: false databricks: type: object default: null nullable: true properties: workspace_instance_id: description: Workspace Instance ID ('dbc-xxx-yyy') for Databricks model serving. type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false embeddings_dimensions: description: 'If using embeddings models, set the number of dimensions to generate.' type: integer default: null nullable: true x-speakeasy-param-computed: false gemini: type: object default: null nullable: true properties: api_endpoint: description: 'If running Gemini on Vertex, specify the regional API endpoint (hostname only).' type: string default: null nullable: true x-speakeasy-param-computed: false endpoint_id: description: 'If running Gemini on Vertex Model Garden, specify the endpoint ID.' type: string default: null nullable: true x-speakeasy-param-computed: false location_id: description: 'If running Gemini on Vertex, specify the location ID.' type: string default: null nullable: true x-speakeasy-param-computed: false project_id: description: 'If running Gemini on Vertex, specify the project ID.' type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false huggingface: type: object default: null nullable: true properties: use_cache: description: Use the cache layer on the inference API type: boolean default: null nullable: true x-speakeasy-param-computed: false wait_for_model: description: Wait for the model if it is not ready type: boolean default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false input_cost: description: Defines the cost per 1M tokens in your prompt. type: number default: null nullable: true x-speakeasy-param-computed: false llama2_format: description: 'If using llama2 provider, select the upstream message format.' type: string enum: - ollama - openai - raw x-speakeasy-unknown-values: allow max_tokens: description: 'Defines the max_tokens, if using chat or completion models.' type: integer default: null nullable: true x-speakeasy-param-computed: false mistral_format: description: 'If using mistral provider, select the upstream message format.' type: string enum: - ollama - openai x-speakeasy-unknown-values: allow output_cost: description: Defines the cost per 1M tokens in the output of the AI. type: number default: null nullable: true x-speakeasy-param-computed: false temperature: description: 'Defines the matching temperature, if using chat or completion models.' type: number default: null maximum: 5 minimum: 0 nullable: true x-speakeasy-param-computed: false top_k: description: 'Defines the top-k most likely tokens, if supported.' type: integer default: null maximum: 500 minimum: 0 nullable: true x-speakeasy-param-computed: false top_p: description: 'Defines the top-p probability mass, if supported.' type: number default: null maximum: 1 minimum: 0 nullable: true x-speakeasy-param-computed: false upstream_path: description: 'Manually specify or override the AI operation path, used when e.g. using the ''preserve'' route_type.' type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false provider: description: AI provider request format - Kong translates requests to and from the specified backend compatible formats. type: string enum: - anthropic - azure - bedrock - cerebras - cohere - dashscope - databricks - deepseek - gemini - huggingface - llama2 - mistral - ollama - openai - vllm - xai x-speakeasy-unknown-values: allow required: - provider route_type: description: 'The model''s operation implementation, for this provider. ' type: string enum: - audio/v1/audio/speech - audio/v1/audio/transcriptions - audio/v1/audio/translations - image/v1/images/edits - image/v1/images/generations - llm/v1/assistants - llm/v1/batches - llm/v1/chat - llm/v1/completions - llm/v1/embeddings - llm/v1/files - llm/v1/responses - preserve - realtime/v1/realtime - video/v1/videos/generations x-speakeasy-unknown-values: allow weight: description: The weight this target gets within the upstream loadbalancer (1-65535). Only used by ai-proxy-advanced. type: integer default: 100 maximum: 65535 minimum: 1 required: - model - route_type max_request_body_size: description: 'max allowed body size allowed to be introspected. 0 means unlimited, but the size of this body will still be limited by Nginx''s client_max_body_size.' type: integer default: 1048576 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 default: null nullable: true x-speakeasy-param-computed: false required: - prompt 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: ai-response-transformer protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config x-supported-partials: - name: model paths: - config.llm AiSanitizerPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiSanitizerPluginConfig' AiSanitizerPluginConfig: x-speakeasy-entity: GatewayPluginAiSanitizer properties: config: type: object default: null nullable: true properties: allow_all_conversation_history: description: 'If false, will ignore all previous chat messages from the conversation history.' type: boolean default: true anonymize: description: List of types to be anonymized type: array items: enum: - all - all_and_credentials - bank - credentials - creditcard - crypto - custom - date - domain - driverlicense - email - general - ip - medical - nationalid - nrp - passport - phone - ssn - url type: string x-speakeasy-unknown-values: allow default: - all_and_credentials block_if_detected: description: Whether to block requests containing PII data type: boolean default: false custom_patterns: description: List of custom patterns to be used for anonymization type: array items: properties: name: type: string regex: type: string score: type: number maximum: 1 minimum: 0 x-speakeasy-param-computed: true required: - name - regex type: object default: null minLength: 1 nullable: true x-speakeasy-param-computed: false host: description: The host of the sanitizer type: string default: localhost keepalive_timeout: description: The keepalive timeout for the established http connnection type: number default: 60000 port: description: The port of the sanitizer type: number default: 8080 recover_redacted: description: Whether to recover redacted data. This doesn't apply to the redacted output. type: boolean default: true redact_type: description: What value to be used to redacted to type: string default: placeholder enum: - placeholder - synthetic x-speakeasy-unknown-values: allow sanitization_mode: description: The sanitization mode to use for the request type: string default: INPUT enum: - BOTH - INPUT - OUTPUT x-speakeasy-unknown-values: allow scheme: description: The protocol can be http and https type: string default: http skip_logging_sanitized_items: description: Whether to log sanitized items in the Kong log plugins. Turn it on if you want to hide sensitive data from logs. type: boolean default: false stop_on_error: description: Stop processing if an error occurs. type: boolean default: true timeout: description: Connection timeout with the sanitizer type: number default: 10000 x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: ai-sanitizer protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false AiSemanticCachePlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiSemanticCachePluginConfig' AiSemanticCachePluginConfig: x-speakeasy-entity: GatewayPluginAiSemanticCache 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 embeddings: type: object properties: auth: type: object default: null nullable: true 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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_metadata_url: description: 'Custom metadata URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If null, Kong will use the default Google metadata endpoint.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false gcp_oauth_token_url: description: 'Custom OAuth token URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If null, Kong will use the default Google OAuth token endpoint.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false header_value: description: 'Specify the full auth header value for ''header_name'', for example ''Bearer key'' or just ''key''.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow param_name: description: 'If AI model requires authentication via query parameter, specify its name here.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false param_value: description: Specify the full parameter value for 'param_name'. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false model: type: object properties: name: description: Model name to execute. type: string options: description: Key/value settings for the model type: object default: null nullable: true properties: azure: type: object default: null nullable: true properties: api_version: description: '''api-version'' for Azure OpenAI instances.' type: string default: '2023-05-15' deployment_id: description: Deployment ID for Azure OpenAI instances. type: string default: null nullable: true x-speakeasy-param-computed: false instance: description: Instance name for Azure OpenAI hosted models. type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false bedrock: type: object default: null nullable: true properties: aws_assume_role_arn: description: If using AWS providers (Bedrock) you can assume a different role after authentication with the current IAM context is successful. type: string default: null nullable: true x-speakeasy-param-computed: false aws_region: description: If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option. type: string default: null nullable: true x-speakeasy-param-computed: false aws_role_session_name: description: 'If using AWS providers (Bedrock), set the identifier of the assumed role session.' type: string default: null nullable: true x-speakeasy-param-computed: false aws_sts_endpoint_url: description: 'If using AWS providers (Bedrock), override the STS endpoint URL when assuming a different role.' type: string default: null nullable: true x-speakeasy-param-computed: false batch_bucket_prefix: description: 'S3 URI prefix (s3://bucket/prefix/) where Bedrock will get input files from and store results to for native batch API.' type: string default: null nullable: true x-speakeasy-param-computed: false batch_role_arn: description: AWS role arn used for calling batch API. Try to get the value from request if ommited. type: string default: null nullable: true x-speakeasy-param-computed: false embeddings_normalize: description: 'If using AWS providers (Bedrock), set to true to normalize the embeddings.' type: boolean default: false performance_config_latency: description: Force the client's performance configuration 'latency' for all requests. Leave empty to let the consumer select the performance configuration. type: string default: null nullable: true x-speakeasy-param-computed: false video_output_s3_uri: description: 'S3 URI (s3://bucket/prefix) where Bedrock will store generated video files. Required for video generation.' type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false gemini: type: object default: null nullable: true properties: api_endpoint: description: 'If running Gemini on Vertex, specify the regional API endpoint (hostname only).' type: string default: null nullable: true x-speakeasy-param-computed: false location_id: description: 'If running Gemini on Vertex, specify the location ID.' type: string default: null nullable: true x-speakeasy-param-computed: false project_id: description: 'If running Gemini on Vertex, specify the project ID.' type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false huggingface: type: object default: null nullable: true properties: use_cache: description: Use the cache layer on the inference API type: boolean default: null nullable: true x-speakeasy-param-computed: false wait_for_model: description: Wait for the model if it is not ready type: boolean default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false upstream_url: description: upstream url for the embeddings type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false provider: description: AI provider format to use for embeddings API type: string enum: - azure - bedrock - gemini - huggingface - mistral - ollama - openai x-speakeasy-unknown-values: allow required: - name - provider required: - model 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 llm_format: description: LLM input and output format and schema to use type: string default: openai enum: - anthropic - bedrock - cohere - gemini - huggingface - openai x-speakeasy-unknown-values: allow 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 x-speakeasy-unknown-values: allow pgvector: type: object default: null nullable: true properties: database: description: the database of the pgvector database type: string default: kong-pgvector host: description: the host of the pgvector database type: string default: 127.0.0.1 password: description: the password of the pgvector database type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: the port of the pgvector database type: integer default: 5432 ssl: description: whether to use ssl for the pgvector database type: boolean default: false ssl_cert: description: the path of ssl cert to use for the pgvector database type: string default: null nullable: true x-speakeasy-param-computed: false ssl_cert_key: description: the path of ssl cert key to use for the pgvector database type: string default: null nullable: true x-speakeasy-param-computed: false ssl_required: description: whether ssl is required for the pgvector database type: boolean default: false ssl_verify: description: whether to verify ssl for the pgvector database type: boolean default: false ssl_version: description: the ssl version to use for the pgvector database type: string default: tlsv1_2 enum: - any - tlsv1_2 - tlsv1_3 x-speakeasy-unknown-values: allow timeout: description: the timeout of the pgvector database type: number default: 5000 user: description: the user of the pgvector database type: string default: postgres x-referenceable: true x-speakeasy-param-computed: false redis: type: object default: null nullable: true properties: cloud_authentication: description: Cloud auth related configs for connecting to a Cloud Provider's Redis instance. type: object default: null nullable: true properties: auth_provider: description: Auth providers to be used to authenticate to a Cloud Provider's Redis instance. type: string enum: - aws - azure - gcp x-referenceable: true x-speakeasy-unknown-values: allow aws_access_key_id: description: AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_is_serverless: description: This flag specifies whether the cluster is serverless when auth_provider is set to `aws`. type: boolean default: true aws_region: description: The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false 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 x-referenceable: true 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 default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: string default: '6379' maximum: 65535 minimum: 0 x-referenceable: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false sentinel_password: description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false server_name: description: A string representing an SNI (server name indication) value for TLS. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-transform-from-api: jq: | if has("port") then .port |= if type == "number" then tostring else . end else . end x-speakeasy-transform-to-api: jq: | if has("port") then if (.port | type) == "string" and (.port | test("^[0-9]+$")) then .port |= tonumber else . end else . end strategy: description: which vector database driver to use type: string enum: - pgvector - redis x-speakeasy-unknown-values: allow threshold: description: the default similarity threshold for accepting semantic search results (float). Higher threshold means more results are considered similar. type: number default: null nullable: true x-speakeasy-param-computed: false required: - dimensions - distance_metric - strategy 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: ai-semantic-cache protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config x-supported-partials: - name: embeddings paths: - config.embeddings - name: vectordb paths: - config.vectordb AiSemanticPromptGuardPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiSemanticPromptGuardPluginConfig' AiSemanticPromptGuardPluginConfig: x-speakeasy-entity: GatewayPluginAiSemanticPromptGuard properties: config: type: object properties: embeddings: type: object properties: auth: type: object default: null nullable: true 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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_metadata_url: description: 'Custom metadata URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If null, Kong will use the default Google metadata endpoint.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false gcp_oauth_token_url: description: 'Custom OAuth token URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If null, Kong will use the default Google OAuth token endpoint.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false header_value: description: 'Specify the full auth header value for ''header_name'', for example ''Bearer key'' or just ''key''.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow param_name: description: 'If AI model requires authentication via query parameter, specify its name here.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false param_value: description: Specify the full parameter value for 'param_name'. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false model: type: object properties: name: description: Model name to execute. type: string options: description: Key/value settings for the model type: object default: null nullable: true properties: azure: type: object default: null nullable: true properties: api_version: description: '''api-version'' for Azure OpenAI instances.' type: string default: '2023-05-15' deployment_id: description: Deployment ID for Azure OpenAI instances. type: string default: null nullable: true x-speakeasy-param-computed: false instance: description: Instance name for Azure OpenAI hosted models. type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false bedrock: type: object default: null nullable: true properties: aws_assume_role_arn: description: If using AWS providers (Bedrock) you can assume a different role after authentication with the current IAM context is successful. type: string default: null nullable: true x-speakeasy-param-computed: false aws_region: description: If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option. type: string default: null nullable: true x-speakeasy-param-computed: false aws_role_session_name: description: 'If using AWS providers (Bedrock), set the identifier of the assumed role session.' type: string default: null nullable: true x-speakeasy-param-computed: false aws_sts_endpoint_url: description: 'If using AWS providers (Bedrock), override the STS endpoint URL when assuming a different role.' type: string default: null nullable: true x-speakeasy-param-computed: false batch_bucket_prefix: description: 'S3 URI prefix (s3://bucket/prefix/) where Bedrock will get input files from and store results to for native batch API.' type: string default: null nullable: true x-speakeasy-param-computed: false batch_role_arn: description: AWS role arn used for calling batch API. Try to get the value from request if ommited. type: string default: null nullable: true x-speakeasy-param-computed: false embeddings_normalize: description: 'If using AWS providers (Bedrock), set to true to normalize the embeddings.' type: boolean default: false performance_config_latency: description: Force the client's performance configuration 'latency' for all requests. Leave empty to let the consumer select the performance configuration. type: string default: null nullable: true x-speakeasy-param-computed: false video_output_s3_uri: description: 'S3 URI (s3://bucket/prefix) where Bedrock will store generated video files. Required for video generation.' type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false gemini: type: object default: null nullable: true properties: api_endpoint: description: 'If running Gemini on Vertex, specify the regional API endpoint (hostname only).' type: string default: null nullable: true x-speakeasy-param-computed: false location_id: description: 'If running Gemini on Vertex, specify the location ID.' type: string default: null nullable: true x-speakeasy-param-computed: false project_id: description: 'If running Gemini on Vertex, specify the project ID.' type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false huggingface: type: object default: null nullable: true properties: use_cache: description: Use the cache layer on the inference API type: boolean default: null nullable: true x-speakeasy-param-computed: false wait_for_model: description: Wait for the model if it is not ready type: boolean default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false upstream_url: description: upstream url for the embeddings type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false provider: description: AI provider format to use for embeddings API type: string enum: - azure - bedrock - gemini - huggingface - mistral - ollama - openai x-speakeasy-unknown-values: allow required: - name - provider required: - model genai_category: description: Generative AI category of the request type: string default: text/generation enum: - audio/speech - audio/transcription - image/generation - realtime/generation - text/embeddings - text/generation - video/generation x-speakeasy-unknown-values: allow llm_format: description: LLM input and output format and schema to use type: string default: openai enum: - anthropic - bedrock - cohere - gemini - huggingface - openai x-speakeasy-unknown-values: allow max_request_body_size: description: 'max allowed body size allowed to be introspected. 0 means unlimited, but the size of this body will still be limited by Nginx''s client_max_body_size.' type: integer default: 1048576 rules: type: object default: null nullable: true properties: allow_prompts: description: List of prompts to allow. type: array items: maxLength: 500 minLength: 1 type: string default: null maxLength: 100 nullable: true x-speakeasy-param-computed: false deny_prompts: description: List of prompts to deny. type: array items: maxLength: 500 minLength: 1 type: string default: null maxLength: 100 nullable: true x-speakeasy-param-computed: false 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. 0 means unlimited, but the size of this body will still be limited by Nginx''s client_max_body_size.' type: integer default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false search: type: object default: null nullable: true properties: threshold: description: Threshold for the similarity score to be considered a match. type: number x-speakeasy-param-computed: true x-speakeasy-param-computed: 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 x-speakeasy-unknown-values: allow pgvector: type: object default: null nullable: true properties: database: description: the database of the pgvector database type: string default: kong-pgvector host: description: the host of the pgvector database type: string default: 127.0.0.1 password: description: the password of the pgvector database type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: the port of the pgvector database type: integer default: 5432 ssl: description: whether to use ssl for the pgvector database type: boolean default: false ssl_cert: description: the path of ssl cert to use for the pgvector database type: string default: null nullable: true x-speakeasy-param-computed: false ssl_cert_key: description: the path of ssl cert key to use for the pgvector database type: string default: null nullable: true x-speakeasy-param-computed: false ssl_required: description: whether ssl is required for the pgvector database type: boolean default: false ssl_verify: description: whether to verify ssl for the pgvector database type: boolean default: false ssl_version: description: the ssl version to use for the pgvector database type: string default: tlsv1_2 enum: - any - tlsv1_2 - tlsv1_3 x-speakeasy-unknown-values: allow timeout: description: the timeout of the pgvector database type: number default: 5000 user: description: the user of the pgvector database type: string default: postgres x-referenceable: true x-speakeasy-param-computed: false redis: type: object default: null nullable: true properties: cloud_authentication: description: Cloud auth related configs for connecting to a Cloud Provider's Redis instance. type: object default: null nullable: true properties: auth_provider: description: Auth providers to be used to authenticate to a Cloud Provider's Redis instance. type: string enum: - aws - azure - gcp x-referenceable: true x-speakeasy-unknown-values: allow aws_access_key_id: description: AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_is_serverless: description: This flag specifies whether the cluster is serverless when auth_provider is set to `aws`. type: boolean default: true aws_region: description: The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false 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 x-referenceable: true 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 default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: string default: '6379' maximum: 65535 minimum: 0 x-referenceable: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false sentinel_password: description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false server_name: description: A string representing an SNI (server name indication) value for TLS. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-transform-from-api: jq: | if has("port") then .port |= if type == "number" then tostring else . end else . end x-speakeasy-transform-to-api: jq: | if has("port") then if (.port | type) == "string" and (.port | test("^[0-9]+$")) then .port |= tonumber else . end else . end strategy: description: which vector database driver to use type: string enum: - pgvector - redis x-speakeasy-unknown-values: allow threshold: description: the default similarity threshold for accepting semantic search results (float). Higher threshold means more results are considered similar. type: number default: null nullable: true x-speakeasy-param-computed: false required: - dimensions - distance_metric - strategy 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: ai-semantic-prompt-guard protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config x-supported-partials: - name: embeddings paths: - config.embeddings - name: vectordb paths: - config.vectordb AiSemanticResponseGuardPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiSemanticResponseGuardPluginConfig' AiSemanticResponseGuardPluginConfig: x-speakeasy-entity: GatewayPluginAiSemanticResponseGuard properties: config: type: object properties: embeddings: type: object properties: auth: type: object default: null nullable: true 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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_metadata_url: description: 'Custom metadata URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If null, Kong will use the default Google metadata endpoint.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false gcp_oauth_token_url: description: 'Custom OAuth token URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If null, Kong will use the default Google OAuth token endpoint.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false header_value: description: 'Specify the full auth header value for ''header_name'', for example ''Bearer key'' or just ''key''.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow param_name: description: 'If AI model requires authentication via query parameter, specify its name here.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false param_value: description: Specify the full parameter value for 'param_name'. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false model: type: object properties: name: description: Model name to execute. type: string options: description: Key/value settings for the model type: object default: null nullable: true properties: azure: type: object default: null nullable: true properties: api_version: description: '''api-version'' for Azure OpenAI instances.' type: string default: '2023-05-15' deployment_id: description: Deployment ID for Azure OpenAI instances. type: string default: null nullable: true x-speakeasy-param-computed: false instance: description: Instance name for Azure OpenAI hosted models. type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false bedrock: type: object default: null nullable: true properties: aws_assume_role_arn: description: If using AWS providers (Bedrock) you can assume a different role after authentication with the current IAM context is successful. type: string default: null nullable: true x-speakeasy-param-computed: false aws_region: description: If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option. type: string default: null nullable: true x-speakeasy-param-computed: false aws_role_session_name: description: 'If using AWS providers (Bedrock), set the identifier of the assumed role session.' type: string default: null nullable: true x-speakeasy-param-computed: false aws_sts_endpoint_url: description: 'If using AWS providers (Bedrock), override the STS endpoint URL when assuming a different role.' type: string default: null nullable: true x-speakeasy-param-computed: false batch_bucket_prefix: description: 'S3 URI prefix (s3://bucket/prefix/) where Bedrock will get input files from and store results to for native batch API.' type: string default: null nullable: true x-speakeasy-param-computed: false batch_role_arn: description: AWS role arn used for calling batch API. Try to get the value from request if ommited. type: string default: null nullable: true x-speakeasy-param-computed: false embeddings_normalize: description: 'If using AWS providers (Bedrock), set to true to normalize the embeddings.' type: boolean default: false performance_config_latency: description: Force the client's performance configuration 'latency' for all requests. Leave empty to let the consumer select the performance configuration. type: string default: null nullable: true x-speakeasy-param-computed: false video_output_s3_uri: description: 'S3 URI (s3://bucket/prefix) where Bedrock will store generated video files. Required for video generation.' type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false gemini: type: object default: null nullable: true properties: api_endpoint: description: 'If running Gemini on Vertex, specify the regional API endpoint (hostname only).' type: string default: null nullable: true x-speakeasy-param-computed: false location_id: description: 'If running Gemini on Vertex, specify the location ID.' type: string default: null nullable: true x-speakeasy-param-computed: false project_id: description: 'If running Gemini on Vertex, specify the project ID.' type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false huggingface: type: object default: null nullable: true properties: use_cache: description: Use the cache layer on the inference API type: boolean default: null nullable: true x-speakeasy-param-computed: false wait_for_model: description: Wait for the model if it is not ready type: boolean default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false upstream_url: description: upstream url for the embeddings type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false provider: description: AI provider format to use for embeddings API type: string enum: - azure - bedrock - gemini - huggingface - mistral - ollama - openai x-speakeasy-unknown-values: allow required: - name - provider required: - model genai_category: description: Generative AI category of the request type: string default: text/generation enum: - audio/speech - audio/transcription - image/generation - realtime/generation - text/embeddings - text/generation - video/generation x-speakeasy-unknown-values: allow llm_format: description: LLM input and output format and schema to use type: string default: openai enum: - anthropic - bedrock - cohere - gemini - huggingface - openai x-speakeasy-unknown-values: allow rules: type: object default: null nullable: true properties: allow_responses: description: List of responses to allow. type: array items: maxLength: 500 minLength: 1 type: string default: null maxLength: 100 nullable: true x-speakeasy-param-computed: false deny_responses: description: List of responses to deny. type: array items: maxLength: 500 minLength: 1 type: string default: null maxLength: 100 nullable: true x-speakeasy-param-computed: false max_response_body_size: description: 'Max allowed body size allowed to be introspected. 0 means unlimited, but the size of this body will still be limited by Nginx''s client_max_body_size.' type: integer default: 8192 x-speakeasy-param-computed: false search: type: object default: null nullable: true properties: threshold: description: Threshold for the similarity score to be considered a match. type: number x-speakeasy-param-computed: true x-speakeasy-param-computed: 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 x-speakeasy-unknown-values: allow pgvector: type: object default: null nullable: true properties: database: description: the database of the pgvector database type: string default: kong-pgvector host: description: the host of the pgvector database type: string default: 127.0.0.1 password: description: the password of the pgvector database type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: the port of the pgvector database type: integer default: 5432 ssl: description: whether to use ssl for the pgvector database type: boolean default: false ssl_cert: description: the path of ssl cert to use for the pgvector database type: string default: null nullable: true x-speakeasy-param-computed: false ssl_cert_key: description: the path of ssl cert key to use for the pgvector database type: string default: null nullable: true x-speakeasy-param-computed: false ssl_required: description: whether ssl is required for the pgvector database type: boolean default: false ssl_verify: description: whether to verify ssl for the pgvector database type: boolean default: false ssl_version: description: the ssl version to use for the pgvector database type: string default: tlsv1_2 enum: - any - tlsv1_2 - tlsv1_3 x-speakeasy-unknown-values: allow timeout: description: the timeout of the pgvector database type: number default: 5000 user: description: the user of the pgvector database type: string default: postgres x-referenceable: true x-speakeasy-param-computed: false redis: type: object properties: cloud_authentication: description: Cloud auth related configs for connecting to a Cloud Provider's Redis instance. type: object default: null nullable: true properties: auth_provider: description: Auth providers to be used to authenticate to a Cloud Provider's Redis instance. type: string enum: - aws - azure - gcp x-referenceable: true x-speakeasy-unknown-values: allow aws_access_key_id: description: AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_is_serverless: description: This flag specifies whether the cluster is serverless when auth_provider is set to `aws`. type: boolean default: true aws_region: description: The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false 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 x-referenceable: true 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 default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: string default: '6379' maximum: 65535 minimum: 0 x-referenceable: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false sentinel_password: description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false server_name: description: A string representing an SNI (server name indication) value for TLS. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: true x-speakeasy-transform-from-api: jq: | if has("port") then .port |= if type == "number" then tostring else . end else . end x-speakeasy-transform-to-api: jq: | if has("port") then if (.port | type) == "string" and (.port | test("^[0-9]+$")) then .port |= tonumber else . end else . end strategy: description: which vector database driver to use type: string enum: - pgvector - redis x-speakeasy-unknown-values: allow threshold: description: the default similarity threshold for accepting semantic search results (float). Higher threshold means more results are considered similar. type: number default: null nullable: true x-speakeasy-param-computed: false required: - dimensions - distance_metric - strategy 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: ai-semantic-response-guard protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config x-supported-partials: - name: embeddings paths: - config.embeddings - name: vectordb paths: - config.vectordb AppDynamicsPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AppDynamicsPluginConfig' AppDynamicsPluginConfig: x-speakeasy-entity: GatewayPluginAppDynamics properties: config: type: object default: null additionalProperties: true nullable: true x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: app-dynamics protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false AwsLambdaPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AwsLambdaPluginConfig' AwsLambdaPluginConfig: x-speakeasy-entity: GatewayPluginAwsLambda properties: config: type: object default: null nullable: true properties: aws_assume_role_arn: description: The target AWS IAM role ARN used to invoke the Lambda function. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_imds_protocol_version: description: 'Identifier to select the IMDS protocol version to use: `v1` or `v2`.' type: string default: v1 enum: - v1 - v2 x-speakeasy-unknown-values: allow aws_key: description: The AWS key credential to be used when invoking the function. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_region: description: 'A string representing a host name, such as example.com.' type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_sts_endpoint_url: description: 'A string representing a URL, such as https://example.com/path/to/resource?q=search.' type: string default: null nullable: true x-speakeasy-param-computed: false awsgateway_compatible: description: An optional value that defines whether the plugin should wrap requests into the Amazon API gateway. type: boolean default: false awsgateway_compatible_payload_version: description: An optional value that defines which version will be used to generate the AWS API Gateway compatible payload. The default will be `1.0`. type: string default: '1.0' enum: - '1.0' - '2.0' x-speakeasy-unknown-values: allow 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-speakeasy-param-computed: false host: description: 'A string representing a host name, such as example.com.' type: string default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 x-speakeasy-unknown-values: allow port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer default: 443 maximum: 65535 minimum: 0 preserve_lambda_api_error_code: description: 'When enabled, the HTTP status code returned by the AWS Lambda API is forwarded to the client instead of mapping all errors to HTTP 500. Applies to 4xx and 5xx responses from the Lambda API.' type: boolean default: false proxy_url: description: 'A string representing a URL, such as https://example.com/path/to/resource?q=search.' type: string default: null nullable: true x-speakeasy-param-computed: false qualifier: description: The qualifier to use when invoking the function. type: string default: null nullable: true x-speakeasy-param-computed: false skip_large_bodies: description: An optional value that defines whether Kong should send large bodies that are buffered to disk type: boolean default: true ssl_verify: description: Set to `true` to verify the TLS certificate when connecting to AWS services. type: boolean default: false 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 default: null maximum: 999 minimum: 100 nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: aws-lambda protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false AzureFunctionsPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AzureFunctionsPluginConfig' AzureFunctionsPluginConfig: x-speakeasy-entity: GatewayPluginAzureFunctions 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 required: - appname - functionname 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config BasicAuth: x-speakeasy-entity: GatewayBasicAuth type: object properties: consumer: type: object nullable: true properties: id: type: string x-foreign: true x-speakeasy-terraform-ignore: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true password: type: string writeOnly: true x-encrypted: true x-speakeasy-param-sensitive: true tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false username: type: string example: consumer: id: 84a73fb8-50fc-44a7-a4d5-aa17728ee83f id: b2f34145-0343-41a4-9602-4c69dec2f269 password: hashedsoopersecretvalue username: darius additionalProperties: false required: - password - username BasicAuthPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/BasicAuthPluginConfig' BasicAuthPluginConfig: x-speakeasy-entity: GatewayPluginBasicAuth properties: config: type: object default: null nullable: true 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 default: null nullable: true x-speakeasy-param-computed: false brute_force_protection: type: object properties: redis: description: Redis configuration type: object properties: cloud_authentication: description: Cloud auth related configs for connecting to a Cloud Provider's Redis instance. type: object default: null nullable: true properties: auth_provider: description: Auth providers to be used to authenticate to a Cloud Provider's Redis instance. type: string enum: - aws - azure - gcp x-referenceable: true x-speakeasy-unknown-values: allow aws_access_key_id: description: AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_is_serverless: description: This flag specifies whether the cluster is serverless when auth_provider is set to `aws`. type: boolean default: true aws_region: description: The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: 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: null nullable: true x-referenceable: true x-speakeasy-param-computed: false password: description: 'Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: string default: '6379' maximum: 65535 minimum: 0 x-referenceable: true server_name: description: A string representing an SNI (server name indication) value for TLS. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: true x-speakeasy-transform-from-api: jq: | if has("port") then .port |= if type == "number" then tostring else . end else . end x-speakeasy-transform-to-api: jq: | if has("port") then if (.port | type) == "string" and (.port | test("^[0-9]+$")) then .port |= tonumber else . end else . end strategy: description: 'The brute force protection strategy to use for retrieving and incrementing the limits. Available values are: `cluster`, `redis`, `memory`, and `off`.' type: string default: 'off' enum: - cluster - memory - 'off' - redis x-speakeasy-unknown-values: allow x-speakeasy-param-computed: true 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 principals: type: object properties: directory: description: The Kong Identity directory instance to authenticate against. type: string default: default enabled: description: 'When true, authenticate against Kong Identity instead of local credentials.' type: boolean default: false error_on_miss: description: 'When true (default), return 401 if no matching principal is found in Kong Identity. When false, allow the request to continue unauthenticated instead.' type: boolean default: true x-speakeasy-param-computed: true realm: description: When authentication fails the plugin sends `WWW-Authenticate` header with `realm` attribute value. type: string default: service x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false x-supported-partials: - name: redis-ce paths: - config.brute_force_protection.redis BasicAuthWithoutParents: x-speakeasy-entity: GatewayBasicAuth type: object properties: consumer: type: object nullable: true properties: id: type: string x-foreign: true x-speakeasy-terraform-ignore: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true password: type: string writeOnly: true x-encrypted: true x-speakeasy-param-sensitive: true tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false username: type: string example: id: b2f34145-0343-41a4-9602-4c69dec2f269 password: hashedsoopersecretvalue username: darius additionalProperties: false required: - password - username BotDetectionPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/BotDetectionPluginConfig' BotDetectionPluginConfig: x-speakeasy-entity: GatewayPluginBotDetection properties: config: type: object default: null nullable: true 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: 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: type: string default: [] x-speakeasy-param-computed: false name: const: bot-detection protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false CACertificate: x-speakeasy-entity: GatewayCACertificate 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 x-referenceable: true 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 default: null nullable: true readOnly: true x-speakeasy-param-computed: false x-speakeasy-param-suppress-computed-diff: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true tags: description: An optional set of strings associated with the Certificate for grouping and filtering. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false updated_at: description: Unix epoch when the resource was last updated. type: integer nullable: true example: cert: |- -----BEGIN CERTIFICATE----- certificate-content -----END CERTIFICATE----- cert_digest: 9b8aaf19a276885f6c8a6bc48a30700fdb3a351d8b05374d153bfb7b178e2a9f created_at: 1706598432 id: b2f34145-0343-41a4-9602-4c69dec2f260 tags: - trusted - api additionalProperties: false required: - cert CanaryPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/CanaryPluginConfig' CanaryPluginConfig: x-speakeasy-entity: GatewayPluginCanary properties: config: type: object default: null nullable: true properties: canary_by_header_name: description: A string representing an HTTP header name. type: string default: null nullable: true x-speakeasy-param-computed: false duration: description: The duration of the canary release in seconds. type: number default: 3600 groups: description: The groups allowed to access the canary release. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow hash_header: description: A string representing an HTTP header name. type: string default: null nullable: true x-speakeasy-param-computed: false percentage: description: The percentage of traffic to be routed to the canary release. type: number default: null maximum: 100 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false upstream_port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer default: null maximum: 65535 minimum: 0 nullable: true x-speakeasy-param-computed: false upstream_uri: description: The URI of the upstream server to be used for the canary release. type: string default: null minLength: 1 nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false name: const: canary protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false Certificate: x-speakeasy-entity: GatewayCertificate 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 x-referenceable: true 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: description: A string representing a UUID (universally unique identifier). 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 x-encrypted: true x-referenceable: true 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false snis: type: array items: description: 'A string representing a wildcard host name, such as *.example.com.' type: string default: null nullable: true readOnly: true x-speakeasy-param-computed: false x-speakeasy-param-suppress-computed-diff: true tags: description: An optional set of strings associated with the Certificate for grouping and filtering. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false 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 CertificateRequest: 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false created_at: description: Unix epoch when the resource was created. type: integer nullable: true description: description: 'User-defined entity description. Konnect only field, not synced to the Gateway.' type: string default: null nullable: true x-speakeasy-param-computed: false id: description: A string representing a UUID (universally unique identifier). 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false managed_by: description: 'Arbitrary JSON data for client responsible for managing the entity. Konnect only field, not synced to the Gateway.' type: object default: null additionalProperties: true nullable: true x-speakeasy-param-computed: false snis: type: array items: description: 'A string representing a wildcard host name, such as *.example.com.' type: string default: null nullable: true x-speakeasy-param-computed: false tags: description: An optional set of strings associated with the Certificate for grouping and filtering. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false updated_at: description: Unix epoch when the resource was last updated. type: integer nullable: true vault: description: 'Shorthand that expands into cert and key; when both vault and cert/key are provided, the vault expansion takes precedence.' type: string default: null nullable: true writeOnly: true x-speakeasy-param-computed: false vault_alt: description: 'Shorthand that expands into cert_alt and key_alt; when both vault_alt and cert_alt/key_alt are provided, the vault_alt expansion takes precedence.' type: string default: null nullable: true writeOnly: true x-speakeasy-param-computed: false additionalProperties: false ClonedPlugin: x-speakeasy-entity: GatewayClonedPlugin type: object properties: created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true name: description: The name to associate with the cloned plugin. Consider using a distinct prefix for cloned plugins to avoid naming conflicts with new bundled plugins in future Kong releases. type: string maxLength: 4096 minLength: 1 priority: description: 'The plugin execution priority. If not set, it will inherit the priority of the referenced plugin.' type: integer default: null maximum: 2147483647 minimum: -2147483648 nullable: true x-speakeasy-param-computed: false ref: description: The name of the base plugin that this cloned plugin references. This plugin must be cloneable. type: string tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false updated_at: description: Unix epoch when the resource was last updated. type: integer nullable: true additionalProperties: false required: - name - ref ConfluentConsumePlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/ConfluentConsumePluginConfig' ConfluentConsumePluginConfig: x-speakeasy-entity: GatewayPluginConfluentConsume properties: config: type: object properties: auto_offset_reset: description: The offset to start from when there is no initial offset in the consumer group. type: string default: earliest enum: - earliest - latest x-speakeasy-unknown-values: allow 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 default: null nullable: true x-speakeasy-param-computed: false cluster_api_key: description: Username/Apikey for SASL authentication. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false cluster_api_secret: description: Password/ApiSecret for SASL authentication. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false commit_strategy: description: The strategy to use for committing offsets. type: string default: auto enum: - auto - 'off' x-speakeasy-unknown-values: allow confluent_cloud_api_key: description: 'Apikey for authentication with Confluent Cloud. This allows for management tasks such as creating topics, ACLs, etc.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false confluent_cloud_api_secret: description: The corresponding secret for the Confluent Cloud API key. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false consumer_group: description: Configuration for the Kafka consumer group ID. type: object default: null nullable: true properties: consumer_group_id: description: 'The fixed consumer group ID to use when mode is set to `manual`. For SSE and WebSocket modes, a `.<node_id>` suffix is automatically appended.' type: string default: null nullable: true x-speakeasy-param-computed: false mode: description: 'The strategy to determine the consumer group ID. `random`: a hash `com.konghq.kafka.<md5>` over the plugin ID (plus consumer identifier/IP and node ID for SSE/WebSocket). `kong_consumer`: uses the authenticated consumer''s `username`, `custom_id`, then `id`, directly; falls back to `random` if no consumer is authenticated. `manual`: uses `consumer_group_id` directly. For SSE/WebSocket, `manual` and `kong_consumer` group IDs get a `.<node_id>` suffix.' type: string default: random enum: - kong_consumer - manual - random x-speakeasy-unknown-values: allow x-speakeasy-param-computed: false dlq_topic: description: The topic to use for the Dead Letter Queue. type: string default: null nullable: true x-speakeasy-param-computed: false enable_dlq: description: 'Enables Dead Letter Queue. When enabled, if the message doesn''t conform to the schema (from Schema Registry) or there''s an error in the `message_by_lua_functions`, it will be forwarded to `dlq_topic` that can be processed later.' type: boolean default: null nullable: true x-speakeasy-param-computed: false enforce_latest_offset_reset: description: 'When true, ''latest'' offset reset behaves correctly (starts from end). When false (default), maintains backwards compatibility where ''latest'' acts like ''earliest''.' type: boolean default: false error_handling: type: object default: null nullable: true properties: return_error_message: description: 'When enabled, the Kafka client error message is returned to the HTTP client. Useful for debugging but may expose internal details, so should be disabled in production.' type: boolean default: false x-speakeasy-param-computed: false keepalive: description: Keepalive timeout in milliseconds. type: integer default: 60000 keepalive_enabled: type: boolean default: false message_by_lua_functions: description: The Lua functions that manipulates the message being sent to the client. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false message_deserializer: description: The deserializer to use for the consumed messages. type: string default: noop enum: - json - noop x-speakeasy-unknown-values: allow mode: description: The mode of operation for the plugin. type: string default: http-get enum: - http-get - server-sent-events - websocket x-speakeasy-unknown-values: allow oauthbearer: description: 'Options for SASL OAUTHBEARER authentication. When set, takes precedence over `cluster_api_key`/`cluster_api_secret`.' type: object default: null nullable: true properties: client_id: description: The OAuth2 client ID. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false client_secret: description: The OAuth2 client secret. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false extensions: description: 'Key-value pairs sent as extensions in the OAUTHBEARER SASL handshake (e.g. logicalCluster, identityPoolId).' type: object default: null additionalProperties: type: string nullable: true x-speakeasy-param-computed: false scopes: description: List of OAuth2 scopes to request. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false token_endpoint_tls_verify: description: Whether to verify the TLS certificate of the token endpoint. type: boolean default: true token_endpoint_url: description: The URL of the OAuth2 token endpoint. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false schema_registry: description: The plugin-global schema registry configuration. type: object default: null nullable: true properties: confluent: type: object default: null nullable: true properties: authentication: type: object default: null nullable: true properties: basic: type: object default: null nullable: true properties: password: type: string x-encrypted: true x-referenceable: true username: type: string x-encrypted: true x-referenceable: true required: - password - username x-speakeasy-param-computed: false mode: description: Authentication mode to use with the schema registry. type: string default: none enum: - basic - none - oauth2 x-speakeasy-unknown-values: allow oauth2: type: object default: null nullable: true 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false client_secret: description: The client secret for the application registration in the IdP. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false grant_type: description: The OAuth grant type to be used. type: string default: client_credentials enum: - client_credentials - password x-speakeasy-unknown-values: allow password: description: The password to use if `config.oauth.grant_type` is set to `password`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null additionalProperties: type: string x-referenceable: true nullable: true x-speakeasy-param-computed: false token_post_args: description: Extra post arguments to be passed in the token endpoint request. type: object default: null additionalProperties: type: string x-referenceable: true nullable: true x-speakeasy-param-computed: false username: description: The username to use if `config.oauth.grant_type` is set to `password`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false required: - token_endpoint x-speakeasy-param-computed: false oauth2_client: type: object default: null nullable: true 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 x-speakeasy-unknown-values: allow client_secret_jwt_alg: description: The algorithm to use with JWT when using `client_secret_jwt` authentication. type: string default: HS512 enum: - HS256 - HS512 x-speakeasy-unknown-values: allow http_proxy: description: The proxy to use when making HTTP requests to the IdP. type: string default: null nullable: true x-speakeasy-param-computed: false http_proxy_authorization: description: The `Proxy-Authorization` header value to be used with `http_proxy`. type: string default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: true https_proxy: description: The proxy to use when making HTTPS requests to the IdP. type: string default: null nullable: true x-speakeasy-param-computed: false https_proxy_authorization: description: The `Proxy-Authorization` header value to be used with `https_proxy`. type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: false x-speakeasy-param-computed: false ssl_verify: description: Set to false to disable SSL certificate verification when connecting to the schema registry. type: boolean default: true ttl: description: The TTL in seconds for the schema registry cache. type: number default: null maximum: 3600 minimum: 0 nullable: true x-speakeasy-param-computed: false url: description: The URL of the schema registry. type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-param-computed: false security: type: object default: null nullable: true properties: ssl_verify: description: Enables verification of the certificate presented by the server. type: boolean default: false x-speakeasy-param-computed: false timeout: description: Socket timeout in milliseconds. type: integer default: 10000 topics: description: The Kafka topics and their configuration you want to consume from. type: array items: properties: name: type: string schema_registry: description: The plugin-global schema registry configuration. type: object default: null nullable: true properties: confluent: type: object default: null nullable: true properties: authentication: type: object default: null nullable: true properties: basic: type: object default: null nullable: true properties: password: type: string x-encrypted: true x-referenceable: true username: type: string x-encrypted: true x-referenceable: true required: - password - username x-speakeasy-param-computed: false mode: description: Authentication mode to use with the schema registry. type: string default: none enum: - basic - none - oauth2 x-speakeasy-unknown-values: allow oauth2: type: object default: null nullable: true 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false client_secret: description: The client secret for the application registration in the IdP. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false grant_type: description: The OAuth grant type to be used. type: string default: client_credentials enum: - client_credentials - password x-speakeasy-unknown-values: allow password: description: The password to use if `config.oauth.grant_type` is set to `password`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null additionalProperties: type: string x-referenceable: true nullable: true x-speakeasy-param-computed: false token_post_args: description: Extra post arguments to be passed in the token endpoint request. type: object default: null additionalProperties: type: string x-referenceable: true nullable: true x-speakeasy-param-computed: false username: description: The username to use if `config.oauth.grant_type` is set to `password`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false required: - token_endpoint x-speakeasy-param-computed: false oauth2_client: type: object default: null nullable: true 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 x-speakeasy-unknown-values: allow client_secret_jwt_alg: description: The algorithm to use with JWT when using `client_secret_jwt` authentication. type: string default: HS512 enum: - HS256 - HS512 x-speakeasy-unknown-values: allow http_proxy: description: The proxy to use when making HTTP requests to the IdP. type: string default: null nullable: true x-speakeasy-param-computed: false http_proxy_authorization: description: The `Proxy-Authorization` header value to be used with `http_proxy`. type: string default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: true https_proxy: description: The proxy to use when making HTTPS requests to the IdP. type: string default: null nullable: true x-speakeasy-param-computed: false https_proxy_authorization: description: The `Proxy-Authorization` header value to be used with `https_proxy`. type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: false x-speakeasy-param-computed: false ssl_verify: description: Set to false to disable SSL certificate verification when connecting to the schema registry. type: boolean default: true ttl: description: The TTL in seconds for the schema registry cache. type: number default: null maximum: 3600 minimum: 0 nullable: true x-speakeasy-param-computed: false url: description: The URL of the schema registry. type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-param-computed: false required: - name type: object minLength: 1 required: - topics 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: confluent-consume 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config ConfluentPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/ConfluentPluginConfig' ConfluentPluginConfig: x-speakeasy-entity: GatewayPluginConfluent properties: config: type: object properties: allowed_topics: description: 'The list of allowed topic names to which messages can be sent. The default topic configured in the `topic` field is always allowed, regardless of its inclusion in `allowed_topics`.' type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false cluster_api_key: description: Username/Apikey for SASL authentication. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false cluster_api_secret: description: Password/ApiSecret for SASL authentication. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: true confluent_cloud_api_key: description: 'Apikey for authentication with Confluent Cloud. This allows for management tasks such as creating topics, ACLs, etc.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false confluent_cloud_api_secret: description: The corresponding secret for the Confluent Cloud API key. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false error_handling: type: object properties: return_error_message: description: 'When enabled, the Kafka client error message is returned to the HTTP client. Useful for debugging but may expose internal details, so should be disabled in production.' type: boolean default: false x-speakeasy-param-computed: true 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 headers: description: Configuration for forwarding HTTP headers as Kafka record headers. type: object properties: exclude_headers: description: Blocklist of HTTP header names to exclude from forwarding. Used when `forward_all_by_default` is `enabled`. type: array items: type: string default: [] forward_all_by_default: description: 'When `false`, only headers listed in `include_headers` are forwarded. When `true`, all headers except those in `exclude_headers` are forwarded.' type: boolean default: false forward_http_headers_as_record_headers: description: Whether to forward HTTP headers as Kafka record headers. type: boolean default: true include_headers: description: Allowlist of HTTP header names to forward as Kafka record headers. Used when `forward_all_by_default` is `disabled`. type: array items: type: string default: [] name_mappings: description: 'Map of HTTP header names to Kafka record header names. If an HTTP header name matches a key, the corresponding value is used as the Kafka record header name.' type: object default: {} additionalProperties: type: string repeated_headers_behavior: description: 'How to handle repeated HTTP headers: `concatenate_by_comma` joins values with a comma, `take_first` uses only the first value, `retain_duplicates` creates separate Kafka record headers for each value.' type: string default: retain_duplicates enum: - concatenate_by_comma - retain_duplicates - take_first x-speakeasy-unknown-values: allow x-speakeasy-param-computed: true keepalive: description: Keepalive timeout in milliseconds. type: integer default: 60000 keepalive_enabled: type: boolean default: false key_query_arg: description: 'The request query parameter name that contains the Kafka message key. If specified, messages with the same key will be sent to the same Kafka partition, ensuring consistent ordering.' type: string default: null nullable: true x-speakeasy-param-computed: false message_by_lua_functions: description: The Lua functions that manipulates the message being sent to the Kafka topic. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false oauthbearer: description: 'Options for SASL OAUTHBEARER authentication. When set, takes precedence over `cluster_api_key`/`cluster_api_secret`.' type: object default: null nullable: true properties: client_id: description: The OAuth2 client ID. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false client_secret: description: The OAuth2 client secret. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false extensions: description: 'Key-value pairs sent as extensions in the OAUTHBEARER SASL handshake (e.g. logicalCluster, identityPoolId).' type: object default: null additionalProperties: type: string nullable: true x-speakeasy-param-computed: false scopes: description: List of OAuth2 scopes to request. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false token_endpoint_tls_verify: description: Whether to verify the TLS certificate of the token endpoint. type: boolean default: true token_endpoint_url: description: The URL of the OAuth2 token endpoint. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: 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 x-speakeasy-unknown-values: allow 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 schema_registry: description: The plugin-global schema registry configuration. This can be overwritten by the topic configuration. type: object properties: confluent: type: object default: null nullable: true properties: authentication: type: object default: null nullable: true properties: basic: type: object default: null nullable: true properties: password: type: string x-encrypted: true x-referenceable: true username: type: string x-encrypted: true x-referenceable: true required: - password - username x-speakeasy-param-computed: false mode: description: Authentication mode to use with the schema registry. type: string default: none enum: - basic - none - oauth2 x-speakeasy-unknown-values: allow oauth2: type: object default: null nullable: true 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false client_secret: description: The client secret for the application registration in the IdP. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false grant_type: description: The OAuth grant type to be used. type: string default: client_credentials enum: - client_credentials - password x-speakeasy-unknown-values: allow password: description: The password to use if `config.oauth.grant_type` is set to `password`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null additionalProperties: type: string x-referenceable: true nullable: true x-speakeasy-param-computed: false token_post_args: description: Extra post arguments to be passed in the token endpoint request. type: object default: null additionalProperties: type: string x-referenceable: true nullable: true x-speakeasy-param-computed: false username: description: The username to use if `config.oauth.grant_type` is set to `password`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false required: - token_endpoint x-speakeasy-param-computed: false oauth2_client: type: object default: null nullable: true 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 x-speakeasy-unknown-values: allow client_secret_jwt_alg: description: The algorithm to use with JWT when using `client_secret_jwt` authentication. type: string default: HS512 enum: - HS256 - HS512 x-speakeasy-unknown-values: allow http_proxy: description: The proxy to use when making HTTP requests to the IdP. type: string default: null nullable: true x-speakeasy-param-computed: false http_proxy_authorization: description: The `Proxy-Authorization` header value to be used with `http_proxy`. type: string default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: true https_proxy: description: The proxy to use when making HTTPS requests to the IdP. type: string default: null nullable: true x-speakeasy-param-computed: false https_proxy_authorization: description: The `Proxy-Authorization` header value to be used with `https_proxy`. type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: false x-speakeasy-param-computed: false key_schema: type: object default: null nullable: true properties: schema_version: description: The schema version to use for serialization/deserialization. Use 'latest' to always fetch the most recent version. type: string default: null nullable: true x-speakeasy-param-computed: false subject_name: description: The name of the subject type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false ssl_verify: description: Set to false to disable SSL certificate verification when connecting to the schema registry. type: boolean default: true ttl: description: The TTL in seconds for the schema registry cache. type: number default: null maximum: 3600 minimum: 0 nullable: true x-speakeasy-param-computed: false url: description: The URL of the schema registry. type: string default: null nullable: true x-speakeasy-param-computed: false value_schema: type: object default: null nullable: true properties: schema_version: description: The schema version to use for serialization/deserialization. Use 'latest' to always fetch the most recent version. type: string default: null nullable: true x-speakeasy-param-computed: false subject_name: description: The name of the subject type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-param-computed: true security: type: object properties: ssl_verify: description: Enables verification of the certificate presented by the server. type: boolean default: false x-speakeasy-param-computed: true timeout: description: Socket timeout in milliseconds. type: integer default: 10000 topic: description: The default Kafka topic to publish to if the query parameter defined in the `topics_query_arg` does not exist in the request type: string topics_query_arg: description: The request query parameter name that contains the topics to publish to type: string default: null nullable: true x-speakeasy-param-computed: false required: - topic 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: confluent protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config Consumer: x-speakeasy-entity: GatewayConsumer 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 default: null nullable: true x-speakeasy-param-computed: false id: description: A string representing a UUID (universally unique identifier). type: string nullable: true tags: description: An optional set of strings associated with the Consumer for grouping and filtering. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false example: custom_id: '4200' id: 8a388226-80e8-4027-a486-25e4f7db5d21 tags: - silver-tier username: bob-the-builder additionalProperties: false ConsumerGroup: x-speakeasy-entity: GatewayConsumerGroup type: object properties: created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true name: description: The name of the consumer group. type: string tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false 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: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/CorrelationIdPluginConfig' CorrelationIdPluginConfig: x-speakeasy-entity: GatewayPluginCorrelationId properties: config: type: object default: null nullable: true 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 x-speakeasy-unknown-values: allow header_name: description: The HTTP header name to use for the correlation ID. type: string default: Kong-Request-ID x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: correlation-id protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false CorsPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/CorsPluginConfig' CorsPluginConfig: x-speakeasy-entity: GatewayPluginCors properties: config: type: object default: null nullable: true properties: allow_origin_absent: description: A boolean value that skip cors response headers when origin header of request is empty type: boolean default: true 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 default: null nullable: true x-speakeasy-param-computed: false headers: description: Value for the `Access-Control-Allow-Headers` header. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false max_age: description: 'Indicates how long the results of the preflight request can be cached, in `seconds`.' type: number default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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. NOTE: If you don''t specify any allowed domains, all origins are allowed.' type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: false name: const: cors protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https minLength: 1 type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false CustomPlugin: x-speakeasy-entity: GatewayCustomPluginStreaming type: object properties: created_at: description: Unix epoch when the resource was created. type: integer nullable: true handler: description: The handler for the given custom plugin. type: string id: description: A string representing a UUID (universally unique identifier). type: string nullable: true name: description: The name to associate with the given custom plugin. Consider using a distinct prefix for custom plugins to avoid naming conflicts with new bundled plugins in future Kong releases. type: string schema: description: The schema for the given custom plugin. type: string tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false updated_at: description: Unix epoch when the resource was last updated. type: integer nullable: true example: handler: 'return { VERSION = ''1.0,0'', PRIORITY = 500, access = function(self, config) kong.service.request.set_header(config.name, config.value) end }' id: 868346aa-1105-4b77-8346-aa1105fb77c4 name: set-header schema: 'return { name = ''set-header'', fields = { { protocols = require(''kong.db.schema.typedefs'').protocols_http }, { config = { type = ''record'', fields = { { name = { description = ''The name of the header to set.'', type = ''string'', required = true } }, { value = { description = ''The value for the header.'', type = ''string'', required = true } } } } } } }' additionalProperties: false required: - handler - name - schema DatadogPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/DatadogPluginConfig' DatadogPluginConfig: x-speakeasy-entity: GatewayPluginDatadog properties: config: type: object default: null nullable: true 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 default: null nullable: true x-speakeasy-param-computed: false host: description: 'A string representing a host name, such as example.com.' type: string default: localhost x-referenceable: true 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 x-speakeasy-unknown-values: allow name: description: Datadog metric’s name type: string enum: - kong_latency - latency - request_count - request_size - response_size - upstream_latency x-speakeasy-unknown-values: allow sample_rate: description: Sampling rate type: number maximum: 1 minimum: 0 x-speakeasy-param-computed: true stat_type: description: Determines what sort of event the metric represents type: string enum: - counter - distribution - gauge - histogram - meter - set - timer x-speakeasy-unknown-values: allow tags: description: List of tags type: array items: type: string x-speakeasy-param-computed: true required: - name - stat_type type: object x-speakeasy-param-computed: true 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 x-speakeasy-unknown-values: allow initial_retry_delay: description: Time in seconds before the initial retry is made for a failing batch. type: number maximum: 1000000 minimum: 0.001 x-speakeasy-param-computed: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: true queue_size: description: Maximum number of log entries to be sent on each message to the upstream server. type: integer default: null nullable: true x-speakeasy-param-computed: false retry_count: description: Number of times to retry when sending data to the upstream server. type: integer default: null nullable: true x-speakeasy-param-computed: false route_name_tag: description: String to be attached as tag of the route name or ID. type: string default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false DatakitPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/DatakitPluginConfig' DatakitPluginConfig: x-speakeasy-entity: GatewayPluginDatakit properties: config: type: object properties: debug: type: boolean default: false nodes: type: array items: oneOf: - description: Execute different nodes based on some input condition properties: else: description: nodes to execute if the input condition is `false` type: array items: description: A label that uniquely identifies the node within the plugin configuration so that it can be used for input/output connections. Must be valid `snake_case` or `kebab-case`. maxLength: 255 minLength: 1 type: string default: null maxLength: 64 minLength: 1 nullable: true x-speakeasy-param-computed: false input: description: branch node input type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false name: description: A label that uniquely identifies the node within the plugin configuration so that it can be used for input/output connections. Must be valid `snake_case` or `kebab-case`. type: string default: null maxLength: 255 minLength: 1 nullable: true x-lua-required: true x-speakeasy-param-computed: false output: description: branch node output type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false outputs: description: branch node outputs type: object default: null nullable: true properties: else: description: node output type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false then: description: node output type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false then: description: nodes to execute if the input condition is `true` type: array items: description: A label that uniquely identifies the node within the plugin configuration so that it can be used for input/output connections. Must be valid `snake_case` or `kebab-case`. maxLength: 255 minLength: 1 type: string default: null maxLength: 64 minLength: 1 nullable: true x-speakeasy-param-computed: false type: type: string const: branch title: branch type: object - description: Fetch cached data properties: bypass_on_error: type: boolean default: null nullable: true x-speakeasy-param-computed: false input: description: cache node input type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false inputs: description: cache node inputs type: object default: null nullable: true properties: data: description: The data to be cached. type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false key: description: The cache key. type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false ttl: description: The TTL in seconds. type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false name: description: A label that uniquely identifies the node within the plugin configuration so that it can be used for input/output connections. Must be valid `snake_case` or `kebab-case`. type: string default: null maxLength: 255 minLength: 1 nullable: true x-lua-required: true x-speakeasy-param-computed: false output: description: cache node output type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false outputs: description: cache node outputs type: object default: null nullable: true properties: data: description: The data that was cached. type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false hit: description: Signals a cache hit. type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false miss: description: Signals a cache miss. type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false stored: description: Signals whether data was stored in cache. type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false ttl: type: integer default: null nullable: true x-speakeasy-param-computed: false type: type: string const: cache title: cache type: object - description: Make an external HTTP request properties: input: description: call node input type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false inputs: description: call node inputs type: object default: null nullable: true properties: body: description: HTTP request body type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false headers: description: HTTP request headers type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false http_proxy: description: The HTTP proxy URL. This proxy server will be used for HTTP requests. type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false https_proxy: description: The HTTPS proxy URL. This proxy server will be used for HTTPS requests. type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false proxy_auth_password: description: 'The password to authenticate with, if the forward proxy is protected by basic authentication.' type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false proxy_auth_username: description: 'The username to authenticate with, if the forward proxy is protected by basic authentication.' type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false query: description: HTTP request query type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false url: description: HTTP request URL type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false method: description: 'A string representing an HTTP method, such as GET, POST, PUT, or DELETE. The string must contain only uppercase letters.' type: string default: GET maxLength: 32 minLength: 1 name: description: A label that uniquely identifies the node within the plugin configuration so that it can be used for input/output connections. Must be valid `snake_case` or `kebab-case`. type: string default: null maxLength: 255 minLength: 1 nullable: true x-lua-required: true x-speakeasy-param-computed: false output: description: call node output type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false outputs: description: call node outputs type: object default: null nullable: true properties: body: description: HTTP response body type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false headers: description: HTTP response headers type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false raw_body: description: 'The raw, non-decoded HTTP response body' type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false status: description: HTTP response status code type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false ssl_server_name: description: A string representing an SNI (server name indication) value for TLS. type: string default: null nullable: true x-speakeasy-param-computed: false ssl_verify: description: Whether to verify the TLS certificate when making HTTPS requests. type: boolean default: true timeout: description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. type: integer default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false type: type: string const: call url: description: 'A string representing a URL, such as https://example.com/path/to/resource?q=search.' type: string default: null nullable: true x-speakeasy-param-computed: false title: call type: object - description: Terminate the request and send a response to the client properties: input: description: exit node input type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false inputs: description: exit node inputs type: object default: null nullable: true properties: body: description: HTTP response body type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false headers: description: HTTP response headers type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false name: description: A label that uniquely identifies the node within the plugin configuration so that it can be used for input/output connections. Must be valid `snake_case` or `kebab-case`. type: string default: null maxLength: 255 minLength: 1 nullable: true x-lua-required: true x-speakeasy-param-computed: false status: description: HTTP status code type: integer default: 200 maximum: 599 minimum: 200 type: type: string const: exit warn_headers_sent: type: boolean default: null nullable: true x-speakeasy-param-computed: false title: exit type: object - description: Process data using `jq` syntax properties: input: description: filter input(s) type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false inputs: description: filter input(s) type: object default: null additionalProperties: maxLength: 255 minLength: 1 type: string nullable: true x-speakeasy-param-computed: false jq: description: 'The jq filter text. Refer to https://jqlang.org/manual/ for full documentation.' type: string maxLength: 10240 minLength: 1 name: description: A label that uniquely identifies the node within the plugin configuration so that it can be used for input/output connections. Must be valid `snake_case` or `kebab-case`. type: string default: null maxLength: 255 minLength: 1 nullable: true x-lua-required: true x-speakeasy-param-computed: false output: description: filter output(s) type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false type: type: string const: jq required: - jq title: jq type: object - description: transform JSON or lua table to XML properties: attributes_block_name: type: string default: null maxLength: 32 minLength: 1 nullable: true x-speakeasy-param-computed: false attributes_name_prefix: type: string default: null maxLength: 32 minLength: 1 nullable: true x-speakeasy-param-computed: false input: description: JSON string or table type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false inputs: description: JSON string or table type: object default: null additionalProperties: maxLength: 255 minLength: 1 type: string nullable: true x-speakeasy-param-computed: false name: description: A label that uniquely identifies the node within the plugin configuration so that it can be used for input/output connections. Must be valid `snake_case` or `kebab-case`. type: string default: null maxLength: 255 minLength: 1 nullable: true x-lua-required: true x-speakeasy-param-computed: false output: description: XML document converted from JSON type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false root_element_name: type: string default: null maxLength: 64 minLength: 1 nullable: true x-speakeasy-param-computed: false text_block_name: description: The name of the block to treat as XML text content. type: string default: '#text' maxLength: 32 minLength: 1 type: type: string const: json_to_xml title: json_to_xml type: object - description: Decode JWT without signature verification properties: input: description: JWT token (with or without Bearer prefix) type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false name: description: A label that uniquely identifies the node within the plugin configuration so that it can be used for input/output connections. Must be valid `snake_case` or `kebab-case`. type: string default: null maxLength: 255 minLength: 1 nullable: true x-lua-required: true x-speakeasy-param-computed: false output: description: jwt_decode node output type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false outputs: description: jwt_decode node outputs type: object default: null nullable: true properties: header: description: 'Decoded JWT header (alg, kid, typ)' type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false payload: description: Decoded JWT payload (claims) type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false signature: description: Raw signature (base64url encoded) type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false type: type: string const: jwt_decode title: jwt_decode type: object - description: Create and sign a JWT properties: algorithm: description: Signing algorithm type: string enum: - ES256 - ES384 - ES512 - EdDSA - HS256 - HS384 - HS512 - PS256 - PS384 - PS512 - RS256 - RS384 - RS512 x-speakeasy-unknown-values: allow expires_in: description: Seconds until token expires (for exp claim) type: integer default: 300 input: description: jwt_sign node input type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false inputs: description: jwt_sign node inputs type: object default: null nullable: true properties: claims: description: Dynamic claims to include type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false key: description: 'Signing key (PEM, JWK JSON string, or HMAC secret)' type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false kid: description: Key ID for header type: string default: null nullable: true x-speakeasy-param-computed: false name: description: A label that uniquely identifies the node within the plugin configuration so that it can be used for input/output connections. Must be valid `snake_case` or `kebab-case`. type: string default: null maxLength: 255 minLength: 1 nullable: true x-lua-required: true x-speakeasy-param-computed: false not_before: description: Seconds until token becomes valid (for nbf claim) type: integer default: 0 output: description: jwt_sign node output type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false outputs: description: jwt_sign node outputs type: object default: null nullable: true properties: claims: description: Complete claims used type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false header: description: JWT header type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false token: description: Signed JWT type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false static_claims: description: Static claims always included type: object default: {} additionalProperties: type: string typ: description: Token type for header type: string default: JWT type: type: string const: jwt_sign required: - algorithm title: jwt_sign type: object - description: Verify JWT signature and validate claims properties: allowed_algorithms: description: Allowed signing algorithms (empty = any supported) type: array items: enum: - ES256 - ES384 - ES512 - EdDSA - HS256 - HS384 - HS512 - PS256 - PS384 - PS512 - RS256 - RS384 - RS512 type: string x-speakeasy-unknown-values: allow default: [] audiences: description: Allowed audiences (empty = any) type: array items: type: string default: [] input: description: jwt_verify node input type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false inputs: description: jwt_verify node inputs type: object default: null nullable: true properties: key: description: 'Verification key: JWKS, JWK, PEM string, or HMAC secret' type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false token: description: JWT token (with or without Bearer prefix) type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false issuers: description: Allowed issuers (empty = any) type: array items: type: string default: [] leeway: description: Allowed clock skew in seconds for exp/nbf validation type: integer default: 0 name: description: A label that uniquely identifies the node within the plugin configuration so that it can be used for input/output connections. Must be valid `snake_case` or `kebab-case`. type: string default: null maxLength: 255 minLength: 1 nullable: true x-lua-required: true x-speakeasy-param-computed: false output: description: jwt_verify node output type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false outputs: description: jwt_verify node outputs type: object default: null nullable: true properties: claims: description: JWT payload claims type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false header: description: JWT header type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false required_claims: description: Claims that must be present type: array items: type: string default: [] type: type: string const: jwt_verify validate_exp: description: Validate expiration claim type: boolean default: true validate_nbf: description: Validate not-before claim type: boolean default: true title: jwt_verify type: object - description: Get or set a property properties: content_type: description: 'The expected mime type of the property value. When set to `application/json`, SET operations will JSON-encode input data before writing it, and GET operations will JSON-decode output data after reading it. Otherwise, this setting has no effect.' type: string enum: - application/json - application/octet-stream - text/plain x-speakeasy-unknown-values: allow input: description: 'Property input source. When connected, this node operates in SET mode and writes input data to the property. Otherwise, the node operates in GET mode and reads the property.' type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false name: description: A label that uniquely identifies the node within the plugin configuration so that it can be used for input/output connections. Must be valid `snake_case` or `kebab-case`. type: string default: null maxLength: 255 minLength: 1 nullable: true x-lua-required: true x-speakeasy-param-computed: false non_nil: description: 'When true, the property value must exist: in SET mode, input must not be nil/null; in GET mode, output must not be nil/null.' type: boolean default: false output: description: Property output. This can be connected regardless of whether the node is operating in GET mode or SET mode. type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false property: description: The property name to get/set type: string maxLength: 255 minLength: 1 type: type: string const: property required: - property title: property type: object - description: Produce reusable outputs from statically-configured values properties: name: description: A label that uniquely identifies the node within the plugin configuration so that it can be used for input/output connections. Must be valid `snake_case` or `kebab-case`. type: string default: null maxLength: 255 minLength: 1 nullable: true x-lua-required: true x-speakeasy-param-computed: false output: description: The entire `.values` map type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false outputs: description: 'Individual items from `.values`, referenced by key' type: object default: null additionalProperties: maxLength: 255 minLength: 1 type: string nullable: true x-speakeasy-param-computed: false type: type: string const: static values: description: An object with string keys and freeform values type: object additionalProperties: true x-speakeasy-type-override: any required: - values title: static type: object - description: convert XML to JSON properties: attributes_block_name: type: string default: null maxLength: 32 minLength: 1 nullable: true x-speakeasy-param-computed: false attributes_name_prefix: type: string default: null maxLength: 32 minLength: 1 nullable: true x-speakeasy-param-computed: false input: description: XML document string type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false name: description: A label that uniquely identifies the node within the plugin configuration so that it can be used for input/output connections. Must be valid `snake_case` or `kebab-case`. type: string default: null maxLength: 255 minLength: 1 nullable: true x-lua-required: true x-speakeasy-param-computed: false output: description: 'a map object converted from XML document. If connected to `request.body` or `response.body`, the output will be a JSON object.' type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false recognize_type: type: boolean default: true text_as_property: type: boolean default: false text_block_name: type: string default: '#text' maxLength: 32 minLength: 1 type: type: string const: xml_to_json xpath: type: string default: null maxLength: 256 minLength: 1 nullable: true x-speakeasy-param-computed: false title: xml_to_json type: object maxLength: 64 minLength: 1 resources: type: object default: null nullable: true properties: cache: type: object default: null nullable: true properties: memory: type: object default: null nullable: true 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 x-speakeasy-param-computed: false redis: type: object default: null nullable: true properties: cloud_authentication: description: Cloud auth related configs for connecting to a Cloud Provider's Redis instance. type: object default: null nullable: true properties: auth_provider: description: Auth providers to be used to authenticate to a Cloud Provider's Redis instance. type: string enum: - aws - azure - gcp x-referenceable: true x-speakeasy-unknown-values: allow aws_access_key_id: description: AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_is_serverless: description: This flag specifies whether the cluster is serverless when auth_provider is set to `aws`. type: boolean default: true aws_region: description: The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false 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 x-referenceable: true 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 default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: string default: '6379' maximum: 65535 minimum: 0 x-referenceable: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false sentinel_password: description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false server_name: description: A string representing an SNI (server name indication) value for TLS. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-transform-from-api: jq: | if has("port") then .port |= if type == "number" then tostring else . end else . end x-speakeasy-transform-to-api: jq: | if has("port") then if (.port | type) == "string" and (.port | test("^[0-9]+$")) then .port |= tonumber else . end else . end strategy: description: 'The backing data store in which to hold cache entities. Accepted values are: `memory` and `redis`.' type: string enum: - memory - redis x-speakeasy-unknown-values: allow x-speakeasy-param-computed: false vault: type: object default: null additionalProperties: maxLength: 4095 minLength: 1 type: string x-lua-required: true x-referenceable: true maxLength: 64 minLength: 1 nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false required: - nodes 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: datakit protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config x-supported-partials: - name: redis-ee paths: - config.resources.cache.redis DegraphqlPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/DegraphqlPluginConfig' DegraphqlPluginConfig: x-speakeasy-entity: GatewayPluginDegraphql properties: config: type: object default: null nullable: true properties: graphql_server_path: description: The GraphQL endpoint serve path type: string default: /graphql x-speakeasy-param-computed: false name: const: degraphql protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false ExitTransformerPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/ExitTransformerPluginConfig' ExitTransformerPluginConfig: x-speakeasy-entity: GatewayPluginExitTransformer 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 required: - functions 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: exit-transformer protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config FileLogPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/FileLogPluginConfig' FileLogPluginConfig: x-speakeasy-entity: GatewayPluginFileLog properties: config: type: object properties: custom_fields_by_lua: description: Lua code as a key-value map type: object additionalProperties: type: string x-speakeasy-param-computed: 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 reopen: description: Determines whether the log file is closed and reopened on every request. type: boolean default: false required: - path 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config ForwardProxyPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/ForwardProxyPluginConfig' ForwardProxyPluginConfig: x-speakeasy-entity: GatewayPluginForwardProxy properties: config: type: object default: null nullable: true properties: auth_password: description: |- The password to authenticate with, if the forward proxy is protected by basic authentication. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false auth_username: description: |- The username to authenticate with, if the forward proxy is protected by basic authentication. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false ca_certificates: description: 'Array of CA Certificate object UUIDs used to build the trust store for verifying the upstream server''s TLS certificate. When https_verify is enabled and this array is non-empty, those CAs override the global lua_ssl_trusted_certificate for requests proxied by this plugin. When unset or empty, verification falls back to the global lua_ssl_trusted_certificate. When https_verify is disabled, the value is retained in the configuration but ignored at request time.' type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false http_proxy_host: description: 'A string representing a host name, such as example.com.' type: string default: null nullable: true x-speakeasy-param-computed: false http_proxy_port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer default: null maximum: 65535 minimum: 0 nullable: true x-speakeasy-param-computed: false https_proxy_host: description: 'A string representing a host name, such as example.com.' type: string default: null nullable: true x-speakeasy-param-computed: false https_proxy_port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer default: null maximum: 65535 minimum: 0 nullable: true x-speakeasy-param-computed: false https_verify: description: 'Whether the server certificate will be verified. When ca_certificates is configured, those certificates are used for verification. Otherwise, verification uses 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 x-speakeasy-unknown-values: allow x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: forward-proxy protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false GatewayUnauthorizedError: type: object properties: message: type: string status: type: integer required: - message - status GraphQLCostDecoration: x-speakeasy-entity: GatewayGraphQLCostDecoration type: object properties: add_arguments: type: array items: type: string default: [] nullable: true add_constant: type: number default: 1 nullable: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true mul_arguments: type: array items: type: string default: [] nullable: true mul_constant: type: number default: 1 nullable: true service: type: object default: null nullable: true properties: id: type: string x-foreign: true x-speakeasy-param-computed: false type_path: type: string additionalProperties: false required: - type_path GraphqlProxyCacheAdvancedPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/GraphqlProxyCacheAdvancedPluginConfig' GraphqlProxyCacheAdvancedPluginConfig: x-speakeasy-entity: GatewayPluginGraphqlProxyCacheAdvanced properties: config: type: object default: null nullable: true 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 memory: type: object default: null nullable: true 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 x-speakeasy-param-computed: false redis: type: object default: null nullable: true properties: cloud_authentication: description: Cloud auth related configs for connecting to a Cloud Provider's Redis instance. type: object default: null nullable: true properties: auth_provider: description: Auth providers to be used to authenticate to a Cloud Provider's Redis instance. type: string enum: - aws - azure - gcp x-referenceable: true x-speakeasy-unknown-values: allow aws_access_key_id: description: AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_is_serverless: description: This flag specifies whether the cluster is serverless when auth_provider is set to `aws`. type: boolean default: true aws_region: description: The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false 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 x-referenceable: true 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 default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: string default: '6379' maximum: 65535 minimum: 0 x-referenceable: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false sentinel_password: description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false server_name: description: A string representing an SNI (server name indication) value for TLS. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-transform-from-api: jq: | if has("port") then .port |= if type == "number" then tostring else . end else . end x-speakeasy-transform-to-api: jq: | if has("port") then if (.port | type) == "string" and (.port | test("^[0-9]+$")) then .port |= tonumber else . end else . end strategy: description: The backing data store in which to hold cached entities. Accepted value is `memory`. type: string default: memory enum: - memory - redis x-speakeasy-unknown-values: allow 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 default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: graphql-proxy-cache-advanced protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false x-supported-partials: - name: redis-ee paths: - config.redis GraphqlRateLimitingAdvancedPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/GraphqlRateLimitingAdvancedPluginConfig' GraphqlRateLimitingAdvancedPluginConfig: x-speakeasy-entity: GatewayPluginGraphqlRateLimitingAdvanced 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 x-speakeasy-unknown-values: allow 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-speakeasy-param-computed: false pass_all_downstream_headers: description: pass all downstream headers to the upstream graphql server in introspection request type: boolean default: false redis: type: object default: null nullable: true properties: cloud_authentication: description: Cloud auth related configs for connecting to a Cloud Provider's Redis instance. type: object default: null nullable: true properties: auth_provider: description: Auth providers to be used to authenticate to a Cloud Provider's Redis instance. type: string enum: - aws - azure - gcp x-referenceable: true x-speakeasy-unknown-values: allow aws_access_key_id: description: AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_is_serverless: description: This flag specifies whether the cluster is serverless when auth_provider is set to `aws`. type: boolean default: true aws_region: description: The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false 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 x-referenceable: true 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 default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: string default: '6379' maximum: 65535 minimum: 0 x-referenceable: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false sentinel_password: description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false server_name: description: A string representing an SNI (server name indication) value for TLS. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-transform-from-api: jq: | if has("port") then .port |= if type == "number" then tostring else . end else . end x-speakeasy-transform-to-api: jq: | if has("port") then if (.port | type) == "string" and (.port | test("^[0-9]+$")) then .port |= tonumber else . end else . end 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 strategy: description: The rate-limiting strategy to use for retrieving and incrementing the limits. type: string default: cluster enum: - cluster - redis x-speakeasy-unknown-values: allow 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 x-speakeasy-unknown-values: allow required: - limit - sync_rate - window_size 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: graphql-rate-limiting-advanced protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config x-supported-partials: - name: redis-ee paths: - config.redis GrpcGatewayPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/GrpcGatewayPluginConfig' GrpcGatewayPluginConfig: x-speakeasy-entity: GatewayPluginGrpcGateway properties: config: type: object default: null nullable: true properties: proto: description: Describes the gRPC types and methods. type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false GrpcWebPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/GrpcWebPluginConfig' GrpcWebPluginConfig: x-speakeasy-entity: GatewayPluginGrpcWeb properties: config: type: object default: null nullable: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false HMACAuth: x-speakeasy-entity: GatewayHMACAuth type: object properties: consumer: type: object nullable: true properties: id: type: string x-foreign: true x-speakeasy-terraform-ignore: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true secret: type: string nullable: true x-encrypted: true x-speakeasy-param-computed: true tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false 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: GatewayHMACAuth type: object properties: consumer: type: object nullable: true properties: id: type: string x-foreign: true x-speakeasy-terraform-ignore: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true secret: type: string nullable: true x-encrypted: true x-speakeasy-param-computed: true tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false username: type: string example: id: 75695322-e8a0-4109-aed4-5416b0308d85 secret: wQazJ304DW5huJklHgUfjfiSyCyTAEDZ username: xerxes additionalProperties: false required: - username HeaderCertAuthPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/HeaderCertAuthPluginConfig' HeaderCertAuthPluginConfig: x-speakeasy-entity: GatewayPluginHeaderCertAuth 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 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 x-speakeasy-unknown-values: allow 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-speakeasy-param-computed: false http_proxy_host: description: 'A string representing a host name, such as example.com.' type: string default: null nullable: true x-speakeasy-param-computed: false http_proxy_port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer default: null maximum: 65535 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false https_proxy_port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer default: null maximum: 65535 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 ssl_verify: description: This option enables verification of the certificate presented by the server of the OCSP responder's URL and by the server of the CRL Distribution Point. type: boolean default: false required: - ca_certificates - certificate_header_format - certificate_header_name name: const: header-cert-auth protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config HmacAuthPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/HmacAuthPluginConfig' HmacAuthPluginConfig: x-speakeasy-entity: GatewayPluginHmacAuth properties: config: type: object default: null nullable: true properties: algorithms: description: 'A list of HMAC digest algorithms that the user wants to support. Allowed values are `hmac-sha224`, `hmac-sha256`, `hmac-sha384`, `hmac-sha512`, and `hmac-sha1` (disabled by default, and not available in FIPS mode)' type: array items: enum: - hmac-sha1 - hmac-sha224 - hmac-sha256 - hmac-sha384 - hmac-sha512 type: string x-speakeasy-unknown-values: allow default: - hmac-sha224 - 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 default: null nullable: true x-speakeasy-param-computed: false clock_skew: description: Clock skew in seconds to prevent replay attacks. type: number default: 300 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 default: null nullable: true x-speakeasy-param-computed: false validate_request_body: description: A boolean value telling the plugin to enable body validation. type: boolean default: false x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false HttpLogPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/HttpLogPluginConfig' HttpLogPluginConfig: x-speakeasy-entity: GatewayPluginHttpLog properties: config: type: object properties: client_certificate: description: Certificate to use as the mTLS client certificate when connecting to the configured HTTPS endpoint. type: object default: null nullable: true properties: id: type: string x-foreign: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow custom_fields_by_lua: description: Lua code as a key-value map type: object default: null additionalProperties: type: string nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null additionalProperties: type: string nullable: true x-speakeasy-param-computed: false http_endpoint: description: 'A string representing a URL, such as https://example.com/path/to/resource?q=search.' type: string x-encrypted: true x-referenceable: true 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 x-speakeasy-unknown-values: allow queue: type: object default: null nullable: true properties: concurrency_limit: description: The number of of queue delivery timers. -1 indicates unlimited. type: integer default: 1 enum: - -1 - 1 x-speakeasy-unknown-values: allow initial_retry_delay: description: Time in seconds before the initial retry is made for a failing batch. type: number maximum: 1000000 minimum: 0.001 x-speakeasy-param-computed: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: false queue_size: description: Maximum number of log entries to be sent on each message to the upstream server. type: integer default: null nullable: true x-speakeasy-param-computed: false retry_count: description: Number of times to retry when sending data to the upstream server. type: integer default: null nullable: true x-speakeasy-param-computed: false ssl_verify: description: 'When using TLS, this option enables verification of the certificate presented by the server.' type: boolean default: false timeout: description: An optional timeout in milliseconds when sending data to the upstream server. type: number default: 10000 required: - http_endpoint 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config InjectionProtectionPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/InjectionProtectionPluginConfig' InjectionProtectionPluginConfig: x-speakeasy-entity: GatewayPluginInjectionProtection properties: config: type: object default: null nullable: true 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 required: - name - regex type: object default: null nullable: true x-speakeasy-param-computed: false enforcement_mode: description: Enforcement mode of the security policy. type: string default: block enum: - block - log_only x-speakeasy-unknown-values: allow 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 - sql_low_sensitivity - ssi - xpath_abbreviated - xpath_extended type: string x-speakeasy-unknown-values: allow default: - sql locations: description: The locations to check for injection. type: array items: enum: - body - headers - path - path_and_query - query type: string x-speakeasy-unknown-values: allow default: - path_and_query x-speakeasy-param-computed: false name: const: injection-protection protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false IpRestrictionPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/IpRestrictionPluginConfig' IpRestrictionPluginConfig: x-speakeasy-entity: GatewayPluginIpRestriction properties: config: type: object default: null nullable: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false message: description: The message to send as a response body to rejected requests. type: string default: null nullable: true x-speakeasy-param-computed: false status: description: The HTTP status of the requests that will be rejected by the plugin. type: number default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false JWT: x-speakeasy-entity: GatewayJWT type: object properties: algorithm: type: string default: HS256 enum: - ES256 - ES256K - ES384 - ES512 - ESB256 - ESB320 - ESB384 - ESB512 - ESP256 - ESP384 - ESP512 - Ed25519 - Ed448 - EdDSA - HS256 - HS384 - HS512 - PS256 - PS384 - PS512 - RS256 - RS384 - RS512 nullable: true x-speakeasy-unknown-values: allow consumer: type: object nullable: true properties: id: type: string x-foreign: true x-speakeasy-terraform-ignore: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true key: type: string nullable: true x-speakeasy-param-computed: true rsa_public_key: type: string default: null nullable: true x-speakeasy-param-computed: false secret: type: string nullable: true x-speakeasy-param-computed: true tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false 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: GatewayJWT type: object properties: algorithm: type: string default: HS256 enum: - ES256 - ES256K - ES384 - ES512 - ESB256 - ESB320 - ESB384 - ESB512 - ESP256 - ESP384 - ESP512 - Ed25519 - Ed448 - EdDSA - HS256 - HS384 - HS512 - PS256 - PS384 - PS512 - RS256 - RS384 - RS512 nullable: true x-speakeasy-unknown-values: allow consumer: type: object nullable: true properties: id: type: string x-foreign: true x-speakeasy-terraform-ignore: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true key: type: string nullable: true x-speakeasy-param-computed: true rsa_public_key: type: string default: null nullable: true x-speakeasy-param-computed: false secret: type: string nullable: true x-speakeasy-param-computed: true tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false example: algorithm: HS256 id: 75695322-e8a0-4109-aed4-5416b0308d85 key: YJdmaDvVTJxtcWRCvkMikc8oELgAVNcz secret: C50k0bcahDhLNhLKSUBSR1OMiFGzNZ7X additionalProperties: false JqPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/JqPluginConfig' JqPluginConfig: x-speakeasy-entity: GatewayPluginJq properties: config: type: object default: null nullable: true properties: request_if_media_type: type: array items: type: string default: - application/json request_jq_program: type: string default: null nullable: true x-speakeasy-param-computed: false request_jq_program_options: type: object default: {} 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 default: null nullable: true x-speakeasy-param-computed: false response_jq_program_options: type: object default: {} 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 x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: jq protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false JsonThreatProtectionPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/JsonThreatProtectionPluginConfig' JsonThreatProtectionPluginConfig: x-speakeasy-entity: GatewayPluginJsonThreatProtection properties: config: type: object default: null nullable: true properties: allow_duplicate_object_entry_name: description: Allow or disallow duplicate object entry name. type: boolean default: true allow_non_json_requests: description: Allow non-json requests to bypass the rules type: boolean default: false enforcement_mode: description: Enforcement mode of the security policy. type: string default: block enum: - block - log_only x-speakeasy-unknown-values: allow 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 x-speakeasy-param-computed: false name: const: json-threat-protection protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false JweDecryptPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/JweDecryptPluginConfig' JweDecryptPluginConfig: x-speakeasy-entity: GatewayPluginJweDecrypt 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 required: - key_sets name: const: jwe-decrypt protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config JwtPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/JwtPluginConfig' JwtPluginConfig: x-speakeasy-entity: GatewayPluginJwt properties: config: type: object default: null nullable: true properties: anonymous: description: An optional string (consumer UUID or username) value to use as an “anonymous” consumer if authentication fails. type: string default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: 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_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 x-speakeasy-param-computed: false name: const: jwt protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false JwtSignerPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/JwtSignerPluginConfig' JwtSignerPluginConfig: x-speakeasy-entity: GatewayPluginJwtSigner properties: config: type: object default: null nullable: true properties: access_token_audience_claim: description: Specify the claim in an access token to verify against values of `config.access_token_audiences_allowed`. type: array items: type: string default: - aud access_token_audiences_allowed: description: The audiences allowed to be present in the access token claim specified by `config.access_token_audience_claim`. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false 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 values. Valid values are `id`, `username`, and `custom_id`.' type: array items: enum: - custom_id - id - username type: string x-speakeasy-unknown-values: allow 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 default: null nullable: true x-speakeasy-param-computed: false access_token_endpoints_ssl_verify: description: 'Whether to verify the TLS certificate if any of `access_token_introspection_endpoint`, `access_token_jwks_uri`, or `access_token_keyset` is an HTTPS URI.' type: boolean default: false access_token_expiry_claim: description: Specify the expiry claim in an access token to verify if the default `exp` is not used. type: array items: type: string default: - exp access_token_introspection_audience_claim: description: Specify the claim in an access token introspection to verify against values of `config.access_token_introspection_audiences_allowed`. type: array items: type: string default: - aud access_token_introspection_audiences_allowed: description: The audiences allowed to be present in the access token introspection claim specified by `config.access_token_introspection_audience_claim`. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false access_token_introspection_expiry_claim: description: Specify the expiry claim in an access token introspection to verify if the default `exp` is not used. type: array items: type: string default: - exp 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_issuer_claim: description: Specify the claim in an access token introspection to verify against values of `config.access_token_introspection_issuers_allowed`. type: array items: type: string default: - iss access_token_introspection_issuers_allowed: description: The issuers allowed to be present in the access token introspection claim specified by `config.access_token_introspection_issuer_claim`. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false access_token_introspection_leeway: description: 'Adjusts clock skew between the token issuer introspection results and Kong. The value will be used to time-related claim verification. For example, it will be 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_notbefore_claim: description: Specify the notbefore claim in an access token introspection to verify if the default `nbf` is not used. type: array items: type: string default: - nbf access_token_introspection_optional_claims: description: 'Specify the optional claims of the access token introspection result. These claims are only validated when they are present. Every claim is specified by an array. If the array has multiple elements, it means the claim is inside a nested object of the payload.' type: array items: items: type: string type: array default: null nullable: true x-speakeasy-param-computed: false access_token_introspection_required_claims: description: 'Specify the required claims that must be present in the access token introspection result. Every claim is specified by an array. If the array has multiple elements, it means the claim is inside a nested object of the payload.' type: array items: items: type: string type: array default: null nullable: true x-speakeasy-param-computed: false 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" ]`, which 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 default: null nullable: true x-speakeasy-param-computed: false access_token_introspection_subject_claim: description: Specify the claim in an access token introspection to verify against values of `config.access_token_introspection_subjects_allowed`. type: array items: type: string default: - sub access_token_introspection_subjects_allowed: description: The subjects allowed to be present in the access token introspection claim specified by `config.access_token_introspection_subject_claim`. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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_issuer_claim: description: Specify the claim in an access token to verify against values of `config.access_token_issuers_allowed`. type: array items: type: string default: - iss access_token_issuers_allowed: description: The issuers allowed to be present in the access token claim specified by `config.access_token_issuer_claim`. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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: object default: null nullable: true properties: id: type: string x-foreign: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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: object default: null nullable: true properties: id: type: string x-foreign: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 will be used to time-related claim verification. For example, it will be 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_notbefore_claim: description: Specify the notbefore claim in an access token to verify if the default `nbf` is not used. type: array items: type: string default: - nbf 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_optional_claims: description: 'Specify the optional claims of the access token. These claims are only validated when they are present. Every claim is specified by an array. If the array has multiple elements, it means the claim is inside a nested object of the payload.' type: array items: items: type: string type: array default: null nullable: true x-speakeasy-param-computed: 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_required_claims: description: 'Specify the required claims that must be present in the access token. Every claim is specified by an array. If the array has multiple elements, it means the claim is inside a nested object of the payload.' type: array items: items: type: string type: array default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false access_token_signing: description: 'Quickly turn access token signing or re-signing off and on as needed. If turned off, the plugin will not send the signed or resigned token to the upstream.' type: boolean default: true 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 x-speakeasy-unknown-values: allow access_token_subject_claim: description: Specify the claim in an access token to verify against values of `config.access_token_subjects_allowed`. type: array items: type: string default: - sub access_token_subjects_allowed: description: The subjects allowed to be present in the access token claim specified by `config.access_token_subject_claim`. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: {} additionalProperties: type: string 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 default: {} additionalProperties: type: string 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 default: {} additionalProperties: type: string 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_audience_claim: description: Specify the claim in a channel token to verify against values of `config.channel_token_audiences_allowed`. type: array items: type: string default: - aud channel_token_audiences_allowed: description: The audiences allowed to be present in the channel token claim specified by `config.channel_token_audience_claim`. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-speakeasy-param-computed: false channel_token_endpoints_ssl_verify: description: 'Whether to verify the TLS certificate if any of `channel_token_introspection_endpoint`, `channel_token_jwks_uri`, or `channel_token_keyset` is an HTTPS URI.' type: boolean default: false channel_token_expiry_claim: description: Specify the expiry claim in a channel token to verify if the default `exp` is not used. type: array items: type: string default: - exp channel_token_introspection_audience_claim: description: Specify the claim in a channel token introspection to verify against values of `config.channel_token_introspection_audiences_allowed`. type: array items: type: string default: - aud channel_token_introspection_audiences_allowed: description: The audiences allowed to be present in the channel token introspection claim specified by `config.channel_token_introspection_audience_claim`. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false channel_token_introspection_expiry_claim: description: Specify the expiry claim in a channel token to verify if the default `exp` is not used. type: array items: type: string default: - exp 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 default: null nullable: true x-speakeasy-param-computed: false channel_token_introspection_issuer_claim: description: Specify the claim in a channel token introspection to verify against values of `config.channel_token_introspection_issuers_allowed`. type: array items: type: string default: - iss channel_token_introspection_issuers_allowed: description: The issuers allowed to be present in the channel token introspection claim specified by `config.channel_token_introspection_issuer_claim`. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 used to time-related claim verification. For example, it 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_notbefore_claim: description: Specify the notbefore claim in a channel token to verify if the default `nbf` is not used. type: array items: type: string default: - nbf channel_token_introspection_optional_claims: description: 'Specify the optional claims of the channel token introspection. These claims are only validated when they are present. Every claim is specified by an array. If the array has multiple elements, it means the claim is inside a nested object of the payload.' type: array items: items: type: string type: array default: null nullable: true x-speakeasy-param-computed: false channel_token_introspection_required_claims: description: 'Specify the required claims that must be present in the channel token introspection. Every claim is specified by an array. If the array has multiple elements, it means the claim is inside a nested object of the payload.' type: array items: items: type: string type: array default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false channel_token_introspection_subject_claim: description: Specify the claim in a channel token to verify against values of `config.channel_token_introspection_subjects_allowed`. type: array items: type: string default: - sub channel_token_introspection_subjects_allowed: description: The subjects allowed to be present in the channel token introspection claim specified by `config.channel_token_introspection_subject_claim`. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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_issuer_claim: description: Specify the claim in a channel token to verify against values of `config.channel_token_issuers_allowed`. type: array items: type: string default: - iss channel_token_issuers_allowed: description: The issuers allowed to be present in the channel token claim specified by `config.channel_token_issuer_claim`. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false channel_token_jwks_uri_client_certificate: description: The client certificate that will be used to authenticate Kong if `channel_token_jwks_uri` is an https uri that requires mTLS Auth. type: object default: null nullable: true properties: id: type: string x-foreign: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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: object default: null nullable: true properties: id: type: string x-foreign: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 used to time-related claim verification. For example, it 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_notbefore_claim: description: Specify the notbefore claim in a channel token to verify if the default `nbf` is not used. type: array items: type: string default: - nbf 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_optional_claims: description: 'Specify the optional claims of the channel token. These claims are only validated when they are present. Every claim is specified by an array. If the array has multiple elements, it means the claim is inside a nested object of the payload.' type: array items: items: type: string type: array default: null nullable: true x-speakeasy-param-computed: 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 default: null nullable: true x-speakeasy-param-computed: false channel_token_required_claims: description: 'Specify the required claims that must be present in the channel token. Every claim is specified by an array. If the array has multiple elements, it means the claim is inside a nested object of the payload.' type: array items: items: type: string type: array default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false channel_token_signing: description: 'Quickly turn channel token signing or re-signing off and on as needed. If turned off, the plugin will not send the signed or resigned token to the upstream.' type: boolean default: true 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 x-speakeasy-unknown-values: allow channel_token_subject_claim: description: Specify the claim in a channel token to verify against values of `config.channel_token_subjects_allowed`. type: array items: type: string default: - sub channel_token_subjects_allowed: description: The subjects allowed to be present in the channel token claim specified by `config.channel_token_subject_claim`. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false channel_token_upstream_header: description: This plugin removes the `config.channel_token_request_header` from the request after reading its value. type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false original_channel_token_upstream_header: description: The HTTP header name used to store the original channel token. type: string default: null nullable: true x-speakeasy-param-computed: false realm: description: 'When authentication or authorization fails, or there is an unexpected error, the plugin sends a `WWW-Authenticate` header with the `realm` attribute value.' type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: {} additionalProperties: type: string 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 default: {} additionalProperties: type: string 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 default: {} additionalProperties: type: string 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_audience: description: 'Quickly turn off and on the access token required audiences verification, specified with `config.access_token_audiences_required`.' 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_audience: description: 'Quickly turn off and on the access token introspection required audiences verification, specified with `config.access_token_introspection_audiences_required`.' 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_issuer: description: 'Quickly turn off and on the access token introspection allowed issuers verification, specified with `config.access_token_introspection_issuers_allowed`.' type: boolean default: true verify_access_token_introspection_notbefore: description: Quickly turn off and on the access token introspection notbefore verification. type: boolean default: false 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_introspection_subject: description: 'Quickly turn off and on the access token introspection required subjects verification, specified with `config.access_token_introspection_subjects_required`.' type: boolean default: true verify_access_token_issuer: description: 'Quickly turn off and on the access token allowed issuers verification, specified with `config.access_token_issuers_allowed`.' type: boolean default: true verify_access_token_notbefore: description: Quickly turn off and on the access token notbefore verification. type: boolean default: false 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_access_token_subject: description: 'Quickly turn off and on the access token required subjects verification, specified with `config.access_token_subjects_required`.' type: boolean default: true verify_channel_token_audience: description: 'Quickly turn off and on the channel token required audiences verification, specified with `config.channel_token_audiences_required`.' type: boolean default: true verify_channel_token_expiry: type: boolean default: true verify_channel_token_introspection_audience: description: 'Quickly turn off and on the channel token introspection required audiences verification, specified with `config.channel_token_introspection_audiences_required`.' 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_issuer: description: 'Quickly turn off and on the channel token introspection allowed issuers verification, specified with `config.channel_token_introspection_issuers_allowed`.' type: boolean default: true verify_channel_token_introspection_notbefore: description: Quickly turn off and on the channel token introspection notbefore verification. type: boolean default: false 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_introspection_subject: description: 'Quickly turn off and on the channel token introspection required subjects verification, specified with `config.channel_token_introspection_subjects_required`.' type: boolean default: true verify_channel_token_issuer: description: 'Quickly turn off and on the channel token allowed issuers verification, specified with `config.channel_token_issuers_allowed`.' type: boolean default: true verify_channel_token_notbefore: description: Quickly turn off and on the channel token notbefore verification. type: boolean default: false 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 verify_channel_token_subject: description: 'Quickly turn off and on the channel token required subjects verification, specified with `config.channel_token_subjects_required`.' type: boolean default: true x-speakeasy-param-computed: false name: const: jwt-signer protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false KafkaConsumePlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/KafkaConsumePluginConfig' KafkaConsumePluginConfig: x-speakeasy-entity: GatewayPluginKafkaConsume properties: config: type: object properties: authentication: type: object properties: mechanism: description: 'The SASL authentication mechanism. Supported options: `PLAIN`, `SCRAM-SHA-256`, `SCRAM-SHA-512`, or `OAUTHBEARER`.' type: string enum: - OAUTHBEARER - PLAIN - SCRAM-SHA-256 - SCRAM-SHA-512 x-speakeasy-unknown-values: allow oauthbearer: description: Options for SASL OAUTHBEARER authentication. Required when `mechanism` is `OAUTHBEARER`. type: object default: null nullable: true properties: client_id: description: The OAuth2 client ID. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false client_secret: description: The OAuth2 client secret. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false extensions: description: 'Key-value pairs sent as extensions in the OAUTHBEARER SASL handshake (e.g. logicalCluster, identityPoolId).' type: object default: null additionalProperties: type: string nullable: true x-speakeasy-param-computed: false scopes: description: List of OAuth2 scopes to request. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false token_endpoint_tls_verify: description: Whether to verify the TLS certificate of the token endpoint. type: boolean default: true token_endpoint_url: description: The URL of the OAuth2 token endpoint. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false password: description: Password for SASL authentication. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false user: description: Username for SASL authentication. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: true auto_offset_reset: description: The offset to start from when there is no initial offset in the consumer group. type: string default: latest enum: - earliest - latest x-speakeasy-unknown-values: allow 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. type: string default: null nullable: true x-speakeasy-param-computed: false commit_strategy: description: The strategy to use for committing offsets. type: string default: auto enum: - auto - 'off' x-speakeasy-unknown-values: allow consumer_group: description: Configuration for the Kafka consumer group ID. type: object properties: consumer_group_id: description: 'The fixed consumer group ID to use when mode is set to `manual`. For SSE and WebSocket modes, a `.<node_id>` suffix is automatically appended.' type: string default: null nullable: true x-speakeasy-param-computed: false mode: description: 'The strategy to determine the consumer group ID. `random`: a hash `com.konghq.kafka.<md5>` over the plugin ID (plus consumer identifier/IP and node ID for SSE/WebSocket). `kong_consumer`: uses the authenticated consumer''s `username`, `custom_id`, then `id`, directly; falls back to `random` if no consumer is authenticated. `manual`: uses `consumer_group_id` directly. For SSE/WebSocket, `manual` and `kong_consumer` group IDs get a `.<node_id>` suffix.' type: string default: random enum: - kong_consumer - manual - random x-speakeasy-unknown-values: allow x-speakeasy-param-computed: true dlq_topic: description: The topic to use for the Dead Letter Queue. type: string default: null nullable: true x-speakeasy-param-computed: false enable_dlq: description: 'Enables Dead Letter Queue. When enabled, if the message doesn''t conform to the schema (from Schema Registry) or there''s an error in the `message_by_lua_functions`, it will be forwarded to `dlq_topic` that can be processed later.' type: boolean default: null nullable: true x-speakeasy-param-computed: false enforce_latest_offset_reset: description: 'When true, ''latest'' offset reset behaves correctly (starts from end). When false (default), maintains backwards compatibility where ''latest'' acts like ''earliest''.' type: boolean default: false error_handling: type: object properties: return_error_message: description: 'When enabled, the Kafka client error message is returned to the HTTP client. Useful for debugging but may expose internal details, so should be disabled in production.' type: boolean default: false x-speakeasy-param-computed: true message_by_lua_functions: description: The Lua functions that manipulates the message being sent to the client. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false message_deserializer: description: The deserializer to use for the consumed messages. type: string default: noop enum: - json - noop x-speakeasy-unknown-values: allow mode: description: The mode of operation for the plugin. type: string default: http-get enum: - http-get - server-sent-events - websocket x-speakeasy-unknown-values: allow schema_registry: description: The plugin-global schema registry configuration. type: object properties: confluent: type: object default: null nullable: true properties: authentication: type: object default: null nullable: true properties: basic: type: object default: null nullable: true properties: password: type: string x-encrypted: true x-referenceable: true username: type: string x-encrypted: true x-referenceable: true required: - password - username x-speakeasy-param-computed: false mode: description: Authentication mode to use with the schema registry. type: string default: none enum: - basic - none - oauth2 x-speakeasy-unknown-values: allow oauth2: type: object default: null nullable: true 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false client_secret: description: The client secret for the application registration in the IdP. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false grant_type: description: The OAuth grant type to be used. type: string default: client_credentials enum: - client_credentials - password x-speakeasy-unknown-values: allow password: description: The password to use if `config.oauth.grant_type` is set to `password`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null additionalProperties: type: string x-referenceable: true nullable: true x-speakeasy-param-computed: false token_post_args: description: Extra post arguments to be passed in the token endpoint request. type: object default: null additionalProperties: type: string x-referenceable: true nullable: true x-speakeasy-param-computed: false username: description: The username to use if `config.oauth.grant_type` is set to `password`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false required: - token_endpoint x-speakeasy-param-computed: false oauth2_client: type: object default: null nullable: true 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 x-speakeasy-unknown-values: allow client_secret_jwt_alg: description: The algorithm to use with JWT when using `client_secret_jwt` authentication. type: string default: HS512 enum: - HS256 - HS512 x-speakeasy-unknown-values: allow http_proxy: description: The proxy to use when making HTTP requests to the IdP. type: string default: null nullable: true x-speakeasy-param-computed: false http_proxy_authorization: description: The `Proxy-Authorization` header value to be used with `http_proxy`. type: string default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: true https_proxy: description: The proxy to use when making HTTPS requests to the IdP. type: string default: null nullable: true x-speakeasy-param-computed: false https_proxy_authorization: description: The `Proxy-Authorization` header value to be used with `https_proxy`. type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: false x-speakeasy-param-computed: false ssl_verify: description: Set to false to disable SSL certificate verification when connecting to the schema registry. type: boolean default: true ttl: description: The TTL in seconds for the schema registry cache. type: number default: null maximum: 3600 minimum: 0 nullable: true x-speakeasy-param-computed: false url: description: The URL of the schema registry. type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-param-computed: true security: type: object properties: certificate_id: description: UUID of certificate entity for mTLS authentication. type: string default: null nullable: true x-speakeasy-param-computed: false ssl: description: Enables TLS. type: boolean default: null nullable: true x-speakeasy-param-computed: false ssl_verify: description: 'When using TLS, this option enables verification of the certificate presented by the server.' type: boolean default: false x-speakeasy-param-computed: true topics: description: The Kafka topics and their configuration you want to consume from. type: array items: properties: name: type: string schema_registry: description: The plugin-global schema registry configuration. type: object properties: confluent: type: object default: null nullable: true properties: authentication: type: object default: null nullable: true properties: basic: type: object default: null nullable: true properties: password: type: string x-encrypted: true x-referenceable: true username: type: string x-encrypted: true x-referenceable: true required: - password - username x-speakeasy-param-computed: false mode: description: Authentication mode to use with the schema registry. type: string default: none enum: - basic - none - oauth2 x-speakeasy-unknown-values: allow oauth2: type: object default: null nullable: true 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false client_secret: description: The client secret for the application registration in the IdP. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false grant_type: description: The OAuth grant type to be used. type: string default: client_credentials enum: - client_credentials - password x-speakeasy-unknown-values: allow password: description: The password to use if `config.oauth.grant_type` is set to `password`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null additionalProperties: type: string x-referenceable: true nullable: true x-speakeasy-param-computed: false token_post_args: description: Extra post arguments to be passed in the token endpoint request. type: object default: null additionalProperties: type: string x-referenceable: true nullable: true x-speakeasy-param-computed: false username: description: The username to use if `config.oauth.grant_type` is set to `password`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false required: - token_endpoint x-speakeasy-param-computed: false oauth2_client: type: object default: null nullable: true 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 x-speakeasy-unknown-values: allow client_secret_jwt_alg: description: The algorithm to use with JWT when using `client_secret_jwt` authentication. type: string default: HS512 enum: - HS256 - HS512 x-speakeasy-unknown-values: allow http_proxy: description: The proxy to use when making HTTP requests to the IdP. type: string default: null nullable: true x-speakeasy-param-computed: false http_proxy_authorization: description: The `Proxy-Authorization` header value to be used with `http_proxy`. type: string default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: true https_proxy: description: The proxy to use when making HTTPS requests to the IdP. type: string default: null nullable: true x-speakeasy-param-computed: false https_proxy_authorization: description: The `Proxy-Authorization` header value to be used with `https_proxy`. type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: false x-speakeasy-param-computed: false ssl_verify: description: Set to false to disable SSL certificate verification when connecting to the schema registry. type: boolean default: true ttl: description: The TTL in seconds for the schema registry cache. type: number default: null maximum: 3600 minimum: 0 nullable: true x-speakeasy-param-computed: false url: description: The URL of the schema registry. type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-param-computed: true required: - name type: object minLength: 1 required: - bootstrap_servers - topics 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: kafka-consume 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config KafkaLogPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/KafkaLogPluginConfig' KafkaLogPluginConfig: x-speakeasy-entity: GatewayPluginKafkaLog properties: config: type: object properties: authentication: type: object default: null nullable: true properties: mechanism: description: 'The SASL authentication mechanism. Supported options: `PLAIN`, `SCRAM-SHA-256`, `SCRAM-SHA-512`, or `OAUTHBEARER`.' type: string enum: - OAUTHBEARER - PLAIN - SCRAM-SHA-256 - SCRAM-SHA-512 x-speakeasy-unknown-values: allow oauthbearer: description: Options for SASL OAUTHBEARER authentication. Required when `mechanism` is `OAUTHBEARER`. type: object default: null nullable: true properties: client_id: description: The OAuth2 client ID. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false client_secret: description: The OAuth2 client secret. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false extensions: description: 'Key-value pairs sent as extensions in the OAUTHBEARER SASL handshake (e.g. logicalCluster, identityPoolId).' type: object default: null additionalProperties: type: string nullable: true x-speakeasy-param-computed: false scopes: description: List of OAuth2 scopes to request. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false token_endpoint_tls_verify: description: Whether to verify the TLS certificate of the token endpoint. type: boolean default: true token_endpoint_url: description: The URL of the OAuth2 token endpoint. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false password: description: Password for SASL authentication. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false user: description: Username for SASL authentication. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false custom_fields_by_lua: description: Lua code as a key-value map type: object default: null additionalProperties: type: string nullable: true x-speakeasy-param-computed: false keepalive: type: integer default: 60000 keepalive_enabled: type: boolean default: false key_query_arg: description: 'The request query parameter name that contains the Kafka message key. If specified, messages with the same key will be sent to the same Kafka partition, ensuring consistent ordering.' type: string default: null nullable: true x-speakeasy-param-computed: 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 x-speakeasy-unknown-values: allow 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 schema_registry: description: The plugin-global schema registry configuration. This can be overwritten by the topic configuration. type: object default: null nullable: true properties: confluent: type: object default: null nullable: true properties: authentication: type: object default: null nullable: true properties: basic: type: object default: null nullable: true properties: password: type: string x-encrypted: true x-referenceable: true username: type: string x-encrypted: true x-referenceable: true required: - password - username x-speakeasy-param-computed: false mode: description: Authentication mode to use with the schema registry. type: string default: none enum: - basic - none - oauth2 x-speakeasy-unknown-values: allow oauth2: type: object default: null nullable: true 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false client_secret: description: The client secret for the application registration in the IdP. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false grant_type: description: The OAuth grant type to be used. type: string default: client_credentials enum: - client_credentials - password x-speakeasy-unknown-values: allow password: description: The password to use if `config.oauth.grant_type` is set to `password`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null additionalProperties: type: string x-referenceable: true nullable: true x-speakeasy-param-computed: false token_post_args: description: Extra post arguments to be passed in the token endpoint request. type: object default: null additionalProperties: type: string x-referenceable: true nullable: true x-speakeasy-param-computed: false username: description: The username to use if `config.oauth.grant_type` is set to `password`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false required: - token_endpoint x-speakeasy-param-computed: false oauth2_client: type: object default: null nullable: true 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 x-speakeasy-unknown-values: allow client_secret_jwt_alg: description: The algorithm to use with JWT when using `client_secret_jwt` authentication. type: string default: HS512 enum: - HS256 - HS512 x-speakeasy-unknown-values: allow http_proxy: description: The proxy to use when making HTTP requests to the IdP. type: string default: null nullable: true x-speakeasy-param-computed: false http_proxy_authorization: description: The `Proxy-Authorization` header value to be used with `http_proxy`. type: string default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: true https_proxy: description: The proxy to use when making HTTPS requests to the IdP. type: string default: null nullable: true x-speakeasy-param-computed: false https_proxy_authorization: description: The `Proxy-Authorization` header value to be used with `https_proxy`. type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: false x-speakeasy-param-computed: false key_schema: type: object default: null nullable: true properties: schema_version: description: The schema version to use for serialization/deserialization. Use 'latest' to always fetch the most recent version. type: string default: null nullable: true x-speakeasy-param-computed: false subject_name: description: The name of the subject type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false ssl_verify: description: Set to false to disable SSL certificate verification when connecting to the schema registry. type: boolean default: true ttl: description: The TTL in seconds for the schema registry cache. type: number default: null maximum: 3600 minimum: 0 nullable: true x-speakeasy-param-computed: false url: description: The URL of the schema registry. type: string default: null nullable: true x-speakeasy-param-computed: false value_schema: type: object default: null nullable: true properties: schema_version: description: The schema version to use for serialization/deserialization. Use 'latest' to always fetch the most recent version. type: string default: null nullable: true x-speakeasy-param-computed: false subject_name: description: The name of the subject type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-param-computed: false security: type: object default: null nullable: true properties: certificate_id: description: UUID of certificate entity for mTLS authentication. type: string default: null nullable: true x-speakeasy-param-computed: false ssl: description: Enables TLS. type: boolean default: null nullable: true x-speakeasy-param-computed: false ssl_verify: description: 'When using TLS, this option enables verification of the certificate presented by the server.' type: boolean default: false x-speakeasy-param-computed: false timeout: description: Socket timeout in milliseconds. type: integer default: 10000 topic: description: The Kafka topic to publish to. type: string required: - topic 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config KafkaUpstreamPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/KafkaUpstreamPluginConfig' KafkaUpstreamPluginConfig: x-speakeasy-entity: GatewayPluginKafkaUpstream properties: config: type: object properties: allowed_topics: description: 'The list of allowed topic names to which messages can be sent. The default topic configured in the `topic` field is always allowed, regardless of its inclusion in `allowed_topics`.' type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false authentication: type: object properties: mechanism: description: 'The SASL authentication mechanism. Supported options: `PLAIN`, `SCRAM-SHA-256`, `SCRAM-SHA-512`, or `OAUTHBEARER`.' type: string enum: - OAUTHBEARER - PLAIN - SCRAM-SHA-256 - SCRAM-SHA-512 x-speakeasy-unknown-values: allow oauthbearer: description: Options for SASL OAUTHBEARER authentication. Required when `mechanism` is `OAUTHBEARER`. type: object default: null nullable: true properties: client_id: description: The OAuth2 client ID. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false client_secret: description: The OAuth2 client secret. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false extensions: description: 'Key-value pairs sent as extensions in the OAUTHBEARER SASL handshake (e.g. logicalCluster, identityPoolId).' type: object default: null additionalProperties: type: string nullable: true x-speakeasy-param-computed: false scopes: description: List of OAuth2 scopes to request. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false token_endpoint_tls_verify: description: Whether to verify the TLS certificate of the token endpoint. type: boolean default: true token_endpoint_url: description: The URL of the OAuth2 token endpoint. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false password: description: Password for SASL authentication. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false user: description: Username for SASL authentication. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: true error_handling: type: object properties: return_error_message: description: 'When enabled, the Kafka client error message is returned to the HTTP client. Useful for debugging but may expose internal details, so should be disabled in production.' type: boolean default: false x-speakeasy-param-computed: true 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 headers: description: Configuration for forwarding HTTP headers as Kafka record headers. type: object properties: exclude_headers: description: Blocklist of HTTP header names to exclude from forwarding. Used when `forward_all_by_default` is `enabled`. type: array items: type: string default: [] forward_all_by_default: description: 'When `false`, only headers listed in `include_headers` are forwarded. When `true`, all headers except those in `exclude_headers` are forwarded.' type: boolean default: false forward_http_headers_as_record_headers: description: Whether to forward HTTP headers as Kafka record headers. type: boolean default: true include_headers: description: Allowlist of HTTP header names to forward as Kafka record headers. Used when `forward_all_by_default` is `disabled`. type: array items: type: string default: [] name_mappings: description: 'Map of HTTP header names to Kafka record header names. If an HTTP header name matches a key, the corresponding value is used as the Kafka record header name.' type: object default: {} additionalProperties: type: string repeated_headers_behavior: description: 'How to handle repeated HTTP headers: `concatenate_by_comma` joins values with a comma, `take_first` uses only the first value, `retain_duplicates` creates separate Kafka record headers for each value.' type: string default: retain_duplicates enum: - concatenate_by_comma - retain_duplicates - take_first x-speakeasy-unknown-values: allow x-speakeasy-param-computed: true keepalive: description: Keepalive timeout in milliseconds. type: integer default: 60000 keepalive_enabled: type: boolean default: false key_query_arg: description: 'The request query parameter name that contains the Kafka message key. If specified, messages with the same key will be sent to the same Kafka partition, ensuring consistent ordering.' type: string default: null nullable: true x-speakeasy-param-computed: false message_by_lua_functions: description: The Lua functions that manipulates the message being sent to the Kafka topic. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: 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 x-speakeasy-unknown-values: allow 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 schema_registry: description: The plugin-global schema registry configuration. This can be overwritten by the topic configuration. type: object properties: confluent: type: object default: null nullable: true properties: authentication: type: object default: null nullable: true properties: basic: type: object default: null nullable: true properties: password: type: string x-encrypted: true x-referenceable: true username: type: string x-encrypted: true x-referenceable: true required: - password - username x-speakeasy-param-computed: false mode: description: Authentication mode to use with the schema registry. type: string default: none enum: - basic - none - oauth2 x-speakeasy-unknown-values: allow oauth2: type: object default: null nullable: true 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false client_secret: description: The client secret for the application registration in the IdP. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false grant_type: description: The OAuth grant type to be used. type: string default: client_credentials enum: - client_credentials - password x-speakeasy-unknown-values: allow password: description: The password to use if `config.oauth.grant_type` is set to `password`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null additionalProperties: type: string x-referenceable: true nullable: true x-speakeasy-param-computed: false token_post_args: description: Extra post arguments to be passed in the token endpoint request. type: object default: null additionalProperties: type: string x-referenceable: true nullable: true x-speakeasy-param-computed: false username: description: The username to use if `config.oauth.grant_type` is set to `password`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false required: - token_endpoint x-speakeasy-param-computed: false oauth2_client: type: object default: null nullable: true 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 x-speakeasy-unknown-values: allow client_secret_jwt_alg: description: The algorithm to use with JWT when using `client_secret_jwt` authentication. type: string default: HS512 enum: - HS256 - HS512 x-speakeasy-unknown-values: allow http_proxy: description: The proxy to use when making HTTP requests to the IdP. type: string default: null nullable: true x-speakeasy-param-computed: false http_proxy_authorization: description: The `Proxy-Authorization` header value to be used with `http_proxy`. type: string default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: true https_proxy: description: The proxy to use when making HTTPS requests to the IdP. type: string default: null nullable: true x-speakeasy-param-computed: false https_proxy_authorization: description: The `Proxy-Authorization` header value to be used with `https_proxy`. type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: false x-speakeasy-param-computed: false key_schema: type: object default: null nullable: true properties: schema_version: description: The schema version to use for serialization/deserialization. Use 'latest' to always fetch the most recent version. type: string default: null nullable: true x-speakeasy-param-computed: false subject_name: description: The name of the subject type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false ssl_verify: description: Set to false to disable SSL certificate verification when connecting to the schema registry. type: boolean default: true ttl: description: The TTL in seconds for the schema registry cache. type: number default: null maximum: 3600 minimum: 0 nullable: true x-speakeasy-param-computed: false url: description: The URL of the schema registry. type: string default: null nullable: true x-speakeasy-param-computed: false value_schema: type: object default: null nullable: true properties: schema_version: description: The schema version to use for serialization/deserialization. Use 'latest' to always fetch the most recent version. type: string default: null nullable: true x-speakeasy-param-computed: false subject_name: description: The name of the subject type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-param-computed: true security: type: object properties: certificate_id: description: UUID of certificate entity for mTLS authentication. type: string default: null nullable: true x-speakeasy-param-computed: false ssl: description: Enables TLS. type: boolean default: null nullable: true x-speakeasy-param-computed: false ssl_verify: description: 'When using TLS, this option enables verification of the certificate presented by the server.' type: boolean default: false x-speakeasy-param-computed: true timeout: description: Socket timeout in milliseconds. type: integer default: 10000 topic: description: The default Kafka topic to publish to if the query parameter defined in the `topics_query_arg` does not exist in the request type: string topics_query_arg: description: The request query parameter name that contains the topics to publish to type: string default: null nullable: true x-speakeasy-param-computed: false required: - topic 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: kafka-upstream protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config Key: x-speakeasy-entity: GatewayKey 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: description: A string representing a UUID (universally unique identifier). type: string nullable: true jwk: description: A JSON Web Key represented as a string. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false kid: description: A unique identifier for a key. type: string name: description: The name to associate with the given keys. type: string default: null nullable: true x-speakeasy-param-computed: false pem: description: A keypair in PEM format. type: object default: null nullable: true properties: private_key: type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false public_key: type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false set: description: The id (an UUID) of the key-set with which to associate the key. type: object default: null nullable: true properties: id: type: string x-foreign: true x-speakeasy-param-computed: false tags: description: An optional set of strings associated with the Key for grouping and filtering. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false updated_at: description: Unix epoch when the resource was last updated. type: integer nullable: true x5t: description: X.509 certificate SHA-1 thumbprint. type: string default: null nullable: true x-speakeasy-param-computed: false 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: GatewayKeyAuth type: object properties: consumer: type: object nullable: true properties: id: type: string x-foreign: true x-speakeasy-terraform-ignore: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true key: type: string nullable: true x-speakeasy-param-computed: true tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false ttl: description: key-auth ttl in seconds type: integer nullable: true x-speakeasy-param-computed: true example: consumer: id: 84a73fb8-50fc-44a7-a4d5-aa17728ee83f id: b2f34145-0343-41a4-9602-4c69dec2f269 key: IL1deIyHyQA40WpeLeA1bIUXuvTwlGjo additionalProperties: false KeyAuthPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/KeyAuthPluginConfig' KeyAuthPluginConfig: x-speakeasy-entity: GatewayPluginKeyAuth properties: config: type: object default: null nullable: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 identity_realms: description: A configuration of Konnect Identity Realms that indicate where to source a consumer from. type: array items: properties: id: description: A string representing a UUID (universally unique identifier). type: string region: type: string default: null nullable: true x-speakeasy-param-computed: false scope: type: string enum: - cp - realm x-speakeasy-unknown-values: allow type: object x-speakeasy-param-computed: true 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 principals: type: object properties: directory: description: The Kong Identity directory instance to authenticate against. type: string default: default enabled: description: 'When true, authenticate against Kong Identity instead of local credentials.' type: boolean default: false error_on_miss: description: 'When true (default), return 401 if no matching principal is found in Kong Identity. When false, allow the request to continue unauthenticated instead.' type: boolean default: true x-speakeasy-param-computed: true realm: description: When authentication fails the plugin sends `WWW-Authenticate` header with `realm` attribute value. type: string default: null nullable: true x-speakeasy-param-computed: 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 are always allowed.' type: boolean default: true x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false KeyAuthWithoutParents: x-speakeasy-entity: GatewayKeyAuth type: object properties: consumer: type: object nullable: true properties: id: type: string x-foreign: true x-speakeasy-terraform-ignore: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true key: type: string nullable: true x-speakeasy-param-computed: true tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false ttl: description: key-auth ttl in seconds type: integer nullable: true x-speakeasy-param-computed: true example: id: b2f34145-0343-41a4-9602-4c69dec2f269 key: IL1deIyHyQA40WpeLeA1bIUXuvTwlGjo additionalProperties: false KeySet: x-speakeasy-entity: GatewayKeySet type: object properties: created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true name: description: The name to associate with the given key-set. type: string default: null nullable: true x-speakeasy-param-computed: false tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false 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: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/LdapAuthAdvancedPluginConfig' LdapAuthAdvancedPluginConfig: x-speakeasy-entity: GatewayPluginLdapAuthAdvanced 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 required: - attribute - base_dn - ldap_host name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config LdapAuthPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/LdapAuthPluginConfig' LdapAuthPluginConfig: x-speakeasy-entity: GatewayPluginLdapAuth 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 required: - attribute - base_dn - ldap_host name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config LogglyPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/LogglyPluginConfig' LogglyPluginConfig: x-speakeasy-entity: GatewayPluginLoggly properties: config: type: object properties: client_errors_severity: type: string default: info enum: - alert - crit - debug - emerg - err - info - notice - warning x-speakeasy-unknown-values: allow custom_fields_by_lua: description: Lua code as a key-value map type: object default: null additionalProperties: type: string nullable: true x-speakeasy-param-computed: false host: description: 'A string representing a host name, such as example.com.' type: string default: logs-01.loggly.com key: type: string x-encrypted: true x-referenceable: true log_level: type: string default: info enum: - alert - crit - debug - emerg - err - info - notice - warning x-speakeasy-unknown-values: allow 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 x-speakeasy-unknown-values: allow successful_severity: type: string default: info enum: - alert - crit - debug - emerg - err - info - notice - warning x-speakeasy-unknown-values: allow tags: type: array items: type: string default: - kong timeout: type: number default: 10000 required: - key 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config MTLSAuth: x-speakeasy-entity: GatewayMTLSAuth type: object properties: ca_certificate: type: object nullable: false properties: id: type: string x-foreign: true consumer: type: object nullable: true properties: id: type: string x-foreign: true x-speakeasy-terraform-ignore: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true subject_name: type: string tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false 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: GatewayMTLSAuth type: object properties: ca_certificate: type: object nullable: false properties: id: type: string x-foreign: true consumer: type: object nullable: true properties: id: type: string x-foreign: true x-speakeasy-terraform-ignore: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true subject_name: type: string tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false 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 MeteringAndBillingPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/MeteringAndBillingPluginConfig' MeteringAndBillingPluginConfig: x-speakeasy-entity: GatewayPluginMeteringAndBilling properties: config: type: object properties: api_token: description: Bearer token for authenticating with the ingest endpoint. type: string x-encrypted: true x-referenceable: true attributes: description: 'Capture custom properties to the usage event data payload for pricing dimensions or reporting. Attributes add dimensions like provider, department or project that your billing model needs for tiered or per-dimension pricing.' type: array items: properties: event_property_name: description: The property name in the usage event data payload. type: string look_up_value_in: description: 'The header name or query parameter that contains the value, e.g ''x-department-id''' type: string source: description: Where to find this attribute in the request. type: string enum: - header - query x-speakeasy-unknown-values: allow required: - event_property_name - look_up_value_in - source type: object default: null nullable: true x-speakeasy-param-computed: false ingest_endpoint: description: The HTTP endpoint where usage events are sent. type: string x-referenceable: true keepalive: description: How long in milliseconds an idle connection to the ingest endpoint is kept open before being closed. type: number default: 60000 meter_ai_token_usage: description: Emit events for LLM input and output tokens on AI Gateway requests. type: boolean default: true meter_api_requests: description: Emit a usage event for each API Gateway request. type: boolean default: true queue: type: object properties: concurrency_limit: description: The number of of queue delivery timers. -1 indicates unlimited. type: integer default: 1 enum: - -1 - 1 x-speakeasy-unknown-values: allow initial_retry_delay: description: Time in seconds before the initial retry is made for a failing batch. type: number maximum: 1000000 minimum: 0.001 x-speakeasy-param-computed: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: true ssl_verify: description: Verify the TLS certificate presented by the ingest endpoint. type: boolean default: true subject: description: The subject identifies who gets billed for each request. Choose where the plugin should look for the customer identifier. type: object properties: field: description: 'The header name, query parameter, consumer field, or application field that contains the customer identifier, e.g. ''x-customer-id''' type: string default: null nullable: true x-speakeasy-param-computed: false look_up_value_in: description: Where to find the customer identifier in the request. type: string default: consumer enum: - application - consumer - header - query x-speakeasy-unknown-values: allow x-speakeasy-param-computed: true timeout: description: Maximum time in milliseconds to wait for a response from the ingest endpoint. type: number default: 10000 required: - api_token - ingest_endpoint 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: metering-and-billing 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config MockingPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/MockingPluginConfig' MockingPluginConfig: x-speakeasy-entity: GatewayPluginMocking properties: config: type: object default: null nullable: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: true 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 x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: mocking protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false MtlsAuthPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/MtlsAuthPluginConfig' MtlsAuthPluginConfig: x-speakeasy-entity: GatewayPluginMtlsAuth 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-speakeasy-param-computed: false http_proxy_host: description: 'A string representing a host name, such as example.com.' type: string default: null nullable: true x-speakeasy-param-computed: false http_proxy_port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer default: null maximum: 65535 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false https_proxy_port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer default: null maximum: 65535 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow san_dirname_matcher: description: 'Specifies a list of Subject Alternative Name (SAN) DirectoryName attributes to use for consumer lookup. Applicable only when `skip_consumer_lookup` is false. Supported formats: OID, Long Name, or Short Name. Examples: `commonName` (Long Name), `CN` (Short Name), `2.5.4.3` (OID). If left empty (default), all attributes present in the SAN DirectoryName extension are used. The matcher is case sensitive.' type: array items: type: string default: [] 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 ssl_verify: description: This option enables verification of the certificate presented by the server of the OCSP responder's URL and by the server of the CRL Distribution Point. type: boolean default: false required: - ca_certificates name: const: mtls-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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config OasValidationPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/OasValidationPluginConfig' OasValidationPluginConfig: x-speakeasy-entity: GatewayPluginOasValidation 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 collect_all_errors: description: 'If set to true, collects all schema validation errors instead of stopping at the first. Applies only to JSON Schema validation (parameter values, request/response body); pre-validation checks such as path-not-found, unsupported content-type, and unknown parameters are fail-fast and always stop at the first error regardless of this setting. Only takes effect when `structured_errors` is set to `false`. Note: Enabling this option will affect performance.' type: boolean default: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 max_structured_errors: description: 'When set, caps the number of structured errors returned in the `errors` array to the specified value (must be greater than 0). Applies only to JSON Schema validation errors; pre-validation failures such as path-not-found, unsupported content-type, and unknown parameters always produce a single error entry. When not set, no cap is applied. Requires `structured_errors` to be enabled.' type: integer default: null nullable: true x-speakeasy-param-computed: 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 structured_errors: description: 'If set to true, schema validation failures are returned as a structured `errors` array, where each entry contains `instanceLocation`, `keywordLocation`, and `error`. Pre-validation failures such as path-not-found or unsupported content-type also return an `errors` array, but entries contain only an `error` field. Requires `verbose_response` to be enabled. Use `max_structured_errors` to cap the response size.' 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 required: - api_spec 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: oas-validation protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config Oauth2IntrospectionPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/Oauth2IntrospectionPluginConfig' Oauth2IntrospectionPluginConfig: x-speakeasy-entity: GatewayPluginOauth2Introspection 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 x-encrypted: true x-referenceable: true 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 x-speakeasy-unknown-values: allow 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 default: {} additionalProperties: type: string 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 default: null nullable: true x-speakeasy-param-computed: false ttl: description: The TTL in seconds for the introspection response. Set to 0 to disable the expiration. type: number default: 30 required: - authorization_value - introspection_url name: const: oauth2-introspection protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config OpaPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/OpaPluginConfig' OpaPluginConfig: x-speakeasy-entity: GatewayPluginOpa 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 x-speakeasy-unknown-values: allow 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 required: - opa_path name: const: opa protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config OpenidConnectPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/OpenidConnectPluginConfig' OpenidConnectPluginConfig: x-speakeasy-entity: GatewayPluginOpenidConnect 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 default: null nullable: true x-speakeasy-param-computed: false audience: description: The audience passed to the authorization endpoint. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-speakeasy-param-computed: false authorization_cookie_domain: description: The authorization cookie Domain flag. type: string default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-speakeasy-param-computed: false authorization_endpoint: description: The authorization endpoint. If set it overrides the value in `authorization_endpoint` returned by the discovery endpoint. type: string default: null nullable: true x-speakeasy-param-computed: false authorization_query_args_client: description: Extra query arguments passed from the client to the authorization endpoint. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false authorization_query_args_names: description: Extra query argument names passed to the authorization endpoint. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false authorization_query_args_values: description: Extra query argument values passed to the authorization endpoint. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false bearer_token_header_name: description: 'The name of the HTTP header from which the bearer token is retrieved. When configured, only this header is checked for the bearer token. ' type: string default: null minLength: 1 nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 legacy 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 x-speakeasy-param-computed: true 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 default: null nullable: true x-speakeasy-param-computed: false cache_ttl_min: description: The minimum cache ttl in seconds (enforced). type: number default: null nullable: true x-speakeasy-param-computed: false cache_ttl_neg: description: The negative cache ttl in seconds. type: number default: null nullable: true x-speakeasy-param-computed: false cache_ttl_resurrect: description: The resurrection ttl in seconds. type: number default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 x-referenceable: true default: null nullable: true x-encrypted: true x-speakeasy-param-computed: false client_jwk: description: The JWK used for the private_key_jwt authentication. type: array items: properties: alg: type: string default: null nullable: true x-speakeasy-param-computed: false crv: type: string default: null nullable: true x-speakeasy-param-computed: false d: type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false dp: type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false dq: type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false e: type: string default: null nullable: true x-speakeasy-param-computed: false issuer: type: string default: null nullable: true x-speakeasy-param-computed: false k: type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false key_ops: type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false kid: type: string default: null nullable: true x-speakeasy-param-computed: false kty: type: string default: null nullable: true x-speakeasy-param-computed: false 'n': type: string default: null nullable: true x-speakeasy-param-computed: false oth: type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false p: type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false q: type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false qi: type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false r: type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false t: type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false use: type: string default: null nullable: true x-speakeasy-param-computed: false x: type: string default: null nullable: true x-speakeasy-param-computed: false x5c: type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false x5t: type: string default: null nullable: true x-speakeasy-param-computed: false x5t#S256: type: string default: null nullable: true x-speakeasy-param-computed: false x5u: type: string default: null nullable: true x-speakeasy-param-computed: false 'y': type: string default: null nullable: true x-speakeasy-param-computed: false type: object default: null nullable: true x-speakeasy-param-computed: false client_secret: description: The client secret. type: array items: type: string x-referenceable: true default: null nullable: true x-encrypted: true x-speakeasy-param-computed: false cluster_cache_items: description: 'Specifies which items are stored in the cluster cache backend configured via `cluster_cache_strategy`. Allowed values are `"introspection"` and `"tokens"`. When `"tokens"` is included, access and refresh token material is AES-encrypted before being written to the cache; enable only when your Redis deployment meets your compliance requirements. Defaults to `["introspection"]`. An empty set disables all cluster caching regardless of `cluster_cache_strategy`.' type: array items: enum: - introspection - tokens type: string x-speakeasy-unknown-values: allow default: - introspection cluster_cache_redis: type: object properties: cloud_authentication: description: Cloud auth related configs for connecting to a Cloud Provider's Redis instance. type: object default: null nullable: true properties: auth_provider: description: Auth providers to be used to authenticate to a Cloud Provider's Redis instance. type: string enum: - aws - azure - gcp x-referenceable: true x-speakeasy-unknown-values: allow aws_access_key_id: description: AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_is_serverless: description: This flag specifies whether the cluster is serverless when auth_provider is set to `aws`. type: boolean default: true aws_region: description: The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false 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 x-referenceable: true 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 default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: string default: '6379' maximum: 65535 minimum: 0 x-referenceable: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false sentinel_password: description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false server_name: description: A string representing an SNI (server name indication) value for TLS. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: true x-speakeasy-transform-from-api: jq: | if has("port") then .port |= if type == "number" then tostring else . end else . end x-speakeasy-transform-to-api: jq: | if has("port") then if (.port | type) == "string" and (.port | test("^[0-9]+$")) then .port |= tonumber else . end else . end cluster_cache_strategy: description: 'The strategy to use for the cluster cache. If set, the plugin will share introspection cache with nodes configured with the same strategy backend.' type: string default: 'off' enum: - 'off' - redis x-speakeasy-unknown-values: allow 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 x-speakeasy-unknown-values: allow default: - custom_id - username consumer_claims: description: 'The claims used for consumer mapping. Each entry represents a claim path inside the token payload. The paths are evaluated in order, and the first matching claim is used.' type: array items: description: 'A path of strings representing the location of the claim in a nested object. For example, to map to `user.info.id`, set `[ "user", "info", "id" ]`.' items: type: string type: array default: null nullable: true x-speakeasy-param-computed: false consumer_groups_claim: description: 'The claim used for consumer groups mapping. If multiple values are set, it means the claim is inside a nested object of the token payload.' type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false consumer_groups_optional: description: Do not terminate the request if consumer groups mapping fails. type: boolean default: false 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 x-speakeasy-unknown-values: allow default: null nullable: true x-speakeasy-param-computed: false discovery_headers_names: description: Extra header names passed to the discovery endpoint. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false discovery_headers_values: description: Extra header values passed to the discovery endpoint. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false downstream_access_token_header: description: The downstream access token header. type: string default: null nullable: true x-speakeasy-param-computed: false downstream_access_token_jwk_header: description: The downstream access token JWK header. type: string default: null nullable: true x-speakeasy-param-computed: false downstream_headers: description: The downstream claim to header mappings. type: array items: properties: header: description: The name of the header. type: string path: description: The path of the header value. type: array items: type: string minLength: 1 required: - header - path type: object default: null nullable: true x-speakeasy-param-computed: false downstream_headers_claims: description: The downstream header claims. Only top level claims are supported. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false downstream_headers_names: description: The downstream header names for the claim values. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false downstream_id_token_header: description: The downstream id token header. type: string default: null nullable: true x-speakeasy-param-computed: false downstream_id_token_jwk_header: description: The downstream id token JWK header. type: string default: null nullable: true x-speakeasy-param-computed: false downstream_introspection_header: description: The downstream introspection header. type: string default: null nullable: true x-speakeasy-param-computed: false downstream_introspection_jwt_header: description: The downstream introspection JWT header. type: string default: null nullable: true x-speakeasy-param-computed: false downstream_refresh_token_header: description: The downstream refresh token header. type: string default: null nullable: true x-speakeasy-param-computed: false downstream_session_id_header: description: The downstream session id header. type: string default: null nullable: true x-speakeasy-param-computed: false downstream_user_info_header: description: The downstream user info header. type: string default: null nullable: true x-speakeasy-param-computed: false downstream_user_info_jwt_header: description: The downstream user info JWT header (in case the user info returns a JWT response). type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-referenceable: true default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false http_proxy_authorization: description: The HTTP proxy authorization. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: true https_proxy: description: The HTTPS proxy. type: string default: null nullable: true x-speakeasy-param-computed: false https_proxy_authorization: description: The HTTPS proxy authorization. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false id_token_param_name: description: The name of the parameter used to pass the id token. type: string default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 x-speakeasy-unknown-values: allow 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow introspection_headers_client: description: Extra headers passed from the client to the introspection endpoint. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false introspection_headers_names: description: Extra header names passed to the introspection endpoint. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false introspection_headers_values: description: Extra header values passed to the introspection endpoint. type: array items: type: string x-referenceable: true default: null nullable: true x-encrypted: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false introspection_post_args_client_headers: description: Extra post arguments passed from the client headers to the introspection endpoint. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false introspection_post_args_names: description: Extra post argument names passed to the introspection endpoint. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false introspection_post_args_values: description: Extra post argument values passed to the introspection endpoint. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false 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 x-referenceable: true issuers_allowed: description: The issuers allowed to be present in the tokens (`iss` claim). type: array items: type: string x-referenceable: true default: null nullable: true x-speakeasy-param-computed: false jwks_endpoint: description: Overrides the `jwks_uri` returned by discovery. Use when the IdP exposes a non-standard JWKS endpoint. type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 x-speakeasy-unknown-values: allow 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 x-speakeasy-unknown-values: allow 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 x-referenceable: true default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 x-speakeasy-unknown-values: allow default: - DELETE - POST logout_post_arg: description: The request body argument that activates the logout. type: string default: null nullable: true x-speakeasy-param-computed: false logout_query_arg: description: The request query argument that activates the logout. type: string default: null nullable: true x-speakeasy-param-computed: false 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 x-referenceable: true default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false max_age: description: The maximum age (in seconds) compared to the `auth_time` claim. type: number default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false no_proxy: description: Do not use proxy with these hosts. type: string default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 principals: description: Configuration for Kong Identity principal hydration after token verification. type: object properties: directory: description: The Kong Identity directory instance to look up against. type: string default: default enabled: description: 'When true, query Kong Identity to map a Principal after token verification.' type: boolean default: false error_on_miss: description: 'When true (default), return 401 if fail to match a Principal in Kong Identity after token verification. When false, the request continues without authenticated_principal set.' type: boolean default: true match_consumer: description: 'If a Consumer is attached to the matched Principal in Kong Identity, load it and set it in the request context, overriding consumer_by.' type: boolean default: true match_consumer_groups: description: 'If Consumer Groups are attached to the matched Principal in Kong Identity, load them, overriding consumer_groups_claim.' type: boolean default: true principal_by: description: 'Custom identity name for a type=custom Kong Identity lookup. When absent and principal_claim is set, an OIDC lookup is performed using principal_claim as the claim name instead of ''sub''.' type: string default: null minLength: 1 nullable: true x-speakeasy-param-computed: false principal_claim: description: 'Token claim to use for the Kong Identity lookup. If multiple values are set, it means the claim is inside a nested object of the token payload. When principal_by is also set, performs a custom identity lookup (type=custom). When set alone, performs an OIDC lookup using this claim name instead of the default ''sub''.' type: array items: minLength: 1 type: string default: null minLength: 1 nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: true 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 x-speakeasy-unknown-values: allow 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 x-speakeasy-unknown-values: allow proof_of_possession_mtls_from_header: description: 'Configuration for reading the client certificate from an HTTP header injected by a WAF or L7 proxy that terminates TLS. When configured, the plugin reads and validates the certificate from the specified header for mTLS Proof-of-Possession (PoP) verification instead of (or in addition to) the TLS layer certificate.' type: object default: null nullable: true properties: allow_partial_chain: description: 'Allow certificate verification with only an intermediate certificate. When enabled, a full chain to the root CA is not required.' type: boolean default: false ca_certificates: description: List of CA Certificate UUIDs to use when validating the client certificate chain. At least one is required. type: array items: type: string cert_cache_ttl: description: Time in milliseconds to cache the revocation check result for a given certificate. type: number default: 60000 certificate_header_format: description: 'Encoding format of the certificate in the header. Supported formats: `url_encoded`, `base64_encoded`.' type: string default: url_encoded enum: - base64_encoded - url_encoded x-speakeasy-unknown-values: allow certificate_header_name: description: Name of the HTTP header that contains the injected client certificate type: string http_proxy_host: description: 'A string representing a host name, such as example.com.' type: string default: null nullable: true x-speakeasy-param-computed: false http_proxy_port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer default: null maximum: 65535 minimum: 0 nullable: true x-speakeasy-param-computed: false http_timeout: description: HTTP timeout 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 default: null nullable: true x-speakeasy-param-computed: false https_proxy_port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer default: null maximum: 65535 minimum: 0 nullable: true x-speakeasy-param-computed: false revocation_check_mode: description: Controls client certificate revocation check behavior. `SKIP` disables revocation checking. `IGNORE_CA_ERROR` respects revocation status when reachable but ignores network errors. `STRICT` requires a successful revocation check. type: string default: IGNORE_CA_ERROR enum: - IGNORE_CA_ERROR - SKIP - STRICT x-speakeasy-unknown-values: allow secure_source: description: 'When set to `true`, only requests from trusted IP addresses (configured in `trusted_ips` in kong.conf) are allowed to use the certificate header. This prevents direct header injection from untrusted clients.' type: boolean default: true ssl_verify: description: Verify the TLS certificate of the OCSP responder or CRL distribution point server. type: boolean default: true required: - ca_certificates - certificate_header_name x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-speakeasy-param-computed: false redis: type: object properties: cloud_authentication: description: Cloud auth related configs for connecting to a Cloud Provider's Redis instance. type: object default: null nullable: true properties: auth_provider: description: Auth providers to be used to authenticate to a Cloud Provider's Redis instance. type: string enum: - aws - azure - gcp x-referenceable: true x-speakeasy-unknown-values: allow aws_access_key_id: description: AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_is_serverless: description: This flag specifies whether the cluster is serverless when auth_provider is set to `aws`. type: boolean default: true aws_region: description: The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false 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 x-referenceable: true 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 default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: string default: '6379' maximum: 65535 minimum: 0 x-referenceable: true prefix: description: The Redis session key prefix. type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false sentinel_password: description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false server_name: description: A string representing an SNI (server name indication) value for TLS. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false socket: description: The Redis unix socket path. type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: true x-speakeasy-transform-from-api: jq: | if has("port") then .port |= if type == "number" then tostring else . end else . end x-speakeasy-transform-to-api: jq: | if has("port") then if (.port | type) == "string" and (.port | test("^[0-9]+$")) then .port |= tonumber else . end else . end 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-referenceable: true default: [] nullable: true 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 default: null nullable: true x-speakeasy-param-computed: false 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_bind: description: Bind the session to data acquired from the HTTP request or connection. type: array items: enum: - ip - scheme - user-agent type: string x-speakeasy-unknown-values: allow default: null nullable: true x-speakeasy-param-computed: false session_cookie_domain: description: The session cookie Domain flag. type: string default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false session_memcached_socket: description: The memcached unix socket path. type: string default: null nullable: true x-speakeasy-param-computed: false session_memcached_ssl: description: 'If set to true, uses SSL to connect to memcached' type: boolean default: false session_memcached_ssl_verify: description: 'If set to true, verifies the validity of the memcached server SSL certificate' type: boolean default: false 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 x-speakeasy-unknown-values: allow default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow token_exchange: description: Details on how to accept tokens from other identity providers. type: object default: null nullable: true properties: cache: description: Cache support for token exchange type: object default: null nullable: true properties: enabled: description: Whether to enable caching. type: boolean default: true ttl: description: 'Cache ttl in seconds used when caching exchanged tokens, use it to override `conf.cache_ttl`. Token expiry will be used if shorter than this value.' type: integer default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false request: description: Parameters used in the token exchange request. type: object default: null nullable: true properties: audience: description: Audiences used in the token exchange request. Values defined here override those defined in `config.audience`. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false empty_audience: description: Use empty audiences. Use this field to remove audiences defined in `config.audience`. type: boolean default: false empty_scopes: description: Use empty scopes. Use this field to remove scopes defined in `config.scopes`. type: boolean default: false scopes: description: Scopes used in the token exchange request. Values defined here override those defined in `config.scopes`. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false subject_token_issuers: description: 'Trusted token issuers from which the upstream may accept tokens to be exchanged. If a JWT bearer matches all the conditions of a subject token issuer item, the token will be exchanged.' type: array items: properties: conditions: description: 'A token will only be exchanged when it matches all these criteria. To exchange tokens issued by a different issuer, `conditions` must not be defined. In contrast, to exchange tokens issued by the target issuer itself, `conditions` must be defined.' type: object default: null nullable: true properties: has_audience: type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false has_scopes: type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false missing_audience: type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false missing_scopes: type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false issuer: description: Tokens of whose iss claim matches this value will be exchanged. type: string jwks_uri: description: 'An explicit JWKS endpoint for this issuer. This field should be left empty when this issuer is the same as the target issuer. It is only used when `verify_signature` is `true`. When set, Kong fetches the signing keys from this URI directly instead of using OIDC Discovery.' type: string default: null nullable: true x-speakeasy-param-computed: false verify_signature: description: 'When true, Kong cryptographically verifies the signature of the incoming subject token before exchanging it. This field should be left empty or set to `false` when this issuer is the same as the target issuer. Defaults to `false` for backward compatibility.' type: boolean default: false required: - issuer type: object minLength: 1 required: - subject_token_issuers x-speakeasy-param-computed: false token_exchange_endpoint: description: Endpoint used to perform the legacy token exchange. type: string default: null nullable: true x-speakeasy-param-computed: false token_headers_client: description: Extra headers passed from the client to the token endpoint. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow default: null nullable: true x-speakeasy-param-computed: false token_headers_names: description: Extra header names passed to the token endpoint. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false token_headers_prefix: description: Add a prefix to the token endpoint response headers before forwarding them to the downstream client. type: string default: null nullable: true x-speakeasy-param-computed: false token_headers_replay: description: The names of token endpoint response headers to forward to the downstream client. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false token_headers_values: description: Extra header values passed to the token endpoint. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false token_post_args_names: description: Extra post argument names passed to the token endpoint. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false token_post_args_values: description: Extra post argument values passed to the token endpoint. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false upstream_headers: description: The upstream claim to header mappings. type: array items: properties: header: description: The name of the header. type: string path: description: The path of the header value. type: array items: type: string minLength: 1 required: - header - path type: object default: null nullable: true x-speakeasy-param-computed: false upstream_headers_claims: description: The upstream header claims. Only top level claims are supported. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false upstream_headers_names: description: The upstream header names for the claim values. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false upstream_id_token_header: description: The upstream id token header. type: string default: null nullable: true x-speakeasy-param-computed: false upstream_id_token_jwk_header: description: The upstream id token JWK header. type: string default: null nullable: true x-speakeasy-param-computed: false upstream_introspection_header: description: The upstream introspection header. type: string default: null nullable: true x-speakeasy-param-computed: false upstream_introspection_jwt_header: description: The upstream introspection JWT header. type: string default: null nullable: true x-speakeasy-param-computed: false upstream_refresh_token_header: description: The upstream refresh token header. type: string default: null nullable: true x-speakeasy-param-computed: false upstream_session_id_header: description: The upstream session id header. type: string default: null nullable: true x-speakeasy-param-computed: false upstream_user_info_header: description: The upstream user info header. type: string default: null nullable: true x-speakeasy-param-computed: false upstream_user_info_jwt_header: description: The upstream user info JWT header (in case the user info returns a JWT response). type: string default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow userinfo_endpoint: description: The user info endpoint. If set it overrides the value in `userinfo_endpoint` returned by the discovery endpoint. type: string default: null nullable: true x-speakeasy-param-computed: false userinfo_headers_client: description: Extra headers passed from the client to the user info endpoint. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false userinfo_headers_names: description: Extra header names passed to the user info endpoint. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false userinfo_headers_values: description: Extra header values passed to the user info endpoint. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false userinfo_query_args_client: description: Extra query arguments passed from the client to the user info endpoint. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false userinfo_query_args_names: description: Extra query argument names passed to the user info endpoint. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false userinfo_query_args_values: description: Extra query argument values passed to the user info endpoint. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false 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 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 x-speakeasy-param-computed: true required: - issuer name: const: openid-connect 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config x-supported-partials: - name: redis-ee paths: - config.redis OpentelemetryPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/OpentelemetryPluginConfig' OpentelemetryPluginConfig: x-speakeasy-entity: GatewayPluginOpentelemetry properties: config: type: object properties: access_logs: description: 'Configuration for exporting access logs to an OTLP/HTTP endpoint. If `endpoint` is set, Kong will export access logs (e.g. request/response, route/service, latency, etc.) to the specified endpoint.' type: object properties: custom_attributes_by_lua: description: A key-value map that dynamically modifies access log fields using Lua code. type: object default: null additionalProperties: minLength: 1 type: string nullable: true x-speakeasy-param-computed: false endpoint: description: 'An HTTP URL endpoint where access logs (e.g. request/response, route/service, latency, etc.) are exported.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: true batch_flush_delay: description: 'The delay, in seconds, between two consecutive batches.' type: integer default: null nullable: true x-speakeasy-param-computed: false batch_span_count: description: The number of spans to be sent in a single batch. type: integer default: null nullable: true x-speakeasy-param-computed: false 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 - instana - jaeger - ot - preserve - w3c x-speakeasy-unknown-values: allow 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 default: null additionalProperties: type: string nullable: true x-speakeasy-param-computed: false http_response_header_for_traceid: type: string default: null nullable: true x-speakeasy-param-computed: false logs_endpoint: description: An HTTP URL endpoint where internal logs are exported. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false metrics: description: 'Configuration for exporting metrics to an OTLP/HTTP endpoint. If `endpoint` is set, Kong will export metrics to the specified endpoint at the interval defined by `push_interval`.' type: object properties: enable_ai_metrics: description: 'A boolean value that determines if AI metrics should be collected. If enabled, `gen_ai.*`, `mcp.*`, `kong.gen_ai.*`, `kong.gen_ai.a2a.*` and `kong.mcp.*` metrics will be exported. To enable latency metrics for AI metrics, `enable_latency_metrics` must also be set to `true`. To enable `error.type` attribute for AI metrics, `enable_request_metrics` must also be set to `true`.' type: boolean default: false enable_bandwidth_metrics: description: 'A boolean value that determines if bandwidth metrics should be collected. If enabled, `http.server.request.size` and `http.server.response.size` metrics will be exported.' type: boolean default: false enable_consumer_attribute: description: 'A boolean value that determines if `http.server.request.count`, `http.server.request.size` and `http.server.response.size` metrics should fill in the consumer attribute when available.' type: boolean default: false enable_latency_metrics: description: 'A boolean value that determines if latency metrics should be collected. If enabled, `kong.latency.total`, `kong.latency.internal` and `kong.latency.upstream` metrics will be exported.' type: boolean default: false enable_request_metrics: description: 'A boolean value that determines if request count metrics should be collected. If enabled, `http.server.request.count` metrics will be exported.' type: boolean default: false enable_upstream_health_metrics: description: 'A boolean value that determines if upstream health metrics should be collected. If enabled, `kong.upstream.target.status` metrics will be exported.' type: boolean default: false endpoint: description: An HTTP URL endpoint where metrics are exported. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false push_interval: description: The interval in seconds at which metrics are pushed to the OTLP server. This setting is only applicable when `endpoint` is set. type: number default: 60 x-speakeasy-param-computed: true 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: null nullable: true x-speakeasy-param-computed: false 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 default: w3c enum: - aws - b3 - b3-single - datadog - gcp - instana - jaeger - ot - w3c x-speakeasy-unknown-values: allow 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 - instana - jaeger - ot - w3c type: string x-speakeasy-unknown-values: allow default: null nullable: true x-speakeasy-param-computed: false 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 - instana - jaeger - ot - preserve - w3c type: string x-speakeasy-unknown-values: allow default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow initial_retry_delay: description: Time in seconds before the initial retry is made for a failing batch. type: number maximum: 1000000 minimum: 0.001 x-speakeasy-param-computed: true max_batch_size: description: Maximum number of entries that can be processed at a time. type: integer default: 200 maximum: 1000000 minimum: 1 max_bytes: description: 'Maximum number of bytes that can be waiting on a queue, requires string content.' type: integer default: null nullable: true x-speakeasy-param-computed: false 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: description: 'A key-value map of resource attributes to be sent with the telemetry data. The keys and values can be either static or dynamic using Kong variables (e.g. `${kong.service.name}`) for the values. For dynamic values, Lua string template syntax is used and the values will be rendered at runtime.' type: object additionalProperties: type: string x-lua-required: true x-speakeasy-param-computed: 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 default: null maximum: 1 minimum: 0 nullable: true x-speakeasy-param-computed: false sampling_strategy: description: 'The sampling strategy to use for OTLP `traces`. Set `parent_drop_probability_fallback` if you want parent-based sampling when the parent span contains a `false` sampled flag, and fallback to probability-based sampling otherwise. Set `parent_probability_fallback` if you want parent-based sampling when the parent span contains a valid sampled flag (`true` or `false`), and fallback to probability-based sampling otherwise.' type: string default: parent_drop_probability_fallback enum: - parent_drop_probability_fallback - parent_probability_fallback x-speakeasy-unknown-values: allow 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false access_logs_endpoint: description: 'An HTTP URL endpoint where access logs (e.g. request/response, route/service, latency, etc.) are exported.' type: string deprecated: true x-referenceable: true x-speakeasy-param-computed: true x-speakeasy-param-computed: true 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: opentelemetry 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false Partial: x-speakeasy-entity: GatewayPartial type: object discriminator: mapping: embeddings: '#/components/schemas/PartialEmbeddings' model: '#/components/schemas/PartialModel' redis-ce: '#/components/schemas/PartialRedisCe' redis-ee: '#/components/schemas/PartialRedisEe' vectordb: '#/components/schemas/PartialVectordb' propertyName: type oneOf: - $ref: '#/components/schemas/PartialRedisCe' - $ref: '#/components/schemas/PartialRedisEe' - $ref: '#/components/schemas/PartialVectordb' - $ref: '#/components/schemas/PartialEmbeddings' - $ref: '#/components/schemas/PartialModel' PartialEmbeddings: type: object properties: config: type: object properties: auth: type: object default: null nullable: true 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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_metadata_url: description: 'Custom metadata URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If null, Kong will use the default Google metadata endpoint.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false gcp_oauth_token_url: description: 'Custom OAuth token URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If null, Kong will use the default Google OAuth token endpoint.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false header_value: description: 'Specify the full auth header value for ''header_name'', for example ''Bearer key'' or just ''key''.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow param_name: description: 'If AI model requires authentication via query parameter, specify its name here.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false param_value: description: Specify the full parameter value for 'param_name'. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false model: type: object properties: name: description: Model name to execute. type: string options: description: Key/value settings for the model type: object default: null nullable: true properties: azure: type: object default: null nullable: true properties: api_version: description: '''api-version'' for Azure OpenAI instances.' type: string default: '2023-05-15' deployment_id: description: Deployment ID for Azure OpenAI instances. type: string default: null nullable: true x-speakeasy-param-computed: false instance: description: Instance name for Azure OpenAI hosted models. type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false bedrock: type: object default: null nullable: true properties: aws_assume_role_arn: description: If using AWS providers (Bedrock) you can assume a different role after authentication with the current IAM context is successful. type: string default: null nullable: true x-speakeasy-param-computed: false aws_region: description: If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option. type: string default: null nullable: true x-speakeasy-param-computed: false aws_role_session_name: description: 'If using AWS providers (Bedrock), set the identifier of the assumed role session.' type: string default: null nullable: true x-speakeasy-param-computed: false aws_sts_endpoint_url: description: 'If using AWS providers (Bedrock), override the STS endpoint URL when assuming a different role.' type: string default: null nullable: true x-speakeasy-param-computed: false batch_bucket_prefix: description: 'S3 URI prefix (s3://bucket/prefix/) where Bedrock will get input files from and store results to for native batch API.' type: string default: null nullable: true x-speakeasy-param-computed: false batch_role_arn: description: AWS role arn used for calling batch API. Try to get the value from request if ommited. type: string default: null nullable: true x-speakeasy-param-computed: false embeddings_normalize: description: 'If using AWS providers (Bedrock), set to true to normalize the embeddings.' type: boolean default: false performance_config_latency: description: Force the client's performance configuration 'latency' for all requests. Leave empty to let the consumer select the performance configuration. type: string default: null nullable: true x-speakeasy-param-computed: false video_output_s3_uri: description: 'S3 URI (s3://bucket/prefix) where Bedrock will store generated video files. Required for video generation.' type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false gemini: type: object default: null nullable: true properties: api_endpoint: description: 'If running Gemini on Vertex, specify the regional API endpoint (hostname only).' type: string default: null nullable: true x-speakeasy-param-computed: false location_id: description: 'If running Gemini on Vertex, specify the location ID.' type: string default: null nullable: true x-speakeasy-param-computed: false project_id: description: 'If running Gemini on Vertex, specify the project ID.' type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false huggingface: type: object default: null nullable: true properties: use_cache: description: Use the cache layer on the inference API type: boolean default: null nullable: true x-speakeasy-param-computed: false wait_for_model: description: Wait for the model if it is not ready type: boolean default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false upstream_url: description: upstream url for the embeddings type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false provider: description: AI provider format to use for embeddings API type: string enum: - azure - bedrock - gemini - huggingface - mistral - ollama - openai x-speakeasy-unknown-values: allow required: - name - provider required: - model created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true name: description: A unique string representing a UTF-8 encoded name. type: string default: null nullable: true x-speakeasy-param-computed: false tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false type: type: string const: embeddings updated_at: description: Unix epoch when the resource was last updated. type: integer nullable: true example: config: auth: header_name: Authorization header_value: Bearer openai-api-key model: name: text-embedding-3-small provider: openai type: embeddings additionalProperties: false required: - type - config PartialModel: type: object properties: config: type: object properties: auth: type: object default: null nullable: true 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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_metadata_url: description: 'Custom metadata URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If null, Kong will use the default Google metadata endpoint.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false gcp_oauth_token_url: description: 'Custom OAuth token URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If null, Kong will use the default Google OAuth token endpoint.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false header_value: description: 'Specify the full auth header value for ''header_name'', for example ''Bearer key'' or just ''key''.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow param_name: description: 'If AI model requires authentication via query parameter, specify its name here.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false param_value: description: Specify the full parameter value for 'param_name'. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false description: description: 'The semantic description of the target, required if using semantic load balancing. Specially, setting this to ''CATCHALL'' will indicate such target to be used when no other targets match the semantic threshold. Only used by ai-proxy-advanced.' type: string default: null nullable: true x-speakeasy-param-computed: false logging: type: object default: null nullable: true properties: log_payloads: description: 'If enabled, will log the request and response body into the Kong log plugin(s) output.Furthermore if Opentelemetry instrumentation is enabled the traces will contain this data as well.' 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 x-speakeasy-param-computed: false metadata: description: 'For internal use only. ' type: object default: null additionalProperties: true nullable: true x-speakeasy-param-computed: false x-speakeasy-type-override: any model: type: object properties: model_alias: description: The model name parameter from the request that this model should map to. type: string default: null nullable: true x-speakeasy-param-computed: false name: description: Model name to execute. type: string default: null nullable: true x-speakeasy-param-computed: false options: description: Key/value settings for the model type: object default: null nullable: true properties: anthropic_version: description: 'Defines the schema/API version, if using Anthropic provider.' type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false azure_instance: description: Instance name for Azure OpenAI hosted models. type: string default: null nullable: true x-speakeasy-param-computed: false bedrock: type: object default: null nullable: true properties: aws_assume_role_arn: description: If using AWS providers (Bedrock) you can assume a different role after authentication with the current IAM context is successful. type: string default: null nullable: true x-speakeasy-param-computed: false aws_region: description: If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option. type: string default: null nullable: true x-speakeasy-param-computed: false aws_role_session_name: description: 'If using AWS providers (Bedrock), set the identifier of the assumed role session.' type: string default: null nullable: true x-speakeasy-param-computed: false aws_sts_endpoint_url: description: 'If using AWS providers (Bedrock), override the STS endpoint URL when assuming a different role.' type: string default: null nullable: true x-speakeasy-param-computed: false batch_bucket_prefix: description: 'S3 URI prefix (s3://bucket/prefix/) where Bedrock will get input files from and store results to for native batch API.' type: string default: null nullable: true x-speakeasy-param-computed: false batch_role_arn: description: AWS role arn used for calling batch API. Try to get the value from request if ommited. type: string default: null nullable: true x-speakeasy-param-computed: false embeddings_normalize: description: 'If using AWS providers (Bedrock), set to true to normalize the embeddings.' type: boolean default: false performance_config_latency: description: Force the client's performance configuration 'latency' for all requests. Leave empty to let the consumer select the performance configuration. type: string default: null nullable: true x-speakeasy-param-computed: false video_output_s3_uri: description: 'S3 URI (s3://bucket/prefix) where Bedrock will store generated video files. Required for video generation.' type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false cohere: type: object default: null nullable: true properties: embedding_input_type: description: The purpose of the input text to calculate embedding vectors. type: string default: classification enum: - classification - clustering - image - search_document - search_query x-speakeasy-unknown-values: allow wait_for_model: description: Wait for the model if it is not ready type: boolean default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false dashscope: type: object default: null nullable: true properties: international: description: | Two Dashscope endpoints are available, and the international endpoint will be used when this is set to `true`. It is recommended to set this to `true` when using international version of dashscope. type: boolean default: true x-speakeasy-param-computed: false databricks: type: object default: null nullable: true properties: workspace_instance_id: description: Workspace Instance ID ('dbc-xxx-yyy') for Databricks model serving. type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false embeddings_dimensions: description: 'If using embeddings models, set the number of dimensions to generate.' type: integer default: null nullable: true x-speakeasy-param-computed: false gemini: type: object default: null nullable: true properties: api_endpoint: description: 'If running Gemini on Vertex, specify the regional API endpoint (hostname only).' type: string default: null nullable: true x-speakeasy-param-computed: false endpoint_id: description: 'If running Gemini on Vertex Model Garden, specify the endpoint ID.' type: string default: null nullable: true x-speakeasy-param-computed: false location_id: description: 'If running Gemini on Vertex, specify the location ID.' type: string default: null nullable: true x-speakeasy-param-computed: false project_id: description: 'If running Gemini on Vertex, specify the project ID.' type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false huggingface: type: object default: null nullable: true properties: use_cache: description: Use the cache layer on the inference API type: boolean default: null nullable: true x-speakeasy-param-computed: false wait_for_model: description: Wait for the model if it is not ready type: boolean default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false input_cost: description: Defines the cost per 1M tokens in your prompt. type: number default: null nullable: true x-speakeasy-param-computed: false llama2_format: description: 'If using llama2 provider, select the upstream message format.' type: string enum: - ollama - openai - raw x-speakeasy-unknown-values: allow max_tokens: description: 'Defines the max_tokens, if using chat or completion models.' type: integer default: null nullable: true x-speakeasy-param-computed: false mistral_format: description: 'If using mistral provider, select the upstream message format.' type: string enum: - ollama - openai x-speakeasy-unknown-values: allow output_cost: description: Defines the cost per 1M tokens in the output of the AI. type: number default: null nullable: true x-speakeasy-param-computed: false temperature: description: 'Defines the matching temperature, if using chat or completion models.' type: number default: null maximum: 5 minimum: 0 nullable: true x-speakeasy-param-computed: false top_k: description: 'Defines the top-k most likely tokens, if supported.' type: integer default: null maximum: 500 minimum: 0 nullable: true x-speakeasy-param-computed: false top_p: description: 'Defines the top-p probability mass, if supported.' type: number default: null maximum: 1 minimum: 0 nullable: true x-speakeasy-param-computed: false upstream_path: description: 'Manually specify or override the AI operation path, used when e.g. using the ''preserve'' route_type.' type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false provider: description: AI provider request format - Kong translates requests to and from the specified backend compatible formats. type: string enum: - anthropic - azure - bedrock - cerebras - cohere - dashscope - databricks - deepseek - gemini - huggingface - llama2 - mistral - ollama - openai - vllm - xai x-speakeasy-unknown-values: allow required: - provider route_type: description: 'The model''s operation implementation, for this provider. ' type: string enum: - audio/v1/audio/speech - audio/v1/audio/transcriptions - audio/v1/audio/translations - image/v1/images/edits - image/v1/images/generations - llm/v1/assistants - llm/v1/batches - llm/v1/chat - llm/v1/completions - llm/v1/embeddings - llm/v1/files - llm/v1/responses - preserve - realtime/v1/realtime - video/v1/videos/generations x-speakeasy-unknown-values: allow weight: description: The weight this target gets within the upstream loadbalancer (1-65535). Only used by ai-proxy-advanced. type: integer default: 100 maximum: 65535 minimum: 1 required: - model - route_type created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true name: description: A unique string representing a UTF-8 encoded name. type: string default: null nullable: true x-speakeasy-param-computed: false tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false type: type: string const: model updated_at: description: Unix epoch when the resource was last updated. type: integer nullable: true example: config: auth: header_name: Authorization header_value: Bearer openai-api-key model: name: gpt-4 provider: openai route_type: llm/v1/chat type: model additionalProperties: false required: - type - config PartialRedisCe: type: object properties: config: type: object properties: cloud_authentication: description: Cloud auth related configs for connecting to a Cloud Provider's Redis instance. type: object default: null nullable: true properties: auth_provider: description: Auth providers to be used to authenticate to a Cloud Provider's Redis instance. type: string enum: - aws - azure - gcp x-referenceable: true x-speakeasy-unknown-values: allow aws_access_key_id: description: AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_is_serverless: description: This flag specifies whether the cluster is serverless when auth_provider is set to `aws`. type: boolean default: true aws_region: description: The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: 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: null nullable: true x-referenceable: true x-speakeasy-param-computed: false password: description: 'Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis.' type: string nullable: false x-encrypted: true x-referenceable: true port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: string default: '6379' maximum: 65535 minimum: 0 x-referenceable: true server_name: description: A string representing an SNI (server name indication) value for TLS. type: string nullable: false x-referenceable: true 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 nullable: false x-referenceable: true x-speakeasy-transform-from-api: jq: | if has("port") then .port |= if type == "number" then tostring else . end else . end x-speakeasy-transform-to-api: jq: | if has("port") then if (.port | type) == "string" and (.port | test("^[0-9]+$")) then .port |= tonumber else . end else . end created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true name: description: A unique string representing a UTF-8 encoded name. type: string default: null nullable: true x-speakeasy-param-computed: false tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false type: type: string const: redis-ce updated_at: description: Unix epoch when the resource was last updated. type: integer nullable: true example: config: database: 0 host: localhost password: password port: 6379 server_name: redis ssl: false ssl_verify: false timeout: 2000 username: username type: redis-ce additionalProperties: false required: - type - config PartialRedisEe: type: object properties: config: type: object properties: cloud_authentication: description: Cloud auth related configs for connecting to a Cloud Provider's Redis instance. type: object default: null nullable: true properties: auth_provider: description: Auth providers to be used to authenticate to a Cloud Provider's Redis instance. type: string enum: - aws - azure - gcp x-referenceable: true x-speakeasy-unknown-values: allow aws_access_key_id: description: AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_is_serverless: description: This flag specifies whether the cluster is serverless when auth_provider is set to `aws`. type: boolean default: true aws_region: description: The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false 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 nullable: true x-speakeasy-param-computed: true 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 x-referenceable: true 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 default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 nullable: false x-encrypted: true x-referenceable: true port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: string default: '6379' maximum: 65535 minimum: 0 x-referenceable: true 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 nullable: false 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 nullable: true x-speakeasy-param-computed: true sentinel_password: description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.' type: string nullable: false x-encrypted: true x-referenceable: true 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 x-speakeasy-unknown-values: allow 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 nullable: false x-referenceable: true server_name: description: A string representing an SNI (server name indication) value for TLS. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-transform-from-api: jq: | if has("port") then .port |= if type == "number" then tostring else . end else . end x-speakeasy-transform-to-api: jq: | if has("port") then if (.port | type) == "string" and (.port | test("^[0-9]+$")) then .port |= tonumber else . end else . end created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true name: description: A unique string representing a UTF-8 encoded name. type: string default: null nullable: true x-speakeasy-param-computed: false tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false type: type: string const: redis-ee updated_at: description: Unix epoch when the resource was last updated. type: integer nullable: true example: config: cluster_nodes: - ip: 192.168.1.10 port: 6380 connect_timeout: 2000 database: 0 host: localhost keepalive_pool_size: 256 password: password port: 6379 read_timeout: 1000 send_timeout: 1000 sentinel_nodes: - host: sentinel1.redis.server port: 26379 server_name: redis-ee ssl: false ssl_verify: false username: username type: redis-ee additionalProperties: false required: - type - config PartialVectordb: type: object properties: config: 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 x-speakeasy-unknown-values: allow pgvector: type: object default: null nullable: true properties: database: description: the database of the pgvector database type: string default: kong-pgvector host: description: the host of the pgvector database type: string default: 127.0.0.1 password: description: the password of the pgvector database type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: the port of the pgvector database type: integer default: 5432 ssl: description: whether to use ssl for the pgvector database type: boolean default: false ssl_cert: description: the path of ssl cert to use for the pgvector database type: string default: null nullable: true x-speakeasy-param-computed: false ssl_cert_key: description: the path of ssl cert key to use for the pgvector database type: string default: null nullable: true x-speakeasy-param-computed: false ssl_required: description: whether ssl is required for the pgvector database type: boolean default: false ssl_verify: description: whether to verify ssl for the pgvector database type: boolean default: false ssl_version: description: the ssl version to use for the pgvector database type: string default: tlsv1_2 enum: - any - tlsv1_2 - tlsv1_3 x-speakeasy-unknown-values: allow timeout: description: the timeout of the pgvector database type: number default: 5000 user: description: the user of the pgvector database type: string default: postgres x-referenceable: true x-speakeasy-param-computed: false redis: type: object default: null nullable: true properties: cloud_authentication: description: Cloud auth related configs for connecting to a Cloud Provider's Redis instance. type: object default: null nullable: true properties: auth_provider: description: Auth providers to be used to authenticate to a Cloud Provider's Redis instance. type: string enum: - aws - azure - gcp x-referenceable: true x-speakeasy-unknown-values: allow aws_access_key_id: description: AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_is_serverless: description: This flag specifies whether the cluster is serverless when auth_provider is set to `aws`. type: boolean default: true aws_region: description: The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false 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 x-referenceable: true 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 default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: string default: '6379' maximum: 65535 minimum: 0 x-referenceable: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false sentinel_password: description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false server_name: description: A string representing an SNI (server name indication) value for TLS. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-transform-from-api: jq: | if has("port") then .port |= if type == "number" then tostring else . end else . end x-speakeasy-transform-to-api: jq: | if has("port") then if (.port | type) == "string" and (.port | test("^[0-9]+$")) then .port |= tonumber else . end else . end strategy: description: which vector database driver to use type: string enum: - pgvector - redis x-speakeasy-unknown-values: allow threshold: description: the default similarity threshold for accepting semantic search results (float). Higher threshold means more results are considered similar. type: number default: null nullable: true x-speakeasy-param-computed: false required: - dimensions - distance_metric - strategy created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true name: description: A unique string representing a UTF-8 encoded name. type: string default: null nullable: true x-speakeasy-param-computed: false tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false type: type: string const: vectordb updated_at: description: Unix epoch when the resource was last updated. type: integer nullable: true example: config: dimensions: 1536 distance_metric: cosine pgvector: database: kong-pgvector host: 127.0.0.1 password: password port: 5432 user: postgres strategy: pgvector type: vectordb additionalProperties: false required: - type - config Plugin: 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: condition: description: 'An expression used for conditional control over plugin execution. If the expression evaluates to `true` during the request flow, the plugin is executed; otherwise, it is skipped.' type: string default: null maxLength: 1024 nullable: true x-speakeasy-param-computed: false config: description: 'The configuration properties for the Plugin which can be found on the plugins documentation page in the [Kong Hub](https://docs.konghq.com/hub/).' type: object default: null additionalProperties: true nullable: true x-speakeasy-param-computed: 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 default: null nullable: true properties: id: type: string x-foreign: true x-speakeasy-param-computed: false consumer_group: description: 'If set, the plugin will activate only for requests where the specified group has been authenticated' type: object default: null nullable: true properties: id: type: string x-foreign: true x-speakeasy-param-computed: false 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: description: A string representing a UUID (universally unique identifier). type: string minLength: 1 nullable: true instance_name: description: A unique string representing a UTF-8 encoded name. type: string default: null nullable: true x-speakeasy-param-computed: false 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 minLength: 1 ordering: type: object default: null nullable: true properties: after: type: object default: null nullable: true properties: access: type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false before: type: object default: null nullable: true properties: access: type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-param-computed: false 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: 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 x-speakeasy-unknown-values: allow default: - grpc - grpcs - http - https nullable: true 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 default: null nullable: true properties: id: type: string x-foreign: true x-speakeasy-param-computed: false 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 default: null nullable: true properties: id: type: string x-foreign: true x-speakeasy-param-computed: false tags: description: An optional set of strings associated with the Plugin for grouping and filtering. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false 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 protocols: - grpc - grpcs - http - https additionalProperties: false required: - name 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: condition: description: 'An expression used for conditional control over plugin execution. If the expression evaluates to `true` during the request flow, the plugin is executed; otherwise, it is skipped.' type: string default: null maxLength: 1024 nullable: true x-speakeasy-param-computed: false 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: description: A string representing a UUID (universally unique identifier). type: string minLength: 1 nullable: true instance_name: description: A unique string representing a UTF-8 encoded name. type: string default: null nullable: true x-speakeasy-param-computed: false 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 minLength: 1 ordering: type: object default: null nullable: true properties: after: type: object nullable: false properties: access: type: array items: type: string nullable: false before: type: object nullable: false properties: access: type: array items: type: string nullable: false x-speakeasy-param-computed: false partials: description: A list of partials to be used by the plugin. type: array items: properties: id: description: A string representing a UUID (universally unique identifier). type: string minLength: 1 name: description: A unique string representing a UTF-8 encoded name. type: string x-speakeasy-param-computed: true path: type: string x-speakeasy-param-computed: true type: object required: - path default: null nullable: true x-speakeasy-param-computed: false tags: description: An optional set of strings associated with the Plugin for grouping and filtering. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false updated_at: description: Unix epoch when the resource was last updated. type: integer nullable: true additionalProperties: false required: - name PostFunctionPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/PostFunctionPluginConfig' PostFunctionPluginConfig: x-speakeasy-entity: GatewayPluginPostFunction properties: config: type: object default: null nullable: true 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: [] x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false PreFunctionPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/PreFunctionPluginConfig' PreFunctionPluginConfig: x-speakeasy-entity: GatewayPluginPreFunction properties: config: type: object default: null nullable: true 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: [] x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false PrometheusPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/PrometheusPluginConfig' PrometheusPluginConfig: x-speakeasy-entity: GatewayPluginPrometheus properties: config: type: object default: null nullable: true 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 wasm_metrics: type: boolean default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false ProxyCacheAdvancedPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/ProxyCacheAdvancedPluginConfig' ProxyCacheAdvancedPluginConfig: x-speakeasy-entity: GatewayPluginProxyCacheAdvanced 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 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 default: null nullable: true 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 x-speakeasy-param-computed: false redis: type: object default: null nullable: true properties: cloud_authentication: description: Cloud auth related configs for connecting to a Cloud Provider's Redis instance. type: object default: null nullable: true properties: auth_provider: description: Auth providers to be used to authenticate to a Cloud Provider's Redis instance. type: string enum: - aws - azure - gcp x-referenceable: true x-speakeasy-unknown-values: allow aws_access_key_id: description: AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_is_serverless: description: This flag specifies whether the cluster is serverless when auth_provider is set to `aws`. type: boolean default: true aws_region: description: The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false 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 x-referenceable: true 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 default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: string default: '6379' maximum: 65535 minimum: 0 x-referenceable: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false sentinel_password: description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false server_name: description: A string representing an SNI (server name indication) value for TLS. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-transform-from-api: jq: | if has("port") then .port |= if type == "number" then tostring else . end else . end x-speakeasy-transform-to-api: jq: | if has("port") then if (.port | type) == "string" and (.port | test("^[0-9]+$")) then .port |= tonumber else . end else . end 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true properties: X-Cache-Key: type: boolean default: true X-Cache-Status: type: boolean default: true age: type: boolean default: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false strategy: description: 'The backing data store in which to hold cache entities. Accepted values are: `memory` and `redis`.' type: string enum: - memory - redis x-speakeasy-unknown-values: allow 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 default: null nullable: true x-speakeasy-param-computed: false vary_query_params: description: 'Relevant query parameters considered for the cache key. If undefined, all params are taken into consideration. By default, the max number of params accepted is 100. You can change this value via the `lua_max_post_args` in `kong.conf`.' type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false required: - strategy 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: proxy-cache-advanced protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config x-supported-partials: - name: redis-ee paths: - config.redis ProxyCachePlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/ProxyCachePluginConfig' ProxyCachePluginConfig: x-speakeasy-entity: GatewayPluginProxyCache 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 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 x-speakeasy-param-computed: true request_method: description: Downstream request methods considered cacheable. type: array items: enum: - GET - HEAD - PATCH - POST - PUT type: string x-speakeasy-unknown-values: allow 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 x-speakeasy-param-computed: 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false required: - strategy 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config RateLimitingAdvancedPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/RateLimitingAdvancedPluginConfig' RateLimitingAdvancedPluginConfig: x-speakeasy-entity: GatewayPluginRateLimitingAdvanced 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 - route - service type: string x-speakeasy-unknown-values: allow default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false counter_key: description: 'The key used to identify the counter for rate limiting. This can be based on consumer attributes such as `consumer.id`, `consumer.username`, or `consumer.custom_id`. Only applicable when `identifier` is set to `consumer`.' type: string enum: - consumer.custom_id - consumer.id - consumer.username x-speakeasy-unknown-values: allow 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 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 default: null nullable: true x-speakeasy-param-computed: false 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. Note if `identifier` is `consumer-group`, the plugin must be applied on a consumer group entity. Because a consumer may belong to multiple consumer groups, the plugin needs to know explicitly which consumer group to limit the rate.' type: string default: consumer enum: - consumer - consumer-group - credential - header - ip - path - route - service x-speakeasy-unknown-values: allow 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: 'Specifies the rate-limiting namespace for this plugin instance. A namespace acts as a logical grouping for configuration and counter data used by the rate-limiting algorithm. Namespaces define how and where counter data is stored and synchronized. When multiple plugin instances share the same namespace, they also share the same rate-limiting counters and synchronization configuration. Conversely, using different namespaces ensures that each plugin instance maintains its own independent counters.' type: string default: null nullable: true x-speakeasy-param-computed: false 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: null nullable: true x-speakeasy-param-computed: false redis: type: object properties: cloud_authentication: description: Cloud auth related configs for connecting to a Cloud Provider's Redis instance. type: object default: null nullable: true properties: auth_provider: description: Auth providers to be used to authenticate to a Cloud Provider's Redis instance. type: string enum: - aws - azure - gcp x-referenceable: true x-speakeasy-unknown-values: allow aws_access_key_id: description: AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_is_serverless: description: This flag specifies whether the cluster is serverless when auth_provider is set to `aws`. type: boolean default: true aws_region: description: The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false 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 x-referenceable: true 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 default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: string default: '6379' maximum: 65535 minimum: 0 x-referenceable: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false sentinel_password: description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false server_name: description: A string representing an SNI (server name indication) value for TLS. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: true x-speakeasy-transform-from-api: jq: | if has("port") then .port |= if type == "number" then tostring else . end else . end x-speakeasy-transform-to-api: jq: | if has("port") then if (.port | type) == "string" and (.port | test("^[0-9]+$")) then .port |= tonumber else . end else . end 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`, `redis` and `cluster`.' type: string default: local enum: - cluster - local - redis x-speakeasy-unknown-values: allow 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 default: null nullable: true x-speakeasy-param-computed: false throttling: type: object default: null nullable: true properties: enabled: description: Determines if the throttling feature is enabled or not type: boolean default: false interval: description: The period between two successive retries for an individual request (in seconds) type: number default: 5 maximum: 1000000 minimum: 1 queue_limit: description: The maximum number of requests allowed for throttling type: number default: 5 maximum: 1000000 minimum: 1 retry_times: description: The maximum number of retries for an individual request type: number default: 3 maximum: 1000000 minimum: 1 x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow required: - limit - window_size 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: rate-limiting-advanced protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config x-supported-partials: - name: redis-ee paths: - config.redis RateLimitingPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/RateLimitingPluginConfig' RateLimitingPluginConfig: x-speakeasy-entity: GatewayPluginRateLimiting properties: config: type: object default: null nullable: true properties: day: description: The number of HTTP requests that can be made per day. type: number default: null nullable: true x-speakeasy-param-computed: false error_code: description: Set a custom error code to return when the rate limit is exceeded. type: number default: 429 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow minute: description: The number of HTTP requests that can be made per minute. type: number default: null nullable: true x-speakeasy-param-computed: false month: description: The number of HTTP requests that can be made per month. type: number default: null nullable: true x-speakeasy-param-computed: false 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: null nullable: true x-speakeasy-param-computed: false policy: description: The rate-limiting policies to use for retrieving and incrementing the limits. type: string default: local enum: - cluster - local - redis x-speakeasy-unknown-values: allow redis: description: Redis configuration type: object properties: cloud_authentication: description: Cloud auth related configs for connecting to a Cloud Provider's Redis instance. type: object default: null nullable: true properties: auth_provider: description: Auth providers to be used to authenticate to a Cloud Provider's Redis instance. type: string enum: - aws - azure - gcp x-referenceable: true x-speakeasy-unknown-values: allow aws_access_key_id: description: AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_is_serverless: description: This flag specifies whether the cluster is serverless when auth_provider is set to `aws`. type: boolean default: true aws_region: description: The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: 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: null nullable: true x-referenceable: true x-speakeasy-param-computed: false password: description: 'Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: string default: '6379' maximum: 65535 minimum: 0 x-referenceable: true server_name: description: A string representing an SNI (server name indication) value for TLS. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: true x-speakeasy-transform-from-api: jq: | if has("port") then .port |= if type == "number" then tostring else . end else . end x-speakeasy-transform-to-api: jq: | if has("port") then if (.port | type) == "string" and (.port | test("^[0-9]+$")) then .port |= tonumber else . end else . end second: description: The number of HTTP requests that can be made per second. type: number default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: rate-limiting protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false x-supported-partials: - name: redis-ce paths: - config.redis RedirectPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/RedirectPluginConfig' RedirectPluginConfig: x-speakeasy-entity: GatewayPluginRedirect 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 required: - location 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: redirect protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config RequestCalloutPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/RequestCalloutPluginConfig' RequestCalloutPluginConfig: x-speakeasy-entity: GatewayPluginRequestCallout properties: config: type: object properties: cache: description: Plugin global caching configuration. type: object properties: cache_ttl: description: TTL in seconds of cache entities. type: integer default: 300 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 x-speakeasy-param-computed: true redis: type: object properties: cloud_authentication: description: Cloud auth related configs for connecting to a Cloud Provider's Redis instance. type: object default: null nullable: true properties: auth_provider: description: Auth providers to be used to authenticate to a Cloud Provider's Redis instance. type: string enum: - aws - azure - gcp x-referenceable: true x-speakeasy-unknown-values: allow aws_access_key_id: description: AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_is_serverless: description: This flag specifies whether the cluster is serverless when auth_provider is set to `aws`. type: boolean default: true aws_region: description: The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false 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 x-referenceable: true 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 default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: string default: '6379' maximum: 65535 minimum: 0 x-referenceable: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false sentinel_password: description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false server_name: description: A string representing an SNI (server name indication) value for TLS. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: true x-speakeasy-transform-from-api: jq: | if has("port") then .port |= if type == "number" then tostring else . end else . end x-speakeasy-transform-to-api: jq: | if has("port") then if (.port | type) == "string" and (.port | test("^[0-9]+$")) then .port |= tonumber else . end else . end strategy: description: 'The backing data store in which to hold cache entities. Accepted values are: `off`, `memory`, and `redis`.' type: string default: 'off' enum: - memory - 'off' - redis x-speakeasy-unknown-values: allow x-speakeasy-param-computed: true callouts: description: 'A collection of callout objects, where each object represents an HTTP request made in the context of a proxy request.' type: array items: properties: cache: description: Callout caching configuration. type: object default: null nullable: true properties: bypass: description: 'If `true`, skips caching the callout response.' type: boolean default: false x-speakeasy-param-computed: false depends_on: description: An array of callout names the current callout depends on. This dependency list determines the callout execution order via a topological sorting algorithm. type: array items: type: string default: [] name: description: A string identifier for a callout. A callout object is referenceable via its name in the `kong.ctx.shared.callouts.<name>` type: string request: description: The customizations for the callout request. type: object properties: body: description: Callout request body customizations. type: object default: null nullable: true properties: custom: description: The custom body fields to be added to the callout HTTP request. Values can contain Lua expressions in the form $(some_lua_expression). The syntax is based on `request-transformer-advanced` templates. type: object default: null additionalProperties: type: string x-referenceable: true nullable: true x-speakeasy-param-computed: false decode: description: 'If `true`, decodes the request''s body and make it available for customizations. Only JSON content type is supported.' type: boolean default: false forward: description: 'If `true`, forwards the incoming request''s body to the callout request.' type: boolean default: false x-speakeasy-param-computed: false by_lua: description: Lua code that executes before the callout request is made. **Warning** can impact system behavior. Standard Lua sandboxing restrictions apply. type: string default: null nullable: true x-speakeasy-param-computed: false error: description: The error handling policy the plugin will apply to TCP and HTTP errors. type: object default: null nullable: true properties: error_response_code: description: The error code to respond with if `on_error` is `fail` or if `retries` is achieved. type: integer default: 400 error_response_msg: description: The error mesasge to respond with if `on_error` is set to `fail` or if `retries` is achieved. Templating with Lua expressions is supported. type: string default: service callout error http_statuses: description: The list of HTTP status codes considered errors under the error handling policy. type: array items: maximum: 999 minimum: 100 type: integer default: null nullable: true x-speakeasy-param-computed: false on_error: type: string default: fail enum: - continue - fail - retry x-speakeasy-unknown-values: allow retries: description: The number of retries the plugin will attempt on TCP and HTTP errors if `on_error` is set to `retry`. type: integer default: 2 x-speakeasy-param-computed: false headers: description: Callout request header customizations. type: object default: null nullable: true properties: custom: description: The custom headers to be added in the callout HTTP request. Values can contain Lua expressions in the form `$(some_lua_expression)`. The syntax is based on `request-transformer-advanced` templates. type: object default: null additionalProperties: type: string x-referenceable: true nullable: true x-speakeasy-param-computed: false forward: description: 'If `true`, forwards the incoming request''s headers to the callout request. ' type: boolean default: false x-speakeasy-param-computed: false http_opts: description: HTTP connection parameters. type: object default: null nullable: true properties: proxy: description: Proxy settings. type: object default: null nullable: true properties: auth_password: description: 'The password to authenticate with, if the forward proxy is protected by basic authentication.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false auth_username: description: 'The username to authenticate with, if the forward proxy is protected by basic authentication.' type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false http_proxy: description: The HTTP proxy URL. This proxy server will be used for HTTP requests. type: string default: null nullable: true x-speakeasy-param-computed: false https_proxy: description: The HTTPS proxy URL. This proxy server will be used for HTTPS requests. type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false ssl_server_name: description: The SNI used in the callout request. Defaults to host if omitted. type: string default: null nullable: true x-speakeasy-param-computed: 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 callout API. You may also need to configure `lua_ssl_verify_depth` accordingly.' type: boolean default: false timeouts: description: Socket timeouts in milliseconds. All or none must be set. type: object default: null nullable: true properties: connect: description: The socket connect timeout. type: integer default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false read: description: 'The socket read timeout. ' type: integer default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false write: description: The socket write timeout. type: integer default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-param-computed: false method: description: The HTTP method that will be requested. type: string default: GET query: description: Callout request query param customizations. type: object default: null nullable: true properties: custom: description: The custom query params to be added in the callout HTTP request. Values can contain Lua expressions in the form `$(some_lua_expression)`. The syntax is based on `request-transformer-advanced` templates. type: object default: null additionalProperties: type: string x-referenceable: true nullable: true x-speakeasy-param-computed: false forward: description: 'If `true`, forwards the incoming request''s query params to the callout request. ' type: boolean default: false x-speakeasy-param-computed: false url: description: The URL that will be requested. Values can contain Lua expressions in the form `$(some_lua_expression)`. The syntax is based on `request-transformer-advanced` templates. type: string x-referenceable: true required: - url response: description: Configurations of callout response handling. type: object default: null nullable: true properties: body: type: object default: null nullable: true properties: decode: description: 'If `true`, decodes the response body before storing into the context. Only JSON is supported.' type: boolean default: false store: description: 'If `false`, skips storing the callout response body into kong.ctx.shared.callouts.<name>.response.body.' type: boolean default: true x-speakeasy-param-computed: false by_lua: description: 'Lua code that executes after the callout response is received, before caching takes place. Can produce side effects. Standard Lua sandboxing restrictions apply.' type: string default: null nullable: true x-speakeasy-param-computed: false headers: description: Callout response header customizations. type: object default: null nullable: true properties: store: description: 'If `false`, skips storing the callout response headers into kong.ctx.shared.callouts.<name>.response.headers.' type: boolean default: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false required: - name - request type: object upstream: description: Customizations to the upstream request. type: object properties: body: description: Callout request body customizations. type: object properties: custom: description: The custom body fields to be added in the upstream request body. Values can contain Lua expressions in the form $(some_lua_expression). The syntax is based on `request-transformer-advanced` templates. type: object default: null additionalProperties: type: string x-referenceable: true nullable: true x-speakeasy-param-computed: false decode: description: 'If `true`, decodes the request''s body to make it available for upstream by_lua customizations. Only JSON content type is supported.' type: boolean default: true forward: description: 'If `false`, skips forwarding the incoming request''s body to the upstream request.' type: boolean default: true x-speakeasy-param-computed: true by_lua: description: Lua code that executes before the upstream request is made. Can produce side effects. Standard Lua sandboxing restrictions apply. type: string default: null nullable: true x-speakeasy-param-computed: false headers: description: Callout request header customizations. type: object properties: custom: description: The custom headers to be added in the upstream HTTP request. Values can contain Lua expressions in the form $(some_lua_expression). The syntax is based on `request-transformer-advanced` templates. type: object default: null additionalProperties: type: string x-referenceable: true nullable: true x-speakeasy-param-computed: false forward: description: 'If `false`, does not forward request headers to upstream request.' type: boolean default: true x-speakeasy-param-computed: true query: description: Upstream request query param customizations. type: object properties: custom: description: The custom query params to be added in the upstream HTTP request. Values can contain Lua expressions in the form `$(some_lua_expression)`. The syntax is based on `request-transformer-advanced` templates. type: object default: null additionalProperties: type: string x-referenceable: true nullable: true x-speakeasy-param-computed: false forward: description: 'If `false`, does not forward request query params to upstream request.' type: boolean default: true x-speakeasy-param-computed: true x-speakeasy-param-computed: true required: - callouts 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: request-callout protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config RequestSizeLimitingPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/RequestSizeLimitingPluginConfig' RequestSizeLimitingPluginConfig: x-speakeasy-entity: GatewayPluginRequestSizeLimiting properties: config: type: object default: null nullable: true 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 x-speakeasy-unknown-values: allow x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: request-size-limiting protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false RequestTerminationPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/RequestTerminationPluginConfig' RequestTerminationPluginConfig: x-speakeasy-entity: GatewayPluginRequestTermination properties: config: type: object default: null nullable: true properties: body: description: The raw response body to send. This is mutually exclusive with the `config.message` field. type: string default: null nullable: true x-speakeasy-param-computed: false content_type: description: Content type of the raw response configured with `config.body`. type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: request-termination protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false RequestTransformerAdvancedPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/RequestTransformerAdvancedPluginConfig' RequestTransformerAdvancedPluginConfig: x-speakeasy-entity: GatewayPluginRequestTransformerAdvanced properties: config: type: object default: null nullable: true properties: add: type: object properties: body: type: array items: type: string x-referenceable: true default: [] headers: type: array items: type: string x-referenceable: true default: [] json_types: type: array items: enum: - boolean - number - string type: string x-speakeasy-unknown-values: allow default: [] querystring: type: array items: type: string x-referenceable: true default: [] x-speakeasy-param-computed: true allow: type: object properties: body: type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: true append: type: object properties: body: type: array items: type: string x-referenceable: true default: [] headers: type: array items: type: string x-referenceable: true default: [] json_types: type: array items: enum: - boolean - number - string type: string x-speakeasy-unknown-values: allow default: [] querystring: type: array items: type: string x-referenceable: true default: [] x-speakeasy-param-computed: true 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.' 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 default: null nullable: true x-speakeasy-param-computed: false 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: [] x-speakeasy-param-computed: true rename: type: object properties: body: type: array items: type: string x-referenceable: true default: [] headers: type: array items: type: string x-referenceable: true default: [] querystring: type: array items: type: string x-referenceable: true default: [] x-speakeasy-param-computed: true replace: type: object properties: body: type: array items: type: string x-referenceable: true default: [] headers: type: array items: type: string x-referenceable: true default: [] json_types: type: array items: enum: - boolean - number - string type: string x-speakeasy-unknown-values: allow default: [] querystring: type: array items: type: string x-referenceable: true default: [] uri: type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: true x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: request-transformer-advanced protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false RequestTransformerPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/RequestTransformerPluginConfig' RequestTransformerPluginConfig: x-speakeasy-entity: GatewayPluginRequestTransformer properties: config: type: object default: null nullable: true properties: add: type: object properties: body: type: array items: type: string default: [] headers: type: array items: type: string default: [] querystring: type: array items: type: string default: [] x-speakeasy-param-computed: true append: type: object properties: body: type: array items: type: string default: [] headers: type: array items: type: string default: [] querystring: type: array items: type: string default: [] x-speakeasy-param-computed: 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 default: null nullable: true x-speakeasy-param-computed: false 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: [] x-speakeasy-param-computed: true 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: [] x-speakeasy-param-computed: true replace: type: object properties: body: type: array items: type: string default: [] headers: type: array items: type: string default: [] querystring: type: array items: type: string default: [] uri: type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: true x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false RequestValidatorPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/RequestValidatorPluginConfig' RequestValidatorPluginConfig: x-speakeasy-entity: GatewayPluginRequestValidator properties: config: type: object default: null nullable: true 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 array_length_compat: description: 'If true, `minLength`/`maxLength` also apply to arrays using item count. Compatibility option for legacy schemas that use these keywords instead of `minItems`/`maxItems`.' type: boolean default: true body_schema: description: The request body schema specification. One of `body_schema` or `parameter_schema` must be specified. type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false in: description: The location of the parameter. type: string enum: - header - path - query x-speakeasy-unknown-values: allow 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: 'Required 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow required: - in - name - required type: object default: null nullable: true x-speakeasy-param-computed: false 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`, `draft7`, `draft201909`, and `draft202012` for using their respective JSON Schema Draft compliant validators.' type: string default: kong enum: - draft201909 - draft202012 - draft4 - draft6 - draft7 - kong x-speakeasy-unknown-values: allow x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: request-validator protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false ResponseRatelimitingPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/ResponseRatelimitingPluginConfig' ResponseRatelimitingPluginConfig: x-speakeasy-entity: GatewayPluginResponseRatelimiting properties: config: type: object default: null nullable: true 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 x-speakeasy-unknown-values: allow limits: description: A map that defines rate limits for the plugin. type: object default: null additionalProperties: properties: day: type: number default: null nullable: true x-speakeasy-param-computed: false hour: type: number default: null nullable: true x-speakeasy-param-computed: false minute: type: number default: null nullable: true x-speakeasy-param-computed: false month: type: number default: null nullable: true x-speakeasy-param-computed: false second: type: number default: null nullable: true x-speakeasy-param-computed: false year: type: number default: null nullable: true x-speakeasy-param-computed: false type: object minLength: 1 nullable: true x-speakeasy-param-computed: false policy: description: The rate-limiting policies to use for retrieving and incrementing the limits. type: string default: local enum: - cluster - local - redis x-speakeasy-unknown-values: allow redis: description: Redis configuration type: object default: null nullable: true properties: cloud_authentication: description: Cloud auth related configs for connecting to a Cloud Provider's Redis instance. type: object default: null nullable: true properties: auth_provider: description: Auth providers to be used to authenticate to a Cloud Provider's Redis instance. type: string enum: - aws - azure - gcp x-referenceable: true x-speakeasy-unknown-values: allow aws_access_key_id: description: AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_is_serverless: description: This flag specifies whether the cluster is serverless when auth_provider is set to `aws`. type: boolean default: true aws_region: description: The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: 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: null nullable: true x-referenceable: true x-speakeasy-param-computed: false password: description: 'Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: string default: '6379' maximum: 65535 minimum: 0 x-referenceable: true server_name: description: A string representing an SNI (server name indication) value for TLS. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-transform-from-api: jq: | if has("port") then .port |= if type == "number" then tostring else . end else . end x-speakeasy-transform-to-api: jq: | if has("port") then if (.port | type) == "string" and (.port | test("^[0-9]+$")) then .port |= tonumber else . end else . end x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: response-ratelimiting protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false x-supported-partials: - name: redis-ce paths: - config.redis ResponseTransformerAdvancedPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/ResponseTransformerAdvancedPluginConfig' ResponseTransformerAdvancedPluginConfig: x-speakeasy-entity: GatewayPluginResponseTransformerAdvanced properties: config: type: object default: null nullable: true 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 x-speakeasy-unknown-values: allow default: [] x-speakeasy-param-computed: true allow: type: object properties: json: type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: true 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 x-speakeasy-unknown-values: allow default: [] x-speakeasy-param-computed: true 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: [] x-speakeasy-param-computed: true rename: type: object properties: headers: type: array items: type: string default: [] if_status: type: array items: type: string default: [] x-speakeasy-param-computed: true replace: type: object properties: body: description: String with which to replace the entire response body. type: string default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow default: [] x-speakeasy-param-computed: true 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: [] x-speakeasy-param-computed: true x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: response-transformer-advanced protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false ResponseTransformerPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/ResponseTransformerPluginConfig' ResponseTransformerPluginConfig: x-speakeasy-entity: GatewayPluginResponseTransformer properties: config: type: object default: null nullable: true properties: add: type: object properties: headers: type: array items: type: string default: [] json: type: array items: 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 x-speakeasy-unknown-values: allow default: [] x-speakeasy-param-computed: true append: type: object properties: headers: type: array items: type: string default: [] json: type: array items: 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 x-speakeasy-unknown-values: allow default: [] x-speakeasy-param-computed: true remove: type: object properties: headers: type: array items: type: string default: [] json: type: array items: type: string default: [] x-speakeasy-param-computed: true rename: type: object properties: headers: type: array items: type: string default: [] json: type: array items: type: string default: [] x-speakeasy-param-computed: true replace: type: object properties: headers: type: array items: type: string default: [] json: type: array items: 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 x-speakeasy-unknown-values: allow default: [] x-speakeasy-param-computed: true x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: response-transformer protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false RouteByHeaderPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/RouteByHeaderPluginConfig' RouteByHeaderPluginConfig: x-speakeasy-entity: GatewayPluginRouteByHeader properties: config: type: object default: null nullable: true properties: rules: description: Route by header rules. type: array items: properties: condition: type: object default: null additionalProperties: type: string minLength: 1 nullable: true x-speakeasy-param-computed: false upstream_name: type: string required: - upstream_name type: object default: [] x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: route-by-header protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false RouteExpression: x-speakeasy-entity: GatewayRouteExpression 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 default: null nullable: true x-speakeasy-param-computed: false 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: - 301 - 302 - 307 - 308 - 426 nullable: true x-speakeasy-unknown-values: allow id: description: A string representing a UUID (universally unique identifier). 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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: description: 'A number used to specify the matching order for expression routes. The higher the `priority`, the sooner an route will be evaluated. This field is ignored unless `expression` field is set.' type: integer default: 0 maximum: 70368744177663 minimum: 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: 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 x-speakeasy-unknown-values: allow default: - http - https minLength: 1 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 default: null nullable: true properties: id: type: string x-foreign: true x-speakeasy-param-computed: false 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: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false updated_at: description: Unix epoch when the resource was last updated. type: integer nullable: true additionalProperties: false RouteJson: x-speakeasy-entity: GatewayRoute 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: description: 'A string representing an IP address or CIDR block, such as 192.168.1.1 or 192.168.0.0/16.' type: string default: null nullable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer default: null maximum: 65535 minimum: 0 nullable: true x-speakeasy-param-computed: false type: object default: null nullable: true x-speakeasy-param-computed: false 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 default: null additionalProperties: items: type: string type: array nullable: true x-speakeasy-param-computed: false hosts: description: A list of domain names that match this Route. Note that the hosts value is case sensitive. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false 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: - 301 - 302 - 307 - 308 - 426 nullable: true x-speakeasy-unknown-values: allow id: description: A string representing a UUID (universally unique identifier). type: string nullable: true methods: description: A list of HTTP methods that match this Route. type: array items: description: 'A string representing an HTTP method, such as GET, POST, PUT, or DELETE. The string must contain only uppercase letters.' type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow paths: description: A list of paths that match this Route. type: array items: description: 'A string representing a router path. It must start with a forward slash (''/'') for a fixed path, or the sequence ''~/'' for a regex path. It must not have empty segments.' type: string default: null nullable: true x-speakeasy-param-computed: false 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: 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 x-speakeasy-unknown-values: allow default: - http - https minLength: 1 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 default: null nullable: true properties: id: type: string x-foreign: true x-speakeasy-param-computed: false snis: description: A list of SNIs that match this Route when using stream routing. type: array items: description: 'A string representing a wildcard host name, such as *.example.com.' type: string default: null nullable: true x-speakeasy-param-computed: false 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: description: 'A string representing an IP address or CIDR block, such as 192.168.1.1 or 192.168.0.0/16.' type: string default: null nullable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer default: null maximum: 65535 minimum: 0 nullable: true x-speakeasy-param-computed: false type: object default: null nullable: true x-speakeasy-param-computed: false 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: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false 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: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/RouteTransformerAdvancedPluginConfig' RouteTransformerAdvancedPluginConfig: x-speakeasy-entity: GatewayPluginRouteTransformerAdvanced properties: config: type: object default: null nullable: true properties: escape_path: type: boolean default: false host: type: string default: null nullable: true x-speakeasy-param-computed: false path: type: string default: null nullable: true x-speakeasy-param-computed: false port: type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: route-transformer-advanced protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false SNI: x-speakeasy-entity: GatewaySNI 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: description: A string representing a UUID (universally unique identifier). 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: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false 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: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/SamlPluginConfig' SamlPluginConfig: x-speakeasy-entity: GatewayPluginSaml 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow redis: type: object default: null nullable: true properties: cloud_authentication: description: Cloud auth related configs for connecting to a Cloud Provider's Redis instance. type: object default: null nullable: true properties: auth_provider: description: Auth providers to be used to authenticate to a Cloud Provider's Redis instance. type: string enum: - aws - azure - gcp x-referenceable: true x-speakeasy-unknown-values: allow aws_access_key_id: description: AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_is_serverless: description: This flag specifies whether the cluster is serverless when auth_provider is set to `aws`. type: boolean default: true aws_region: description: The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false 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 x-referenceable: true 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 default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: string default: '6379' maximum: 65535 minimum: 0 x-referenceable: true prefix: description: The Redis session key prefix. type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false sentinel_password: description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false server_name: description: A string representing an SNI (server name indication) value for TLS. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false socket: description: The Redis unix socket path. type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-transform-from-api: jq: | if has("port") then .port |= if type == "number" then tostring else . end else . end x-speakeasy-transform-to-api: jq: | if has("port") then if (.port | type) == "string" and (.port | test("^[0-9]+$")) then .port |= tonumber else . end else . end request_digest_algorithm: description: 'The digest algorithm for Authn requests: - `SHA256` - `SHA1`' type: string default: SHA256 enum: - SHA1 - SHA256 x-speakeasy-unknown-values: allow 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 x-speakeasy-unknown-values: allow request_signing_certificate: description: The certificate for signing requests. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false response_digest_algorithm: description: 'The algorithm for verifying digest in SAML responses: - `SHA256` - `SHA1`' type: string default: SHA256 enum: - SHA1 - SHA256 x-speakeasy-unknown-values: allow response_encryption_key: description: The private encryption key required to decrypt encrypted assertions. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false session_memcached_socket: description: The memcached unix socket path. type: string default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow default: null nullable: true x-speakeasy-param-computed: false session_response_headers: type: array items: enum: - absolute-timeout - audience - id - idling-timeout - rolling-timeout - subject - timeout type: string x-speakeasy-unknown-values: allow default: null nullable: true x-speakeasy-param-computed: false 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 x-encrypted: true x-referenceable: true 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 x-speakeasy-unknown-values: allow 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 required: - assertion_consumer_path - idp_sso_url - issuer - session_secret name: const: saml protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config x-supported-partials: - name: redis-ee paths: - config.redis Service: x-speakeasy-entity: GatewayService 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 default: null nullable: true x-speakeasy-param-computed: false client_certificate: description: Certificate to be used as client certificate while TLS handshaking to the upstream server. type: object default: null nullable: true properties: id: type: string x-foreign: true x-speakeasy-param-computed: false connect_timeout: description: The timeout in milliseconds for establishing a connection to the upstream server. type: integer default: 60000 maximum: 2147483646 minimum: 1 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: description: A string representing a UUID (universally unique identifier). type: string minLength: 1 nullable: true name: description: The Service name. type: string default: null nullable: true x-speakeasy-param-computed: false path: description: The path to be used in requests to the upstream server. type: string default: null nullable: true x-speakeasy-param-computed: false port: description: The upstream server port. type: integer default: 80 maximum: 65535 minimum: 0 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 x-speakeasy-unknown-values: allow read_timeout: description: The timeout in milliseconds between two successive read operations for transmitting a request to the upstream server. type: integer default: 60000 maximum: 2147483646 minimum: 1 nullable: true retries: description: The number of retries to execute upon failure to proxy. type: integer default: 5 maximum: 32767 minimum: 0 nullable: true tags: description: An optional set of strings associated with the Service for grouping and filtering. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false tls_sans: description: Additional Subject Alternative Names that can be matched on Upstream server's TLS certificate (in addition to `host`). type: object default: null nullable: true properties: dnsnames: description: A dnsName for TLS verification. type: array items: description: A string representing an SNI (server name indication) value for TLS. type: string default: null nullable: true x-speakeasy-param-computed: false uris: description: An URI for TLS verification. type: array items: description: 'A string representing a URL, such as https://example.com/path/to/resource?q=search.' type: string default: null nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false tls_verify: description: 'Whether to enable verification of upstream server TLS certificate. If set to `null`, then the Nginx default is respected.' type: boolean default: null nullable: true x-speakeasy-param-computed: false 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 default: null maximum: 64 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true writeOnly: true x-speakeasy-ignore: true x-speakeasy-param-computed: false write_timeout: description: The timeout in milliseconds between two successive write operations for transmitting a request to the upstream server. type: integer default: 60000 maximum: 2147483646 minimum: 1 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: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/ServiceProtectionPluginConfig' ServiceProtectionPluginConfig: x-speakeasy-entity: GatewayPluginServiceProtection 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 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. Counters are scoped per Service, so plugin instances configured on different Services maintain independent counters even when using the same namespace. NOTE: For plugin instances sharing the same namespace, all configurations that are required for synchronizing counters, e.g. `strategy`, `redis`, `sync_rate`, `dictionary_name`, need to be the same.' type: string default: null nullable: true x-speakeasy-param-computed: false redis: type: object default: null nullable: true properties: cloud_authentication: description: Cloud auth related configs for connecting to a Cloud Provider's Redis instance. type: object default: null nullable: true properties: auth_provider: description: Auth providers to be used to authenticate to a Cloud Provider's Redis instance. type: string enum: - aws - azure - gcp x-referenceable: true x-speakeasy-unknown-values: allow aws_access_key_id: description: AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_is_serverless: description: This flag specifies whether the cluster is serverless when auth_provider is set to `aws`. type: boolean default: true aws_region: description: The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false 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 x-referenceable: true 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 default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: string default: '6379' maximum: 65535 minimum: 0 x-referenceable: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false sentinel_password: description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false server_name: description: A string representing an SNI (server name indication) value for TLS. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-transform-from-api: jq: | if has("port") then .port |= if type == "number" then tostring else . end else . end x-speakeasy-transform-to-api: jq: | if has("port") then if (.port | type) == "string" and (.port | test("^[0-9]+$")) then .port |= tonumber else . end else . end 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`, `redis` and `cluster`.' type: string default: local enum: - cluster - local - redis x-speakeasy-unknown-values: allow 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow required: - limit - window_size name: const: service-protection protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config x-supported-partials: - name: redis-ee paths: - config.redis SessionPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/SessionPluginConfig' SessionPluginConfig: x-speakeasy-entity: GatewayPluginSession properties: config: type: object default: null nullable: true 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 bind: description: Bind the session to data acquired from the HTTP request or connection. type: array items: enum: - ip - scheme - user-agent type: string x-speakeasy-unknown-values: allow default: null nullable: true x-speakeasy-param-computed: false cookie_domain: description: The domain with which the cookie is intended to be exchanged. type: string default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 hash_subject: description: Whether to hash or not the subject when store_metadata is enabled. type: boolean default: false 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 x-speakeasy-unknown-values: allow 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 x-speakeasy-unknown-values: allow default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow default: null nullable: true x-speakeasy-param-computed: false 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: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow store_metadata: description: 'Whether to also store metadata of sessions, such as collecting data of sessions for a specific audience belonging to a specific subject.' type: boolean default: false x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false SolaceConsumePlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/SolaceConsumePluginConfig' SolaceConsumePluginConfig: x-speakeasy-entity: GatewayPluginSolaceConsume properties: config: type: object properties: flow: description: The flow related configuration. type: object properties: ack_mode: description: 'Controls how acknowledgments are generated for received Guaranteed messages. When set to `AUTO`, the messages are positively acknowledged upon receiving them. When set to ''CLIENT'', the messages are positively or negatively acknowledged by Kong regarding to client delivery status.' type: string default: CLIENT enum: - AUTO - CLIENT x-speakeasy-unknown-values: allow binds: type: array items: properties: name: description: 'The name of the Queue that is the target of the bind. You can use $(uri_captures[''<capture-identifier>'']) in this field (replace `<capture-identifier>` with a real value, for example `$uri_captures[''queue'']` when the matched route has a path `~/(?<queue>[a-z]+)`)' type: string type: description: The type of object to which this Flow is bound. type: string default: QUEUE enum: - QUEUE required: - name type: object minLength: 1 functions: description: 'The Lua functions that manipulates the message being received from Solace. The `message` variable can be used to access the current message content, and the function can return a new content.' type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false max_unacked_messages: description: This property controls the maximum number of messages that may be unacknowledged on the Flow. type: integer default: -1 properties: description: Additional Solace flow properties (each setting needs to have `FLOW_` prefix). type: object default: null additionalProperties: type: string x-lua-required: true x-referenceable: true nullable: true x-speakeasy-param-computed: false selector: description: The selector when binding to an endpoint. type: string default: null nullable: true x-speakeasy-param-computed: false wait_timeout: description: Specifies in milliseconds how long to wait for messages to appear on each poll before giving up or retrying. type: integer default: 50 maximum: 5000 minimum: 1 window_size: description: The Guaranteed message window size for the Flow. type: integer default: 255 maximum: 255 minimum: 1 required: - binds mode: description: The mode of operation for the plugin. The `AUTO` determines the mode automatically from the client request. type: string default: POLLING enum: - AUTO - POLLING - SERVER-SENT-EVENTS - WEBSOCKET x-speakeasy-unknown-values: allow polling: description: The `POLLING` mode related configuration settings. type: object properties: timeout: description: 'Polling timeout in milliseconds. When set to `0`, the polling works like short-polling and waits at maximum the Flow `wait_timeout` amount of time for the new messages (short-polling). When set to larger than `0`, the connection is kept open and only closed after the timeout or in case messages appear earlier (long-polling).' type: integer default: 0 maximum: 300000 minimum: 0 x-speakeasy-param-computed: true session: description: Session related configuration. type: object properties: authentication: description: Session authentication related configuration. type: object default: null nullable: true properties: access_token: description: The OAuth2 access token used with `OAUTH2` authentication scheme when connecting to an event broker. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false access_token_header: description: Specifies the header that contains access token for the `OAUTH2` authentication scheme when connecting to an event broker. This header takes precedence over the `access_token` field. type: string default: null nullable: true x-speakeasy-param-computed: false basic_auth_header: description: Specifies the header that contains Basic Authentication credentials for the `BASIC` authentication scheme when connecting to an event broker. This header takes precedence over the `username` and `password` fields. type: string default: null nullable: true x-speakeasy-param-computed: false client_credentials: description: 'Client credentials used to automatically obtain and renew OAuth2 access tokens from an IdP for the `CLIENT_CREDENTIALS` authentication scheme. When set, Kong fetches tokens from `token_endpoint` using `client_id` and `client_secret`, caches them until expiry, and retries with a fresh token whenever Solace returns an unauthenticated response.' type: object default: null nullable: true properties: client_id: description: The OAuth2 client ID used with `CLIENT_CREDENTIALS` authentication scheme when connecting to an event broker. type: string x-encrypted: true x-referenceable: true client_secret: description: The OAuth2 client secret used with `CLIENT_CREDENTIALS` authentication scheme when connecting to an event broker. type: string x-encrypted: true x-referenceable: true eagerly_expire: description: 'Number of seconds before actual expiry when cached access tokens should be considered expired and proactively renewed. This helps prevent edge cases where tokens are rejected by Solace just as they expire, but setting this too high may lead to unnecessary token refreshes.' type: integer default: 5 scopes: description: The OAuth2 scopes to request when retrieving access tokens for the `CLIENT_CREDENTIALS` authentication scheme. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false ssl_verify: description: Controls TLS certificate verification for HTTPS token endpoint requests. type: boolean default: true token_endpoint: description: The OAuth2 token endpoint URL used to retrieve access tokens for the `CLIENT_CREDENTIALS` authentication scheme when connecting to an event broker. type: string required: - client_id - client_secret - token_endpoint x-speakeasy-param-computed: false id_token: description: The OpenID Connect ID token used with `OAUTH2` authentication scheme when connecting to an event broker. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false id_token_header: description: Specifies the header that contains id token for the `OAUTH2` authentication scheme when connecting to an event broker. This header takes precedence over the `id_token` field. type: string default: null nullable: true x-speakeasy-param-computed: false password: description: The password used with `BASIC` authentication scheme when connecting to an event broker. type: string default: null maxLength: 128 nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false scheme: description: The client authentication scheme used when connection to an event broker. type: string default: BASIC enum: - BASIC - CLIENT_CREDENTIALS - NONE - OAUTH2 x-speakeasy-unknown-values: allow username: description: The username used with `BASIC` authentication scheme when connecting to an event broker. type: string default: null maxLength: 189 nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false calculate_message_expiry: description: 'If this property is true and time-to-live has a positive value in a message, the expiration time is calculated when the message is sent or received' type: boolean default: true connect_timeout: description: The timeout period (in milliseconds) for a connect operation to a given host (per host). type: integer default: 3000 maximum: 100000 minimum: 100 generate_rcv_timestamps: description: 'When enabled, a receive timestamp is recorded for each message.' type: boolean default: true generate_send_timestamps: description: 'When enabled, a send timestamp is automatically included (if not already present) in the Solace-defined fields for each message sent.' type: boolean default: true generate_sender_id: description: 'When enabled, a sender id is automatically included (if not already present) in the Solace-defined fields for each message sent.' type: boolean default: true generate_sequence_number: description: 'When enabled, a sequence number is automatically included (if not already present) in the Solace-defined fields for each message sent.' type: boolean default: true host: description: 'The IPv4 or IPv6 address or host name to connect to (see: https://docs.solace.com/API-Developer-Online-Ref-Documentation/c/index.html#host-entry).' type: string x-referenceable: true properties: description: Additional Solace session properties (each setting needs to have `SESSION_` prefix). type: object default: null additionalProperties: type: string x-lua-required: true x-referenceable: true nullable: true x-speakeasy-param-computed: false ssl_validate_certificate: description: Indicates whether the API should validate server certificates with the trusted certificates. type: boolean default: false vpn_name: description: The name of the Message VPN to attempt to join when connecting to an event broker. type: string default: null maxLength: 32 nullable: true x-speakeasy-param-computed: false required: - host websocket: description: The `WEBSOCKET` mode related configuration settings. type: object properties: max_recv_len: description: Specifies the maximal length of payload allowed when receiving WebSocket frames. type: integer default: 65536 max_send_len: description: Specifies the maximal length of payload allowed when sending WebSocket frames. type: integer default: 65536 timeout: description: Specifies the network timeout threshold in milliseconds. type: integer default: 1000 maximum: 60000 minimum: 1 x-speakeasy-param-computed: true required: - flow - session name: const: solace-consume protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config SolaceLogPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/SolaceLogPluginConfig' SolaceLogPluginConfig: x-speakeasy-entity: GatewayPluginSolaceLog properties: config: type: object properties: message: description: The log message related configuration. type: object properties: ack_timeout: description: 'When using a non-DIRECT guaranteed delivery mode, this property sets the log message acknowledgement timeout (waiting time).' type: integer default: 2000 maximum: 100000 minimum: 1 custom_fields_by_lua: description: A key-value map that dynamically modifies log fields using Lua code. type: object default: null additionalProperties: type: string nullable: true x-speakeasy-param-computed: false delivery_mode: description: Sets the log message delivery mode. type: string default: DIRECT enum: - DIRECT - PERSISTENT x-speakeasy-unknown-values: allow destinations: description: The log message destinations. type: array items: properties: name: description: 'The name of the destination. You can use `$(uri_captures[''<capture-identifier>''])` in this field to capture the name from a regex request URI (replace `<capture-identifier>` with a real value; for example `$(uri_captures[''queue''])` when the matched route has a path `~/(?<queue>[a-z]+)`).' type: string type: description: The type of the destination. type: string default: QUEUE enum: - QUEUE - TOPIC x-speakeasy-unknown-values: allow required: - name type: object minLength: 1 dmq_eligible: description: Sets the dead message queue (DMQ) eligible property on the log message. type: boolean default: false priority: description: Sets the log message priority. type: integer default: 4 maximum: 255 minimum: 0 sender_id: description: Allows the application to set the sender identifier. type: string default: null nullable: true x-speakeasy-param-computed: false tracing: description: 'Enable or disable the tracing propagation. This is primarily used for distributed tracing and message correlation, especially in debugging or tracking message flows across multiple systems.' type: boolean default: false tracing_sampled: description: Forcibly turn on the tracing on all the messages for distributed tracing (tracing needs to be enabled as well). type: boolean default: false ttl: description: Sets the time to live (TTL) in milliseconds for the log message. Setting the time to live to zero disables the TTL for the log message. type: integer default: 0 required: - destinations session: description: Session related configuration. type: object properties: authentication: description: Session authentication related configuration. type: object default: null nullable: true properties: access_token: description: The OAuth2 access token used with `OAUTH2` authentication scheme when connecting to an event broker. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false access_token_header: description: Specifies the header that contains access token for the `OAUTH2` authentication scheme when connecting to an event broker. This header takes precedence over the `access_token` field. type: string default: null nullable: true x-speakeasy-param-computed: false basic_auth_header: description: Specifies the header that contains Basic Authentication credentials for the `BASIC` authentication scheme when connecting to an event broker. This header takes precedence over the `username` and `password` fields. type: string default: null nullable: true x-speakeasy-param-computed: false client_credentials: description: 'Client credentials used to automatically obtain and renew OAuth2 access tokens from an IdP for the `CLIENT_CREDENTIALS` authentication scheme. When set, Kong fetches tokens from `token_endpoint` using `client_id` and `client_secret`, caches them until expiry, and retries with a fresh token whenever Solace returns an unauthenticated response.' type: object default: null nullable: true properties: client_id: description: The OAuth2 client ID used with `CLIENT_CREDENTIALS` authentication scheme when connecting to an event broker. type: string x-encrypted: true x-referenceable: true client_secret: description: The OAuth2 client secret used with `CLIENT_CREDENTIALS` authentication scheme when connecting to an event broker. type: string x-encrypted: true x-referenceable: true eagerly_expire: description: 'Number of seconds before actual expiry when cached access tokens should be considered expired and proactively renewed. This helps prevent edge cases where tokens are rejected by Solace just as they expire, but setting this too high may lead to unnecessary token refreshes.' type: integer default: 5 scopes: description: The OAuth2 scopes to request when retrieving access tokens for the `CLIENT_CREDENTIALS` authentication scheme. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false ssl_verify: description: Controls TLS certificate verification for HTTPS token endpoint requests. type: boolean default: true token_endpoint: description: The OAuth2 token endpoint URL used to retrieve access tokens for the `CLIENT_CREDENTIALS` authentication scheme when connecting to an event broker. type: string required: - client_id - client_secret - token_endpoint x-speakeasy-param-computed: false id_token: description: The OpenID Connect ID token used with `OAUTH2` authentication scheme when connecting to an event broker. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false id_token_header: description: Specifies the header that contains id token for the `OAUTH2` authentication scheme when connecting to an event broker. This header takes precedence over the `id_token` field. type: string default: null nullable: true x-speakeasy-param-computed: false password: description: The password used with `BASIC` authentication scheme when connecting to an event broker. type: string default: null maxLength: 128 nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false scheme: description: The client authentication scheme used when connection to an event broker. type: string default: BASIC enum: - BASIC - CLIENT_CREDENTIALS - NONE - OAUTH2 x-speakeasy-unknown-values: allow username: description: The username used with `BASIC` authentication scheme when connecting to an event broker. type: string default: null maxLength: 189 nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false calculate_message_expiry: description: 'If this property is true and time-to-live has a positive value in a message, the expiration time is calculated when the message is sent or received' type: boolean default: true connect_timeout: description: The timeout period (in milliseconds) for a connect operation to a given host (per host). type: integer default: 3000 maximum: 100000 minimum: 100 generate_rcv_timestamps: description: 'When enabled, a receive timestamp is recorded for each message.' type: boolean default: true generate_send_timestamps: description: 'When enabled, a send timestamp is automatically included (if not already present) in the Solace-defined fields for each message sent.' type: boolean default: true generate_sender_id: description: 'When enabled, a sender id is automatically included (if not already present) in the Solace-defined fields for each message sent.' type: boolean default: true generate_sequence_number: description: 'When enabled, a sequence number is automatically included (if not already present) in the Solace-defined fields for each message sent.' type: boolean default: true host: description: 'The IPv4 or IPv6 address or host name to connect to (see: https://docs.solace.com/API-Developer-Online-Ref-Documentation/c/index.html#host-entry).' type: string x-referenceable: true properties: description: Additional Solace session properties (each setting needs to have `SESSION_` prefix). type: object default: null additionalProperties: type: string x-lua-required: true x-referenceable: true nullable: true x-speakeasy-param-computed: false ssl_validate_certificate: description: Indicates whether the API should validate server certificates with the trusted certificates. type: boolean default: false vpn_name: description: The name of the Message VPN to attempt to join when connecting to an event broker. type: string default: null maxLength: 32 nullable: true x-speakeasy-param-computed: false required: - host required: - message - session name: const: solace-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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config SolaceUpstreamPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/SolaceUpstreamPluginConfig' SolaceUpstreamPluginConfig: x-speakeasy-entity: GatewayPluginSolaceUpstream properties: config: type: object properties: message: description: The message related configuration. type: object properties: ack_timeout: description: 'When using a non-DIRECT guaranteed delivery mode, this property sets the message acknowledgement timeout in milliseconds (waiting time).' type: integer default: 2000 maximum: 100000 minimum: 1 content_encoding: description: 'Sets the HTTP Content-Encoding applied to the Solace message payload (for example, gzip). If unset, the request Content-Encoding header is used when available.' type: string default: null nullable: true x-speakeasy-param-computed: false content_type: description: 'Sets the HTTP Content-Type applied to the Solace message payload. If unset, the request Content-Type header is used when available.' type: string default: null nullable: true x-speakeasy-param-computed: false default_content: description: 'When not using `forward_method`, `forward_uri`, `forward_headers`, `forward_body` or `forward_body_raw_only`, this sets the message content.' type: string default: null nullable: true x-speakeasy-param-computed: false delivery_mode: description: Sets the message delivery mode. type: string default: DIRECT enum: - DIRECT - PERSISTENT x-speakeasy-unknown-values: allow destinations: description: The message destinations. type: array items: properties: name: description: 'The name of the destination. You can use $(uri_captures[''<capture-identifier>'']) in this field (replace `<capture-identifier>` with a real value, for example `$uri_captures[’queue’]` when the matched route has a path `~/(?<queue>[a-z]+)`).' type: string type: description: The type of the destination. type: string default: QUEUE enum: - QUEUE - TOPIC x-speakeasy-unknown-values: allow required: - name type: object minLength: 1 dmq_eligible: description: Sets the dead message queue (DMQ) eligible property on the message. type: boolean default: false forward_body: description: Include the request body and the body arguments in the message. type: boolean default: false forward_body_raw_only: description: Forward only the raw request body without wrapping it in a JSON payload or adding extra fields. type: boolean default: false forward_headers: description: Include the request headers in the message. type: boolean default: false forward_method: description: Include the request method in the message. type: boolean default: false forward_uri: description: 'Include the request URI and the URI arguments (as in, query arguments) in the message.' type: boolean default: false functions: description: 'The Lua functions that manipulates (or generates) the message being sent to Solace. The `message` variable can be used to access the current message content, and the function can return a new content.' type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false priority: description: Sets the message priority. type: integer default: 4 maximum: 255 minimum: 0 sender_id: description: Allows the application to set the content of the sender identifier. type: string default: null nullable: true x-speakeasy-param-computed: false tracing: description: 'Enable or disable the tracing propagation. This is primarily used for distributed tracing and message correlation, especially in debugging or tracking message flows across multiple systems.' type: boolean default: false tracing_sampled: description: Forcibly turn on the tracing on all the messages for distributed tracing (tracing needs to be enabled as well). type: boolean default: false ttl: description: Sets the time to live (TTL) in milliseconds for the message. Setting the time to live to zero disables the TTL for the message. type: integer default: 0 user_properties: description: User defined properties to be included in the message. Separate static properties from header mappings. type: object default: null nullable: true properties: headers: description: 'Header settings for user properties (mapping, inclusion and exclusion).' type: object default: null nullable: true properties: exclude_headers: description: 'Headers that must not be forwarded into user properties. This is used to exclude sensitive headers such as authorization from being forwarded as user properties, or to avoid duplication when a header is mapped to a user property but you don''t want the original header to be included as well.' type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false include_headers: description: Headers to include as user properties even without explicit mapping. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false mappings: description: 'Header-to-user_property mapping (key = HTTP header name, value = target user property name).' type: object default: null additionalProperties: type: string x-lua-required: true nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false predefined_properties: description: 'Predefined user properties to set on every message (key = property name, value = property value).' type: object default: null additionalProperties: type: string x-lua-required: true nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false required: - destinations session: description: Session related configuration. type: object properties: authentication: description: Session authentication related configuration. type: object default: null nullable: true properties: access_token: description: The OAuth2 access token used with `OAUTH2` authentication scheme when connecting to an event broker. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false access_token_header: description: Specifies the header that contains access token for the `OAUTH2` authentication scheme when connecting to an event broker. This header takes precedence over the `access_token` field. type: string default: null nullable: true x-speakeasy-param-computed: false basic_auth_header: description: Specifies the header that contains Basic Authentication credentials for the `BASIC` authentication scheme when connecting to an event broker. This header takes precedence over the `username` and `password` fields. type: string default: null nullable: true x-speakeasy-param-computed: false client_credentials: description: 'Client credentials used to automatically obtain and renew OAuth2 access tokens from an IdP for the `CLIENT_CREDENTIALS` authentication scheme. When set, Kong fetches tokens from `token_endpoint` using `client_id` and `client_secret`, caches them until expiry, and retries with a fresh token whenever Solace returns an unauthenticated response.' type: object default: null nullable: true properties: client_id: description: The OAuth2 client ID used with `CLIENT_CREDENTIALS` authentication scheme when connecting to an event broker. type: string x-encrypted: true x-referenceable: true client_secret: description: The OAuth2 client secret used with `CLIENT_CREDENTIALS` authentication scheme when connecting to an event broker. type: string x-encrypted: true x-referenceable: true eagerly_expire: description: 'Number of seconds before actual expiry when cached access tokens should be considered expired and proactively renewed. This helps prevent edge cases where tokens are rejected by Solace just as they expire, but setting this too high may lead to unnecessary token refreshes.' type: integer default: 5 scopes: description: The OAuth2 scopes to request when retrieving access tokens for the `CLIENT_CREDENTIALS` authentication scheme. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false ssl_verify: description: Controls TLS certificate verification for HTTPS token endpoint requests. type: boolean default: true token_endpoint: description: The OAuth2 token endpoint URL used to retrieve access tokens for the `CLIENT_CREDENTIALS` authentication scheme when connecting to an event broker. type: string required: - client_id - client_secret - token_endpoint x-speakeasy-param-computed: false id_token: description: The OpenID Connect ID token used with `OAUTH2` authentication scheme when connecting to an event broker. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false id_token_header: description: Specifies the header that contains id token for the `OAUTH2` authentication scheme when connecting to an event broker. This header takes precedence over the `id_token` field. type: string default: null nullable: true x-speakeasy-param-computed: false password: description: The password used with `BASIC` authentication scheme when connecting to an event broker. type: string default: null maxLength: 128 nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false scheme: description: The client authentication scheme used when connection to an event broker. type: string default: BASIC enum: - BASIC - CLIENT_CREDENTIALS - NONE - OAUTH2 x-speakeasy-unknown-values: allow username: description: The username used with `BASIC` authentication scheme when connecting to an event broker. type: string default: null maxLength: 189 nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false calculate_message_expiry: description: 'If this property is true and time-to-live has a positive value in a message, the expiration time is calculated when the message is sent or received' type: boolean default: true connect_timeout: description: The timeout period (in milliseconds) for a connect operation to a given host (per host). type: integer default: 3000 maximum: 100000 minimum: 100 generate_rcv_timestamps: description: 'When enabled, a receive timestamp is recorded for each message.' type: boolean default: true generate_send_timestamps: description: 'When enabled, a send timestamp is automatically included (if not already present) in the Solace-defined fields for each message sent.' type: boolean default: true generate_sender_id: description: 'When enabled, a sender id is automatically included (if not already present) in the Solace-defined fields for each message sent.' type: boolean default: true generate_sequence_number: description: 'When enabled, a sequence number is automatically included (if not already present) in the Solace-defined fields for each message sent.' type: boolean default: true host: description: 'The IPv4 or IPv6 address or host name to connect to (see: https://docs.solace.com/API-Developer-Online-Ref-Documentation/c/index.html#host-entry).' type: string x-referenceable: true properties: description: Additional Solace session properties (each setting needs to have `SESSION_` prefix). type: object default: null additionalProperties: type: string x-lua-required: true x-referenceable: true nullable: true x-speakeasy-param-computed: false ssl_validate_certificate: description: Indicates whether the API should validate server certificates with the trusted certificates. type: boolean default: false vpn_name: description: The name of the Message VPN to attempt to join when connecting to an event broker. type: string default: null maxLength: 32 nullable: true x-speakeasy-param-computed: false required: - host required: - message - session name: const: solace-upstream protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config StandardWebhooksPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/StandardWebhooksPluginConfig' StandardWebhooksPluginConfig: x-speakeasy-entity: GatewayPluginStandardWebhooks properties: config: type: object properties: secret_v1: description: Webhook secret type: string x-encrypted: true x-referenceable: true 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 required: - secret_v1 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: standard-webhooks protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config StatsdAdvancedPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/StatsdAdvancedPluginConfig' StatsdAdvancedPluginConfig: x-speakeasy-entity: GatewayPluginStatsdAdvanced properties: config: type: object default: null nullable: true properties: allow_status_codes: description: List of status code ranges that are allowed to be logged in metrics. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 x-speakeasy-unknown-values: allow 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 x-speakeasy-unknown-values: allow sample_rate: type: number default: null nullable: true x-speakeasy-param-computed: false service_identifier: type: string enum: - service_host - service_id - service_name - service_name_or_host x-speakeasy-unknown-values: allow stat_type: type: string enum: - counter - gauge - histogram - meter - set - timer x-speakeasy-unknown-values: allow workspace_identifier: type: string enum: - workspace_id - workspace_name x-speakeasy-unknown-values: allow required: - name - stat_type type: object default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true properties: concurrency_limit: description: The number of of queue delivery timers. -1 indicates unlimited. type: integer default: 1 enum: - -1 - 1 x-speakeasy-unknown-values: allow initial_retry_delay: description: Time in seconds before the initial retry is made for a failing batch. type: number maximum: 1000000 minimum: 0.001 x-speakeasy-param-computed: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 x-speakeasy-unknown-values: allow x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false StatsdPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/StatsdPluginConfig' StatsdPluginConfig: x-speakeasy-entity: GatewayPluginStatsd properties: config: type: object default: null nullable: true properties: allow_status_codes: description: List of status code ranges that are allowed to be logged in metrics. type: array items: type: string default: null nullable: true x-speakeasy-param-computed: false consumer_identifier_default: type: string default: custom_id enum: - consumer_id - custom_id - username x-speakeasy-unknown-values: allow flush_timeout: type: number default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 x-speakeasy-unknown-values: allow sample_rate: description: Sampling rate type: number x-speakeasy-param-computed: true service_identifier: description: Service detail. type: string enum: - service_host - service_id - service_name - service_name_or_host x-speakeasy-unknown-values: allow stat_type: description: Determines what sort of event a metric represents. type: string enum: - counter - gauge - histogram - meter - set - timer x-speakeasy-unknown-values: allow workspace_identifier: description: Workspace detail. type: string enum: - workspace_id - workspace_name x-speakeasy-unknown-values: allow required: - name - stat_type type: object x-speakeasy-param-computed: true 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 x-speakeasy-unknown-values: allow initial_retry_delay: description: Time in seconds before the initial retry is made for a failing batch. type: number maximum: 1000000 minimum: 0.001 x-speakeasy-param-computed: true 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 x-speakeasy-param-computed: true 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 x-speakeasy-param-computed: true queue_size: type: integer default: null nullable: true x-speakeasy-param-computed: false retry_count: type: integer default: null nullable: true x-speakeasy-param-computed: false service_identifier_default: type: string default: service_name_or_host enum: - service_host - service_id - service_name - service_name_or_host x-speakeasy-unknown-values: allow tag_style: type: string enum: - dogstatsd - influxdb - librato - signalfx x-speakeasy-unknown-values: allow 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 x-speakeasy-unknown-values: allow x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false SyslogPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/SyslogPluginConfig' SyslogPluginConfig: x-speakeasy-entity: GatewayPluginSyslog properties: config: type: object default: null nullable: true properties: client_errors_severity: type: string default: info enum: - alert - crit - debug - emerg - err - info - notice - warning x-speakeasy-unknown-values: allow custom_fields_by_lua: description: Lua code as a key-value map type: object default: null additionalProperties: type: string nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow log_level: type: string default: info enum: - alert - crit - debug - emerg - err - info - notice - warning x-speakeasy-unknown-values: allow server_errors_severity: type: string default: info enum: - alert - crit - debug - emerg - err - info - notice - warning x-speakeasy-unknown-values: allow successful_severity: type: string default: info enum: - alert - crit - debug - emerg - err - info - notice - warning x-speakeasy-unknown-values: allow x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false Target: x-speakeasy-entity: GatewayTarget 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 failover: description: Whether to use this target only as backup or not. type: boolean default: false nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true tags: description: An optional set of strings associated with the Target for grouping and filtering. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false 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 updated_at: description: Unix epoch when the resource was last updated. type: number nullable: true upstream: description: The unique identifier or the name of the upstream for which to update the target. type: object nullable: true properties: id: type: string x-foreign: true x-speakeasy-param-computed: 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 maximum: 65535 minimum: 0 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 required: - target TargetWithoutParents: x-speakeasy-entity: GatewayTarget 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 failover: description: Whether to use this target only as backup or not. type: boolean default: false nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true tags: description: An optional set of strings associated with the Target for grouping and filtering. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false 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 updated_at: description: Unix epoch when the resource was last updated. type: number nullable: true upstream: description: The unique identifier or the name of the upstream for which to update the target. type: object nullable: true properties: id: type: string x-foreign: true x-speakeasy-param-computed: 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 maximum: 65535 minimum: 0 nullable: true example: id: 089292a7-ba3d-4d88-acf0-97b4b2e2621a target: 203.0.113.42 weight: 100 additionalProperties: false required: - target TcpLogPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/TcpLogPluginConfig' TcpLogPluginConfig: x-speakeasy-entity: GatewayPluginTcpLog 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 default: null additionalProperties: type: string nullable: true x-speakeasy-param-computed: false 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 ssl_verify: description: 'When using TLS, this option enables verification of the certificate presented by the server.' type: boolean default: false 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 default: null nullable: true x-speakeasy-param-computed: false required: - host - port 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config TlsHandshakeModifierPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/TlsHandshakeModifierPluginConfig' TlsHandshakeModifierPluginConfig: x-speakeasy-entity: GatewayPluginTlsHandshakeModifier properties: config: type: object default: null nullable: true properties: tls_client_certificate: description: TLS Client Certificate type: string default: REQUEST enum: - REQUEST x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false TlsMetadataHeadersPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/TlsMetadataHeadersPluginConfig' TlsMetadataHeadersPluginConfig: x-speakeasy-entity: GatewayPluginTlsMetadataHeaders properties: config: type: object default: null nullable: true 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 x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false UdpLogPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/UdpLogPluginConfig' UdpLogPluginConfig: x-speakeasy-entity: GatewayPluginUdpLog properties: config: type: object properties: custom_fields_by_lua: description: Lua code as a key-value map type: object default: null additionalProperties: type: string nullable: true x-speakeasy-param-computed: false 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 required: - host - port 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config Upstream: x-speakeasy-entity: GatewayUpstream 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 - latency - least-connections - round-robin - sticky-sessions nullable: true x-speakeasy-unknown-values: allow client_certificate: description: 'If set, the certificate to be used as client certificate while TLS handshaking to the upstream server.' type: object default: null nullable: true properties: id: type: string x-foreign: true x-speakeasy-param-computed: false 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: - consumer - cookie - header - ip - none - path - query_arg - uri_capture nullable: true x-speakeasy-unknown-values: allow 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false 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: - consumer - cookie - header - ip - none - path - query_arg - uri_capture nullable: true x-speakeasy-unknown-values: allow 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false healthchecks: description: The array of healthchecks. type: object default: 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 nullable: true properties: active: type: object default: 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 properties: concurrency: type: integer default: 10 maximum: 2147483648 minimum: 1 headers: description: A map of header names to arrays of header values. type: object default: null additionalProperties: items: type: string type: array nullable: true x-speakeasy-param-computed: false healthy: type: object default: http_statuses: - 200 - 302 interval: 0 successes: 0 properties: http_statuses: type: array items: maximum: 999 minimum: 100 type: integer default: - 200 - 302 interval: type: number default: 0 maximum: 65535 minimum: 0 successes: type: integer default: 0 maximum: 255 minimum: 0 x-speakeasy-param-computed: true http_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: / https_sni: description: A string representing an SNI (server name indication) value for TLS. type: string nullable: false https_verify_certificate: type: boolean default: true timeout: type: number default: 1 maximum: 65535 minimum: 0 type: type: string default: http enum: - grpc - grpcs - http - https - tcp x-speakeasy-unknown-values: allow unhealthy: type: object default: http_failures: 0 http_statuses: - 429 - 404 - 500 - 501 - 502 - 503 - 504 - 505 interval: 0 tcp_failures: 0 timeouts: 0 properties: http_failures: type: integer default: 0 maximum: 255 minimum: 0 http_statuses: type: array items: maximum: 999 minimum: 100 type: integer default: - 429 - 404 - 500 - 501 - 502 - 503 - 504 - 505 interval: type: number default: 0 maximum: 65535 minimum: 0 tcp_failures: type: integer default: 0 maximum: 255 minimum: 0 timeouts: type: integer default: 0 maximum: 255 minimum: 0 x-speakeasy-param-computed: true x-speakeasy-param-computed: true passive: type: object default: 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 properties: healthy: type: object default: http_statuses: - 200 - 201 - 202 - 203 - 204 - 205 - 206 - 207 - 208 - 226 - 300 - 301 - 302 - 303 - 304 - 305 - 306 - 307 - 308 successes: 0 properties: http_statuses: type: array items: maximum: 999 minimum: 100 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 maximum: 255 minimum: 0 x-speakeasy-param-computed: true type: type: string default: http enum: - grpc - grpcs - http - https - tcp x-speakeasy-unknown-values: allow unhealthy: type: object default: http_failures: 0 http_statuses: - 429 - 500 - 503 tcp_failures: 0 timeouts: 0 properties: http_failures: type: integer default: 0 maximum: 255 minimum: 0 http_statuses: type: array items: maximum: 999 minimum: 100 type: integer default: - 429 - 500 - 503 tcp_failures: type: integer default: 0 maximum: 255 minimum: 0 timeouts: type: integer default: 0 maximum: 255 minimum: 0 x-speakeasy-param-computed: true x-speakeasy-param-computed: true threshold: type: number default: 0 maximum: 100 minimum: 0 x-speakeasy-param-computed: true host_header: description: The hostname to be used as `Host` header when proxying requests through Kong. type: string default: null nullable: true x-speakeasy-param-computed: false id: description: A string representing a UUID (universally unique identifier). 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 maximum: 65536 minimum: 10 nullable: true sticky_sessions_cookie: description: The cookie name to keep sticky sessions. type: string default: null nullable: true x-speakeasy-param-computed: false sticky_sessions_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: / nullable: true tags: description: An optional set of strings associated with the Upstream for grouping and filtering. type: array items: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false 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: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/UpstreamOauthPluginConfig' UpstreamOauthPluginConfig: x-speakeasy-entity: GatewayPluginUpstreamOauth properties: config: type: object properties: behavior: type: object default: null nullable: true 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 x-speakeasy-param-computed: false cache: type: object properties: default_ttl: description: The lifetime of a token without an explicit `expires_in` value. type: number default: 3600 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 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 x-speakeasy-param-computed: true redis: type: object properties: cloud_authentication: description: Cloud auth related configs for connecting to a Cloud Provider's Redis instance. type: object default: null nullable: true properties: auth_provider: description: Auth providers to be used to authenticate to a Cloud Provider's Redis instance. type: string enum: - aws - azure - gcp x-referenceable: true x-speakeasy-unknown-values: allow aws_access_key_id: description: AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_is_serverless: description: This flag specifies whether the cluster is serverless when auth_provider is set to `aws`. type: boolean default: true aws_region: description: The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false 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 x-referenceable: true 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 default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: string default: '6379' maximum: 65535 minimum: 0 x-referenceable: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 default: null minLength: 1 nullable: true x-speakeasy-param-computed: false sentinel_password: description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.' type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false server_name: description: A string representing an SNI (server name indication) value for TLS. type: string default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-referenceable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: true x-speakeasy-transform-from-api: jq: | if has("port") then .port |= if type == "number" then tostring else . end else . end x-speakeasy-transform-to-api: jq: | if has("port") then if (.port | type) == "string" and (.port | test("^[0-9]+$")) then .port |= tonumber else . end else . end strategy: description: The method Kong should use to cache tokens issued by the IdP. type: string default: memory enum: - memory - redis x-speakeasy-unknown-values: allow x-speakeasy-param-computed: true 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 x-speakeasy-unknown-values: allow client_secret_jwt_alg: description: The algorithm to use with JWT when using `client_secret_jwt` authentication. type: string default: HS512 enum: - HS256 - HS512 x-speakeasy-unknown-values: allow http_proxy: description: The proxy to use when making HTTP requests to the IdP. type: string default: null nullable: true x-speakeasy-param-computed: false http_proxy_authorization: description: The `Proxy-Authorization` header value to be used with `http_proxy`. type: string default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: true https_proxy: description: The proxy to use when making HTTPS requests to the IdP. type: string default: null nullable: true x-speakeasy-param-computed: false https_proxy_authorization: description: The `Proxy-Authorization` header value to be used with `https_proxy`. type: string default: null nullable: true x-speakeasy-param-computed: false 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: true 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 default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false client_secret: description: The client secret for the application registration in the IdP. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false grant_type: description: The OAuth grant type to be used. type: string default: client_credentials enum: - client_credentials - password x-speakeasy-unknown-values: allow password: description: The password to use if `config.oauth.grant_type` is set to `password`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false scopes: description: List of scopes to request from the IdP when obtaining a new token. type: array items: type: string default: [] nullable: true 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: type: string x-referenceable: true x-speakeasy-param-computed: true token_post_args: description: Extra post arguments to be passed in the token endpoint request. type: object additionalProperties: type: string x-referenceable: true x-speakeasy-param-computed: true username: description: The username to use if `config.oauth.grant_type` is set to `password`. type: string default: null nullable: true x-encrypted: true x-referenceable: true x-speakeasy-param-computed: false required: - token_endpoint x-speakeasy-param-computed: true required: - oauth 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: upstream-oauth protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false required: - config x-supported-partials: - name: redis-ee paths: - config.cache.redis UpstreamTimeoutPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/UpstreamTimeoutPluginConfig' UpstreamTimeoutPluginConfig: x-speakeasy-entity: GatewayPluginUpstreamTimeout properties: config: type: object default: null nullable: true properties: connect_timeout: description: The timeout in milliseconds for establishing a connection to the upstream server. Must be an integer between 1 and 2^31-2. type: integer default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false read_timeout: description: The timeout in milliseconds between two successive read operations for transmitting a request to the upstream server. Must be an integer between 1 and 2^31-2. type: integer default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false send_timeout: description: The timeout in milliseconds between two successive write operations for transmitting a request to the upstream server. Must be an integer between 1 and 2^31-2. type: integer default: null maximum: 2147483646 minimum: 0 nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: upstream-timeout protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false Vault: x-speakeasy-entity: GatewayVault 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 nullable: true x-speakeasy-param-computed: true x-speakeasy-type-override: any created_at: description: Unix epoch when the resource was created. type: integer nullable: true description: description: The description of the Vault entity. type: string default: null nullable: true x-speakeasy-param-computed: false id: description: A string representing a UUID (universally unique identifier). 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: description: A string representing a tag. type: string default: null nullable: true x-speakeasy-param-computed: false 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 VaultAuthPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/VaultAuthPluginConfig' VaultAuthPluginConfig: x-speakeasy-entity: GatewayPluginVaultAuth properties: config: type: object default: null nullable: true 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 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 default: null nullable: true x-speakeasy-param-computed: false 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 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: object default: null nullable: true properties: id: type: string x-foreign: true x-speakeasy-param-computed: false x-speakeasy-param-computed: false name: const: vault-auth protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false WebsocketSizeLimitPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/WebsocketSizeLimitPluginConfig' WebsocketSizeLimitPluginConfig: x-speakeasy-entity: GatewayPluginWebsocketSizeLimit properties: config: type: object default: null nullable: true properties: client_max_payload: type: integer default: null maximum: 33554432 minimum: 1 nullable: true x-speakeasy-param-computed: false upstream_max_payload: type: integer default: null maximum: 33554432 minimum: 1 nullable: true x-speakeasy-param-computed: false x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false WebsocketValidatorPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/WebsocketValidatorPluginConfig' WebsocketValidatorPluginConfig: x-speakeasy-entity: GatewayPluginWebsocketValidator properties: config: type: object default: null nullable: true properties: client: type: object default: null nullable: true properties: binary: type: object default: null nullable: true 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 x-speakeasy-param-computed: false text: type: object default: null nullable: true 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 x-speakeasy-param-computed: false x-speakeasy-param-computed: false upstream: type: object default: null nullable: true properties: binary: type: object default: null nullable: true 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 x-speakeasy-param-computed: false text: type: object default: null nullable: true 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 x-speakeasy-param-computed: false x-speakeasy-param-computed: false x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false XmlThreatProtectionPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/XmlThreatProtectionPluginConfig' XmlThreatProtectionPluginConfig: x-speakeasy-entity: GatewayPluginXmlThreatProtection properties: config: type: object default: null nullable: true 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: type: string default: [] attribute: description: Maximum size of the attribute value. type: integer default: 1048576 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 checked_content_types: description: A list of Content-Type values with payloads that must be validated. type: array items: type: string default: - application/xml comment: description: Maximum size of comments. type: integer default: 1024 document: description: Maximum size of the entire document. type: integer default: 10485760 entity: description: Maximum size of entity values in EntityDecl. type: integer default: 1024 entityname: description: Maximum size of entity names in EntityDecl. type: integer default: 1024 entityproperty: description: 'Maximum size of systemId, publicId, or notationName in EntityDecl.' type: integer default: 1024 localname: description: Maximum size of the localname. This applies to tags and attributes. type: integer default: 1024 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 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 max_depth: description: Maximum depth of tags. Child elements such as Text or Comments are not counted as another level. type: integer default: 50 max_namespaces: description: Maximum number of namespaces defined on a tag. This value is required if parsing is namespace-aware. type: integer default: 20 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 pidata: description: Maximum size of processing instruction data. type: integer default: 1024 pitarget: description: Maximum size of processing instruction targets. type: integer default: 1024 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 text: description: Maximum text inside tags (counted over all adjacent text/CDATA elements combined). type: integer default: 1048576 x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: const: xml-threat-protection protocols: description: A set of strings representing HTTP protocols. type: array items: enum: - grpc - grpcs - http - https type: string x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false ZipkinPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/ZipkinPluginConfig' ZipkinPluginConfig: x-speakeasy-entity: GatewayPluginZipkin properties: config: type: object default: null nullable: true 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 - instana - jaeger - ot - w3c x-speakeasy-unknown-values: allow default_service_name: description: Set a default service name to override `unknown-service-name` in the Zipkin spans. type: string default: null nullable: true x-speakeasy-param-computed: false 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 - instana - jaeger - ot - preserve - w3c x-speakeasy-unknown-values: allow http_endpoint: description: 'A string representing a URL, such as https://example.com/path/to/resource?q=search.' type: string default: null nullable: true x-speakeasy-param-computed: false http_response_header_for_traceid: type: string default: null nullable: true x-speakeasy-param-computed: false http_span_name: description: Specify whether to include the HTTP path in the span name. type: string default: method enum: - method - method_path x-speakeasy-unknown-values: allow 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 x-speakeasy-unknown-values: allow 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: null nullable: true x-speakeasy-param-computed: false 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 default: b3 enum: - aws - b3 - b3-single - datadog - gcp - instana - jaeger - ot - w3c x-speakeasy-unknown-values: allow 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 - instana - jaeger - ot - w3c type: string x-speakeasy-unknown-values: allow default: null nullable: true x-speakeasy-param-computed: false 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 - instana - jaeger - ot - preserve - w3c type: string x-speakeasy-unknown-values: allow default: null nullable: true x-speakeasy-param-computed: false queue: type: object default: null nullable: true properties: concurrency_limit: description: The number of of queue delivery timers. -1 indicates unlimited. type: integer default: 1 enum: - -1 - 1 x-speakeasy-unknown-values: allow initial_retry_delay: description: Time in seconds before the initial retry is made for a failing batch. type: number maximum: 1000000 minimum: 0.001 x-speakeasy-param-computed: true 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 default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-param-computed: false 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 maximum: 1 minimum: 0 x-speakeasy-param-computed: true 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 value: type: string required: - name - value type: object default: null nullable: true x-speakeasy-param-computed: false 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 x-speakeasy-unknown-values: allow x-speakeasy-param-computed: 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false name: 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 x-speakeasy-unknown-values: allow format: set 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false 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 default: null additionalProperties: false nullable: true properties: id: type: string x-speakeasy-param-computed: false KonnectCPLegacyBaseError: description: standard error type: object properties: message: description: | A short summary of the problem. type: string readOnly: true x-speakeasy-param-suppress-computed-diff: true title: Error KonnectCPLegacyUnauthorizedError: allOf: - $ref: '#/components/schemas/KonnectCPLegacyBaseError' - type: object properties: message: example: Unauthorized KonnectCPLegacyForbiddenError: allOf: - $ref: '#/components/schemas/KonnectCPLegacyBaseError' - type: object properties: message: example: Forbidden KonnectCPLegacyNotFoundError: allOf: - $ref: '#/components/schemas/KonnectCPLegacyBaseError' - type: object properties: message: example: Not Found KonnectCPLegacyBadRequestError: allOf: - $ref: '#/components/schemas/KonnectCPLegacyBaseError' - type: object properties: message: example: Bad Request KonnectCPLegacyConflictError: allOf: - $ref: '#/components/schemas/KonnectCPLegacyBaseError' - type: object properties: message: example: Conflict CreatePortalCustomDomainSSL: type: object properties: domain_verification_method: type: string enum: - custom_certificate - http x-speakeasy-unknown-values: allow custom_certificate: description: Custom certificate to be used for the SSL termination. Only used when domain_verification_method == "custom_certificate" type: string nullable: false custom_private_key: description: Custom certificate private key to be used for the SSL termination. Only used when domain_verification_method == "custom_certificate" type: string nullable: false skip_ca_check: description: | Advanced option. If true, the custom certificate is served exactly as provided, without attempting to bundle against a public trust store. Required for certificates issued by an internal/private CA. type: boolean nullable: false additionalProperties: false PortalAppearanceImageDataUri: description: 'must be a data URL with base64 image data, e.g., data:image/jpeg;base64,<BASE64_IMAGE_DATA>' type: string format: uri example: 'data:image/png,YW5faW1hZ2VfZmlsZQ==' pattern: '^data:image/(png|jpeg|x-icon|ico|icon|vnd.microsoft.icon|gif)(;base64)?,(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$' title: PortalAppearanceImageDataUri x-validation-message: 'must be a data URL with base64 image data, e.g., data:image/jpeg;base64,<BASE64_IMAGE_DATA>' CreateApiKeyPayload: type: object properties: type: type: string default: legacy enum: - new - legacy x-speakeasy-unknown-values: allow secret: description: secret to be created. Must be unique within the realm. If not specified a secret will be automatically generated. type: string x-speakeasy-param-computed: true x-speakeasy-plan-validators: CentralizedConsumerKeyValidator tags: type: array items: type: string uniqueItems: true x-speakeasy-param-computed: true example: type: new consumer_id: ...consumer_id... realm_id: ...realm_id... additionalProperties: false required: - type EventGatewayConsumePolicySchemaValidationTFOnly: description: A policy associated with an Event Gateway. type: object properties: type: description: The type name of the policy. type: string maxLength: 255 minLength: 1 name: description: A unique user-defined name of the policy. type: string maxLength: 255 nullable: false x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A human-readable description of the policy. type: string default: '' maxLength: 512 enabled: description: Whether the policy is enabled. type: boolean default: true labels: $ref: '#/components/schemas/Labels' id: description: The unique identifier of the policy. type: string format: uuid config: description: The configuration of the policy. type: object created_at: $ref: '#/components/schemas/CreatedAt' parent_policy_id: description: 'The unique identifier of the parent policy, if any.' type: string format: uuid default: null nullable: true x-speakeasy-param-computed: false updated_at: $ref: '#/components/schemas/UpdatedAt' condition: description: A string containing the boolean expression that determines whether the policy is applied. type: string default: '' maxLength: 1000 x-expression: type: boolean fields: [] required: - type - id - created_at - updated_at - config EventGatewayProducePolicySchemaValidationTFOnly: description: A policy associated with an Event Gateway. type: object properties: type: description: The type name of the policy. type: string maxLength: 255 minLength: 1 name: description: A unique user-defined name of the policy. type: string maxLength: 255 nullable: false x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A human-readable description of the policy. type: string default: '' maxLength: 512 enabled: description: Whether the policy is enabled. type: boolean default: true labels: $ref: '#/components/schemas/Labels' id: description: The unique identifier of the policy. type: string format: uuid config: description: The configuration of the policy. type: object created_at: $ref: '#/components/schemas/CreatedAt' parent_policy_id: description: 'The unique identifier of the parent policy, if any.' type: string format: uuid default: null nullable: true x-speakeasy-param-computed: false updated_at: $ref: '#/components/schemas/UpdatedAt' condition: description: A string containing the boolean expression that determines whether the policy is applied. type: string default: '' maxLength: 1000 x-expression: type: boolean fields: [] required: - type - id - created_at - updated_at - config requestBodies: GroupMembershipAdd: content: application/json: schema: $ref: '#/components/schemas/GroupMembership' description: Request body for adding a list of child control planes to a control plane group membership. GroupMembershipRemove: content: application/json: schema: $ref: '#/components/schemas/GroupMembership' description: Request body for removing a list of child control planes from a control plane group membership. CreateAPIProductRequest: required: true content: application/json: schema: $ref: '#/components/schemas/CreateAPIProductDTO' UpdateAPIProductRequest: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateAPIProductDTO' CreateAPIProductVersionRequest: x-speakeasy-entity: APIProductVersion required: true content: application/json: schema: $ref: '#/components/schemas/CreateAPIProductVersionDTO' CreateAPIProductVersionSpecRequest: required: true content: application/json: schema: $ref: '#/components/schemas/CreateAPIProductVersionSpecDTO' CreateAPIProductDocumentRequest: required: true content: application/json: schema: $ref: '#/components/schemas/CreateAPIProductDocumentDTO' UpdateAPIProductVersionRequest: x-speakeasy-entity: APIProductVersion required: true content: application/json: schema: $ref: '#/components/schemas/UpdateAPIProductVersionDTO' UpdateAPIProductDocumentRequest: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateAPIProductDocumentDTO' UpdateAPIProductVersionSpecRequest: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateAPIProductVersionSpecDTO' CreateAppAuthStrategy: required: true content: application/json: schema: $ref: '#/components/schemas/CreateAppAuthStrategyRequest' UpdateAppAuthStrategy: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateAppAuthStrategyRequest' CreateTeam: description: |- The request schema for the create team request. If you pass the same `name` and `description` of an existing team in the request, a team with the same `name` and `description` will be created. The two teams will have different `team_id` values to differentiate them. content: application/json: schema: x-speakeasy-entity: Team type: object properties: name: description: A name for the team being created. type: string example: IDM - Developers pattern: '^[\w \W]+$' writeOnly: true description: description: The description of the new team. type: string example: The Identity Management (IDM) team. default: null maxLength: 250 nullable: true writeOnly: true x-speakeasy-param-computed: false labels: $ref: '#/components/schemas/Labels' required: - name UpdateTeam: description: The request schema for the update team request. content: application/json: schema: x-speakeasy-entity: Team type: object properties: name: description: The name of the team. type: string example: IDM - Developers default: null nullable: true pattern: '^[\w \W]+$' writeOnly: true x-speakeasy-param-computed: false description: description: The description of the team. type: string example: The Identity Management (IDM) API team. default: null maxLength: 250 nullable: true writeOnly: true x-speakeasy-param-computed: false labels: $ref: '#/components/schemas/LabelsUpdate' AddUserToTeam: description: The request schema for adding a user to a team. content: application/json: schema: type: object properties: id: description: The user ID for the user being added to a team. type: string format: uuid example: df120cb4-f60b-47bc-a2f8-6a28e6a3c63b writeOnly: true x-speakeasy-name-override: user_id required: - id CreateIdpTeamGroupMappingRequest: description: Request to create an IDP team group mapping. required: true content: application/json: schema: type: object properties: team_id: description: The Konnect team ID to associate with the identity provider group. type: string format: uuid example: 6801e673-cc10-498a-94cd-4271de07a0d3 group: description: The identity provider group name. Group names are case sensitive. type: string example: Tech Leads required: - team_id - group AssignRole: content: application/json: schema: description: An assigned role is a role that has been assigned to a user or team. type: object properties: role_name: description: The desired role. type: string example: Viewer enum: - Admin - Appearance Maintainer - Application Registration - Certificate Admin - Cloud Gateway Cluster Admin - Cloud Gateway Cluster Viewer - Consumer Admin - Connector - Creator - Debug Session Creator - Deployer - Discovery Admin - Discovery Viewer - Editor - Gateway Service Admin - Integration Admin - Integration Viewer - Key Admin - Maintainer - Network Admin - Network Creator - Network Viewer - Plugin Admin - Plugins Admin - Product Publisher - Publisher - Route Admin - SNI Admin - Scorecard Admin - Scorecard Viewer - Service Admin - Service Creator - Service Viewer - Upstream Admin - Vault Admin - Viewer - Registration Approver - Content Editor - Add On Admin - Add On Viewer x-speakeasy-unknown-values: allow entity_id: description: The ID of the entity. type: string format: uuid example: e67490ce-44dc-4cbd-b65e-b52c746fc26a default: null nullable: true x-speakeasy-param-computed: false entity_type_name: description: The type of entity. type: string example: Control Planes enum: - Add Ons - APIs - API Products - Application Auth Strategies - Audit Logs - Control Planes - Dashboards - DCR Providers - Mesh Control Planes - Networks - Portals - Reports - Service Hub - Auth Servers x-speakeasy-unknown-values: allow entity_region: description: Region of the team. type: string example: eu enum: - us - eu - au - me - in - sg - '*' x-speakeasy-unknown-values: allow description: The request schema for assigning a role. CreateSystemAccount: content: application/json: schema: x-speakeasy-entity: SystemAccount type: object properties: name: description: Name of the system account. type: string description: description: Description of the system account. Useful when the system account name is not sufficient to differentiate one system account from another. type: string konnect_managed: description: The system account is managed by Konnect (true/false). type: boolean default: null nullable: true x-speakeasy-param-computed: false required: - name - description description: The request schema to create a system account. UpdateSystemAccount: content: application/json: schema: x-speakeasy-entity: SystemAccount type: object properties: name: description: Name of the system account. type: string default: null nullable: true x-speakeasy-param-computed: false description: description: Description of the system account. type: string default: null nullable: true x-speakeasy-param-computed: false description: The request schema for the update system account request. UpdateSystemAccountAccessToken: content: application/json: schema: x-speakeasy-entity: SystemAccountAccessToken type: object properties: name: description: Name of the system account access token. type: string required: - name CreateSystemAccountAccessToken: content: application/json: schema: x-speakeasy-entity: SystemAccountAccessToken type: object properties: name: type: string expires_at: type: string format: date-time x-speakeasy-terraform-custom-type: imports: - github.com/Kong/shared-speakeasy/customtypes/timetypes schemaType: 'timetypes.RFC3339PreciseToSecondType{}' valueType: timetypes.RFC3339PreciseToSecond required: - name - expires_at description: The request body to create a system account access token. AddSystemAccountToTeam: content: application/json: schema: x-speakeasy-entity: SystemAccountTeam type: object properties: id: description: ID of the system account. type: string format: uuid x-speakeasy-name-override: account_id description: The request schema for adding a system account to a team. UpdateAuthenticationSettings: description: The request schema to update an organization's authentication settings. content: application/json: schema: type: object properties: basic_auth_enabled: description: The organization has basic auth enabled. type: boolean example: true default: null nullable: true x-speakeasy-param-computed: false oidc_auth_enabled: description: The organization has OIDC disabled. type: boolean example: false default: null nullable: true x-speakeasy-param-computed: false saml_auth_enabled: description: The organization has SAML disabled. type: boolean example: false default: null nullable: true x-speakeasy-param-computed: false idp_mapping_enabled: description: Whether IdP groups determine the Konnect teams a user has. type: boolean example: true default: null nullable: true x-speakeasy-param-computed: false konnect_mapping_enabled: description: Whether a Konnect Identity Admin assigns teams to a user. type: boolean example: false default: null nullable: true x-speakeasy-param-computed: false CreateIdentityProviderRequest: description: | An object representing the configuration for creating a new identity provider. This configuration may pertain to either an OIDC or a SAML identity provider. required: true content: application/json: schema: $ref: '#/components/schemas/CreateIdentityProvider' UpdateIdentityProviderRequest: description: | An object representing the configuration for updating an identity provider. This configuration may pertain to either an OIDC or a SAML identity provider. required: true content: application/json: schema: $ref: '#/components/schemas/UpdateIdentityProvider' UpdateAuditLogWebhook: description: The request schema to modify an audit log webhook. content: application/json: schema: x-speakeasy-entity: AuditLog type: object properties: endpoint: description: The endpoint that will receive audit log messages. type: string example: 'https://example.com/audit-logs' default: null nullable: true x-speakeasy-param-computed: false authorization: description: The value to include in the `Authorization` header when sending audit logs to the webhook. type: string example: Bearer sometoken default: null nullable: true x-speakeasy-param-computed: false enabled: description: Indicates if the data should be sent to the webhook. type: boolean example: true default: false log_format: $ref: '#/components/schemas/LogFormat' skip_ssl_verification: description: |- Indicates if the SSL certificate verification of the host endpoint should be skipped when delivering payloads. We strongly recommend not setting this to 'true' as you are subject to man-in-the-middle and other attacks. This option should be considered only for self-signed SSL certificates used in a non-production environment. type: boolean example: false default: false CreateAuditLogDestination: description: The request schema to create an audit log destination. content: application/json: schema: x-speakeasy-entity: AuditLogDestination type: object properties: name: description: The name of the audit log destination. type: string example: My Destination endpoint: description: The endpoint that will receive audit log messages. type: string example: 'https://example.com/audit-logs' authorization: description: The value to include in the `Authorization` header when sending audit logs to the webhook. type: string example: Bearer sometoken writeOnly: true log_format: $ref: '#/components/schemas/LogFormat' skip_ssl_verification: description: |- Indicates if the SSL certificate verification of the host endpoint should be skipped when delivering payloads. We strongly recommend not setting this to 'true' as you are subject to man-in-the-middle and other attacks. This option should be considered only for self-signed SSL certificates used in a non-production environment. type: boolean example: false default: false required: - name - endpoint - log_format - authorization UpdateAuditLogDestination: description: The request schema to modify an audit log destination. content: application/json: schema: type: object properties: name: description: The name of the audit log destination. type: string example: My Destination default: null nullable: true x-speakeasy-param-computed: false endpoint: description: The endpoint that will receive audit log messages. type: string example: 'https://example.com/audit-logs' default: null nullable: true x-speakeasy-param-computed: false authorization: description: The value to include in the `Authorization` header when sending audit logs to the webhook. type: string example: Bearer sometoken default: null nullable: true writeOnly: true x-speakeasy-param-computed: false log_format: $ref: '#/components/schemas/LogFormat' skip_ssl_verification: description: |- Indicates if the SSL certificate verification of the host endpoint should be skipped when delivering payloads. We strongly recommend not setting this to 'true' as you are subject to man-in-the-middle and other attacks. This option should be considered only for self-signed SSL certificates used in a non-production environment. type: boolean example: false default: false UpdateConsumer: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateConsumerPayload' CreateApiKey: required: true content: application/json: schema: $ref: '#/components/schemas/CreateApiKeyPayload' UpdateConsumerRealm: required: true content: application/json: schema: $ref: '#/components/schemas/ConsumerRealmUpdateRequest' CreateConsumerRealm: required: true content: application/json: schema: $ref: '#/components/schemas/ConsumerRealmCreateRequest' CreateConsumer: required: true content: application/json: schema: $ref: '#/components/schemas/ConsumerCreateRequest' ReplaceCMEK: description: CMEK to be replaced required: true content: application/json: schema: type: object properties: key_arn: $ref: '#/components/schemas/KMSARN' name: $ref: '#/components/schemas/CMEKName' description: $ref: '#/components/schemas/CMEKDescription' required: - key_arn - name CreateCatalogServiceRequest: required: true content: application/json: schema: $ref: '#/components/schemas/CreateCatalogService' UpdateCatalogServiceRequest: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateCatalogService' CreateIntegrationInstanceRequest: required: true content: application/json: schema: $ref: '#/components/schemas/CreateIntegrationInstance' UpdateIntegrationInstanceRequest: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateIntegrationInstance' CreateIntegrationInstanceAuthCredentialRequest: required: true content: application/json: schema: $ref: '#/components/schemas/CreateIntegrationInstanceAuthCredential' UpsertIntegrationInstanceAuthConfigRequest: required: true content: application/json: schema: $ref: '#/components/schemas/UpsertIntegrationInstanceAuthConfig' V2CreatePortal: description: Create a portal. required: true content: application/json: schema: $ref: '#/components/schemas/V2CreatePortalRequest' V2UpdatePortal: description: Update a portal's settings. required: true content: application/json: schema: $ref: '#/components/schemas/V2UpdatePortalRequest' V2ReplacePortalProductVersion: required: true content: application/json: schema: $ref: '#/components/schemas/V2ReplacePortalProductVersionPayload' V2UpdatePortalAppearance: description: Update a portal's appearance settings required: true content: application/json: schema: $ref: '#/components/schemas/V2UpdatePortalAppearanceRequest' CreatePortalCustomDomain: description: Create a portal custom domain. required: true content: application/json: schema: $ref: '#/components/schemas/CreatePortalCustomDomainRequest' UpdatePortalCustomDomain: description: Create a portal custom domain. required: true content: application/json: schema: $ref: '#/components/schemas/UpdatePortalCustomDomainRequest' CreatePortal: description: Create a portal. required: true content: application/json: schema: x-speakeasy-entity: Portal type: object properties: id: $ref: '#/components/schemas/UUID' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' name: description: 'The name of the portal, used to distinguish it from other portals. Name must be unique.' type: string maxLength: 255 minLength: 1 display_name: description: The display name of the portal. This value will be the portal's `name` in Portal API. type: string maxLength: 255 minLength: 1 nullable: false description: description: A description of the portal. type: string default: null maxLength: 512 nullable: true x-speakeasy-param-computed: false authentication_enabled: description: 'Whether the portal supports developer authentication. If disabled, developers cannot register for accounts or create applications.' type: boolean default: true rbac_enabled: description: 'Whether the portal resources are protected by Role Based Access Control (RBAC). If enabled, developers view or register for APIs until unless assigned to teams with access to view and consume specific APIs. Authentication must be enabled to use RBAC.' type: boolean default: false sipr_enabled: description: Whether ip allow list is enabled for the portal. type: boolean example: true default: false default_api_visibility: description: 'The default visibility of APIs in the portal. If set to `public`, newly published APIs are visible to unauthenticated developers. If set to `private`, newly published APIs are hidden from unauthenticated developers.' type: string enum: - public - private x-speakeasy-unknown-values: allow default_page_visibility: description: 'The default visibility of pages in the portal. If set to `public`, newly created pages are visible to unauthenticated developers. If set to `private`, newly created pages are hidden from unauthenticated developers.' type: string enum: - public - private x-speakeasy-unknown-values: allow default_application_auth_strategy_id: description: 'The default authentication strategy for APIs published to the portal. Newly published APIs will use this authentication strategy unless overridden during publication. If set to `null`, API publications will not use an authentication strategy unless set during publication.' type: string format: uuid default: null nullable: true x-speakeasy-param-computed: false auto_approve_developers: description: 'Whether developer account registrations will be automatically approved, or if they will be set to pending until approved by an admin.' type: boolean default: false auto_approve_applications: description: 'Whether requests from applications to register for APIs will be automatically approved, or if they will be set to pending until approved by an admin.' type: boolean default: false default_domain: description: The domain assigned to the portal by Konnect. This is the default place to access the portal and its API if not using a `custom_domain``. type: string format: hostname readOnly: true x-speakeasy-param-suppress-computed-diff: true canonical_domain: description: The canonical domain of the developer portal type: string format: hostname nullable: false readOnly: true x-speakeasy-param-suppress-computed-diff: true labels: $ref: '#/components/schemas/LabelsUpdate' notifications_developer_pii_visibility_enabled: description: 'When enabled, portal registration notifications include the registering developer''s identifying information (such as name and email).' type: boolean default: false additionalProperties: false required: - name title: Portal UpdatePortal: description: Update a portal's settings. required: true content: application/json: schema: x-speakeasy-entity: Portal type: object properties: id: $ref: '#/components/schemas/UUID' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' name: description: 'The name of the portal, used to distinguish it from other portals. Name must be unique.' type: string default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false display_name: description: The display name of the portal. This value will be the portal's `name` in Portal API. type: string maxLength: 255 minLength: 1 nullable: false description: description: A description of the portal. type: string default: null maxLength: 512 nullable: true x-speakeasy-param-computed: false authentication_enabled: description: 'Whether the portal supports developer authentication. If disabled, developers cannot register for accounts or create applications.' type: boolean default: true rbac_enabled: description: 'Whether the portal resources are protected by Role Based Access Control (RBAC). If enabled, developers view or register for APIs until unless assigned to teams with access to view and consume specific APIs. Authentication must be enabled to use RBAC.' type: boolean default: false sipr_enabled: description: Whether ip allow list is enabled for the portal. type: boolean example: true default: false default_api_visibility: description: 'The default visibility of APIs in the portal. If set to `public`, newly published APIs are visible to unauthenticated developers. If set to `private`, newly published APIs are hidden from unauthenticated developers.' type: string enum: - public - private x-speakeasy-unknown-values: allow default_page_visibility: description: 'The default visibility of pages in the portal. If set to `public`, newly created pages are visible to unauthenticated developers. If set to `private`, newly created pages are hidden from unauthenticated developers.' type: string enum: - public - private x-speakeasy-unknown-values: allow default_application_auth_strategy_id: description: 'The default authentication strategy for APIs published to the portal. Newly published APIs will use this authentication strategy unless overridden during publication. If set to `null`, API publications will not use an authentication strategy unless set during publication.' type: string format: uuid default: null nullable: true x-speakeasy-param-computed: false auto_approve_developers: description: 'Whether developer account registrations will be automatically approved, or if they will be set to pending until approved by an admin.' type: boolean default: false auto_approve_applications: description: 'Whether requests from applications to register for APIs will be automatically approved, or if they will be set to pending until approved by an admin.' type: boolean default: false default_domain: description: The domain assigned to the portal by Konnect. This is the default place to access the portal and its API if not using a `custom_domain``. type: string format: hostname readOnly: true x-speakeasy-param-suppress-computed-diff: true canonical_domain: description: The canonical domain of the developer portal type: string format: hostname nullable: false readOnly: true x-speakeasy-param-suppress-computed-diff: true labels: $ref: '#/components/schemas/LabelsUpdate' notifications_developer_pii_visibility_enabled: description: 'When enabled, portal registration notifications include the registering developer''s identifying information (such as name and email).' type: boolean default: false additionalProperties: false title: Portal ReplacePortalImageAsset: description: Update an image asset for the portal. required: true content: application/json: schema: $ref: '#/components/schemas/ReplacePortalImageAsset' ReplacePortalCustomization: content: application/json: schema: $ref: '#/components/schemas/PortalCustomizationV3' CreatePortalPage: description: Create a page in a portal. required: true content: application/json: schema: $ref: '#/components/schemas/CreatePortalPageRequest' UpdatePortalPage: description: Update a page in a portal. required: true content: application/json: schema: $ref: '#/components/schemas/UpdatePortalPageRequest' CreatePortalSnippet: description: Create a snippet in a portal. required: true content: application/json: schema: $ref: '#/components/schemas/CreatePortalSnippetRequest' UpdatePortalSnippet: description: Update a snippet in a portal. required: true content: application/json: schema: $ref: '#/components/schemas/UpdatePortalSnippetRequest' UpdatePortalAuditLogWebhook: description: The request schema to modify an portal audit log webhook. content: application/json: schema: type: object properties: enabled: description: Indicates if the data should be sent to the configured destination. type: boolean example: true default: false audit_log_destination_id: description: ID of the audit log destination. type: string format: uuid default: null nullable: true x-speakeasy-param-computed: false PortalUpdateTeam: description: Update a team in a portal. content: application/json: schema: $ref: '#/components/schemas/PortalUpdateTeamRequest' PortalCreateTeam: description: Create a team in a portal. content: application/json: schema: $ref: '#/components/schemas/PortalCreateTeamRequest' UpdatePortalAuthenticationSettings: description: Update a portal's developer authentication settings. content: application/json: schema: $ref: '#/components/schemas/PortalAuthenticationSettingsUpdateRequest' PortalAssignRole: description: Assign a role to a team. content: application/json: schema: $ref: '#/components/schemas/PortalAssignRoleRequest' CreatePortalSourceIPRestriction: content: application/json: schema: type: object properties: allowed_ips: $ref: '#/components/schemas/PortalAllowedIPs' additionalProperties: false required: - allowed_ips CreateApiRequest: required: true content: application/json: schema: type: object properties: id: description: The API identifier. type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 readOnly: true x-speakeasy-param-suppress-computed-diff: true name: description: | The name of your API. The `name + version` combination must be unique for each API you publish. type: string example: MyAPI maxLength: 255 minLength: 1 description: description: A description of your API. Will be visible on your live Portal. type: string default: null nullable: true x-speakeasy-param-computed: false version: description: An optional version for your API. Leave this empty if your API is unversioned. type: string maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: true current_version_summary: $ref: '#/components/schemas/ApiVersionSummary' slug: description: | The `slug` is used in generated URLs to provide human readable paths. Defaults to `slugify(name + version)` type: string example: my-api-v1 nullable: true pattern: '^[\w-]+$' x-speakeasy-param-computed: true api_spec_ids: description: The list of API specification ids for the API. type: array items: type: string format: uuid description: The id of the API specification. example: 123e4567-e89b-12d3-a456-426614174000 deprecated: true readOnly: true x-speakeasy-param-suppress-computed-diff: true portals: description: The list of portals which this API is published to. type: array items: type: object additionalProperties: false required: - id - name - display_name properties: id: description: The portal identifier. type: string format: uuid example: 25a2624c-49fc-4764-99e1-224ed819f200 name: description: 'The name of the portal, used to distinguish it from other portals.' type: string example: My Portal display_name: description: The display name of the portal. This value will be the portal's `name` in Portal API. type: string example: My Portal nullable: false readOnly: true uniqueItems: true x-speakeasy-param-suppress-computed-diff: true labels: $ref: '#/components/schemas/Labels' implementation_mode: description: the implementations that are associated with this api either gateway_entity_binding or access_control_enforcement type: string default: null nullable: true readOnly: true x-speakeasy-param-computed: false x-speakeasy-param-suppress-computed-diff: true attributes: $ref: '#/components/schemas/ApiAttributes' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' spec_content: description: 'The content of the API specification. This is the raw content of the API specification, in json or yaml. By including this field, you can add a API specification without having to make a separate call to update the API specification.' type: string nullable: false writeOnly: true additionalProperties: false required: - name title: API CreateApiSpecRequest: required: true content: application/json: schema: type: object properties: id: description: The API specification identifier. type: string format: uuid example: 7710d5c4-d902-410b-992f-18b814155b53 readOnly: true x-speakeasy-param-suppress-computed-diff: true content: description: | The raw content of your API specification, in json or yaml format (OpenAPI or AsyncAPI). example: '{"openapi":"3.0.3","info":{"title":"Example API","version":"1.0.0"},"paths":{"/example":{"get":{"summary":"Example endpoint","responses":{"200":{"description":"Successful response"}}}}}}' type: string validation_messages: description: The errors that occurred while parsing the API specification. type: array items: type: object additionalProperties: false required: - message properties: message: type: string readOnly: true x-speakeasy-param-suppress-computed-diff: true type: description: | The type of specification being stored. This allows us to render the specification correctly. type: string example: oas3 enum: - oas2 - oas3 - asyncapi title: API Spec Type x-speakeasy-unknown-values: allow created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - content title: API Specification CreateApiVersionRequest: required: true content: application/json: schema: type: object properties: version: description: The version of the api. type: string example: 1.0.0 default: null nullable: true x-speakeasy-param-computed: false spec: type: object additionalProperties: false properties: content: default: null description: 'The raw content of API specification, in json or yaml format (OpenAPI or AsyncAPI).' example: '{"openapi":"3.0.3","info":{"title":"Example API","version":"1.0.0"},"paths":{"/example":{"get":{"summary":"Example endpoint","responses":{"200":{"description":"Successful response"}}}}}}' nullable: true type: string x-speakeasy-param-computed: false additionalProperties: false required: - spec title: API Version Request CreateApiDocumentRequest: required: true content: application/json: schema: type: object properties: id: $ref: '#/components/schemas/ApiDocumentId' content: $ref: '#/components/schemas/ApiDocumentContent' title: $ref: '#/components/schemas/ApiDocumentTitle' slug: $ref: '#/components/schemas/ApiDocumentSlug' status: $ref: '#/components/schemas/ApiDocumentStatus' parent_document_id: $ref: '#/components/schemas/ApiDocumentParentDocumentId' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - content title: API Document UpdateApiRequest: required: true content: application/json: schema: type: object properties: id: description: The API identifier. type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 readOnly: true x-speakeasy-param-suppress-computed-diff: true name: description: | The name of your API. The `name + version` combination must be unique for each API you publish. type: string example: MyAPI default: null maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: false description: description: A description of your API. Will be visible on your live Portal. type: string default: null nullable: true x-speakeasy-param-computed: false version: description: An optional version for your API. Leave this empty if your API is unversioned. type: string maxLength: 255 minLength: 1 nullable: true x-speakeasy-param-computed: true current_version_summary: $ref: '#/components/schemas/ApiVersionSummary' slug: description: | The `slug` is used in generated URLs to provide human readable paths. Defaults to `slugify(name + version)` type: string example: my-api-v1 nullable: true pattern: '^[\w-]+$' x-speakeasy-param-computed: true api_spec_ids: description: The list of API specification ids for the API. type: array items: type: string format: uuid description: The id of the API specification. example: 123e4567-e89b-12d3-a456-426614174000 deprecated: true readOnly: true x-speakeasy-param-suppress-computed-diff: true portals: description: The list of portals which this API is published to. type: array items: type: object additionalProperties: false required: - id - name - display_name properties: id: description: The portal identifier. type: string format: uuid example: 25a2624c-49fc-4764-99e1-224ed819f200 name: description: 'The name of the portal, used to distinguish it from other portals.' type: string example: My Portal display_name: description: The display name of the portal. This value will be the portal's `name` in Portal API. type: string example: My Portal nullable: false readOnly: true uniqueItems: true x-speakeasy-param-suppress-computed-diff: true labels: $ref: '#/components/schemas/LabelsUpdate' implementation_mode: description: the implementations that are associated with this api either gateway_entity_binding or access_control_enforcement type: string default: null nullable: true readOnly: true x-speakeasy-param-computed: false x-speakeasy-param-suppress-computed-diff: true attributes: $ref: '#/components/schemas/ApiAttributes' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false title: API UpdateApiDocumentRequest: required: true content: application/json: schema: $ref: '#/components/schemas/ApiDocument' UpdateApiSpecRequest: required: true content: application/json: schema: $ref: '#/components/schemas/ApiSpec' UpdateApiVersionRequest: required: true content: application/json: schema: $ref: '#/components/schemas/APIVersionRequest' PutApiPublicationRequest: required: true content: application/json: schema: $ref: '#/components/schemas/ApiPublication' CreateApiImplementationRequest: required: true content: application/json: schema: $ref: '#/components/schemas/ApiImplementation' CreateEventGatewayListenerRequest: description: The request schema for creating a listener. content: application/json: schema: type: object properties: name: description: The unique name of the listener. type: string maxLength: 255 minLength: 1 description: description: A human-readable description of the listener. type: string default: '' maxLength: 512 addresses: $ref: '#/components/schemas/EventGatewayListenerAddresses' ports: $ref: '#/components/schemas/EventGatewayListenerPorts' labels: $ref: '#/components/schemas/Labels' additionalProperties: false required: - name - addresses - ports UpdateEventGatewayListenerRequest: description: The request schema for updating a listener. content: application/json: schema: type: object properties: name: description: The unique name of the listener. type: string maxLength: 255 minLength: 1 description: description: A human-readable description of the listener. type: string default: '' maxLength: 512 addresses: $ref: '#/components/schemas/EventGatewayListenerAddresses' ports: $ref: '#/components/schemas/EventGatewayListenerPorts' labels: $ref: '#/components/schemas/Labels' additionalProperties: false required: - name - addresses - ports CreateVirtualClusterRequest: description: The request schema for creating a virtual cluster. content: application/json: schema: type: object properties: name: $ref: '#/components/schemas/VirtualClusterName' description: description: A human-readable description of the virtual cluster. type: string default: '' maxLength: 512 destination: $ref: '#/components/schemas/BackendClusterReferenceModify' authentication: $ref: '#/components/schemas/VirtualClusterAuthenticationSchemes' namespace: $ref: '#/components/schemas/VirtualClusterNamespace' topic_aliases: description: |- Topic aliases allow exposing backend topics under additional names. An alias creates a new entry point to the same physical data. The alias `topic` field references namespace-visible names (if namespace is configured). Aliases are independent of namespace and can be used without it. **Requires a minimum runtime version of `1.2`**. type: array items: $ref: '#/components/schemas/VirtualClusterTopicAlias' nullable: true x-min-runtime-version: '1.2' x-speakeasy-param-computed: false acl_mode: $ref: '#/components/schemas/VirtualClusterACLMode' dns_label: $ref: '#/components/schemas/VirtualClusterDNSLabel' labels: $ref: '#/components/schemas/Labels' additionalProperties: false required: - name - destination - authentication - dns_label - acl_mode UpdateVirtualClusterRequest: description: The request schema for updating a virtual cluster. content: application/json: schema: type: object properties: name: $ref: '#/components/schemas/VirtualClusterName' description: description: A human-readable description of the virtual cluster. type: string default: '' maxLength: 512 destination: $ref: '#/components/schemas/BackendClusterReferenceModify' authentication: $ref: '#/components/schemas/VirtualClusterAuthenticationSensitiveDataAwareSchemes' namespace: $ref: '#/components/schemas/VirtualClusterNamespace' topic_aliases: description: |- Topic aliases allow exposing backend topics under additional names. An alias creates a new entry point to the same physical data. The alias `topic` field references namespace-visible names (if namespace is configured). Aliases are independent of namespace and can be used without it. **Requires a minimum runtime version of `1.2`**. type: array items: $ref: '#/components/schemas/VirtualClusterTopicAlias' nullable: true x-min-runtime-version: '1.2' x-speakeasy-param-computed: false acl_mode: $ref: '#/components/schemas/VirtualClusterACLMode' dns_label: $ref: '#/components/schemas/VirtualClusterDNSLabel' labels: $ref: '#/components/schemas/Labels' additionalProperties: false required: - name - destination - authentication - dns_label - acl_mode CreateBackendClusterRequest: description: The request schema for creating a backend cluster. content: application/json: schema: type: object properties: name: $ref: '#/components/schemas/BackendClusterName' description: description: A human-readable description of the backend cluster. type: string default: '' maxLength: 512 authentication: $ref: '#/components/schemas/BackendClusterAuthenticationScheme' insecure_allow_anonymous_virtual_cluster_auth: description: | If true, virtual clusters can have allow anonymous authentication and use this backend cluster. This setting is not recommended for production use as it may create privilege escalation vulnerabilities. type: boolean default: false bootstrap_servers: $ref: '#/components/schemas/BootstrapServers' tls: $ref: '#/components/schemas/BackendClusterTLS' metadata_update_interval_seconds: $ref: '#/components/schemas/BackendMetadataUpdateIntervalSeconds' labels: $ref: '#/components/schemas/Labels' additionalProperties: false required: - name - authentication - bootstrap_servers - tls UpdateBackendClusterRequest: description: The request schema for updating a backend cluster. content: application/json: schema: type: object properties: name: $ref: '#/components/schemas/BackendClusterName' description: description: A human-readable description of the backend cluster. type: string default: '' maxLength: 512 authentication: $ref: '#/components/schemas/BackendClusterAuthenticationSensitiveDataAwareScheme' insecure_allow_anonymous_virtual_cluster_auth: description: | If true, virtual clusters can have allow anonymous authentication and use this backend cluster. This setting is not recommended for production use as it may create privilege escalation vulnerabilities. type: boolean default: false bootstrap_servers: $ref: '#/components/schemas/BootstrapServers' tls: $ref: '#/components/schemas/BackendClusterTLS' metadata_update_interval_seconds: $ref: '#/components/schemas/BackendMetadataUpdateIntervalSeconds' labels: $ref: '#/components/schemas/Labels' additionalProperties: false required: - name - authentication - bootstrap_servers - tls CreateSchemaRegistryRequest: description: The request schema for creating a schema registry. content: application/json: schema: $ref: '#/components/schemas/SchemaRegistryCreate' UpdateSchemaRegistryRequest: description: The request schema for updating a schema registry. content: application/json: schema: $ref: '#/components/schemas/SchemaRegistryUpdate' CreateEventGatewayDataPlaneCertificateRequest: content: application/json: schema: type: object properties: certificate: description: JSON escaped string of the certificate. type: string name: description: The name to identify of the certificate. type: string default: null nullable: true x-speakeasy-param-computed: false description: description: A description of the certificate. type: string x-speakeasy-param-computed: false required: - certificate description: Request body for creating a certificate. UpdateEventGatewayDataPlaneCertificateRequest: description: The request schema for updating a dataplane certificate. content: application/json: schema: type: object properties: certificate: description: JSON escaped string of the certificate. type: string name: description: The name to identify of the certificate. type: string default: null nullable: true x-speakeasy-param-computed: false description: description: A description of the certificate. type: string x-speakeasy-param-computed: false required: - certificate CreateEventGatewayStaticKeyRequest: description: The request schema for creating a static key. content: application/json: schema: $ref: '#/components/schemas/EventGatewayStaticKeyCreate' CreateTLSTrustBundleRequest: description: The request schema for creating a TLS trust bundle. required: true content: application/json: schema: type: object properties: name: $ref: '#/components/schemas/TLSTrustBundleName' description: description: A human-readable description of the TLS trust bundle. type: string default: '' maxLength: 512 config: $ref: '#/components/schemas/TLSTrustBundleConfig' labels: $ref: '#/components/schemas/Labels' additionalProperties: false required: - name - config UpdateTLSTrustBundleRequest: description: The request schema for updating a TLS trust bundle. required: true content: application/json: schema: type: object properties: name: $ref: '#/components/schemas/TLSTrustBundleName' description: description: A human-readable description of the TLS trust bundle. type: string default: '' maxLength: 512 config: $ref: '#/components/schemas/TLSTrustBundleConfig' labels: $ref: '#/components/schemas/Labels' additionalProperties: false CreateAuthServer: description: Auth server to be created required: true content: application/json: schema: type: object properties: name: $ref: '#/components/schemas/AuthServerName' description: $ref: '#/components/schemas/AuthServerDescription' audience: $ref: '#/components/schemas/Audience' signing_algorithm: $ref: '#/components/schemas/Algorithm' labels: $ref: '#/components/schemas/Labels' trusted_origins: $ref: '#/components/schemas/TrustedOrigins' required: - name - audience UpdateAuthServer: description: Auth server to be updated required: true content: application/json: schema: type: object properties: name: $ref: '#/components/schemas/AuthServerName' description: $ref: '#/components/schemas/AuthServerDescription' audience: $ref: '#/components/schemas/Audience' signing_algorithm: $ref: '#/components/schemas/UpdateAlgorithm' labels: $ref: '#/components/schemas/LabelsUpdate' trusted_origins: $ref: '#/components/schemas/TrustedOrigins' CreateClaim: description: Claim to be created required: true content: application/json: schema: type: object properties: name: $ref: '#/components/schemas/ClaimName' value: $ref: '#/components/schemas/ClaimValue' include_in_token: $ref: '#/components/schemas/ClaimIncludeInToken' include_in_all_scopes: $ref: '#/components/schemas/ClaimIncludeInAllScopes' include_in_scopes: $ref: '#/components/schemas/ClaimIncludeInScopes' enabled: $ref: '#/components/schemas/ClaimEnabled' required: - name - value UpdateClaim: description: Claim to be updated required: true content: application/json: schema: type: object properties: name: $ref: '#/components/schemas/ClaimName' value: $ref: '#/components/schemas/ClaimValue' include_in_token: $ref: '#/components/schemas/UpdateClaimIncludeInToken' include_in_all_scopes: $ref: '#/components/schemas/UpdateClaimIncludeInAllScopes' include_in_scopes: $ref: '#/components/schemas/ClaimIncludeInScopes' enabled: $ref: '#/components/schemas/UpdateClaimEnabled' CreateScope: description: Scope to be created required: true content: application/json: schema: type: object properties: name: $ref: '#/components/schemas/ScopeName' description: $ref: '#/components/schemas/ScopeDescription' default: $ref: '#/components/schemas/ScopeDefault' include_in_metadata: $ref: '#/components/schemas/ScopeIncludeInMetadata' enabled: $ref: '#/components/schemas/ScopeEnabled' required: - name UpdateScope: description: Scope to be update required: true content: application/json: schema: type: object properties: name: $ref: '#/components/schemas/ScopeName' description: $ref: '#/components/schemas/ScopeDescription' default: $ref: '#/components/schemas/UpdateScopeDefault' include_in_metadata: $ref: '#/components/schemas/UpdateScopeIncludeInMetadata' enabled: $ref: '#/components/schemas/UpdateScopeEnabled' CreateClient: description: Client to be created required: true content: application/json: schema: type: object properties: name: $ref: '#/components/schemas/ClientName' grant_types: $ref: '#/components/schemas/GrantTypes' response_types: $ref: '#/components/schemas/ResponseTypes' redirect_uris: $ref: '#/components/schemas/RedirectURIs' login_uri: $ref: '#/components/schemas/LoginURI' access_token_duration: $ref: '#/components/schemas/TokenDuration' id_token_duration: $ref: '#/components/schemas/TokenDuration' allow_all_scopes: $ref: '#/components/schemas/ClientAllowAllScopes' allow_scopes: $ref: '#/components/schemas/ClientAllowScopes' labels: $ref: '#/components/schemas/Labels' token_endpoint_auth_method: $ref: '#/components/schemas/TokenEndpointAuthMethod' id: description: The OAuth 2.0 client ID type: string example: kYa9iQFU5xPDSIUH9z1z maxLength: 36 pattern: '[-_\w]+' x-speakeasy-param-computed: true client_secret: description: Secret of the client - will be used when ID is also set. type: string x-speakeasy-param-computed: true required: - name - grant_types - response_types ReplaceClient: description: Client to be replaced required: true content: application/json: schema: type: object properties: name: $ref: '#/components/schemas/ClientName' client_secret: description: Secret of the client type: string minLength: 1 grant_types: $ref: '#/components/schemas/GrantTypes' response_types: $ref: '#/components/schemas/ResponseTypes' redirect_uris: $ref: '#/components/schemas/RedirectURIs' login_uri: $ref: '#/components/schemas/LoginURI' access_token_duration: $ref: '#/components/schemas/TokenDuration' id_token_duration: $ref: '#/components/schemas/TokenDuration' allow_all_scopes: $ref: '#/components/schemas/ClientAllowAllScopes' allow_scopes: $ref: '#/components/schemas/ClientAllowScopes' token_endpoint_auth_method: $ref: '#/components/schemas/TokenEndpointAuthMethod' labels: $ref: '#/components/schemas/Labels' required: - name - client_secret - grant_types - response_types DataPlaneClientCertificateRequest: content: application/json: schema: type: object properties: cert: description: JSON escaped string of the certificate. type: string title: description: Title for the certificate. type: string default: null nullable: true x-speakeasy-param-computed: false required: - cert description: Request body for creating a dp-client-certificate. create-plugin-schemas: content: application/json: schema: x-speakeasy-entity: GatewayCustomPluginSchema type: object properties: lua_schema: description: | The custom plugin schema; `jq -Rs '.' schema.lua`. type: string example: 'return { name = "myplugin", fields = { { config = { type = "record", fields = { } } } } }' required: - lua_schema CreateConfigStoreRequest: required: true content: application/json: schema: $ref: '#/components/schemas/CreateConfigStore' CreateConfigStoreSecretRequest: required: true content: application/json: schema: $ref: '#/components/schemas/CreateConfigStoreSecret' UpdateConfigStoreRequest: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateConfigStore' UpdateConfigStoreSecretRequest: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateConfigStoreSecret' responses: RetrieveControlPlaneResponse: description: A response to retrieving a single control plane. content: application/json: schema: $ref: '#/components/schemas/ControlPlane' CreateControlPlaneResponse: description: A response to creating a control plane. content: application/json: schema: $ref: '#/components/schemas/ControlPlane' UpdateControlPlaneResponse: description: A response to updating a control plane. content: application/json: schema: $ref: '#/components/schemas/ControlPlane' ListControlPlanesResponse: description: A paginated list response for a collection of control planes. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: x-speakeasy-entity: GatewayControlPlaneList type: array items: $ref: '#/components/schemas/ControlPlane' additionalProperties: false required: - meta - data title: ListControlPlanesResponse ControlPlanesBadRequest: description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' ControlPlanePermissionDenied: description: Permission denied content: application/problem+json: schema: $ref: '#/components/schemas/ForbiddenError' ControlPlaneUnauthenticated: description: Unauthenticated content: application/problem+json: schema: $ref: '#/components/schemas/UnauthorizedError' ControlPlaneNotFound: description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/NotFoundError' ControlPlaneConflict: description: Conflict content: application/problem+json: schema: $ref: '#/components/schemas/ConflictError' InternalServerError: description: Internal Server Error content: application/problem+json: schema: description: The error response object. type: object properties: status: description: The HTTP status code. type: integer format: int32 example: 500 enum: - 500 x-go-type: int32 title: description: The error response code. type: string example: Internal Server Error instance: description: The Konnect traceback code type: string example: 'konnect:trace:2287285207635123011' detail: description: Details about the error. type: string example: Could not propagate control plane changes to control plane cluster service. required: - status - title - instance title: InternalServerError ServiceUnavailable: description: Service Unavailable content: application/problem+json: schema: description: Error response for temporary service unavailability. type: object properties: status: description: The HTTP status code. type: integer format: int32 example: 503 enum: - 503 x-go-type: int32 title: description: The error response code. type: string example: Service Unavailable instance: description: The Konnect traceback code type: string example: 'konnect:trace:2287285207635123011' detail: description: Details about the error. type: string example: Could not retrieve permissions to check resource accessibility. default: null nullable: true x-speakeasy-param-computed: false required: - status - title - instance title: ServiceUnavailableError Internal: description: Internal content: application/problem+json: schema: $ref: '#/components/schemas/BaseError' BadRequest: description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' Unauthorized: description: Unauthorized content: application/problem+json: schema: description: The error response object. type: object properties: status: description: The HTTP status code. type: integer example: 403 default: null nullable: true x-speakeasy-param-computed: false title: description: The Error Response. type: string example: Unauthorized default: null nullable: true x-speakeasy-param-computed: false instance: description: The Konnect traceback code. type: string example: 'konnect:trace:952172606039454040' default: null nullable: true x-speakeasy-param-computed: false detail: description: Details about the error response. type: string example: You do not have permission to perform this action default: null nullable: true x-speakeasy-param-computed: false $ref: '#/components/schemas/UnauthorizedError' title: Unauthorized Response Forbidden: description: Forbidden content: application/problem+json: schema: $ref: '#/components/schemas/ForbiddenError' NotFound: description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/NotFoundError' NotAvailable: description: Service not available content: application/problem+json: schema: $ref: '#/components/schemas/BaseError' RetrieveConfigurationResponse: description: Response format for retrieving a configuration by ID. content: application/json: schema: $ref: '#/components/schemas/ConfigurationManifest' CreateConfigurationResponse: description: Response format for creating a configuration. content: application/json: schema: $ref: '#/components/schemas/ConfigurationManifest' ListNetworksResponse: description: A paginated list for a collection of networks. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/Network' required: - meta - data title: ListNetworksResponse RetrieveNetworkResponse: description: Response format for retrieving a network. content: application/json: schema: $ref: '#/components/schemas/Network' CreateNetworkResponse: description: Response format for creating a network. content: application/json: schema: $ref: '#/components/schemas/Network' PatchNetworkResponse: description: Response format for patching a network. content: application/json: schema: $ref: '#/components/schemas/Network' CreatePrivateDnsResponse: description: Response format for creating a Private DNS. content: application/json: schema: $ref: '#/components/schemas/PrivateDnsResponse' RetrievePrivateDnsResponse: description: Response format for retrieving a Private DNS. content: application/json: schema: $ref: '#/components/schemas/PrivateDnsResponse' CreateTransitGatewayResponse: description: Response format for creating a transit gateway. content: application/json: schema: $ref: '#/components/schemas/TransitGatewayResponse' PatchTransitGatewayResponse: description: Response format for updating a transit gateway. content: application/json: schema: oneOf: - $ref: '#/components/schemas/AwsResourceEndpointGatewayResponse' - $ref: '#/components/schemas/AwsTransitGatewayResponse' RetrieveTransitGatewayResponse: description: Response format for retrieving a transit gateway. content: application/json: schema: $ref: '#/components/schemas/TransitGatewayResponse' ListProviderAccountsResponse: description: A paginated list for a collection of provider accounts. content: application/json: schema: x-speakeasy-entity: CloudGatewayProviderAccountList type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/ProviderAccount' required: - meta - data title: ListCloudGatewayProviderAccountsResponse CreateCustomDomainResponse: description: Response format for creating a custom domain for a control-plane in the global API. content: application/json: schema: $ref: '#/components/schemas/CustomDomain' RetrieveCustomDomainResponse: description: Response format for retrieving a custom domain for a control-plane. content: application/json: schema: $ref: '#/components/schemas/CustomDomain' CloudGatewaysBadRequest: description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' CloudGatewaysForbidden: description: Forbidden content: application/problem+json: schema: $ref: '#/components/schemas/ForbiddenError' CloudGatewaysConflict: description: Conflict content: application/problem+json: schema: $ref: '#/components/schemas/ConflictError' CreateAddOnResponse: description: Response format for creating an add-on. content: application/json: schema: $ref: '#/components/schemas/AddOnResponse' RetrieveAddOnResponse: description: Response format for retrieving an add-on by ID. content: application/json: schema: $ref: '#/components/schemas/AddOnResponse' UpdateAddOnResponse: description: Response format for updating an add-on. content: application/json: schema: $ref: '#/components/schemas/AddOnResponse' Conflict: description: Conflict content: application/problem+json: schema: $ref: '#/components/schemas/ConflictError' RetrieveMeshControlPlaneResponse: description: A response to creating a control plane. content: application/json: schema: $ref: '#/components/schemas/MeshControlPlane' CreateMeshControlPlaneResponse: description: A response to creating a control plane. content: application/json: schema: $ref: '#/components/schemas/MeshControlPlane' CreateMeshControlPlaneValidationError: description: Validation Error content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' PutMeshControlPlaneValidationError: description: Validation Error content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' DeleteMeshControlPlaneValidationError: description: Validation Error content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' MeshControlPlaneForbiddenError: description: Permission denied content: application/problem+json: schema: $ref: '#/components/schemas/ForbiddenError' MeshControlPlaneUnauthorizedError: description: Unauthorized Error content: application/problem+json: schema: $ref: '#/components/schemas/UnauthorizedError' MeshControlPlaneNotFoundError: description: Not found content: application/problem+json: schema: $ref: '#/components/schemas/NotFoundError' PutMeshControlPlaneResponse: description: A response to updating a control plane. content: application/json: schema: $ref: '#/components/schemas/MeshControlPlane' ListMeshControlPlanesResponse: description: A paginated list response for a collection of control planes. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/MeshControlPlane' title: ListMeshControlPlanesResponse SlugConflict: description: Conflict - `slug` property must be unique content: application/problem+json: schema: type: object properties: status: type: number title: type: string type: type: string default: null nullable: true x-speakeasy-param-computed: false instance: type: string required: - status - title - instance VersionSpecConflict: description: Conflict - only one version specification can exist content: application/problem+json: schema: $ref: '#/components/schemas/ConflictError' VersionSpecHiddenConflict: description: Conflict - name attribute must be unique accross legacy version specifications content: application/problem+json: schema: $ref: '#/components/schemas/ConflictError' ApiProductImplementationConflict: description: Conflict - V3 API is currently linked to the target gateway service content: application/problem+json: schema: $ref: '#/components/schemas/ConflictError' ApiProductUnauthorized: description: Unauthorized content: application/problem+json: schema: $ref: '#/components/schemas/UnauthorizedError' ApiProductNotFound: description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/NotFoundError' APIProductResponse: description: API product content: application/json: schema: $ref: '#/components/schemas/APIProduct' APIProductVersionResponse: description: API product content: application/json: schema: $ref: '#/components/schemas/APIProductVersion' APIProductDocumentResponse: description: API product document content: application/json: schema: $ref: '#/components/schemas/APIProductDocument' APIProductVersionSpecResponse: description: API product version specification content: application/json: schema: $ref: '#/components/schemas/APIProductVersionSpec' UnsupportedMediaType: description: Unsupported Media Type content: application/problem+json: schema: $ref: '#/components/schemas/UnsupportedMediaTypeError' CreateAppAuthStrategy: description: A response containing the newly created application auth strategy object. content: application/json: schema: $ref: '#/components/schemas/CreateAppAuthStrategyResponse' GetAppAuthStrategy: description: A response containing a single application auth strategy object. content: application/json: schema: $ref: '#/components/schemas/GetAppAuthStrategyResponse' UpdateAppAuthStrategy: description: A response containing a single updated application auth strategy object. content: application/json: schema: $ref: '#/components/schemas/UpdateAppAuthStrategyResponse' TeamSingle: description: A response including a single team. content: application/json: schema: $ref: '#/components/schemas/Team' TeamCollection: description: A paginated list response for a collection of users. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/Team' default: null nullable: true x-speakeasy-param-computed: false title: Team Collection Response IdpTeamGroupMapping: description: A single team group mapping. content: application/json: schema: $ref: '#/components/schemas/IdpTeamGroupMapping' AssignedRoleSingle: description: A get action response of a single assigned role. content: application/json: schema: $ref: '#/components/schemas/AssignedRole' AuthenticationSettings: description: Response for authentication settings endpoint content: application/json: schema: type: object properties: basic_auth_enabled: description: The organization has basic auth enabled. type: boolean example: true default: null nullable: true x-speakeasy-param-computed: false oidc_auth_enabled: description: The organization has OIDC disabled. type: boolean example: false default: null nullable: true x-speakeasy-param-computed: false saml_auth_enabled: description: The organization has SAML disabled. type: boolean example: false default: null nullable: true x-speakeasy-param-computed: false idp_mapping_enabled: description: IdP groups determine the Konnect teams a user has. type: boolean example: true default: null nullable: true x-speakeasy-param-computed: false konnect_mapping_enabled: description: A Konnect Identity Admin assigns teams to a user. type: boolean example: false default: null nullable: true x-speakeasy-param-computed: false title: Authentication Settings Response IdentityBadRequest: description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' IdentityConflict: description: Conflict content: application/problem+json: schema: $ref: '#/components/schemas/ConflictError' CreateIdentityProviderPermissionDenied: description: Permission denied content: application/problem+json: schema: $ref: '#/components/schemas/ForbiddenError' IdentityPermissionDenied: description: Permission denied content: application/problem+json: schema: $ref: '#/components/schemas/ForbiddenError' IdentityUnauthenticated: description: Unauthenticated content: application/problem+json: schema: $ref: '#/components/schemas/UnauthorizedError' IdentityNotFound: description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/NotFoundError' SystemAccountCollection: description: A paginated list response for a collection of system accounts. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/SystemAccount' default: null nullable: true x-speakeasy-param-computed: false title: System Account Collection Response SystemAccountSingle: description: A response including a single system account. content: application/json: schema: $ref: '#/components/schemas/SystemAccount' SystemAccountAccessTokenSingle: description: A response including a single system account access token. content: application/json: schema: $ref: '#/components/schemas/SystemAccountAccessToken' SystemAccountAccessTokenCreated: description: A response including a single system account access token with the token. content: application/json: schema: x-speakeasy-entity: SystemAccountAccessToken type: object properties: id: description: ID of the system account access token. type: string format: uuid readOnly: true x-speakeasy-param-suppress-computed-diff: true name: description: Name of the system account access token. type: string default: null nullable: true x-speakeasy-param-computed: false created_at: description: Timestamp of when the system account access token was created. type: string format: date-time readOnly: true x-speakeasy-param-suppress-computed-diff: true updated_at: description: Timestamp of when the system account access token was last updated. type: string format: date-time readOnly: true x-speakeasy-param-suppress-computed-diff: true expires_at: description: Timestamp of when the system account access token will expire. type: string format: date-time readOnly: true x-speakeasy-param-suppress-computed-diff: true x-speakeasy-terraform-custom-type: imports: - github.com/Kong/shared-speakeasy/customtypes/timetypes schemaType: 'timetypes.RFC3339PreciseToSecondType{}' valueType: timetypes.RFC3339PreciseToSecond last_used_at: description: Timestamp of when the system account access token was last used. type: string format: date-time readOnly: true x-speakeasy-param-suppress-computed-diff: true token: description: The token of the system account access token. type: string readOnly: true x-sensitive: true x-speakeasy-param-sensitive: true x-speakeasy-param-suppress-computed-diff: true example: id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 name: Sample Access Token created_at: '2022-08-01T14:16:09Z' updated_at: '2022-08-02T08:35:49Z' expires_at: '2022-12-31T12:52:23Z' last_used_at: '2022-10-24T13:05:42Z' token: spat_12345678901234567890123456789012345678901234567890 title: System Account Access Token Created Response IdentityProvider: description: | An identity provider configuration. This response represents the configuration of a specific identity provider, which can be either OIDC or SAML. content: application/json: schema: $ref: '#/components/schemas/IdentityProvider' RetrieveServerlessCloudGatewayResponse: description: A response to retrieving a serverless cloud gateway. content: application/json: schema: $ref: '#/components/schemas/ServerlessCloudGateway' CreateServerlessCloudGatewayResponse: description: A response to creating a serverless cloud gateway. content: application/json: schema: $ref: '#/components/schemas/ServerlessCloudGateway' AuditLogWebhook: description: Get response for audit log webhook content: application/json: schema: type: object properties: endpoint: description: The endpoint that will receive audit log messages. type: string example: 'https://example.com/audit-logs' default: null nullable: true x-speakeasy-param-computed: false enabled: description: Indicates whether audit data should be sent to the webhook. type: boolean example: true default: null nullable: true x-speakeasy-param-computed: false log_format: $ref: '#/components/schemas/LogFormat' skip_ssl_verification: description: Indicates if the SSL certificate verification of the host endpoint should be skipped when delivering payloads. type: boolean example: false default: false updated_at: description: 'Timestamp when this webhook was last updated. Initial value is 0001-01-01T00:00:0Z.' type: string format: date-time readOnly: true x-speakeasy-param-suppress-computed-diff: true AuditLogDestinationSingle: description: Audit log destination response content: application/json: schema: $ref: '#/components/schemas/AuditLogDestination' WebhookBadRequest: description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' AuditLogDestinationBadRequest: description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' CreateConsumerResponse: description: success content: application/json: schema: $ref: '#/components/schemas/CentralizedConsumer' CreateConsumerRealmResponse: description: success content: application/json: schema: $ref: '#/components/schemas/ConsumerRealm' CMEK: description: A CMEK content: application/json: schema: $ref: '#/components/schemas/CMEK' CatalogServiceResponse: description: A response containing a single service object. content: application/json: schema: $ref: '#/components/schemas/CatalogService' IntegrationInstanceResponse: description: A response containing a single integration instance object. content: application/json: schema: $ref: '#/components/schemas/IntegrationInstance' IntegrationInstanceAuthCredentialResponse: description: A response containing an integration instance auth credential. content: application/json: schema: $ref: '#/components/schemas/IntegrationInstanceAuthCredential' IntegrationInstanceAuthConfigResponse: description: A response containing integration instance auth config. content: application/json: schema: $ref: '#/components/schemas/IntegrationInstanceAuthConfig' V2ListPortals: description: A paginated list of portals in the current region of an organization. content: application/json: schema: $ref: '#/components/schemas/V2ListPortalsResponse' V2PortalProductVersion: description: A response containing a portal product version content: application/json: schema: $ref: '#/components/schemas/V2PortalProductVersion' V2GetPortal: description: Details about a portal and its current settings. content: application/json: schema: $ref: '#/components/schemas/V2GetPortalResponse' V2UpdatePortal: description: Details about the portal being updated. content: application/json: schema: $ref: '#/components/schemas/V2UpdatePortalResponse' V2CreatePortal: description: Details about the portal that was created. content: application/json: schema: $ref: '#/components/schemas/V2CreatePortalResponse' V2GetPortalAppearance: description: Details about a portal's current appearance settings. content: application/json: schema: $ref: '#/components/schemas/V2GetPortalAppearanceResponse' V2UpdatePortalAppearance: description: Details about the appearance settings being updated. content: application/json: schema: $ref: '#/components/schemas/V2UpdatePortalAppearanceResponse' PortalAuthenticationSettings: description: Details about a portal's authentication settings. content: application/json: schema: $ref: '#/components/schemas/PortalAuthenticationSettingsResponse' PortalAssignedRole: description: Details about the role assignment. content: application/json: schema: $ref: '#/components/schemas/PortalAssignedRoleResponse' PortalTeam: description: Details about a team of developers in a portal. content: application/json: schema: $ref: '#/components/schemas/PortalTeamResponse' PortalCustomDomain: description: Portal custom domain content: application/json: schema: $ref: '#/components/schemas/PortalCustomDomain' ListPortalsResponse: description: A paginated list of portals in the current region of an organization. content: application/json: schema: type: object properties: data: type: array items: x-speakeasy-entity: Portal title: Portal type: object additionalProperties: false properties: id: $ref: '#/components/schemas/UUID' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' name: description: 'The name of the portal, used to distinguish it from other portals. Name must be unique.' type: string maxLength: 255 minLength: 1 display_name: description: The display name of the portal. This value will be the portal's `name` in Portal API. type: string maxLength: 255 minLength: 1 nullable: false description: description: A description of the portal. type: string default: null maxLength: 512 nullable: true x-speakeasy-param-computed: false authentication_enabled: description: 'Whether the portal supports developer authentication. If disabled, developers cannot register for accounts or create applications.' type: boolean default: true rbac_enabled: description: 'Whether the portal resources are protected by Role Based Access Control (RBAC). If enabled, developers view or register for APIs until unless assigned to teams with access to view and consume specific APIs. Authentication must be enabled to use RBAC.' type: boolean default: false sipr_enabled: description: Whether ip allow list is enabled for the portal. type: boolean example: true default: false default_api_visibility: description: 'The default visibility of APIs in the portal. If set to `public`, newly published APIs are visible to unauthenticated developers. If set to `private`, newly published APIs are hidden from unauthenticated developers.' type: string enum: - public - private x-speakeasy-unknown-values: allow default_page_visibility: description: 'The default visibility of pages in the portal. If set to `public`, newly created pages are visible to unauthenticated developers. If set to `private`, newly created pages are hidden from unauthenticated developers.' type: string enum: - public - private x-speakeasy-unknown-values: allow default_application_auth_strategy_id: description: 'The default authentication strategy for APIs published to the portal. Newly published APIs will use this authentication strategy unless overridden during publication. If set to `null`, API publications will not use an authentication strategy unless set during publication.' type: string format: uuid default: null nullable: true x-speakeasy-param-computed: false auto_approve_developers: description: 'Whether developer account registrations will be automatically approved, or if they will be set to pending until approved by an admin.' type: boolean default: false auto_approve_applications: description: 'Whether requests from applications to register for APIs will be automatically approved, or if they will be set to pending until approved by an admin.' type: boolean default: false default_domain: description: The domain assigned to the portal by Konnect. This is the default place to access the portal and its API if not using a `custom_domain``. type: string format: hostname readOnly: true x-speakeasy-param-suppress-computed-diff: true canonical_domain: description: The canonical domain of the developer portal type: string format: hostname nullable: false readOnly: true x-speakeasy-param-suppress-computed-diff: true labels: $ref: '#/components/schemas/Labels' notifications_developer_pii_visibility_enabled: description: 'When enabled, portal registration notifications include the registering developer''s identifying information (such as name and email).' type: boolean default: false required: - id - name - display_name - description - authentication_enabled - rbac_enabled - sipr_enabled - default_api_visibility - default_page_visibility - default_application_auth_strategy_id - auto_approve_applications - auto_approve_developers - default_domain - canonical_domain - created_at - updated_at meta: $ref: '#/components/schemas/PaginatedMeta' additionalProperties: false required: - data - meta PortalResponse: description: Details about a portal. content: application/json: schema: x-speakeasy-entity: Portal type: object properties: id: $ref: '#/components/schemas/UUID' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' name: description: 'The name of the portal, used to distinguish it from other portals. Name must be unique.' type: string maxLength: 255 minLength: 1 display_name: description: The display name of the portal. This value will be the portal's `name` in Portal API. type: string maxLength: 255 minLength: 1 nullable: false description: description: A description of the portal. type: string default: null maxLength: 512 nullable: true x-speakeasy-param-computed: false authentication_enabled: description: 'Whether the portal supports developer authentication. If disabled, developers cannot register for accounts or create applications.' type: boolean default: true rbac_enabled: description: 'Whether the portal resources are protected by Role Based Access Control (RBAC). If enabled, developers view or register for APIs until unless assigned to teams with access to view and consume specific APIs. Authentication must be enabled to use RBAC.' type: boolean default: false sipr_enabled: description: Whether ip allow list is enabled for the portal. type: boolean example: true default: false default_api_visibility: description: 'The default visibility of APIs in the portal. If set to `public`, newly published APIs are visible to unauthenticated developers. If set to `private`, newly published APIs are hidden from unauthenticated developers.' type: string enum: - public - private x-speakeasy-unknown-values: allow default_page_visibility: description: 'The default visibility of pages in the portal. If set to `public`, newly created pages are visible to unauthenticated developers. If set to `private`, newly created pages are hidden from unauthenticated developers.' type: string enum: - public - private x-speakeasy-unknown-values: allow default_application_auth_strategy_id: description: 'The default authentication strategy for APIs published to the portal. Newly published APIs will use this authentication strategy unless overridden during publication. If set to `null`, API publications will not use an authentication strategy unless set during publication.' type: string format: uuid default: null nullable: true x-speakeasy-param-computed: false auto_approve_developers: description: 'Whether developer account registrations will be automatically approved, or if they will be set to pending until approved by an admin.' type: boolean default: false auto_approve_applications: description: 'Whether requests from applications to register for APIs will be automatically approved, or if they will be set to pending until approved by an admin.' type: boolean default: false default_domain: description: The domain assigned to the portal by Konnect. This is the default place to access the portal and its API if not using a `custom_domain``. type: string format: hostname readOnly: true x-speakeasy-param-suppress-computed-diff: true canonical_domain: description: The canonical domain of the developer portal type: string format: hostname nullable: false readOnly: true x-speakeasy-param-suppress-computed-diff: true labels: $ref: '#/components/schemas/Labels' notifications_developer_pii_visibility_enabled: description: 'When enabled, portal registration notifications include the registering developer''s identifying information (such as name and email).' type: boolean default: false additionalProperties: false required: - id - name - display_name - description - authentication_enabled - rbac_enabled - sipr_enabled - default_api_visibility - default_page_visibility - default_application_auth_strategy_id - auto_approve_applications - auto_approve_developers - default_domain - canonical_domain - updated_at - created_at title: Portal PortalAssetResponse: description: 'Image asset for the portal. Can be either png, jpeg or svg' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/PortalImageDataUri' additionalProperties: false required: - data PortalCustomizationResponse: description: The current customization options for a portal. content: application/json: schema: $ref: '#/components/schemas/PortalCustomizationV3' PortalPage: description: Details about a page in a portal. content: application/json: schema: $ref: '#/components/schemas/PortalPageResponse' PortalSnippet: description: Details about a snippet in a portal. content: application/json: schema: $ref: '#/components/schemas/PortalSnippetResponse' PortalAuditLogWebhook: description: Portal audit log webhook response content: application/json: schema: type: object properties: enabled: description: Indicates if the data should be sent to the configured audit log destination. type: boolean example: true default: false audit_log_destination_id: description: ID of the audit log destination. type: string format: uuid default: null nullable: true x-speakeasy-param-computed: false PortalWebhookBadRequest: description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' PortalSourceIPRestriction: description: The portal's IP allow list configuration. content: application/json: schema: $ref: '#/components/schemas/IPEntry' ApiSlugConflict: description: Conflict - `slug` property must be unique content: application/problem+json: schema: type: object properties: status: type: number title: type: string type: type: string default: null nullable: true x-speakeasy-param-computed: false instance: type: string required: - status - title - instance ApiSpecConflict: description: Conflict - An API may only have one specification content: application/problem+json: schema: $ref: '#/components/schemas/ConflictError' ApiSpecHiddenConflict: description: Conflict - name attribute must be unique across specifications content: application/problem+json: schema: $ref: '#/components/schemas/ConflictError' ApiVersionPatchConflict: description: Conflict - May occur when constraints are violated content: application/problem+json: schema: $ref: '#/components/schemas/ConflictError' ApiImplementationConflict: description: Conflict - A gateway service can only be linked to a single API content: application/problem+json: schema: $ref: '#/components/schemas/ConflictError' ApiUnauthorized: description: ApiUnauthorized content: application/problem+json: schema: $ref: '#/components/schemas/UnauthorizedError' ApiNotFound: description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/NotFoundError' ApiForbidden: description: ApiForbidden content: application/problem+json: schema: $ref: '#/components/schemas/ForbiddenError' ApiPublicationBadRequest: description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' ApiResponse: description: API content: application/json: schema: $ref: '#/components/schemas/ApiResponseSchema' ApiDocumentResponse: description: API document content: application/json: schema: type: object properties: id: $ref: '#/components/schemas/ApiDocumentId' content: $ref: '#/components/schemas/ApiDocumentContent' title: $ref: '#/components/schemas/ApiDocumentTitle' slug: $ref: '#/components/schemas/ApiDocumentSlug' status: $ref: '#/components/schemas/ApiDocumentStatus' parent_document_id: $ref: '#/components/schemas/ApiDocumentParentDocumentId' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - id - parent_document_id - title - slug - status - content - updated_at - created_at title: API Document ApiSpecResponse: description: API specification (OpenAPI or AsyncAPI) content: application/json: schema: type: object properties: id: description: The API specification identifier. type: string format: uuid example: 7710d5c4-d902-410b-992f-18b814155b53 readOnly: true x-speakeasy-param-suppress-computed-diff: true content: description: | The raw content of your API specification, in json or yaml format (OpenAPI or AsyncAPI). example: '{"openapi":"3.0.3","info":{"title":"Example API","version":"1.0.0"},"paths":{"/example":{"get":{"summary":"Example endpoint","responses":{"200":{"description":"Successful response"}}}}}}' type: string validation_messages: description: The errors that occurred while parsing the API specification. type: array items: type: object additionalProperties: false required: - message properties: message: type: string readOnly: true x-speakeasy-param-suppress-computed-diff: true type: description: | The type of specification being stored. This allows us to render the specification correctly. type: string example: oas3 enum: - oas2 - oas3 - asyncapi title: API Spec Type x-speakeasy-unknown-values: allow created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - id - content - type - created_at - updated_at - validation_messages title: API Specification ApiVersionResponse: description: API version (OpenAPI or AsyncAPI) content: application/json: schema: type: object properties: id: description: The API version identifier. type: string format: uuid example: 7710d5c4-d902-410b-992f-18b814155b53 readOnly: true x-speakeasy-param-suppress-computed-diff: true version: description: The version of the api. type: string example: 1.0.0 spec: type: object default: null additionalProperties: false nullable: true properties: content: default: null description: | The raw content of your API spec, in json or yaml format (OpenAPI or AsyncAPI). example: '{"openapi":"3.0.3","info":{"title":"Example API","version":"1.0.0"},"paths":{"/example":{"get":{"summary":"Example endpoint","responses":{"200":{"description":"Successful response"}}}}}}' nullable: true type: string x-speakeasy-param-computed: false type: description: | The type of specification being stored. This allows us to render the specification correctly. type: string example: oas3 enum: - oas2 - oas3 - asyncapi readOnly: true title: API Spec Type x-speakeasy-param-suppress-computed-diff: true x-speakeasy-unknown-values: allow validation_messages: description: The errors that occurred while parsing the API version spec. type: array items: type: object additionalProperties: false required: - message properties: message: type: string readOnly: true x-speakeasy-param-suppress-computed-diff: true x-speakeasy-param-computed: false created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - id - version - created_at - updated_at title: API Version ApiPublicationResponse: description: An API publication in a portal content: application/json: schema: description: An API publication in a portal type: object properties: auto_approve_registrations: $ref: '#/components/schemas/AutoApproveRegistrations' auth_strategy_ids: $ref: '#/components/schemas/ApiPublicationAuthStrategyIds' visibility: $ref: '#/components/schemas/ApiPublicationVisibility' warnings: description: Informational warnings (e.g. incompatible fields stripped for ACE). Empty if none. type: array items: type: string readOnly: true x-speakeasy-param-suppress-computed-diff: true created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - visibility - created_at - updated_at - auth_strategy_ids title: API Publication ApiImplementationResponse: description: An API implementation content: application/json: schema: description: An entity that implements an API type: object oneOf: - $ref: '#/components/schemas/ApiImplementationGatewayServiceEntity' - $ref: '#/components/schemas/ApiImplementationControlPlaneEntity' required: - id - created_at - updated_at title: API Implementation CreateGatewayResponse: description: A response to creating a gateway. content: application/json: schema: $ref: '#/components/schemas/EventGatewayInfo' UpdateGatewayResponse: description: A response to updating a gateway. content: application/json: schema: $ref: '#/components/schemas/EventGatewayInfo' AuthServer: description: An auth server content: application/json: schema: $ref: '#/components/schemas/AuthServer' Claim: description: A claim content: application/json: schema: $ref: '#/components/schemas/Claim' Scope: description: A scope content: application/json: schema: $ref: '#/components/schemas/Scope' Client: description: A client content: application/json: schema: $ref: '#/components/schemas/Client' CreatedClient: description: A client with a secret content: application/json: schema: $ref: '#/components/schemas/CreatedClient' DataPlaneClientCertificateResponse: description: Response body for retrieving a dp-client-certificate. content: application/json: schema: type: object properties: item: $ref: '#/components/schemas/DataPlaneClientCertificate' plugin-schemas: description: A response for a single custom plugin schema. content: application/json: schema: type: object properties: item: x-speakeasy-entity: GatewayCustomPluginSchema type: object default: null nullable: true properties: lua_schema: description: The custom plugin schema; `jq -Rs '.' schema.lua`. type: string example: 'return { name = \"myplugin\", fields = { { config = { type = \"record\", fields = { } } } } }' default: null nullable: true x-speakeasy-param-computed: false name: description: The custom plugin name determined by the custom plugin schema. type: string example: myplugin default: null nullable: true x-speakeasy-param-computed: false created_at: description: An ISO-8604 timestamp representation of custom plugin schema creation date. type: integer example: 1422386534 updated_at: description: An ISO-8604 timestamp representation of custom plugin schema update date. type: integer example: 1422412345 x-speakeasy-param-computed: false ConfigStoreResponse: description: Config Store content: application/json: schema: $ref: '#/components/schemas/ConfigStore' ConfigStoreSecretResponse: description: Config Store Secret content: application/json: schema: $ref: '#/components/schemas/ConfigStoreSecret' ConfigStoreUnauthorized: description: Unauthorized content: application/problem+json: schema: $ref: '#/components/schemas/UnauthorizedError' ConfigStoreSecretUnauthorized: description: Unauthorized content: application/problem+json: schema: $ref: '#/components/schemas/UnauthorizedError' ConfigStoreNotFound: description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/NotFoundError' ConfigStoreSecretNotFound: description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/NotFoundError' GetPluginSchemaResponse: description: The schema for the plugin content: application/json: schema: type: object properties: fields: type: array items: additionalProperties: true type: object default: null nullable: true x-speakeasy-param-computed: false HTTP401Error: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/GatewayUnauthorizedError' KonnectCPLegacyUnauthorized: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/KonnectCPLegacyUnauthorizedError' KonnectCPLegacyForbidden: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/KonnectCPLegacyForbiddenError' KonnectCPLegacyNotFound: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/KonnectCPLegacyNotFoundError' KonnectCPLegacyBadRequest: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/KonnectCPLegacyBadRequestError' KonnectCPLegacyConflict: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/KonnectCPLegacyConflictError' securitySchemes: personalAccessToken: type: http scheme: bearer bearerFormat: Token description: The personal access token is meant to be used as an alternative to basic-auth when accessing Konnect via APIs. You can generate a Personal Access Token (PAT) from the personal access token page in the Konnect dashboard. systemAccountAccessToken: type: http scheme: bearer bearerFormat: Token description: | The system account access token is meant for automations and integrations that are not directly associated with a human identity. You can generate a system account Access Token by creating a system account and then obtaining a system account access token for that account. The access token must be passed in the header of a request, for example: `curl -X GET 'https://global.api.konghq.com/v2/users/' --header 'Authorization: Bearer spat_i2Ej...'` konnectAccessToken: type: http scheme: bearer bearerFormat: JWT description: The Konnect access token is meant to be used by the Konnect dashboard and the decK CLI to authenticate with. serviceAccessToken: type: http scheme: bearer bearerFormat: JWT description: | The Service access token is meant to be used between internal services. tags: - name: Control Planes - name: Control Plane Groups - name: Data-Plane Group Configurations description: | A Cloud Gateway configuration declares the desired state of a control plane's data plane groups — where they run, how many instances, the gateway version, and the autoscaling strategy. Apply a configuration with PUT, and Kong reconciles the running data planes to match. - name: Networks description: | Networks are provider-backed VPC or VNet resources that host dedicated Cloud Gateway data plane groups. Each network is tied to a specific cloud provider account, region, and CIDR block. A network must reach the `ready` state before it can be referenced in a configuration. - name: Transit Gateways description: | Transit gateways connect a Cloud Gateway network to your cloud infrastructure. Supported attachment types span all three major cloud providers: AWS Transit Gateway, AWS VPC Peering, AWS Resource Endpoint (PrivateLink), Azure VNet Peering, Azure Virtual Hub Peering, and GCP VPC Peering. - name: Private DNS description: | Private DNS attachments enable a Cloud Gateway network to resolve private DNS zones hosted in your cloud provider — AWS Private Hosted Zones, AWS Outbound Resolvers, Azure Private Hosted Zones, Azure Outbound Resolvers, and GCP Private Hosted Zones. - name: Add-Ons description: | Optional services that extend the capabilities of a Cloud Gateway data plane group. The currently supported add-on type is managed cache (`managed-cache.v0`), which provisions a Redis-compatible in-memory cache co-located with your data planes. Each add-on is scoped to a control plane or control plane group, and is automatically deployed across all data plane groups that belong to that owner. - name: Provider Accounts description: | Provider Accounts link your Konnect organization to a cloud provider account (AWS, Azure, or GCP) so that Cloud Gateway networks can be provisioned in the dedicated cloud provider account. Each provider account maps a Konnect organization to a cloud provider account ID, which Konnect uses when creating network peering and hub-and-spoke attachments. - name: Custom Domains description: | Custom Domains let you assign bring-your-own hostnames to a Cloud Gateway control plane. After creation the domain moves through `initializing → ready` as Konnect provisions TLS certificates and configures SNI routing on the data planes. Use the online-status endpoint to confirm CNAME and SSL readiness before routing traffic. - name: Mesh - name: API Products - name: API Product Documentation - name: API Product Versions - name: API Product Version Specification - name: App Auth Strategies description: | Application Auth Strategies are sets of plugin configurations that represent how the gateway will perform authentication and authorization for a Product Version. Called “Auth Strategy” for short in the context of portals/applications. The plugins are synced to any Gateway Service that is currently linked or becomes linked to the Product Version. - name: Auth Settings - name: Roles - name: Team Membership - name: Teams - name: System Accounts - name: System Accounts - Access Tokens - name: System Accounts - Roles - name: System Accounts - Team Membership - name: Serverless Cloud Gateways - name: Audit Logs - name: Realms description: | Use a realm to group consumers around an identity, defined by organizational boundaries, such as a production realm or a development realm. Realms are connected to a [geographic region](https://docs.konghq.com/konnect/geo/) in Konnect. Centrally managed consumers defined in realms can be used across multiple control planes. - name: Centrally Managed Consumers description: | Consumers can be scoped to a Konnect region and managed centrally, or be scoped to a control plane in Gateway Manager. Use centrally managed consumers to set up identity of the consumer once, and share it across multiple control planes. Consumers that are managed centrally aren’t part of the configuration that is pushed down from the control plane to the data planes, so it reduces config size and latency. - name: Centrally Managed Keys description: | Centrally managed consumers use key-auth mechanism to authenticate consumers. Keys refer to the API key credential used by the consumer to authenticate to your services. - name: CMEK description: 'Customer Managed Encryption Keys (CMEK) are used to encrypt and decrypt sensitive data in Konnect. They allow you to manage your own encryption keys using AWS Key Management Service (KMS). CMEKs provide an additional layer of security and compliance for your Konnect deployments, ensuring that your data is encrypted with keys that you control. Avoid revoking or deleting a KMS key and CMEK that is actively used by Konnect, as this can lead to data loss or service disruptions.' - name: Catalog Services description: | Create and maintain a centralized catalog of all services running in your organization. Add custom fields and map resources from across your organization to provide a 360-degree overview of your services. Custom fields allow you to surface key information such as: - `Owner`: The person or team responsible for the service - `Product Manager`: The person assigned to guide the service's direction for customer success - `Jira Project`: The Jira project which represents past, present and future work for the service Resources are discovered from the integrations you use within your organization to create, operate and manage your services. Mapping the resources relevant to your service will provide a rich view of the service's communication channels, dependencies and more. Types of resources which you can map to a service include: - `Code Repositories:` The software project(s) that make up the service - `Monitors and Dashboards:` Tools providing visibility into the health and performance of the service - `Communication Channels`: Virtual spaces where questions and concerns can be raised about the service - `Incident Management Resources`: Alerts setup within your incident management platform to notify individuals regarding issues with the service - name: Integration Instances description: | An integration instance represents a specific account of the integration which contains the resources used to manage and support your services. Some integrations provide configuration options to customize how it should behave once authorized (see the integration's manifest for details). Konnect-internal integrations are built-in and do not need to be installed. Once an integration instance is created, authorize the instance to allow the Service Catalog to discover its resources. Note that deleting an integration instance is a **destructive** operation. When an integration instance is deleted, all its resources and mappings will be deleted from the service catalog. In cases where the integration instance's credentials need to be updated, you may re-authorize the instance to retain all currently discovered resources and mappings. To set up and view a list of all the integrations we support, please view our [documentation](https://developer.konghq.com/service-catalog/integrations/). - name: Integration Instance Auth Credentials description: | Represents the credentials use to authorize an integration instance. You will want to configure the integration instance settings and authorization configuration before authorizing the instance. This will inform the authorization process on how to reach and authorize the account. Once the integration instance is authorized, the system will automatically discover all the relevant resources from the account. The integration instance's auth credentials can be removed or updated while retaining all resources which have already been discovered. - name: Integration Instance Auth Config description: | A integration instance may need to be provided with an auth config before authorizing the instance. Typically an auth config will be required when authorizing against a integration which is hosted within your organization. The integration instance's auth config will inform how the Service Catalog will authorize the integration instance. Note that updating the auth config for an instance which is already authorized will **remove the existing credential**, requiring you to re-authorize the instance. - name: Portal Appearance description: APIs related to Konnect Developer Portal Appearance Settings. - name: Portal Product Versions description: | Portal Product Versions hold metadata that describes how a Product Version is configured for a specific portal. They contain: - Lifecyle and deprecation statuses - Application registration settings like auto approve or whether application registration is enabled - The authentication strategy that is enabled for Application Registration - name: Portals description: APIs related to configuration of Konnect Developer Portals. - name: Portal Custom Domains description: APIs related to configuration of Konnect Developer Portals custom domains. - name: Portal Customization description: APIs related to customization of Konnect Developer Portals. - name: Portal Auth Settings description: APIs related to configuration of Konnect Developer Portal auth settings. - name: Portal Teams description: APIs related to configuration of Konnect Developer Portal developer teams. - name: Portal Team Roles description: APIs related to Konnect Developer Portal developer team roles. - name: Assets description: APIs for managing static assets for Konnect Developer Portals. - name: Pages description: APIs related to Konnect Developer Portal Custom Pages. - name: Snippets description: APIs related to Konnect Developer Portal Custom Snippets. - name: Portals IP Allow List description: APIs related to Konnect Portal IP Allow List. - name: API - name: API Documentation - name: API Specification - name: API Publication - name: API Implementation - name: Platform IPs description: Konnect IP inventory - name: Event Gateways description: | Create an Event Gateway Control Plane, used to store Event Gateway configuration - name: Event Gateway Backend Clusters description: | A backend cluster is an abstraction of a real Kafka cluster. It stores the connection and configuration details required for Kong Event Gateway to proxy traffic to Kafka. Multiple Kafka clusters can be proxied through a single Kong Event Gateway. - name: Event Gateway Virtual Clusters description: | Virtual clusters are the primary way clients interact with the Event Gateway proxy. They allow you to isolate clients from each other when connecting to the same backend cluster, and provide each client with modified view while still appearing as a standard Kafka cluster. - name: Event Gateway Listeners description: | A listener represents hostname-port or IP-port combinations that connect to TCP sockets. Listeners need at least as many ports as backend brokers if you use port mapping in a Forward to Virtual Cluster policy. For SNI routing, you can route all brokers using a listener with only one port. Ports can be expressed as a single port or range. Addresses can be IPv4, IPv6, or hostnames. A listener can have policies that enforce TLS certificates and perform SNI routing. The listener runs at Layer 4 of the network stack. In Kong Event Gateway, listeners first take in the connection and then route the TCP connection to a virtual cluster based on conditions defined in listener policies. - name: Event Gateway Listener Policies description: | Policies control how Kafka protocol traffic is modified between the client and the backend cluster. Listener policies are routing policies that pass traffic to the virtual cluster. - name: Event Gateway Virtual Cluster Policies description: | Policies control how Kafka protocol traffic is modified between the client and the backend cluster. Cluster policies are transformation and validation policies that can be applied to Kafka messages. - name: Event Gateway Virtual Cluster Produce Policies description: | Produce policies operate on Kafka messages before they are written to the Kafka cluster. Where possible, apply transformations to the data using produce policies rather than consume policies for maximum efficiency. - name: Event Gateway Virtual Cluster Consume Policies description: | Consume policies operate on Kafka messages as they are read from a Kafka cluster. Transformations may be applied at consume time, but they are applied once per Consumer. Where possible, transofmrations should be applied as a Produce policy - name: Event Gateway DataPlane Certificates description: | DataPlane certificates control how your running Event Gateway instances connect to the Control Plane - name: Event Gateway Static Keys description: | Static Keys are used by the Encrypt and Decrypt policies to encrypt data at rest - name: Event Gateway Schema Registries description: | Configure a schema registry that can be used to validate payloads when producing/consuming messages - name: Event Gateway TLS Trust Bundles description: | A TLS trust bundle defines a set of trusted certificate authorities (CAs) used for client certificate verification during mutual TLS (mTLS). Trust bundles are referenced by TLS listener policies to determine which client certificates are accepted. - name: Auth Server description: 'Auth Servers expose an OAuth 2.0 and OpenID Connect server interface for generating access tokens. The management API will give you the ability to create, configure and manage multiple Auth Servers per Konnect organization. Auth Servers are a regional Konnect entity.' - name: Auth Server Clients description: 'Clients represent the identity of machines, such as microservices, mobile apps, or scripts entity. The management API will give you the ability to create, configure and manage multiple Clients per Auth Server.' - name: Auth Server Claims description: 'Claims are statements about the Client, included in tokens issued by the Auth Server. The management API will give you the ability to create, configure and manage multiple Claims per Auth Server, and include them in tokens based on the requested Scopes.' - name: Auth Server Scopes description: 'Scopes define the extent of access that an access token grants to a Client. The management API will give you the ability to create, configure and manage multiple Scopes per Auth Server, and restrict their usage by Client.' - description: DP Certificates name: DP Certificates - description: Custom Plugin Schemas name: Custom Plugin Schemas - description: Config Stores name: Config Stores - description: Config Store Secrets name: Config Store Secrets - name: ACLs - name: API-keys - name: Basic-auth credentials - 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: | 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. <br><br> Certificates are optionally associated with SNI objects to tie a cert/key pair to one or more hostnames. <br><br> If intermediate certificates are required in addition to the main certificate, they should be concatenated together into one string. name: Certificates - name: Cloned Plugins - 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: | 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 - name: CustomPlugins - name: GraphQL Cost Decorations - name: HMAC-auth credentials - name: JWTs - 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 - 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 - name: MTLS-auth credentials - description: 'Some entities in Kong Gateway share common configuration settings that often need to be repeated. For example, multiple plugins that connect to Redis may require the same connection settings. Without Partials, you would need to replicate this configuration across all plugins. If the settings change, you would need to update each plugin individually.' name: Partials - 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://developer.konghq.com/plugins/). <br><br> 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. name: Plugins - 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. <br><br> 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. <br><br> Depending on the protocol, one of the following attributes must be set: <br> - `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` <br> A route can't have both `tls` and `tls_passthrough` protocols at same time. <br><br> Learn more about the router: - [Configure routes using expressions](https://developer.konghq.com/gateway/routing/expressions/) name: Routes - description: |- An SNI object represents a many-to-one mapping of hostnames to a certificate. <br><br> 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: | 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. <br><br> 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. <br><br> 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 [Route documentation](https://developer.konghq.com/gateway/entities/route/) for a detailed explanation of how Kong proxies traffic. <br><br> Services can be both [tagged and filtered by tags](https://developer.konghq.com/admin-api/). name: Services - description: | A target is an IP address or 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. <br><br> To disable a target, post a new one with `weight=0`, or use the `DELETE` method to accomplish the same. name: Targets - description: |- The upstream object represents a virtual hostname and can be used to load balance incoming requests over multiple services (targets). <br><br> An upstream also includes a [health checker](https://developer.konghq.com/gateway/traffic-control/health-checks-circuit-breakers/), 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://developer.konghq.com/gateway/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. <br><br> 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. <br><br> Secrets rotation can be managed using [TTLs](https://developer.konghq.com/gateway/entities/vault/). name: Vaults externalDocs: description: Documentation for Kong Gateway and its APIs url: 'https://developer.konghq.com' security: - personalAccessToken: [] - systemAccountAccessToken: [] - konnectAccessToken: [] - serviceAccessToken: [] x-speakeasy-retries: strategy: backoff backoff: initialInterval: 500 maxInterval: 60000 maxElapsedTime: 3600000 exponent: 1.5 statusCodes: - 429 retryConnectionErrors: true