openapi: 3.1.0 info: title: Konnect API - Go SDK version: 3.15.0 description: The Konnect platform API contact: name: Kong Inc url: 'https://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' x-oas-source: kong/platform-api@ x-oas-source-link: 'https://github.com/Kong/platform-api/commit/' 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' paths: /v1/ai-gateways: get: operationId: list-ai-gateways summary: List AI Gateways description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns a list of AI Gateways in the organization. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' responses: '200': $ref: '#/components/responses/ListAIGatewaysResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateways post: x-speakeasy-entity-operation: terraform-resource: AIGateway#create terraform-datasource: null operationId: create-ai-gateway summary: Create an AI Gateway description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Creates a new AI Gateway in the organization. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateAIGatewayRequest' responses: '201': $ref: '#/components/responses/CreateAIGatewayResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/Conflict' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateways '/v1/ai-gateways/{gatewayId}': parameters: - $ref: '#/components/parameters/AIGatewayId' get: x-speakeasy-entity-operation: terraform-resource: AIGateway#read terraform-datasource: null operationId: get-ai-gateway summary: Get an AI Gateway description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns the details of a specific AI Gateway. responses: '200': $ref: '#/components/responses/GetAIGatewayResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateways put: x-speakeasy-entity-operation: terraform-resource: 'AIGateway#create,update' terraform-datasource: null operationId: update-ai-gateway summary: Update an AI Gateway description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Updates the configuration of an existing AI Gateway. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateAIGatewayRequest' responses: '200': $ref: '#/components/responses/UpdateAIGatewayResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateways delete: x-speakeasy-entity-operation: terraform-resource: AIGateway#delete terraform-datasource: null operationId: delete-ai-gateway summary: Delete an AI Gateway description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Deletes an existing AI Gateway. responses: '204': description: AI Gateway deleted successfully. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateways '/v1/ai-gateways/{gatewayId}/agents': parameters: - $ref: '#/components/parameters/AIGatewayId' get: operationId: list-ai-gateway-agents summary: List AI Gateway Agents description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns a list of all agents registered in the AI Gateway. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' responses: '200': $ref: '#/components/responses/ListAIGatewayAgentsResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Agents post: x-speakeasy-entity-operation: terraform-resource: AIGatewayAgent#create terraform-datasource: null operationId: create-ai-gateway-agent summary: Create an AI Gateway Agent description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Creates a new agent for the AI Gateway. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateAIGatewayAgentRequest' responses: '201': $ref: '#/components/responses/CreateAIGatewayAgentResponse' '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' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Agents '/v1/ai-gateways/{gatewayId}/agents/{agentIdOrName}': parameters: - $ref: '#/components/parameters/AIGatewayId' - $ref: '#/components/parameters/AIGatewayAgentIdOrName' get: x-speakeasy-entity-operation: terraform-resource: AIGatewayAgent#read terraform-datasource: null operationId: get-ai-gateway-agent summary: Get an AI Gateway Agent description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns the details of a specific AI Gateway agent. responses: '200': $ref: '#/components/responses/GetAIGatewayAgentResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Agents put: x-speakeasy-entity-operation: terraform-resource: 'AIGatewayAgent#create,update' terraform-datasource: null operationId: update-ai-gateway-agent summary: Update an AI Gateway Agent description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Updates the configuration of an existing AI Gateway agent. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateAIGatewayAgentRequest' responses: '200': $ref: '#/components/responses/UpdateAIGatewayAgentResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Agents delete: x-speakeasy-entity-operation: terraform-resource: AIGatewayAgent#delete terraform-datasource: null operationId: delete-ai-gateway-agent summary: Delete an AI Gateway Agent description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Removes a specific AI Gateway agent. responses: '204': description: Agent deleted successfully. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Agents '/v1/ai-gateways/{gatewayId}/config-stores': parameters: - $ref: '#/components/parameters/AIGatewayId' get: operationId: list-ai-gateway-config-stores summary: List AI Gateway Config Stores description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns a list of Config Stores associated with the AI Gateway. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' responses: '200': $ref: '#/components/responses/ListAIGatewayConfigStoresResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Config Stores post: x-speakeasy-entity-operation: terraform-resource: AIGatewayConfigStore#create terraform-datasource: null operationId: create-ai-gateway-config-store summary: Create an AI Gateway Config Store description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Creates a new Config Store for the AI Gateway. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateAIGatewayConfigStoreRequest' responses: '201': $ref: '#/components/responses/CreateAIGatewayConfigStoreResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/Conflict' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Config Stores '/v1/ai-gateways/{gatewayId}/config-stores/{configStoreIdOrName}': parameters: - $ref: '#/components/parameters/AIGatewayId' - $ref: '#/components/parameters/AIGatewayConfigStoreIdOrName' get: x-speakeasy-entity-operation: terraform-resource: AIGatewayConfigStore#read terraform-datasource: null operationId: get-ai-gateway-config-store summary: Get an AI Gateway Config Store description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns the details of a specific AI Gateway Config Store. responses: '200': $ref: '#/components/responses/GetAIGatewayConfigStoreResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Config Stores put: x-speakeasy-entity-operation: terraform-resource: 'AIGatewayConfigStore#create,update' terraform-datasource: null operationId: update-ai-gateway-config-store summary: Update an AI Gateway Config Store description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Updates the configuration of an existing AI Gateway Config Store. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateAIGatewayConfigStoreRequest' responses: '200': $ref: '#/components/responses/UpdateAIGatewayConfigStoreResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Config Stores delete: x-speakeasy-entity-operation: terraform-resource: AIGatewayConfigStore#delete terraform-datasource: null operationId: delete-ai-gateway-config-store summary: Delete an AI Gateway Config Store description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Removes a specific AI Gateway Config Store. parameters: - name: force in: query description: 'If true, delete the Config Store and all its secrets. If false, deletion is rejected when secrets are still linked to the Config Store.' schema: type: boolean default: false responses: '204': description: Config Store deleted successfully. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Config Stores '/v1/ai-gateways/{gatewayId}/config-stores/{configStoreIdOrName}/secrets': parameters: - $ref: '#/components/parameters/AIGatewayId' - $ref: '#/components/parameters/AIGatewayConfigStoreIdOrName' get: operationId: list-ai-gateway-config-store-secrets summary: List AI Gateway Config Store Secrets description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns a collection of all secrets for an AI Gateway Config Store. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' responses: '200': $ref: '#/components/responses/ListAIGatewayConfigStoreSecretsResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Config Stores post: x-speakeasy-entity-operation: terraform-resource: AIGatewayConfigStoreSecret#create terraform-datasource: null operationId: create-ai-gateway-config-store-secret summary: Create an AI Gateway Config Store Secret description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Creates a secret for an AI Gateway Config Store. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateAIGatewayConfigStoreSecretRequest' responses: '201': $ref: '#/components/responses/CreateAIGatewayConfigStoreSecretResponse' '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' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Config Stores '/v1/ai-gateways/{gatewayId}/config-stores/{configStoreIdOrName}/secrets/{key}': parameters: - $ref: '#/components/parameters/AIGatewayId' - $ref: '#/components/parameters/AIGatewayConfigStoreIdOrName' - name: key in: path description: Config Store Secret key. required: true schema: $ref: '#/components/schemas/AIGatewayConfigStoreSecretKey' get: x-speakeasy-entity-operation: terraform-resource: AIGatewayConfigStoreSecret#read terraform-datasource: null operationId: get-ai-gateway-config-store-secret summary: Get an AI Gateway Config Store Secret description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns the secret entity for the Config Store. Secret values once stored cannot be retrieved. responses: '200': $ref: '#/components/responses/GetAIGatewayConfigStoreSecretResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Config Stores put: x-speakeasy-entity-operation: terraform-resource: AIGatewayConfigStoreSecret#update terraform-datasource: null operationId: update-ai-gateway-config-store-secret summary: Update an AI Gateway Config Store Secret description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Updates a secret for an AI Gateway Config Store. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateAIGatewayConfigStoreSecretRequest' responses: '200': $ref: '#/components/responses/UpdateAIGatewayConfigStoreSecretResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Config Stores delete: x-speakeasy-entity-operation: terraform-resource: AIGatewayConfigStoreSecret#delete terraform-datasource: null operationId: delete-ai-gateway-config-store-secret summary: Delete an AI Gateway Config Store Secret description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Removes a secret from an AI Gateway Config Store. responses: '204': description: Config Store Secret deleted successfully. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Config Stores '/v1/ai-gateways/{gatewayId}/consumer-groups': parameters: - $ref: '#/components/parameters/AIGatewayId' get: operationId: list-ai-gateway-consumer-groups summary: List AI Gateway Consumer Groups description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns a list of all consumer groups for the AI Gateway. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' responses: '200': $ref: '#/components/responses/ListAIGatewayConsumerGroupsResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Consumer Groups post: x-speakeasy-entity-operation: terraform-resource: AIGatewayConsumerGroup#create terraform-datasource: null operationId: create-ai-gateway-consumer-group summary: Create an AI Gateway Consumer Group description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Creates a new Consumer Group for the AI Gateway. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateAIGatewayConsumerGroupRequest' responses: '201': $ref: '#/components/responses/CreateAIGatewayConsumerGroupResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/Conflict' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Consumer Groups '/v1/ai-gateways/{gatewayId}/consumer-groups/{consumerGroupId}/consumers': parameters: - $ref: '#/components/parameters/AIGatewayId' - $ref: '#/components/parameters/AIGatewayConsumerGroupId' get: operationId: list-ai-gateway-consumers-in-consumer-group summary: List AI Gateway Consumers in a Consumer Group description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns a list of all consumers in the given consumer group for the AI Gateway. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' responses: '200': $ref: '#/components/responses/ListAIGatewayConsumersResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Consumer Groups post: x-speakeasy-entity-operation: terraform-resource: AIGatewayConsumerGroupConsumers#add terraform-datasource: null operationId: add-ai-gateway-consumer-to-consumer-group summary: Add a Consumer to a Consumer Group description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Add a consumer to an AI Gateway Consumer Group. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AddAIGatewayConsumerToGroupRequest' responses: '201': $ref: '#/components/responses/AddAIGatewayConsumerToGroupResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Consumer Groups '/v1/ai-gateways/{gatewayId}/consumer-groups/{consumerGroupId}/consumers/{consumerIdOrName}': parameters: - $ref: '#/components/parameters/AIGatewayId' - $ref: '#/components/parameters/AIGatewayConsumerGroupId' - $ref: '#/components/parameters/AIGatewayConsumerIdOrName' delete: x-speakeasy-entity-operation: terraform-resource: AIGatewayConsumerGroupConsumers#remove terraform-datasource: null operationId: remove-ai-gateway-consumer-from-consumer-group summary: Remove a Consumer from a Consumer Group description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Remove a consumer from an AI Gateway Consumer Group. responses: '204': description: Consumer removed from group successfully. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Consumer Groups '/v1/ai-gateways/{gatewayId}/consumer-groups/{consumerGroupIdOrName}': parameters: - $ref: '#/components/parameters/AIGatewayId' - $ref: '#/components/parameters/AIGatewayConsumerGroupIdOrName' get: x-speakeasy-entity-operation: terraform-resource: AIGatewayConsumerGroup#read terraform-datasource: null operationId: get-ai-gateway-consumer-group summary: Get an AI Gateway Consumer Group description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns the details of a specific AI Gateway Consumer Group. responses: '200': $ref: '#/components/responses/GetAIGatewayConsumerGroupResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Consumer Groups put: x-speakeasy-entity-operation: terraform-resource: 'AIGatewayConsumerGroup#create,update' terraform-datasource: null operationId: update-ai-gateway-consumer-group summary: Update an AI Gateway Consumer Group description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Updates the configuration of an existing AI Gateway Consumer Group. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateAIGatewayConsumerGroupRequest' responses: '200': $ref: '#/components/responses/UpdateAIGatewayConsumerGroupResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Consumer Groups delete: x-speakeasy-entity-operation: terraform-resource: AIGatewayConsumerGroup#delete terraform-datasource: null operationId: delete-ai-gateway-consumer-group summary: Delete an AI Gateway Consumer Group description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Removes a specific AI Gateway Consumer Group. responses: '204': description: Consumer Group deleted successfully. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Consumer Groups '/v1/ai-gateways/{gatewayId}/consumers': parameters: - $ref: '#/components/parameters/AIGatewayId' get: operationId: list-ai-gateway-consumers summary: List AI Gateway Consumers description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns a list of all consumers for the AI Gateway. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' responses: '200': $ref: '#/components/responses/ListAIGatewayConsumersResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Consumers post: x-speakeasy-entity-operation: terraform-resource: AIGatewayConsumer#create terraform-datasource: null operationId: create-ai-gateway-consumer summary: Create an AI Gateway Consumer description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Creates a new consumer for the AI Gateway. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateAIGatewayConsumerRequest' responses: '201': $ref: '#/components/responses/CreateAIGatewayConsumerResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/Conflict' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Consumers '/v1/ai-gateways/{gatewayId}/consumers/{consumerId}/credentials': parameters: - $ref: '#/components/parameters/AIGatewayId' - $ref: '#/components/parameters/AIGatewayConsumerId' get: operationId: list-ai-gateway-consumer-credentials summary: List AI Gateway Consumer Credentials description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns a list of all credentials for an AI Gateway consumer. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' responses: '200': $ref: '#/components/responses/ListAIGatewayConsumerCredentialsResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Consumers post: x-speakeasy-entity-operation: terraform-resource: AIGatewayConsumerCredential#create terraform-datasource: null operationId: create-ai-gateway-consumer-credential summary: Create an AI Gateway Consumer Credential description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Creates a new credential for an AI Gateway consumer. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateAIGatewayConsumerCredentialRequest' responses: '201': $ref: '#/components/responses/CreateAIGatewayConsumerCredentialResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/Conflict' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Consumers '/v1/ai-gateways/{gatewayId}/consumers/{consumerId}/credentials/{credentialId}': parameters: - $ref: '#/components/parameters/AIGatewayId' - $ref: '#/components/parameters/AIGatewayConsumerId' - $ref: '#/components/parameters/AIGatewayConsumerCredentialId' get: x-speakeasy-entity-operation: terraform-resource: AIGatewayConsumerCredential#read terraform-datasource: null operationId: get-ai-gateway-consumer-credential summary: Get an AI Gateway Consumer Credential description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns the details of a specific credential for an AI Gateway consumer. responses: '200': $ref: '#/components/responses/GetAIGatewayConsumerCredentialResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Consumers delete: x-speakeasy-entity-operation: terraform-resource: AIGatewayConsumerCredential#delete terraform-datasource: null operationId: delete-ai-gateway-consumer-credential summary: Delete an AI Gateway Consumer Credential description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Removes a specific credential for an AI Gateway consumer. responses: '204': description: Credential deleted successfully. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Consumers '/v1/ai-gateways/{gatewayId}/consumers/{consumerIdOrName}': parameters: - $ref: '#/components/parameters/AIGatewayId' - $ref: '#/components/parameters/AIGatewayConsumerIdOrName' get: x-speakeasy-entity-operation: terraform-resource: AIGatewayConsumer#read terraform-datasource: null operationId: get-ai-gateway-consumer summary: Get an AI Gateway Consumer description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns the details of a specific AI Gateway consumer. responses: '200': $ref: '#/components/responses/GetAIGatewayConsumerResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Consumers put: x-speakeasy-entity-operation: terraform-resource: 'AIGatewayConsumer#create,update' terraform-datasource: null operationId: update-ai-gateway-consumer summary: Update an AI Gateway Consumer description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Updates the configuration of an existing AI Gateway consumer. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateAIGatewayConsumerRequest' responses: '200': $ref: '#/components/responses/UpdateAIGatewayConsumerResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Consumers delete: x-speakeasy-entity-operation: terraform-resource: AIGatewayConsumer#delete terraform-datasource: null operationId: delete-ai-gateway-consumer summary: Delete an AI Gateway Consumer description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Removes a specific AI Gateway consumer. responses: '204': description: Consumer deleted successfully. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Consumers '/v1/ai-gateways/{gatewayId}/consumers/{consumerIdOrName}/consumer-groups': parameters: - $ref: '#/components/parameters/AIGatewayId' - $ref: '#/components/parameters/AIGatewayConsumerIdOrName' get: x-speakeasy-entity-operation: terraform-resource: AIGatewayConsumerConsumerGroups#read terraform-datasource: null operationId: list-ai-gateway-consumer-groups-for-consumer summary: List Consumer Groups a Consumer belongs to description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. List AI Gateway Consumer Groups an Consumer belongs to parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' responses: '200': $ref: '#/components/responses/ListAIGatewayConsumerGroupsResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Consumers put: x-speakeasy-entity-operation: terraform-resource: 'AIGatewayConsumerConsumerGroups#create,update' terraform-datasource: null operationId: update-ai-gateway-consumer-groups-for-consumer summary: Updates Consumer Groups a Consumer belongs to description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Updates AI Gateway Consumer Groups a Consumer belongs to requestBody: required: true content: application/json: schema: type: object properties: consumer_groups: type: array items: type: string description: Consumer Group names responses: '201': description: Consumer Group names added to the consumer content: application/json: schema: type: object properties: consumer_groups: type: array items: type: string description: Consumer Group names '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Consumers '/v1/ai-gateways/{gatewayId}/data-plane-certificates': parameters: - $ref: '#/components/parameters/AIGatewayId' get: x-speakeasy-entity-operation: terraform-resource: AIGatewayDataPlaneCertificate#read terraform-datasource: null operationId: list-ai-gateway-data-plane-certificates summary: List AI Gateway DataPlane Certificates description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns a list of DataPlane certificates that are associated to this AI Gateway. A DataPlane certificate allows DataPlanes configured with the certificate and corresponding private key to establish connection with this AI Gateway. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' responses: '200': $ref: '#/components/responses/ListAIGatewayDataPlaneCertificatesResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway DataPlane Certificates post: x-speakeasy-entity-operation: terraform-resource: AIGatewayDataPlaneCertificate#create terraform-datasource: null operationId: create-ai-gateway-data-plane-certificate summary: Create New AI Gateway DataPlane Certificate description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Create a new DataPlane Certificate for this AI Gateway. A DataPlane certificate allows DataPlanes configured with the certificate and corresponding private key to establish connection with this AI Gateway. requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateAIGatewayDataPlaneCertificateRequest' responses: '201': $ref: '#/components/responses/CreateAIGatewayDataPlaneCertificateResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway DataPlane Certificates '/v1/ai-gateways/{gatewayId}/data-plane-certificates/{certificateId}': parameters: - $ref: '#/components/parameters/AIGatewayId' - $ref: '#/components/parameters/AIGatewayDataPlaneCertificateId' get: x-speakeasy-entity-operation: terraform-resource: AIGatewayDataPlaneCertificate#read terraform-datasource: null operationId: get-ai-gateway-data-plane-certificate summary: Get a DataPlane Certificate description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Retrieve a DataPlane certificate associated to this AI Gateway. A DataPlane certificate allows DataPlanes configured with the certificate and corresponding private key to establish connection with this AI Gateway. responses: '200': $ref: '#/components/responses/GetAIGatewayDataPlaneCertificateResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway DataPlane Certificates delete: x-speakeasy-entity-operation: terraform-resource: AIGatewayDataPlaneCertificate#delete terraform-datasource: null operationId: delete-ai-gateway-data-plane-certificate summary: Delete AI Gateway DataPlane Certificate description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Remove a DataPlane client certificate associated to this AI Gateway. Removing a DataPlane certificate would invalidate any DataPlanes currently connected to this AI Gateway using this certificate. 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' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway DataPlane Certificates '/v1/ai-gateways/{gatewayId}/expected-config-version': get: x-speakeasy-entity-operation: terraform-resource: AIGatewayExpectedConfigVersion#read terraform-datasource: null operationId: get-ai-gateway-expected-config-version summary: Get the Expected Config Version description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Retrieve the expected config version for this AI Gateway. The expected config version can be used to verify if the config version of a data plane node is up to date with the AI Gateway. The config version will be the same if they are in sync. responses: '200': $ref: '#/components/responses/GetAIGatewayExpectedConfigVersionResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Nodes parameters: - $ref: '#/components/parameters/AIGatewayId' '/v1/ai-gateways/{gatewayId}/identity': parameters: - $ref: '#/components/parameters/AIGatewayId' get: operationId: list-ai-gateway-identity-providers summary: List AI Gateway Identity Providers description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns a list of identity providers configured for the AI Gateway. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' responses: '200': $ref: '#/components/responses/ListAIGatewayIdentityProvidersResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Identity Providers post: x-speakeasy-entity-operation: terraform-resource: AIGatewayIdentityProvider#create terraform-datasource: null operationId: create-ai-gateway-identity-provider summary: Create an AI Gateway Identity Provider description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Registers a new identity provider for the AI Gateway. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateAIGatewayIdentityProviderRequest' responses: '201': $ref: '#/components/responses/CreateAIGatewayIdentityProviderResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/Conflict' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Identity Providers '/v1/ai-gateways/{gatewayId}/identity/{identityProviderIdOrName}': parameters: - $ref: '#/components/parameters/AIGatewayId' - $ref: '#/components/parameters/AIGatewayIdentityProviderIdOrName' get: x-speakeasy-entity-operation: terraform-resource: AIGatewayIdentityProvider#read terraform-datasource: null operationId: get-ai-gateway-identity-provider summary: Get an AI Gateway Identity Provider description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns the details of a specific AI Gateway identity provider. responses: '200': $ref: '#/components/responses/GetAIGatewayIdentityProviderResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Identity Providers put: x-speakeasy-entity-operation: terraform-resource: 'AIGatewayIdentityProvider#create,update' terraform-datasource: null operationId: update-ai-gateway-identity-provider summary: Update an AI Gateway Identity Provider description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Updates the configuration of an existing AI Gateway Identity provider. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateAIGatewayIdentityProviderRequest' responses: '200': $ref: '#/components/responses/UpdateAIGatewayIdentityProviderResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Identity Providers delete: x-speakeasy-entity-operation: terraform-resource: AIGatewayIdentityProvider#delete terraform-datasource: null operationId: delete-ai-gateway-identity-provider summary: Delete an AI Gateway Identity Provider description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Removes a specific AI Gateway Identity provider. responses: '204': description: Identity provider deleted successfully. '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' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Identity Providers '/v1/ai-gateways/{gatewayId}/mcp-servers': parameters: - $ref: '#/components/parameters/AIGatewayId' get: operationId: list-ai-gateway-mcp-servers summary: List MCP Servers description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns a list of MCP Servers configured for the AI Gateway. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' responses: '200': $ref: '#/components/responses/ListAIGatewayMCPServersResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway MCP Servers post: x-speakeasy-entity-operation: terraform-resource: AIGatewayMCPServer#create terraform-datasource: null operationId: create-ai-gateway-mcp-server summary: Create an MCP Server description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Registers a new MCP Server for the AI Gateway. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateAIGatewayMCPServerRequest' responses: '201': $ref: '#/components/responses/CreateAIGatewayMCPServerResponse' '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' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway MCP Servers '/v1/ai-gateways/{gatewayId}/mcp-servers/{mcpServerIdOrName}': parameters: - $ref: '#/components/parameters/AIGatewayId' - $ref: '#/components/parameters/AIGatewayMcpServerIdOrName' get: x-speakeasy-entity-operation: terraform-resource: AIGatewayMCPServer#read terraform-datasource: null operationId: get-ai-gateway-mcp-server summary: Get an MCP Server description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns the details of a specific MCP Server. responses: '200': $ref: '#/components/responses/GetMCPServerResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway MCP Servers put: x-speakeasy-entity-operation: terraform-resource: 'AIGatewayMCPServer#create,update' terraform-datasource: null operationId: update-ai-gateway-mcp-server summary: Update an MCP Server description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Updates the configuration of an existing MCP Server. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateAIGatewayMCPServerRequest' responses: '200': $ref: '#/components/responses/UpdateAIGatewayMCPServerResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway MCP Servers delete: x-speakeasy-entity-operation: terraform-resource: AIGatewayMCPServer#delete terraform-datasource: null operationId: delete-ai-gateway-mcp-server summary: Delete an MCP Server description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Removes a specific MCP Server from the AI Gateway. responses: '204': description: MCP Server deleted successfully. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway MCP Servers '/v1/ai-gateways/{gatewayId}/model-providers': parameters: - $ref: '#/components/parameters/AIGatewayId' get: operationId: list-ai-gateway-model-providers summary: List AI Gateway Model Providers description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns a list of model providers configured for the AI Gateway. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' responses: '200': $ref: '#/components/responses/ListAIGatewayModelProvidersResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Model Providers post: x-speakeasy-entity-operation: terraform-resource: AIGatewayModelProvider#create terraform-datasource: null operationId: create-ai-gateway-model-provider summary: Create an AI Gateway Model Provider description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Registers a new model provider for the AI Gateway. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateAIGatewayModelProviderRequest' responses: '201': $ref: '#/components/responses/CreateAIGatewayModelProviderResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/Conflict' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Model Providers '/v1/ai-gateways/{gatewayId}/model-providers/{modelProviderIdOrName}': parameters: - $ref: '#/components/parameters/AIGatewayId' - $ref: '#/components/parameters/AIGatewayModelProviderIdOrName' get: x-speakeasy-entity-operation: terraform-resource: AIGatewayModelProvider#read terraform-datasource: null operationId: get-ai-gateway-model-provider summary: Get an AI Gateway Model Provider description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns the details of a specific AI Gateway model provider. responses: '200': $ref: '#/components/responses/GetAIGatewayModelProviderResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Model Providers put: x-speakeasy-entity-operation: terraform-resource: 'AIGatewayModelProvider#create,update' terraform-datasource: null operationId: update-ai-gateway-model-provider summary: Update an AI Gateway Model Provider description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Updates the configuration of an existing AI Gateway model provider. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateAIGatewayModelProviderRequest' responses: '200': $ref: '#/components/responses/UpdateAIGatewayModelProviderResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Model Providers delete: x-speakeasy-entity-operation: terraform-resource: AIGatewayModelProvider#delete terraform-datasource: null operationId: delete-ai-gateway-model-provider summary: Delete an AI Gateway Model Provider description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Removes a specific AI Gateway model provider. responses: '204': description: Model provider deleted successfully. '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' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Model Providers '/v1/ai-gateways/{gatewayId}/models': parameters: - $ref: '#/components/parameters/AIGatewayId' get: operationId: list-ai-gateway-models summary: List AI Gateway Models description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns a list of all models registered in the AI Gateway. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' responses: '200': $ref: '#/components/responses/ListAIGatewayModelsResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Models post: x-speakeasy-entity-operation: terraform-resource: AIGatewayModel#create terraform-datasource: null operationId: create-ai-gateway-model summary: Create an AI Gateway Model description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Registers a new model with routing, capabilities, and target backends. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateAIGatewayModelRequest' responses: '201': $ref: '#/components/responses/CreateAIGatewayModelResponse' '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' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Models '/v1/ai-gateways/{gatewayId}/models/{modelIdOrName}': parameters: - $ref: '#/components/parameters/AIGatewayId' - $ref: '#/components/parameters/AIGatewayModelIdOrName' get: x-speakeasy-entity-operation: terraform-resource: AIGatewayModel#read terraform-datasource: null operationId: get-ai-gateway-model summary: Get an AI Gateway Model description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns the details of a specific AI Gateway model. responses: '200': $ref: '#/components/responses/GetAIGatewayModelResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Models put: x-speakeasy-entity-operation: terraform-resource: 'AIGatewayModel#create,update' terraform-datasource: null operationId: update-ai-gateway-model summary: Update an AI Gateway Model description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Updates the configuration of an existing AI Gateway model. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateAIGatewayModelRequest' responses: '200': $ref: '#/components/responses/UpdateAIGatewayModelResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Models delete: x-speakeasy-entity-operation: terraform-resource: AIGatewayModel#delete terraform-datasource: null operationId: delete-ai-gateway-model summary: Delete an AI Gateway Model description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Removes a specific AI Gateway model. responses: '204': description: Model deleted successfully. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Models '/v1/ai-gateways/{gatewayId}/nodes': get: operationId: list-ai-gateway-nodes summary: List Nodes description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns a list of nodes associated with the specified AI Gateway. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' responses: '200': $ref: '#/components/responses/ListAIGatewayDataPlaneNodesResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Nodes parameters: - $ref: '#/components/parameters/AIGatewayId' '/v1/ai-gateways/{gatewayId}/nodes/{dataPlaneNodeId}': parameters: - $ref: '#/components/parameters/AIGatewayId' - $ref: '#/components/parameters/AIGatewayDataPlaneNodeId' get: x-speakeasy-entity-operation: terraform-resource: AIGatewayNode#read terraform-datasource: null operationId: get-ai-gateway-node summary: Get a Node description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns information about a specific node associated with the AI Gateway. responses: '200': $ref: '#/components/responses/GetAIGatewayDataPlaneNodeResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Nodes '/v1/ai-gateways/{gatewayId}/policies': parameters: - $ref: '#/components/parameters/AIGatewayId' get: operationId: list-ai-gateway-policies summary: List AI Gateway Policies description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns a list of policies configured for the AI Gateway. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' responses: '200': $ref: '#/components/responses/ListAIGatewayPoliciesResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Policies post: x-speakeasy-entity-operation: terraform-resource: AIGatewayPolicy#create terraform-datasource: null operationId: create-ai-gateway-policy summary: Create an AI Gateway Policy description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Registers a new policy for the AI Gateway. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateAIGatewayPolicyRequest' responses: '201': $ref: '#/components/responses/CreateAIGatewayPolicyResponse' '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' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Policies '/v1/ai-gateways/{gatewayId}/policies/{policyIdOrName}': parameters: - $ref: '#/components/parameters/AIGatewayId' - $ref: '#/components/parameters/AIGatewayPolicyIdOrName' get: x-speakeasy-entity-operation: terraform-resource: AIGatewayPolicy#read terraform-datasource: null operationId: get-ai-gateway-policy summary: Get an AI Gateway Policy description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns the details of a specific AI Gateway policy. responses: '200': $ref: '#/components/responses/GetAIGatewayPolicyResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Policies put: x-speakeasy-entity-operation: terraform-resource: 'AIGatewayPolicy#create,update' terraform-datasource: null operationId: update-ai-gateway-policy summary: Update an AI Gateway Policy description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Updates the configuration of an existing AI Gateway policy. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateAIGatewayPolicyRequest' responses: '200': $ref: '#/components/responses/UpdateAIGatewayPolicyResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Policies delete: x-speakeasy-entity-operation: terraform-resource: AIGatewayPolicy#delete terraform-datasource: null operationId: delete-ai-gateway-policy summary: Delete an AI Gateway Policy description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Removes a specific AI Gateway policy. responses: '204': description: Policy deleted successfully. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Policies '/v1/ai-gateways/{gatewayId}/vaults': parameters: - $ref: '#/components/parameters/AIGatewayId' get: operationId: list-ai-gateway-vaults summary: List AI Gateway Vaults description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns a list of vaults associated with the AI Gateway. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' responses: '200': $ref: '#/components/responses/ListAIGatewayVaultsResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Vaults post: x-speakeasy-entity-operation: terraform-resource: AIGatewayVault#create terraform-datasource: null operationId: create-ai-gateway-vault summary: Create an AI Gateway Vault description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Registers a new vault for the AI Gateway. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateAIGatewayVaultRequest' responses: '201': $ref: '#/components/responses/CreateAIGatewayVaultResponse' '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' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Vaults '/v1/ai-gateways/{gatewayId}/vaults/{vaultIdOrName}': parameters: - $ref: '#/components/parameters/AIGatewayId' - $ref: '#/components/parameters/AIGatewayVaultIdOrName' get: x-speakeasy-entity-operation: terraform-resource: AIGatewayVault#read terraform-datasource: null operationId: get-ai-gateway-vault summary: Get an AI Gateway Vault description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns the details of a specific AI Gateway vault. responses: '200': $ref: '#/components/responses/GetAIGatewayVaultResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Vaults put: x-speakeasy-entity-operation: terraform-resource: 'AIGatewayVault#create,update' terraform-datasource: null operationId: update-ai-gateway-vault summary: Update an AI Gateway Vault description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Updates the configuration of an existing AI Gateway vault. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateAIGatewayVaultRequest' responses: '200': $ref: '#/components/responses/UpdateAIGatewayVaultResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Vaults delete: x-speakeasy-entity-operation: terraform-resource: AIGatewayVault#delete terraform-datasource: null operationId: delete-ai-gateway-vault summary: Delete an AI Gateway Vault description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Removes a specific AI Gateway vault. responses: '204': description: Vault deleted successfully. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' tags: - AI Gateway Vaults '/v1/apis/{apiId}/service-mappings': parameters: - name: apiId in: path description: ID of the API. required: true schema: type: string format: uuid get: operationId: list-service-mappings-for-api summary: List Service Mappings for an API description: Returns a paginated collection of Service mappings for the given API. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/CatalogServiceApiMappingSort' - $ref: '#/components/parameters/CatalogApiServiceMappingFilter' responses: '200': $ref: '#/components/responses/ListCatalogServiceApiMappingsResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Catalog Service API Mappings /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 get: operationId: list-catalog-services summary: List Services description: Returns a paginated collection of services. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/CatalogServiceFilter' - $ref: '#/components/parameters/CatalogServiceSort' responses: '200': $ref: '#/components/responses/ListCatalogServicesResponse' '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/catalog-services/{id}/resources': parameters: - name: id in: path description: The `id` of the service. required: true schema: type: string example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 get: operationId: list-catalog-service-resources summary: List Service Resources description: Returns a paginated collection of resources mapped to a service. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/CatalogResourceRefFilter' responses: '200': $ref: '#/components/responses/ListCatalogServiceResourcesResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Catalog Service Resources '/v1/catalog-services/{id}/scorecards': parameters: - name: id in: path description: The `id` of the service. required: true schema: type: string example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 get: operationId: list-catalog-service-scorecards summary: List Catalog Service Scorecards description: Returns a paginated collection of scorecards targeting the given service. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/ScorecardFilter' - $ref: '#/components/parameters/ScorecardSort' responses: '200': $ref: '#/components/responses/ListCatalogServiceScorecardsResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Scorecards '/v1/catalog-services/{serviceId}/api-mappings': parameters: - name: serviceId in: path description: The `id` of the service. required: true schema: type: string example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 get: operationId: list-catalog-service-api-mappings summary: List API Mappings for a Service description: Returns a paginated collection of API mappings for the given service. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/CatalogServiceApiMappingSort' - $ref: '#/components/parameters/CatalogServiceApiMappingFilter' responses: '200': $ref: '#/components/responses/ListCatalogServiceApiMappingsResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Catalog Service API Mappings post: operationId: create-catalog-service-api-mapping summary: Create API Mapping for a Service description: Creates a new API mapping for the given service. requestBody: $ref: '#/components/requestBodies/CreateCatalogServiceApiMappingBody' responses: '201': $ref: '#/components/responses/CatalogServiceApiMappingResponse' '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 Service API Mappings '/v1/catalog-services/{serviceId}/api-mappings/{mappingId}': parameters: - name: serviceId in: path description: The `id` of the service. required: true schema: type: string example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 - name: mappingId in: path description: ID of the catalog service API mapping. required: true schema: type: string format: uuid example: d277faad-ed4e-4c56-a0fb-acce065dee34 get: operationId: get-catalog-service-api-mapping summary: Get API Mapping for a Service description: Returns information about a specific API mapping for the given service. responses: '200': $ref: '#/components/responses/CatalogServiceApiMappingResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Catalog Service API Mappings delete: operationId: delete-catalog-service-api-mapping summary: Delete API Mapping for a Service description: Deletes a specific API mapping for the given service. responses: '204': description: Catalog service API mapping was deleted successfully. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Catalog Service API Mappings '/v1/catalog-services/{serviceId}/scorecards/{scorecardId}': parameters: - name: serviceId in: path description: The `id` of the service. required: true schema: type: string example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 - name: scorecardId in: path description: The `id` of the scorecard. required: true schema: type: string format: uuid example: f3704e4c-104d-4f21-998a-20d4364c893f get: operationId: fetch-catalog-service-scorecard summary: Get a Catalog Service Scorecard description: Fetches the given scorecard targeting the service. responses: '200': $ref: '#/components/responses/CatalogServiceScorecardResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Scorecards /v1/criteria-templates: get: operationId: list-criteria-templates summary: List Criteria Templates description: Returns a paginated collection of criteria templates. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/CriteriaTemplateFilter' - $ref: '#/components/parameters/CriteriaTemplateSort' responses: '200': $ref: '#/components/responses/ListCriteriaTemplatesResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Criteria Templates /v1/event-gateways: get: operationId: list-event-gateways summary: List all Event Gateways description: Returns an array of gateway objects containing information about the Konnect Event Gateways. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' - $ref: '#/components/parameters/EventGatewayCommonFilter' responses: '200': $ref: '#/components/responses/ListEventGatewaysResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/Internal' '503': $ref: '#/components/responses/NotAvailable' tags: - 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 patch: operationId: patch-event-gateway summary: Partially Update Event Gateway description: Patch an individual gateway. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PatchGatewayRequest' 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' get: operationId: list-event-gateway-backend-clusters summary: List Backend Clusters description: Returns a list of backend clusters associated with the specified Event Gateway. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' - $ref: '#/components/parameters/EventGatewayCommonFilter' responses: '200': $ref: '#/components/responses/ListBackendClustersResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Backend Clusters 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' get: operationId: list-event-gateway-data-plane-certificates summary: List Event Gateway DataPlane Certificates description: Returns a list of dataplane certificates that are associated to this event gateway. A dataplane certificate allows dataplanes configured with the certificate and corresponding private key to establish connection with this event gateway. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' - $ref: '#/components/parameters/EventGatewayCommonFilter' responses: '200': $ref: '#/components/responses/ListEventGatewayDataPlaneCertificatesResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway DataPlane Certificates 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' get: operationId: list-event-gateway-listeners summary: List Event Gateway Listeners description: Returns a list of listeners associated with the specified Event Gateway. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' - $ref: '#/components/parameters/EventGatewayListenersFilter' responses: '200': $ref: '#/components/responses/ListEventGatewayListenersResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Listeners 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': parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/eventGatewayListenerId' get: operationId: list-event-gateway-listener-policies summary: List Policies for Listener description: Returns a list of policies associated with the specified Event Gateway listener. parameters: - $ref: '#/components/parameters/EventGatewayCommonFilter' responses: '200': $ref: '#/components/responses/ListEventGatewayListenerPoliciesResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Listener Policies post: x-speakeasy-entity-operation: terraform-resource: EventGatewayListenerPolicy#create terraform-datasource: null operationId: create-event-gateway-listener-policy 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: $ref: '#/components/requestBodies/CreateEventGatewayListenerPolicyRequest' 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 '/v1/event-gateways/{gatewayId}/listeners/{eventGatewayListenerId}/policies/{policyId}': 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 get: x-speakeasy-entity-operation: terraform-resource: EventGatewayListenerPolicy#read terraform-datasource: null operationId: get-event-gateway-listener-policy 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: EventGatewayListenerPolicy#update terraform-datasource: null operationId: update-event-gateway-listener-policy summary: Update Policy for Listener description: Updates an existing policy associated with the specified Event Gateway listener. requestBody: $ref: '#/components/requestBodies/UpdateEventGatewayListenerPolicyRequest' 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 patch: operationId: patch-event-gateway-listener-policy summary: Partially Update Policy for Listener description: Partially updates an existing policy associated with the specified Event Gateway listener. requestBody: $ref: '#/components/requestBodies/PatchEventGatewayListenerPolicyRequest' 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: EventGatewayListenerPolicy#delete terraform-datasource: null operationId: delete-event-gateway-listener-policy 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 '/v1/event-gateways/{gatewayId}/listeners/{eventGatewayListenerId}/policies/{policyId}/move': parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/eventGatewayListenerId' - $ref: '#/components/parameters/policyId' post: operationId: move-event-gateway-listener-policy summary: Move Policy description: | Moves the position of a specific policy relative to the chain associated with the Event Gateway listener. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MoveEventGatewayPolicy' responses: '204': description: No Content '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Listener Policies '/v1/event-gateways/{gatewayId}/listeners/{eventGatewayListenerId}/policy-chain': parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/eventGatewayListenerId' get: operationId: get-event-gateway-listener-policy-chain summary: Get Policy Chain for Listener description: | Get the policy chain for a listener composed of all the ids of the policies in order of execution. responses: '200': $ref: '#/components/responses/EventGatewayPolicyChainResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Listener Policies put: operationId: update-event-gateway-listener-policy-chain summary: Update Policy Chain for Listener description: Update the policy chain for a listener by providing an ordered list of policy ids. requestBody: $ref: '#/components/requestBodies/UpdateEventGatewayPolicyChainRequest' responses: '200': $ref: '#/components/responses/EventGatewayPolicyChainResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Listener Policies '/v1/event-gateways/{gatewayId}/nodes': parameters: - $ref: '#/components/parameters/gatewayId' get: operationId: list-event-gateway-nodes summary: List Nodes description: Returns a list of nodes associated with the specified Event Gateway. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' responses: '200': $ref: '#/components/responses/ListEventGatewayNodesResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Nodes '/v1/event-gateways/{gatewayId}/nodes/{eventGatewayNodeId}': parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/eventGatewayNodeId' get: operationId: get-event-gateway-node summary: Get a Node description: Returns information about a specific node associated with the Event Gateway. responses: '200': description: A single node object. content: application/json: schema: $ref: '#/components/schemas/GatewayNode' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Nodes '/v1/event-gateways/{gatewayId}/nodes/{eventGatewayNodeId}/errors': parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/eventGatewayNodeId' get: operationId: list-event-gateway-node-errors summary: List Node Errors description: Returns information about the node errors. responses: '200': $ref: '#/components/responses/ListEventGatewayNodeErrorsResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Nodes '/v1/event-gateways/{gatewayId}/nodes/{eventGatewayNodeId}/status': parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/eventGatewayNodeId' get: operationId: get-event-gateway-node-status summary: Get Node Status description: Returns information about the node status. responses: '200': $ref: '#/components/responses/EventGatewayNodeStatus' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Nodes '/v1/event-gateways/{gatewayId}/schema-registries': parameters: - $ref: '#/components/parameters/gatewayId' get: operationId: list-event-gateway-schema-registries summary: List Schema Registries description: Returns a list of schema registries associated with the specified Event Gateway. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' - $ref: '#/components/parameters/EventGatewayCommonFilter' responses: '200': $ref: '#/components/responses/ListSchemaRegistriesResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Schema Registries 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' get: operationId: list-event-gateway-static-keys summary: List Event Gateway Static Keys description: Returns a list of static keys associated to this event gateway. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' - $ref: '#/components/parameters/EventGatewayCommonFilter' responses: '200': $ref: '#/components/responses/ListEventGatewayStaticKeysResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Event Gateway Static Keys 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' get: operationId: list-event-gateway-tls-trust-bundles summary: List TLS Trust Bundles description: |- Returns a list of TLS trust bundles associated with the specified Event Gateway. **Requires a minimum runtime version of `1.1`**. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' - $ref: '#/components/parameters/EventGatewayCommonFilter' responses: '200': $ref: '#/components/responses/ListTLSTrustBundlesResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway TLS Trust Bundles x-min-runtime-version: '1.1' 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' '/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' 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' 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' '/v1/event-gateways/{gatewayId}/virtual-clusters': parameters: - $ref: '#/components/parameters/gatewayId' get: operationId: list-event-gateway-virtual-clusters summary: List all virtual clusters description: Returns a paginated list of virtual clusters associated with the specified Event Gateway. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' - name: filter in: query description: Filter documents returned in the response. required: false schema: type: object properties: backend_cluster_id: $ref: '#/components/schemas/StringFieldEqualsFilter' name: $ref: '#/components/schemas/StringFieldContainsFilter' style: deepObject responses: '200': $ref: '#/components/responses/ListVirtualClustersResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Clusters 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': parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' get: operationId: list-event-gateway-virtual-cluster-cluster-level-policies summary: List Cluster Policies for Virtual Cluster description: Returns a list of cluster-level policies associated with the virtual cluster. parameters: - $ref: '#/components/parameters/EventGatewayPolicyListFilter' responses: '200': $ref: '#/components/responses/ListClusterPoliciesResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Policies post: x-speakeasy-entity-operation: terraform-resource: EventGatewayVirtualClusterClusterPolicy#create terraform-datasource: null operationId: create-event-gateway-virtual-cluster-cluster-level-policy 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: $ref: '#/components/requestBodies/CreateEventGatewayClusterPolicyRequest' 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 '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/cluster-policies/{policyId}': 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 get: x-speakeasy-entity-operation: terraform-resource: EventGatewayVirtualClusterClusterPolicy#read terraform-datasource: null operationId: get-event-gateway-virtual-cluster-cluster-level-policy 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: EventGatewayVirtualClusterClusterPolicy#update terraform-datasource: null operationId: update-event-gateway-virtual-cluster-cluster-level-policy summary: Update Cluster Policy for Virtual Cluster description: Updates an existing cluster-level policy associated with the specified Event Gateway virtual cluster. requestBody: $ref: '#/components/requestBodies/UpdateEventGatewayClusterPolicyRequest' 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 patch: operationId: patch-event-gateway-virtual-cluster-cluster-level-policy summary: Patch Cluster Policy for Virtual Cluster description: Partially updates an existing cluster-level policy associated with the specified Event Gateway virtual cluster. requestBody: $ref: '#/components/requestBodies/PatchEventGatewayPolicyRequest' 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: EventGatewayVirtualClusterClusterPolicy#delete terraform-datasource: null operationId: delete-event-gateway-virtual-cluster-cluster-level-policy 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 '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/cluster-policies/{policyId}/move': parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' - $ref: '#/components/parameters/policyId' post: operationId: move-event-gateway-virtual-cluster-cluster-level-policy summary: Move Cluster Policy description: | Moves the position of a specific cluster-level policy relative to the chain associated with the Event Gateway virtual cluster. If a policy is defined under a parent policy, it moves the position relative to the sibling policies under the same parent. requestBody: content: application/json: schema: $ref: '#/components/schemas/MoveEventGatewayPolicy' responses: '204': description: No Content '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Policies '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/cluster-policy-chain': parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' get: operationId: get-event-gateway-virtual-cluster-cluster-level-policy-chain summary: Get Cluster Policy Chain for Virtual Cluster description: | Get the cluster-level policy chain for a virtual cluster composed of all the ids of the cluster-level policies in order of execution. responses: '200': $ref: '#/components/responses/EventGatewayPolicyChainResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Policies put: operationId: update-event-gateway-virtual-cluster-cluster-level-policy-chain summary: Update Cluster Policy Chain description: Update the cluster-level policy chain for a virtual cluster by providing an ordered list of cluster-level policy ids. requestBody: $ref: '#/components/requestBodies/UpdateEventGatewayPolicyChainRequest' responses: '200': $ref: '#/components/responses/EventGatewayPolicyChainResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Policies '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/consume-policies': parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' get: operationId: list-event-gateway-virtual-cluster-consume-policies summary: List Consume Policies for Virtual Cluster description: Returns a list of consume policies associated with the specified Event Gateway virtual cluster. parameters: - $ref: '#/components/parameters/EventGatewayPolicyListFilter' responses: '200': $ref: '#/components/responses/ListConsumePoliciesResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Consume Policies post: x-speakeasy-entity-operation: terraform-resource: EventGatewayVirtualClusterConsumePolicy#create terraform-datasource: null operationId: create-event-gateway-virtual-cluster-consume-policy 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: $ref: '#/components/requestBodies/CreateEventGatewayConsumePolicyRequest' 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 '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/consume-policies/{policyId}': 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 get: x-speakeasy-entity-operation: terraform-resource: EventGatewayVirtualClusterConsumePolicy#read terraform-datasource: null operationId: get-event-gateway-virtual-cluster-consume-policy 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: EventGatewayVirtualClusterConsumePolicy#update terraform-datasource: null operationId: update-event-gateway-virtual-cluster-consume-policy summary: Update Consume Policy for Virtual Cluster description: Updates an existing consume policy associated with the specified Event Gateway virtual cluster. requestBody: $ref: '#/components/requestBodies/UpdateEventGatewayConsumePolicyRequest' 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 patch: operationId: patch-event-gateway-virtual-cluster-consume-policy summary: Patch Consume Policy for Virtual Cluster description: Updates an existing consume policy associated with the specified Event Gateway virtual cluster. requestBody: $ref: '#/components/requestBodies/PatchEventGatewayPolicyRequest' 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: EventGatewayVirtualClusterConsumePolicy#delete terraform-datasource: null operationId: delete-event-gateway-virtual-cluster-consume-policy 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 '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/consume-policies/{policyId}/move': parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' - $ref: '#/components/parameters/policyId' post: operationId: move-event-gateway-virtual-cluster-consume-policy summary: Move Consume Policy description: | Moves the position of a specific consume policy relative to the chain associated with the Event Gateway virtual cluster. If a policy is defined under a parent policy, it moves the position relative to the sibling policies under the same parent. requestBody: content: application/json: schema: $ref: '#/components/schemas/MoveEventGatewayPolicy' responses: '204': description: No Content '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Consume Policies '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/consume-policy-chain': parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' get: operationId: get-event-gateway-virtual-cluster-consume-policy-chain summary: Get Consume Policy Chain description: | Get the consume policy chain for a virtual cluster composed of all the ids of the consume policies in order of execution. responses: '200': $ref: '#/components/responses/EventGatewayPolicyChainResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Consume Policies put: operationId: update-event-gateway-virtual-cluster-consume-policy-chain summary: Update Consume Policy Chain description: Update the consume policy chain for a virtual cluster by providing an ordered list of consume policy ids. requestBody: $ref: '#/components/requestBodies/UpdateEventGatewayPolicyChainRequest' responses: '200': $ref: '#/components/responses/EventGatewayPolicyChainResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Consume Policies '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/produce-policies': parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' get: operationId: list-event-gateway-virtual-cluster-produce-policies summary: List Produce Policies for Virtual Cluster description: Returns a list of produce policies associated with the specified Event Gateway virtual cluster. parameters: - $ref: '#/components/parameters/EventGatewayPolicyListFilter' responses: '200': $ref: '#/components/responses/ListProducePoliciesResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Produce Policies post: x-speakeasy-entity-operation: terraform-resource: EventGatewayVirtualClusterProducePolicy#create terraform-datasource: null operationId: create-event-gateway-virtual-cluster-produce-policy 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: $ref: '#/components/requestBodies/CreateEventGatewayProducePolicyRequest' 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 '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/produce-policies/{policyId}': 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 get: x-speakeasy-entity-operation: terraform-resource: EventGatewayVirtualClusterProducePolicy#read terraform-datasource: null operationId: get-event-gateway-virtual-cluster-produce-policy 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: EventGatewayVirtualClusterProducePolicy#update terraform-datasource: null operationId: update-event-gateway-virtual-cluster-produce-policy summary: Update Produce Policy for Virtual Cluster description: Updates an existing produce policy associated with the specified Event Gateway virtual cluster. requestBody: $ref: '#/components/requestBodies/UpdateEventGatewayProducePolicyRequest' 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 patch: operationId: patch-event-gateway-virtual-cluster-produce-policy summary: Patch Produce Policy for Virtual Cluster description: Partially updates an existing produce policy associated with the specified Event Gateway virtual cluster. requestBody: $ref: '#/components/requestBodies/PatchEventGatewayPolicyRequest' 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: EventGatewayVirtualClusterProducePolicy#delete terraform-datasource: null operationId: delete-event-gateway-virtual-cluster-produce-policy 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 '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/produce-policies/{policyId}/move': parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' - $ref: '#/components/parameters/policyId' post: operationId: move-event-gateway-virtual-cluster-produce-policy summary: Move Produce Policy description: | Moves the position of a specific produce policy relative to the chain associated with the Event Gateway virtual cluster. If a policy is defined under a parent policy, it moves the position relative to the sibling policies under the same parent. requestBody: content: application/json: schema: $ref: '#/components/schemas/MoveEventGatewayPolicy' responses: '204': description: No Content '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Produce Policies '/v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/produce-policy-chain': parameters: - $ref: '#/components/parameters/gatewayId' - $ref: '#/components/parameters/virtualClusterId' get: operationId: get-event-gateway-virtual-cluster-produce-policy-chain summary: Get Produce Policy Chain for Virtual Cluster description: | Get the produce policy chain for a virtual cluster composed of all the ids of the produce policies in order of execution. responses: '200': $ref: '#/components/responses/EventGatewayPolicyChainResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Produce Policies put: operationId: update-event-gateway-virtual-cluster-produce-policy-chain summary: Update Produce Policy Chain description: Update the produce policy chain for a virtual cluster by providing an ordered list of produce policy ids. requestBody: $ref: '#/components/requestBodies/UpdateEventGatewayPolicyChainRequest' responses: '200': $ref: '#/components/responses/EventGatewayPolicyChainResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Event Gateway Virtual Cluster Produce Policies /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 get: operationId: list-integration-instances summary: List Integration Instances description: Returns a paginated collection of integration instances. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/IntegrationInstanceFilter' - $ref: '#/components/parameters/IntegrationInstanceSort' responses: '200': $ref: '#/components/responses/ListIntegrationInstancesResponse' '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/integration-instances/{integrationInstanceId}/resources/{resourceId}': parameters: - name: integrationInstanceId in: path description: The `id` of the integration instance. required: true schema: type: string example: 3f51fa25-310a-421d-bd1a-007f859021a3 - name: resourceId in: path description: The `id` of the resource. required: true schema: type: string example: AflTNLY0tTQhv2my patch: operationId: update-resource summary: Update Resource description: Updates a resource. requestBody: $ref: '#/components/requestBodies/UpdateCatalogResourceRequest' responses: '200': $ref: '#/components/responses/CatalogResourceResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Catalog Resources /v1/integrations: get: operationId: list-catalog-integrations summary: List Integrations description: | Returns a paginated collection of all catalog integrations available to connect. Each integration represents a built-in connector that extends the platform's capabilities; enabling discovery, resource management, event ingestion, and more. Integrations expose metadata that describes how they authenticate, what configuration they require, and how they interact with catalog entities like Resources and Services. Currently, integrations are platform-defined and cannot be extend or registered by customers. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/CatalogIntegrationFilter' - $ref: '#/components/parameters/CatalogIntegrationSort' responses: '200': $ref: '#/components/responses/ListCatalogIntegrationsResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Catalog Integrations '/v1/mcp-cp/{controlPlaneId}/mcp-servers': parameters: - $ref: '#/components/parameters/controlPlaneId' get: operationId: list-mcp-servers-by-control-plane summary: List MCP Servers by Control Plane description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns an array of MCP server objects for the specified control plane. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' - $ref: '#/components/parameters/MCPServerCommonFilter' responses: '200': $ref: '#/components/responses/ListMCPServersCPInfoResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - MCP Servers '/v1/mcp-cp/{controlPlaneId}/mcp-servers/{mcpServerId}': parameters: - $ref: '#/components/parameters/controlPlaneId' - $ref: '#/components/parameters/mcpServerId' get: operationId: get-mcp-server-by-control-plane summary: Get MCP Server by Control Plane description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Retrieves an MCP server by its ID within a specific control plane context. responses: '200': description: A response to retrieving a single MCP server within a control plane context. content: application/json: schema: $ref: '#/components/schemas/MCPServerCPInfo' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - MCP Servers '/v1/mcp-cp/{controlPlaneId}/mcp-servers/{mcpServerId}/code': parameters: - $ref: '#/components/parameters/controlPlaneId' - $ref: '#/components/parameters/mcpServerId' get: operationId: get-mcp-server-code summary: Get generated Python code for the MCP Server description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Generates MCP server Python code from the OpenAPI specifications associated with the MCP server. responses: '200': description: Generated Python code for the MCP server content: application/json: schema: $ref: '#/components/schemas/MCPServerCodeResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - MCP Servers '/v1/mcp-cp/{controlPlaneId}/mcp-servers/{mcpServerId}/kong-entities': parameters: - $ref: '#/components/parameters/controlPlaneId' - $ref: '#/components/parameters/mcpServerId' get: operationId: get-mcp-server-kong-entities summary: Get Kong entities for the MCP Server Gateway description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Retrieves Kong entities (Routes, Services, Plugins) for the Gateway in front of the MCP Server. parameters: - name: runtime_version in: query description: Kong Gateway runtime version to generate entities for required: false schema: type: string example: 3.13.0.0 responses: '200': description: Kong entities for the MCP server content: application/json: schema: $ref: '#/components/schemas/KongEntitiesResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - MCP Servers '/v1/mcp-cp/{controlPlaneId}/mcp-servers/{mcpServerId}/runtime-config': parameters: - $ref: '#/components/parameters/controlPlaneId' - $ref: '#/components/parameters/mcpServerId' get: operationId: get-mcp-server-runtime-config summary: Get MCP Server Runtime Configuration description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Returns the runtime configuration for a deployed MCP server. responses: '200': $ref: '#/components/responses/MCPServerRuntimeResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - MCP Server Runtime '/v1/mcp-cp/{controlPlaneId}/mcp-servers/{mcpServerId}/status': parameters: - $ref: '#/components/parameters/controlPlaneId' - $ref: '#/components/parameters/mcpServerId' post: operationId: post-mcp-server-status summary: Report MCP Server deployment status description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Reports the current deployment status of an MCP server, including replica counts and per-version pod statuses. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MCPServerStatusRequest' responses: '204': description: Status accepted. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - MCP Servers '/v1/mcp-cp/{controlPlaneId}/signals': parameters: - $ref: '#/components/parameters/controlPlaneId' get: operationId: get-mcp-server-signals summary: Get MCP Server Signals description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Client-initiated signals fetch with long-polling capabilities. The client supplies `capabilities` as a deepObject query parameter: - Keys are capability names (e.g. `mcp`) - Values contain the capability request fields (`version`) Example: GET /mcp-cp/{controlPlaneId}/signals?capabilities[mcp][version]=5 The CP responds with a JSON payload containing zero or more signals that the client should process. If no signals are available, the CP responds with HTTP 304 Not Modified. parameters: - $ref: '#/components/parameters/MCPCapabilities' responses: '200': $ref: '#/components/responses/MCPServerSignalsResponse' '304': description: No signals available (client is up to date) '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - MCP Servers /v1/notifications/configurations: get: operationId: list-user-configurations summary: List available user configurations description: List available user configurations. parameters: - $ref: '#/components/parameters/ConfigurationFilter' responses: '200': $ref: '#/components/responses/UserConfigurationListResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Notifications '/v1/notifications/configurations/{eventId}/subscriptions': get: operationId: list-event-subscriptions summary: List event subscriptions description: List event subscriptions. parameters: - $ref: '#/components/parameters/eventId' responses: '200': $ref: '#/components/responses/EventSubscriptionListResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Notifications post: operationId: create-event-subscription summary: Create a new subscription for an event description: Create a new subscription for an event. parameters: - $ref: '#/components/parameters/eventId' requestBody: $ref: '#/components/requestBodies/EventSubscriptionRequest' responses: '201': $ref: '#/components/responses/EventSubscriptionResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Notifications '/v1/notifications/configurations/{eventId}/subscriptions/{subscriptionId}': parameters: - $ref: '#/components/parameters/eventId' - $ref: '#/components/parameters/subscriptionId' get: operationId: get-event-subscription summary: Get subscription for an event description: Get subscription for an event. responses: '200': $ref: '#/components/responses/EventSubscriptionResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Notifications patch: operationId: update-event-subscription summary: Update subscription for an event description: Update subscription for an event. requestBody: $ref: '#/components/requestBodies/EventSubscriptionRequest' responses: '200': $ref: '#/components/responses/EventSubscriptionResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Notifications delete: operationId: delete-event-subscription summary: Delete subscription associated with event description: Delete subscription associated with event. responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Notifications /v1/notifications/inbox: get: operationId: list-notifications summary: List available notifications description: List available notifications. parameters: - $ref: '#/components/parameters/PageBefore' - $ref: '#/components/parameters/PageAfter' - $ref: '#/components/parameters/NotificationFilter' responses: '200': $ref: '#/components/responses/NotificationListResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Notifications '/v1/notifications/inbox/{notificationId}': get: operationId: get-notification-details summary: Get notification details description: Get notification details. parameters: - $ref: '#/components/parameters/notificationId' responses: '200': $ref: '#/components/responses/NotificationResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Notifications patch: operationId: update-notification summary: Update notification description: Update notification. parameters: - $ref: '#/components/parameters/notificationId' requestBody: $ref: '#/components/requestBodies/NotificationUpdateRequest' responses: '200': $ref: '#/components/responses/NotificationResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Notifications delete: operationId: delete-notification summary: Delete notification description: Delete notification. parameters: - $ref: '#/components/parameters/notificationId' responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Notifications /v1/notifications/inbox/bulk: post: operationId: bulk-notifications summary: Mark a list of notifications to a status description: Mark a list of notifications to a status. requestBody: $ref: '#/components/requestBodies/BulkRequest' responses: '200': description: No Content '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Notifications /v1/resource-mappings: post: operationId: create-resource-mapping summary: Create Resource Mapping description: Creates a mapping between a catalog resource and service. requestBody: $ref: '#/components/requestBodies/CreateCatalogResourceMappingRequest' responses: '201': $ref: '#/components/responses/CatalogResourceMappingResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/Conflict' tags: - Catalog Resource Mappings get: operationId: list-resource-mappings summary: List Resource Mappings description: Returns a paginated collection of catalog resource mappings. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/CatalogResourceMappingFilter' - $ref: '#/components/parameters/CatalogResourceMappingSort' responses: '200': $ref: '#/components/responses/ListCatalogResourceMappingsResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Catalog Resource Mappings '/v1/resource-mappings/{resourceMappingId}': parameters: - name: resourceMappingId in: path description: The `id` of the resource mapping. required: true schema: type: string format: uuid example: d277faad-ed4e-4c56-a0fb-acce065dee34 x-speakeasy-match: id get: operationId: fetch-resource-mapping summary: Get a Resource Mapping description: Fetches a resource mapping by ID. responses: '200': $ref: '#/components/responses/CatalogResourceMappingResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Catalog Resource Mappings delete: operationId: delete-resource-mapping summary: Delete Resource Mapping description: Removes an existing mapping between a catalog resource and service. responses: '204': description: Resource Mapping was deleted successfully. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Catalog Resource Mappings /v1/resources: get: operationId: list-resources summary: List Resources description: Returns a paginated collection of resources. parameters: - $ref: '#/components/parameters/CursorPageQuery' - $ref: '#/components/parameters/CatalogResourceFilter' - $ref: '#/components/parameters/CatalogResourceSort' responses: '200': $ref: '#/components/responses/ListCatalogResourcesResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Catalog Resources '/v1/resources/{id}': parameters: - name: id in: path description: The `id` of the resource. required: true schema: type: string example: AflTNLY0tTQhv2my get: operationId: fetch-resource summary: Get a Resource description: Fetches a resource by ID. responses: '200': $ref: '#/components/responses/CatalogResourceResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Catalog Resources '/v1/resources/{id}/catalog-services': parameters: - name: id in: path description: The `id` of the resource. required: true schema: type: string example: AflTNLY0tTQhv2my get: operationId: list-catalog-resource-services summary: List Resource Services description: Returns a paginated collection of services the given resource is mapped to. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/CatalogServiceFilter' - $ref: '#/components/parameters/CatalogServiceSort' responses: '200': $ref: '#/components/responses/ListCatalogServicesResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Catalog Resource Services /v1/scorecard-templates: get: operationId: list-scorecard-templates summary: List Scorecard Templates description: Returns a paginated collection of scorecard templates. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/ScorecardTemplateFilter' - $ref: '#/components/parameters/ScorecardTemplateSort' responses: '200': $ref: '#/components/responses/ListScorecardTemplatesResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Scorecards /v1/scorecards: post: operationId: create-scorecard summary: Create Scorecard description: Creates a scorecard. requestBody: $ref: '#/components/requestBodies/CreateScorecardRequest' responses: '201': $ref: '#/components/responses/ScorecardResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Scorecards get: operationId: list-scorecards summary: List Scorecards description: Returns a paginated collection of scorecards. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/ScorecardFilter' - $ref: '#/components/parameters/ScorecardSort' responses: '200': $ref: '#/components/responses/ListScorecardsResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Scorecards '/v1/scorecards/{id}': parameters: - name: id in: path description: The `id` of the scorecard. required: true schema: type: string format: uuid example: f3704e4c-104d-4f21-998a-20d4364c893f get: operationId: fetch-scorecard summary: Get a Scorecard description: Fetches a scorecard. responses: '200': $ref: '#/components/responses/ScorecardResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Scorecards put: operationId: update-scorecard summary: Update Scorecard description: Updates a scorecard. requestBody: $ref: '#/components/requestBodies/UpdateScorecardRequest' responses: '200': $ref: '#/components/responses/ScorecardResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Scorecards delete: operationId: delete-scorecard summary: Delete Scorecard description: Deletes a scorecard. responses: '204': description: Scorecard was deleted successfully. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Scorecards '/v1/scorecards/{id}/catalog-services': parameters: - name: id in: path description: The `id` of the scorecard. required: true schema: type: string format: uuid example: f3704e4c-104d-4f21-998a-20d4364c893f get: operationId: list-scorecard-services summary: List Scorecard Services description: Lists services targeted by a scorecard. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/ScorecardServiceFilter' - $ref: '#/components/parameters/ScorecardServiceSort' responses: '200': $ref: '#/components/responses/ListScorecardServicesResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Scorecards '/v1/scorecards/{id}/criteria': parameters: - name: id in: path description: The `id` of the scorecard. required: true schema: type: string format: uuid example: f3704e4c-104d-4f21-998a-20d4364c893f get: operationId: list-scorecard-criteria summary: List Scorecard Criteria description: 'Lists criteria, including passing service counts, belonging to a scorecard.' parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/ScorecardCriteriaFilter' - $ref: '#/components/parameters/ScorecardCriteriaSort' responses: '200': $ref: '#/components/responses/ListScorecardCriteriaResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Scorecards '/v1/scorecards/{scorecardId}/criteria/{criteriaId}/catalog-services': parameters: - name: scorecardId in: path description: The `id` of the scorecard. required: true schema: type: string format: uuid example: f3704e4c-104d-4f21-998a-20d4364c893f - name: criteriaId in: path description: The `id` of the criteria. required: true schema: type: string format: uuid example: 5c1121f9-3f3a-47c7-9bb6-c81a51128714 get: operationId: list-scorecard-criteria-services summary: List Scorecard Criteria Services description: Lists services targeted by a scorecard criteria with evaluation results per-service. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/ScorecardCriteriaServiceFilter' - $ref: '#/components/parameters/ScorecardCriteriaServiceSort' responses: '200': $ref: '#/components/responses/ListScorecardCriteriaServicesResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Scorecards /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 get: operationId: list-app-auth-strategies summary: List App Auth Strategies description: Returns a paginated collection of application auth strategies. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/SortAppAuthStrategies' - name: filter in: query description: Filter application auth strategies returned in the response. required: false schema: type: object properties: strategy_type: $ref: '#/components/schemas/StringFieldFilter' name: $ref: '#/components/schemas/StringFieldFilter' display_name: $ref: '#/components/schemas/StringFieldFilter' dcr_provider_id: $ref: '#/components/schemas/UuidFieldFilter' dcr_provider_name: $ref: '#/components/schemas/StringFieldFilter' dcr_provider_type: $ref: '#/components/schemas/StringFieldFilter' style: deepObject responses: '200': $ref: '#/components/responses/ListAppAuthStrategies' '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 put: operationId: replace-app-auth-strategy summary: Replace App Auth Strategy description: Replaces 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 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/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 get: operationId: list-add-ons summary: List Add-Ons description: | Returns a paginated list of add-ons for the organization. Use filter parameters to narrow results by owner (control plane or control plane group), lifecycle state, or config kind. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/AddOnsFilter' responses: '200': $ref: '#/components/responses/ListAddOnsResponse' '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' 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/availability.json: get: operationId: get-availability-json summary: Get Resource Availability JSON description: 'Returns a public JSON document describing the supported cloud providers, regions, gateway versions, and instance types available for Kong Cloud Gateways. Authentication isn''t required — query this endpoint to discover valid inputs for network and configuration requests.' responses: '200': $ref: '#/components/responses/RetrieveCloudGatewaysAvailabilityDocumentResponse' security: [] servers: - url: 'https://global.api.konghq.com/' tags: - Resource Availability x-speakeasy-group: CloudGateways /v2/cloud-gateways/configurations: get: operationId: list-configurations summary: List Configurations description: | Returns a paginated collection of Cloud Gateway configurations visible to the caller. Results are scoped to control planes the caller has permission to read. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/ConfigurationsFilter' responses: '200': $ref: '#/components/responses/ListConfigurationsResponse' '400': $ref: '#/components/responses/CloudGatewaysBadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' servers: - url: 'https://global.api.konghq.com/' tags: - Data-Plane Group Configurations x-speakeasy-group: CloudGateways 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: get: operationId: list-custom-domains summary: List Custom Domains description: | Returns a paginated list of custom domains across all control planes in the organization, scoped to control planes you have read access to. parameters: - $ref: '#/components/parameters/CustomDomainsFilter' - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' responses: '200': $ref: '#/components/responses/ListCustomDomainsResponse' '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 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/custom-domains/{customDomainId}/online-status': get: operationId: get-custom-domain-online-status summary: Get Custom Domain Online Status description: Checks whether the primary domain CNAME and ACME challenge CNAME records are correctly configured at your DNS registrar. Returns `verified` or `unverified` for each. parameters: - $ref: '#/components/parameters/CustomDomainId' responses: '200': $ref: '#/components/responses/RetrieveCustomDomainOnlineStatusResponse' '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 /v2/cloud-gateways/default-resource-configurations: get: operationId: list-default-resource-configurations summary: List Default Resource Configurations description: | Returns the platform-default resource configurations for Cloud Gateways, along with any organization-level overrides. Resource configurations are behavioral settings applied to Cloud Gateway resources — for example, the idle timeout for data plane groups. Use this to view the effective settings for your organization. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' responses: '200': $ref: '#/components/responses/ListDefaultResourceConfigurationsResponse' '400': $ref: '#/components/responses/CloudGatewaysBadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' servers: - url: 'https://global.api.konghq.com/' tags: - Resource Configurations x-speakeasy-group: CloudGateways /v2/cloud-gateways/default-resource-quotas: get: operationId: list-default-resource-quotas summary: List Default Resource Quotas description: | Returns the platform-default resource quotas for Cloud Gateways, along with any organization-level overrides. Use this to view the effective limits for your organization. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' responses: '200': $ref: '#/components/responses/ListDefaultResourceQuotasResponse' '400': $ref: '#/components/responses/CloudGatewaysBadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' servers: - url: 'https://global.api.konghq.com/' tags: - Cloud Gateways Resource Quotas x-speakeasy-group: CloudGateways /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}/configuration-references': get: operationId: list-network-configurations summary: List Network Configuration References description: | Returns a paginated list of data plane group configurations that reference a given network. Use this to determine which control planes are using a network before renaming or deleting it. parameters: - $ref: '#/components/parameters/NetworkId' - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' responses: '200': $ref: '#/components/responses/ListNetworkConfigurationReferencesResponse' '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 '/v2/cloud-gateways/networks/{networkId}/private-dns': get: operationId: list-private-dns summary: List Private DNS description: Returns a paginated collection of private DNS attachments for a given network. parameters: - $ref: '#/components/parameters/NetworkId' - $ref: '#/components/parameters/PrivateDnsFilter' - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' responses: '200': $ref: '#/components/responses/ListPrivateDnsResponse' '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 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: - $ref: '#/components/parameters/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: - $ref: '#/components/parameters/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 patch: operationId: update-private-dns summary: Update Private DNS description: | Updates a private DNS attachment by ID. Supports updating the name or DNS resolver configuration for AWS Outbound Resolver and Azure Outbound Resolver attachment types. parameters: - $ref: '#/components/parameters/NetworkId' - $ref: '#/components/parameters/PrivateDnsId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PatchPrivateDnsRequest' responses: '200': $ref: '#/components/responses/PatchPrivateDnsResponse' '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 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: - $ref: '#/components/parameters/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': get: operationId: list-transit-gateways summary: List Transit Gateways description: Returns a paginated collection of transit gateways attached to a given network. parameters: - $ref: '#/components/parameters/NetworkId' - $ref: '#/components/parameters/TransitGatewaysFilter' - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' responses: '200': $ref: '#/components/responses/ListTransitGatewaysResponse' '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 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: - $ref: '#/components/parameters/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: - $ref: '#/components/parameters/NetworkId' - $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: - $ref: '#/components/parameters/NetworkId' - $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: - $ref: '#/components/parameters/NetworkId' - $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/ProviderAccountsFilter' - $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/cloud-gateways/provider-accounts/{providerAccountId}': get: operationId: get-provider-account summary: Get Provider Account description: 'Retrieves a single provider account by ID, including the associated cloud provider and cloud account ID.' parameters: - $ref: '#/components/parameters/ProviderAccountId' responses: '200': $ref: '#/components/responses/RetrieveProviderAccountResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Provider Accounts x-speakeasy-group: CloudGateways /v2/cloud-gateways/resource-configurations: get: operationId: list-resource-configurations summary: List Resource Configurations description: | Returns organization-specific resource configuration overrides that take precedence over platform defaults. Each configuration controls a behavioral setting for a specific Cloud Gateway resource type — for example, `data-plane-group-idle-timeout-minutes` sets how long a data plane group can remain idle before it scales to zero instances. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' responses: '200': $ref: '#/components/responses/ListResourceConfigurationsResponse' '400': $ref: '#/components/responses/CloudGatewaysBadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' servers: - url: 'https://global.api.konghq.com/' tags: - Resource Configurations x-speakeasy-group: CloudGateways '/v2/cloud-gateways/resource-configurations/{resourceConfigurationId}': get: operationId: get-resource-configuration summary: Get Resource Configuration description: 'Retrieves a single organization-level resource configuration override by ID. Returns the qualifier, override value, and description for the configuration setting.' parameters: - $ref: '#/components/parameters/ResourceConfigurationId' responses: '200': $ref: '#/components/responses/RetrieveResourceConfigurationResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Resource Configurations x-speakeasy-group: CloudGateways /v2/cloud-gateways/resource-quotas: get: operationId: list-resource-quotas summary: List Resource Quotas description: | Returns organization-specific resource quota overrides that take precedence over platform defaults. Each quota enforces a count limit on a specific Cloud Gateway resource type — including active networks, data planes, serverless data planes, data plane groups, and provider accounts per cloud provider. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' responses: '200': $ref: '#/components/responses/ListResourceQuotasResponse' '400': $ref: '#/components/responses/CloudGatewaysBadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' servers: - url: 'https://global.api.konghq.com/' tags: - Cloud Gateways Resource Quotas x-speakeasy-group: CloudGateways '/v2/cloud-gateways/resource-quotas/{resourceQuotaId}': get: operationId: get-resource-quota summary: Get Resource Quota description: Retrieves a single organization-level resource quota override by ID. parameters: - $ref: '#/components/parameters/ResourceQuotaId' responses: '200': $ref: '#/components/responses/RetrieveResourceQuotaResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Cloud Gateways Resource Quotas x-speakeasy-group: CloudGateways /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: - $ref: '#/components/parameters/PageSize' - $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 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': get: operationId: list-config-stores summary: List all config stores for a control plane parameters: - $ref: '#/components/parameters/controlPlaneId' - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' responses: '200': $ref: '#/components/responses/ListConfigStoresResponse' '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 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: 'If true, delete specified config store and all secrets, even if there are secrets linked to the config store If false, do not allow deletion if there are secrets linked to the config store' schema: type: string default: 'false' enum: - 'true' - 'false' 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/configStoreId' 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 get: operationId: list-config-store-secrets summary: List Config Store Secrets description: Returns a collection of all secrets for a Config Store. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' responses: '200': $ref: '#/components/responses/ListConfigStoreSecretsResponse' '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' tags: - Config Store Secrets '/v2/control-planes/{controlPlaneId}/config-stores/{configStoreId}/secrets/{key}': parameters: - $ref: '#/components/parameters/controlPlaneId' - $ref: '#/components/parameters/configStoreId' - 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/acls': get: operationId: list-acl summary: List all ACLs description: List all ACLs parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing ACLs content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ACL' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' '401': $ref: '#/components/responses/HTTP401Error' tags: - ACLs parameters: - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/acls/{ACLId}': get: operationId: get-acl summary: Get an ACL description: Get an ACL using ID. responses: '200': description: Successfully fetched ACL content: application/json: schema: $ref: '#/components/schemas/ACL' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - ACLs parameters: - $ref: '#/components/parameters/ACLId' - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/basic-auths': get: operationId: list-basic-auth summary: List all Basic-auth credentials description: List all Basic-auth credentials parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing Basic-auth credentials content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/BasicAuth' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' '401': $ref: '#/components/responses/HTTP401Error' tags: - Basic-auth credentials parameters: - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/basic-auths/{BasicAuthId}': get: operationId: get-basic-auth summary: Get a Basic-auth credential description: Get a Basic-auth credential using ID. responses: '200': description: Successfully fetched Basic-auth credential content: application/json: schema: $ref: '#/components/schemas/BasicAuth' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - Basic-auth credentials parameters: - $ref: '#/components/parameters/BasicAuthId' - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/ca_certificates': get: operationId: list-ca_certificate summary: List all CA Certificates description: List all CA Certificates parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing CA Certificates content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/CACertificate' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' '401': $ref: '#/components/responses/HTTP401Error' tags: - CA Certificates parameters: - $ref: '#/components/parameters/controlPlaneId' post: 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: 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: 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: 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': get: operationId: list-certificate summary: List all Certificates description: List all Certificates parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing Certificates content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Certificate' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' '401': $ref: '#/components/responses/HTTP401Error' tags: - Certificates parameters: - $ref: '#/components/parameters/controlPlaneId' post: 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: 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: 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: 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/certificates/{CertificateId}/snis': get: operationId: list-sni-with-certificate summary: List all SNIs associated with a Certificate description: List all SNIs associated with a Certificate parameters: - $ref: '#/components/parameters/CertificateId' - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing SNIs content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/SNI' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' tags: - SNIs parameters: - $ref: '#/components/parameters/controlPlaneId' post: operationId: create-sni-with-certificate summary: Create a new SNI associated with a Certificate description: Create a new SNI associated with a Certificate parameters: - $ref: '#/components/parameters/CertificateId' requestBody: description: Description of new SNI for creation required: true content: application/json: schema: $ref: '#/components/schemas/SNIWithoutParents' responses: '201': description: Successfully created SNI content: application/json: schema: $ref: '#/components/schemas/SNI' tags: - SNIs '/v2/control-planes/{controlPlaneId}/core-entities/certificates/{CertificateId}/snis/{SNIId}': delete: operationId: delete-sni-with-certificate summary: Delete a an SNI associated with a Certificate description: Delete a an SNI associated with a Certificate using ID or name. parameters: - $ref: '#/components/parameters/CertificateId' - $ref: '#/components/parameters/SNIId' responses: '204': description: Successfully deleted SNI or the resource didn't exist tags: - SNIs get: operationId: get-sni-with-certificate summary: Get an SNI associated with a Certificate description: Get an SNI associated with a Certificate using ID or name. parameters: - $ref: '#/components/parameters/CertificateId' - $ref: '#/components/parameters/SNIId' responses: '200': description: Successfully fetched SNI content: application/json: schema: $ref: '#/components/schemas/SNI' '404': description: Resource does not exist tags: - SNIs parameters: - $ref: '#/components/parameters/controlPlaneId' put: operationId: upsert-sni-with-certificate summary: Upsert an SNI associated with a Certificate description: Create or Update an SNI associated with a Certificate using ID or name. parameters: - $ref: '#/components/parameters/CertificateId' - $ref: '#/components/parameters/SNIId' requestBody: description: Description of the SNI required: true content: application/json: schema: $ref: '#/components/schemas/SNIWithoutParents' responses: '200': description: Successfully upserted SNI content: application/json: schema: $ref: '#/components/schemas/SNI' tags: - SNIs '/v2/control-planes/{controlPlaneId}/core-entities/consumer_groups': get: operationId: list-consumer_group summary: List all Consumer Groups description: List all Consumer Groups parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing Consumer Groups content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ConsumerGroup' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' '401': $ref: '#/components/responses/HTTP401Error' tags: - Consumer Groups parameters: - $ref: '#/components/parameters/controlPlaneId' post: 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: 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: 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: 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': delete: operationId: remove-all-consumers-from-consumer-group summary: Remove consumers from consumer group description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Removes all consumers from a Consumer Groups. This operation does not delete the consumer group. responses: '204': description: Consumers removed from group '404': description: Consumer group or consumer association does not exist tags: - Consumer Groups get: operationId: list-consumers-for-consumer-group summary: List all Consumers in a Consumer Group description: List all consumers in a consumer group parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing of consumers content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Consumer' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' tags: - Consumer Groups 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 x-speakeasy-name-override: consumer_id responses: '201': description: Consumer added to group content: application/json: schema: type: object properties: consumer_group: $ref: '#/components/schemas/ConsumerGroup' consumers: type: array items: $ref: '#/components/schemas/Consumer' tags: - Consumer Groups '/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/consumer_groups/{ConsumerGroupId}/plugins': get: operationId: list-plugin-with-consumer_group summary: List all Plugins associated with a Consumer Group description: List all Plugins associated with a Consumer Group parameters: - $ref: '#/components/parameters/ConsumerGroupId' - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing Plugins content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Plugin' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' tags: - Plugins parameters: - $ref: '#/components/parameters/controlPlaneId' post: operationId: create-plugin-with-consumer_group summary: Create a new Plugin associated with a Consumer Group description: Create a new Plugin associated with a Consumer Group parameters: - $ref: '#/components/parameters/ConsumerGroupId' requestBody: description: Description of new Plugin for creation required: true content: application/json: schema: $ref: '#/components/schemas/PluginWithoutParents' responses: '201': description: Successfully created Plugin content: application/json: schema: $ref: '#/components/schemas/Plugin' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/consumer_groups/{ConsumerGroupId}/plugins/{PluginId}': delete: operationId: delete-plugin-with-consumer_group summary: Delete a a Plugin associated with a Consumer Group description: Delete a a Plugin associated with a Consumer Group using ID. parameters: - $ref: '#/components/parameters/ConsumerGroupId' - $ref: '#/components/parameters/PluginId' responses: '204': description: Successfully deleted Plugin or the resource didn't exist tags: - Plugins get: operationId: get-plugin-with-consumer_group summary: Get a Plugin associated with a Consumer Group description: Get a Plugin associated with a Consumer Group using ID. parameters: - $ref: '#/components/parameters/ConsumerGroupId' - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/ExpandPartials' responses: '200': description: Successfully fetched Plugin content: application/json: schema: $ref: '#/components/schemas/Plugin' '404': description: Resource does not exist tags: - Plugins parameters: - $ref: '#/components/parameters/controlPlaneId' put: operationId: upsert-plugin-with-consumer_group summary: Upsert a Plugin associated with a Consumer Group description: Create or Update a Plugin associated with a Consumer Group using ID. parameters: - $ref: '#/components/parameters/ConsumerGroupId' - $ref: '#/components/parameters/PluginId' requestBody: description: Description of the Plugin required: true content: application/json: schema: $ref: '#/components/schemas/PluginWithoutParents' responses: '200': description: Successfully upserted Plugin content: application/json: schema: $ref: '#/components/schemas/Plugin' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/consumers': get: operationId: list-consumer summary: List all Consumers description: List all Consumers parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' - $ref: '#/components/parameters/CustomId' - $ref: '#/components/parameters/NameContainsFilter' - $ref: '#/components/parameters/NameEqualsFilter' responses: '200': description: A successful response listing Consumers content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Consumer' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' '401': $ref: '#/components/responses/HTTP401Error' tags: - Consumers parameters: - $ref: '#/components/parameters/controlPlaneId' post: 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: 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: 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: 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/{ConsumerId}/consumer_groups': delete: operationId: remove-consumer-from-all-consumer-groups summary: Remove consumer from all consumer groups description: Removes a consumer from all Consumer Groups. This operation does not delete the consumer group. parameters: - $ref: '#/components/parameters/ConsumerId' responses: '204': description: Consumer removed from all groups '404': description: Consumer does not exist tags: - Consumers get: operationId: list-consumer-groups-for-consumer summary: List all Consumer Groups a Consumer belongs to description: List all Consumer Groups a Consumer belongs to parameters: - $ref: '#/components/parameters/ConsumerId' - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing Consumer Groups content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ConsumerGroup' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' tags: - Consumers parameters: - $ref: '#/components/parameters/controlPlaneId' post: operationId: add-consumer-to-specific-consumer-group summary: Add consumer to a specific consumer group description: Add a consumer to a consumer group parameters: - $ref: '#/components/parameters/ConsumerId' requestBody: content: application/json: schema: type: object properties: group: type: string example: fedee695-2ae2-4e45-877a-776d9b2fc793 x-speakeasy-name-override: group responses: '201': description: Consumer added to a specific group content: application/json: schema: type: object properties: consumer: $ref: '#/components/schemas/Consumer' consumer_groups: type: array items: $ref: '#/components/schemas/ConsumerGroup' tags: - Consumers '/v2/control-planes/{controlPlaneId}/core-entities/consumers/{ConsumerId}/consumer_groups/{ConsumerGroupId}': delete: operationId: remove-consumer-from-consumer-group summary: Remove consumer from consumer group description: Removes a consumer from a Consumer Group. This operation does not delete the consumer group. parameters: - $ref: '#/components/parameters/ConsumerId' - $ref: '#/components/parameters/ConsumerGroupId' responses: '204': description: Consumer removed from group tags: - Consumers parameters: - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/consumers/{ConsumerIdForNestedEntities}/acls': get: operationId: list-acl-with-consumer summary: List all ACLs associated with a Consumer description: List all ACLs associated with a Consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing ACLs content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ACL' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' tags: - ACLs parameters: - $ref: '#/components/parameters/controlPlaneId' post: 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: 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: 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' put: operationId: upsert-acl-with-consumer summary: Upsert an ACL associated with a Consumer description: Create or Update an ACL associated with a Consumer using ID. parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/ACLId' requestBody: description: Description of the ACL required: true content: application/json: schema: $ref: '#/components/schemas/ACLWithoutParents' responses: '200': description: Successfully upserted ACL content: application/json: schema: $ref: '#/components/schemas/ACL' tags: - ACLs '/v2/control-planes/{controlPlaneId}/core-entities/consumers/{ConsumerIdForNestedEntities}/basic-auth': get: operationId: list-basic-auth-with-consumer summary: List all Basic-auth credentials associated with a Consumer description: List all Basic-auth credentials associated with a Consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing Basic-auth credentials content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/BasicAuth' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' tags: - Basic-auth credentials parameters: - $ref: '#/components/parameters/controlPlaneId' post: 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: 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: 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' put: operationId: upsert-basic-auth-with-consumer summary: Upsert a Basic-auth credential associated with a Consumer description: Create or Update a Basic-auth credential associated with a Consumer using ID. parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/BasicAuthId' requestBody: description: Description of the Basic-auth credential required: true content: application/json: schema: $ref: '#/components/schemas/BasicAuthWithoutParents' responses: '200': description: Successfully upserted Basic-auth credential content: application/json: schema: $ref: '#/components/schemas/BasicAuth' tags: - Basic-auth credentials '/v2/control-planes/{controlPlaneId}/core-entities/consumers/{ConsumerIdForNestedEntities}/hmac-auth': get: operationId: list-hmac-auth-with-consumer summary: List all HMAC-auth credentials associated with a Consumer description: List all HMAC-auth credentials associated with a Consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing HMAC-auth credentials content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/HMACAuth' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' tags: - HMAC-auth credentials parameters: - $ref: '#/components/parameters/controlPlaneId' post: 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: 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: 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' put: operationId: upsert-hmac-auth-with-consumer summary: Upsert a HMAC-auth credential associated with a Consumer description: Create or Update a HMAC-auth credential associated with a Consumer using ID. parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/HMACAuthId' requestBody: description: Description of the HMAC-auth credential required: true content: application/json: schema: $ref: '#/components/schemas/HMACAuthWithoutParents' responses: '200': description: Successfully upserted HMAC-auth credential content: application/json: schema: $ref: '#/components/schemas/HMACAuth' tags: - HMAC-auth credentials '/v2/control-planes/{controlPlaneId}/core-entities/consumers/{ConsumerIdForNestedEntities}/jwt': get: operationId: list-jwt-with-consumer summary: List all JWTs associated with a Consumer description: List all JWTs associated with a Consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing JWTs content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/JWT' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' tags: - JWTs parameters: - $ref: '#/components/parameters/controlPlaneId' post: 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: 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: 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' put: operationId: upsert-jwt-with-consumer summary: Upsert a JWT associated with a Consumer description: Create or Update a JWT associated with a Consumer using ID. parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/JWTId' requestBody: description: Description of the JWT content: application/json: schema: $ref: '#/components/schemas/JWTWithoutParents' responses: '200': description: Successfully upserted JWT content: application/json: schema: $ref: '#/components/schemas/JWT' tags: - JWTs '/v2/control-planes/{controlPlaneId}/core-entities/consumers/{ConsumerIdForNestedEntities}/key-auth': get: operationId: list-key-auth-with-consumer summary: List all API-keys associated with a Consumer description: List all API-keys associated with a Consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing API-keys content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/KeyAuth' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' tags: - API-keys parameters: - $ref: '#/components/parameters/controlPlaneId' post: 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: 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: 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' put: operationId: upsert-key-auth-with-consumer summary: Upsert an API-key associated with a Consumer description: Create or Update an API-key associated with a Consumer using ID. parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/KeyAuthId' requestBody: description: Description of the API-key content: application/json: schema: $ref: '#/components/schemas/KeyAuthWithoutParents' responses: '200': description: Successfully upserted API-key content: application/json: schema: $ref: '#/components/schemas/KeyAuth' tags: - API-keys '/v2/control-planes/{controlPlaneId}/core-entities/consumers/{ConsumerIdForNestedEntities}/mtls-auth': get: operationId: list-mtls-auth-with-consumer summary: List all MTLS-auth credentials associated with a Consumer description: List all MTLS-auth credentials associated with a Consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing MTLS-auth credentials content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/MTLSAuth' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' tags: - MTLS-auth credentials parameters: - $ref: '#/components/parameters/controlPlaneId' post: 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: 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: 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' put: operationId: upsert-mtls-auth-with-consumer summary: Upsert a MTLS-auth credential associated with a Consumer description: Create or Update a MTLS-auth credential associated with a Consumer using ID. parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/MTLSAuthId' requestBody: description: Description of the MTLS-auth credential required: true content: application/json: schema: $ref: '#/components/schemas/MTLSAuthWithoutParents' responses: '200': description: Successfully upserted MTLS-auth credential content: application/json: schema: $ref: '#/components/schemas/MTLSAuth' tags: - MTLS-auth credentials '/v2/control-planes/{controlPlaneId}/core-entities/consumers/{ConsumerIdForNestedEntities}/plugins': get: operationId: list-plugin-with-consumer summary: List all Plugins associated with a Consumer description: List all Plugins associated with a Consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing Plugins content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Plugin' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' tags: - Plugins parameters: - $ref: '#/components/parameters/controlPlaneId' post: operationId: create-plugin-with-consumer summary: Create a new Plugin associated with a Consumer description: Create a new Plugin associated with a Consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' requestBody: description: Description of new Plugin for creation required: true content: application/json: schema: $ref: '#/components/schemas/PluginWithoutParents' responses: '201': description: Successfully created Plugin content: application/json: schema: $ref: '#/components/schemas/Plugin' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/consumers/{ConsumerIdForNestedEntities}/plugins/{PluginId}': delete: operationId: delete-plugin-with-consumer summary: Delete a a Plugin associated with a Consumer description: Delete a a Plugin associated with a Consumer using ID. parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/PluginId' responses: '204': description: Successfully deleted Plugin or the resource didn't exist tags: - Plugins get: operationId: get-plugin-with-consumer summary: Get a Plugin associated with a Consumer description: Get a Plugin associated with a Consumer using ID. parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/ExpandPartials' responses: '200': description: Successfully fetched Plugin content: application/json: schema: $ref: '#/components/schemas/Plugin' '404': description: Resource does not exist tags: - Plugins parameters: - $ref: '#/components/parameters/controlPlaneId' put: operationId: upsert-plugin-with-consumer summary: Upsert a Plugin associated with a Consumer description: Create or Update a Plugin associated with a Consumer using ID. parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/PluginId' requestBody: description: Description of the Plugin required: true content: application/json: schema: $ref: '#/components/schemas/PluginWithoutParents' responses: '200': description: Successfully upserted Plugin content: application/json: schema: $ref: '#/components/schemas/Plugin' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/custom-plugins': get: operationId: list-custom-plugin summary: List all CustomPlugins description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. List all CustomPlugins parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing CustomPlugins content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/CustomPlugin' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' '401': $ref: '#/components/responses/HTTP401Error' tags: - CustomPlugins parameters: - $ref: '#/components/parameters/controlPlaneId' post: operationId: create-custom-plugin summary: Create a new CustomPlugin description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. 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: operationId: delete-custom-plugin summary: Delete a CustomPlugin description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. 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: operationId: get-custom-plugin summary: Get a CustomPlugin description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. 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: operationId: upsert-custom-plugin summary: Upsert a CustomPlugin description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. 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/degraphql_routes': get: operationId: list-degraphql_route summary: List all Degraphql_routes description: List all Degraphql_routes parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing Degraphql_routes content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Degraphql_route' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' '401': $ref: '#/components/responses/HTTP401Error' tags: - Degraphql_routes parameters: - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/degraphql_routes/{Degraphql_routeId}': get: operationId: get-degraphql_route summary: Get a Degraphql_route description: Get a Degraphql_route using ID or name. responses: '200': description: Successfully fetched Degraphql_route content: application/json: schema: $ref: '#/components/schemas/Degraphql_route' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - Degraphql_routes parameters: - $ref: '#/components/parameters/Degraphql_routeId' - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/graphql-rate-limiting-advanced/costs': get: operationId: list-graphql-rate-limiting-advanced-cost summary: List all GraphQL Cost Decorations description: List all GraphQL Cost Decorations parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing GraphQL Cost Decorations content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/GraphQLCostDecoration' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' '401': $ref: '#/components/responses/HTTP401Error' tags: - GraphQL Cost Decorations parameters: - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/graphql-rate-limiting-advanced/costs/{GraphQLCostDecorationId}': get: 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/hmac-auths': get: operationId: list-hmac-auth summary: List all HMAC-auth credentials description: List all HMAC-auth credentials parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing HMAC-auth credentials content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/HMACAuth' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' '401': $ref: '#/components/responses/HTTP401Error' tags: - HMAC-auth credentials parameters: - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/hmac-auths/{HMACAuthId}': get: operationId: get-hmac-auth summary: Get a HMAC-auth credential description: Get a HMAC-auth credential using ID. responses: '200': description: Successfully fetched HMAC-auth credential content: application/json: schema: $ref: '#/components/schemas/HMACAuth' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - HMAC-auth credentials parameters: - $ref: '#/components/parameters/HMACAuthId' - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/jwts': get: operationId: list-jwt summary: List all JWTs description: List all JWTs parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing JWTs content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/JWT' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' '401': $ref: '#/components/responses/HTTP401Error' tags: - JWTs parameters: - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/jwts/{JWTId}': get: operationId: get-jwt summary: Get a JWT description: Get a JWT using ID. responses: '200': description: Successfully fetched JWT content: application/json: schema: $ref: '#/components/schemas/JWT' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - JWTs parameters: - $ref: '#/components/parameters/JWTId' - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/key-auths': get: operationId: list-key-auth summary: List all API-keys description: List all API-keys parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing API-keys content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/KeyAuth' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' '401': $ref: '#/components/responses/HTTP401Error' tags: - API-keys parameters: - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/key-auths/{KeyAuthId}': get: operationId: get-key-auth summary: Get an API-key description: Get an API-key using ID. responses: '200': description: Successfully fetched API-key content: application/json: schema: $ref: '#/components/schemas/KeyAuth' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - API-keys parameters: - $ref: '#/components/parameters/KeyAuthId' - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/key-sets': get: operationId: list-key-set summary: List all KeySets description: List all KeySets parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing KeySets content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/KeySet' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' '401': $ref: '#/components/responses/HTTP401Error' tags: - KeySets parameters: - $ref: '#/components/parameters/controlPlaneId' post: 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: 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: 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: 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/key-sets/{KeySetId}/keys': get: operationId: list-key-with-key-set summary: List all Keys associated with a KeySet description: List all Keys associated with a KeySet parameters: - $ref: '#/components/parameters/KeySetId' - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing Keys content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Key' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' tags: - Keys parameters: - $ref: '#/components/parameters/controlPlaneId' post: operationId: create-key-with-key-set summary: Create a new Key associated with a KeySet description: Create a new Key associated with a KeySet parameters: - $ref: '#/components/parameters/KeySetId' requestBody: description: Description of new Key for creation required: true content: application/json: schema: $ref: '#/components/schemas/KeyWithoutParents' responses: '201': description: Successfully created Key content: application/json: schema: $ref: '#/components/schemas/Key' tags: - Keys '/v2/control-planes/{controlPlaneId}/core-entities/key-sets/{KeySetId}/keys/{KeyId}': delete: operationId: delete-key-with-key-set summary: Delete a a Key associated with a KeySet description: Delete a a Key associated with a KeySet using ID or name. parameters: - $ref: '#/components/parameters/KeySetId' - $ref: '#/components/parameters/KeyId' responses: '204': description: Successfully deleted Key or the resource didn't exist tags: - Keys get: operationId: get-key-with-key-set summary: Get a Key associated with a KeySet description: Get a Key associated with a KeySet using ID or name. parameters: - $ref: '#/components/parameters/KeySetId' - $ref: '#/components/parameters/KeyId' responses: '200': description: Successfully fetched Key content: application/json: schema: $ref: '#/components/schemas/Key' '404': description: Resource does not exist tags: - Keys parameters: - $ref: '#/components/parameters/controlPlaneId' put: operationId: upsert-key-with-key-set summary: Upsert a Key associated with a KeySet description: Create or Update a Key associated with a KeySet using ID or name. parameters: - $ref: '#/components/parameters/KeySetId' - $ref: '#/components/parameters/KeyId' requestBody: description: Description of the Key required: true content: application/json: schema: $ref: '#/components/schemas/KeyWithoutParents' responses: '200': description: Successfully upserted Key content: application/json: schema: $ref: '#/components/schemas/Key' tags: - Keys '/v2/control-planes/{controlPlaneId}/core-entities/keys': get: operationId: list-key summary: List all Keys description: List all Keys parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing Keys content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Key' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' '401': $ref: '#/components/responses/HTTP401Error' tags: - Keys parameters: - $ref: '#/components/parameters/controlPlaneId' post: 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: 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: 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: 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/mtls-auths': get: operationId: list-mtls-auth summary: List all MTLS-auth credentials description: List all MTLS-auth credentials parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing MTLS-auth credentials content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/MTLSAuth' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' '401': $ref: '#/components/responses/HTTP401Error' tags: - MTLS-auth credentials parameters: - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/mtls-auths/{MTLSAuthId}': get: operationId: get-mtls-auth summary: Get a MTLS-auth credential description: Get a MTLS-auth credential using ID. responses: '200': description: Successfully fetched MTLS-auth credential content: application/json: schema: $ref: '#/components/schemas/MTLSAuth' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - MTLS-auth credentials parameters: - $ref: '#/components/parameters/MTLSAuthId' - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/partials': get: operationId: list-partial summary: List all Partials description: List all Partials parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing Partials content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Partial' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' '401': $ref: '#/components/responses/HTTP401Error' tags: - Partials parameters: - $ref: '#/components/parameters/controlPlaneId' post: 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: 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: 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: 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/partials/{PartialId}/links': get: operationId: list-partial-link summary: List partial links description: List all plugins linked to the partial parameters: - $ref: '#/components/parameters/PartialId' - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: The plugins linked to the partial content: application/json: schema: type: object properties: count: description: The total number of plugins linked to the partial type: integer example: 10 data: type: array items: $ref: '#/components/schemas/PartialLink' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' tags: - Partial Links parameters: - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/plugin-schemas': parameters: - $ref: '#/components/parameters/controlPlaneId' get: operationId: list-plugin-schemas summary: List Custom Plugin Schemas description: Returns an array of custom plugins schemas associated with a control plane. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' responses: '200': $ref: '#/components/responses/list-plugin-schemas' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Custom Plugin Schemas 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': get: operationId: list-plugin summary: List all Plugins description: List all Plugins parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' - $ref: '#/components/parameters/NameContainsFilter' - $ref: '#/components/parameters/NameEqualsFilter' responses: '200': description: A successful response listing Plugins content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Plugin' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' '401': $ref: '#/components/responses/HTTP401Error' tags: - 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/routes': get: operationId: list-route summary: List all Routes description: List all Routes parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' - $ref: '#/components/parameters/NameContainsFilter' - $ref: '#/components/parameters/NameEqualsFilter' responses: '200': description: A successful response listing Routes content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Route' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' '401': $ref: '#/components/responses/HTTP401Error' tags: - Routes parameters: - $ref: '#/components/parameters/controlPlaneId' post: 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/Route' responses: '201': description: Successfully created Route content: application/json: schema: $ref: '#/components/schemas/Route' '401': $ref: '#/components/responses/HTTP401Error' tags: - Routes '/v2/control-planes/{controlPlaneId}/core-entities/routes/{RouteId}': 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: 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/Route' '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist tags: - Routes parameters: - $ref: '#/components/parameters/RouteId' - $ref: '#/components/parameters/controlPlaneId' put: 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/Route' responses: '200': description: Successfully upserted Route content: application/json: schema: $ref: '#/components/schemas/Route' '401': $ref: '#/components/responses/HTTP401Error' tags: - Routes '/v2/control-planes/{controlPlaneId}/core-entities/routes/{RouteId}/plugins': get: operationId: list-plugin-with-route summary: List all Plugins associated with a Route description: List all Plugins associated with a Route parameters: - $ref: '#/components/parameters/RouteId' - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing Plugins content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Plugin' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' tags: - Plugins parameters: - $ref: '#/components/parameters/controlPlaneId' post: operationId: create-plugin-with-route summary: Create a new Plugin associated with a Route description: Create a new Plugin associated with a Route parameters: - $ref: '#/components/parameters/RouteId' requestBody: description: Description of new Plugin for creation required: true content: application/json: schema: $ref: '#/components/schemas/PluginWithoutParents' responses: '201': description: Successfully created Plugin content: application/json: schema: $ref: '#/components/schemas/Plugin' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/routes/{RouteId}/plugins/{PluginId}': delete: operationId: delete-plugin-with-route summary: Delete a a Plugin associated with a Route description: Delete a a Plugin associated with a Route using ID. parameters: - $ref: '#/components/parameters/RouteId' - $ref: '#/components/parameters/PluginId' responses: '204': description: Successfully deleted Plugin or the resource didn't exist tags: - Plugins get: operationId: get-plugin-with-route summary: Get a Plugin associated with a Route description: Get a Plugin associated with a Route using ID. parameters: - $ref: '#/components/parameters/RouteId' - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/ExpandPartials' responses: '200': description: Successfully fetched Plugin content: application/json: schema: $ref: '#/components/schemas/Plugin' '404': description: Resource does not exist tags: - Plugins parameters: - $ref: '#/components/parameters/controlPlaneId' put: operationId: upsert-plugin-with-route summary: Upsert a Plugin associated with a Route description: Create or Update a Plugin associated with a Route using ID. parameters: - $ref: '#/components/parameters/RouteId' - $ref: '#/components/parameters/PluginId' requestBody: description: Description of the Plugin required: true content: application/json: schema: $ref: '#/components/schemas/PluginWithoutParents' responses: '200': description: Successfully upserted Plugin content: application/json: schema: $ref: '#/components/schemas/Plugin' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/schemas/{entityName}/validate': parameters: - name: entityName in: path description: The name of the entity required: true schema: type: string - $ref: '#/components/parameters/controlPlaneId' post: operationId: validate-entity-schema summary: Validate entity schema description: Validate schema for an entity requestBody: description: Request body of a Koko entity to validate against its schema content: application/json: schema: type: object additionalProperties: true responses: '200': $ref: '#/components/responses/ValidateEntityResponse' tags: - Schemas '/v2/control-planes/{controlPlaneId}/core-entities/schemas/partials/{partialType}': get: operationId: fetch-partial-schema summary: Get partial schema description: Get the schema for a partial responses: '200': $ref: '#/components/responses/GetPartialSchemaResponse' tags: - Schemas parameters: - name: partialType in: path description: The type of a partial required: true schema: type: string - $ref: '#/components/parameters/controlPlaneId' '/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': get: operationId: list-service summary: List all Services description: List all Services parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' - $ref: '#/components/parameters/NameContainsFilter' - $ref: '#/components/parameters/NameEqualsFilter' responses: '200': description: A successful response listing Services content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Service' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' '401': $ref: '#/components/responses/HTTP401Error' tags: - Services parameters: - $ref: '#/components/parameters/controlPlaneId' post: 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: 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: 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: 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/services/{ServiceId}/degraphql/routes': get: operationId: list-degraphql_route-with-service summary: List all Degraphql_routes associated with a Service description: List all Degraphql_routes associated with a Service parameters: - $ref: '#/components/parameters/ServiceId' - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing Degraphql_routes content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Degraphql_route' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' tags: - Degraphql_routes parameters: - $ref: '#/components/parameters/controlPlaneId' post: operationId: create-degraphql_route-with-service summary: Create a new Degraphql_route associated with a Service description: Create a new Degraphql_route associated with a Service parameters: - $ref: '#/components/parameters/ServiceId' requestBody: description: Description of new Degraphql_route for creation required: true content: application/json: schema: $ref: '#/components/schemas/Degraphql_routeWithoutParents' responses: '201': description: Successfully created Degraphql_route content: application/json: schema: $ref: '#/components/schemas/Degraphql_route' tags: - Degraphql_routes '/v2/control-planes/{controlPlaneId}/core-entities/services/{ServiceId}/degraphql/routes/{Degraphql_routeId}': delete: operationId: delete-degraphql_route-with-service summary: Delete a a Degraphql_route associated with a Service description: Delete a a Degraphql_route associated with a Service using ID or name. parameters: - $ref: '#/components/parameters/ServiceId' - $ref: '#/components/parameters/Degraphql_routeId' responses: '204': description: Successfully deleted Degraphql_route or the resource didn't exist tags: - Degraphql_routes get: operationId: get-degraphql_route-with-service summary: Get a Degraphql_route associated with a Service description: Get a Degraphql_route associated with a Service using ID or name. parameters: - $ref: '#/components/parameters/ServiceId' - $ref: '#/components/parameters/Degraphql_routeId' responses: '200': description: Successfully fetched Degraphql_route content: application/json: schema: $ref: '#/components/schemas/Degraphql_route' '404': description: Resource does not exist tags: - Degraphql_routes parameters: - $ref: '#/components/parameters/controlPlaneId' put: operationId: upsert-degraphql_route-with-service summary: Upsert a Degraphql_route associated with a Service description: Create or Update a Degraphql_route associated with a Service using ID or name. parameters: - $ref: '#/components/parameters/ServiceId' - $ref: '#/components/parameters/Degraphql_routeId' requestBody: description: Description of the Degraphql_route required: true content: application/json: schema: $ref: '#/components/schemas/Degraphql_routeWithoutParents' responses: '200': description: Successfully upserted Degraphql_route content: application/json: schema: $ref: '#/components/schemas/Degraphql_route' tags: - Degraphql_routes '/v2/control-planes/{controlPlaneId}/core-entities/services/{ServiceId}/graphql-rate-limiting-advanced/costs': get: operationId: list-graphql-rate-limiting-advanced-cost-with-service summary: List all GraphQL Cost Decorations associated with a Service description: List all GraphQL Cost Decorations associated with a Service parameters: - $ref: '#/components/parameters/ServiceId' - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing GraphQL Cost Decorations content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/GraphQLCostDecoration' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' tags: - GraphQL Cost Decorations parameters: - $ref: '#/components/parameters/controlPlaneId' post: operationId: create-graphql-rate-limiting-advanced-cost-with-service summary: Create a new GraphQL Cost Decoration associated with a Service description: Create a new GraphQL Cost Decoration associated with a Service parameters: - $ref: '#/components/parameters/ServiceId' requestBody: description: Description of new GraphQL Cost Decoration for creation required: true content: application/json: schema: $ref: '#/components/schemas/GraphQLCostDecorationWithoutParents' responses: '201': description: Successfully created GraphQL Cost Decoration content: application/json: schema: $ref: '#/components/schemas/GraphQLCostDecoration' tags: - GraphQL Cost Decorations '/v2/control-planes/{controlPlaneId}/core-entities/services/{ServiceId}/graphql-rate-limiting-advanced/costs/{GraphQLCostDecorationId}': delete: operationId: delete-graphql-rate-limiting-advanced-cost-with-service summary: Delete a a GraphQL Cost Decoration associated with a Service description: Delete a a GraphQL Cost Decoration associated with a Service using ID. parameters: - $ref: '#/components/parameters/ServiceId' - $ref: '#/components/parameters/GraphQLCostDecorationId' responses: '204': description: Successfully deleted GraphQL Cost Decoration or the resource didn't exist tags: - GraphQL Cost Decorations get: operationId: get-graphql-rate-limiting-advanced-cost-with-service summary: Get a GraphQL Cost Decoration associated with a Service description: Get a GraphQL Cost Decoration associated with a Service using ID. parameters: - $ref: '#/components/parameters/ServiceId' - $ref: '#/components/parameters/GraphQLCostDecorationId' responses: '200': description: Successfully fetched GraphQL Cost Decoration content: application/json: schema: $ref: '#/components/schemas/GraphQLCostDecoration' '404': description: Resource does not exist tags: - GraphQL Cost Decorations parameters: - $ref: '#/components/parameters/controlPlaneId' put: operationId: upsert-graphql-rate-limiting-advanced-cost-with-service summary: Upsert a GraphQL Cost Decoration associated with a Service description: Create or Update a GraphQL Cost Decoration associated with a Service using ID. parameters: - $ref: '#/components/parameters/ServiceId' - $ref: '#/components/parameters/GraphQLCostDecorationId' requestBody: description: Description of the GraphQL Cost Decoration required: true content: application/json: schema: $ref: '#/components/schemas/GraphQLCostDecorationWithoutParents' responses: '200': description: Successfully upserted GraphQL Cost Decoration content: application/json: schema: $ref: '#/components/schemas/GraphQLCostDecoration' tags: - GraphQL Cost Decorations '/v2/control-planes/{controlPlaneId}/core-entities/services/{ServiceId}/plugins': get: operationId: list-plugin-with-service summary: List all Plugins associated with a Service description: List all Plugins associated with a Service parameters: - $ref: '#/components/parameters/ServiceId' - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing Plugins content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Plugin' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' tags: - Plugins parameters: - $ref: '#/components/parameters/controlPlaneId' post: operationId: create-plugin-with-service summary: Create a new Plugin associated with a Service description: Create a new Plugin associated with a Service parameters: - $ref: '#/components/parameters/ServiceId' requestBody: description: Description of new Plugin for creation required: true content: application/json: schema: $ref: '#/components/schemas/PluginWithoutParents' responses: '201': description: Successfully created Plugin content: application/json: schema: $ref: '#/components/schemas/Plugin' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/services/{ServiceId}/plugins/{PluginId}': delete: operationId: delete-plugin-with-service summary: Delete a a Plugin associated with a Service description: Delete a a Plugin associated with a Service using ID. parameters: - $ref: '#/components/parameters/ServiceId' - $ref: '#/components/parameters/PluginId' responses: '204': description: Successfully deleted Plugin or the resource didn't exist tags: - Plugins get: operationId: get-plugin-with-service summary: Get a Plugin associated with a Service description: Get a Plugin associated with a Service using ID. parameters: - $ref: '#/components/parameters/ServiceId' - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/ExpandPartials' responses: '200': description: Successfully fetched Plugin content: application/json: schema: $ref: '#/components/schemas/Plugin' '404': description: Resource does not exist tags: - Plugins parameters: - $ref: '#/components/parameters/controlPlaneId' put: operationId: upsert-plugin-with-service summary: Upsert a Plugin associated with a Service description: Create or Update a Plugin associated with a Service using ID. parameters: - $ref: '#/components/parameters/ServiceId' - $ref: '#/components/parameters/PluginId' requestBody: description: Description of the Plugin required: true content: application/json: schema: $ref: '#/components/schemas/PluginWithoutParents' responses: '200': description: Successfully upserted Plugin content: application/json: schema: $ref: '#/components/schemas/Plugin' tags: - Plugins '/v2/control-planes/{controlPlaneId}/core-entities/services/{ServiceId}/routes': get: operationId: list-route-with-service summary: List all Routes associated with a Service description: List all Routes associated with a Service parameters: - $ref: '#/components/parameters/ServiceId' - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing Routes content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Route' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' tags: - Routes parameters: - $ref: '#/components/parameters/controlPlaneId' post: operationId: create-route-with-service summary: Create a new Route associated with a Service description: Create a new Route associated with a Service parameters: - $ref: '#/components/parameters/ServiceId' requestBody: description: Description of new Route for creation required: true content: application/json: schema: $ref: '#/components/schemas/RouteWithoutParents' responses: '201': description: Successfully created Route content: application/json: schema: $ref: '#/components/schemas/Route' tags: - Routes '/v2/control-planes/{controlPlaneId}/core-entities/services/{ServiceId}/routes/{RouteId}': delete: operationId: delete-route-with-service summary: Delete a a Route associated with a Service description: Delete a a Route associated with a Service using ID or name. parameters: - $ref: '#/components/parameters/ServiceId' - $ref: '#/components/parameters/RouteId' responses: '204': description: Successfully deleted Route or the resource didn't exist tags: - Routes get: operationId: get-route-with-service summary: Get a Route associated with a Service description: Get a Route associated with a Service using ID or name. parameters: - $ref: '#/components/parameters/ServiceId' - $ref: '#/components/parameters/RouteId' responses: '200': description: Successfully fetched Route content: application/json: schema: $ref: '#/components/schemas/Route' '404': description: Resource does not exist tags: - Routes parameters: - $ref: '#/components/parameters/controlPlaneId' put: operationId: upsert-route-with-service summary: Upsert a Route associated with a Service description: Create or Update a Route associated with a Service using ID or name. parameters: - $ref: '#/components/parameters/ServiceId' - $ref: '#/components/parameters/RouteId' requestBody: description: Description of the Route required: true content: application/json: schema: $ref: '#/components/schemas/RouteWithoutParents' responses: '200': description: Successfully upserted Route content: application/json: schema: $ref: '#/components/schemas/Route' tags: - Routes '/v2/control-planes/{controlPlaneId}/core-entities/snis': get: operationId: list-sni summary: List all SNIs description: List all SNIs parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing SNIs content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/SNI' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' '401': $ref: '#/components/responses/HTTP401Error' tags: - SNIs parameters: - $ref: '#/components/parameters/controlPlaneId' post: 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: 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: 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: 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/targets': get: operationId: list-targets summary: List all targets for a control plane description: Returns a collection of all targets for a control plane. parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': $ref: '#/components/responses/ListTargets' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Targets parameters: - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/core-entities/upstreams': get: operationId: list-upstream summary: List all Upstreams description: List all Upstreams parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing Upstreams content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Upstream' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' '401': $ref: '#/components/responses/HTTP401Error' tags: - Upstreams parameters: - $ref: '#/components/parameters/controlPlaneId' post: 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: 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: 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: 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': get: operationId: list-target-with-upstream summary: List all Targets associated with an Upstream description: List all Targets associated with an Upstream parameters: - $ref: '#/components/parameters/UpstreamIdForTarget' - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing Targets content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Target' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' tags: - Targets parameters: - $ref: '#/components/parameters/controlPlaneId' post: 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: 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: 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' put: operationId: upsert-target-with-upstream summary: Upsert a Target associated with an Upstream description: Create or Update a Target associated with an Upstream using ID or target. parameters: - $ref: '#/components/parameters/UpstreamIdForTarget' - $ref: '#/components/parameters/TargetId' requestBody: description: Description of the Target required: true content: application/json: schema: $ref: '#/components/schemas/TargetWithoutParents' responses: '200': description: Successfully upserted Target content: application/json: schema: $ref: '#/components/schemas/Target' tags: - Targets '/v2/control-planes/{controlPlaneId}/core-entities/vaults': get: operationId: list-vault summary: List all Vaults description: List all Vaults parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': description: A successful response listing Vaults content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Vault' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' '401': $ref: '#/components/responses/HTTP401Error' tags: - Vaults parameters: - $ref: '#/components/parameters/controlPlaneId' post: 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: 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: 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: 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' get: operationId: list-dp-client-certificates summary: List DP Client Certificates description: Returns a list of pinned dataplane client certificates that are 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/ListDataPlaneCertificatesResponse' '401': $ref: '#/components/responses/KonnectCPLegacyUnauthorized' '403': $ref: '#/components/responses/KonnectCPLegacyForbidden' '404': $ref: '#/components/responses/KonnectCPLegacyNotFound' tags: - DP Certificates 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}/expected-config-hash': get: operationId: get-expected-config-hash summary: Get an Expected Config Hash description: Retrieve the expected config hash for this control plane. The expected config hash can be used to verify if the config hash of a data plane node is up to date with the control plane. The config hash will be the same if they are in sync. responses: '200': $ref: '#/components/responses/GetExpectedConfigHashResponse' tags: - DP Nodes parameters: - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/expected-config-version': get: operationId: get-expected-config-version summary: Get an Expected Config Version description: 'Retrieve the expected config version for this control plane. For data planes that track the config version (e.g. those that run with Incremental Config Sync enabled), the expected config version can be used to verify if the config version of a data plane node is up to date with the control plane. The config version will be the same if they are in sync.' responses: '200': $ref: '#/components/responses/GetExpectedConfigVersionResponse' tags: - DP Nodes parameters: - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/group-member-status': parameters: - name: controlPlaneId in: path description: ID of a control plane required: true schema: type: string get: operationId: get-control-planes-id-group-member-status summary: Get Control Plane Group Member Status description: Determines the group membership status of a control plane. responses: '200': $ref: '#/components/responses/GetGroupMemberStatus' '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': parameters: - name: controlPlaneId in: path description: ID of a control plane group required: true schema: type: string get: operationId: get-control-planes-id-group-memberships summary: List Control Plane Group Memberships description: Returns an array of control planes that are a member of this control plane group. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' responses: '200': $ref: '#/components/responses/ListGroupMemberships' '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 put: operationId: put-control-planes-id-group-memberships summary: Upsert Control Plane Group Members description: Adds one or more control planes as a member of a control plane group. requestBody: $ref: '#/components/requestBodies/GroupMembershipUpsert' 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/add': parameters: - name: controlPlaneId in: path description: ID of a control plane group required: true schema: type: string 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 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/control-planes/{controlPlaneId}/group-status': parameters: - name: controlPlaneId in: path description: ID of a control plane group required: true schema: type: string get: operationId: get-control-planes-id-group-status summary: Get Control Plane Group Status description: 'Returns the status of a control plane group, including existing conflicts.' responses: '200': $ref: '#/components/responses/GetGroupStatus' '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}/nodes': get: operationId: list-dataplane-nodes summary: List Data Plane Node Records description: Returns a list of data plane node records that are associated to this control plane. A data plane node record contains metadata information for the data plane running Kong Gateway. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' responses: '200': $ref: '#/components/responses/list-nodes' tags: - DP Nodes parameters: - $ref: '#/components/parameters/controlPlaneId' '/v2/control-planes/{controlPlaneId}/nodes/{nodeId}': parameters: - $ref: '#/components/parameters/controlPlaneId' - $ref: '#/components/parameters/nodeId' get: operationId: get-nodes-node_id summary: Get a Data Plane Node Record description: Retrieve a specific data plane node record associated to this control plane. A data plane node record contains all the metadata information of the Kong Gateway dataplane. parameters: - $ref: '#/components/parameters/pagination-size' - $ref: '#/components/parameters/pagination-tags-filter' responses: '200': $ref: '#/components/responses/get-node' tags: - DP Nodes delete: operationId: delete-nodes-node_id summary: Delete Data Plane Node Record description: Remove a specific data plane node record associated to this control plane. Deleting this record does not prevent the data plane node from re-connecting to the control plane. responses: '204': description: No Content tags: - DP Nodes '/v2/control-planes/{controlPlaneId}/nodes/eol': get: operationId: get-nodes-eol summary: List End-of-Life Data Plane Node Records description: 'Returns a list of records of data plane nodes, whose versions are approaching End of Full Support/End of Life, that are associated with this control plane. Each record contains a data plane node''s id, version, and corresponding resolution message to upgrade to the closest Long Term Support version.' parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' responses: '200': $ref: '#/components/responses/list-nodes-eol' tags: - DP Nodes parameters: - $ref: '#/components/parameters/controlPlaneId' /v2/dashboards: get: operationId: dashboards-list summary: List dashboards description: Get a paginated list of dashboards that your account has access to. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/DashboardListFilters' - $ref: '#/components/parameters/DashboardSort' responses: '200': description: List of dashboards content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/DashboardResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Dashboards post: x-speakeasy-entity-operation: terraform-resource: Dashboard#create terraform-datasource: null operationId: dashboards-create summary: Create a new dashboard description: Creates a new dashboard from the provided definition. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DashboardUpdateRequest' responses: '201': description: 'The created dashboard, including generated fields.' content: application/json: schema: $ref: '#/components/schemas/DashboardResponse' '400': description: Bad request; returned when the request payload was not valid. content: application/problem+json: {} '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Dashboards '/v2/dashboards/{dashboardId}': parameters: - name: dashboardId in: path description: The dashboard's 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: Dashboard#read terraform-datasource: null operationId: dashboards-get summary: Get a single dashboard description: Get a dashboard that your account has access to. responses: '200': description: The dashboard with the given ID. content: application/json: schema: $ref: '#/components/schemas/DashboardResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Dashboards put: x-speakeasy-entity-operation: terraform-resource: Dashboard#update terraform-datasource: null operationId: dashboards-update summary: Update an existing dashboard description: 'Update an existing dashboard, replacing its definition with the provided one.' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DashboardUpdateRequest' responses: '200': description: 'The created dashboard, including generated fields.' content: application/json: schema: $ref: '#/components/schemas/DashboardResponse' '400': description: Bad request; returned when the request payload was not valid. content: application/problem+json: {} '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Dashboards delete: x-speakeasy-entity-operation: terraform-resource: Dashboard#delete terraform-datasource: null operationId: dashboards-delete summary: Delete an existing dashboard description: Delete an existing dashboard. responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Dashboards /v2/dcr-providers: post: operationId: create-dcr-provider summary: Create DCR provider description: Creates a DCR provider. requestBody: $ref: '#/components/requestBodies/CreateDcrProvider' responses: '201': $ref: '#/components/responses/CreateDcrProvider' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - DCR Providers get: operationId: list-dcr-providers summary: List DCR Providers description: Returns a paginated collection of DCR providers. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/SortDcrProviders' - $ref: '#/components/parameters/FilterDcrProvidersById' - $ref: '#/components/parameters/FilterDcrProvidersByIdShort' - $ref: '#/components/parameters/FilterDcrProvidersByIdContains' - $ref: '#/components/parameters/FilterDcrProvidersByIssuer' - $ref: '#/components/parameters/FilterDcrProvidersByIssuerShort' - $ref: '#/components/parameters/FilterDcrProvidersByIssuerContains' - $ref: '#/components/parameters/FilterDcrProvidersByName' - $ref: '#/components/parameters/FilterDcrProvidersByNameShort' - $ref: '#/components/parameters/FilterDcrProvidersByNameContains' - $ref: '#/components/parameters/FilterDcrProvidersByProviderType' - $ref: '#/components/parameters/FilterDcrProvidersByProviderTypeShort' - $ref: '#/components/parameters/FilterDcrProvidersByInitialClientId' - $ref: '#/components/parameters/FilterDcrProvidersByInitialClientIdShort' - $ref: '#/components/parameters/FilterDcrProvidersByInitialClientIdContains' - $ref: '#/components/parameters/FilterDcrProvidersByInitialClientAudience' - $ref: '#/components/parameters/FilterDcrProvidersByInitialClientAudienceShort' - $ref: '#/components/parameters/FilterDcrProvidersByInitialClientAudienceContains' responses: '200': $ref: '#/components/responses/ListDcrProviders' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - DCR Providers '/v2/dcr-providers/{dcrProviderId}': parameters: - $ref: '#/components/parameters/DcrProviderId' get: operationId: get-dcr-provider summary: Get a DCR provider description: Returns a DCR provider. responses: '200': $ref: '#/components/responses/GetDcrProvider' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - DCR Providers patch: operationId: update-dcr-provider summary: Update DCR provider description: Updates a DCR provider. requestBody: $ref: '#/components/requestBodies/UpdateDcrProvider' responses: '200': $ref: '#/components/responses/GetDcrProvider' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - DCR Providers delete: operationId: delete-dcr-provider summary: Delete DCR provider description: Deletes a DCR provider. responses: '204': description: No Content. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - DCR Providers '/v2/dcr-providers/{dcrProviderId}/verify': parameters: - $ref: '#/components/parameters/DcrProviderId' post: operationId: verify-dcr-provider summary: Verify DCR provider configuration description: 'Verifies if a DCR provider is configured properly. Returns 200 for success, 4xx for failure.' responses: '200': $ref: '#/components/responses/VerifyDcrProvider' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - DCR Providers /v3/api-attributes: get: operationId: list-api-attributes summary: List API Attributes description: List attributes across all apis parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/ApiAttributeFilters' - $ref: '#/components/parameters/ApiAttributeSort' responses: '200': $ref: '#/components/responses/ListApiAttributesResponse' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Attributes /v3/api-implementations: get: operationId: list-api-implementations summary: List API Implementations description: List gateway implementations for this API parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/ApiImplementationFilters' - $ref: '#/components/parameters/ApiImplementationSort' responses: '200': $ref: '#/components/responses/ListApiImplementationsResponse' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Implementation /v3/api-packages: get: operationId: list-api-packages summary: List API Packages description: List API packages parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/ApiPackageFilters' - $ref: '#/components/parameters/ApiPackageSort' responses: '200': $ref: '#/components/responses/ListApiPackagesResponse' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Packages post: operationId: create-api-package summary: Create API Package description: | Creates a package of APIs. An API package is a collection of APIs that can be used to group related APIs together. requestBody: $ref: '#/components/requestBodies/CreateApiPackageRequest' responses: '201': $ref: '#/components/responses/ApiPackageResponse' '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' tags: - API Packages '/v3/api-packages/{apiPackageId}/publications/{portalId}': parameters: - $ref: '#/components/parameters/ApiPackageId' - $ref: '#/components/parameters/PortalId' put: operationId: publish-api-package-to-portal summary: Publish API Package description: | Publish an API Package to a portal. requestBody: $ref: '#/components/requestBodies/PutApiPackagePublicationRequest' responses: '200': $ref: '#/components/responses/ApiPackagePublicationResponse' '400': $ref: '#/components/responses/ApiPublicationBadRequest' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Publication get: operationId: fetch-api-package-publication summary: Get an API Package Publication description: | Retrieve an API Package's publication in a portal. If the API Package is not published to the portal, a 404 response is returned. responses: '200': $ref: '#/components/responses/ApiPackagePublicationResponse' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Publication delete: operationId: delete-api-package-publication summary: Delete API Package Publication description: Unpublish an API Package from a portal. responses: '204': description: API Package was successfully unpublished from portal. '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Publication '/v3/api-packages/{packageId}': parameters: - name: packageId in: path description: The UUID API Package identifier required: true schema: type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 x-speakeasy-match: id get: operationId: get-api-package summary: Get API Package description: Get details of a specific API package. responses: '200': $ref: '#/components/responses/ApiPackageResponse' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Packages patch: operationId: patch-api-package summary: Patch API Package description: | Updates an existing API package. You can modify the name, description and version of the API Package. requestBody: $ref: '#/components/requestBodies/UpdateApiPackageRequest' responses: '200': $ref: '#/components/responses/ApiPackageResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' tags: - API Packages delete: operationId: delete-api-package summary: Delete API Package description: Deletes an API package. responses: '204': description: API package was deleted successfully. '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Packages '/v3/api-packages/{packageId}/computed-specification': parameters: - name: packageId in: path description: The UUID API Package identifier required: true schema: type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 get: operationId: get-api-package-computed-specification summary: Get the API package computed specification description: Fetches the computed specification of an API Package. 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' tags: - API Package Specification '/v3/api-packages/{packageId}/current-specification': parameters: - name: packageId in: path description: The UUID API Package identifier required: true schema: type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 x-speakeasy-match: id put: operationId: update-api-package-current-specification summary: Update API package current specification description: | Updates the current specification of an API package. 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/ApiSlugConflict' '415': $ref: '#/components/responses/UnsupportedMediaType' tags: - API Package Specification get: operationId: get-api-package-current-specification summary: Get the API package current specification description: Fetches the current specification of an API Package. 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' tags: - API Package Specification delete: operationId: delete-api-package-current-specification summary: Delete API Package current Specification description: | Deletes the current specification of an API Package. responses: '204': description: API Package Specification was deleted successfully. '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Package Specification '/v3/api-packages/{packageId}/documents': parameters: - name: packageId in: path description: The UUID API Package identifier required: true schema: type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 x-speakeasy-match: id post: operationId: create-api-package-document summary: Create API Package Document description: | Publish a new document attached to an API Package. 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/ApiPackageDocumentResponse' '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 Package Documentation get: operationId: list-api-package-documents summary: List API Package Documents description: Returns a collection of all documents for an API package. parameters: - $ref: '#/components/parameters/ApiDocumentFilters' responses: '200': $ref: '#/components/responses/ListApiPackageDocumentResponse' '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' tags: - API Package Documentation '/v3/api-packages/{packageId}/documents/{documentId}': parameters: - name: packageId in: path description: The UUID API Package identifier required: true schema: type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 x-speakeasy-match: id - $ref: '#/components/parameters/DocumentId' get: operationId: fetch-api-package-document summary: Get an API Package Document description: Returns a document for the API Package. responses: '200': $ref: '#/components/responses/ApiPackageDocumentResponse' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Package Documentation patch: operationId: update-api-package-document summary: Update API Package Document description: Updates a document for an API Package. requestBody: $ref: '#/components/requestBodies/UpdateApiDocumentRequest' responses: '200': $ref: '#/components/responses/ApiPackageDocumentResponse' '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 Package Documentation delete: operationId: delete-api-package-document summary: Delete API Package Documentation description: Removes a document from an API Package. 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 Package Documentation '/v3/api-packages/{packageId}/documents/{documentId}/move': parameters: - name: packageId in: path description: The UUID API Package identifier required: true schema: type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 x-speakeasy-match: id - $ref: '#/components/parameters/DocumentId' post: operationId: move-api-package-document summary: Move API Package Documentation description: 'This api allows the user to move a document within the document tree using the parameters parent_document_id and index. If parent_document_id is not provided, the document will be placed at the top level of the document tree. index represents a zero-indexed document order relative to its siblings under the same parent. For example, if we want to put the document at top level in first position we would send parent_document_id: null and index: 0. This api also supports using a negative index to count backwards from the end of the document list, which means you can put the document in last position by using index: -1.' requestBody: $ref: '#/components/requestBodies/MoveDocumentRequest' responses: '204': description: Document for the API Package was moved successfully. '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' '409': $ref: '#/components/responses/Conflict' tags: - API Package Documentation '/v3/api-packages/{packageId}/images/{imageType}': parameters: - $ref: '#/components/parameters/ImageType' - name: packageId in: path description: The UUID API Package identifier required: true schema: type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 x-speakeasy-match: id put: operationId: upsert-api-package-image summary: Create or Replace an API Package Image description: Create or Replace an API Package Image. The replacement image is not applied to the API Package until asynchronous validation completes successfully. requestBody: $ref: '#/components/requestBodies/ReplaceApiPackageImageRequest' responses: '200': $ref: '#/components/responses/ApiPackageImageResponse' '201': $ref: '#/components/responses/ApiPackageImageResponse' '401': $ref: '#/components/responses/ApiPackageImageUnauthorized' '403': $ref: '#/components/responses/ApiPackageImageForbidden' '404': $ref: '#/components/responses/ApiPackageImageNotFound' '409': $ref: '#/components/responses/ApiPackageImageConflict' tags: - API Package Image get: operationId: fetch-api-package-image summary: Get API Package Image description: 'Retrieves the status and metadata associated with an API package Image. Returns the latest image if it has not yet been applied (status: uploading, validating, or invalid), otherwise returns the details of currently applied image (status: valid).' responses: '200': $ref: '#/components/responses/ApiPackageImageResponse' '401': $ref: '#/components/responses/ApiPackageImageUnauthorized' '403': $ref: '#/components/responses/ApiPackageImageForbidden' '404': $ref: '#/components/responses/ApiPackageImageNotFound' tags: - API Package Image delete: operationId: delete-api-package-image summary: Delete an API Package Image description: Delete an API Package Image. responses: '204': description: API Package Image was deleted successfully. '401': $ref: '#/components/responses/ApiPackageImageUnauthorized' '403': $ref: '#/components/responses/ApiPackageImageForbidden' '404': $ref: '#/components/responses/ApiPackageImageNotFound' tags: - API Package Image '/v3/api-packages/{packageId}/images/{imageType}/raw': parameters: - $ref: '#/components/parameters/ImageType' - name: packageId in: path description: The UUID API Package identifier required: true schema: type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 x-speakeasy-match: id get: operationId: fetch-api-package-raw-image summary: Get an API Package Raw Image description: 'Retrieves the raw image of an API Package. Only the currently applied image (status: valid) can be retrieved.' responses: '302': description: Redirect to the image URL. headers: Location: description: The CDN URL of the image. schema: type: string '401': $ref: '#/components/responses/ApiPackageImageUnauthorized' '403': $ref: '#/components/responses/ApiPackageImageForbidden' '404': $ref: '#/components/responses/ApiPackageImageNotFound' tags: - API Package Image '/v3/api-packages/{packageId}/operations': parameters: - name: packageId in: path description: The UUID API Package identifier required: true schema: type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 x-speakeasy-match: id get: operationId: list-api-packages-operations summary: List API Packages Operations description: List API packages operations parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/ApiPackageOperationsFilters' - $ref: '#/components/parameters/ApiPackageOperationsSort' responses: '200': $ref: '#/components/responses/ListApiPackagesOperationsResponse' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Package Operations patch: operationId: update-api-package-operations summary: Update API Package Operation description: Update API Package Operations requestBody: $ref: '#/components/requestBodies/UpdateApiPackageOperationRequest' responses: '204': description: API operations were successfully added or removed to the package. '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' tags: - API Package Operations '/v3/api-packages/{packageId}/operations/{operationId}': parameters: - name: packageId in: path description: The UUID API Package identifier required: true schema: type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 x-speakeasy-match: id - name: operationId in: path description: The UUID API Operation identifier required: true schema: type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 x-speakeasy-match: id get: operationId: get-api-packages-operation summary: Get API Packages Operation description: Get API packages operation responses: '200': $ref: '#/components/responses/ApiPackageOperationResponse' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Package Operations delete: operationId: remove-api-package-operation summary: Remove API Package Operation description: Remove an operation from an API package. responses: '204': description: API operation was removed successfully from the package. '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Package Operations /v3/api-publications: get: operationId: list-api-publications summary: List Publications description: Returns a collection of all API Publications. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/ApiPublicationFilters' - $ref: '#/components/parameters/ApiPublicationSort' responses: '200': $ref: '#/components/responses/ListApiPublicationResponse' '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' tags: - API Publication /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 get: operationId: list-apis summary: List APIs description: Returns a collection of all APIs. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/ApiFilters' - $ref: '#/components/parameters/ApiSort' responses: '200': $ref: '#/components/responses/ListApiResponse' '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' 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 get: operationId: list-api-documents summary: List API Documents description: Returns a collection of all documents for an API. parameters: - $ref: '#/components/parameters/ApiDocumentFilters' responses: '200': $ref: '#/components/responses/ListApiDocumentResponse' '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' 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}/documents/{documentId}/move': parameters: - $ref: '#/components/parameters/ApiId' - $ref: '#/components/parameters/DocumentId' post: operationId: move-api-document summary: Move API Documentation description: 'This api allows the user to move a document within the document tree using the parameters parent_document_id and index. If parent_document_id is not provided, the document will be placed at the top level of the document tree. index represents a zero-indexed document order relative to its siblings under the same parent. For example, if we want to put the document at top level in first position we would send parent_document_id: null and index: 0. This api also supports using a negative index to count backwards from the end of the document list, which means you can put the document in last position by using index: -1.' requestBody: $ref: '#/components/requestBodies/MoveDocumentRequest' responses: '204': description: Document for the API was moved successfully. '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' '409': $ref: '#/components/responses/Conflict' tags: - API Documentation '/v3/apis/{apiId}/images/{imageType}': parameters: - $ref: '#/components/parameters/ApiId' - $ref: '#/components/parameters/ImageType' put: operationId: upsert-api-image summary: Create or Replace an API Image description: Create or Replace an API Image. The replacement image is not applied to the API until asynchronous validation completes successfully. requestBody: $ref: '#/components/requestBodies/ReplaceApiImageRequest' responses: '200': $ref: '#/components/responses/ApiImageResponse' '201': $ref: '#/components/responses/ApiImageResponse' '401': $ref: '#/components/responses/ApiImageUnauthorized' '403': $ref: '#/components/responses/ApiImageForbidden' '404': $ref: '#/components/responses/ApiImageNotFound' '409': $ref: '#/components/responses/ApiImageConflict' tags: - API Image get: operationId: fetch-api-image summary: Get API Image description: 'Retrieves the status and metadata associated with an API Image. Returns the latest image if it has not yet been applied (status: uploading, validating, or invalid), otherwise returns the details of currently applied image (status: valid).' responses: '200': $ref: '#/components/responses/ApiImageResponse' '401': $ref: '#/components/responses/ApiImageUnauthorized' '403': $ref: '#/components/responses/ApiImageForbidden' '404': $ref: '#/components/responses/ApiImageNotFound' tags: - API Image delete: operationId: delete-api-image summary: Delete an API Image description: Delete an API Image. responses: '204': description: API Image was deleted successfully. '401': $ref: '#/components/responses/ApiImageUnauthorized' '403': $ref: '#/components/responses/ApiImageForbidden' '404': $ref: '#/components/responses/ApiImageNotFound' tags: - API Image '/v3/apis/{apiId}/images/{imageType}/raw': parameters: - $ref: '#/components/parameters/ApiId' - $ref: '#/components/parameters/ImageType' get: operationId: fetch-api-raw-image summary: Get an API Raw Image description: 'Retrieves the raw image of an API. Only the currently applied image (status: valid) can be retrieved.' responses: '302': description: Redirect to the image URL. headers: Location: description: The CDN URL of the image. schema: type: string '401': $ref: '#/components/responses/ApiImageUnauthorized' '403': $ref: '#/components/responses/ApiImageForbidden' '404': $ref: '#/components/responses/ApiImageNotFound' tags: - API Image '/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}/operations': parameters: - $ref: '#/components/parameters/ApiId' get: operationId: list-api-operations summary: List API Operations description: | Returns a list of operations for an API. Returns 404 if the API is not configured for access control enforcement. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/ApiOperationFilters' responses: '200': $ref: '#/components/responses/ListApiOperationResponse' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Operations '/v3/apis/{apiId}/operations/{operationId}': parameters: - $ref: '#/components/parameters/ApiId' - $ref: '#/components/parameters/OperationId' get: operationId: fetch-api-operation summary: Get an API Operation description: | Returns a specific operation for an API. Returns 404 if the API is not configured for access control enforcement. responses: '200': $ref: '#/components/responses/ApiOperationResponse' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Operations '/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}/registrations': parameters: - $ref: '#/components/parameters/ApiId' get: operationId: list-api-registrations summary: List API Registrations description: Returns a paginated list of registrations for an API. parameters: - $ref: '#/components/parameters/ApiRegistrationsFilters' - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' responses: '200': $ref: '#/components/responses/ApiRegistrationsList' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API '/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 get: operationId: list-api-specs summary: List API Specifications description: | Returns a list of specifications for an API. The specification can be of type OpenAPI or AsyncAPI. **Note:** You can only have one specification for an API. This endpoint is deprecated and will be removed: use /versions instead. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/ApiSpecFilters' responses: '200': $ref: '#/components/responses/ListApiSpecResponse' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' 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 get: operationId: list-api-versions summary: List API Versions description: | Returns a list of versions for an API. The version can be of type OpenAPI or AsyncAPI. **Note:** You can only have one version for an API. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/ApiVersionFilters' - $ref: '#/components/parameters/ApiVersionSort' responses: '200': $ref: '#/components/responses/ListApiVersionResponse' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' 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/apis/validate-specification: post: operationId: validate-specification summary: Validate API Specification description: Validates the content and type (OpenAPI or AsyncAPI) of a potential API specification without associating it with a specific API. requestBody: $ref: '#/components/requestBodies/ValidateApiSpecRequest' responses: '201': $ref: '#/components/responses/ValidateApiSpecSuccessResponse' '400': description: Bad Request - Either the request format is invalid or the specification content failed validation. content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '415': $ref: '#/components/responses/UnsupportedMediaType' tags: - API Specification '/v3/applications/{applicationId}': parameters: - $ref: '#/components/parameters/ApplicationId' get: operationId: get-application-unscoped summary: Get an Application description: 'Returns the configuration of a single application in any portal. If an application is linked to a DCR Provider, the `dcr_provider.id` and `client_id` can be used to correlate it. An application manages a set of credentials and registrations for specific APIs.' responses: '200': $ref: '#/components/responses/GetApplication' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Applications '/v3/authenticate/{organizationLoginPath}': get: operationId: authenticate-sso summary: SSO Callback description: Callback for authenticating via an organization's IdP parameters: - name: organizationLoginPath in: path description: The login path for the organization. required: true schema: type: string - name: return_to in: query description: Return destination for the callback. schema: type: string responses: '302': description: Found '400': $ref: '#/components/responses/IdentityBadRequest' '401': $ref: '#/components/responses/IdentityUnauthenticated' servers: - url: 'https://global.api.konghq.com/' tags: - Authentication /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-provider: get: operationId: get-idp-configuration summary: Get the IdP Configuration description: Fetch the IdP configuration. responses: '200': $ref: '#/components/responses/IdPConfiguration' '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: operationId: update-idp-configuration summary: Update IdP Configuration description: Update the IdP configuration. requestBody: $ref: '#/components/requestBodies/UpdateIdPConfiguration' responses: '200': $ref: '#/components/responses/IdPConfiguration' '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-provider/team-group-mappings: get: operationId: get-team-group-mappings summary: Get a Team Group Mappings description: |- Retrieves the mappings between Konnect Teams and Identity Provider Groups. Returns a 400 error if an Identity Provider has not yet been configured. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' responses: '200': $ref: '#/components/responses/TeamGroupMappingCollection' '400': $ref: '#/components/responses/IdentityBadRequest' '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/IdentityPermissionDenied' servers: - url: 'https://global.api.konghq.com/' tags: - Auth Settings patch: operationId: patch-team-group-mappings summary: Patch Mappings by Team ID description: |- Allows partial updates to the mappings between Konnect Teams and Identity Provider Groups. The request body must be keyed on team ID. For a given team ID, the given group list is a complete replacement. To remove all mappings for a given team, provide an empty group list. Returns a 400 error if an Identity Provider has not yet been configured, or if a team ID in the request body is not found or is not a UUID. requestBody: $ref: '#/components/requestBodies/PatchTeamGroupMappings' responses: '200': $ref: '#/components/responses/TeamGroupMappingCollection' '400': $ref: '#/components/responses/IdentityBadRequest' '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/IdentityPermissionDenied' servers: - url: 'https://global.api.konghq.com/' tags: - Auth Settings /v3/identity-provider/team-mappings: put: operationId: update-idp-team-mappings summary: Update Team Mappings description: Updates the IdP group to Konnect team mapping. requestBody: $ref: '#/components/requestBodies/UpdateTeamMappings' responses: '200': $ref: '#/components/responses/TeamMappingCollection' '400': $ref: '#/components/responses/IdentityBadRequest' '401': $ref: '#/components/responses/IdentityPermissionDenied' '404': $ref: '#/components/responses/IdentityNotFound' '412': $ref: '#/components/responses/PreconditionFailed' servers: - url: 'https://global.api.konghq.com/' tags: - Auth Settings get: operationId: get-idp-team-mappings summary: Get a Team Mapping description: Fetch the IdP group to Konnect team mapping. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' responses: '200': $ref: '#/components/responses/TeamMappingResponse' '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/IdentityPermissionDenied' '404': $ref: '#/components/responses/IdentityNotFound' '412': $ref: '#/components/responses/PreconditionFailed' servers: - url: 'https://global.api.konghq.com/' tags: - Auth Settings /v3/identity-providers: get: operationId: get-identity-providers summary: List Identity Providers description: | Retrieves the identity providers available within the organization. This operation provides information about various identity providers for SAML or OIDC authentication integrations. parameters: - name: filter in: query description: Filter identity providers returned in the response. required: false schema: type: object properties: type: $ref: '#/components/schemas/StringFieldEqualsFilter' style: deepObject responses: '200': $ref: '#/components/responses/IdentityProviders' '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/IdentityPermissionDenied' servers: - url: 'https://global.api.konghq.com/' tags: - Auth Settings 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 get: operationId: list-idp-team-group-mappings summary: List Team Group Mappings description: | Returns a paginated list of team group mappings for the specified identity provider. Mappings define the relationship between identity provider groups and Konnect teams. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' - $ref: '#/components/parameters/PageBefore' - name: filter in: query description: Filter mappings by team ID or group name. required: false schema: type: object properties: team_id: $ref: '#/components/schemas/StringFieldEqualsFilter' group: $ref: '#/components/schemas/StringFieldEqualsFilter' style: deepObject responses: '200': $ref: '#/components/responses/IdpTeamGroupMappingsCollection' '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 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 - 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/invites: post: operationId: invite-user summary: Invite User description: 'Sends an invitation email to invite a user to the Konnect organization. The email contains a link with a one time token to accept the invitation. Upon accepting the invitation, the user is directed to https://cloud.konghq.com/login to complete registration.' requestBody: $ref: '#/components/requestBodies/InviteUser' responses: '201': description: Created '400': $ref: '#/components/responses/IdentityBadRequest' '409': $ref: '#/components/responses/IdentityConflict' '429': $ref: '#/components/responses/RateLimited' servers: - url: 'https://global.api.konghq.com/' tags: - Invites /v3/openmeter/addons: get: operationId: list-product-catalog-addons summary: List add-ons description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. List all add-ons. parameters: - $ref: '#/components/parameters/PagePaginationQuery' - name: sort in: query description: |- Sort add-ons returned in the response. Supported sort attributes are: - `id` - `key` - `name` - `created_at` (default) - `updated_at` The `asc` suffix is optional as the default sort order is ascending. The `desc` suffix is used to specify a descending order. required: false schema: $ref: '#/components/schemas/SortQuery' explode: false style: form - name: filter in: query description: Filter add-ons returned in the response. required: false schema: $ref: '#/components/schemas/ListAddonsParamsFilter' style: deepObject responses: '200': description: Page paginated response. content: application/json: schema: $ref: '#/components/schemas/AddonPagePaginatedResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - OpenMeter Product Catalog post: operationId: create-product-catalog-addon summary: Create add-on description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Create a new add-on. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateAddonRequest' responses: '201': description: Addon created response. content: application/json: schema: $ref: '#/components/schemas/Addon' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - OpenMeter Product Catalog '/v3/openmeter/addons/{addonId}': put: operationId: update-product-catalog-addon summary: Update add-on description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Update an add-on by id. parameters: - name: addonId in: path required: true schema: $ref: '#/components/schemas/ULID' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpsertAddonRequest' responses: '200': description: Addon upsert response. content: application/json: schema: $ref: '#/components/schemas/Addon' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '410': $ref: '#/components/responses/Gone' tags: - OpenMeter Product Catalog get: operationId: get-product-catalog-addon summary: Get add-on description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Get add-on by id. parameters: - name: addonId in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '200': description: Addon response. content: application/json: schema: $ref: '#/components/schemas/Addon' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '410': $ref: '#/components/responses/Gone' tags: - OpenMeter Product Catalog delete: operationId: delete-product-catalog-addon summary: Soft delete add-on description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Soft delete add-on by id. parameters: - name: addonId in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '204': description: Deleted response. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Product Catalog '/v3/openmeter/addons/{addonId}/archive': post: operationId: archive-product-catalog-addon summary: Archive add-on version description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Archive an add-on version. parameters: - name: addonId in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '200': description: Addon updated response. content: application/json: schema: $ref: '#/components/schemas/Addon' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Product Catalog '/v3/openmeter/addons/{addonId}/publish': post: operationId: publish-product-catalog-addon summary: Publish add-on version description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Publish an add-on version. parameters: - name: addonId in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '200': description: Addon updated response. content: application/json: schema: $ref: '#/components/schemas/Addon' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Product Catalog /v3/openmeter/apps: get: operationId: list-apps summary: List apps description: List installed apps. parameters: - $ref: '#/components/parameters/PagePaginationQuery' responses: '200': description: Page paginated response. content: application/json: schema: $ref: '#/components/schemas/AppPagePaginatedResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - OpenMeter Apps '/v3/openmeter/apps/{appId}': get: operationId: get-app summary: Get app description: Get an installed app. parameters: - name: appId in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '200': description: App response. content: application/json: schema: $ref: '#/components/schemas/BillingApp' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Apps /v3/openmeter/customers: post: operationId: create-customer summary: Create customer requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateCustomerRequest' responses: '201': description: Customer created response. content: application/json: schema: $ref: '#/components/schemas/BillingCustomer' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - OpenMeter Customers get: operationId: list-customers summary: List customers parameters: - $ref: '#/components/parameters/PagePaginationQuery' - name: sort in: query description: |- Sort customers returned in the response. Supported sort attributes are: - `id` - `name` (default) - `created_at` The `asc` suffix is optional as the default sort order is ascending. The `desc` suffix is used to specify a descending order. required: false schema: $ref: '#/components/schemas/SortQuery' explode: false style: form - name: filter in: query description: |- Filter customers returned in the response. To filter customers by key add the following query param: filter[key]=my-db-id required: false schema: $ref: '#/components/schemas/ListCustomersParamsFilter' style: deepObject responses: '200': description: Page paginated response. content: application/json: schema: $ref: '#/components/schemas/CustomerPagePaginatedResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - OpenMeter Customers '/v3/openmeter/customers/{customerId}': get: operationId: get-customer summary: Get customer parameters: - name: customerId in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '200': description: Customer response. content: application/json: schema: $ref: '#/components/schemas/BillingCustomer' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Customers put: operationId: upsert-customer summary: Upsert customer parameters: - name: customerId in: path required: true schema: $ref: '#/components/schemas/ULID' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpsertCustomerRequest' responses: '200': description: Customer upsert response. content: application/json: schema: $ref: '#/components/schemas/BillingCustomer' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '410': $ref: '#/components/responses/Gone' tags: - OpenMeter Customers delete: operationId: delete-customer summary: Delete customer parameters: - name: customerId in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '204': description: Deleted response. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Customers '/v3/openmeter/customers/{customerId}/billing': get: operationId: get-customer-billing summary: Get customer billing data parameters: - name: customerId in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '200': description: CustomerBillingData response. content: application/json: schema: $ref: '#/components/schemas/BillingCustomerData' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Customers put: operationId: update-customer-billing summary: Update customer billing data parameters: - name: customerId in: path required: true schema: $ref: '#/components/schemas/ULID' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpsertCustomerBillingDataRequest' responses: '200': description: CustomerBillingData upsert response. content: application/json: schema: $ref: '#/components/schemas/BillingCustomerData' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '410': $ref: '#/components/responses/Gone' tags: - OpenMeter Customers '/v3/openmeter/customers/{customerId}/billing/app-data': put: operationId: update-customer-billing-app-data summary: Update customer billing app data parameters: - name: customerId in: path required: true schema: $ref: '#/components/schemas/ULID' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpsertAppCustomerDataRequest' responses: '200': description: AppCustomerData upsert response. content: application/json: schema: $ref: '#/components/schemas/BillingAppCustomerData' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '410': $ref: '#/components/responses/Gone' tags: - OpenMeter Customers '/v3/openmeter/customers/{customerId}/billing/stripe/checkout-sessions': post: operationId: create-customer-stripe-checkout-session summary: Create Stripe Checkout Session description: |- Create a [Stripe Checkout Session](https://docs.stripe.com/payments/checkout) for the customer. Creates a Checkout Session for collecting payment method information from customers. The session operates in "setup" mode, which collects payment details without charging the customer immediately. The collected payment method can be used for future subscription billing. For hosted checkout sessions, redirect customers to the returned URL. For embedded sessions, use the client_secret to initialize Stripe.js in your application. parameters: - name: customerId in: path required: true schema: $ref: '#/components/schemas/ULID' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BillingCustomerStripeCreateCheckoutSessionRequest' responses: '201': description: CreateStripeCheckoutSessionResult created response. content: application/json: schema: $ref: '#/components/schemas/BillingAppStripeCreateCheckoutSessionResult' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '410': $ref: '#/components/responses/Gone' tags: - OpenMeter Customers '/v3/openmeter/customers/{customerId}/billing/stripe/portal-sessions': post: operationId: create-customer-stripe-portal-session summary: Create Stripe customer portal session description: |- Create Stripe Customer Portal Session. Useful to redirect the customer to the Stripe Customer Portal to manage their payment methods, change their billing address and access their invoice history. Only returns URL if the customer billing profile is linked to a stripe app and customer. parameters: - name: customerId in: path required: true schema: $ref: '#/components/schemas/ULID' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BillingCustomerStripeCreateCustomerPortalSessionRequest' responses: '201': description: CreateStripeCustomerPortalSessionResult created response. content: application/json: schema: $ref: '#/components/schemas/BillingAppStripeCreateCustomerPortalSessionResult' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '410': $ref: '#/components/responses/Gone' tags: - OpenMeter Customers '/v3/openmeter/customers/{customerId}/charges': get: operationId: list-customer-charges summary: List customer charges description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. List customer charges. Returns the customer's charges that are represented as either flat fee or usage-based charges. parameters: - $ref: '#/components/parameters/PagePaginationQuery' - name: customerId in: path required: true schema: $ref: '#/components/schemas/ULID' - name: sort in: query description: |- Sort charges returned in the response. Supported sort attributes are: - `id` - `created_at` - `service_period.from` - `billing_period.from` required: false schema: $ref: '#/components/schemas/SortQuery' explode: false style: form - name: filter in: query description: |- Filter charges. To filter charges by status add the following query param: `filter[status][oeq]=created,active` required: false schema: $ref: '#/components/schemas/ListChargesParamsFilter' style: deepObject - name: expand in: query description: |- Expand full objects for referenced entities. Supported values are: - `real_time_usage`: Expand the charge's real-time usage. required: false schema: type: array items: $ref: '#/components/schemas/BillingChargesExpand' style: form responses: '200': description: Page paginated response. content: application/json: schema: $ref: '#/components/schemas/ChargePagePaginatedResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Customers post: operationId: create-customer-charges summary: Create customer charge description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Create customer charge. parameters: - name: customerId in: path required: true schema: $ref: '#/components/schemas/ULID' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateChargeRequest' responses: '201': description: Charge created response. content: application/json: schema: $ref: '#/components/schemas/BillingCharge' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - OpenMeter Customers '/v3/openmeter/customers/{customerId}/credits/adjustments': post: operationId: create-credit-adjustment summary: Create a credit adjustment description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. A credit adjustment can be used to make manual adjustments to a customer's credit balance. Supported use-cases: - Usage correction parameters: - name: customerId in: path required: true schema: $ref: '#/components/schemas/ULID' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateCreditAdjustmentRequest' responses: '201': description: CreditAdjustment created response. content: application/json: schema: $ref: '#/components/schemas/BillingCreditAdjustment' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Customers '/v3/openmeter/customers/{customerId}/credits/balance': get: operationId: get-customer-credit-balance summary: Get a customer's credit balance description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Get a credit balance. parameters: - name: customerId in: path required: true schema: $ref: '#/components/schemas/ULID' - name: timestamp in: query description: |- Return the credit balance as of this timestamp. Defaults to the current time. required: false schema: $ref: '#/components/schemas/DateTime' explode: false style: form - name: filter in: query required: false schema: $ref: '#/components/schemas/GetCreditBalanceParamsFilter' style: deepObject responses: '200': description: CreditBalances response. content: application/json: schema: $ref: '#/components/schemas/BillingCreditBalances' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Customers '/v3/openmeter/customers/{customerId}/credits/grants': post: operationId: create-credit-grant summary: Create a new credit grant description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Create a new credit grant. A credit grant represents an allocation of prepaid credits to a customer. parameters: - name: customerId in: path required: true schema: $ref: '#/components/schemas/ULID' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateCreditGrantRequest' responses: '201': description: CreditGrant created response. content: application/json: schema: $ref: '#/components/schemas/BillingCreditGrant' '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: - OpenMeter Customers get: operationId: list-credit-grants summary: List credit grants description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. List credit grants. parameters: - name: customerId in: path required: true schema: $ref: '#/components/schemas/ULID' - $ref: '#/components/parameters/PagePaginationQuery' - name: filter in: query description: Filter credit grants returned in the response. required: false schema: $ref: '#/components/schemas/ListCreditGrantsParamsFilter' style: deepObject responses: '200': description: Page paginated response. content: application/json: schema: $ref: '#/components/schemas/CreditGrantPagePaginatedResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Customers '/v3/openmeter/customers/{customerId}/credits/grants/{creditGrantId}': get: operationId: get-credit-grant summary: Get a credit grant description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Get a credit grant. parameters: - name: customerId in: path required: true schema: $ref: '#/components/schemas/ULID' - name: creditGrantId in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '200': description: CreditGrant response. content: application/json: schema: $ref: '#/components/schemas/BillingCreditGrant' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Customers '/v3/openmeter/customers/{customerId}/credits/grants/{creditGrantId}/settlement/external': post: operationId: update-credit-grant-external-settlement summary: Update credit grant external settlement status description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Update the payment settlement status of an externally funded credit grant. Use this endpoint to synchronize the payment state of an external payment with the system so that revenue recognition and credit availability work as expected. parameters: - name: customerId in: path required: true schema: $ref: '#/components/schemas/ULID' - name: creditGrantId in: path required: true schema: $ref: '#/components/schemas/ULID' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateCreditGrantExternalSettlementRequest' responses: '200': description: CreditGrant updated response. content: application/json: schema: $ref: '#/components/schemas/BillingCreditGrant' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Customers '/v3/openmeter/customers/{customerId}/credits/transactions': get: operationId: list-credit-transactions summary: List credit transactions description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. List credit transactions for a customer. Returns an immutable, chronological record of credit movements: funded credits and consumed credits. Transactions are returned in reverse chronological order by default. parameters: - name: customerId in: path required: true schema: $ref: '#/components/schemas/ULID' - $ref: '#/components/parameters/CursorPaginationQuery' - name: filter in: query description: Filter credit transactions returned in the response. required: false schema: $ref: '#/components/schemas/ListCreditTransactionsParamsFilter' style: deepObject responses: '200': description: Cursor paginated response. content: application/json: schema: $ref: '#/components/schemas/CreditTransactionPaginatedResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Customers '/v3/openmeter/customers/{customerId}/entitlement-access': get: operationId: list-customer-entitlement-access summary: List customer entitlement access parameters: - name: customerId in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '200': description: List the customer's active features and their access. content: application/json: schema: $ref: '#/components/schemas/ListCustomerEntitlementAccessResponseData' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Entitlements /v3/openmeter/defaults/tax-codes: get: operationId: get-organization-default-tax-codes summary: Get organization default tax codes description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. responses: '200': description: OrganizationDefaultTaxCodes response. content: application/json: schema: $ref: '#/components/schemas/OrganizationDefaultTaxCodes' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Defaults put: operationId: update-organization-default-tax-codes summary: Update organization default tax codes description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateOrganizationDefaultTaxCodesRequest' responses: '200': description: OrganizationDefaultTaxCodes upsert response. content: application/json: schema: $ref: '#/components/schemas/OrganizationDefaultTaxCodes' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Defaults /v3/openmeter/events: get: operationId: list-metering-events summary: List metering events description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. List ingested events. parameters: - $ref: '#/components/parameters/CursorPaginationQuery' - name: filter in: query description: |- Filter events returned in the response. To filter events by subject add the following query param: filter[subject][eq]=customer-1 required: false schema: $ref: '#/components/schemas/ListEventsParamsFilter' style: deepObject - name: sort in: query description: |- Sort events returned in the response. Supported sort attributes are: - `time` (default) - `ingested_at` - `stored_at` When omitted, events are sorted by `time desc` (most recent first). When a sort field is provided without a suffix, it sorts descending. Append the `asc` suffix to sort ascending, or the `desc` suffix to sort descending. required: false schema: $ref: '#/components/schemas/SortQuery' explode: false style: form responses: '200': description: Cursor paginated response. content: application/json: schema: $ref: '#/components/schemas/IngestedEventPaginatedResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Metering Events post: operationId: ingest-metering-events summary: Ingest metering events description: Ingests an event or batch of events following the CloudEvents specification. requestBody: required: true content: application/cloudevents+json: schema: $ref: '#/components/schemas/MeteringEvent' application/cloudevents-batch+json: schema: type: array items: $ref: '#/components/schemas/MeteringEvent' application/json: schema: anyOf: - $ref: '#/components/schemas/MeteringEvent' - type: array items: $ref: '#/components/schemas/MeteringEvent' responses: '202': description: The events have been ingested and are being processed asynchronously. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Metering Events /v3/openmeter/features: get: operationId: list-features summary: List features description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. List all features. parameters: - $ref: '#/components/parameters/PagePaginationQuery' - name: sort in: query description: |- Sort features returned in the response. Supported sort attributes are: - `key` - `name` - `created_at` (default) - `updated_at` The `asc` suffix is optional as the default sort order is ascending. The `desc` suffix is used to specify a descending order. required: false schema: $ref: '#/components/schemas/SortQuery' explode: false style: form - name: filter in: query description: |- Filter features returned in the response. To filter features by meter_id add the following query param: filter[meter_id][oeq]= required: false schema: $ref: '#/components/schemas/ListFeatureParamsFilter' style: deepObject responses: '200': description: Page paginated response. content: application/json: schema: $ref: '#/components/schemas/FeaturePagePaginatedResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - OpenMeter Features post: operationId: create-feature summary: Create feature description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Create a feature. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateFeatureRequest' responses: '201': description: Feature created response. content: application/json: schema: $ref: '#/components/schemas/Feature' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - OpenMeter Features '/v3/openmeter/features/{featureId}': get: operationId: get-feature summary: Get feature description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Get a feature by id. parameters: - name: featureId in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '200': description: Feature response. content: application/json: schema: $ref: '#/components/schemas/Feature' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '410': $ref: '#/components/responses/Gone' tags: - OpenMeter Features patch: operationId: update-feature summary: Update feature description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Update a feature by id. Currently only the unit_cost field can be updated. parameters: - name: featureId in: path required: true schema: $ref: '#/components/schemas/ULID' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateFeatureRequest' responses: '200': description: Feature updated response. content: application/json: schema: $ref: '#/components/schemas/Feature' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Features delete: operationId: delete-feature summary: Delete feature description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Delete a feature by id. parameters: - name: featureId in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '204': description: Deleted response. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Features '/v3/openmeter/features/{featureId}/cost/query': post: operationId: query-feature-cost summary: Query feature cost description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Query the cost of a feature. parameters: - name: featureId in: path required: true schema: $ref: '#/components/schemas/ULID' requestBody: required: false content: application/json: schema: $ref: '#/components/schemas/MeterQueryRequest' responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/FeatureCostQueryResult' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Features /v3/openmeter/llm-cost/overrides: get: operationId: list-llm-cost-overrides summary: List LLM cost overrides description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. List per-namespace price overrides. parameters: - name: filter in: query required: false schema: $ref: '#/components/schemas/ListLLMCostPricesParamsFilter' style: deepObject - $ref: '#/components/parameters/PagePaginationQuery' responses: '200': description: Page paginated response. content: application/json: schema: $ref: '#/components/schemas/PricePagePaginatedResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - OpenMeter LLM Cost post: operationId: create-llm-cost-override summary: Create LLM cost override description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Create a per-namespace price override. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LLMCostOverrideCreate' responses: '201': description: Price created response. content: application/json: schema: $ref: '#/components/schemas/LLMCostPrice' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - OpenMeter LLM Cost '/v3/openmeter/llm-cost/overrides/{priceId}': delete: operationId: delete-llm-cost-override summary: Delete LLM cost override description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Delete a per-namespace price override. parameters: - name: priceId in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '204': description: Deleted response. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter LLM Cost /v3/openmeter/llm-cost/prices: get: operationId: list-llm-cost-prices summary: List LLM cost prices description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. List global LLM cost prices. Returns prices with overrides applied if any. parameters: - name: filter in: query description: Filter prices. required: false schema: $ref: '#/components/schemas/ListLLMCostPricesParamsFilter' style: deepObject - name: sort in: query description: |- Sort prices returned in the response. Supported sort attributes are: - `id` - `provider.id` - `model.id` (default) - `effective_from` - `effective_to` The `asc` suffix is optional as the default sort order is ascending. The `desc` suffix is used to specify a descending order. required: false schema: $ref: '#/components/schemas/SortQuery' explode: false style: form - $ref: '#/components/parameters/PagePaginationQuery' responses: '200': description: Page paginated response. content: application/json: schema: $ref: '#/components/schemas/PricePagePaginatedResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - OpenMeter LLM Cost '/v3/openmeter/llm-cost/prices/{priceId}': get: operationId: get-llm-cost-price summary: Get LLM cost price description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Get a specific LLM cost price by ID. Returns the price with overrides applied if any. parameters: - name: priceId in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/LLMCostPrice' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter LLM Cost /v3/openmeter/meters: post: operationId: create-meter summary: Create meter description: Create a meter. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateMeterRequest' responses: '201': description: Meter created response. content: application/json: schema: $ref: '#/components/schemas/Meter' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Meters get: operationId: list-meters summary: List meters description: List meters. parameters: - $ref: '#/components/parameters/PagePaginationQuery' - name: sort in: query description: |- Sort meters returned in the response. Supported sort attributes are: - `key` - `name` - `aggregation` - `created_at` (default) - `updated_at` The `asc` suffix is optional as the default sort order is ascending. The `desc` suffix is used to specify a descending order. required: false schema: $ref: '#/components/schemas/SortQuery' explode: false style: form - name: filter in: query description: |- Filter meters returned in the response. To filter meters by key add the following query param: filter[key]=my-meter-key required: false schema: $ref: '#/components/schemas/ListMetersParamsFilter' style: deepObject responses: '200': description: Page paginated response. content: application/json: schema: $ref: '#/components/schemas/MeterPagePaginatedResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Meters '/v3/openmeter/meters/{meterId}': get: operationId: get-meter summary: Get meter description: Get a meter by ID. parameters: - name: meterId in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '200': description: Meter response. content: application/json: schema: $ref: '#/components/schemas/Meter' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Meters put: operationId: update-meter summary: Update meter description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Update a meter. parameters: - name: meterId in: path required: true schema: $ref: '#/components/schemas/ULID' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateMeterRequest' responses: '200': description: Meter updated response. content: application/json: schema: $ref: '#/components/schemas/Meter' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Meters delete: operationId: delete-meter summary: Delete meter description: Delete a meter. parameters: - name: meterId in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '204': description: Deleted response. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Meters '/v3/openmeter/meters/{meterId}/query': post: operationId: query-meter summary: Query meter description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Query a meter for usage. Set `Accept: application/json` (the default) to get a structured JSON response. Set `Accept: text/csv` to download the same data as a CSV file suitable for spreadsheets. The CSV columns, in order, are: `from, to, [subject,] [customer_id, customer_key, customer_name,] , value` The `subject` column is emitted only when `subject` is in the query's `group_by_dimensions`. The three `customer_*` columns are emitted together only when `customer_id` is in the query's `group_by_dimensions`. parameters: - name: meterId in: path required: true schema: $ref: '#/components/schemas/ULID' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MeterQueryRequest' responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/MeterQueryResult' text/csv: schema: type: string '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Meters /v3/openmeter/plans: get: operationId: list-plans summary: List plans description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. List all plans. parameters: - $ref: '#/components/parameters/PagePaginationQuery' - name: sort in: query description: |- Sort plans returned in the response. Supported sort attributes are: - `id` - `key` - `version` - `created_at` (default) - `updated_at` required: false schema: $ref: '#/components/schemas/SortQuery' explode: false style: form - name: filter in: query description: Filter plans returned in the response. required: false schema: $ref: '#/components/schemas/ListPlansParamsFilter' style: deepObject responses: '200': description: Page paginated response. content: application/json: schema: $ref: '#/components/schemas/PlanPagePaginatedResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - OpenMeter Product Catalog post: operationId: create-plan summary: Create plan description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Create a new plan. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreatePlanRequest' responses: '201': description: Plan created response. content: application/json: schema: $ref: '#/components/schemas/BillingPlan' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - OpenMeter Product Catalog '/v3/openmeter/plans/{planId}': put: operationId: update-plan summary: Update plan description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Update a plan by id. parameters: - name: planId in: path required: true schema: $ref: '#/components/schemas/ULID' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpsertPlanRequest' responses: '200': description: Plan upsert response. content: application/json: schema: $ref: '#/components/schemas/BillingPlan' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '410': $ref: '#/components/responses/Gone' tags: - OpenMeter Product Catalog get: operationId: get-plan summary: Get plan description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Get a plan by id. parameters: - name: planId in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '200': description: Plan response. content: application/json: schema: $ref: '#/components/schemas/BillingPlan' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '410': $ref: '#/components/responses/Gone' tags: - OpenMeter Product Catalog delete: operationId: delete-plan summary: Delete plan description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Delete a plan by id. parameters: - name: planId in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '204': description: Deleted response. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Product Catalog '/v3/openmeter/plans/{planId}/addons': get: operationId: list-plan-addons summary: List add-ons for plan description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. List add-ons associated with a plan. parameters: - name: planId in: path required: true schema: $ref: '#/components/schemas/ULID' - $ref: '#/components/parameters/PagePaginationQuery' responses: '200': description: Page paginated response. content: application/json: schema: $ref: '#/components/schemas/PlanAddonPagePaginatedResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Product Catalog post: operationId: create-plan-addon summary: Add add-on to plan description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Add an add-on to a plan. parameters: - name: planId in: path required: true schema: $ref: '#/components/schemas/ULID' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreatePlanAddonRequest' responses: '201': description: PlanAddon created response. content: application/json: schema: $ref: '#/components/schemas/PlanAddon' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Product Catalog '/v3/openmeter/plans/{planId}/addons/{planAddonId}': get: operationId: get-plan-addon summary: Get add-on association for plan description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Get an add-on association for a plan. parameters: - name: planId in: path required: true schema: $ref: '#/components/schemas/ULID' - name: planAddonId in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '200': description: PlanAddon response. content: application/json: schema: $ref: '#/components/schemas/PlanAddon' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Product Catalog put: operationId: update-plan-addon summary: Update add-on association for plan description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Update an add-on association for a plan. parameters: - name: planId in: path required: true schema: $ref: '#/components/schemas/ULID' - name: planAddonId in: path required: true schema: $ref: '#/components/schemas/ULID' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpsertPlanAddonRequest' responses: '200': description: PlanAddon upsert response. content: application/json: schema: $ref: '#/components/schemas/PlanAddon' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Product Catalog delete: operationId: delete-plan-addon summary: Remove add-on from plan description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Remove an add-on from a plan. parameters: - name: planId in: path required: true schema: $ref: '#/components/schemas/ULID' - name: planAddonId in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '204': description: Deleted response. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Product Catalog '/v3/openmeter/plans/{planId}/archive': post: operationId: archive-plan summary: Archive plan version description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Archive a plan version. parameters: - name: planId in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '200': description: Plan updated response. content: application/json: schema: $ref: '#/components/schemas/BillingPlan' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Product Catalog '/v3/openmeter/plans/{planId}/publish': post: operationId: publish-plan summary: Publish plan version description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Publish a plan version. parameters: - name: planId in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '200': description: Plan updated response. content: application/json: schema: $ref: '#/components/schemas/BillingPlan' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Product Catalog /v3/openmeter/profiles: get: operationId: list-billing-profiles summary: List billing profiles description: List billing profiles. parameters: - $ref: '#/components/parameters/PagePaginationQuery' responses: '200': description: Page paginated response. content: application/json: schema: $ref: '#/components/schemas/BillingProfilePagePaginatedResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - OpenMeter Billing Settings post: operationId: create-billing-profile summary: Create a new billing profile description: |- Create a new billing profile. Billing profiles contain the settings for billing and controls invoice generation. An organization can have multiple billing profiles defined. A billing profile is linked to a specific app. This association is established during the billing profile's creation and remains immutable. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateBillingProfileRequest' responses: '201': description: BillingProfile created response. content: application/json: schema: $ref: '#/components/schemas/BillingProfile' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - OpenMeter Billing Settings '/v3/openmeter/profiles/{id}': get: operationId: get-billing-profile summary: Get a billing profile description: Get a billing profile. parameters: - name: id in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '200': description: BillingProfile response. content: application/json: schema: $ref: '#/components/schemas/BillingProfile' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Billing Settings put: operationId: update-billing-profile summary: Update a billing profile description: Update a billing profile. parameters: - name: id in: path required: true schema: $ref: '#/components/schemas/ULID' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpsertBillingProfileRequest' responses: '200': description: BillingProfile updated response. content: application/json: schema: $ref: '#/components/schemas/BillingProfile' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Billing Settings delete: operationId: delete-billing-profile summary: Delete a billing profile description: |- Delete a billing profile. Only such billing profiles can be deleted that are: - not the default profile - not pinned to any customer using customer overrides - only have finalized invoices parameters: - name: id in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '204': description: Deleted response. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Billing Settings /v3/openmeter/subscriptions: post: operationId: create-subscription summary: Create subscription requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BillingSubscriptionCreate' responses: '201': description: Subscription created response. content: application/json: schema: $ref: '#/components/schemas/BillingSubscription' '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: - OpenMeter Subscriptions get: operationId: list-subscriptions summary: List subscriptions parameters: - $ref: '#/components/parameters/PagePaginationQuery' - name: sort in: query description: |- Sort subscriptions returned in the response. Supported sort attributes are: - `id` - `active_from` (default) - `active_to` The `asc` suffix is optional as the default sort order is ascending. The `desc` suffix is used to specify a descending order. required: false schema: $ref: '#/components/schemas/SortQuery' explode: false style: form - name: filter in: query description: Filter subscriptions. required: false schema: $ref: '#/components/schemas/ListSubscriptionsParamsFilter' style: deepObject responses: '200': description: Page paginated response. content: application/json: schema: $ref: '#/components/schemas/SubscriptionPagePaginatedResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Subscriptions '/v3/openmeter/subscriptions/{subscriptionId}': get: operationId: get-subscription summary: Get subscription parameters: - name: subscriptionId in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '200': description: Subscription response. content: application/json: schema: $ref: '#/components/schemas/BillingSubscription' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Subscriptions '/v3/openmeter/subscriptions/{subscriptionId}/addons': get: operationId: list-subscription-addons summary: List subscription addons description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. List the add-ons of a subscription. parameters: - name: subscriptionId in: path required: true schema: $ref: '#/components/schemas/ULID' - $ref: '#/components/parameters/PagePaginationQuery' - name: sort in: query description: |- Sort subscription addons returned in the response. Supported sort attributes are: - `id` - `created_at` (default) - `updated_at` The `asc` suffix is optional as the default sort order is ascending. The `desc` suffix is used to specify a descending order. required: false schema: $ref: '#/components/schemas/SortQuery' explode: false style: form responses: '200': description: Page paginated response. content: application/json: schema: $ref: '#/components/schemas/SubscriptionAddonPagePaginatedResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Subscriptions '/v3/openmeter/subscriptions/{subscriptionId}/addons/{subscriptionAddonId}': get: operationId: get-subscription-addon summary: Get add-on association for subscription description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Get an add-on association for a subscription. parameters: - name: subscriptionId in: path required: true schema: $ref: '#/components/schemas/ULID' - name: subscriptionAddonId in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '200': description: SubscriptionAddon response. content: application/json: schema: $ref: '#/components/schemas/SubscriptionAddon' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Subscriptions '/v3/openmeter/subscriptions/{subscriptionId}/cancel': post: operationId: cancel-subscription summary: Cancel subscription description: |- Cancels the subscription. Will result in a scheduling conflict if there are other subscriptions scheduled to start after the cancelation time. parameters: - name: subscriptionId in: path required: true schema: $ref: '#/components/schemas/ULID' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BillingSubscriptionCancel' responses: '200': description: Subscription updated response. content: application/json: schema: $ref: '#/components/schemas/BillingSubscription' '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: - OpenMeter Subscriptions '/v3/openmeter/subscriptions/{subscriptionId}/change': post: operationId: change-subscription summary: Change subscription description: |- Closes a running subscription and starts a new one according to the specification. Can be used for upgrades, downgrades, and plan changes. parameters: - name: subscriptionId in: path required: true schema: $ref: '#/components/schemas/ULID' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BillingSubscriptionChange' responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/BillingSubscriptionChangeResponse' '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: - OpenMeter Subscriptions '/v3/openmeter/subscriptions/{subscriptionId}/unschedule-cancelation': post: operationId: unschedule-cancelation summary: Unschedule subscription cancelation description: Unschedules the subscription cancelation. parameters: - name: subscriptionId in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '200': description: Subscription updated response. content: application/json: schema: $ref: '#/components/schemas/BillingSubscription' '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: - OpenMeter Subscriptions /v3/openmeter/tax-codes: post: operationId: create-tax-code summary: Create tax code description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateTaxCodeRequest' responses: '201': description: TaxCode created response. content: application/json: schema: $ref: '#/components/schemas/BillingTaxCode' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - OpenMeter Tax get: operationId: list-tax-codes summary: List tax codes description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. parameters: - $ref: '#/components/parameters/PagePaginationQuery' - name: include_deleted in: query description: Include deleted tax codes in the response. required: false schema: type: boolean explode: false style: form responses: '200': description: Page paginated response. content: application/json: schema: $ref: '#/components/schemas/TaxCodePagePaginatedResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - OpenMeter Tax '/v3/openmeter/tax-codes/{taxCodeId}': get: operationId: get-tax-code summary: Get tax code description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. parameters: - name: taxCodeId in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '200': description: TaxCode response. content: application/json: schema: $ref: '#/components/schemas/BillingTaxCode' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Tax put: operationId: upsert-tax-code summary: Upsert tax code description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. parameters: - name: taxCodeId in: path required: true schema: $ref: '#/components/schemas/ULID' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpsertTaxCodeRequest' responses: '200': description: TaxCode upsert response. content: application/json: schema: $ref: '#/components/schemas/BillingTaxCode' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '410': $ref: '#/components/responses/Gone' tags: - OpenMeter Tax delete: operationId: delete-tax-code summary: Delete tax code description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. parameters: - name: taxCodeId in: path required: true schema: $ref: '#/components/schemas/ULID' responses: '204': description: Deleted response. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - OpenMeter Tax /v3/organizations/impersonation: get: operationId: get-impersonation-settings summary: Get Impersonation Settings description: 'Returns Impersonation Settings, which determines if user impersonation is allowed for an organization.' responses: '200': $ref: '#/components/responses/GetImpersonationSettingsResponse' '401': $ref: '#/components/responses/IdentityUnauthenticated' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Impersonation Settings patch: operationId: update-impersonation-settings summary: Update Impersonation Settings description: Updates Impersonation Settings. requestBody: $ref: '#/components/requestBodies/UpdateImpersonationSettingsRequest' responses: '200': $ref: '#/components/responses/UpdateImpersonationSettingsResponse' '400': $ref: '#/components/responses/IdentityBadRequest' '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Impersonation Settings /v3/organizations/me: get: operationId: get-organizations-me summary: Get My Organization description: Returns the organization of the user identified in the token of the request. responses: '200': $ref: '#/components/responses/MeOrganization' '401': $ref: '#/components/responses/IdentityUnauthenticated' servers: - url: 'https://global.api.konghq.com/' tags: - Me /v3/portal-roles: get: operationId: list-portal-roles summary: List Portal Roles description: List roles that can be assigned to teams in a portal. Each role provides a set of permissions to perform an action on a resource. responses: '200': $ref: '#/components/responses/ListRoles' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Portal Team Roles /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 true, the portal will be deleted, automatically deleting all API publications. If the force param is not set, the deletion will only succeed if there are no APIs currently published.' schema: type: string default: 'false' enum: - 'true' - 'false' 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}/api-publications': parameters: - $ref: '#/components/parameters/PortalId' get: operationId: list-portal-api-publications summary: List Portal API Publications description: | Returns a collection of all API Publications for a specific portal. **Access Control**: Requires permission to view the specified portal. Once portal access is granted, all API publications for that portal are returned regardless of the caller's individual API permissions. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/PortalApiPublicationFilters' - $ref: '#/components/parameters/PortalApiPublicationSort' responses: '200': $ref: '#/components/responses/ListPublicationResponse' '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' tags: - API Publication '/v3/portals/{portalId}/application-registrations': parameters: - $ref: '#/components/parameters/PortalId' get: operationId: list-registrations summary: List Registrations by Portal description: 'Lists all of the application registrations and their current status (e.g., approved or pending) for this portal. Each registration is associated with a single API. Access is provided through the credentials issued to the application that contains each registration.' parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/SortListAllApplicationRegistrations' - name: filter in: query description: Filter application registrations returned in the response. required: false schema: type: object properties: developer_id: $ref: '#/components/schemas/UuidFieldFilter' application_name: $ref: '#/components/schemas/StringFieldFilter' status: $ref: '#/components/schemas/StringFieldFilter' style: deepObject responses: '200': $ref: '#/components/responses/ListApplicationRegistrations' '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: - Application Registrations '/v3/portals/{portalId}/applications': post: x-speakeasy-entity-operation: PortalApplication#create operationId: create-application summary: Create Application description: 'Creates a new application for this portal. The application must be assigned to a developer or a team. An application can be registered for various APIs, issuing credentials for API access. If using DCR, an application will be linked to an Identity Provider''s application by its `client_id`.' parameters: - $ref: '#/components/parameters/PortalId' requestBody: $ref: '#/components/requestBodies/CreateApplication' responses: '201': $ref: '#/components/responses/GetApplication' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Applications x-terraform-id-to-object: auth_strategy_id: auth_strategy.id get: operationId: list-applications summary: List Applications description: 'Lists applications in this portal. Each application can be registered for various APIs, issuing credentials for API access. If using DCR, an application will be linked to an Identity Provider''s application by its `client_id`.' parameters: - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/SortApplications' - name: filter in: query description: Filter applications returned in the response. required: false schema: $ref: '#/components/schemas/FilterApplications' style: deepObject responses: '200': $ref: '#/components/responses/ListApplications' '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: - Applications '/v3/portals/{portalId}/applications/{applicationId}': parameters: - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/ApplicationId' get: x-speakeasy-entity-operation: terraform-resource: PortalApplication#read terraform-datasource: null operationId: get-application summary: Get an Application by Portal description: 'Returns the configuration of a single application in this portal. If an application is linked to a DCR Provider, the `dcr_provider.id` and `client_id` can be used to correlate it. An application manages a set of credentials and registrations for specific APIs.' responses: '200': $ref: '#/components/responses/GetApplication' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Applications patch: x-speakeasy-entity-operation: PortalApplication#update operationId: update-application summary: Update Application description: Updates an application. requestBody: $ref: '#/components/requestBodies/UpdateApplication' responses: '200': $ref: '#/components/responses/GetApplication' '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: - Applications delete: x-speakeasy-entity-operation: PortalApplication#delete operationId: delete-application summary: Delete Application by Portal description: 'Delete a single application in this portal, along with its registrations and credentials.' responses: '204': description: The application has been deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Applications '/v3/portals/{portalId}/applications/{applicationId}/credentials': parameters: - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/ApplicationId' get: operationId: list-credentials-by-application summary: List Credentials by Application description: 'Lists all credentials for an application. This endpoint returns both API key credentials and DCR credentials, depending on the auth strategy the application uses: - For DCR applications: Credential information is retrieved from the identity provider using provider-specific APIs - For Key-Auth applications: Returns information about credentials Basic information about the credential is returned, but not the credential secret itself.' parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' responses: '200': $ref: '#/components/responses/ListApplicationCredentials' '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: - Applications '/v3/portals/{portalId}/applications/{applicationId}/developers': parameters: - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/ApplicationId' get: operationId: list-developers-by-application summary: List Developers by Application description: Lists each developer that can access the given application for this portal. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/SortApplicationDevelopers' - name: filter in: query description: Filter application developers returned in the response. required: false schema: type: object properties: id: $ref: '#/components/schemas/StringFieldFilter' style: deepObject responses: '200': $ref: '#/components/responses/ListApplicationDevelopers' '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: - Applications '/v3/portals/{portalId}/applications/{applicationId}/registrations': parameters: - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/ApplicationId' post: x-speakeasy-entity-operation: PortalApplicationRegistration#create operationId: create-application-registration summary: Create Registration description: Creates a new registration for this application to access a specific API. Registrations created through the portal management API will respect the auto-approve settings of the portal and/or API publication. API publications that do not use auto-approve must be manually approved by an administrator after creation. requestBody: $ref: '#/components/requestBodies/CreateApplicationRegistration' responses: '201': $ref: '#/components/responses/GetApplicationRegistration' '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': description: Conflict content: application/problem+json: schema: $ref: '#/components/schemas/ConflictError' tags: - Application Registrations x-terraform-id-to-object: api_id: api.id get: operationId: list-registrations-by-application summary: List Registrations by Application description: 'Lists each API that this application is registered for and their current status (e.g., pending, approved, rejected, revoked).' parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/SortApplicationRegistrations' - name: filter in: query description: Filter application registrations returned in the response. required: false schema: type: object properties: status: $ref: '#/components/schemas/StringFieldFilter' style: deepObject responses: '200': $ref: '#/components/responses/ListApplicationRegistrations' '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: - Application Registrations '/v3/portals/{portalId}/applications/{applicationId}/registrations/{registrationId}': parameters: - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/ApplicationId' - $ref: '#/components/parameters/RegistrationId' get: x-speakeasy-entity-operation: terraform-resource: PortalApplicationRegistration#read terraform-datasource: null operationId: get-application-registration summary: Get a Registration description: Returns information about an application's registration status for a particular API. responses: '200': $ref: '#/components/responses/GetApplicationRegistration' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Application Registrations patch: x-speakeasy-entity-operation: PortalApplicationRegistration#update operationId: update-application-registration summary: Update Registration description: 'Updates the status of a particular application registration to an API. Approved application registrations will allow API traffic to the corresponding API. Revoked, rejected, or pending will not allow API traffic.' requestBody: $ref: '#/components/requestBodies/UpdateApplicationRegistration' responses: '200': $ref: '#/components/responses/UpdateApplicationRegistration' '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: - Application Registrations delete: x-speakeasy-entity-operation: PortalApplicationRegistration#delete operationId: delete-application-registration summary: Delete Registration description: |- Deletes an application registration, which if currently approved will immediately block API traffic to the API. Note: Developers can request a new application registration for the given API as long as they have RBAC access to consume. responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Application Registrations '/v3/portals/{portalId}/applications/{applicationId}/registrations/{registrationId}/consumer': parameters: - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/ApplicationId' - $ref: '#/components/parameters/RegistrationId' put: operationId: update-application-registration-consumer summary: Update application consumer mapping description: |- Associates an existing Gateway Consumer with the application in the Gateway context resolved from the specified registration. The consumer must already exist and be accessible within the API's Gateway context. If multiple registrations of the same application target APIs implemented in the same Gateway context, they share the same effective consumer mapping. Updating the consumer mapping for one registration updates the mapping for all registrations that resolve to the same Gateway context. requestBody: $ref: '#/components/requestBodies/UpdateRegistrationConsumerRequest' 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: - Application Registrations delete: operationId: delete-application-registration-consumer summary: Delete application consumer mapping description: Removes the Gateway Consumer mapping associated with the application in the Gateway context resolved from the specified registration. responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Application Registrations '/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/favicon/raw': parameters: - $ref: '#/components/parameters/PortalId' get: operationId: get-portal-asset-favicon-raw summary: Get Favicon (Raw) description: Returns the raw favicon of the portal. responses: '200': $ref: '#/components/responses/PortalAssetResponseRaw' '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}/assets/logo/raw': parameters: - $ref: '#/components/parameters/PortalId' get: operationId: get-portal-asset-logo-raw summary: Get Logo (Raw) description: Returns the raw logo of the portal. responses: '200': $ref: '#/components/responses/PortalAssetResponseRaw' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Assets '/v3/portals/{portalId}/audit-log-replay-job': parameters: - $ref: '#/components/parameters/PortalId' put: operationId: update-portal-audit-log-replay-job summary: Update Portal Audit Log Replay Job description: Updates a job to re-send audit logs to an portal's webhook. requestBody: $ref: '#/components/requestBodies/ReplacePortalAuditLogReplayJob' responses: '202': $ref: '#/components/responses/PortalAuditLogReplayJob' '400': $ref: '#/components/responses/PortalReplayJobBadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/PortalReplayJobConflict' tags: - Portal Audit Logs get: operationId: get-portal-audit-log-replay-job summary: Get Portal Audit Log Replay Job description: Returns the audit log replay job's configuration and status. responses: '200': $ref: '#/components/responses/PortalAuditLogReplayJob' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Audit Logs '/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}/audit-log-webhook/status': parameters: - $ref: '#/components/parameters/PortalId' get: operationId: get-portal-audit-log-webhook-status summary: Get Portal Audit Log Webhook Status description: Returns status of the audit log webhook. responses: '200': $ref: '#/components/responses/PortalAuditLogWebhookStatus' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' 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 patch: operationId: update-portal-customization summary: Update Customization description: 'Update the portal customization options, merging properties.' 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}/default-content': post: operationId: create-default-content summary: Create Boilerplate Content description: 'Creates a default collection of pages, snippets, and customization config for a portal if they do not already exist. This endpoint is optional, you can call it to populate a newly created developer portal with default content, but it is not required. Existing pages and snippets will not be modified or deleted. If used, it is typically called once per portal shortly after creation.' parameters: - $ref: '#/components/parameters/PortalId' responses: '201': $ref: '#/components/responses/DefaultContentResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Pages '/v3/portals/{portalId}/developers': parameters: - $ref: '#/components/parameters/PortalId' post: x-speakeasy-entity-operation: PortalDeveloper#create operationId: create-developer summary: Create Developer Account description: Creates a new developer account in the specified portal. SAML login is currently not supported. requestBody: $ref: '#/components/requestBodies/CreateDeveloper' responses: '201': $ref: '#/components/responses/CreateDeveloperResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': description: Conflict content: application/problem+json: schema: $ref: '#/components/schemas/ConflictError' tags: - Portal Developers get: operationId: list-portal-developers summary: List Developers description: Lists the developers that have registered for this portal. Each developer can be registered to one portal and must be approved to login unless using the developer auto-approve setting. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/SortDevelopers' - name: filter in: query description: Filter developers returned in the response. required: false schema: type: object properties: name: $ref: '#/components/schemas/StringFieldFilter' status: $ref: '#/components/schemas/StringFieldFilter' email: $ref: '#/components/schemas/StringFieldFilter' style: deepObject responses: '200': $ref: '#/components/responses/ListDevelopers' '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 Developers '/v3/portals/{portalId}/developers/{developerId}': parameters: - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/DeveloperId' get: x-speakeasy-entity-operation: terraform-resource: PortalDeveloper#read terraform-datasource: null operationId: get-developer summary: Get a Developer description: 'Returns information about a single developer in this portal. Each developer manages a set applications, providing them credentials to access registered APIs. Developer registration access can be limited to specific APIs using RBAC.' responses: '200': $ref: '#/components/responses/GetDeveloper' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Developers patch: x-speakeasy-entity-operation: PortalDeveloper#update operationId: update-developer summary: Update Developer description: 'Updates the status of a particular developer. Approved developers have access to login to the portal. Revoked, rejected, or pending are not allowed to login. Even if a developer''s status is no longer approved, they will still be able to using any existing credentials generated while they were approved, until each application registration is revoked or deleted.' requestBody: $ref: '#/components/requestBodies/UpdateDeveloper' responses: '200': $ref: '#/components/responses/UpdateDeveloper' '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 Developers delete: x-speakeasy-entity-operation: PortalDeveloper#delete operationId: delete-developer summary: Delete Developer description: 'Deletes a developer, which will discontinue their ability to login, view any non-public resources, and delete all applications owned by them. All credentials issued to the developer will no longer provide access to any APIs. A deleted developer''s unique email must be re-registered and approved to gain access again.' responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Developers '/v3/portals/{portalId}/developers/{developerId}/teams': parameters: - $ref: '#/components/parameters/DeveloperId' - $ref: '#/components/parameters/PortalId' get: operationId: list-portal-developer-teams summary: List Developer Teams description: Lists the teams to which a developer belongs. Each team a developer is a member of grants them various roles that provide permissions to perform actions on certain resources. 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: can_own_applications: $ref: '#/components/schemas/BooleanFieldFilter' style: deepObject responses: '200': $ref: '#/components/responses/ListPortalTeams' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Team Membership '/v3/portals/{portalId}/email-config': parameters: - $ref: '#/components/parameters/PortalId' get: operationId: get-email-config summary: Get the email config for the portal description: Retrieve the email config for the portal responses: '200': $ref: '#/components/responses/PortalEmailConfigResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Emails post: operationId: create-portal-email-config summary: Create the email config for a portal description: Create the email config for a portal requestBody: $ref: '#/components/requestBodies/PostPortalEmailConfigPayload' responses: '201': $ref: '#/components/responses/PortalEmailConfigResponse' '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': description: Conflict content: application/problem+json: schema: $ref: '#/components/schemas/ConflictError' tags: - Portal Emails patch: operationId: update-portal-email-config summary: Setup the email config for a portal description: Setup the email config for a portal requestBody: $ref: '#/components/requestBodies/PatchPortalEmailConfigPayload' responses: '200': $ref: '#/components/responses/PortalEmailConfigResponse' '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 Emails delete: operationId: delete-portal-email-config summary: Delete portal email config description: Delete portal email config responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Emails '/v3/portals/{portalId}/email-delivery': parameters: - $ref: '#/components/parameters/PortalId' get: operationId: get-email-delivery summary: Get the email delivery for the portal description: Retrieve the email delivery for the portal responses: '200': description: success content: application/json: schema: $ref: '#/components/schemas/EmailDelivery' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' deprecated: true tags: - Portal Emails patch: operationId: update-email-delivery summary: Setup the email delivery for a portal description: Setup the email delivery for a portal requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EmailDeliveryUpdatePayload' responses: '200': description: success content: application/json: schema: $ref: '#/components/schemas/EmailDelivery' '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' deprecated: true tags: - Portal Emails delete: operationId: delete-email-delivery summary: Delete email delivery description: Delete email delivery responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' deprecated: true tags: - Portal Emails '/v3/portals/{portalId}/email-templates': parameters: - $ref: '#/components/parameters/PortalId' get: operationId: list-portal-custom-email-templates summary: List custom email templates for a portal description: List custom email templates responses: '200': $ref: '#/components/responses/ListEmailTemplates' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Emails '/v3/portals/{portalId}/email-templates/{templateName}': parameters: - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/EmailTemplateName' get: operationId: get-portal-custom-email-template summary: Get custom email template used in a portal description: Get custom email template responses: '200': $ref: '#/components/responses/EmailTemplate' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Emails patch: operationId: update-portal-custom-email-template summary: Update custom email template for a portal description: Update custom email template requestBody: $ref: '#/components/requestBodies/PatchCustomPortalEmailTemplatePayload' responses: '200': $ref: '#/components/responses/PatchEmailTemplateResponse' '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 Emails delete: operationId: delete-portal-custom-email-template summary: Delete custom email template description: Delete custom email template for a portal. This will revert to using the default template responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Emails '/v3/portals/{portalId}/email-templates/{templateName}/send-test-email': post: operationId: post-portal-custom-email-test-send summary: Send Test Email description: |- Send a test email based on the portal's email template, using the content provided in the request. The email will be sent to the Konnect user who triggered the test. parameters: - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/EmailTemplateName' requestBody: $ref: '#/components/requestBodies/PostSendTestEmailPayload' 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: - Portal Emails '/v3/portals/{portalId}/identity-provider/team-group-mappings': parameters: - $ref: '#/components/parameters/PortalId' get: operationId: list-portal-team-group-mappings summary: List Team Group Mappings description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Lists mappings between Konnect portal teams and Identity Provider (IdP) groups. Returns a 400 error if an IdP has not yet been configured. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' responses: '200': $ref: '#/components/responses/PortalTeamGroupMappingCollection' '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 patch: operationId: update-portal-team-group-mappings summary: Update Team Group Mappings description: |- **Pre-release Endpoint** This endpoint is currently in beta and is subject to change. Allows partial updates to the mappings between Konnect portal teams and Identity Provider (IdP) groups. The request body must be keyed on team ID. For a given team ID, the given group list is a complete replacement. To remove all mappings for a given team, provide an empty group list. Returns a 400 error if an IdP has not yet been configured, or if a team ID in the request body is not found or is not a UUID. requestBody: $ref: '#/components/requestBodies/UpdatePortalTeamGroupMappings' responses: '200': $ref: '#/components/responses/PortalTeamGroupMappingCollection' '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}/identity-providers': parameters: - $ref: '#/components/parameters/PortalId' get: operationId: get-portal-identity-providers summary: List Identity Providers description: | Retrieves the identity providers available within the portal. This operation provides information about various identity providers for SAML or OIDC authentication integrations. parameters: - name: filter in: query description: Filter identity providers returned in the response. required: false schema: type: object properties: type: $ref: '#/components/schemas/StringFieldEqualsFilter' style: deepObject responses: '200': $ref: '#/components/responses/PortalIdentityProviders' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Portal Auth Settings post: operationId: create-portal-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/PortalCreateIdentityProviderRequest' responses: '201': $ref: '#/components/responses/PortalIdentityProvider' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/Conflict' tags: - Portal Auth Settings '/v3/portals/{portalId}/identity-providers/{id}': parameters: - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/IdentityProviderId' get: operationId: get-portal-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/PortalIdentityProvider' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Auth Settings patch: operationId: update-portal-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/PortalUpdateIdentityProviderRequest' responses: '200': $ref: '#/components/responses/PortalIdentityProvider' '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: - Portal Auth Settings delete: operationId: delete-portal-identity-provider summary: Delete Identity Provider description: | Deletes an existing identity provider configuration. This operation removes a specific identity provider from the portal. 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: - Portal Auth Settings '/v3/portals/{portalId}/identity-providers/{id}/team-group-mappings': parameters: - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/IdentityProviderId' get: operationId: list-portal-idp-team-group-mappings summary: List Team Group Mappings description: | Returns a paginated list of team group mappings for the specified identity provider. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageAfter' - $ref: '#/components/parameters/PageBefore' - name: filter in: query description: Filter mappings by team ID or group name. required: false schema: type: object properties: team_id: $ref: '#/components/schemas/StringFieldEqualsFilter' group: $ref: '#/components/schemas/StringFieldEqualsFilter' style: deepObject responses: '200': $ref: '#/components/responses/PortalIdpTeamGroupMappingCollection' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Auth Settings post: operationId: create-portal-idp-team-group-mapping summary: Create Team Group Mapping description: | Creates a new team group mapping for the specified identity provider. requestBody: $ref: '#/components/requestBodies/CreatePortalIdpTeamGroupMapping' responses: '201': $ref: '#/components/responses/PortalIdpTeamGroupMapping' '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: - Portal Auth Settings '/v3/portals/{portalId}/identity-providers/{id}/team-group-mappings/{mappingId}': parameters: - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/IdentityProviderId' - $ref: '#/components/parameters/TeamGroupMappingId' get: operationId: get-portal-idp-team-group-mapping summary: Get Team Group Mapping description: Returns the team group mapping for the specified ID. responses: '200': $ref: '#/components/responses/PortalIdpTeamGroupMapping' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Auth Settings delete: operationId: delete-portal-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/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Auth Settings '/v3/portals/{portalId}/integrations': get: operationId: get-portal-integrations summary: Get Portal Integration Configurations description: Returns the portal integration configurations. parameters: - $ref: '#/components/parameters/PortalId' responses: '200': $ref: '#/components/responses/PortalIntegrationsResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Integrations put: operationId: upsert-portal-integrations summary: Replace Integration Configurations description: Replace the portal integration configurations. parameters: - $ref: '#/components/parameters/PortalId' requestBody: $ref: '#/components/requestBodies/ReplacePortalIntegrations' responses: '200': $ref: '#/components/responses/PortalIntegrationsResponse' '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 Integrations patch: operationId: update-portal-integrations summary: Update Integration Configurations description: 'Update the portal integration configurations, merging properties.' parameters: - $ref: '#/components/parameters/PortalId' requestBody: $ref: '#/components/requestBodies/UpdatePortalIntegrations' responses: '200': $ref: '#/components/responses/PortalIntegrationsResponse' '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 Integrations '/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 get: operationId: list-portal-ip-allow-list summary: List the IP allow list for portal description: | Lists the IP allow list configuration for a portal. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageBefore' - $ref: '#/components/parameters/PageAfter' responses: '200': $ref: '#/components/responses/PortalSourceIPRestrictionPaginatedResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' 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 patch: operationId: update-portal-ip-allow-list summary: Update an IP allow list for a portal description: | Update an IP allow list for a portal. requestBody: $ref: '#/components/requestBodies/UpdatePortalSourceIPRestriction' 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': get: operationId: list-portal-pages summary: List Pages description: Returns the tree view of custom pages that have been created for this portal. The full tree is returned in one response; this endpoint is not paginated. parameters: - $ref: '#/components/parameters/SortPortalPages' - $ref: '#/components/parameters/PortalId' - name: filter in: query description: Filter pages returned in the response. required: false schema: $ref: '#/components/schemas/PortalPagesFilterParameters' style: deepObject responses: '200': $ref: '#/components/responses/ListPortalPages' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' tags: - Pages x-speakeasy-group: Portal 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}/pages/{pageId}/move': post: operationId: move-portal-pages summary: Move Page description: 'This api allows the user to move a page within the page tree using the parameters parent_page_id and index. If parent_page_id is not provided, the page will be placed at the top level of the page tree. index represents a zero-indexed page order relative to its siblings under the same parent. For example, if we want to put the page at top level in first position we would send parent_page_id: null and index: 0. This api also supports using a negative index to count backwards from the end of the page list, which means you can put the page in last position by using index: -1.' parameters: - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/PageId' requestBody: $ref: '#/components/requestBodies/MovePage' responses: '201': description: The document has been moved '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: - Pages x-speakeasy-group: Portal Pages '/v3/portals/{portalId}/snippets': get: operationId: list-portal-snippets summary: List Snippets description: Returns the paginated list of custom snippets that have been created for this portal. parameters: - $ref: '#/components/parameters/SortPortalSnippets' - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - name: filter in: query description: Filter snippets returned in the response. required: false schema: $ref: '#/components/schemas/PortalSnippetsFilterParameters' style: deepObject responses: '200': $ref: '#/components/responses/ListPortalSnippets' '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 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' get: operationId: list-portal-teams summary: List Teams description: Lists the developer teams in a portal. Each team can contain any developer and developers can be part of multiple 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/StringFieldFilter' can_own_applications: $ref: '#/components/schemas/BooleanFieldFilter' style: deepObject responses: '200': $ref: '#/components/responses/ListPortalTeams' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Teams 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' get: operationId: list-portal-team-roles summary: List Team Roles description: Lists the roles belonging to a developer team. Each role provides permissions to perform actions on a specified resource or collection. responses: '200': $ref: '#/components/responses/AssignedPortalRoleCollection' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Team Roles 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/portals/{portalId}/teams/{teamId}/developers': parameters: - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/TeamId' get: operationId: list-portal-team-developers summary: List Team Developers description: List a team's developers. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - name: filter in: query description: Filter developers returned in the response. required: false schema: type: object properties: email: $ref: '#/components/schemas/StringFieldFilter' full_name: $ref: '#/components/schemas/StringFieldFilter' attributes: $ref: '#/components/schemas/StringFieldFilter' active: $ref: '#/components/schemas/BooleanFieldFilter' style: deepObject responses: '200': $ref: '#/components/responses/ListBasicDevelopers' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Team Membership post: operationId: add-developer-to-portal-team summary: Add Developer to Team description: 'Adds a developer to a team. This associates them with all of the roles that have been assigned to the team, providing specific permissions to perform actions on resources.' requestBody: $ref: '#/components/requestBodies/AddDeveloperToTeam' responses: '201': description: Created '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 Membership '/v3/portals/{portalId}/teams/{teamId}/developers/{developerId}': parameters: - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/DeveloperId' - $ref: '#/components/parameters/TeamId' delete: operationId: remove-developer-from-portal-team summary: Remove Developer from Team description: Removes a developer from a team. This removes the association of the team's roles from the developer. responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Team Membership /v3/portals/email-domains: get: operationId: list-email-domains summary: List email domains description: List email domains parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/SortEmailDomains' - name: filter in: query description: Filter email domains returned in the response. required: false schema: $ref: '#/components/schemas/EmailDomainFilterParameters' style: deepObject responses: '200': description: List of a email domains content: application/json: schema: $ref: '#/components/schemas/ListDomains' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Portal Emails post: operationId: create-email-domain summary: Create an email domain description: Create an email domain requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EmailDomainPayload' responses: '201': description: success content: application/json: schema: $ref: '#/components/schemas/EmailDomain' '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 Emails '/v3/portals/email-domains/{emailDomain}': parameters: - $ref: '#/components/parameters/EmailDomain' get: operationId: get-email-domain summary: Get an email domain description: Get an email domain responses: '200': description: success content: application/json: schema: $ref: '#/components/schemas/EmailDomain' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Emails delete: operationId: delete-email-domain summary: Delete an email domain description: Delete an email domain responses: '204': description: No Content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Emails /v3/portals/email-templates: get: operationId: list-default-email-templates summary: List default email templates description: List default email templates responses: '200': $ref: '#/components/responses/ListDefaultEmailTemplates' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Emails '/v3/portals/email-templates/{templateName}': parameters: - $ref: '#/components/parameters/EmailTemplateName' get: operationId: get-default-email-template summary: Get default email template description: Get default email template responses: '200': $ref: '#/components/responses/DefaultEmailTemplate' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Emails /v3/portals/email-templates/variables: get: operationId: list-email-template-variables summary: List email template variables description: List email template variables responses: '200': $ref: '#/components/responses/EmailTemplateVariables' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Portal Emails /v3/roles: get: operationId: get-predefined-roles summary: Get Predefined Roles description: 'Retrieves the predefined, or system managed, roles.' responses: '200': $ref: '#/components/responses/Roles' '400': $ref: '#/components/responses/IdentityBadRequest' '401': $ref: '#/components/responses/IdentityUnauthenticated' servers: - url: 'https://global.api.konghq.com/' tags: - 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': get: operationId: get-system-account-id-access-tokens summary: List System Account Access Tokens description: Returns the access tokens for the specified system account. Returns 400 if any filter parameters are invalid. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - name: filter in: query description: Filter access tokens returned in the response. required: false schema: type: object properties: name: $ref: '#/components/schemas/LegacyStringFieldFilter' style: deepObject responses: '200': $ref: '#/components/responses/SystemAccountAccessTokenCollection' '400': $ref: '#/components/responses/IdentityBadRequest' '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 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 get: operationId: get-system-accounts-accountId-assigned-roles summary: List Assigned Roles for System Account description: Lists the roles belonging to a system account. Returns 400 if any filter parameters are invalid. parameters: - name: filter in: query description: Filter roles returned in the response. required: false schema: type: object properties: entity_id: $ref: '#/components/schemas/StringFieldEqualsFilter' role_name: $ref: '#/components/schemas/StringFieldEqualsFilter' entity_type_name: $ref: '#/components/schemas/StringFieldEqualsFilter' style: deepObject responses: '200': $ref: '#/components/responses/AssignedRoleCollection' '400': $ref: '#/components/responses/IdentityBadRequest' '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 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/system-accounts/{accountId}/teams': parameters: - name: accountId in: path description: ID of the system account. required: true schema: type: string get: operationId: get-system-accounts-accountId-teams summary: List Teams for a System Account description: Returns a paginated list of a teams that the system account belongs to. 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' '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: 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 get: operationId: list-team-roles summary: List Team Roles description: Lists the roles belonging to a team. Returns 400 if any filter parameters are invalid. parameters: - name: filter in: query description: Filter roles returned in the response. required: false schema: type: object properties: role_name: $ref: '#/components/schemas/StringFieldEqualsFilter' entity_type_name: $ref: '#/components/schemas/StringFieldEqualsFilter' style: deepObject responses: '200': $ref: '#/components/responses/AssignedRoleCollection' '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 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 get: operationId: get-teams-teamId-system-accounts summary: List System Accounts on a Team description: Returns a paginated list of system accounts that belong to the team specified in the path parameter. 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' style: deepObject responses: '200': $ref: '#/components/responses/SystemAccountCollection' '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 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 get: operationId: list-team-users summary: List Team Users description: Returns a paginated list of users that belong to the team specified in the path parameter. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - name: filter in: query description: Filter users returned in the response. required: false schema: type: object properties: id: $ref: '#/components/schemas/StringFieldEqualsFilter' email: $ref: '#/components/schemas/LegacyStringFieldFilter' full_name: $ref: '#/components/schemas/LegacyStringFieldFilter' active: $ref: '#/components/schemas/BooleanFieldFilter' style: deepObject responses: '200': $ref: '#/components/responses/UserCollection' '400': $ref: '#/components/responses/IdentityBadRequest' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Team Membership 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 /v3/users: get: operationId: list-users summary: List Users description: Returns a paginated list of user objects. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - name: filter in: query description: Filter users returned in the response. required: false schema: type: object properties: id: $ref: '#/components/schemas/StringFieldEqualsFilter' email: $ref: '#/components/schemas/LegacyStringFieldFilter' full_name: $ref: '#/components/schemas/LegacyStringFieldFilter' active: $ref: '#/components/schemas/BooleanFieldFilter' style: deepObject responses: '200': $ref: '#/components/responses/UserCollection' '400': $ref: '#/components/responses/IdentityBadRequest' servers: - url: 'https://global.api.konghq.com/' tags: - Users '/v3/users/{userId}': parameters: - name: userId in: path description: The ID of the user being deleted. required: true schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a get: operationId: get-user summary: Get a User description: Returns the user object for the user ID specified as a path parameter. responses: '200': $ref: '#/components/responses/UserSingle' '400': $ref: '#/components/responses/IdentityBadRequest' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Users patch: operationId: update-user summary: Update User description: Update an individual user. requestBody: $ref: '#/components/requestBodies/UpdateUser' responses: '200': $ref: '#/components/responses/UserSingle' '401': $ref: '#/components/responses/IdentityUnauthenticated' '403': $ref: '#/components/responses/IdentityPermissionDenied' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Users delete: operationId: delete-user summary: Delete User description: Deletes an individual user. Returns 404 if the requested user was not found. responses: '204': description: No Content '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Users '/v3/users/{userId}/access-tokens': parameters: - $ref: '#/components/parameters/userId' get: operationId: list-users-personal-access-tokens summary: List PATs description: List personal access tokens for a user. responses: '200': $ref: '#/components/responses/PersonalAccessTokenListResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/responses-Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' security: - personalAccessToken: [] - konnectAccessToken: [] - serviceAccessToken: [] servers: - url: 'https://global.api.konghq.com/' tags: - Personal Access Tokens post: operationId: create-personal-access-token summary: Create a new personal access token description: Create a new personal access token. A maximum of 10 personal access tokens can be created. requestBody: $ref: '#/components/requestBodies/PersonalAccessTokenCreateRequest' responses: '201': $ref: '#/components/responses/PersonalAccessTokenCreateResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/responses-Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' security: - personalAccessToken: [] - konnectAccessToken: [] servers: - url: 'https://global.api.konghq.com/' tags: - Personal Access Tokens '/v3/users/{userId}/access-tokens/{tokenId}': parameters: - $ref: '#/components/parameters/userId' - name: tokenId in: path description: ID of the personal access token. required: true schema: $ref: '#/components/schemas/UUID' get: operationId: get-personal-access-token-details summary: Get Personal Access Token details description: Get Personal Access Token details. responses: '200': $ref: '#/components/responses/PersonalAccessTokenResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/responses-Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' security: - personalAccessToken: [] - konnectAccessToken: [] - serviceAccessToken: [] servers: - url: 'https://global.api.konghq.com/' tags: - Personal Access Tokens patch: operationId: update-personal-access-token-details summary: Update personal access token details description: Update personal access token details. requestBody: $ref: '#/components/requestBodies/PersonalAccessTokenUpdateRequest' responses: '200': $ref: '#/components/responses/PersonalAccessTokenResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/responses-Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' security: - personalAccessToken: [] - konnectAccessToken: [] servers: - url: 'https://global.api.konghq.com/' tags: - Personal Access Tokens delete: operationId: delete-personal-access-token summary: Delete personal access token description: Delete personal access token. responses: '204': description: No Content '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/responses-Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' security: - personalAccessToken: [] - konnectAccessToken: [] servers: - url: 'https://global.api.konghq.com/' tags: - Personal Access Tokens '/v3/users/{userId}/access-tokens/{tokenId}/revoke': parameters: - $ref: '#/components/parameters/userId' - name: tokenId in: path description: ID of the personal access token. required: true schema: $ref: '#/components/schemas/UUID' patch: operationId: revoke-personal-access-token summary: Revoke Personal Access Token description: Revoke Personal Access Token. responses: '200': $ref: '#/components/responses/PersonalAccessTokenResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/responses-Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' security: - personalAccessToken: [] - konnectAccessToken: [] - serviceAccessToken: [] servers: - url: 'https://global.api.konghq.com/' tags: - Personal Access Tokens '/v3/users/{userId}/assigned-roles': parameters: - name: userId in: path description: The user ID required: true schema: type: string format: uuid example: e81bc3e5-e9db-4764-b7dd-e81e39072cbe get: operationId: list-user-roles summary: List User Roles description: Lists the roles assigned to a user. Returns 400 if any filter parameters are invalid. parameters: - name: filter in: query description: Filter roles returned in the response. required: false schema: type: object properties: entity_id: $ref: '#/components/schemas/StringFieldEqualsFilter' role_name: $ref: '#/components/schemas/StringFieldEqualsFilter' entity_type_name: $ref: '#/components/schemas/StringFieldEqualsFilter' style: deepObject responses: '200': $ref: '#/components/responses/AssignedRoleCollection' '400': $ref: '#/components/responses/IdentityBadRequest' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Roles post: operationId: users-assign-role summary: Assign Role description: Assigns a role to a user. 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/users/{userId}/assigned-roles/{roleId}': parameters: - name: userId in: path description: ID of the user. required: true schema: type: string format: uuid example: e81bc3e5-e9db-4764-b7dd-e81e39072cbe - name: roleId in: path description: ID of the role. required: true schema: type: string format: uuid example: 8350205f-a305-4e39-abe9-bc082a80091a x-speakeasy-match: id get: operationId: get-user-role summary: Get User 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: operationId: users-remove-role summary: Remove Role description: Removes an assigned role from a user. Returns 404 if the requested user or assigned role were not found. responses: '204': description: No Content '400': $ref: '#/components/responses/IdentityBadRequest' '401': $ref: '#/components/responses/IdentityUnauthenticated' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Roles '/v3/users/{userId}/teams': parameters: - name: userId in: path description: The user ID. required: true schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a get: operationId: list-user-teams summary: List User Teams description: Returns a paginated list of a teams that the user belongs to. 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' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: 'https://global.api.konghq.com/' tags: - Team Membership /v3/users/me: get: operationId: get-users-me summary: Get My User Account description: Returns the user account for the user identified in the token of the request. responses: '200': $ref: '#/components/responses/UserSingle' '401': $ref: '#/components/responses/IdentityUnauthenticated' security: - personalAccessToken: [] - konnectAccessToken: [] servers: - url: 'https://global.api.konghq.com/' tags: - Me 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 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 AddOnsFilter: name: filter description: Filters supported for add-ons. required: false in: query schema: $ref: '#/components/schemas/AddOnsFilterParameters' style: deepObject AIGatewayAgentIdOrName: name: agentIdOrName in: path required: true description: The unique ID or name of the AI Gateway agent. schema: $ref: '#/components/schemas/AIGatewayEntityIdentifier' AIGatewayConfigStoreIdOrName: name: configStoreIdOrName in: path required: true description: The unique ID or name of the AI Gateway Config Store. schema: $ref: '#/components/schemas/AIGatewayEntityIdentifier' AIGatewayConsumerCredentialId: name: credentialId in: path required: true description: The unique ID of the AI Gateway consumer credential. example: bf138ba2-c9b1-4229-b268-04d9d8a6410b schema: $ref: '#/components/schemas/UUID' AIGatewayConsumerGroupId: name: consumerGroupId in: path required: true description: The unique ID of the AI Gateway Consumer Group. example: bf138ba2-c9b1-4229-b268-04d9d8a6410b schema: $ref: '#/components/schemas/UUID' AIGatewayConsumerGroupIdOrName: name: consumerGroupIdOrName in: path required: true description: The unique ID or name of the AI Gateway Consumer Group. schema: $ref: '#/components/schemas/AIGatewayEntityIdentifier' AIGatewayConsumerId: name: consumerId in: path required: true description: The unique ID of the AI Gateway consumer. example: bf138ba2-c9b1-4229-b268-04d9d8a6410b schema: $ref: '#/components/schemas/UUID' AIGatewayConsumerIdOrName: name: consumerIdOrName in: path required: true description: The unique ID or name of the AI Gateway consumer. schema: $ref: '#/components/schemas/AIGatewayEntityIdentifier' AIGatewayDataPlaneCertificateId: name: certificateId in: path required: true description: The unique ID of the DataPlane Certificate. example: bf138ba2-c9b1-4229-b268-04d9d8a6410b schema: $ref: '#/components/schemas/UUID' AIGatewayDataPlaneNodeId: name: dataPlaneNodeId in: path required: true description: The unique ID of the AI Gateway DataPlane Node. example: bf138ba2-c9b1-4229-b268-04d9d8a6410b schema: $ref: '#/components/schemas/UUID' AIGatewayId: name: gatewayId in: path required: true description: The unique ID of the AI Gateway. example: bf138ba2-c9b1-4229-b268-04d9d8a6410b schema: $ref: '#/components/schemas/UUID' AIGatewayIdentityProviderIdOrName: name: identityProviderIdOrName in: path required: true description: The unique ID or name of the AI Gateway Identity provider. schema: $ref: '#/components/schemas/AIGatewayEntityIdentifier' AIGatewayMcpServerIdOrName: name: mcpServerIdOrName in: path required: true description: The unique ID or name of the MCP Server. schema: $ref: '#/components/schemas/AIGatewayEntityIdentifier' AIGatewayModelIdOrName: name: modelIdOrName in: path required: true description: The unique ID or name of the AI Gateway model. schema: $ref: '#/components/schemas/AIGatewayEntityIdentifier' AIGatewayModelProviderIdOrName: name: modelProviderIdOrName in: path required: true description: The unique ID or name of the AI Gateway model provider. schema: $ref: '#/components/schemas/AIGatewayEntityIdentifier' AIGatewayPolicyIdOrName: name: policyIdOrName in: path required: true description: The unique ID or name of the AI Gateway policy. schema: $ref: '#/components/schemas/AIGatewayEntityIdentifier' AIGatewayVaultIdOrName: name: vaultIdOrName in: path required: true description: The unique ID or name of the AI Gateway Vault. schema: $ref: '#/components/schemas/AIGatewayEntityIdentifier' ApiAttributeFilters: name: filter description: Filters API attributes in the response. required: false in: query schema: $ref: '#/components/schemas/ApiAttributeFilterParameters' style: deepObject ApiAttributeSort: name: sort description: | Sorts a collection of API attributes. Supported sort attributes are: - id - key - created_at - updated_at required: false in: query schema: $ref: '#/components/schemas/SortQuery' ApiDocumentFilters: name: filter description: Filters API Documents in the response. required: false in: query schema: $ref: '#/components/schemas/ApiDocumentFilterParameters' style: deepObject ApiFilters: name: filter description: Filters APIs in the response. required: false in: query schema: $ref: '#/components/schemas/ApiFilterParameters' style: deepObject ApiId: schema: type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 name: apiId in: path required: true description: The UUID API identifier ApiImplementationFilters: name: filter description: Filters APIs in the response. required: false in: query schema: $ref: '#/components/schemas/ApiImplementationFilterParameters' style: deepObject ApiImplementationSort: name: sort description: | Sorts a collection of API implementations. Supported sort attributes are: - id - api_id - control_plane_id - service_id - created_at - updated_at required: false in: query schema: $ref: '#/components/schemas/SortQuery' ApiOperationFilters: name: filter description: Filters API Operations in the response. required: false in: query schema: $ref: '#/components/schemas/ApiOperationFilterParameters' style: deepObject ApiPackageFilters: name: filter description: Filters API Packages in the response. required: false in: query schema: $ref: '#/components/schemas/ApiPackageFilterParameters' style: deepObject ApiPackageId: schema: type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 name: apiPackageId in: path required: true description: The UUID API Package identifier ApiPackageOperationsFilters: name: filter description: Filters API Packages operations in the response. required: false in: query schema: $ref: '#/components/schemas/ApiPackageOperationsFilterParameters' style: deepObject ApiPackageOperationsSort: name: sort description: | Sorts a collection of API Packages Operations. Supported sort attributes are: - path - method - api_id - created_at - updated_at required: false in: query schema: $ref: '#/components/schemas/SortQuery' ApiPackageSort: name: sort description: | Sorts a collection of API Packages. Supported sort attributes are: - name - version - created_at - updated_at required: false in: query schema: $ref: '#/components/schemas/SortQuery' ApiPublicationFilters: name: filter description: Filters API Publications in the response. required: false in: query schema: $ref: '#/components/schemas/ApiPublicationFilterParameters' style: deepObject ApiPublicationSort: name: sort description: | Sorts a collection of API publications. Supported sort attributes are: - portal_id - portal_name - api_id - api_name - created_at - updated_at required: false in: query schema: $ref: '#/components/schemas/SortQuery' ApiRegistrationsFilters: name: filter description: Filters API registrations in the response. required: false in: query schema: type: object properties: status: $ref: '#/components/schemas/StringFieldFilter' portal_id: $ref: '#/components/schemas/UuidFieldFilter' portal_name: $ref: '#/components/schemas/StringFieldFilter' application_id: $ref: '#/components/schemas/UuidFieldFilter' application_name: $ref: '#/components/schemas/StringFieldFilter' application_owner_type: $ref: '#/components/schemas/StringFieldFilter' application_owner_id: $ref: '#/components/schemas/UuidFieldFilter' style: deepObject ApiSort: name: sort description: | Sorts a collection of APIs. Supported sort attributes are: - name - version - created_at - updated_at required: false in: query schema: $ref: '#/components/schemas/SortQuery' ApiSpecFilters: name: filter description: Filters API Specs in the response. required: false in: query schema: $ref: '#/components/schemas/ApiSpecFilterParameters' style: deepObject ApiVersionFilters: name: filter description: Filters API Version in the response. required: false in: query schema: $ref: '#/components/schemas/ApiVersionFilterParameters' style: deepObject ApiVersionSort: name: sort description: | Sorts a collection of API versions. Supported sort attributes are: - created_at required: false in: query schema: $ref: '#/components/schemas/SortQuery' ApplicationId: name: applicationId in: path required: true description: ID of the application. schema: type: string format: uuid 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 CACertificateId: description: ID of the CA Certificate to lookup example: 3c31f18a-f27a-4f9b-8cd4-bf841554612f in: path name: CACertificateId required: true schema: type: string CatalogApiServiceMappingFilter: name: filter in: query required: false style: deepObject description: | Filters a collection of catalog API service mappings for a given API. Supported filter attributes are: - `service_id` schema: $ref: '#/components/schemas/CatalogApiServiceMappingFilterParameters' CatalogIntegrationFilter: name: filter description: Filters a collection of integrations. required: false in: query style: deepObject schema: $ref: '#/components/schemas/CatalogIntegrationFilterParameters' CatalogIntegrationSort: name: sort description: | Sorts a collection of integrations. Supported sort attributes are: - `display_name` - `name` Default sort is `display_name` in ascending order. required: false in: query schema: $ref: '#/components/schemas/SortQuery' CatalogResourceFilter: name: filter description: Filters a collection of resources. required: false in: query style: deepObject schema: $ref: '#/components/schemas/CatalogResourceFilterParameters' CatalogResourceMappingFilter: name: filter description: Filters a collection of resource mappings. required: false in: query style: deepObject schema: $ref: '#/components/schemas/CatalogResourceMappingFilterParameters' CatalogResourceMappingSort: name: sort description: | Sorts a collection of resource mappings. Supported sort attributes are: - `created_at` Default sort is `created_at` in descending order. required: false in: query schema: $ref: '#/components/schemas/SortQuery' CatalogResourceRefFilter: name: filter description: Filters a collection of resources. required: false in: query style: deepObject schema: $ref: '#/components/schemas/CatalogResourceRefFilterParameters' CatalogResourceSort: name: sort description: | Sorts a collection of resources. Supported sort attributes are: - `created_at` - `updated_at` Default sort is `created_at` in descending order. required: false in: query schema: $ref: '#/components/schemas/SortQuery' CatalogServiceApiMappingFilter: name: filter in: query required: false style: deepObject description: | Filters a collection of catalog service API mappings for a given Service. Supported filter attributes are: - `api_id` schema: $ref: '#/components/schemas/CatalogServiceApiMappingFilterParameters' CatalogServiceApiMappingSort: name: sort in: query required: false description: | Sorts a collection of catalog service API mappings. Supported sort attributes are: - `created_at` - `updated_at` Default sort is `created_at` in descending order. schema: $ref: '#/components/schemas/SortQuery' CatalogServiceFilter: name: filter description: Filters a collection of services. required: false in: query style: deepObject schema: $ref: '#/components/schemas/CatalogServiceFilterParameters' CatalogServiceSort: name: sort description: | Sorts a collection of services. Supported sort attributes are: - `display_name` - `name` - `created_at` - `updated_at` Default sort is `display_name` in ascending order. required: false in: query schema: $ref: '#/components/schemas/SortQuery' CertificateId: description: ID of the Certificate to lookup example: ddf3cdaa-3329-4961-822a-ce6dbd38eff7 in: path name: CertificateId required: true schema: type: string 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 ConfigurationFilter: name: filter description: Filters a collection of configurations. required: false in: query schema: $ref: '#/components/schemas/ConfigurationFilterParameters' style: deepObject 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 ConfigurationsFilter: name: filter description: Filters supported for configurations. required: false in: query schema: $ref: '#/components/schemas/ConfigurationsFilterParameters' style: deepObject ConsumerGroupId: description: ID of the Consumer Group to lookup example: '' in: path name: ConsumerGroupId required: true schema: type: string 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: description: ID of the Consumer to lookup example: c1059869-6fa7-4329-a5f5-5946d14ca2c5 in: path name: ConsumerId required: true schema: type: string ConsumerIdForNestedEntities: description: Consumer ID for nested entities example: '' in: path name: ConsumerIdForNestedEntities required: true schema: type: string ControlPlaneFilter: name: filter description: Filters a collection of control-planes. required: false in: query schema: $ref: '#/components/schemas/ControlPlaneFilterParameters' style: deepObject controlPlaneId: 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. x-speakeasy-param-force-new: true 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' CriteriaTemplateFilter: name: filter description: Filters a collection of criteria templates. required: false in: query style: deepObject schema: $ref: '#/components/schemas/CriteriaTemplateFilterParameters' CriteriaTemplateSort: name: sort description: | Sorts a collection of criteria templates. Supported sort attributes are: - `display_name` - `name` Default sort is `display_name` in ascending order. required: false in: query schema: $ref: '#/components/schemas/SortQuery' CursorPageQuery: name: page description: Determines which page of the collection to retrieve. required: false in: query schema: $ref: '#/components/schemas/CursorPageParameters' CursorPaginationQuery: name: page in: query required: false schema: $ref: '#/components/schemas/CursorPaginationQueryPage' style: deepObject 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 CustomDomainsFilter: name: filter description: Filters supported for custom domains on the global API. required: false in: query schema: $ref: '#/components/schemas/CustomDomainsFilterParameters' style: deepObject CustomId: description: Filter consumers by their custom_id. example: my-custom-id in: query name: custom_id schema: type: string CustomPluginId: description: ID of the CustomPlugin to lookup example: '' in: path name: CustomPluginId required: true schema: type: string DashboardListFilters: name: filter description: Filters dashboards in the response. required: false in: query schema: $ref: '#/components/schemas/DashboardFilterParameters' style: deepObject DashboardSort: name: sort required: false in: query schema: allOf: - $ref: '#/components/schemas/SortQuery' - description: | Sorts a collection of dashboards. Supported sort attributes are: - name - created_at - updated_at 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. DataPlaneCertificateId: name: certificateId in: path schema: type: string required: true x-speakeasy-match: id DcrProviderId: name: dcrProviderId description: DCR provider identifier in: path required: true schema: $ref: '#/components/schemas/UUID' Degraphql_routeId: description: ID of the Degraphql_route to lookup example: '' in: path name: Degraphql_routeId required: true schema: type: string DeveloperId: schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a name: developerId in: path required: true description: ID of the developer. 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 EmailDomain: name: emailDomain in: path required: true description: Email domain for custom portal email sender schema: type: string EmailTemplateName: name: templateName description: Name of the email template. in: path required: true schema: $ref: '#/components/schemas/EmailTemplateName' EventGatewayCommonFilter: schema: type: object properties: name: $ref: '#/components/schemas/StringFieldContainsFilter' in: query name: filter description: Filter documents returned in the response. required: false style: deepObject 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 EventGatewayListenersFilter: schema: type: object properties: name: $ref: '#/components/schemas/StringFieldContainsFilter' virtual_cluster_id: $ref: '#/components/schemas/StringFieldEqualsFilter' in: query name: filter description: Filter listeners returned in the response. required: false style: deepObject eventGatewayNodeId: schema: type: string format: uuid name: eventGatewayNodeId in: path required: true description: The ID of the Event Gateway Node. 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 EventGatewayPolicyListFilter: schema: type: object properties: parent_policy_id: description: The ID of the parent policy. type: string in: query name: filter description: Filter policies returned in the response. required: false style: deepObject eventId: name: eventId in: path required: true description: Formatted string ID of the notification event. schema: type: string example: invoice-ready ExpandPartials: description: Expand partials for the plugin. example: true in: query name: expand_partials schema: type: boolean 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' FilterDcrProvidersById: name: 'filter[id][eq]' description: filters DCR Providers by their id in: query required: false schema: type: string FilterDcrProvidersByIdContains: name: 'filter[id][contains]' description: filters DCR Providers by their id with a supplied substring in: query required: false schema: type: string FilterDcrProvidersByIdShort: name: 'filter[id]' description: 'filters DCR Providers by their id (alias for filter[id][eq])' in: query required: false schema: type: string FilterDcrProvidersByInitialClientAudience: name: 'filter[initial_client_audience][eq]' description: filters DCR Providers by their initial client audience in: query required: false schema: type: string FilterDcrProvidersByInitialClientAudienceContains: name: 'filter[initial_client_audience][contains]' description: filters DCR Providers by their initial client audience with a supplied substring in: query required: false schema: type: string FilterDcrProvidersByInitialClientAudienceShort: name: 'filter[initial_client_audience]' description: 'filters DCR Providers by their initial client audience (alias for filter[initial_client_audience][eq])' in: query required: false schema: type: string FilterDcrProvidersByInitialClientId: name: 'filter[initial_client_id][eq]' description: filters DCR Providers by their initial client id in: query required: false schema: type: string FilterDcrProvidersByInitialClientIdContains: name: 'filter[initial_client_id][contains]' description: filters DCR Providers by their initial client id with a supplied substring in: query required: false schema: type: string FilterDcrProvidersByInitialClientIdShort: name: 'filter[initial_client_id]' description: 'filters DCR Providers by their initial client id (alias for filter[initial_client_id][eq])' in: query required: false schema: type: string FilterDcrProvidersByIssuer: name: 'filter[issuer][eq]' description: filters DCR Providers by their issuer in: query required: false schema: type: string FilterDcrProvidersByIssuerContains: name: 'filter[issuer][contains]' description: filters DCR Providers by their issuer with a supplied substring in: query required: false schema: type: string FilterDcrProvidersByIssuerShort: name: 'filter[issuer]' description: 'filters DCR Providers by their issuer (alias for filter[issuer][eq])' in: query required: false schema: type: string FilterDcrProvidersByName: name: 'filter[name][eq]' description: filters DCR Providers by their name in: query required: false schema: type: string FilterDcrProvidersByNameContains: name: 'filter[name][contains]' description: filters DCR Providers by their name with a supplied substring in: query required: false schema: type: string FilterDcrProvidersByNameShort: name: 'filter[name]' description: 'filters DCR Providers by their name (alias for filter[name][eq])' in: query required: false schema: type: string FilterDcrProvidersByProviderType: name: 'filter[provider_type][eq]' description: filters DCR Providers by their provider type in: query required: false schema: type: string FilterDcrProvidersByProviderTypeShort: name: 'filter[provider_type]' description: 'filters DCR Providers by their provider type (alias for filter[provider_type][eq])' in: query required: false schema: type: string 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 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 IdentityProviderId: schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a name: id in: path required: true description: ID of the identity provider. ImageType: schema: $ref: '#/components/schemas/ImageTypeSchema' name: imageType in: path required: true description: The Supported image type. 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 IntegrationInstanceFilter: name: filter description: Filters a collection of integration instances. required: false in: query style: deepObject schema: $ref: '#/components/schemas/IntegrationInstanceFilterParameters' IntegrationInstanceSort: name: sort description: | Sorts a collection of integration instances. Supported sort attributes are: - `display_name` - `name` - `created_at` - `updated_at` - `integration.display_name` Default sort is `integration.display_name` in ascending order. required: false in: query schema: $ref: '#/components/schemas/SortQuery' JWTId: description: ID of the JWT to lookup example: 4a7f5faa-8c96-46d6-8214-c87573ef2ac4 in: path name: JWTId required: true schema: type: string KeyAuthId: description: ID of the API-key to lookup example: '' in: path name: KeyAuthId required: true 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 KeySetId: description: ID of the KeySet to lookup example: 6cc34248-50b4-4a81-9201-3bdf7a83f712 in: path name: KeySetId required: true schema: type: string ListConsumers: description: Expand the consumer group to include a list of its consumers. example: false in: query name: list_consumers schema: type: boolean MCPCapabilities: name: capabilities in: query style: deepObject explode: true description: | Capability requests as a deepObject map. - Keys are capability names (e.g. `mcp`). - Values contain the capability request fields (`version`). schema: $ref: '#/components/schemas/MCPCapabilitiesMap' example: mcp: version: '5' MCPServerCommonFilter: schema: type: object properties: name: $ref: '#/components/schemas/StringFieldContainsFilter' in: query name: filter description: Filter documents returned in the response. required: false style: deepObject mcpServerId: name: mcpServerId in: path required: true description: The ID of the MCP server. schema: type: string format: uuid MTLSAuthId: description: ID of the MTLS-auth credential to lookup example: '' in: path name: MTLSAuthId required: true schema: type: string NameContainsFilter: description: Filter routes by a substring of the name. example: john in: query name: 'filter[name][contains]' schema: type: string NameEqualsFilter: description: Filter routes by their name. example: john in: query name: 'filter[name][eq]' schema: type: string 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 nodeId: schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a name: nodeId in: path required: true description: Node identifier NotificationFilter: name: filter description: Filters a collection of notifications. required: false in: query schema: $ref: '#/components/schemas/NotificationFilterParameters' style: deepObject notificationId: name: notificationId in: path required: true description: ID of the notification. schema: type: string OperationId: schema: type: string format: uuid example: b42d905a-ed33-46a3-a093-d8f536af9a8a name: operationId in: path required: true description: The API operation identifier x-speakeasy-match: id PageAfter: name: 'page[after]' description: 'Request the next page of data, starting with the item after this parameter.' required: false in: query allowEmptyValue: true schema: type: string example: ewogICJpZCI6ICJoZWxsbyB3b3JsZCIKfQ PageBefore: name: 'page[before]' description: 'Request the next page of data, starting with the item before this parameter.' required: false in: query allowEmptyValue: true schema: type: string example: ewogICJpZCI6ICJoZWxsbyB3b3JsZCIKfQ 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 PagePaginationQuery: name: page in: query required: false description: Determines which page of the collection to retrieve. schema: type: object properties: size: description: The number of items to include per page. type: integer number: description: The page number. type: integer additionalProperties: false style: deepObject 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: 10 x-speakeasy-terraform-ignore: true pagination-size: description: Number of resources to be returned. in: query name: size schema: type: integer default: 100 maximum: 1000 minimum: 1 pagination-tags-filter: description: 'A list of tags to filter the list of resources on. Multiple tags can be concatenated using '','' to mean AND or using ''/'' to mean OR.' example: 'tag1,tag2' in: query name: tags schema: type: string PaginationOffset: allowEmptyValue: true description: Offset from which to return the next set of resources. Use the value of the 'offset' field from the response of a list operation as input here to paginate through all the resources in: query name: offset schema: type: string PaginationSize: description: Number of resources to be returned. in: query name: size schema: type: integer default: 100 maximum: 1000 minimum: 1 PaginationTagsFilter: allowEmptyValue: true description: 'A list of tags to filter the list of resources on. Multiple tags can be concatenated using '','' to mean AND or using ''/'' to mean OR.' example: 'tag1,tag2' in: query name: tags schema: type: string PartialId: description: ID of the Partial to lookup example: '' in: path name: PartialId required: true schema: type: string PluginId: description: ID of the Plugin to lookup example: 3473c251-5b6c-4f45-b1ff-7ede735a366d in: path name: PluginId required: true schema: type: string policyId: name: policyId in: path required: true schema: type: string format: uuid example: 9524ec7d-36d9-465d-a8c5-83a3c9390458 description: The UUID of the policy. PortalApiPublicationFilters: name: filter description: Filters API Publications in a portal response (excludes portal-specific filters). required: false in: query schema: $ref: '#/components/schemas/PortalApiPublicationFilterParameters' style: deepObject PortalApiPublicationSort: name: sort description: | Sorts a collection of API publications within a portal. Supported sort attributes are: - api_id - api_name - created_at - updated_at required: false in: query schema: $ref: '#/components/schemas/SortQuery' PortalId: schema: type: string format: uuid example: f32d905a-ed33-46a3-a093-d8f536af9a8a name: portalId in: path required: true description: ID of the portal. PrivateDnsFilter: name: filter description: Filters supported for Private DNS. required: false in: query schema: $ref: '#/components/schemas/PrivateDnsFilterParameters' style: deepObject 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 ProviderAccountId: name: providerAccountId in: path description: The ID of the provider account to operate on. required: true schema: $ref: '#/components/schemas/ProviderAccountId' ProviderAccountsFilter: name: filter description: Filters supported for provider accounts. required: false in: query schema: $ref: '#/components/schemas/ProviderAccountsFilterParameters' style: deepObject RegistrationId: name: registrationId in: path required: true description: ID of the application registration. schema: type: string format: uuid ResourceConfigurationId: name: resourceConfigurationId in: path description: The ID of the resource configuration to operate on. required: true schema: $ref: '#/components/schemas/ResourceConfigurationId' ResourceQuotaId: name: resourceQuotaId in: path description: The ID of the resource quota to operate on. required: true schema: $ref: '#/components/schemas/ResourceQuotaId' RouteId: description: ID of the Route to lookup example: a4326a41-aa12-44e3-93e4-6b6e58bfb9d7 in: path name: RouteId required: true schema: type: string ScorecardCriteriaFilter: name: filter description: Filters a collection of criteria belonging to a scorecard. required: false in: query style: deepObject schema: $ref: '#/components/schemas/ScorecardCriteriaFilterParameters' ScorecardCriteriaServiceFilter: name: filter description: Filters a collection of services targeted by a scorecard criteria. required: false in: query style: deepObject schema: $ref: '#/components/schemas/ScorecardCriteriaServiceFilterParameters' ScorecardCriteriaServiceSort: name: sort description: | Sorts a collection of services targeted by a scorecard criteria. Supported sort attributes are: - `display_name` - `name` - `evaluation.is_passing` - `evaluation.successfully_evaluated_at` - `evaluation.attempted_at` Default sort is `display_name` in ascending order. required: false in: query schema: $ref: '#/components/schemas/SortQuery' ScorecardCriteriaSort: name: sort description: | Sorts a collection of criteria belonging to a scorecard. Supported sort attributes are: - `evaluation.passing_services_count` By default, criteria will be returned in the order that they are configured in the scorecard. required: false in: query schema: $ref: '#/components/schemas/SortQuery' ScorecardFilter: name: filter description: Filters a collection of scorecards. required: false in: query style: deepObject schema: $ref: '#/components/schemas/ScorecardFilterParameters' ScorecardServiceFilter: name: filter description: Filters a collection of services targeted by a scorecard. required: false in: query style: deepObject schema: $ref: '#/components/schemas/ScorecardServiceFilterParameters' ScorecardServiceSort: name: sort description: | Sorts a collection of services targeted by a scorecard. Supported sort attributes are: - `display_name` - `name` - `score.value` - `score.raw_value` Default sort is `display_name` in ascending order. required: false in: query schema: $ref: '#/components/schemas/SortQuery' ScorecardSort: name: sort description: | Sorts a collection of scorecards. Supported sort attributes are: - `name` - `score.value` - `score.raw_value` Default sort is `name` in ascending order. required: false in: query schema: $ref: '#/components/schemas/SortQuery' ScorecardTemplateFilter: name: filter description: Filters a collection of scorecard templates. required: false in: query style: deepObject schema: $ref: '#/components/schemas/ScorecardTemplateFilterParameters' ScorecardTemplateSort: name: sort description: | Sorts a collection of scorecard templates. Supported sort attributes are: - `display_name` - `name` Default sort is `display_name` in ascending order. required: false in: query schema: $ref: '#/components/schemas/SortQuery' ServiceId: description: ID of the Service to lookup example: 7fca84d6-7d37-4a74-a7b0-93e576089a41 in: path name: ServiceId required: true schema: type: string SNIId: description: ID of the SNI to lookup example: 64c17a1a-b7d7-4a65-a5a4-42e4a7016e7f in: path name: SNIId required: true schema: type: string 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 SortAppAuthStrategies: name: sort description: | Sorts a collection of application auth strategies. Supported sort attributes are: - created_at - updated_at - strategy_type - name - display_name - dcr_provider_id - dcr_provider_name - dcr_provider_type in: query required: false schema: type: string SortApplicationDevelopers: name: sort description: | Sorts a set of developers for an application. Supported sort attributes are: - id in: query required: false schema: type: string SortApplicationRegistrations: name: sort description: | Sorts a set of registrations for an application. Supported sort attributes are: - created_at - updated_at - status in: query required: false schema: type: string SortApplications: name: sort description: | Sorts a collection of applications. Supported sort attributes are: - created_at - developer_id - name in: query required: false schema: type: string SortDcrProviders: name: sort description: | Sorts a collection of DCR Providers. Supported sort attributes are: - created_at - updated_at - provider_type - issuer - name in: query required: false schema: type: string SortDevelopers: name: sort description: | Sorts a collection of developers. Supported sort attributes are: - created_at - updated_at - email - name - status in: query required: false schema: type: string SortEmailDomains: name: sort description: | Sorts a collection of email domains. Supported sort attributes are: - domain - created_at - updated_at in: query required: false schema: type: string SortListAllApplicationRegistrations: name: sort description: | Sorts a collection of application registrations. Supported sort attributes are: - created_at - updated_at - developer_id - status in: query required: false schema: type: string SortPortalPages: name: sort description: | Sorts a collection of portal pages. Supported sort attributes are: - created_at - updated_at - slug - title - visibility in: query required: false schema: type: string 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 SortPortalSnippets: name: sort description: | Sorts a collection of portal snippets. Supported sort attributes are: - created_at - updated_at - name - title - visibility 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 subscriptionId: name: subscriptionId in: path required: true description: Subscription ID of the user configuration. schema: type: string TargetId: description: ID of the Target to lookup example: 5a078780-5d4c-4aae-984a-bdc6f52113d8 in: path name: TargetId required: true schema: type: string TeamGroupMappingId: name: mappingId in: path required: true description: ID of the team group mapping. schema: type: string format: uuid 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 TransitGatewaysFilter: name: filter description: Filters supported for transit gateways. required: false in: query schema: $ref: '#/components/schemas/TransitGatewaysFilterParameters' style: deepObject UpstreamId: description: ID of the Upstream to lookup example: 426d620c-7058-4ae6-aacc-f85a3204a2c5 in: path name: UpstreamId required: true schema: type: string 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 userId: name: userId in: path required: true description: ID of the user. x-go-name: userIdParam schema: $ref: '#/components/schemas/UUID' VaultId: description: ID of the Vault to lookup example: 9d4d6d19-77c6-428e-a965-9bc9647633e9 in: path name: VaultId required: true schema: type: string 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_KAFKA_NATIVE_EVENT_PROXY - 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 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 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 telemetry_endpoint: description: Telemetry Endpoint. type: string format: url example: 'https://acfe5f253f.tp0.konghq.com' readOnly: 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_KAFKA_NATIVE_EVENT_PROXY - CLUSTER_TYPE_SERVERLESS_V1 readOnly: 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-unknown-values: allow cloud_gateway: description: Whether the Control Plane can be used for cloud-gateways. type: boolean nullable: false readOnly: 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-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-terraform-ignore: true additionalProperties: false required: - id - name - config - created_at - updated_at - description - labels GroupStatus: description: The Group Status object contains information about the status of a control plane group. type: object properties: id: description: The control plane group ID. type: string format: uuid example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 readOnly: true created_at: description: An ISO-8604 timestamp representation of control plane group status creation date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true updated_at: description: An ISO-8604 timestamp representation of control plane group status update date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true conflicts: type: array items: $ref: '#/components/schemas/GroupConflict' maxItems: 256 state: description: The state of the control plane group. type: string example: CONFLICT enum: - OK - CONFLICT - UNKNOWN readOnly: true x-speakeasy-unknown-values: allow required: - id - created_at - updated_at - state title: GroupStatus GroupConflict: description: The Group Conflict object contains information about a conflict in a control plane group. type: object properties: cluster_id: description: The ID of a control plane member of a control plane group. type: string format: uuid example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 readOnly: true description: description: The description of the conflict. type: string example: 'conflicting entity found: ID=38d790ad-8b08-4ff5-a074-2e1e9e64d8bd, Name=foo' readOnly: true resource: $ref: '#/components/schemas/GroupConflictResource' required: - cluster_id - description - resource title: GroupConflict GroupConflictResource: description: A resource causing a conflict in a control plane group. type: object properties: id: description: The ID of the resource. type: string format: uuid example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 readOnly: true type: description: The type of the resource. type: string example: service readOnly: true required: - id - type title: GroupConflictResource GroupMemberStatus: description: Object with information determining the group membership status of a control plane. type: object properties: is_member: description: Boolean indicating if a control plane is a member of a control plane group. type: boolean example: true readOnly: true required: - is_member title: GroupMemberStatus 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 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 CursorPaginatedMetaWithSizeAndTotal: description: returns the pagination information type: object properties: page: $ref: '#/components/schemas/CursorMetaWithSizeAndTotal' required: - page title: CursorPaginatedMetaWithSizeAndTotal CursorMetaWithSizeAndTotal: type: object properties: next: description: URI to the next page type: string format: path nullable: true size: description: Requested page size type: number example: 10 total: description: Total number of objects in the collection; will only be present on the first page type: number example: 974 required: - size - next StringFieldEqualsFilter: description: Filters on the given string field value by exact match. properties: eq: type: string title: StringFieldEqualsFilter StringFieldContainsFilter: description: Filters on the given string field value by fuzzy match. type: object properties: contains: type: string additionalProperties: false required: - contains title: StringFieldContainsFilter 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 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 type: description: The error type. type: string readOnly: 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 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 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-unknown-values: allow InvalidParameterStandard: type: object properties: field: type: string example: name readOnly: true rule: $ref: '#/components/schemas/InvalidRules' source: type: string example: body reason: type: string example: is a required field readOnly: true additionalProperties: false required: - field - reason InvalidParameterMinimumLength: type: object properties: field: type: string example: name readOnly: 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-unknown-values: allow minimum: type: integer example: 8 source: type: string example: body reason: type: string example: must have at least 8 characters readOnly: true additionalProperties: false required: - field - reason - rule - minimum InvalidParameterMaximumLength: type: object properties: field: type: string example: name readOnly: true rule: description: invalid parameters rules type: string enum: - max_length - max_items - max nullable: false readOnly: true x-speakeasy-unknown-values: allow maximum: type: integer example: 8 source: type: string example: body reason: type: string example: must not have more than 8 characters readOnly: true additionalProperties: false required: - field - reason - rule - maximum InvalidParameterChoiceItem: type: object properties: field: type: string example: name readOnly: true rule: description: invalid parameters rules type: string enum: - enum nullable: false readOnly: true reason: type: string example: is a required field readOnly: true choices: type: array items: {} minItems: 1 nullable: false readOnly: true uniqueItems: true source: type: string example: body additionalProperties: false required: - field - reason - rule - choices InvalidParameterDependentItem: type: object properties: field: type: string example: name readOnly: true rule: description: invalid parameters rules type: string enum: - dependent_fields nullable: true readOnly: true reason: type: string example: is a required field readOnly: true dependents: type: array items: {} nullable: true readOnly: true uniqueItems: true source: type: string example: body 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 PaginationNextResponse: description: URI to the next page (may be null) type: string PaginationOffsetResponse: description: Offset is used to paginate through the API. Provide this value to the next list operation to fetch the next page type: string 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 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 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 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 additionalProperties: false title: SAML Identity Provider Config IdP: description: |- The IdP object contains the configuration data for the OIDC authentication integration. NOTE: The `openid` scope is required. Removing it could break the OIDC integration. type: object properties: issuer: type: string format: uri example: 'https://myidp.com/oauth2' login_path: type: string example: myapp client_id: type: string example: YOUR_CLIENT_ID scopes: type: array items: type: string default: - email - openid - profile claim_mappings: type: object minProperties: 3 properties: name: type: string example: name default: name email: type: string example: email default: email groups: type: string example: custom-groups-claim default: groups title: IdP Configuration User: description: The user object contains information about an individual user who can use the Konnect application and API. type: object properties: id: description: The User ID. type: string format: uuid example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 readOnly: true email: description: The email registered to the user. type: string format: email example: user@email.com maxLength: 250 full_name: description: The User's full name. type: string example: Jane Doe maxLength: 250 pattern: '^[\w \W]+$' preferred_name: description: The User's preferred name. type: string example: Jane maxLength: 250 active: description: Returns True if a user has verified their email address. type: boolean default: true readOnly: true inferred_region: description: The Konnect region closest to the user's IP address. This property might only be set for users on signup through Konnect’s build-in native authentication. type: string example: us readOnly: true created_at: description: The time stamp for the date the account was registered. type: string format: date-time example: '2022-02-07T17:46:57.52Z' readOnly: true updated_at: description: A Unix timestamp representation of the most recent change to the User account. type: string format: date-time example: '2022-10-08T17:00:00.52Z' readOnly: true example: id: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 email: user@email.com full_name: Test User preferred_name: test active: true inferred_region: us created_at: '2022-02-07T17:46:57.52Z' updated_at: '2022-10-08T17:00:00.52Z' title: User 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 name: description: The name of the team. type: string example: IDM - Developers maxLength: 250 pattern: '^[\w \W]+$' description: description: The team description in Konnect. type: string example: The developers for the IDM API. maxLength: 250 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 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 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 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 TeamMapping: description: A team assignment is a mapping of an IdP group to a Konnect Team. type: object properties: group: description: The IdP group. type: string example: Service Developers team_ids: description: An array of ID's that are mapped to the specified group. type: array items: type: string format: uuid example: 6801e673-cc10-498a-94cd-4271de07a0d3 uniqueItems: true example: group: Service Developers team_ids: - 6801e673-cc10-498a-94cd-4271de07a0d3 title: TeamMapping TeamGroupMapping: description: A map of Konnect Team to IdP groups. type: object properties: team_id: description: The Konnect team ID. type: string format: uuid example: 6801e673-cc10-498a-94cd-4271de07a0d3 groups: description: The IdP groups that are mapped to the specified team. type: array items: type: string example: API Engineers uniqueItems: true example: team_id: 6801e673-cc10-498a-94cd-4271de07a0d3 groups: - Tech Leads - API Engineers title: TeamGroupMapping 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 entity_id: description: A RBAC entity ID. type: string format: uuid example: 817d0422-45c9-4d88-8d64-45aef05c1ae7 entity_type_name: description: Name of the entity type the role is being assigned to. type: string example: Control Planes 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 name: description: Name of the system account. type: string description: description: Description of the system account. type: string created_at: description: Timestamp of when the system account was created. type: string format: date-time readOnly: true updated_at: description: Timestamp of when the system account was last updated. type: string format: date-time readOnly: true konnect_managed: description: The system account is managed by Konnect (true/false). type: boolean 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 name: description: Name of the system account access token. type: string created_at: description: Timestamp of when the system account access token was created. type: string format: date-time readOnly: true updated_at: description: Timestamp of when the system account access token was last updated. type: string format: date-time readOnly: true expires_at: description: Timestamp of when the system account access token will expire. type: string format: date-time 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 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 PATName: type: string maxLength: 256 minLength: 1 pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.'']*[\p{L}\p{N}]$' PersonalAccessTokenCreateRequestWithExpiresAt: description: '**Deprecated:** Use `ttl_seconds` instead of `expires_at` to specify token expiration. Using a time-to-live value avoids clock skew issues when setting token expiration.' type: object properties: name: $ref: '#/components/schemas/PATName' expires_at: description: An ISO-8601 timestamp representation of entity expiration date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: false x-speakeasy-param-suppress-computed-diff: true additionalProperties: false deprecated: true required: - name - expires_at PersonalAccessTokenCreateRequestWithTTL: type: object properties: name: $ref: '#/components/schemas/PATName' ttl_seconds: description: The time to live in seconds for the personal access token. type: integer maximum: 31536000 minimum: 86400 additionalProperties: false required: - name - ttl_seconds PersonalAccessTokenCreateResponse: description: Details of the created personal access token. type: object properties: id: $ref: '#/components/schemas/UUID' user_id: $ref: '#/components/schemas/UserId' name: type: string state: description: State of the personal access token. type: string enum: - ACTIVE - REVOKED - EXPIRED readOnly: true x-speakeasy-unknown-values: allow konnect_token: $ref: '#/components/schemas/KonnectToken' revoked_by: $ref: '#/components/schemas/RevokedBy' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' last_used_at: $ref: '#/components/schemas/LastUsedAt' expires_at: $ref: '#/components/schemas/ExpiresAt' revoked_at: $ref: '#/components/schemas/RevokedAt' required: - id - name - state - konnect_token - user_id - created_at - expires_at UUID: description: Contains a unique identifier used for this resource. type: string format: uuid example: 5f9fd312-a987-4628-b4c5-bb4f4fddd5f7 readOnly: true 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 CursorMetaPage: type: object properties: first: description: URI to the first page type: string format: path last: description: URI to the last page type: string format: path next: description: URI to the next page type: string format: path nullable: true previous: description: URI to the previous page type: string format: path nullable: true size: description: Requested page size type: number example: 10 required: - size - next - previous CursorMeta: description: Pagination metadata. type: object properties: page: $ref: '#/components/schemas/CursorMetaPage' required: - page 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 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 UserId: description: Contains a unique identifier used for a user. type: string format: uuid example: 5f9fd312-a987-4628-b4c5-bb4f4fddd5f7 readOnly: true PersonalAccessTokenState: description: State of the personal access token. type: string enum: - ACTIVE - REVOKED - EXPIRED x-speakeasy-unknown-values: allow RevokedBy: description: Contains a unique identifier used for the user that revoked this token. type: string format: uuid example: 5f9fd312-a987-4628-b4c5-bb4f4fddd5f7 nullable: true readOnly: true LastUsedAt: description: An ISO-8601 timestamp representation of entity last used date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' nullable: true readOnly: true x-speakeasy-param-suppress-computed-diff: true ExpiresAt: description: An ISO-8601 timestamp representation of entity expiration date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' nullable: true readOnly: true x-speakeasy-param-suppress-computed-diff: true RevokedAt: description: An ISO-8601 timestamp representation of entity revoked at date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' nullable: true readOnly: true x-speakeasy-param-suppress-computed-diff: true PersonalAccessToken: description: Properties of a personal access token. type: object properties: id: $ref: '#/components/schemas/UUID' user_id: $ref: '#/components/schemas/UserId' name: type: string state: $ref: '#/components/schemas/PersonalAccessTokenState' revoked_by: $ref: '#/components/schemas/RevokedBy' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' last_used_at: $ref: '#/components/schemas/LastUsedAt' expires_at: $ref: '#/components/schemas/ExpiresAt' revoked_at: $ref: '#/components/schemas/RevokedAt' additionalProperties: false required: - id - name - state - user_id - created_at - updated_at - expires_at KonnectToken: description: The Konnect token used to authenticate with Konnect. type: string 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 readOnly: true 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 CustomDomainId: type: string format: uuid example: 39ed3790-085d-4605-9627-f96d86aaf425 readOnly: 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 PrivateDnsId: type: string format: uuid example: 1850820b-c69f-4a2a-b9be-bbcdbc5cd618 readOnly: true ProviderAccountId: type: string format: uuid example: 929b2449-c69f-44c4-b6ad-9ecec6f811ae ResourceQuotaId: type: string format: uuid example: 9678f205-49a1-47bb-82d9-d01cafa42a0d readOnly: true DefaultResourceQuotaId: type: string format: uuid example: cc504063-f3bb-4e09-8e32-bbcdbc5cd618 readOnly: true ResourceConfigurationId: type: string format: uuid example: 9678f205-49a1-47bb-82d9-d01cafa42a0d readOnly: true DefaultResourceConfigurationId: type: string format: uuid example: cc504063-f3bb-4e09-8e32-bbcdbc5cd618 readOnly: true 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 VersionList: description: List of supported gateway versions for cloud gateways. type: array items: $ref: '#/components/schemas/GatewayVersion' readOnly: true title: Version List 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 default: private+public enum: - private - public - private+public x-speakeasy-param-computed: true x-speakeasy-unknown-values: allow InstanceType: description: Resource parameters and pricing of a given supported instance type. type: object properties: name: $ref: '#/components/schemas/InstanceTypeName' hourly_cost: description: Hourly cost to run a single cloud gateway instance of this instance type. type: string format: ^(\d)+(\.(\d)+)?$ example: '1.00' v_cpu: description: Number of virtual CPUs available to a cloud gateway instance of this instance type. type: string format: ^(\d)+ example: '2' gb_memory: description: Number of gigabytes of memory available to a cloud gateway instance of this instance type. type: string format: ^(\d)+ example: '2' additionalProperties: false readOnly: true required: - name - hourly_cost - v_cpu - gb_memory title: Instance Type InstanceTypes: description: 'List of supported instance types, along with their associated resource parameters and pricing.' type: array items: $ref: '#/components/schemas/InstanceType' title: Instance Types ProviderRegionName: description: | Human-readable name for cloud provider region. The list of available provider regions can be retrieved via the availability endpoint `/v2/cloud-gateways/availability.json`. type: string example: N. Virginia title: Provider Region Name ProviderRegionId: description: Region ID for cloud provider region. type: string example: us-east-2 title: Provider Region ID ServerlessV1ProviderRegionId: description: Region ID for serverless v1 cloud provider region. type: string example: us title: Serverless V1 Provider Region ID ProviderRegion: description: Region ID and human-readable name for a cloud provider region. type: object properties: region: $ref: '#/components/schemas/ProviderRegionId' name: $ref: '#/components/schemas/ProviderRegionName' availability_zones: description: | List of supported availability zones for cloud provider region, for network AZ configuration. type: array items: type: string example: - use2-az1 - use2-az2 - use2-az3 cidr_blocks: description: | List of supported CIDR blocks for cloud provider region, for network CIDR block configuration. type: array items: type: string example: - 10.0.0.0/8 - 100.64.0.0/10 - 172.16.0.0/12 - 192.168.0.0/16 - 198.18.0.0/15 reserved_cidr_blocks: description: | List of reserved CIDR blocks for cloud provider region, to restrict allowed network CIDR block configuration. type: array items: type: string example: - 10.100.0.0/16 - 172.17.0.0/16 additionalProperties: false required: - region - name - availability_zones - cidr_blocks - reserved_cidr_blocks title: Provider Region ServerlessV1ProviderRegion: description: Region ID and human-readable name for a cloud provider region. type: object properties: region: $ref: '#/components/schemas/ServerlessV1ProviderRegionId' additionalProperties: false required: - region title: Serverless V1 Provider Region ProviderRegions: description: List of available regions to run cloud gateway instances on for a given cloud provider. type: array items: $ref: '#/components/schemas/ProviderRegion' title: Provider Regions ServerlessV1ProviderRegions: description: List of available regions to run serverless v1 cloud gateway instances on for a given cloud provider. type: array items: $ref: '#/components/schemas/ServerlessV1ProviderRegion' title: Serverless V1 Provider Regions ProviderName: description: Name of cloud provider. type: string example: aws enum: - aws - azure - gcp title: Provider Name x-speakeasy-unknown-values: allow ServerlessV1ProviderName: description: Name of cloud provider. type: string example: aws enum: - aws Provider: description: Description of cloud provider that runs cloud gateway instances. type: object properties: provider: $ref: '#/components/schemas/ProviderName' regions: $ref: '#/components/schemas/ProviderRegions' additionalProperties: false required: - provider - regions title: Provider ServerlessV1Provider: description: Description of cloud provider that runs serverless v1 cloud gateway instances. type: object properties: provider: $ref: '#/components/schemas/ServerlessV1ProviderName' regions: $ref: '#/components/schemas/ServerlessV1ProviderRegions' additionalProperties: false required: - provider - regions title: Serverless V1 Provider Providers: description: List of supported cloud providers that run cloud gateway instances. type: array items: $ref: '#/components/schemas/Provider' title: Providers ServerlessV1Providers: description: List of supported cloud providers that run serverless v1 cloud gateway instances. type: array items: $ref: '#/components/schemas/ServerlessV1Provider' title: Serverless V1 Providers AvailabilityDocument: description: Document containing availability information for configurations. type: object properties: versions: $ref: '#/components/schemas/VersionList' instance_types: $ref: '#/components/schemas/InstanceTypes' providers: $ref: '#/components/schemas/Providers' serverless_v1_providers: $ref: '#/components/schemas/ServerlessV1Providers' additionalProperties: false required: - versions - instance_types - providers - serverless_v1_providers title: Availability Document 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 x-speakeasy-param-computed: 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 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. 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 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 hostnames: description: List of hostnames for proxying to the data-plane group. type: array items: type: string 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 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 required: - id - provider - region - state - created_at - updated_at title: Cloud Gateway Configuration Data-Plane Group NetworkConfigurationReference: $ref: '#/components/schemas/ConfigurationManifest' 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 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 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 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 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 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 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-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-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-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-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 title: AWS Transit Gateway Attachment ID 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 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 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. 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 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 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 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 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. 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 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 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 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 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. 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 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 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 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 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. 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 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 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 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 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. 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 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 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 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 PatchAwsPrivateDnsResolver: description: Request schema for updating a Private DNS AWS Resolver. properties: name: $ref: '#/components/schemas/PrivateDnsName' private_dns_attachment_config: $ref: '#/components/schemas/AwsPrivateDnsResolverAttachmentConfig' PatchAzurePrivateDnsResolver: description: Request schema for updating a Private DNS Azure Resolver. properties: name: $ref: '#/components/schemas/PrivateDnsName' private_dns_attachment_config: $ref: '#/components/schemas/AzurePrivateDnsResolverAttachmentConfig' 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 PatchPrivateDnsRequest: description: Request schema for updating a Private DNS. type: object oneOf: - $ref: '#/components/schemas/PatchAwsPrivateDnsResolver' - $ref: '#/components/schemas/PatchAzurePrivateDnsResolver' title: PatchPrivateDnsRequest 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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-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 nullable: true readOnly: 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 nullable: true readOnly: 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 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 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 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 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 CustomDomainOnlinePropertyStatus: description: Set of available statuses for the online properties of a custom domain. type: string enum: - verified - unverified readOnly: true title: Custom Domain Online Property Status x-speakeasy-unknown-values: allow CustomDomainOnlineStatus: type: object properties: cname: $ref: '#/components/schemas/CustomDomainOnlinePropertyStatus' ssl: $ref: '#/components/schemas/CustomDomainOnlinePropertyStatus' additionalProperties: false required: - cname - ssl title: Custom Domain Online Status 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 ResourceQuotaQualifier: description: Enumeration of resources available for quota enforcement. type: string enum: - count/provider-accounts.per-provider - count/networks.not-offline - count/data-planes-estimate - count/serverless-data-planes-estimate - count/data-plane-groups-estimate - count/managed-cache-instances - max/managed-cache-size x-speakeasy-unknown-values: allow ResourceQuotaName: description: The human-readable name of this resource quota. type: string example: Active Networks readOnly: true ResourceQuotaDescription: description: A more verbose description of what this resource quota enforces. type: string example: 'Across the organization, the aggregate number of active networks cannot exceed this value.' readOnly: true ResourceQuotaValue: description: | The aggregate non-negative integer count of this resource that's allowed for the organization. type: integer example: 2 minimum: 0 ResourceQuota: description: Object containing information about a resource quota for an organization. type: object properties: id: $ref: '#/components/schemas/ResourceQuotaId' resource: $ref: '#/components/schemas/ResourceQuotaQualifier' name: $ref: '#/components/schemas/ResourceQuotaName' description: $ref: '#/components/schemas/ResourceQuotaDescription' value: $ref: '#/components/schemas/ResourceQuotaValue' created_at: description: An RFC-3339 timestamp representation of resource quota creation date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true updated_at: description: An RFC-3339 timestamp representation of resource quota update date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true required: - id - resource - name - description - value - created_at - updated_at title: Resource Quota DefaultResourceQuota: description: 'Object containing information about a default resource quota, and any organizational overrides.' type: object properties: id: $ref: '#/components/schemas/DefaultResourceQuotaId' resource: $ref: '#/components/schemas/ResourceQuotaQualifier' name: $ref: '#/components/schemas/ResourceQuotaName' description: $ref: '#/components/schemas/ResourceQuotaDescription' value: $ref: '#/components/schemas/ResourceQuotaValue' overrides: description: Organizational overrides for this default resource quota. type: array items: $ref: '#/components/schemas/ResourceQuota' created_at: description: An RFC-3339 timestamp representation of default resource quota creation date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true updated_at: description: An RFC-3339 timestamp representation of default resource quota update date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true required: - id - resource - name - description - value - overrides - created_at - updated_at title: Default Resource Quota ResourceConfigurationQualifier: description: Enumeration of configuration qualifiers available for organization-wide configuration. type: string enum: - data-plane-group-idle-timeout-minutes ResourceConfigurationValue: description: The value of this resource configuration. type: integer example: 45 ResourceConfigurationName: description: The human-readable name of this resource configuration. type: string example: Data Plane Group Idle Timeout Minutes readOnly: true ResourceConfigurationDescription: description: A more verbose description of what this resource configuration enforces. type: string example: The number of minutes that a data plane group can be idle before it is automatically scaled down to zero instances. readOnly: true AddOnId: type: string format: uuid example: 550e8400-e29b-41d4-a716-446655440000 readOnly: 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 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 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 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-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 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 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 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 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 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 ConfigurationsFilterParameters: type: object properties: control_plane_id: $ref: '#/components/schemas/IDFieldFilter' control_plane_geo: $ref: '#/components/schemas/ControlPlaneGeoFieldFilter' additionalProperties: false title: ConfigurationsFilterParameters CustomDomainsFilterParameters: type: object properties: control_plane_id: $ref: '#/components/schemas/IDFieldFilter' control_plane_geo: $ref: '#/components/schemas/ControlPlaneGeoFieldFilter' domain: $ref: '#/components/schemas/CloudGatewaysStringFieldFilterOverride' state: $ref: '#/components/schemas/CustomDomainStateFieldFilter' additionalProperties: false title: CustomDomainsFilterParameters TransitGatewaysFilterParameters: type: object properties: name: $ref: '#/components/schemas/CloudGatewaysStringFieldFilterOverride' state: $ref: '#/components/schemas/TransitGatewayStateFieldFilter' additionalProperties: false title: TransitGatewaysFilterParameters PrivateDnsFilterParameters: type: object properties: name: $ref: '#/components/schemas/CloudGatewaysStringFieldFilterOverride' state: $ref: '#/components/schemas/PrivateDnsStateFieldFilter' additionalProperties: false title: PrivateDnsFilterParameters NetworksFilterParameters: type: object properties: name: $ref: '#/components/schemas/CloudGatewaysStringFieldFilterOverride' state: $ref: '#/components/schemas/NetworkStateFieldFilter' additionalProperties: false title: NetworksFilterParameters ProviderAccountsFilterParameters: type: object properties: provider: $ref: '#/components/schemas/CloudGatewaysStringFieldFilterOverride' additionalProperties: false title: ProviderAccountsFilterParameters 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 CustomDomainStateFieldFilter: oneOf: - $ref: '#/components/schemas/CustomDomainStateFieldEqualsFilter' - $ref: '#/components/schemas/CustomDomainStateFieldNotEqualsFilter' - $ref: '#/components/schemas/CustomDomainStateFieldOrEqualityFilter' title: CustomDomainStateFieldFilter CustomDomainStateFieldEqualsFilter: description: Filter custom domain state by exact match. oneOf: - $ref: '#/components/schemas/CustomDomainState' - type: object title: CustomDomainStateFieldEqualsComparison properties: eq: $ref: '#/components/schemas/CustomDomainState' required: - eq title: CustomDomainStateFieldEqualsFilter CustomDomainStateFieldNotEqualsFilter: description: Filter custom domain state by inequality match. type: object properties: neq: $ref: '#/components/schemas/CustomDomainState' required: - neq title: CustomDomainStateFieldNotEqualsFilter CustomDomainStateFieldOrEqualityFilter: description: | Filter custom domain state by determining if the value is equal to any in a set of values, where the set is a comma-delimited list. type: object properties: oeq: type: string required: - oeq title: CustomDomainStateFieldOrEqualityFilter TransitGatewayStateFieldFilter: oneOf: - $ref: '#/components/schemas/TransitGatewayStateFieldEqualsFilter' - $ref: '#/components/schemas/TransitGatewayStateFieldNotEqualsFilter' - $ref: '#/components/schemas/TransitGatewayStateFieldOrEqualityFilter' title: TransitGatewayStateFieldFilter TransitGatewayStateFieldEqualsFilter: description: Filter transit-gateway state by exact match. oneOf: - $ref: '#/components/schemas/TransitGatewayState' - type: object title: TransitGatewayStateFieldEqualsComparison properties: eq: $ref: '#/components/schemas/TransitGatewayState' required: - eq title: TransitGatewayStateFieldEqualsFilter TransitGatewayStateFieldNotEqualsFilter: description: Filter transit-gateway state by inequality match. type: object properties: neq: $ref: '#/components/schemas/TransitGatewayState' required: - neq title: TransitGatewayStateFieldNotEqualsFilter TransitGatewayStateFieldOrEqualityFilter: description: | Filter transit-gateway state by determining if the value is equal to any in a set of values, where the set is a comma-delimited list. type: object properties: oeq: type: string required: - oeq title: TransitGatewayStateFieldOrEqualityFilter PrivateDnsStateFieldFilter: oneOf: - $ref: '#/components/schemas/PrivateDnsStateFieldEqualsFilter' - $ref: '#/components/schemas/PrivateDnsStateFieldNotEqualsFilter' - $ref: '#/components/schemas/PrivateDnsStateFieldOrEqualityFilter' title: PrivateDnsStateFieldFilter PrivateDnsStateFieldEqualsFilter: description: Filter Private DNS state by exact match. oneOf: - $ref: '#/components/schemas/PrivateDnsState' - type: object title: PrivateDnsStateFieldEqualsComparison properties: eq: $ref: '#/components/schemas/PrivateDnsState' required: - eq title: PrivateDnsStateFieldEqualsFilter PrivateDnsStateFieldNotEqualsFilter: description: Filter private-dns state by inequality match. type: object properties: neq: $ref: '#/components/schemas/PrivateDnsState' required: - neq title: PrivateDnsStateFieldNotEqualsFilter PrivateDnsStateFieldOrEqualityFilter: description: | Filter Private DNS state by determining if the value is equal to any in a set of values, where the set is a comma-delimited list. type: object properties: oeq: type: string required: - oeq title: PrivateDnsStateFieldOrEqualityFilter IDFieldFilter: 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 neq: description: The field does not match the provided value. type: string oeq: description: The field matches any of the provided values. type: string additionalProperties: false ControlPlaneGeoFieldFilter: oneOf: - $ref: '#/components/schemas/ControlPlaneGeoFieldEqualsFilter' - $ref: '#/components/schemas/ControlPlaneGeoFieldNotEqualsFilter' - $ref: '#/components/schemas/ControlPlaneGeoFieldOrEqualityFilter' title: ControlPlaneGeoFieldFilter ControlPlaneGeoFieldEqualsFilter: description: Filter a control-plane geo by exact match. oneOf: - $ref: '#/components/schemas/ControlPlaneGeo' - type: object title: ControlPlaneGeoFieldEqualsComparison properties: eq: $ref: '#/components/schemas/ControlPlaneGeo' required: - eq title: ControlPlaneGeoFieldEqualsFilter ControlPlaneGeoFieldNotEqualsFilter: description: Filter a control-plane geo by inequality match. type: object properties: neq: $ref: '#/components/schemas/ControlPlaneGeo' required: - neq title: ControlPlaneGeoFieldNotEqualsFilter ControlPlaneGeoFieldOrEqualityFilter: description: | Filter a control-plane geo by determining if the value is equal to any in a set of values, where the set is a comma-delimited list. type: object properties: oeq: type: string required: - oeq title: ControlPlaneGeoFieldOrEqualityFilter ResourceConfiguration: description: Object containing information about a resource configuration. type: object properties: id: $ref: '#/components/schemas/ResourceConfigurationId' qualifier: $ref: '#/components/schemas/ResourceConfigurationQualifier' value: $ref: '#/components/schemas/ResourceConfigurationValue' required: - id - qualifier - value title: Resource Configuration DefaultResourceConfiguration: description: 'Object containing information about a default resource configurations, and any organizational overrides.' type: object properties: id: $ref: '#/components/schemas/DefaultResourceConfigurationId' qualifier: $ref: '#/components/schemas/ResourceConfigurationQualifier' name: $ref: '#/components/schemas/ResourceConfigurationName' description: $ref: '#/components/schemas/ResourceConfigurationDescription' value: $ref: '#/components/schemas/ResourceConfigurationValue' overrides: description: Organizational overrides for this default resource configuration. type: array items: $ref: '#/components/schemas/ResourceConfiguration' created_at: description: An RFC-3339 timestamp representation of default resource configuration creation date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true updated_at: description: An RFC-3339 timestamp representation of default resource configuration update date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true required: - id - qualifier - name - description - value - overrides - created_at - updated_at title: Default Resource Configuration AddOnsFilterParameters: description: Filter parameters for add-ons list operation. type: object properties: name: $ref: '#/components/schemas/CloudGatewaysStringFieldFilterOverride' state: $ref: '#/components/schemas/AddOnStateFieldFilter' config.kind: $ref: '#/components/schemas/AddOnConfigKindFieldFilter' owner.control_plane_id: $ref: '#/components/schemas/UuidFieldFilter' owner.control_plane_geo: $ref: '#/components/schemas/ControlPlaneGeoFieldFilter' owner.control_plane_group_id: $ref: '#/components/schemas/UuidFieldFilter' owner.control_plane_group_geo: $ref: '#/components/schemas/ControlPlaneGeoFieldFilter' additionalProperties: false title: Add-Ons Filter Parameters AddOnStateFieldFilter: oneOf: - $ref: '#/components/schemas/AddOnStateFieldEqualsFilter' - $ref: '#/components/schemas/AddOnStateFieldNotEqualsFilter' - $ref: '#/components/schemas/AddOnStateFieldOrEqualityFilter' title: AddOnStateFieldFilter AddOnStateFieldEqualsFilter: description: Filter add-on state by exact match. oneOf: - $ref: '#/components/schemas/AddOnState' - $ref: '#/components/schemas/AddOnStateFieldEqualsComparison' title: AddOnStateFieldEqualsFilter AddOnStateFieldEqualsComparison: type: object properties: eq: $ref: '#/components/schemas/AddOnState' additionalProperties: false required: - eq title: AddOnStateFieldEqualsComparison AddOnStateFieldNotEqualsFilter: description: Filter add-on state by inequality match. type: object properties: neq: $ref: '#/components/schemas/AddOnState' additionalProperties: false required: - neq title: AddOnStateFieldNotEqualsFilter AddOnStateFieldOrEqualityFilter: description: | Filter add-on state by determining if the value is equal to any in a set of values, where the set is a comma-delimited list. type: object properties: oeq: type: string additionalProperties: false required: - oeq title: AddOnStateFieldOrEqualityFilter AddOnConfigKindFieldFilter: description: Filter for add-on config kind field. oneOf: - $ref: '#/components/schemas/AddOnConfigKindFieldEqualsFilter' - $ref: '#/components/schemas/AddOnConfigKindFieldNotEqualsFilter' - $ref: '#/components/schemas/AddOnConfigKindFieldOrEqualityFilter' title: Add-On Config Kind Field Filter AddOnConfigKindFieldEqualsFilter: description: Filter add-on config kind by exact match. oneOf: - $ref: '#/components/schemas/AddOnConfigKind' - $ref: '#/components/schemas/AddOnConfigKindFieldEqualsComparison' title: Add-On Config Kind Field Equals Filter AddOnConfigKindFieldEqualsComparison: type: object properties: eq: $ref: '#/components/schemas/AddOnConfigKind' additionalProperties: false required: - eq title: AddOnConfigKindFieldEqualsComparison AddOnConfigKindFieldNotEqualsFilter: description: Filter add-on config kind by inequality match. type: object properties: neq: $ref: '#/components/schemas/AddOnConfigKind' additionalProperties: false required: - neq title: Add-On Config Kind Field Not Equals Filter AddOnConfigKindFieldOrEqualityFilter: description: Filter add-on config kind by determining if the value is equal to any in a set of values. type: object properties: oeq: description: Comma-delimited list of add-on kinds. type: string additionalProperties: false required: - oeq title: Add-On Config Kind Field Or Equality Filter AddOnConfigKind: description: Type of add-on config. type: string enum: - managed-cache.v0 title: Add-On Config Kind 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 ListCursorMeta: anyOf: - $ref: '#/components/schemas/CursorMeta' - allOf: - $ref: '#/components/schemas/CursorMetaPage' deprecated: true NotificationFilterParameters: type: object properties: title: $ref: '#/components/schemas/LegacyStringFieldFilter' description: $ref: '#/components/schemas/LegacyStringFieldFilter' namespace: $ref: '#/components/schemas/LegacyStringFieldFilter' region: $ref: '#/components/schemas/LegacyStringFieldFilter' status: $ref: '#/components/schemas/LegacyStringFieldFilter' additionalProperties: false title: NotificationFilterParameters ConfigurationFilterParameters: type: object properties: event_title: $ref: '#/components/schemas/LegacyStringFieldFilter' event_description: $ref: '#/components/schemas/LegacyStringFieldFilter' event_namespace: $ref: '#/components/schemas/LegacyStringFieldFilter' region: $ref: '#/components/schemas/LegacyStringFieldFilter' additionalProperties: false title: ConfigurationFilterParameters Notification: description: Properties of a notification. type: object properties: id: $ref: '#/components/schemas/UUID' title: type: string description: type: string status: $ref: '#/components/schemas/NotificationStatus' region: $ref: '#/components/schemas/NotificationRegion' namespace: $ref: '#/components/schemas/NotificationNamespace' entity_id: description: ID of the entity. Use '*' to represent all entities of this type. type: string details: description: Metadata associated with the notification to build actionable links. type: object created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - id - title - description - status - region - namespace - entity_id - details - created_at - updated_at NotificationUpdatePayload: description: Status of the notification. type: object properties: status: $ref: '#/components/schemas/NotificationStatus' required: - status NotificationStatus: description: Status of the notification. type: string enum: - READ - UNREAD - ARCHIVED x-speakeasy-unknown-values: allow NotificationRegion: description: Region associated to a notification. type: string enum: - US - EU - AU - ME - IN - '*' x-speakeasy-unknown-values: allow NotificationChannel: description: Channel subscription details for an event. type: object properties: type: $ref: '#/components/schemas/NotificationChannelType' enabled: type: boolean required: - type - enabled NotificationChannelType: type: string enum: - EMAIL - IN_APP x-speakeasy-unknown-values: allow NotificationNamespace: type: string enum: - plan-and-usage - organization - dev-portal - cloud-gateways - gateway-manager x-speakeasy-unknown-values: allow EntityTypes: type: string enum: - billing-invoice - access-token - webhook - dev-portal - dataplane-group - dataplane - kai-enablement - enterprise-trial x-speakeasy-unknown-values: allow UserConfiguration: description: Properties of an event. type: object properties: event_id: type: string event_title: type: string event_description: type: string event_namespace: $ref: '#/components/schemas/NotificationNamespace' event_subscription_count: type: integer default: 0 default_subscription: type: array items: $ref: '#/components/schemas/DefaultSubscription' required: - event_id - event_title - event_description - event_namespace - event_subscription_count - default_subscription DefaultSubscription: type: object properties: channel: $ref: '#/components/schemas/NotificationChannelType' enabled: type: boolean required: - channel - enabled EventSubscriptionResponse: description: Properties associated with an event subscription. type: object properties: id: $ref: '#/components/schemas/UUID' entity_type: $ref: '#/components/schemas/EntityTypes' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' regions: type: array items: $ref: '#/components/schemas/NotificationRegion' entities: type: array items: type: string description: ID of the entity. Use '*' to represent all entities of this type. channels: type: array items: $ref: '#/components/schemas/NotificationChannel' enabled: description: Enable/Disable complete subscription within an event. type: boolean name: description: User provided name of the subscription. type: string required: - id - entity_type - created_at - updated_at - regions - entities - channels - enabled - name EventSubscription: description: Properties associated with an event subscription. type: object properties: regions: type: array items: $ref: '#/components/schemas/NotificationRegion' entities: type: array items: type: string description: ID of the entity. Use '*' to represent all entities of this type. channels: type: array items: $ref: '#/components/schemas/NotificationChannel' enabled: description: Enable/Disable complete subscription within an event. type: boolean name: description: User provided name of the subscription. type: string required: - regions - entities - channels - enabled - name BulkPayload: description: Request body schema for bulk status update. type: object properties: ids: type: array items: type: string maxItems: 100 minItems: 1 uniqueItems: true status: $ref: '#/components/schemas/NotificationStatus' required: - ids - status DcrConfigPropertyInitialClientId: description: | This ID should be copied from your identity provider's settings after you create a client and assign it as the management client for DCR for this developer portal type: string maxLength: 256 title: DcrConfigPropertyInitialClientId DcrConfigPropertyInitialClientSecret: description: | This secret should be copied from your identity provider's settings after you create a client and assign it as the management client for DCR for this developer portal type: string maxLength: 256 title: DcrConfigPropertyInitialClientSecret DcrConfigPropertyDcrToken: description: | This secret should be copied from your identity provider's settings after you create a client and assign it as the management client for DCR for this developer portal type: string maxLength: 256 title: DcrConfigPropertyInitialDcrToken DcrConfigPropertyInitialClientAudience: description: | This is the audience value used for the initial client. If using a custom domain on Auth0, this must be set as to the Auth0 Management API audience value. If left blank, the issuer will be used instead. type: string maxLength: 256 nullable: true title: DcrConfigPropertyInitialClientAudience DcrConfigPropertyApiKey: description: | This is the API Key that will be sent with each HTTP request to the custom DCR server. It can be verified on the server to ensure that incoming requests are coming from Konnect. type: string maxLength: 256 minLength: 12 pattern: '^[a-zA-Z0-9_]+$' title: DcrConfigPropertyApiKey DcrConfigPropertyDisableEventHooks: description: This flag disables all the event-hooks on the application flow for the DCR provider. type: boolean title: DcrConfigPropertyDisableEventHooks DcrConfigPropertyDisableRefreshSecret: description: This flag disable the refresh-secret endpoint on the application flow for the DCR provider. type: boolean title: DcrConfigPropertyDisableRefreshSecret DcrConfigPropertyAllowMultipleCredentials: description: 'When enabled, indicates that the DCR provider supports creating and managing multiple credentials per application.' type: boolean default: false title: DcrConfigPropertyAllowMultipleCredentials DcrConfigAuth0InResponse: description: A DCR provider configuration for Auth0 type: object properties: initial_client_id: $ref: '#/components/schemas/DcrConfigPropertyInitialClientId' initial_client_audience: $ref: '#/components/schemas/DcrConfigPropertyInitialClientAudience' use_developer_managed_scopes: type: boolean additionalProperties: false required: - initial_client_id - initial_client_audience - use_developer_managed_scopes title: DcrConfigAuth0InResponse CreateDcrConfigAuth0InRequest: description: Payload to create an Auth0 DCR provider. type: object properties: initial_client_id: $ref: '#/components/schemas/DcrConfigPropertyInitialClientId' initial_client_secret: $ref: '#/components/schemas/DcrConfigPropertyInitialClientSecret' initial_client_audience: $ref: '#/components/schemas/DcrConfigPropertyInitialClientAudience' use_developer_managed_scopes: type: boolean additionalProperties: false required: - initial_client_id - initial_client_secret title: DcrConfigAuth0InRequest UpdateDcrConfigAuth0InRequest: description: Payload to update an Auth0 DCR provider. type: object properties: initial_client_id: $ref: '#/components/schemas/DcrConfigPropertyInitialClientId' initial_client_secret: $ref: '#/components/schemas/DcrConfigPropertyInitialClientSecret' initial_client_audience: $ref: '#/components/schemas/DcrConfigPropertyInitialClientAudience' use_developer_managed_scopes: type: boolean additionalProperties: false title: DcrConfigAuth0InRequest DcrConfigAzureAdInResponse: description: A DCR provider configuration for Azure AD type: object properties: initial_client_id: $ref: '#/components/schemas/DcrConfigPropertyInitialClientId' additionalProperties: false required: - initial_client_id title: DcrConfigAzureAdInResponse CreateDcrConfigAzureAdInRequest: description: Payload to create an Azure AD DCR provider. type: object properties: initial_client_id: $ref: '#/components/schemas/DcrConfigPropertyInitialClientId' initial_client_secret: $ref: '#/components/schemas/DcrConfigPropertyInitialClientSecret' additionalProperties: false required: - initial_client_id - initial_client_secret title: DcrConfigAzureAdInRequest UpdateDcrConfigAzureAdInRequest: description: Payload to update an Azure AD DCR provider. type: object properties: initial_client_id: $ref: '#/components/schemas/DcrConfigPropertyInitialClientId' initial_client_secret: $ref: '#/components/schemas/DcrConfigPropertyInitialClientSecret' additionalProperties: false title: DcrConfigAzureAdInRequest DcrConfigCurityInResponse: description: A DCR provider configuration for Curity type: object properties: initial_client_id: $ref: '#/components/schemas/DcrConfigPropertyInitialClientId' additionalProperties: false required: - initial_client_id title: DcrConfigCurityInResponse CreateDcrConfigCurityInRequest: description: Payload to create a Curity DCR provider. type: object properties: initial_client_id: $ref: '#/components/schemas/DcrConfigPropertyInitialClientId' initial_client_secret: $ref: '#/components/schemas/DcrConfigPropertyInitialClientSecret' additionalProperties: false required: - initial_client_id - initial_client_secret title: DcrConfigCurityInRequest UpdateDcrConfigCurityInRequest: description: Payload to update a Curity DCR provider. type: object properties: initial_client_id: $ref: '#/components/schemas/DcrConfigPropertyInitialClientId' initial_client_secret: $ref: '#/components/schemas/DcrConfigPropertyInitialClientSecret' additionalProperties: false title: DcrConfigCurityInRequest DcrConfigKongIdentityInResponse: description: A DCR provider configuration for Kong Identity type: object properties: {} additionalProperties: false title: DcrConfigKongIdentityInResponse DcrConfigOktaInResponse: description: A DCR provider configuration for Okta type: object properties: {} additionalProperties: false title: DcrConfigOktaInResponse CreateDcrConfigKongIdentityInRequest: description: Payload to create a Kong Identity DCR provider. type: object additionalProperties: false title: CreateDcrConfigKongIdentityInRequest CreateDcrConfigOktaInRequest: description: Payload to create an Okta DCR provider. type: object properties: dcr_token: $ref: '#/components/schemas/DcrConfigPropertyDcrToken' additionalProperties: false required: - dcr_token title: DcrConfigOktaInRequest UpdateDcrConfigOktaInRequest: description: Payload to update an Okta DCR provider. type: object properties: dcr_token: $ref: '#/components/schemas/DcrConfigPropertyDcrToken' additionalProperties: false title: DcrConfigOktaInRequest DcrConfigHttpInResponse: description: A DCR provider configuration for HTTP type: object properties: dcr_base_url: type: string format: url disable_event_hooks: $ref: '#/components/schemas/DcrConfigPropertyDisableEventHooks' disable_refresh_secret: $ref: '#/components/schemas/DcrConfigPropertyDisableRefreshSecret' allow_multiple_credentials: $ref: '#/components/schemas/DcrConfigPropertyAllowMultipleCredentials' additionalProperties: false required: - dcr_base_url title: DcrConfigHttpInResponse CreateDcrConfigHttpInRequest: description: Payload to create an HTTP DCR provider. type: object properties: dcr_base_url: $ref: '#/components/schemas/DcrBaseUrl' api_key: $ref: '#/components/schemas/DcrConfigPropertyApiKey' disable_event_hooks: $ref: '#/components/schemas/DcrConfigPropertyDisableEventHooks' disable_refresh_secret: $ref: '#/components/schemas/DcrConfigPropertyDisableRefreshSecret' allow_multiple_credentials: $ref: '#/components/schemas/DcrConfigPropertyAllowMultipleCredentials' additionalProperties: false required: - dcr_base_url - api_key title: CreateDcrConfigHttpInRequest UpdateDcrConfigHttpInRequest: description: Payload to update an HTTP DCR provider. type: object properties: dcr_base_url: $ref: '#/components/schemas/DcrBaseUrl' api_key: $ref: '#/components/schemas/DcrConfigPropertyApiKey' disable_event_hooks: $ref: '#/components/schemas/DcrConfigPropertyDisableEventHooks' disable_refresh_secret: $ref: '#/components/schemas/DcrConfigPropertyDisableRefreshSecret' allow_multiple_credentials: $ref: '#/components/schemas/DcrConfigPropertyAllowMultipleCredentials' additionalProperties: false title: CreateDcrConfigHttpInRequest DcrProviderBase: description: Properties common to all DCR Providers. type: object properties: id: $ref: '#/components/schemas/UUID' name: $ref: '#/components/schemas/DcrProviderName' display_name: $ref: '#/components/schemas/DcrProviderDisplayName' provider_type: description: 'The type of DCR provider. Can be one of the following - auth0, azureAd, curity, okta, http' type: string issuer: description: The issuer of the DCR provider. type: string format: url maxLength: 256 active: description: At least one active auth strategy is using this DCR provider. type: boolean readOnly: true dcr_config: description: The DCR configuration for this DCR provider. type: object labels: $ref: '#/components/schemas/Labels' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - id - name - provider_type - issuer - active - dcr_config - created_at - updated_at DcrProviderAuth0: description: A DCR provider for Auth0 -- only properties not included in DcrProviderBase type: object properties: provider_type: type: string enum: - auth0 dcr_config: $ref: '#/components/schemas/DcrConfigAuth0InResponse' required: - provider_type - dcr_config title: DCR provider - Auth0 DcrProviderAzureAd: description: A DCR provider for Azure AD -- only properties not included in DcrProviderBase type: object properties: provider_type: type: string enum: - azureAd dcr_config: $ref: '#/components/schemas/DcrConfigAzureAdInResponse' required: - provider_type - dcr_config title: DCR provider - Azure AD DcrProviderCurity: description: A DCR provider for Curity -- only properties not included in DcrProviderBase type: object properties: provider_type: type: string enum: - curity dcr_config: $ref: '#/components/schemas/DcrConfigCurityInResponse' required: - provider_type - dcr_config title: DCR provider - Curity DcrProviderKongIdentity: description: A DCR provider for Kong Identity -- only properties not included in DcrProviderBase type: object properties: provider_type: type: string enum: - kongIdentity dcr_config: $ref: '#/components/schemas/DcrConfigKongIdentityInResponse' required: - provider_type - dcr_config title: DCR provider - Kong Identity DcrProviderOkta: description: A DCR provider for Okta -- only properties not included in DcrProviderBase type: object properties: provider_type: type: string enum: - okta dcr_config: $ref: '#/components/schemas/DcrConfigOktaInResponse' required: - provider_type - dcr_config title: DCR provider - OKTA DcrProviderHttp: description: A DCR provider for HTTP -- only properties not included in DcrProviderBase type: object properties: provider_type: type: string enum: - http dcr_config: $ref: '#/components/schemas/DcrConfigHttpInResponse' required: - provider_type - dcr_config title: DCR provider - HTTP CreateDcrProviderResponse: description: A response containing the newly created DCR provider object. type: object allOf: - $ref: '#/components/schemas/DcrProviderBase' - discriminator: propertyName: provider_type mapping: auth0: '#/components/schemas/DcrProviderAuth0' azureAd: '#/components/schemas/DcrProviderAzureAd' curity: '#/components/schemas/DcrProviderCurity' okta: '#/components/schemas/DcrProviderOkta' kongIdentity: '#/components/schemas/DcrProviderKongIdentity' http: '#/components/schemas/DcrProviderHttp' type: object oneOf: - $ref: '#/components/schemas/DcrProviderAuth0' - $ref: '#/components/schemas/DcrProviderAzureAd' - $ref: '#/components/schemas/DcrProviderCurity' - $ref: '#/components/schemas/DcrProviderOkta' - $ref: '#/components/schemas/DcrProviderKongIdentity' - $ref: '#/components/schemas/DcrProviderHttp' DcrProviderResponse: description: A response containing a single DCR provider object. Sensitive fields will be removed from the response. type: object allOf: - $ref: '#/components/schemas/DcrProviderBase' - discriminator: propertyName: provider_type mapping: auth0: '#/components/schemas/DcrProviderAuth0' azureAd: '#/components/schemas/DcrProviderAzureAd' curity: '#/components/schemas/DcrProviderCurity' okta: '#/components/schemas/DcrProviderOkta' kongIdentity: '#/components/schemas/DcrProviderKongIdentity' http: '#/components/schemas/DcrProviderHttp' type: object oneOf: - $ref: '#/components/schemas/DcrProviderAuth0' - $ref: '#/components/schemas/DcrProviderAzureAd' - $ref: '#/components/schemas/DcrProviderCurity' - $ref: '#/components/schemas/DcrProviderOkta' - $ref: '#/components/schemas/DcrProviderKongIdentity' - $ref: '#/components/schemas/DcrProviderHttp' CreateDcrProviderRequestAuth0: description: Request body for creating an Auth0 DCR provider. type: object properties: provider_type: type: string enum: - auth0 dcr_config: $ref: '#/components/schemas/CreateDcrConfigAuth0InRequest' name: $ref: '#/components/schemas/DcrProviderName' display_name: $ref: '#/components/schemas/DcrProviderDisplayName' issuer: type: string format: url maxLength: 256 labels: $ref: '#/components/schemas/Labels' required: - provider_type - dcr_config - name - issuer title: CreateDcrProviderRequestAuth0 CreateDcrProviderRequestAzureAd: description: Request body for creating an Azure AD DCR provider. type: object properties: provider_type: type: string enum: - azureAd dcr_config: $ref: '#/components/schemas/CreateDcrConfigAzureAdInRequest' name: $ref: '#/components/schemas/DcrProviderName' display_name: $ref: '#/components/schemas/DcrProviderDisplayName' issuer: type: string format: url maxLength: 256 labels: $ref: '#/components/schemas/Labels' required: - provider_type - dcr_config - name - issuer title: CreateDcrProviderRequestAzureAd CreateDcrProviderRequestCurity: description: Request body for creating a Curity DCR provider. type: object properties: provider_type: type: string enum: - curity dcr_config: $ref: '#/components/schemas/CreateDcrConfigCurityInRequest' name: $ref: '#/components/schemas/DcrProviderName' display_name: $ref: '#/components/schemas/DcrProviderDisplayName' issuer: type: string format: url maxLength: 256 labels: $ref: '#/components/schemas/Labels' required: - provider_type - dcr_config - name - issuer title: CreateDcrProviderRequestCurity CreateDcrProviderRequestOkta: description: Request body for creating an Okta DCR provider. type: object properties: provider_type: type: string enum: - okta dcr_config: $ref: '#/components/schemas/CreateDcrConfigOktaInRequest' name: $ref: '#/components/schemas/DcrProviderName' display_name: $ref: '#/components/schemas/DcrProviderDisplayName' issuer: type: string format: url maxLength: 256 labels: $ref: '#/components/schemas/Labels' required: - provider_type - dcr_config - name - issuer title: CreateDcrProviderRequestOkta CreateDcrProviderRequestKongIdentity: description: Request body for creating a Kong Identity DCR provider. type: object properties: provider_type: type: string enum: - kongIdentity dcr_config: $ref: '#/components/schemas/CreateDcrConfigKongIdentityInRequest' name: $ref: '#/components/schemas/DcrProviderName' display_name: $ref: '#/components/schemas/DcrProviderDisplayName' issuer: type: string format: url maxLength: 256 labels: $ref: '#/components/schemas/Labels' required: - provider_type - name - issuer title: CreateDcrProviderRequestKongIdentity CreateDcrProviderRequestHttp: description: Request body for creating an HTTP DCR provider. type: object properties: provider_type: type: string enum: - http dcr_config: $ref: '#/components/schemas/CreateDcrConfigHttpInRequest' name: $ref: '#/components/schemas/DcrProviderName' display_name: $ref: '#/components/schemas/DcrProviderDisplayName' issuer: type: string format: url maxLength: 256 labels: $ref: '#/components/schemas/Labels' required: - provider_type - dcr_config - name - issuer title: CreateDcrProviderRequestHttp CreateDcrProviderRequest: description: Request body for creating a DCR provider. The provider_type cannot be updated after creation. type: object discriminator: propertyName: provider_type mapping: auth0: '#/components/schemas/CreateDcrProviderRequestAuth0' azureAd: '#/components/schemas/CreateDcrProviderRequestAzureAd' curity: '#/components/schemas/CreateDcrProviderRequestCurity' okta: '#/components/schemas/CreateDcrProviderRequestOkta' http: '#/components/schemas/CreateDcrProviderRequestHttp' kongIdentity: '#/components/schemas/CreateDcrProviderRequestKongIdentity' oneOf: - $ref: '#/components/schemas/CreateDcrProviderRequestAuth0' - $ref: '#/components/schemas/CreateDcrProviderRequestAzureAd' - $ref: '#/components/schemas/CreateDcrProviderRequestCurity' - $ref: '#/components/schemas/CreateDcrProviderRequestOkta' - $ref: '#/components/schemas/CreateDcrProviderRequestHttp' - $ref: '#/components/schemas/CreateDcrProviderRequestKongIdentity' title: CreateDcrProviderRequest UpdateDcrProviderRequest: description: A set of updates to a DCR provider. The provider_type cannot be updated after creation. type: object properties: name: $ref: '#/components/schemas/DcrProviderName' display_name: $ref: '#/components/schemas/DcrProviderDisplayName' issuer: type: string format: url maxLength: 256 labels: $ref: '#/components/schemas/LabelsUpdate' dcr_config: anyOf: - $ref: '#/components/schemas/UpdateDcrConfigAuth0InRequest' - $ref: '#/components/schemas/UpdateDcrConfigAzureAdInRequest' - $ref: '#/components/schemas/UpdateDcrConfigCurityInRequest' - $ref: '#/components/schemas/UpdateDcrConfigOktaInRequest' - $ref: '#/components/schemas/UpdateDcrConfigHttpInRequest' additionalProperties: false title: UpdateDcrProviderRequest ListDcrProvidersResponse: description: A paginated list response for a collection of DCR providers type: object properties: data: type: array items: $ref: '#/components/schemas/DcrProviderResponse' meta: $ref: '#/components/schemas/PaginatedMeta' additionalProperties: false required: - data - meta title: ListDcrProvidersResponse VerifyDcrProviderResponse: description: A response containing the result of attempting to verify a DCR provider configuration. type: object properties: status: type: string enum: - success - failed x-speakeasy-unknown-values: allow errors: type: array items: type: string additionalProperties: false required: - status - errors title: VerifyDcrProviderResponse AuthStrategyPrincipals: description: | Application principal settings for this auth strategy. Runtime effect applies to V3 API Catalog (ACE) portals and applications; stored values may be set for any auth strategy in the organization. type: object properties: enabled: description: Whether application principals are enabled for this auth strategy. type: boolean default: false additionalProperties: false required: - enabled title: AuthStrategyPrincipals 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 maxItems: 10 minItems: 1 ttl: description: Default maximum Time-To-Live for keys created under this strategy. type: object 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 maxItems: 10 minItems: 1 ttl: description: Default maximum Time-To-Live for keys created under this strategy. Set to null to unset. type: object nullable: true properties: value: type: integer minimum: 1 unit: type: string enum: - days - weeks - years x-speakeasy-unknown-values: allow required: - value - unit 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 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 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' principals: $ref: '#/components/schemas/AuthStrategyPrincipals' 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 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 required: - id - name - provider_type 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 principals: $ref: '#/components/schemas/AuthStrategyPrincipals' 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 nullable: true labels: $ref: '#/components/schemas/Labels' principals: $ref: '#/components/schemas/AuthStrategyPrincipals' 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 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 required: - id - name - provider_type 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 principals: $ref: '#/components/schemas/AuthStrategyPrincipals' 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 nullable: true 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' principals: $ref: '#/components/schemas/AuthStrategyPrincipals' 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' ListAppAuthStrategiesResponse: description: A paginated list response for a collection of Application Auth Strategies type: object properties: data: type: array items: $ref: '#/components/schemas/AppAuthStrategy' meta: $ref: '#/components/schemas/PaginatedMeta' additionalProperties: false required: - data - meta title: ListAppAuthStrategiesResponse DcrBaseUrl: description: | The base URL of the DCR server. This is the URL that will be used to make the HTTP requests from Konnect to the DCR provider. This URL must be accessible from the Konnect service. type: string format: url maxLength: 256 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 DcrProviderName: description: | The name of the DCR provider. This is used to identify the DCR provider in the Konnect 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 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 ImageDataUri: example: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA' oneOf: - $ref: '#/components/schemas/ImagePNGDataUri' - $ref: '#/components/schemas/ImageJPGDataUri' - $ref: '#/components/schemas/ImageSVGDataUri' title: ImageDataUri ImageTypeSchema: description: The type of the image. type: string example: icon enum: - icon ReplaceImageRequestSchema: type: object properties: data: $ref: '#/components/schemas/ImageDataUri' additionalProperties: false required: - data title: Replace Image Payload ApiResponseSchema: type: object properties: id: description: The API identifier. type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 readOnly: 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 nullable: true 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 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 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 nullable: true readOnly: 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 APIImage: type: object properties: error: description: An error related to the image invalid status. type: string example: null nullable: true readOnly: true status: description: The status of the image. type: string example: valid enum: - uploading - validating - valid - invalid readOnly: true x-speakeasy-unknown-values: allow api_id: description: The API identifier which the image belongs to. type: string format: uuid example: 123e4567-e89b-12d3-a456-426614174000 readOnly: true image_type: allOf: - $ref: '#/components/schemas/ImageTypeSchema' - readOnly: true created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - status - error - api_id - image_type - created_at - updated_at title: Image Status 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 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 nullable: true title: API Document Parent Document ID 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 ApiDocumentSummaryWithChildren: type: object properties: id: $ref: '#/components/schemas/ApiDocumentId' 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' children: type: array items: $ref: '#/components/schemas/ApiDocumentSummaryWithChildren' additionalProperties: false required: - id - title - slug - status - parent_document_id - created_at - updated_at - children title: API Document Summary 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 MoveDocumentRequestPayload: description: move document request payload type: object properties: parent_document_id: description: parent document id type: string format: uuid example: dd4e1b98-3629-4dd3-acc0-759a726ffee2 index: description: index of the document in the parent document's children type: integer example: 1 title: Move document ApiVersionSummary: type: object properties: id: description: The API version identifier. type: string format: uuid example: 7710d5c4-d902-410b-992f-18b814155b53 readOnly: 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-terraform-ignore: true APIVersionRequest: type: object properties: version: description: The version of the api. type: string example: 1.0.0 spec: type: object additionalProperties: false properties: content: 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"}}}}}}' type: string 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 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 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 ValidateApiSpecRequestPayload: type: object properties: content: description: | The raw content of your API specification (OpenAPI or AsyncAPI), in json or yaml, to be validated. type: string additionalProperties: false required: - content title: API Specification Validation Request Payload ValidateApiSpecSuccessResponse: type: object properties: validation_messages: description: Any informational messages or warnings generated during validation. Empty if none. type: array items: type: object additionalProperties: false required: - message properties: message: type: string additionalProperties: false required: - validation_messages title: API Specification Validation Success Response 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 maxItems: 1 minItems: 1 nullable: true title: API Publication Auth Strategy IDs ApiPublicationListItem: description: An API publication in a portal type: object properties: api_id: description: The API identifier. type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 readOnly: true portal_id: description: The portal identifier. type: string format: uuid example: 7710d5c4-d902-410b-992f-18b814155b53 readOnly: true auto_approve_registrations: $ref: '#/components/schemas/AutoApproveRegistrations' entity_type: $ref: '#/components/schemas/EntityType' visibility: $ref: '#/components/schemas/ApiPublicationVisibility' auth_strategy_ids: $ref: '#/components/schemas/ApiPublicationAuthStrategyIds' warnings: description: Informational warnings (e.g. incompatible fields stripped for ACE). Empty if none. type: array items: type: string readOnly: true created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - api_id - portal_id - visibility - created_at - updated_at - auth_strategy_ids - auto_approve_registrations - entity_type title: API Publication List Item PublicationListItem: description: An API or API Package publication in a portal type: object properties: api_id: description: The API identifier. type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 readOnly: true portal_ids: description: The portal identifier. type: array items: type: string format: uuid example: - 7710d5c4-d902-410b-992f-18b814155b53 readOnly: true auto_approve_registrations: $ref: '#/components/schemas/AutoApproveRegistrations' entity_type: $ref: '#/components/schemas/EntityType' visibility: $ref: '#/components/schemas/ApiPublicationVisibility' auth_strategy_ids: $ref: '#/components/schemas/ApiPublicationAuthStrategyIds' warnings: description: Informational warnings (e.g. incompatible fields stripped for ACE). Empty if none. type: array items: type: string readOnly: true created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - api_id - portal_ids - visibility - created_at - updated_at - auth_strategy_ids - auto_approve_registrations - entity_type title: Publication List Item 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 created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false title: API Publication ApiPackagePublication: description: An API Package 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 created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false title: API Package 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 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 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 ApiImplementationListItem: description: An entity that implements an API type: object oneOf: - $ref: '#/components/schemas/ApiImplementationListItemGatewayServiceEntity' - $ref: '#/components/schemas/ApiImplementationListItemControlPlaneEntity' title: API Implementation List Item ApiImplementationListItemGatewayServiceEntity: description: An API Implementation list item for gateway services type: object properties: id: $ref: '#/components/schemas/UUID' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' api_id: description: The API identifier. type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 readOnly: true service: $ref: '#/components/schemas/ApiImplementationService' additionalProperties: false required: - id - api_id - created_at - updated_at title: ApiImplementationListItemGatewayServiceEntity ApiImplementationListItemControlPlaneEntity: description: An API Implementation list item for control planes type: object properties: id: $ref: '#/components/schemas/UUID' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' api_id: description: The API identifier. type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 readOnly: true control_plane: $ref: '#/components/schemas/ApiImplementationControlPlane' additionalProperties: false required: - id - api_id - created_at - updated_at - control_plane title: ApiImplementationListItemControlPlaneEntity 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 ApiAttributeListItem: description: Entities that describe APIs type: object properties: id: $ref: '#/components/schemas/UUID' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' key: description: 'A unique key that can contain lowercase letters, numbers, hyphens, and underscores' type: string format: '^[a-z0-9-_]{0,128}$' example: kind maxLength: 128 values: type: array items: type: object required: - value - api_count properties: value: description: A keyword describing the API under the attribute key type: string example: REST maxLength: 512 minLength: 1 pattern: '^[^,<>]*$' api_count: type: integer additionalProperties: false readOnly: true required: - id - key - values - created_at - updated_at title: API Attribute List Item 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 ApiOperation: description: An operation linked to an API type: object properties: id: description: The API operation identifier. type: string format: uuid example: b42d905a-ed33-46a3-a093-d8f536af9a8a readOnly: true method: $ref: '#/components/schemas/Method' path: description: The path of the operation. type: string example: /users/* implementation_status: $ref: '#/components/schemas/ApiOperationImplementationStatus' additionalProperties: false required: - id - method - path title: API Operation ApiOperationImplementationStatus: description: The implementation status of the operation. type: object properties: matched: description: Whether the operation is matched by a Kong route in the control plane type: boolean readOnly: true route: type: object additionalProperties: false nullable: true properties: id: description: The route identifier type: string format: uuid name: description: The name of the route type: string readOnly: true required: - id - name service: type: object additionalProperties: false nullable: true properties: id: description: The service identifier type: string format: uuid name: description: The name of the service type: string readOnly: true required: - id - name additionalProperties: false required: - matched - route - service title: API Operation Implementation Status APIPackageJSONPatchOperation: description: A JSON Patch operation to add or remove API Operations from a Package. type: array items: $ref: '#/components/schemas/APIPackageJSONPatchItem' minItems: 1 title: JSON Patch Operation APIPackageJSONPatchItem: description: A JSON Patch operation to add or remove an API Operation from a Package. type: object properties: op: description: The operation to perform. type: string enum: - add - remove - replace x-speakeasy-unknown-values: allow path: description: 'The path to the API Operation in the Package, in the format "operations/<uuid>".' type: string pattern: '^operations/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$' value: type: object additionalProperties: false properties: rate_limiting_config: $ref: '#/components/schemas/RateLimitingConfig' required: - rate_limiting_config additionalProperties: false required: - op - path ApiFilterParameters: type: object properties: id: $ref: '#/components/schemas/UuidFieldFilter' name: $ref: '#/components/schemas/StringFieldFilter' version: $ref: '#/components/schemas/StringFieldFilter' labels: $ref: '#/components/schemas/LabelsFieldFilter' attributes: $ref: '#/components/schemas/AttributesFieldFilter' implementation_mode: $ref: '#/components/schemas/StringFieldFilter' created_at: $ref: '#/components/schemas/DateTimeFieldFilter' updated_at: $ref: '#/components/schemas/DateTimeFieldFilter' title: API Filter Parameters ApiPackageFilterParameters: type: object properties: id: $ref: '#/components/schemas/UuidFieldFilter' name: $ref: '#/components/schemas/StringFieldFilter' version: $ref: '#/components/schemas/StringFieldFilter' labels: $ref: '#/components/schemas/LabelsFieldFilter' attributes: $ref: '#/components/schemas/AttributesFieldFilter' created_at: $ref: '#/components/schemas/DateTimeFieldFilter' updated_at: $ref: '#/components/schemas/DateTimeFieldFilter' title: API Package Filter Parameters ApiPackageOperationsFilterParameters: type: object properties: api_id: $ref: '#/components/schemas/UuidFieldFilter' method: $ref: '#/components/schemas/StringFieldFilter' path: $ref: '#/components/schemas/StringFieldFilter' created_at: $ref: '#/components/schemas/DateTimeFieldFilter' updated_at: $ref: '#/components/schemas/DateTimeFieldFilter' title: API Package Operations Filter Parameters ApiDocumentFilterParameters: type: object properties: status: $ref: '#/components/schemas/StringFieldFilter' title: API Document Filter Parameters ApiSpecFilterParameters: type: object properties: type: $ref: '#/components/schemas/StringFieldFilter' title: API Spec Filter Parameters ApiVersionFilterParameters: type: object properties: type: $ref: '#/components/schemas/StringFieldFilter' version: $ref: '#/components/schemas/StringFieldFilter' title: API Spec Filter Parameters ApiPublicationFilterParameters: type: object properties: portal_id: $ref: '#/components/schemas/UuidFieldFilter' portal_name: $ref: '#/components/schemas/StringFieldFilter' api_id: $ref: '#/components/schemas/UuidFieldFilter' api_name: $ref: '#/components/schemas/StringFieldFilter' auth_strategy_id: $ref: '#/components/schemas/UuidFieldFilter' entity_type: $ref: '#/components/schemas/StringFieldFilter' title: API Publication Filter Parameters PortalApiPublicationFilterParameters: description: API Publication filters excluding portal-specific fields (since portal is already specified in path) type: object properties: api_id: $ref: '#/components/schemas/UuidFieldFilter' api_name: $ref: '#/components/schemas/StringFieldFilter' auth_strategy_id: $ref: '#/components/schemas/UuidFieldFilter' entity_type: $ref: '#/components/schemas/StringFieldFilter' title: Portal API Publication Filter Parameters ApiImplementationFilterParameters: type: object properties: id: $ref: '#/components/schemas/UuidFieldFilter' api_id: $ref: '#/components/schemas/UuidFieldFilter' service_id: $ref: '#/components/schemas/UuidFieldFilter' control_plane_id: $ref: '#/components/schemas/UuidFieldFilter' created_at: $ref: '#/components/schemas/DateTimeFieldFilter' updated_at: $ref: '#/components/schemas/DateTimeFieldFilter' title: API Implementation Filter Parameters ApiAttributeFilterParameters: type: object properties: id: $ref: '#/components/schemas/UuidFieldFilter' key: $ref: '#/components/schemas/UuidFieldFilter' created_at: $ref: '#/components/schemas/DateTimeFieldFilter' updated_at: $ref: '#/components/schemas/DateTimeFieldFilter' title: API Attribute Filter Parameters ApiOperationFilterParameters: type: object properties: method: $ref: '#/components/schemas/StringFieldFilter' path: $ref: '#/components/schemas/StringFieldFilter' title: API Operation Filter Parameters ApiPackageResponseSchema: type: object properties: id: description: The API Package identifier. type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 readOnly: true name: description: | The name of your API Package. The `name + version` combination must be unique for each API Package you publish. type: string example: MyAPIPackage maxLength: 255 minLength: 1 description: description: A description of your API Package. Will be visible on your live Portal. type: string nullable: true slug: description: | The unique slug for your API Package, It should be unique across all APIs and API Packages. type: string example: my-api-package-v1 nullable: true pattern: '^[\w-]+$' version: description: An optional version for your API Package. Leave this empty if your API Package is unversioned. type: string maxLength: 255 minLength: 1 nullable: true rate_limiting_config: $ref: '#/components/schemas/RateLimitingConfig' labels: $ref: '#/components/schemas/Labels' attributes: $ref: '#/components/schemas/ApiAttributes' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - id - name - slug - version - labels - attributes - created_at - updated_at - rate_limiting_config title: API Package ApiPackageOperationResponseSchema: type: object properties: id: description: The API Operation identifier. type: string format: uuid example: 0f5061ce-78f6-4452-9108-ad7c02821fd6 readOnly: true api: type: object additionalProperties: false properties: id: description: The API identifier. type: string format: uuid example: 0f5061ce-78f6-4452-9108-ad7c02821fd6 readOnly: true name: description: The name of the API this operation belongs to. type: string example: MyAPI readOnly: true version: description: The version of the API this operation belongs to. type: string example: 1.0.0 readOnly: true readOnly: true required: - id - name - version method: $ref: '#/components/schemas/Method' path: description: The path of the API Operation. type: string example: '/users/{user_id}' readOnly: true rate_limiting_config: description: Rate limit configuration that can be applied to an API Package or an API Package Operation. type: object additionalProperties: false nullable: true properties: limit: description: The amount of requests allowed for each operation within the specified duration. type: integer minimum: 0 duration: description: The timeframe to ensure that an application does not exceed the request limit. type: string enum: - seconds - minutes - hours x-speakeasy-unknown-values: allow readOnly: true required: - limit - duration title: Rate Limiting configuration created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' implementation_status: $ref: '#/components/schemas/ApiOperationImplementationStatus' additionalProperties: false required: - id - api - method - path - created_at - updated_at - rate_limiting_config title: API Package Operation Response Method: description: The HTTP method of an API Operation. type: string enum: - GET - POST - PUT - DELETE - PATCH - OPTIONS - HEAD - CONNECT - TRACE readOnly: true x-speakeasy-unknown-values: allow RateLimitingConfig: description: Rate limit configuration that can be applied to an API Package or an API Package Operation. type: object properties: limit: description: The amount of requests allowed for each operation within the specified duration. type: integer minimum: 0 duration: description: The timeframe to ensure that an application does not exceed the request limit. type: string enum: - seconds - minutes - hours x-speakeasy-unknown-values: allow additionalProperties: false nullable: true required: - limit - duration title: Rate Limiting configuration APIPackageImage: type: object properties: error: description: An error related to the image invalid status. type: string example: null nullable: true readOnly: true status: description: The status of the image. type: string example: valid enum: - uploading - validating - valid - invalid readOnly: true x-speakeasy-unknown-values: allow api_package_id: description: The API identifier which the image belongs to. type: string format: uuid example: 123e4567-e89b-12d3-a456-426614174000 readOnly: true image_type: allOf: - $ref: '#/components/schemas/ImageTypeSchema' - readOnly: true created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - status - error - api_package_id - image_type - created_at - updated_at title: Image Status ApiRegistrationsListResponse: description: The response for a list of API registrations. type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/ApiRegistration' additionalProperties: false required: - data - meta title: ApiRegistrationsListResponse ApiRegistration: description: An API registration. type: object properties: id: $ref: '#/components/schemas/UUID' status: type: string enum: - approved - pending - rejected - revoked x-speakeasy-unknown-values: allow portal: type: object additionalProperties: false properties: id: $ref: '#/components/schemas/UUID' name: type: string required: - id - name application: type: object additionalProperties: false properties: id: $ref: '#/components/schemas/UUID' name: type: string description: type: string owner: $ref: '#/components/schemas/ApplicationOwner' required: - id - name - owner additionalProperties: false required: - id - status - portal - application title: ApiRegistration LabelsFieldFilter: allOf: - title: LabelsFieldFilter description: | Filters on the resource's `labels` field. Filters must use dot-notation to identify the label key that will be used to filter the results. For example: - `filter[labels.owner]` - `filter[labels.owner][neq]=kong` - `filter[labels.env]=dev` - `filter[labels.env][ocontains]=dev,test` - $ref: '#/components/schemas/StringFieldFilter' AttributesFieldFilter: allOf: - title: AttributesFieldFilter description: | Filters on the resource's `attributes` field. Filters must use dot-notation to identify the attribute key that will be used to filter the results. For example: - `filter[attributes.owner]` - `filter[attributes.owner][neq]=kong` - `filter[attributes.env]=dev` - `filter[attributes.env][ocontains]=dev,test` - $ref: '#/components/schemas/StringFieldFilter' DateTimeFieldFilter: description: Filters on the given datetime (RFC-3339) field value. oneOf: - type: object title: DateTimeFieldEqualsFilter additionalProperties: false properties: eq: description: Value strictly equals given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - eq - type: object title: DateTimeFieldLTFilter additionalProperties: false properties: lt: description: Value is less than the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - lt - type: object title: DateTimeFieldLTEFilter additionalProperties: false properties: lte: description: Value is less than or equal to the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - lte - type: object title: DateTimeFieldGTFilter additionalProperties: false properties: gt: description: Value is greater than the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - gt - type: object title: DateTimeFieldGTEFilter additionalProperties: false properties: gte: description: Value is greater than or equal to the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - gte title: DateTimeFieldFilter 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 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 ImagePNGDataUri: description: 'must be a data URL with base64 PNG image data, e.g., data:image/png;base64,<BASE64_IMAGE_DATA>' type: string format: uri example: 'data:image/png,YW5faW1hZ2VfZmlsZQ==' pattern: '^data:image/png(;base64)?,(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$' title: ImagePNGDataUri x-validation-message: 'must be a data URL with base64 PNG image data, e.g., data:image/png;base64,<BASE64_IMAGE_DATA>' ImageJPGDataUri: description: 'must be a data URL with base64 JPEG image data, e.g., data:image/jpeg;base64,<BASE64_IMAGE_DATA>' type: string format: uri example: 'data:image/jpeg,YW5faW1hZ2VfZmlsZQ==' pattern: '^data:image/jpeg(;base64)?,(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$' title: ImageJPGDataUri x-validation-message: 'must be a data URL with base64 JPEG image data, e.g., data:image/jpeg;base64,<BASE64_IMAGE_DATA>' ImageSVGDataUri: description: 'must be a data URL with base64 SVG image data, e.g., data:image/svg\+xml;base64,<BASE64_IMAGE_DATA>' type: string format: uri example: 'data:image/svg+xml,YW5faW1hZ2VfZmlsZQ==' pattern: '^data:image/svg\+xml(;base64)?,(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$' title: ImageSVGDataUri x-validation-message: 'must be a data URL with base64 SVG image data, e.g., data:image/svg\+xml;base64,<BASE64_IMAGE_DATA>' EntityType: description: The type of entity that is being published. Can be either an API or an API Package. type: string example: api enum: - api - api_package title: Entity Type x-speakeasy-unknown-values: allow ApplicationOwnerType: description: The type of the owner of the application. Can be `developer` (individual developer) or `team`. type: string enum: - developer - team x-speakeasy-unknown-values: allow ApplicationOwnerId: description: 'The ID of the owner of the application. When type is `developer`, this is the developer ID. When type is `team`, this is the team ID.' type: string format: uuid ApplicationOwner: type: object properties: type: $ref: '#/components/schemas/ApplicationOwnerType' id: $ref: '#/components/schemas/ApplicationOwnerId' additionalProperties: false required: - type - id CreatePortalIdpTeamGroupMappingRequest: type: object properties: team_id: description: The Konnect team ID. type: string format: uuid example: 6801e673-cc10-498a-94cd-4271de07a0d3 group: description: The IdP group name. type: string example: API Engineers required: - team_id - group PortalIdpTeamGroupMapping: type: object properties: id: description: The mapping ID. type: string format: uuid example: a1b2c3d4-e5f6-4a8b-9c0d-1e2f3a4b5c6d readOnly: true team_id: description: The Konnect team ID. type: string format: uuid example: 6801e673-cc10-498a-94cd-4271de07a0d3 group: description: The IdP group name. type: string example: API Engineers created_at: description: Creation timestamp. type: string format: date-time example: '2024-01-15T10:30:00Z' readOnly: true updated_at: description: Last update timestamp. type: string format: date-time example: '2024-01-15T10:30:00Z' readOnly: true required: - id - team_id - group - created_at - updated_at PortalIdpTeamGroupMappingCollectionResponse: type: object properties: meta: $ref: '#/components/schemas/CursorMeta' data: type: array items: $ref: '#/components/schemas/PortalIdpTeamGroupMapping' required: - meta - data PortalImageDataUri: oneOf: - $ref: '#/components/schemas/ImagePNGDataUri' - $ref: '#/components/schemas/ImageJPGDataUri' - $ref: '#/components/schemas/ImageGIFDataUri' - $ref: '#/components/schemas/ImageICODataUri' - $ref: '#/components/schemas/ImageSVGDataUri' title: PortalImageDataUri PortalImageAssetBlob: description: Raw binary image data type: string format: binary title: PortalImageAsset 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=' additionalProperties: false nullable: true required: - data title: ReplacePortalImageAsset CreateDeveloperRequest: description: Request body for creating a developer in a portal. type: object properties: email: type: string format: email maxLength: 255 full_name: type: string maxLength: 255 status: description: 'When omitted, the portal''s `auto_approve_developers` setting determines the initial status. Set this property to override the portal default with any valid developer status.' type: string example: approved enum: - approved - pending - revoked - rejected title: DeveloperStatus x-speakeasy-unknown-values: allow send_invitation_email: description: 'When true, sends an invitation email to the developer. Default is false; no emails are sent unless explicitly requested.' type: boolean default: false example: email: developer@example.com full_name: Developer Name additionalProperties: false required: - email - full_name title: CreateDeveloperRequest UpdateDeveloperRequest: type: object properties: status: $ref: '#/components/schemas/DeveloperStatus' example: status: approved additionalProperties: false title: UpdateDeveloperRequest PortalDeveloper: type: object properties: id: $ref: '#/components/schemas/UUID' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' email: type: string format: email maxLength: 255 full_name: type: string maxLength: 255 status: $ref: '#/components/schemas/DeveloperStatus' example: id: 7cd9feff-b4da-4a9f-ba49-cbe83c75ff22 email: developer@example.com full_name: Jane Dev status: approved created_at: '2022-11-15T20:37:41.457Z' updated_at: '2022-11-15T20:37:47.456Z' additionalProperties: false required: - id - created_at - updated_at - email - full_name - status title: PortalDeveloper BasicDeveloper: description: Basic information about a developer. type: object properties: id: type: string format: uuid example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 readOnly: true email: type: string format: email example: developer@email.com maxLength: 250 full_name: type: string example: API Developer maxLength: 250 pattern: '^[\w \W]+$' active: type: boolean example: true readOnly: true created_at: type: string format: date-time example: '2022-02-07T17:46:57.52Z' readOnly: true updated_at: type: string format: date-time example: '2022-10-08T17:00:00.52Z' readOnly: true example: id: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 email: user@email.com full_name: API Developer active: true created_at: '2022-02-07T17:46:57.52Z' updated_at: '2022-10-08T17:00:00.52Z' title: BasicDeveloper ListDevelopersResponse: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/PortalDeveloper' example: meta: page: number: 1 size: 10 total: 4 data: - id: 8cd9feff-b4da-4a9f-ba49-cbe83c75ff22 email: jane.developer@example.com full_name: Jane Dev status: approved created_at: '2022-11-15T20:37:41.457Z' updated_at: '2022-11-15T20:37:47.456Z' - id: 4cd9feff-b4da-4a9f-ba49-cbe83c75ff22 email: john.developer@example.com full_name: John Dev status: revoked created_at: '2022-11-15T20:37:41.457Z' updated_at: '2022-11-15T20:37:47.456Z' - id: 6cd9feff-b4da-4a9f-ba49-cbe83c75ff22 email: john.developer@example.com full_name: Jim Dev status: pending created_at: '2022-11-15T20:37:41.457Z' updated_at: '2022-11-15T20:37:47.456Z' - id: 7cd9feff-b4da-4a9f-ba49-cbe83c75ff22 email: john.developer@example.com full_name: Jan Dev status: rejected created_at: '2022-11-15T20:37:41.457Z' updated_at: '2022-11-15T20:37:47.456Z' additionalProperties: false required: - data - meta DeveloperStatus: description: 'The status of a developer in a portal. Approved developers can log in, create applications, and view and register for products they have access to. Pending, revoked, and rejected developers cannot login or view any non-public portal information, or create or modify applications or registrations.' type: string example: approved enum: - approved - pending - revoked - rejected title: DeveloperStatus x-speakeasy-unknown-values: allow MovePageRequestPayload: description: move page request payload type: object properties: parent_page_id: description: parent page id type: string format: uuid example: dd4e1b98-3629-4dd3-acc0-759a726ffee2 index: description: index of the document in the parent document's children type: integer example: 1 title: MovePage 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 nullable: true 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 PortalPageInfo: description: Information about a page in a portal. type: object properties: id: $ref: '#/components/schemas/UUID' slug: $ref: '#/components/schemas/PageSlug' title: $ref: '#/components/schemas/PageTitle' visibility: $ref: '#/components/schemas/VisibilityStatus' status: $ref: '#/components/schemas/PublishedStatus' description: $ref: '#/components/schemas/Description' parent_page_id: $ref: '#/components/schemas/ParentPageId' children: description: children of the page type: array items: $ref: '#/components/schemas/PortalPageInfo' example: - id: d32d905a-ed33-46a3-a093-d8f536af9a8a slug: hello-world title: Hello world visibility: public created_at: '2023-01-11T02:30:42.227Z' updated_at: '2023-01-11T02:30:42.227Z' status: unpublished parent_page_id: null children: [] created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - id - slug - title - visibility - created_at - updated_at - status - parent_page_id - children title: PortalPageInfo PortalSnippetInfo: description: Information about a snippet in a portal. type: object properties: id: $ref: '#/components/schemas/UUID' name: $ref: '#/components/schemas/SnippetName' title: $ref: '#/components/schemas/SnippetTitle' 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 - title - visibility - status - created_at - updated_at title: PortalSnippetInfo DefaultContent: description: Summary of created default content type: object properties: pages: type: array items: type: string snippets: type: array items: type: string additionalProperties: false required: - pages - snippets title: DefaultContent 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 ListPortalPagesResponse: description: Tree of custom pages in a portal. Not paginated. type: object properties: data: type: array items: $ref: '#/components/schemas/PortalPageInfo' example: data: - id: 437c7192-fea0-4f35-8478-c8d57783f8c1 slug: /my-page title: My Page visibility: public status: unpublished description: A custom page created_at: '2021-01-01T00:00:00Z' updated_at: '2021-01-01T00:00:00Z' parent_page_id: null children: [] additionalProperties: false required: - data title: ListPortalPagesResponse 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 ListPortalSnippetsResponse: description: A paginated list of custom snippets in a portal. type: object properties: data: type: array items: $ref: '#/components/schemas/PortalSnippetInfo' meta: $ref: '#/components/schemas/PaginatedMeta' example: data: - id: 437c7192-fea0-4f35-8478-c8d57783f8c1 name: my-snippet title: My Snippet visibility: public status: published description: A custom snippet created_at: '2021-01-01T00:00:00Z' updated_at: '2021-01-01T00:00:00Z' meta: page: number: 1 size: 10 total: 1 additionalProperties: false required: - data - meta title: ListPortalSnippetsResponse 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 CreateApplicationRequest: type: object properties: name: description: The name of the application. type: string maxLength: 255 description: description: A description of the application. type: string maxLength: 255 labels: $ref: '#/components/schemas/LabelsUpdate' dcr_client_id: description: | If using a DCR auth strategy, set this property to link the portal application to an existing client from the DCR provider, instead of having Konnect create a new client. This allows importing existing clients from an Identity Provider into Konnect, allowing them to be controlled through DCR flows in the portal and use existing client secrets for API access. The value must be a valid client ID in the DCR provider associated with the auth strategy. For some DCR providers, if the client ID is invalid, the application may still be created but will not function properly. Note: For AzureAD auth strategies, the client ID must resolve to an accessible Microsoft Entra application using the configured DCR provider credentials. Otherwise, application creation fails. type: string maxLength: 255 client_id: $ref: '#/components/schemas/ApplicationClientId' auth_strategy_id: description: The ID of the authentication strategy the application will use when making requests to registered APIs. type: string format: uuid owner: $ref: '#/components/schemas/ApplicationOwner' example: name: Portal Application description: A portal application provisioned for a developer by a Portal Admin. labels: env: production auth_strategy_id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 owner: id: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 type: developer additionalProperties: false required: - name - owner title: CreateApplicationRequest UpdateApplicationRequest: type: object properties: owner: $ref: '#/components/schemas/ApplicationOwner' additionalProperties: false title: UpdateApplicationRequest ListApplicationsResponse: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/Application' example: meta: page: number: 1 size: 10 total: 2 data: - id: b15e2460-ba40-431d-9df0-4957fcffacda labels: env: test name: App 1 description: An easy to manage app in a Konnect developer portal registration_count: 2 portal: id: 95606071-49c7-4c2e-ae49-8a86d72a8110 auth_strategy: id: 85606071-49c7-4c2e-ae49-8a86d72a8110 name: API Key credential_type: key_auth key_names: - apikey created_at: '2022-12-22T19:09:30.712Z' updated_at: '2022-12-22T19:09:30.712Z' - id: b15e2460-ba40-431d-9df0-4957fcffacda labels: env: test name: App 1 description: A Konnect application that is linked to an Identity Provider application using Dynamic Client Registration (DCR) client_id: yr1k0d9kj3l0cl01hp4o0 registration_count: 3 portal: id: 95606071-49c7-4c2e-ae49-8a86d72a8110 auth_strategy: id: 65606071-49c7-4c2e-ae49-8a86d72a8110 name: Client Credentials credential_type: client_credentials auth_methods: - client_credentials - bearer - session dcr_provider: id: 7ea06071-49c7-4c2e-ae49-8a86d72a8110 granted_scopes: null created_at: '2022-12-22T19:07:30.712Z' updated_at: '2022-12-22T19:07:30.712Z' additionalProperties: false required: - data - meta GetApplicationResponse: $ref: '#/components/schemas/Application' ListApplicationDevelopersResponse: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/ApplicationDeveloperDetailed' example: meta: page: number: 1 size: 10 total: 4 data: - id: 8cd9feff-b4da-4a9f-ba49-cbe83c75ff22 email: jane.developer@example.com full_name: Jane Dev - id: 4cd9feff-b4da-4a9f-ba49-cbe83c75ff22 email: john.developer@example.com full_name: John Dev - id: 6cd9feff-b4da-4a9f-ba49-cbe83c75ff22 email: jim.developer@example.com full_name: Jim Dev - id: 7cd9feff-b4da-4a9f-ba49-cbe83c75ff22 email: jan.developer@example.com full_name: Jan Dev additionalProperties: false required: - data - meta title: ListApplicationDevelopersResponse ListApplicationRegistrationsResponse: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/ApplicationRegistration' example: meta: page: number: 1 size: 10 total: 2 data: - id: c200cc33-2d33-4754-b086-a98e0fcd36fb status: approved application: id: e15e2460-ba40-431d-9df0-4957fcff7cda name: App 1 api: id: 56f637b7-cd95-478b-9b02-d770618f641c name: Great Stuff version: v1 entity_type: api created_at: '2022-12-22T20:13:07.305Z' updated_at: '2022-12-22T20:13:36.710Z' - id: d200cc33-2d33-4754-b086-a98e0fcd36fb status: rejected application: id: e15e2460-ba40-431d-9df0-4957fcff7cda name: App 2 api: id: 56f637b7-cd95-478b-9b02-d770618f641c name: Great Stuff version: v2 entity_type: api created_at: '2022-12-22T20:13:07.305Z' updated_at: '2022-12-22T20:13:36.710Z' - id: d300cc33-2d33-4754-b086-a98e0fcd36fb status: pending application: id: e15e2460-ba40-431d-9df0-4957fcff7cda name: App 3 api: id: 56f637b7-cd95-478b-9b02-d770618f641c name: Good Stuff version: v2 entity_type: api created_at: '2022-12-22T20:13:07.305Z' updated_at: '2022-12-22T20:13:36.710Z' - id: d300cc33-2d33-4754-b086-a98e0fcd36fb status: revoked application: id: e15e2460-ba40-431d-9df0-4957fcff7cda name: App 3 api: id: 56f637b7-cd95-478b-9b02-d770618f641c name: Good Stuff version: v1 entity_type: api created_at: '2022-12-22T20:13:07.305Z' updated_at: '2022-12-22T20:13:36.710Z' additionalProperties: false required: - data - meta title: ListApplicationRegistrationsResponse GetApplicationRegistrationResponse: $ref: '#/components/schemas/ApplicationRegistration' UpdateApplicationRegistrationResponse: $ref: '#/components/schemas/ApplicationRegistration' ApplicationDeveloperDetailed: description: List of developers that have a registered application. type: object properties: id: type: string format: uuid example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 readOnly: true email: type: string format: email example: developer@email.com maxLength: 250 full_name: type: string example: API Developer maxLength: 250 pattern: '^[\w \W]+$' example: id: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 email: user@email.com full_name: API Developer additionalProperties: false required: - id title: ApplicationDeveloperDetailed Application: example: id: b15e2460-ba40-431d-9df0-4957fcffacda labels: env: test name: App 1 description: An easy to manage app in a Konnect developer portal registration_count: 4 portal: id: 95606071-49c7-4c2e-ae49-8a86d72a8110 auth_strategy: id: 45606071-49c7-4c2e-ae49-8a86d72a8110 name: API Key credential_type: key_auth key_names: - apikey created_at: '2022-12-22T19:09:30.712Z' updated_at: '2022-12-22T19:09:30.712Z' owner: id: 8cd9feff-b4da-4a9f-ba49-cbe83c75ff22 type: developer oneOf: - $ref: '#/components/schemas/ClientCredentialsApplication' - $ref: '#/components/schemas/KeyAuthApplication' title: Application ClientCredentialsApplication: 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 application. type: string description: description: A description of the application. type: string nullable: true labels: $ref: '#/components/schemas/LabelsUpdate' client_id: description: The ID used to linked the portal application to an Identity Provider application. type: string readOnly: true registration_count: description: The number of API registrations that are associated with the application. Registrations of any status are included in the count. type: number readOnly: true dcr_provider: description: 'Information about the DCR provider this application uses, if using DCR.' type: object additionalProperties: false nullable: true properties: id: $ref: '#/components/schemas/UUID' required: - id portal: description: Information about the portal the application is in. type: object additionalProperties: false properties: id: $ref: '#/components/schemas/UUID' required: - id auth_strategy: $ref: '#/components/schemas/AuthStrategyClientCredentials' granted_scopes: description: List of granted scopes for the application. Null if application type does not support returning granted scopes. type: array items: type: string nullable: true owner: $ref: '#/components/schemas/ApplicationOwner' additionalProperties: false required: - id - created_at - updated_at - name - description - registration_count - client_id - auth_strategy - dcr_provider - portal - labels - granted_scopes title: Client Credentials Application KeyAuthApplication: 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 application. type: string description: description: A description of the application. type: string nullable: true auth_strategy: $ref: '#/components/schemas/AuthStrategyKeyAuth' portal: description: Information about the portal the application is in. type: object additionalProperties: false properties: id: $ref: '#/components/schemas/UUID' required: - id labels: $ref: '#/components/schemas/LabelsUpdate' registration_count: description: The number of API registrations that are associated with the application. Registrations of any status are included in the count. type: number readOnly: true owner: $ref: '#/components/schemas/ApplicationOwner' example: id: b15e2460-ba40-431d-9df0-4957fcffacda labels: env: test name: App 1 description: An easy to manage app in a Konnect developer portal registration_count: 4 portal: id: 95606071-49c7-4c2e-ae49-8a86d72a8110 auth_strategy: id: 45606071-49c7-4c2e-ae49-8a86d72a8110 name: API Key credential_type: key_auth key_names: - apikey created_at: '2022-12-22T19:09:30.712Z' updated_at: '2022-12-22T19:09:30.712Z' owner: id: 8cd9feff-b4da-4a9f-ba49-cbe83c75ff22 type: developer additionalProperties: false required: - id - created_at - updated_at - name - description - auth_strategy - portal - registration_count - labels title: Key Auth Application CreateApplicationRegistrationRequest: type: object properties: api_id: description: The ID of the API the application is registering for. type: string format: uuid status: description: The status of the application registration. It must be a valid status value for a registration creation. type: string example: approved enum: - approved - pending x-speakeasy-unknown-values: allow example: api_id: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 additionalProperties: false required: - api_id title: CreateApplicationRegistrationRequest ApplicationRegistration: description: A application's registration for a specific version of an API. type: object properties: id: $ref: '#/components/schemas/UUID' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' status: $ref: '#/components/schemas/ApplicationRegistrationStatus' api: description: Details about the API the application is registered to. type: object additionalProperties: false properties: id: $ref: '#/components/schemas/UUID' name: description: The name of the API the application is registered to. type: string version: description: The version of the API the application is registered to. type: string nullable: true entity_type: $ref: '#/components/schemas/EntityType' required: - id - name - version - entity_type application: description: Details about the application the registration is part of. type: object additionalProperties: false properties: id: $ref: '#/components/schemas/UUID' name: description: The name of the application the registration is part of. type: string required: - id - name consumer: description: Details about the consumer associated with this application registration. type: object additionalProperties: false properties: id: $ref: '#/components/schemas/UUID' custom_id: description: The custom ID of the associated consumer. type: string username: description: The username of the associated consumer. type: string control_plane_id: $ref: '#/components/schemas/UUID' required: - id - control_plane_id example: id: c300cc33-2d33-4754-b086-a98e0fcd36fb status: approved application: id: c15e2460-ba40-431d-9df0-4957fcff7cda name: App 1 api: id: 86f637b7-cd95-478b-9b02-d770618f641c name: Great Stuff version: v1 entity_type: api created_at: '2022-12-22T20:13:07.305Z' updated_at: '2022-12-22T20:13:36.710Z' additionalProperties: false required: - id - created_at - updated_at - status - api - application title: ApplicationRegistration ApplicationRegistrationStatus: description: |- The status of an application registration request. Each registration is linked to a single API, and application credentials will not grant access to the API until the registration is approved. Pending, revoked, and rejected registrations will not provide access to the API. type: string example: approved enum: - approved - pending - revoked - rejected title: ApplicationRegistrationStatus x-speakeasy-unknown-values: allow UpdateApplicationRegistrationRequest: type: object properties: status: $ref: '#/components/schemas/ApplicationRegistrationStatus' example: status: rejected additionalProperties: false title: UpdateApplicationRegistrationRequest UpdateRegistrationConsumerRequest: type: object properties: id: description: The ID of the existing Gateway Consumer to associate with the application. type: string format: uuid nullable: false example: id: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 additionalProperties: false required: - id title: UpdateRegistrationConsumerRequest 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 PortalPagesFilterParameters: type: object properties: id: $ref: '#/components/schemas/UuidFieldFilter' slug: $ref: '#/components/schemas/StringFieldFilter' title: $ref: '#/components/schemas/StringFieldFilter' visibility: $ref: '#/components/schemas/StringFieldFilter' created_at: $ref: '#/components/schemas/DateTimeFieldFilter' updated_at: $ref: '#/components/schemas/DateTimeFieldFilter' additionalProperties: false title: PortalPagesFilterParameters PortalSnippetsFilterParameters: type: object properties: id: $ref: '#/components/schemas/UuidFieldFilter' name: $ref: '#/components/schemas/StringFieldFilter' title: $ref: '#/components/schemas/StringFieldFilter' visibility: $ref: '#/components/schemas/StringFieldFilter' created_at: $ref: '#/components/schemas/DateTimeFieldFilter' updated_at: $ref: '#/components/schemas/DateTimeFieldFilter' additionalProperties: false title: PortalSnippetsFilterParameters 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 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 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 additionalProperties: false required: - domain_verification_method - verification_status title: PortalCustomDomainSSL CreatePortalCustomDomainSSL: type: object oneOf: - $ref: '#/components/schemas/CreatePortalCustomDomainSSLWithCustomCertificate' - $ref: '#/components/schemas/CreatePortalCustomDomainSSLStandard' title: CreatePortalCustomDomainSSL CreatePortalCustomDomainSSLWithCustomCertificate: properties: domain_verification_method: type: string const: custom_certificate custom_certificate: description: Custom certificate to be used for the SSL termination. type: string custom_private_key: description: Custom certificate private key to be used for the SSL termination. type: string 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 required: - domain_verification_method - custom_certificate - custom_private_key title: custom_certificate CreatePortalCustomDomainSSLStandard: properties: domain_verification_method: type: string const: http additionalProperties: false required: - domain_verification_method title: http UpdatePortalCustomDomainSSL: type: object properties: custom_certificate: description: Custom certificate to be used for the SSL termination. type: string custom_private_key: description: Custom certificate private key to be used for the SSL termination. type: string 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-unknown-values: allow PortalCustomDomainCnameStatus: type: string enum: - verified - pending readOnly: true title: PortalCustomDomainCnameStatus x-speakeasy-unknown-values: allow PortalCustomDomainValidationErrors: type: array items: type: string readOnly: true title: PortalCustomDomainValidationErrors 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 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 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) AssignedPortalRoleCollectionResponse: description: A paginated list of roles assigned to a team. type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/PortalAssignedRoleResponse' example: meta: page: number: 1 size: 10 total: 3 data: - id: b02e23c5-8ee4-4e5a-99f4-43329923adce role_name: API Viewer entity_id: 437c7192-fea0-4f35-8478-c8d57783f8c1 entity_type_name: Services entity_region: us - id: b02e23c5-8ee4-4e5a-99f4-43329923adce role_name: API Consumer entity_id: 437c7192-fea0-4f35-8478-c8d57783f8c1 entity_type_name: Services entity_region: us - id: 869d9402-f117-4f9a-840f-69acaf70a81a role_name: API Viewer entity_id: 18ee2573-dec0-4b83-be99-fa7700bcdc61 entity_type_name: Services entity_region: us required: - meta - data title: AssignedPortalRoleCollectionResponse ListPortalTeamsResponse: description: A paginated list of teams in a portal. type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/PortalTeamResponse' example: meta: page: number: 1 size: 10 total: 3 data: - id: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 name: Partner description: Team with access to Partner APIs created_at: '2022-02-07T17:46:57.52Z' updated_at: '2022-09-25T13:00:00.00Z' can_own_applications: false - id: af9fd312-a987-4628-b4c5-bb4f4fddd5f7 name: Internal description: Team with access to Internal APIs created_at: '2022-02-07T17:46:57.52Z' updated_at: '2022-09-25T13:00:00.00Z' can_own_applications: true - id: 4f9fd312-a987-4628-b4c5-bb4f4fddd5f7 name: Root description: Team with access to Internal Systems created_at: '2022-02-07T17:46:57.52Z' updated_at: '2022-09-25T13:00:00.00Z' can_own_applications: true required: - data - meta title: ListPortalTeamsResponse ListRolesResponse: description: The set of roles available to associate with resources and assign to teams. type: object properties: services: type: object properties: name: type: string enum: - Services roles: type: object properties: apiviewer: type: object properties: name: type: string enum: - API Viewer description: type: string enum: - API Viewers have read-only access to the documentation of a service in a portal required: - name - description apiconsumer: type: object properties: name: type: string enum: - API Consumer description: type: string enum: - API Consumers can make calls to the given service required: - name - description required: - apiviewer - apiconsumer required: - name - roles example: services: name: Services roles: apiviewer: name: API Viewer description: API Viewers have read-only access to the documentation of a service in a portal apiconsumer: name: API Consumer description: API Consumers can make calls to the given service required: - services title: ListRolesResponse ListBasicDevelopersResponse: description: A paginated list of basic information about a set of developers. type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/BasicDeveloper' example: meta: page: number: 1 size: 10 total: 2 data: - id: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 email: james.woods@email.com full_name: James Woods active: true created_at: '2022-08-17T17:46:57.52Z' updated_at: '2022-10-03T17:00:00.00Z' - id: 4f9fd312-a987-4628-b4c5-bb4f4fddd5f7 email: jill.stone@email.com full_name: Jill Stone active: false created_at: '2022-07-17T17:46:57.52Z' updated_at: '2022-10-03T17:00:00.00Z' title: ListBasicDevelopersResponse AddDeveloperToTeamRequest: description: Add a developer to a team by specifying the developer ID. type: object properties: id: type: string format: uuid example: df120cb4-f60b-47bc-a2f8-6a28e6a3c63b writeOnly: true example: id: df120cb4-f60b-47bc-a2f8-6a28e6a3c63b required: - id title: AddDeveloperToTeamRequest 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 deprecated: true 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 deprecated: true 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 deprecated: true 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: openid default: - email - openid - profile deprecated: true 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 deprecated: true maxProperties: 3 minProperties: 0 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 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 PortalTeamGroupMappingsUpdateRequest: description: A set of mappings to update from a team to their groups. type: object properties: data: description: The IdP groups to map to the given team. type: array items: type: object properties: team_id: type: string format: uuid groups: type: array items: type: string example: data: - team_id: af91db4c-6e51-403e-a2bf-33d27ae50c0a groups: - Service Developer title: PortalTeamGroupMappingsUpdateRequest PortalUpdateTeamRequest: description: Properties to update on a team. type: object properties: name: type: string example: IDM - Developers pattern: '^[\w \W]+$' writeOnly: true description: type: string example: The Identity Management (IDM) API team. maxLength: 250 writeOnly: true can_own_applications: description: Whether the team is allowed to own applications. type: boolean example: true example: name: IDM - Developers description: The Identity Management (IDM) API team. can_own_applications: false additionalProperties: 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. maxLength: 250 writeOnly: true can_own_applications: description: Whether the team is allowed to own applications type: boolean example: true default: false example: name: IDM - Developers description: The Identity Management (IDM) team. can_own_applications: false additionalProperties: 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 name: type: string example: IDM - Developers maxLength: 250 pattern: '^[\w \W]+$' description: type: string example: The developers for the IDM API. maxLength: 250 created_at: type: string format: date-time example: '1992-02-07T17:46:57.52Z' readOnly: true updated_at: type: string format: date-time example: '2022-02-07T17:00:00.52Z' readOnly: true can_own_applications: description: Whether the team is allowed to own applications. type: boolean example: 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 required: - id - name - description - created_at - updated_at title: PortalTeamResponse PortalTeamGroupMappingResponse: description: A paginated list of portal team group mappings. type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/PortalTeamGroupMapping' example: meta: page: number: 1 size: 10 total: 2 data: - team_id: 6801e673-cc10-498a-94cd-4271de07a0d3 groups: - Tech Leads - API Engineers - team_id: 7301e673-cc10-498a-94cd-4271de07a0d3 groups: - Managers - Directors title: PortalTeamGroupMappingResponse PortalTeamGroupMapping: description: A map of portal teams to Identity Provider groups. type: object properties: team_id: description: The Konnect team ID. type: string format: uuid example: 6801e673-cc10-498a-94cd-4271de07a0d3 groups: description: The IdP groups that are mapped to the specified team. type: array items: type: string example: API Engineers uniqueItems: true example: team_id: 6801e673-cc10-498a-94cd-4271de07a0d3 groups: - Tech Leads - API Engineers title: PortalTeamGroupMapping 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 ListDomains: type: object properties: data: type: array items: $ref: '#/components/schemas/EmailDomain' meta: $ref: '#/components/schemas/PaginatedMeta' required: - data - meta EmailDeliveryUpdatePayload: type: object properties: enabled: type: boolean from_email: type: string format: email nullable: true reply_to_email: type: string format: email nullable: true additionalProperties: false EmailDelivery: type: object properties: enabled: type: boolean from_email: type: string format: email nullable: true reply_to_email: type: string format: email nullable: true created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - enabled - from_email - reply_to_email - created_at - updated_at PatchPortalEmailConfig: type: object properties: domain_name: description: The domain name to use for sending emails. Null means default. type: string nullable: true from_name: description: The name to display in the 'From' field of emails. type: string nullable: true from_email: description: The email address to use in the 'From' field. type: string format: email nullable: true reply_to_email: description: 'The email address to use in the ''Reply-To'' field. If set to null, ''Reply-To'' header is omitted.' type: string format: email nullable: true additionalProperties: false PostPortalEmailConfig: type: object properties: domain_name: description: The domain name to use for sending emails. Null means default. type: string nullable: true from_name: description: The name to display in the 'From' field of emails. type: string nullable: true from_email: description: The email address to use in the 'From' field. type: string format: email nullable: true reply_to_email: description: The email address to use in the 'Reply-To' field. 'Reply-To' header is omitted if omitted or null. type: string format: email nullable: true additionalProperties: false PortalEmailConfig: type: object properties: id: type: string format: uuid example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 readOnly: true domain_name: description: The domain name used for sending emails. Null means default. type: string nullable: true from_name: description: The name displayed in the 'From' field of emails. type: string nullable: true from_email: description: The email address used in the 'From' field. type: string format: email nullable: true reply_to_email: description: The email address used in the 'Reply-To' field. 'Reply-To' header is omitted when null. type: string format: email nullable: true created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - id - from_name - from_email - reply_to_email - created_at - updated_at EmailDomainPayload: type: object properties: domain: type: string additionalProperties: false required: - domain EmailVerificationStatus: description: Specifies the status of the mail domain verification type: string enum: - pending - success - failed - temporary_failure - not_started readOnly: true x-speakeasy-unknown-values: allow EmailDomainVerification: type: object properties: status: $ref: '#/components/schemas/EmailVerificationStatus' last_time_checked: description: An ISO-8601 timestamp representation of the last time the verification got checked. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true last_time_success: description: An ISO-8601 timestamp representation of the last time the verification succeeded. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true additionalProperties: false readOnly: true required: - status - last_time_checked - last_time_success DNSRecord: type: object properties: type: type: string readOnly: true name: type: string readOnly: true value: type: string readOnly: true additionalProperties: false required: - type - name - value EmailDomain: type: object properties: domain: type: string verification: $ref: '#/components/schemas/EmailDomainVerification' dns_validation_records: type: array items: $ref: '#/components/schemas/DNSRecord' readOnly: true created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - domain - verification - dns_validation_records - created_at - updated_at EmailDomainFilterParameters: type: object properties: domain: $ref: '#/components/schemas/StringFieldFilter' verification_status: $ref: '#/components/schemas/StringFieldFilter' title: EmailDomainFilterParameters EmailTemplateName: description: | Short name email template name. type: string enum: - confirm-email-address - app-registration-approved - app-registration-rejected - app-registration-revoked - reset-password - account-access-approved - account-access-rejected - account-access-revoked - api-key-expiring-soon - api-key-expired - developer-invitation x-speakeasy-unknown-values: allow EmailTemplateVariableName: description: | Enum for available portal email template variables. type: string enum: - portal_display_name - portal_domain - developer_email - developer_fullname - dev_portal_reply_to - developer_status - api_documentation_url - api_name - api_version - application_name - credential_name - credential_expires_at x-speakeasy-unknown-values: allow DefaultEmailTemplate: type: object properties: default_content: $ref: '#/components/schemas/DefaultEmailTemplateContent' variables: type: array items: $ref: '#/components/schemas/EmailTemplateVariableName' name: $ref: '#/components/schemas/EmailTemplateName' label: description: The label of the email template type: string example: Confirm email Address additionalProperties: false required: - default_content - variables - name - label DefaultEmailTemplateContent: type: object properties: subject: type: string nullable: false title: type: string nullable: false body: type: string nullable: false button_label: type: string nullable: false required: - subject - title - body EmailTemplateContent: type: object properties: subject: type: string maxLength: 1024 nullable: true title: type: string maxLength: 1024 nullable: true body: type: string maxLength: 4096 nullable: true button_label: type: string maxLength: 128 nullable: true nullable: true SendTestEmailTemplateContent: type: object properties: subject: type: string maxLength: 1024 nullable: false title: type: string maxLength: 1024 nullable: false body: type: string maxLength: 4096 nullable: false button_label: type: string maxLength: 128 nullable: false required: - subject - title - body EmailTemplate: type: object properties: label: description: The label of the email template type: string example: App registration approved name: $ref: '#/components/schemas/EmailTemplateName' default_content: $ref: '#/components/schemas/DefaultEmailTemplateContent' content: $ref: '#/components/schemas/EmailTemplateContent' variables: type: array items: $ref: '#/components/schemas/EmailTemplateVariableName' enabled: description: Whether the email template is enabled or disabled for a portal type: boolean created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' required: - name - label - default_content - variables - enabled - created_at - updated_at EmailTemplateVariablesList: type: object properties: data: type: array items: $ref: '#/components/schemas/EmailTemplateVariable' additionalProperties: false EmailTemplateVariable: type: object properties: name: $ref: '#/components/schemas/EmailTemplateVariableName' description: type: string scope: type: array items: $ref: '#/components/schemas/EmailTemplateName' example: description: Example value of the email template variable type: string example: My Company Portal required: - name - description - scope - example FilterApplications: type: object properties: developer_id: $ref: '#/components/schemas/UuidFieldFilter' name: $ref: '#/components/schemas/StringFieldFilter' team_id: $ref: '#/components/schemas/UuidFieldFilter' SourceIPEnabled: description: Whether ip allow list is enabled for the organization. type: boolean example: true default: false ImageGIFDataUri: description: 'must be a data URL with base64 GIF image data, e.g., data:image/gif;base64,<BASE64_IMAGE_DATA>' type: string format: uri example: 'data:image/gif,YW5faW1hZ2VfZmlsZQ==' pattern: '^data:image/gif(;base64)?,(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$' title: ImageGIFDataUri x-validation-message: 'must be a data URL with base64 GIF image data, e.g., data:image/gif;base64,<BASE64_IMAGE_DATA>' ImageICODataUri: description: 'must be a data URL with base64 ICO image data, e.g., data:image/ico;base64,<BASE64_IMAGE_DATA>' type: string format: uri example: 'data:image/ico,YW5faW1hZ2VfZmlsZQ==' pattern: '^data:image/(x-icon|ico|icon|vnd.microsoft.icon)(;base64)?,(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$' title: ImageICODataUri x-validation-message: 'must be a data URL with base64 ICO image data, e.g., data:image/ico;base64,<BASE64_IMAGE_DATA>' 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 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 properties: name: type: string nullable: false mode: type: string enum: - light - dark - system x-speakeasy-unknown-values: allow colors: type: object additionalProperties: 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 layout: type: string nullable: false css: type: string nullable: true menu: type: object additionalProperties: false properties: main: type: array items: $ref: '#/components/schemas/PortalMenuItem' footer_sections: type: array items: $ref: '#/components/schemas/PortalFooterMenuSection' footer_bottom: type: array items: $ref: '#/components/schemas/PortalMenuItem' spec_renderer: type: object additionalProperties: 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 robots: type: string nullable: true additionalProperties: false title: PortalCustomization x-speakeasy-name-override: PortalCustomization GoogleTagManagerIntegrationConfigProperties: description: Configuration data for the Google Tag Manager integration type: object properties: id: description: The Google Tag Manager container ID type: string example: GTM-XXXXXX maxLength: 20 minLength: 5 pattern: '^GTM-[A-Za-z0-9]+$' x-validation-message: 'must be a valid GTM container ID (format: GTM-XXXXXX)' l: description: Optional dataLayer variable name type: string example: myNewName maxLength: 100 nullable: true preview: description: Preview environment name type: string example: preview maxLength: 100 nullable: true cookies_win: description: Forces GTM cookies to take precedence when true type: boolean nullable: true debug: description: Enables debug mode when true type: boolean nullable: true npa: description: No Personal Advertising - disables advertising features when true type: boolean nullable: true data_layer: description: Custom dataLayer name (alternative to "l" property) type: string example: myNewName maxLength: 100 nullable: true env_name: description: Environment name for environment-specific container type: string example: production maxLength: 100 nullable: true auth_referrer_policy: description: Referrer policy for analytics requests type: string example: no-referrer maxLength: 100 nullable: true additionalProperties: false GoogleTagManagerIntegration: description: Google Tag Manager integration configuration type: object properties: enabled: description: Whether the integration is enabled type: boolean type: description: The type of the integration for categorization type: string enum: - tracking config_data: description: Configuration data for the Google Tag Manager integration type: object additionalProperties: false properties: id: description: The Google Tag Manager container ID type: string example: GTM-XXXXXX maxLength: 20 minLength: 5 pattern: '^GTM-[A-Za-z0-9]+$' x-validation-message: 'must be a valid GTM container ID (format: GTM-XXXXXX)' l: description: Optional dataLayer variable name type: string example: myNewName maxLength: 100 nullable: true preview: description: Preview environment name type: string example: preview maxLength: 100 nullable: true cookies_win: description: Forces GTM cookies to take precedence when true type: boolean nullable: true debug: description: Enables debug mode when true type: boolean nullable: true npa: description: No Personal Advertising - disables advertising features when true type: boolean nullable: true data_layer: description: Custom dataLayer name (alternative to "l" property) type: string example: myNewName maxLength: 100 nullable: true env_name: description: Environment name for environment-specific container type: string example: production maxLength: 100 nullable: true auth_referrer_policy: description: Referrer policy for analytics requests type: string example: no-referrer maxLength: 100 nullable: true required: - id additionalProperties: false nullable: true required: - enabled - type - config_data GoogleAnalytics4IntegrationConfigProperties: description: Configuration data for the Google Analytics integration type: object properties: id: description: The Google Analytics measurement ID type: string example: G-XXXXXXX maxLength: 20 minLength: 5 pattern: '^G-[A-Za-z0-9-]+$' x-validation-message: 'must be a valid Google Analytics ID (format: G-XXXXXXX)' l: description: The datalayer's name you want data to be associated with type: string example: myNewName maxLength: 100 nullable: true additionalProperties: false GoogleAnalytics4Integration: description: Google Analytics integration configuration type: object properties: enabled: description: Whether the integration is enabled type: boolean type: description: The type of the integration for categorization type: string enum: - analytics config_data: description: Configuration data for the Google Analytics integration type: object additionalProperties: false properties: id: description: The Google Analytics measurement ID type: string example: G-XXXXXXX maxLength: 20 minLength: 5 pattern: '^G-[A-Za-z0-9-]+$' x-validation-message: 'must be a valid Google Analytics ID (format: G-XXXXXXX)' l: description: The datalayer's name you want data to be associated with type: string example: myNewName maxLength: 100 nullable: true required: - id additionalProperties: false nullable: true required: - enabled - type - config_data EqualWebIntegrationConfigProperties: description: Configuration data for the Equalweb integration type: object properties: site_key: description: The EqualWeb Site Key type: string example: asd7890asdhlkas87ohjasd98yohasd9 maxLength: 32 minLength: 32 pattern: '^[A-Za-z0-9]+$' x-validation-message: 'must be a valid Equalweb Site Key (format: asd7890asdhlkas87ohjasd98yohasd9)' widget_config: type: object example: Position: left Menulang: EN draggable: true btnStyle: vPosition: - 80% - 70% margin: - '0' - '2' scale: - '0.5' - '0.25' color: main: '#1c4bb6' second: '#ffffff' icon: outline: false outlineColor: '#ffffff' type: 1 shape: circle default: {} additionalProperties: false EqualWebIntegration: description: Equalweb integration configuration type: object properties: enabled: description: Whether the integration is enabled type: boolean type: description: The type of the integration for categorization type: string enum: - accessibility config_data: description: Configuration data for the Equalweb integration type: object additionalProperties: false properties: site_key: description: The EqualWeb Site Key type: string example: asd7890asdhlkas87ohjasd98yohasd9 maxLength: 32 minLength: 32 pattern: '^[A-Za-z0-9]+$' x-validation-message: 'must be a valid Equalweb Site Key (format: asd7890asdhlkas87ohjasd98yohasd9)' widget_config: type: object example: Position: left Menulang: EN draggable: true btnStyle: vPosition: - 80% - 70% margin: - '0' - '2' scale: - '0.5' - '0.25' color: main: '#1c4bb6' second: '#ffffff' icon: outline: false outlineColor: '#ffffff' type: 1 shape: circle default: {} required: - site_key additionalProperties: false nullable: true required: - enabled - type - config_data PortalIntegrations: description: Configuration data for Dev Portal integrations type: object properties: google_tag_manager: $ref: '#/components/schemas/GoogleTagManagerIntegration' google_analytics_4: $ref: '#/components/schemas/GoogleAnalytics4Integration' equal_web: $ref: '#/components/schemas/EqualWebIntegration' default: {} additionalProperties: false title: Portal Integrations UpdateGoogleTagManagerIntegration: description: Partially update Google Tag Manager integration configuration type: object properties: enabled: description: Whether the integration is enabled type: boolean type: description: The type of the integration for categorization type: string enum: - tracking config_data: type: object $ref: '#/components/schemas/GoogleTagManagerIntegrationConfigProperties' additionalProperties: false nullable: true UpdateGoogleAnalytics4Integration: description: Partially update Google Analytics 4 integration configuration type: object properties: enabled: description: Whether the integration is enabled type: boolean type: description: The type of the integration for categorization type: string enum: - analytics config_data: type: object $ref: '#/components/schemas/GoogleAnalytics4IntegrationConfigProperties' additionalProperties: false nullable: true UpdateEqualWebIntegration: description: Partially update EqualWeb integration configuration type: object properties: enabled: description: Whether the integration is enabled type: boolean type: description: The type of the integration for categorization type: string enum: - accessibility config_data: type: object $ref: '#/components/schemas/EqualWebIntegrationConfigProperties' additionalProperties: false nullable: true UpdatePortalIntegrations: description: Partially update configuration data for Dev Portal integrations type: object properties: google_tag_manager: $ref: '#/components/schemas/UpdateGoogleTagManagerIntegration' google_analytics_4: $ref: '#/components/schemas/UpdateGoogleAnalytics4Integration' equal_web: $ref: '#/components/schemas/UpdateEqualWebIntegration' default: {} additionalProperties: false title: Update Portal Integrations 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 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 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 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 properties: value: type: integer minimum: 1 unit: type: string enum: - days - weeks - years x-speakeasy-unknown-values: allow required: - value - unit additionalProperties: false required: - id - name - credential_type - key_names ApplicationClientId: description: | An identifier to correlate the application with an external system. Cannot be set when using Dynamic Client Registration. type: string maxLength: 255 ApiKeyCredentialListItem: description: API key credential returned when listing credentials. type: object properties: type: type: string enum: - api_key readOnly: true id: $ref: '#/components/schemas/UUID' display_name: type: string status: type: string enum: - active - expired - revoked readOnly: true x-speakeasy-unknown-values: allow expires_at: type: string format: date-time nullable: true readOnly: true created_at: $ref: '#/components/schemas/CreatedAt' additionalProperties: false required: - type - id - display_name - created_at ClientSecretCredentialListItem: description: Client secret credential returned when listing credentials. type: object properties: type: type: string enum: - client_secret readOnly: true id: description: Credential identifier type: string display_name: description: May not be available for all Client Credentials applications type: string nullable: true client_id: description: OAuth2 client identifier type: string readOnly: true created_at: description: 'Creation timestamp, if available' type: string format: date-time nullable: true readOnly: true expires_at: description: 'Expiration timestamp, if applicable' type: string format: date-time nullable: true readOnly: true additionalProperties: false required: - type - id - client_id - created_at CredentialListItem: type: object discriminator: propertyName: type oneOf: - $ref: '#/components/schemas/ApiKeyCredentialListItem' - $ref: '#/components/schemas/ClientSecretCredentialListItem' ListCredentialsResponse: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/CredentialListItem' additionalProperties: false required: - data - meta PortalSAMLIdentityProviderConfig: 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: path example: /api/v2/developer/authenticate/saml/metadata readOnly: 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 callback_url: description: The path URL where the SAML identity provider sends authentication responses after successful login attempts. type: string format: path example: /api/v2/developer/authenticate/saml/acs readOnly: true additionalProperties: false title: Portal SAML Identity Provider Config PortalIdentityProvider: 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' config: type: object oneOf: - $ref: '#/components/schemas/OIDCIdentityProviderConfig' - $ref: '#/components/schemas/PortalSAMLIdentityProviderConfig' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' title: Portal Identity Provider PortalCreateIdentityProvider: description: The identity provider that contains configuration data for creating an authentication integration. type: object properties: enabled: 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 title: Identity Provider Enabled Property type: $ref: '#/components/schemas/IdentityProviderType' config: type: object oneOf: - $ref: '#/components/schemas/OIDCIdentityProviderConfig' - $ref: '#/components/schemas/PortalSAMLIdentityProviderConfig' title: Portal Identity Provider PortalUpdateIdentityProvider: description: The identity provider that contains configuration data for updating an authentication integration. type: object properties: enabled: $ref: '#/components/schemas/IdentityProviderEnabled' config: type: object oneOf: - $ref: '#/components/schemas/OIDCIdentityProviderConfig' - $ref: '#/components/schemas/PortalSAMLIdentityProviderConfig' title: Portal Identity Provider 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 IPEntries: description: The list of allowed ips for the portal. type: array items: $ref: '#/components/schemas/IPEntry' example: - id: 660e8400-e29b-41d4-a716-446655440000 allowed_ips: - 192.168.1.1 - id: 550e8400-e29b-41d4-a716-446655440000 allowed_ips: - 192.168.1.0/22 - 192.168.1.52 maxItems: 1000 uniqueItems: true 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 maxLength: 2048 nullable: true 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 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 maxLength: 2048 nullable: true labels: $ref: '#/components/schemas/LabelsUpdate' custom_fields: $ref: '#/components/schemas/CustomFields' additionalProperties: false CatalogServiceFilterParameters: type: object properties: id: $ref: '#/components/schemas/UuidFieldFilter' name: $ref: '#/components/schemas/StringFieldFilter' display_name: $ref: '#/components/schemas/StringFieldFilter' custom_fields: description: | Filter by custom fields using dot-notation to specify the custom field. Filter operators are dictated by the custom field type. For example: - `filter[custom_fields.owner]` - `filter[custom_fields.owner][neq]=kong` - `filter[custom_fields.dashboard.link][contains]=https` oneOf: - $ref: '#/components/schemas/StringFieldFilter' - $ref: '#/components/schemas/BooleanFieldFilter' - $ref: '#/components/schemas/NumericFieldFilter' labels: $ref: '#/components/schemas/LabelsFieldFilter' created_at: $ref: '#/components/schemas/DateTimeFieldFilter' updated_at: $ref: '#/components/schemas/DateTimeFieldFilter' 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 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 maxLength: 2048 nullable: true 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 CatalogIntegrationFilterParameters: type: object properties: name: $ref: '#/components/schemas/StringFieldFilter' display_name: $ref: '#/components/schemas/StringFieldFilter' CatalogIntegration: type: object properties: name: description: The machine name of the integration that uniquely identifies it within the catalog. type: string example: gateway-manager readOnly: true display_name: description: The display name of the integration. type: string example: Gateway Manager description: description: The description of the integration. type: string built_in: description: | Denotes whether the integration is built-in to the catalog. Built-in integrations are always connected and available by default. type: boolean example: true readOnly: true version: description: The integration version. type: string example: v1 readOnly: true visibility: description: The visibility of the integration. type: string example: public enum: - public - private x-speakeasy-unknown-values: allow authorization: $ref: '#/components/schemas/CatalogIntegrationAuthorization' config_schema: $ref: '#/components/schemas/CatalogIntegrationConfigSchema' resource_types: $ref: '#/components/schemas/CatalogIntegrationResourceTypes' discovery: $ref: '#/components/schemas/CatalogIntegrationDiscovery' api_spec_provider: $ref: '#/components/schemas/CatalogIntegrationApiSpecProvider' events: $ref: '#/components/schemas/CatalogIntegrationEvents' required: - built_in - name - display_name - version - authorization - config_schema - resource_types - discovery - api_spec_provider - events - visibility CatalogIntegrationAuthorization: description: Defines the authorization strategy for an integration. oneOf: - type: object nullable: true - $ref: '#/components/schemas/OAuth' - $ref: '#/components/schemas/MultiKeyAuth' - $ref: '#/components/schemas/GitHubAppInstallationAuth' title: CatalogIntegrationAuthorization OAuth: description: | Defines the OAuth 2.0 authorization strategy used by an integration. This schema provides all necessary information for the platform to initiate and manage OAuth-based authorization flows on behalf of customers. type: object properties: type: type: string const: oauth overridable_config: description: | A list of field names from the `config` object (e.g., `client_id`, `authorization_endpoint`, etc) that can be overridden on a per-customer basis. When a field is listed here, the catalog allows customer-defined values to take precedence over the default configuration provided by the integration. This supports flexible deployment models, including both SaaS-based and self-hosted OAuth authorization flows. type: array items: type: string enum: - client_id - client_secret - authorization_endpoint - token_endpoint x-speakeasy-unknown-values: allow config: type: object properties: grant_type: description: | The OAuth 2.0 grant type used for authorization (e.g., `authorization_code`). Determines the flow the integration uses to request access tokens. type: string enum: - authorization_code client_id: description: The OAuth client identifier registered with the integration provider. type: string example: d745213a-b7e8-4998-abe3-41f164001970 authorization_endpoint: type: object properties: url: description: The URL where users are redirected to authorize access. type: string format: uri example: 'https://identity.service.com/oauth/authorize' required: - url token_endpoint: type: object properties: url: description: The URL used to retrieve access tokens. type: string format: uri example: 'https://identity.service.com/oauth/token' required: - url scope: description: | A list of permission scopes requested by the integration. Defines what level of access the token will grant. type: array items: type: string example: - read - write scope_delimiter: description: | A string used to separate multiple scopes in the `scope` parameter. type: string default: ' ' rolling_refresh_exp_seconds: description: | Number of seconds before the refresh token grant can no longer be used to mint a new access token. Once expired clients must re-authenticate to restart the window interval. type: number example: 15780000 nullable: true required: - grant_type - client_id - authorization_endpoint - token_endpoint - scope - rolling_refresh_exp_seconds required: - type - config MultiKeyAuth: description: | Defines an authentication strategy based on one or more API keys passed via HTTP headers. This strategy supports integrations that require custom headers for credential-based access, allowing flexibility across providers with different authentication header requirements. type: object properties: type: type: string const: multi_key_auth config: type: object properties: headers: description: | A list of header definitions used to transmit API credentials to the integration's external API. Each header represents a unique key required by the provider. type: array items: type: object title: KeyAuthHeader required: - name - display_name - description properties: name: description: The exact name of the HTTP request header where the credential should be inserted. type: string example: X-API-Key display_name: description: 'An optional user-friendly label for the key, used in UI forms to guide users.' type: string example: API Key nullable: true description: description: An optional brief explanation of the purpose or usage of the key. type: string nullable: true minItems: 1 required: - headers required: - type - config GitHubAppInstallationAuth: description: | Defines the GitHub App authorization strategy used by the GitHub integration. This strategy enables secure access to GitHub APIs using app installation tokens. It supports both API-based interactions and real-time event delivery via GitHub webhooks. Unlike standard OAuth flows, this strategy leverages GitHub's custom app installation flow and token lifecycle, making it ideal for deep, organization-level GitHub integration. type: object properties: type: type: string const: github_app_installation config: type: object properties: app_install_url: type: object additionalProperties: false properties: url: description: | The URL where customers are directed to install the GitHub App into their GitHub organization. type: string format: uri example: 'https://global.api.konghq.com/service-catalog-integrations/github/app/install' required: - url app_manage_url: type: object additionalProperties: false properties: url: description: 'The GitHub App management page URL where users can view, configure, or uninstall the app after installation.' type: string format: uri example: 'https://global.api.konghq.com/service-catalog-integrations/github/app/manage' required: - url authorize_app_installation_endpoint: type: object additionalProperties: false properties: url: description: | The endpoint used to link a completed GitHub App installation with a customer account in the catalog. This step finalizes the integration by exchanging metadata from the GitHub installation event. type: string format: uri example: 'https://global.api.konghq.com/service-catalog-integrations/github/app/authorize-installation' required: - url pending_app_installs_endpoint: type: object additionalProperties: false properties: url: description: | The endpoint used to return a list of in-progress or unlinked GitHub App installations awaiting user confirmation. type: string format: uri example: 'https://global.api.konghq.com/service-catalog-integrations/github/app/pending-installs' required: - url required: - app_install_url - app_manage_url - authorize_app_installation_endpoint - pending_app_installs_endpoint required: - type - config CatalogIntegrationConfigSchema: description: Defines the configuration schema for the integration. example: base_url: type: string display_name: Base URL description: The customer-specific API URL required: true additionalProperties: oneOf: - type: object nullable: true - $ref: '#/components/schemas/StringConfigFieldSchema' - $ref: '#/components/schemas/EnumConfigFieldSchema' - $ref: '#/components/schemas/BooleanConfigFieldSchema' StringConfigFieldSchema: description: Defines a string value integration config field. type: object properties: display_name: description: user-friendly name of the configuration field. type: string description: description: Optional brief description of the configuration field. type: string required: description: Denotes whether the config field is a required value. type: boolean default: false mutable_condition: $ref: '#/components/schemas/MutableCondition' type: description: The field type of the config value. type: string enum: - string default: description: The default value for the config field. type: string required: - type title: StringConfigFieldSchema EnumConfigFieldSchema: description: Defines an enum value integration config field. type: object properties: display_name: description: user-friendly name of the configuration field. type: string description: description: Optional brief description of the configuration field. type: string required: description: Denotes whether the config field is a required value. type: boolean default: false mutable_condition: $ref: '#/components/schemas/MutableCondition' type: description: The field type of config value. type: string enum: - enum choices: description: List of enumerated choices that can be selected as the config field value. type: array items: type: object required: - value - display_name properties: value: description: The value represented by this option. type: string display_name: description: user-friendly name of the option. type: string description: description: Optional brief description of the option. type: string default: description: | The default value for the config field. Must reference the value of an option listed in `choices`. type: string required: - type - choices title: EnumConfigFieldSchema BooleanConfigFieldSchema: description: Defines a boolean value integration config field. type: object properties: display_name: description: user-friendly name of the configuration field. type: string description: description: Optional brief description of the configuration field. type: string required: description: Denotes whether the config field is a required value. type: boolean default: false mutable_condition: $ref: '#/components/schemas/MutableCondition' type: description: The field type of the config value. type: string enum: - boolean default: description: The default value for the config field. type: boolean required: - type title: BooleanConfigFieldSchema MutableCondition: description: | Defines the condition under which this configuration field is allowed to be modified. When specified, the platform will restrict updates to this field unless the integration meets the given condition. For example, setting `mutable_condition: unauthorized` means the field can only be changed while the integration is in an unauthorized state. type: string enum: - unauthorized CatalogIntegrationResourceTypes: description: | Defines the resource types that the integration manages within the catalog. This schema is a key-value object where: - Keys are globally unique, machine-readable identifiers for each resource type. - Values are objects describing metadata about the resource type. This declaration enables the platform to understand the structure, identity, and behavior of resources discovered by the integration. By registering resource types, integrations communicate the kinds of entities they will ingest and maintain, allowing the catalog to enforce consistency, validation, and visibility across all integrations. type: object example: gateway_svc: display_name: Gateway Service schema: type: simple definition: control_plane_id: string gatway_service_id: string analytics_dashboard: display_name: Dashboard schema: type: simple definition: dashboard_id: string additionalProperties: type: object title: ResourceType required: - schema properties: display_name: description: The user-friendly resource type name. type: string schema: $ref: '#/components/schemas/SimpleSchema' CatalogIntegrationDiscovery: description: | Defines how the integration participates in Discovery. Discovery enables integrations to automatically ingest and update resources in the catalog. type: object properties: resource_integration_data_examples: description: | A map of example resource `integration_data` payloads by resource type. - Keys are the machine-readable, globally unique names of resource types registered by this integration. - Values are example `integration_data` payloads. type: object example: gateway_service: control_plane: id: 00000000-0000-0000-0000-000000000000 name: dev-ext labels: env: development gateway_service: id: 11111111-1111-1111-1111-111111111111 name: gateway-service host: konghq.com path: /example type: service port: 443 protocol: https enabled: true additionalProperties: type: object additionalProperties: true description: An example `integration_data` payload for the given resource type. nullable: true required: - resource_integration_data_examples CatalogIntegrationApiSpecProvider: description: | Defines how an integration behaves as a source provider of Catalog Service API specs. API specs are entities that can be attached to Catalog Services. When an integration implements this capability, it can act as a source type for API spec contents. In this role, the integration becomes the source of truth for the spec. When a spec is attached to a Catalog Service using this source type, the platform relies on the external system to provide and update the spec data. A null value indicates the given integration does not act as a source provider of API specs. type: object properties: name: description: | The globally unique name of the API spec provider that identifies it within the catalog. Corresponds to the API spec provider `type` when creating API specs. type: string example: konnect_api display_name: description: A user-friendly name for the API spec provider. type: string example: Konnect API description: description: An brief description of the API spec provider. type: string config_schema: description: Defines the shape of the API spec provider config. type: object example: type: simple definition: api_id: string properties: type: type: string enum: - simple definition: type: object additionalProperties: type: string enum: - string - number - boolean x-speakeasy-unknown-values: allow required: - type - definition resource_type: description: | When non-null, denotes that the API spec provider is bound to the given Resource type. This means that API specs are auto-created when a Resource of the given type is mapped to a service. Furthermore, it couples the lifecycle of the API Spec with the given Resource mapping. When the given Resource is removed, the API spec will be deleted. type: string nullable: true nullable: true required: - name - display_name - description - config_schema - resource_type CatalogIntegrationEvents: description: | Defines the event types across all resource types belonging to the integration that will be ingested into the catalog. - Keys are the machine-readable, globally unique names of resource types registered by this integration. - Values are a map of event type definitions. type: object example: gateway_svc: plugin_added: display_name: Plugin Added description: Event triggered when a new plugin is added to a gateway service. events_feed: enabled: true additionalProperties: $ref: '#/components/schemas/IntegrationResourceEvents' nullable: true IntegrationResourceEvents: description: | Defines the event types for a given resource type belonging to the integration that will be ingested in the catalog. - Keys are the machine-readable, globally unique names of resource types registered by this integration. - Values are the event type definition. type: object additionalProperties: $ref: '#/components/schemas/IntegrationResourceEvent' IntegrationResourceEvent: description: Defines a registered event type for a given resource. type: object properties: display_name: description: User-friendly display name for the event type. type: string description: description: 'Optional, brief description of the integration event type.' type: string nullable: true events_feed: type: object properties: enabled: description: Whether this event type is returned by default in the Events API. type: boolean required: - enabled required: - display_name - description - events_feed 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 maxLength: 2048 nullable: true 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 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 maxLength: 2048 nullable: true labels: $ref: '#/components/schemas/LabelsUpdate' config: $ref: '#/components/schemas/IntegrationInstanceConfig' additionalProperties: false IntegrationInstanceFilterParameters: type: object properties: name: $ref: '#/components/schemas/StringFieldFilter' display_name: $ref: '#/components/schemas/StringFieldFilter' integration.name: oneOf: - $ref: '#/components/schemas/StringFieldFilter' integration.display_name: oneOf: - $ref: '#/components/schemas/StringFieldFilter' authorized: $ref: '#/components/schemas/BooleanFieldFilter' labels: $ref: '#/components/schemas/LabelsFieldFilter' created_at: $ref: '#/components/schemas/DateTimeFieldFilter' updated_at: $ref: '#/components/schemas/DateTimeFieldFilter' 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 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 maxLength: 2048 nullable: true integration: $ref: '#/components/schemas/IntegrationRefWithoutInstance' authorized: description: Denotes whether the integration instance has been authorized within the catalog. type: boolean example: true readOnly: 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/CreateOAuthCredential' - $ref: '#/components/schemas/CreateGitHubAppInstallationCredential' - $ref: '#/components/schemas/CreateMultiKeyAuthCredential' - $ref: '#/components/schemas/CreateAWSRoleDelegationAuthCredential' title: CreateIntegrationInstanceAuthCredential IntegrationInstanceAuthCredential: description: Object containing metadata for an integration instance auth credential. oneOf: - $ref: '#/components/schemas/OAuthCredential' - $ref: '#/components/schemas/GitHubAppInstallationCredential' - $ref: '#/components/schemas/MultiKeyAuthCredential' - $ref: '#/components/schemas/AWSRoleDelegationAuthCredential' title: IntegrationInstanceAuthCredential CreateOAuthCredential: description: Payload used to create an `OAuth` credential for an integration instance. type: object properties: type: type: string const: oauth config: type: object additionalProperties: false properties: grant_type: description: 'The OAuth 2.0 grant type used for authorization (e.g., `authorization_code`).' type: string enum: - authorization_code code: description: The authorization code used to exchange for an access token with the identity server. type: string example: Yzk5ZDczMzRlNDEwY redirect_uri: description: | The redirect URI submitted to the authorization server during the authentication request to retrieve the authorization code. type: string format: uri example: 'https://cloud.konghq.com/us/service-catalog/integrations/pagerduty/oauth' required: - grant_type - code - redirect_uri title: CreateOAuthCredentialConfig additionalProperties: false required: - type - config CreateGitHubAppInstallationCredential: description: Payload used to create an `GitHub App Installation` credential for an integration instance. type: object properties: type: type: string const: github_app_installation config: type: object additionalProperties: false properties: installation_id: description: The GitHub App installation ID. type: string example: '46952218' code: description: The authorization code used to exchange for a GitHub user-scoped access token. type: string example: Yzk5ZDczMzRlNDEwY app_installed_by: description: The GitHub user who installed the app type: string required: - installation_id - code title: CreateGitHubAppInstallationCredentialConfig additionalProperties: false required: - type - config 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 CreateAWSRoleDelegationAuthCredential: description: Payload used to create an `AWS Role Delegation` credential for an integration instance. type: object properties: type: type: string enum: - aws_role_delegation config: type: object additionalProperties: false properties: role_arn: description: | The AWS Role ARN string type: string example: 'arn:aws:iam::084735895545:role/KonnectServiceCatalogRole' required: - role_arn title: CreateAWSRoleDelegationAuthCredentialConfig additionalProperties: false required: - type - config OAuthCredential: description: Represents a credential scoped to an integration instance that supports the `OAuth` 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' nullable: true created_at: $ref: '#/components/schemas/CreatedAt' type: type: string const: oauth required: - id - integration_instance - missing_permissions - tainted - expires_at - created_at - type title: OAuthCredential x-speakeasy-name-override: Oauth x-speakeasy-param-suppress-computed-diff: true GitHubAppInstallationCredential: description: Represents a credential scoped to an integration instance that supports the `GitHub App Installation` 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' nullable: true created_at: $ref: '#/components/schemas/CreatedAt' type: type: string const: github_app_installation config: type: object properties: installation_id: description: The GitHub App installation ID type: string app_installed_by: description: The GitHub user who installed the app. type: string nullable: true required: - installation_id - app_installed_by title: GitHubAppInstallationCredentialConfig required: - id - integration_instance - missing_permissions - tainted - expires_at - created_at - type - config title: GitHubAppInstallationCredential x-speakeasy-name-override: GithubAppInstallation x-speakeasy-param-suppress-computed-diff: true 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' nullable: true 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 AWSRoleDelegationAuthCredential: description: Represents a credential scoped to an integration instance that supports the `AWS Role Delegation` 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' nullable: true created_at: $ref: '#/components/schemas/CreatedAt' type: type: string enum: - aws_role_delegation config: type: object properties: role_arn: description: The Role ARN use for AWS Assume Role. type: string required: - role_arn title: AWSRoleDelegationAuthCredentialConfig required: - id - integration_instance - missing_permissions - tainted - expires_at - created_at - type - config title: AWSRoleDelegationAuthCredential x-speakeasy-param-suppress-computed-diff: true MissingPermission: type: object properties: scopes: type: array items: type: string nullable: true 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 UpdateCatalogResource: type: object properties: archived: description: | Whether or not to archive the resource. When a resource is archived, all catalog service mappings will be removed. type: boolean example: false additionalProperties: false CatalogResourceFilterParameters: type: object properties: id: $ref: '#/components/schemas/StringFieldFilterExact' name: $ref: '#/components/schemas/StringFieldFilter' integration.name: oneOf: - $ref: '#/components/schemas/StringFieldFilter' integration.display_name: oneOf: - $ref: '#/components/schemas/StringFieldFilter' integration.instance.id: oneOf: - $ref: '#/components/schemas/UuidFieldFilter' integration.instance.name: oneOf: - $ref: '#/components/schemas/StringFieldFilter' integration.instance.display_name: oneOf: - $ref: '#/components/schemas/StringFieldFilter' type: $ref: '#/components/schemas/StringFieldFilterExact' config: oneOf: - $ref: '#/components/schemas/CatalogResourceConfigFieldFilter' integration_data: oneOf: - $ref: '#/components/schemas/CatalogResourceIntegrationDataFieldFilter' archived: $ref: '#/components/schemas/BooleanFieldFilter' service_associations: $ref: '#/components/schemas/NumericFieldFilter' created_at: $ref: '#/components/schemas/DateTimeFieldFilter' updated_at: $ref: '#/components/schemas/DateTimeFieldFilter' CatalogResourceRefFilterParameters: type: object properties: id: $ref: '#/components/schemas/StringFieldFilterExact' name: $ref: '#/components/schemas/StringFieldFilter' integration.name: oneOf: - $ref: '#/components/schemas/StringFieldFilter' integration.display_name: oneOf: - $ref: '#/components/schemas/StringFieldFilter' integration.instance.id: oneOf: - $ref: '#/components/schemas/UuidFieldFilter' integration.instance.name: oneOf: - $ref: '#/components/schemas/StringFieldFilter' integration.instance.display_name: oneOf: - $ref: '#/components/schemas/StringFieldFilter' type: $ref: '#/components/schemas/StringFieldFilterExact' config: oneOf: - $ref: '#/components/schemas/CatalogResourceConfigFieldFilter' integration_data: oneOf: - $ref: '#/components/schemas/CatalogResourceIntegrationDataFieldFilter' service_associations: $ref: '#/components/schemas/NumericFieldFilter' created_at: $ref: '#/components/schemas/DateTimeFieldFilter' updated_at: $ref: '#/components/schemas/DateTimeFieldFilter' CatalogResourceConfigFieldFilter: description: | Filters on the resource's `config` field. Filters must use dot-notation to identify the property that will be used to filter the results. For example: - `filter[config.control_plane_id]` - `filter[config.gateway_service_id][neq]=cedbd134-fc5c-4d44-9e38-ccd2a0c6e0ae` type: object properties: eq: type: string contains: type: string ocontains: type: string oeq: type: string neq: type: string additionalProperties: false required: - contains - ocontains - oeq - neq title: CatalogResourceConfigFieldFilter CatalogResourceIntegrationDataFieldFilter: description: | Filters on the resource's `integration_data` field. Filters must use dot-notation to identify the property that will be used to filter the results. For example: - `filter[integration_data.control_plane.id]=760562c3-fedd-43e4-b742-fc1663fef188` - `filter[integration_data.gateway_service.name][contains]=legacy` type: object properties: eq: type: string contains: type: string ocontains: type: string oeq: type: string neq: type: string additionalProperties: false required: - contains - ocontains - oeq - neq title: CatalogResourceIntegrationDataFieldFilter CatalogResource: description: Information about a catalog resource. type: object properties: id: $ref: '#/components/schemas/CatalogResourceId' name: description: | The name of the resource. Will be `null` when the resource has not yet been hydrated by the integration. type: string maxLength: 255 minLength: 1 nullable: true integration: $ref: '#/components/schemas/IntegrationRef' type: $ref: '#/components/schemas/CatalogResourceType' config: $ref: '#/components/schemas/CatalogResourceConfig' integration_data: description: | JSON object containing schemaless integration data of the resource. This field is always populated by the system backing the integration. When `null`, the resource has been manually initialized via API but has yet to be hydrated by the integration. type: object additionalProperties: true nullable: true archived: description: Whether or not the resource has been archived. type: boolean example: false service_associations: description: The number of catalog services this resource is mapped to. type: number example: 2 minimum: 0 readOnly: true created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' required: - id - name - integration - type - config - integration_data - archived - service_associations - created_at - updated_at CatalogResourceId: description: The resource ID. type: string format: base64url example: 4UdXnoaDYYJsH_Ir maxLength: 16 minLength: 16 CatalogResourceConfig: description: | JSON object representing the properties used to identify the resource in the third-party system. The schema depends on the resource type and is dynamically registered at runtime. type: object example: control_plane_id: ccadfb0a-56cd-4f74-955d-aec1d87157c8 gateway_service_id: 94896d05-0c4d-45eb-aae3-de754885dd58 additionalProperties: true x-speakeasy-type-override: any CatalogResourceType: description: | The resource type. Available resource types are compiled from the integrations installed within the catalog. type: string example: gateway_svc maxLength: 120 minLength: 1 CreateCatalogResourceMapping: type: object properties: service: description: The `id` or `name` of the service to map the resource to. type: string example: user-svc x-speakeasy-name-override: service_id resource: oneOf: - $ref: '#/components/schemas/CatalogResourceId' - $ref: '#/components/schemas/CreateCatalogResourceMappingResourceByConfig' additionalProperties: false required: - service - resource CreateCatalogResourceMappingResourceByConfig: type: object properties: integration_instance: description: The `id` or `name` of the integration instance the resource belongs to. type: string example: aws-lambda-prod type: $ref: '#/components/schemas/CatalogResourceType' config: $ref: '#/components/schemas/CatalogResourceConfig' additionalProperties: false required: - integration_instance - type - config title: CreateCatalogResourceMappingResourceByConfig CatalogResourceMappingFilterParameters: type: object properties: resource.id: oneOf: - $ref: '#/components/schemas/StringFieldFilterExact' resource.name: oneOf: - $ref: '#/components/schemas/StringFieldFilter' resource.type: oneOf: - $ref: '#/components/schemas/StringFieldFilter' resource.config: oneOf: - $ref: '#/components/schemas/CatalogResourceConfigFieldFilter' resource.integration.name: oneOf: - $ref: '#/components/schemas/StringFieldFilter' resource.integration.display_name: oneOf: - $ref: '#/components/schemas/StringFieldFilter' resource.integration.instance.id: oneOf: - $ref: '#/components/schemas/UuidFieldFilter' resource.integration.instance.name: oneOf: - $ref: '#/components/schemas/StringFieldFilter' resource.integration.instance.display_name: oneOf: - $ref: '#/components/schemas/StringFieldFilter' service.id: oneOf: - $ref: '#/components/schemas/StringFieldFilterExact' service.name: oneOf: - $ref: '#/components/schemas/StringFieldFilter' service.display_name: oneOf: - $ref: '#/components/schemas/StringFieldFilter' created_at: $ref: '#/components/schemas/DateTimeFieldFilter' CatalogResourceMapping: description: Describes a mapping between a catalog resource and a service. type: object properties: id: description: The resource mapping ID. type: string format: uuid example: d277faad-ed4e-4c56-a0fb-acce065dee34 resource: $ref: '#/components/schemas/CatalogResourceRef' service: $ref: '#/components/schemas/CatalogServiceRef' created_at: $ref: '#/components/schemas/CreatedAt' required: - id - resource - service - created_at CriteriaTemplateFilterParameters: type: object properties: name: $ref: '#/components/schemas/StringFieldFilter' display_name: $ref: '#/components/schemas/StringFieldFilter' installed: $ref: '#/components/schemas/BooleanFieldFilter' integration_name: $ref: '#/components/schemas/StringFieldFilter' CriteriaTemplate: description: Representation of a criteria template. type: object properties: name: $ref: '#/components/schemas/CriteriaTemplateName' display_name: description: The human-readable display name of the template. type: string category: description: Categorical tag for the functionality the template relates to. type: string example: Source Code Management enum: - Source Code Management - Incident Management - Observability - Code Quality - Issue Tracking - Communications - Feature Management - Security / Vulnerability - Documentation - Catalog Management - Gateway Configuration nullable: true x-speakeasy-unknown-values: allow template_string: description: '[Liquid](https://shopify.github.io/liquid/) template string used to render the criteria interpolated by parameters.' type: string nullable: true integration_name: description: | The catalog integration who registered the given criteria template. This will be `null` when a template is always available independent of connected integrations. type: string nullable: true installed: description: | Whether the template is available given the current state of the catalog. For example, this will be `false` when the template is provided by an integrastion that is not currently connected. type: boolean schema: $ref: '#/components/schemas/CriteriaTemplateSchema' required_integration_capability: description: | Required capability from connected integrations to use this criteria template. Applicable for templates that are not provided by a given integration (functional across integrations). type: string enum: - null - on_call_provider - incident_provider - pull_request_provider - workflow_provider nullable: true x-speakeasy-unknown-values: allow required: - name - display_name - category - template_string - integration_name - installed - schema - required_integration_capability CriteriaTemplateSchema: oneOf: - title: EmptySchema type: object nullable: true - type: object required: - type - definition properties: type: type: string enum: - simple definition: type: object additionalProperties: type: string enum: - string - number - boolean title: CriteriaTemplateSimpleSchema description: | Defines the parameters required to evaluate the criteria using simple schema. Set to `null` when the given criteria does not rely on parameterization. - type: object required: - type - definition properties: type: type: string enum: - json_schema definition: type: object additionalProperties: true title: CriteriaTemplateJSONSchema description: | Defines the parameters required to evaluate the criteria using JSON schema. Set to `null` when the given criteria does not rely on parameterization. ScorecardTemplateFilterParameters: type: object properties: name: $ref: '#/components/schemas/StringFieldFilter' display_name: $ref: '#/components/schemas/StringFieldFilter' ScorecardTemplate: description: Representation of a scorecard template. type: object properties: name: $ref: '#/components/schemas/ScorecardTemplateName' display_name: type: string example: Kong Best Practices description: type: string example: Best practices that we encourage users to follow when using other Konnect applications. criteria: type: array items: $ref: '#/components/schemas/ScorecardTemplateCriteria' example: - template_name: gateway_manager_error_rate template_parameters: relative_window: 30d integration: gateway_manager section_name: Gateway Observability - template_name: gateway_manager_response_latency template_parameters: metric: response_latency_p95 relative_window: 30d integration: gateway_manager section_name: Gateway Observability - template_name: gateway_manager_has_plugin template_parameters: {} integration: gateway_manager section_name: Plugin Management required: - name - display_name - description - criteria ScorecardTemplateName: description: Well-known name of the template. Uniquely identifies the template. type: string example: kong_best_practices enum: - kong_best_practices - service_documentation - service_maturity - security_and_compliance x-speakeasy-unknown-values: allow ScorecardTemplateCriteria: type: object properties: integration: description: The integration `name` when it provides the criteria template. Otherwise `null`. type: string example: null nullable: true template_name: $ref: '#/components/schemas/CriteriaTemplateName' template_parameters: $ref: '#/components/schemas/CriteriaParameters' section_name: description: Organizational section that the criteria belongs to within the scorecard template. type: string example: Source Code Management nullable: true required: - integration - template_name - template_parameters - section_name CreateScorecard: type: object properties: name: description: The human-readable name of the scorecard. type: string example: Incident Response description: type: string example: Governs key metrics pertaining to teams' incident response practices. nullable: true entity_selector: $ref: '#/components/schemas/ScorecardEntitySelector' criteria: type: array items: $ref: '#/components/schemas/CreateScorecardCriteria' minItems: 1 scorecard_template: description: | The name of the scorecard template used to create the scorecard. Otherwise, `null`. type: string example: kong_best_practices enum: - kong_best_practices - service_documentation - service_maturity - security_and_compliance nullable: true x-speakeasy-unknown-values: allow additionalProperties: false required: - name - description - entity_selector - criteria - scorecard_template UpdateScorecard: type: object properties: name: description: The human-readable name of the scorecard. type: string example: Incident Response description: type: string example: Governs key metrics pertaining to teams' incident response practices. nullable: true entity_selector: $ref: '#/components/schemas/ScorecardEntitySelector' criteria: type: array items: oneOf: - $ref: '#/components/schemas/UpdateScorecardCriteria' - $ref: '#/components/schemas/CreateScorecardCriteria' minItems: 1 scorecard_template: description: | The name of the scorecard template used to create the scorecard. Otherwise, `null`. type: string example: kong_best_practices enum: - kong_best_practices - service_documentation - service_maturity - security_and_compliance nullable: true x-speakeasy-unknown-values: allow additionalProperties: false required: - name - description - entity_selector - criteria - scorecard_template ScorecardFilterParameters: type: object properties: name: $ref: '#/components/schemas/StringFieldFilter' score.value: oneOf: - $ref: '#/components/schemas/StringFieldFilter' score.raw_value: oneOf: - $ref: '#/components/schemas/NumericFieldFilter' Scorecard: description: Representation of a scorecard. type: object properties: id: type: string format: uuid example: f3704e4c-104d-4f21-998a-20d4364c893f name: description: The human-readable name of the scorecard. type: string example: Incident Response description: type: string example: Governs key metrics pertaining to teams' incident response practices. nullable: true score: $ref: '#/components/schemas/ScorecardScore' entity_selector: $ref: '#/components/schemas/ScorecardEntitySelector' scorecard_template: description: | The name of the scorecard template used to create the scorecard. Otherwise, `null`. type: string example: kong_best_practices enum: - kong_best_practices - service_documentation - service_maturity - security_and_compliance nullable: true x-speakeasy-unknown-values: allow created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' required: - id - name - description - score - entity_selector - scorecard_template - created_at - updated_at ScorecardWithCriteria: description: Representation of a scorecard. type: object properties: id: type: string format: uuid example: f3704e4c-104d-4f21-998a-20d4364c893f name: description: The human-readable name of the scorecard. type: string example: Incident Response description: type: string example: Governs key metrics pertaining to teams' incident response practices. nullable: true score: $ref: '#/components/schemas/ScorecardScore' entity_selector: $ref: '#/components/schemas/ScorecardEntitySelector' scorecard_template: description: | The name of the scorecard template used to create the scorecard. Otherwise, `null`. type: string example: kong_best_practices enum: - kong_best_practices - service_documentation - service_maturity - security_and_compliance nullable: true x-speakeasy-unknown-values: allow created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' criteria: type: array items: $ref: '#/components/schemas/ScorecardCriteria' required: - id - name - description - score - entity_selector - scorecard_template - created_at - updated_at - criteria CatalogServiceScorecard: description: Representation of a scorecard. type: object properties: id: type: string format: uuid example: f3704e4c-104d-4f21-998a-20d4364c893f name: description: The human-readable name of the scorecard. type: string example: Incident Response description: type: string example: Governs key metrics pertaining to teams' incident response practices. nullable: true score: $ref: '#/components/schemas/ScorecardScore' entity_selector: $ref: '#/components/schemas/ScorecardEntitySelector' scorecard_template: description: | The name of the scorecard template used to create the scorecard. Otherwise, `null`. type: string example: kong_best_practices enum: - kong_best_practices - service_documentation - service_maturity - security_and_compliance nullable: true x-speakeasy-unknown-values: allow created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' criteria: type: array items: $ref: '#/components/schemas/CatalogServiceScorecardCriteria' required: - id - name - description - score - entity_selector - scorecard_template - created_at - updated_at - criteria ScorecardEntitySelector: description: | Selector used to dynamically target catalog entities that will be included in the given scorecard's evaluated score. type: object example: selector: label selector_parameters: label_key: product_area operator: eq value: cloud_platform nullable: true oneOf: - $ref: '#/components/schemas/ServiceSelector' title: ScorecardEntitySelector ScorecardScore: description: | The current score for the given Scorecard. A `null` value indicates the scorecard has not yet been evaluated and therefore no score has been computed. type: object properties: value: description: The human-readable score value coverted to the Scorecard's assigned grading system. type: string example: 88% raw_value: description: | The raw, numeric score calculated during evaluation of the scorecard. Rounded to 3 decimal places. type: number example: 87.5 maximum: 100 minimum: 0 nullable: true required: - value - raw_value ScorecardServiceFilterParameters: type: object properties: id: $ref: '#/components/schemas/UuidFieldFilter' name: $ref: '#/components/schemas/StringFieldFilter' display_name: $ref: '#/components/schemas/StringFieldFilter' custom_fields: description: | Filter by custom fields using dot-notation to specify the custom field. Filter operators are dictated by the custom field type. For example: - `filter[custom_fields.owner]` - `filter[custom_fields.owner][neq]=kong` - `filter[custom_fields.dashboard.link][contains]=https` oneOf: - $ref: '#/components/schemas/StringFieldFilter' - $ref: '#/components/schemas/BooleanFieldFilter' - $ref: '#/components/schemas/NumericFieldFilter' labels: $ref: '#/components/schemas/LabelsFieldFilter' created_at: $ref: '#/components/schemas/DateTimeFieldFilter' updated_at: $ref: '#/components/schemas/DateTimeFieldFilter' score.value: oneOf: - $ref: '#/components/schemas/StringFieldFilter' score.raw_value: oneOf: - $ref: '#/components/schemas/NumericFieldFilter' ScorecardService: description: Service object that includes its score for the given scorecard. type: object properties: id: description: The service ID. type: string format: uuid example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 readOnly: 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 maxLength: 2048 nullable: true custom_fields: $ref: '#/components/schemas/CustomFields' labels: $ref: '#/components/schemas/Labels' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' score: $ref: '#/components/schemas/ScorecardScore' required: - id - name - display_name - description - custom_fields - labels - created_at - updated_at - score title: ScorecardService ScorecardCriteriaFilterParameters: type: object properties: evaluation.passing_services_count: oneOf: - $ref: '#/components/schemas/NumericFieldFilter' ScorecardCriteriaServiceFilterParameters: type: object properties: id: $ref: '#/components/schemas/UuidFieldFilter' name: $ref: '#/components/schemas/StringFieldFilter' display_name: $ref: '#/components/schemas/StringFieldFilter' custom_fields: description: | Filter by custom fields using dot-notation to specify the custom field. Filter operators are dictated by the custom field type. For example: - `filter[custom_fields.owner]` - `filter[custom_fields.owner][neq]=kong` - `filter[custom_fields.dashboard.link][contains]=https` oneOf: - $ref: '#/components/schemas/StringFieldFilter' - $ref: '#/components/schemas/BooleanFieldFilter' - $ref: '#/components/schemas/NumericFieldFilter' labels: $ref: '#/components/schemas/LabelsFieldFilter' created_at: $ref: '#/components/schemas/DateTimeFieldFilter' updated_at: $ref: '#/components/schemas/DateTimeFieldFilter' evaluation.is_passing: oneOf: - $ref: '#/components/schemas/BooleanFieldFilter' evaluation.successfully_evaluated_at: description: Filters on the given datetime (RFC-3339) field value. oneOf: - type: object title: DateTimeFieldEqualsFilter additionalProperties: false properties: eq: description: Value strictly equals given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - eq - type: object title: DateTimeFieldLTFilter additionalProperties: false properties: lt: description: Value is less than the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - lt - type: object title: DateTimeFieldLTEFilter additionalProperties: false properties: lte: description: Value is less than or equal to the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - lte - type: object title: DateTimeFieldGTFilter additionalProperties: false properties: gt: description: Value is greater than the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - gt - type: object title: DateTimeFieldGTEFilter additionalProperties: false properties: gte: description: Value is greater than or equal to the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - gte title: DateTimeFieldFilter evaluation.attempted_at: description: Filters on the given datetime (RFC-3339) field value. oneOf: - type: object title: DateTimeFieldEqualsFilter additionalProperties: false properties: eq: description: Value strictly equals given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - eq - type: object title: DateTimeFieldLTFilter additionalProperties: false properties: lt: description: Value is less than the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - lt - type: object title: DateTimeFieldLTEFilter additionalProperties: false properties: lte: description: Value is less than or equal to the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - lte - type: object title: DateTimeFieldGTFilter additionalProperties: false properties: gt: description: Value is greater than the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - gt - type: object title: DateTimeFieldGTEFilter additionalProperties: false properties: gte: description: Value is greater than or equal to the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - gte title: DateTimeFieldFilter CreateScorecardCriteria: type: object properties: name: type: string example: Median time to merge opened PRs is less than 6 hours over the last 3 months. maxLength: 2048 minLength: 1 enabled: type: boolean example: true template_name: $ref: '#/components/schemas/CriteriaTemplateName' template_parameters: $ref: '#/components/schemas/CriteriaParameters' section_name: description: Organizational section name for the criteria within the scorecard. type: string example: Source Code Management maxLength: 120 minLength: 1 nullable: true additionalProperties: false required: - enabled - template_name - template_parameters - section_name UpdateScorecardCriteria: type: object properties: id: type: string format: uuid example: 5c1121f9-3f3a-47c7-9bb6-c81a51128714 name: type: string example: Median time to merge opened PRs is less than 6 hours over the last 3 months. maxLength: 2048 minLength: 1 enabled: type: boolean example: true template_name: $ref: '#/components/schemas/CriteriaTemplateName' template_parameters: $ref: '#/components/schemas/CriteriaParameters' section_name: description: Organizational section name for the criteria within the scorecard. type: string example: Source Code Management maxLength: 120 minLength: 1 nullable: true additionalProperties: false required: - id - enabled - template_name - template_parameters - section_name ScorecardCriteria: type: object properties: id: type: string format: uuid example: 5c1121f9-3f3a-47c7-9bb6-c81a51128714 name: description: 'Override display name for the criteria, for greater contextual clarity within a given scorecard.' type: string example: Time to restore service is less than 6 hours over the last 3 months. nullable: true scorecard_id: type: string format: uuid example: f3704e4c-104d-4f21-998a-20d4364c893f integration: description: The integration `name` when it provides the criteria template. Otherwise `null`. type: string example: null nullable: true enabled: description: Whether the criteria is enabled for the given scorecard. type: boolean example: true template_name: $ref: '#/components/schemas/CriteriaTemplateName' template_parameters: $ref: '#/components/schemas/CriteriaParameters' section_name: description: Organizational section name for the criteria within the scorecard. type: string example: Documentation maxLength: 120 minLength: 1 nullable: true created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' required: - id - name - scorecard_id - integration - enabled - template_name - template_parameters - section_name - created_at - updated_at CatalogServiceScorecardCriteria: type: object properties: id: type: string format: uuid example: 5c1121f9-3f3a-47c7-9bb6-c81a51128714 name: description: 'Override display name for the criteria, for greater contextual clarity within a given scorecard.' type: string example: Time to restore service is less than 6 hours over the last 3 months. nullable: true scorecard_id: type: string format: uuid example: f3704e4c-104d-4f21-998a-20d4364c893f integration: description: The integration `name` when it provides the criteria template. Otherwise `null`. type: string example: null nullable: true enabled: description: Whether the criteria is enabled for the given scorecard. type: boolean example: true template_name: $ref: '#/components/schemas/CriteriaTemplateName' template_parameters: $ref: '#/components/schemas/CriteriaParameters' section_name: description: Organizational section name for the criteria within the scorecard. type: string example: Documentation maxLength: 120 minLength: 1 nullable: true created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' evaluation: $ref: '#/components/schemas/ScorecardCriteriaServiceEvaluation' required: - id - name - scorecard_id - integration - enabled - template_name - template_parameters - section_name - created_at - updated_at - evaluation ScorecardCriteriaWithEvaluation: type: object properties: id: type: string format: uuid example: 5c1121f9-3f3a-47c7-9bb6-c81a51128714 name: description: 'Override display name for the criteria, for greater contextual clarity within a given scorecard.' type: string example: Time to restore service is less than 6 hours over the last 3 months. nullable: true scorecard_id: type: string format: uuid example: f3704e4c-104d-4f21-998a-20d4364c893f integration: description: The integration `name` when it provides the criteria template. Otherwise `null`. type: string example: null nullable: true enabled: description: Whether the criteria is enabled for the given scorecard. type: boolean example: true template_name: $ref: '#/components/schemas/CriteriaTemplateName' template_parameters: $ref: '#/components/schemas/CriteriaParameters' section_name: description: Organizational section name for the criteria within the scorecard. type: string example: Documentation maxLength: 120 minLength: 1 nullable: true created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' evaluation: $ref: '#/components/schemas/ScorecardCriteriaEvaluation' required: - id - name - scorecard_id - integration - enabled - template_name - template_parameters - section_name - created_at - updated_at - evaluation ScorecardCriteriaEvaluation: type: object properties: passing_services_count: description: Number of targeted Services passing the criteria. type: number example: 3 nullable: true required: - passing_services_count CriteriaTemplateName: description: Reference to the unique `name` of the criteria template. type: string example: time_to_merge CriteriaParameters: description: | Input parameters for the given criteria template. The available parameters, and its schema, are found on the criteria template definition via the `schema` property. Criteria template definitions are determined by the `/v1/criteria-templates` endpoint. type: object example: measure: median threshold: unit: hours value: 6 window: unit: months value: 3 additionalProperties: true nullable: true ScorecardCriteriaService: description: Service object that includes its evaluation result for the given scorecard criteria. type: object properties: id: description: The service ID. type: string format: uuid example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 readOnly: 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 maxLength: 2048 nullable: true custom_fields: $ref: '#/components/schemas/CustomFields' labels: $ref: '#/components/schemas/Labels' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' score: $ref: '#/components/schemas/ScorecardCriteriaServiceEvaluation' required: - id - name - display_name - description - custom_fields - labels - created_at - updated_at - evaluation title: ScorecardService ScorecardCriteriaServiceEvaluation: description: | Evaluation for a scorecard criteria relative to the given service service. Has a `null` value when the criteria has not yet been evaluated for the service. type: object properties: is_passing: description: Whether or not the service has most recently passed the criteria check. type: boolean evaluation_context: $ref: '#/components/schemas/CriteriaEvaluationResultDetails' evaluation_error: description: | Details about an error that occurred during evaluation preventing computation of a pass/fail result. Will be `null` when no error occurred. type: object example: null nullable: true properties: type: description: The type of error that occurred. type: string example: integration_unauthorized details: description: Human-readable error message about the error. type: string example: | The GitHub integration is unauthorized. Please ensure that the integration is re-authorized for the criteria to be successfully evaluated. required: - type - details attempted_at: description: The timestamp denoting the last evaluation attempt of the criteria for the service. type: string format: date-time example: '2023-02-15T07:20:50Z' successfully_evaluated_at: description: | The timestamp denoting when the criteria was last successfully evaluated for the service. Error states preventing the evaluation from being performed will not update this timestamp. type: string format: date-time example: '2023-02-15T07:20:50Z' created_at: $ref: '#/components/schemas/CreatedAt' nullable: true required: - is_passing - evaluation_context - evaluation_error - successfully_evaluated_at - attempted_at - created_at CriteriaEvaluationResultDetails: description: Provides additional metadata about the criteria evaluation result. type: object properties: raw_value: description: | Raw value of the criteria evaluation. For example, a service may be failing the `time_to_acknowledge` criteria evaluation when the the mean time-to-ack is greater than 15 minutes. This value represents the _actual_ mean time-to-ack value for the service which if not passing could be 25 minutes. oneOf: - type: number - type: string - type: boolean - $ref: '#/components/schemas/TimeValue' - $ref: '#/components/schemas/CriteriaEvaluationRelationMap' - type: object additionalProperties: true - nullable: true display_text: description: Renderable text providing human-readable context about the evaluation value. type: string example: 25 minutes example: raw_value: unit: minutes value: 25 display_text: 25 minutes nullable: true required: - raw_value - display_text CriteriaEvaluationRelationMap: type: object properties: instance: type: string enum: - criteria_result_relation_map relation: type: string example: gateway_svc map: additionalProperties: oneOf: - $ref: '#/components/schemas/CriteriaEvaluationRelationResult' - $ref: '#/components/schemas/CriteriaEvaluationErrorResult' required: - instance - relation - map CriteriaEvaluationRelationResult: type: object properties: is_passing: description: Whether or not the relation has passed the criteria evaluation. type: boolean relation: type: object properties: id: type: string name: type: string required: - id - name details: $ref: '#/components/schemas/CriteriaEvaluationResultDetails' required: - is_passing - relation - details CriteriaEvaluationErrorResult: type: object properties: relation: type: object properties: id: type: string name: type: string required: - id - name error: description: | Details about an error that occurred during evaluation preventing computation of a pass/fail result. Will be `null` when no error occurred. type: object example: null nullable: true properties: type: description: The type of error that occurred. type: string example: integration_unauthorized details: description: Human-readable error message about the error. type: string example: | The GitHub integration is unauthorized. Please ensure that the integration is re-authorized for the criteria to be successfully evaluated. required: - type - details required: - relation - error 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 nullable: true NumericCustomField: type: number nullable: true BooleanCustomField: type: boolean nullable: true 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' nullable: true required: - name - link ServiceSelector: oneOf: - $ref: '#/components/schemas/AllEntitiesSelector' - $ref: '#/components/schemas/ByIDsSelector' - $ref: '#/components/schemas/ByNameSelector' - $ref: '#/components/schemas/ByDisplayNameSelector' - $ref: '#/components/schemas/ByCustomFieldSelector' - $ref: '#/components/schemas/ByLabelSelector' - $ref: '#/components/schemas/HasLabelKeySelector' - $ref: '#/components/schemas/HasDocsSelector' - $ref: '#/components/schemas/HasApisSelector' - $ref: '#/components/schemas/HasResourcesSelector' AllEntitiesSelector: description: Entity selector that includes all entities of the given type within the catalog. type: object properties: selector: type: string enum: - all selector_parameters: type: string enum: - null nullable: true required: - selector - selector_parameters ByIDsSelector: description: Entity selector that includes entities contained within a list of IDs. type: object properties: selector: type: string enum: - ids selector_parameters: type: object properties: ids: type: array items: type: string format: uuid required: - ids required: - selector - selector_parameters ByNameSelector: description: Entity selector that includes entities by `name`. type: object properties: selector: type: string enum: - name selector_parameters: $ref: '#/components/schemas/StringFieldSelectorParams' required: - selector - selector_parameters ByDisplayNameSelector: description: Entity selector that includes entities by `display_name`. type: object properties: selector: type: string enum: - display_name selector_parameters: $ref: '#/components/schemas/StringFieldSelectorParams' required: - selector - selector_parameters ByCustomFieldSelector: description: Entity selector that include entities by a custom field. type: object properties: selector: type: string enum: - custom_field selector_parameters: oneOf: - type: object title: StringCustomFieldSelectorParams required: - field - value - operator properties: field: description: Name of the custom field. type: string value: type: string operator: $ref: '#/components/schemas/StringSelectorOperator' - type: object title: NumberCustomFieldSelectorParams required: - field - value - operator properties: field: description: Name of the custom field. type: string value: type: number operator: $ref: '#/components/schemas/NumberSelectorOperator' - type: object title: BooleanCustomFieldSelectorParams required: - field - value - operator properties: field: description: Name of the custom field. type: string value: type: boolean operator: $ref: '#/components/schemas/BooleanSelectorOperator' - type: object title: UrlCustomFieldSelectorParams required: - field - subfield - value - operator properties: field: description: Name of the custom field. type: string subfield: description: Specify which subfield of the `url` custom field value to use for selection. type: string enum: - name - link x-speakeasy-unknown-values: allow value: type: string operator: $ref: '#/components/schemas/StringSelectorOperator' required: - selector - selector_parameters ByLabelSelector: description: Entity selector that includes entities by `label` value. type: object properties: selector: type: string enum: - label selector_parameters: type: object properties: operator: $ref: '#/components/schemas/StringSelectorOperator' value: type: string label_key: type: string required: - operator - value - label_key title: LabelSelectorParams required: - selector - selector_parameters HasLabelKeySelector: description: Entity selector that includes entities by inclusion of a `label` key. type: object properties: selector: type: string enum: - has_label_key selector_parameters: type: object properties: label_key: type: string required: - label_key title: HasLabelKeySelectorParams required: - selector - selector_parameters HasDocsSelector: description: Entity selector to include entities by attached documentation. type: object properties: selector: type: string enum: - has_docs selector_parameters: type: string enum: - null nullable: true required: - selector - selector_parameters HasApisSelector: description: Entity selector that includes services by attached APIs. type: object properties: selector: type: string enum: - api_count selector_parameters: $ref: '#/components/schemas/HasSelectorParams' required: - selector - selector_parameters HasResourcesSelector: description: Entity selector that includes services by mapped resources. type: object properties: selector: type: string enum: - resource_count selector_parameters: type: object properties: operator: $ref: '#/components/schemas/HasRelationshipSelectorOperator' value: type: number resource_type: $ref: '#/components/schemas/CatalogResourceType' integration: description: The machine name of the integration that uniquely identifies it within the catalog. type: string example: gateway-manager required: - operator - value - resource_type - integration title: HasResourcesSelectorParams required: - selector - selector_parameters StringFieldSelectorParams: type: object properties: operator: $ref: '#/components/schemas/StringSelectorOperator' value: type: string required: - operator - value HasSelectorParams: type: object properties: operator: $ref: '#/components/schemas/HasRelationshipSelectorOperator' value: type: number required: - operator - value StringSelectorOperator: type: string enum: - eq - contains x-speakeasy-unknown-values: allow NumberSelectorOperator: type: string enum: - eq - lt - gt x-speakeasy-unknown-values: allow BooleanSelectorOperator: type: string enum: - eq HasRelationshipSelectorOperator: type: string enum: - eq - gte - lte x-speakeasy-unknown-values: allow SimpleSchema: type: object properties: type: type: string enum: - simple definition: type: object additionalProperties: type: string enum: - string - number - boolean x-speakeasy-unknown-values: allow required: - type - definition CatalogServiceRef: description: Short-hand descriptor of a catalog service. type: object properties: id: description: The service ID. type: string format: uuid example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 name: description: | The machine name of the service that uniquely identifies it within the catalog. type: string example: user-svc display_name: description: The display name of the service. type: string example: User Service required: - id - name - display_name IntegrationRef: description: Short-hand descriptor of an integration installed within the catalog. type: object properties: name: type: string example: gateway-manager display_name: type: string example: gateway-manager instance: $ref: '#/components/schemas/IntegrationInstanceRef' required: - name - display_name - instance 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 CatalogResourceRef: description: Short-hand descriptor of a catalog resource. type: object properties: id: $ref: '#/components/schemas/CatalogResourceId' name: description: The name of the resource. type: string nullable: true integration: $ref: '#/components/schemas/IntegrationRef' type: $ref: '#/components/schemas/CatalogResourceType' config: $ref: '#/components/schemas/CatalogResourceConfig' required: - id - name - type - config - integration TimeValue: description: Represents a time value inclusive of units. type: object properties: value: type: number example: 3.25 unit: type: string example: hours enum: - milliseconds - seconds - minutes - hours - days - months - years x-speakeasy-unknown-values: allow required: - value - unit CatalogServiceApiMapping: description: Represents an API mapping associated with a service in the catalog. type: object properties: id: description: The mapping ID. type: string format: uuid service_id: description: The ID of the service. type: string format: uuid api_id: description: The ID of the API. type: string format: uuid created_at: description: Creation timestamp. type: string format: date-time updated_at: description: Last update timestamp. type: string format: date-time required: - id - service_id - api_id - created_at - updated_at CatalogServiceApiMappingFilterParameters: type: object properties: api_id: $ref: '#/components/schemas/UuidFieldFilter' additionalProperties: false title: CatalogServiceApiMappingFilterParameters CatalogApiServiceMappingFilterParameters: type: object properties: service_id: $ref: '#/components/schemas/UuidFieldFilter' additionalProperties: false title: CatalogApiServiceMappingFilterParameters NumericFieldFilter: description: Filter by a numeric value. oneOf: - type: number description: Value strictly equals the given numeric value. example: 21 - type: object title: NumericFieldEqualsFilter additionalProperties: false properties: eq: description: Value strictly equals the given numeric value. type: number example: 3.14 required: - eq - type: object title: NumericFieldLTFilter additionalProperties: false properties: lt: description: Value is less than the given numeric value. type: number example: 10 required: - lt - type: object title: NumericFieldLTEFilter additionalProperties: false properties: lte: description: Value is less than or equal to the given numeric value. type: number example: 10 required: - lte - type: object title: NumericFieldGTFilter additionalProperties: false properties: gt: description: Value is greater than the given numeric value. type: number example: 1.85 required: - gt - type: object title: NumericFieldGTEFilter additionalProperties: false properties: gte: description: Value is greater than or equal to the given numeric value. type: number example: 1.85 required: - gte CursorPageParameters: type: object properties: size: description: The number of items included per page. type: integer example: 10 after: description: Cursor param specifying the page (i.e. the next page) of data returned. type: string example: ewogICJpZCI6ICJoZWxsbyB3b3JsZCIKfQ before: description: Cursor param specifying the page (i.e. the previous page) of data returned. type: string example: ewogICJpZCI6ICJoZWxsbyB3b3JsZCIKfQ StringFieldFilterExact: 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 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-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-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: oneOf: - $ref: '#/components/schemas/EventGatewayListenerPortString' - $ref: '#/components/schemas/EventGatewayListenerPortInteger' EventGatewayListenerPortString: 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})$' EventGatewayListenerPortInteger: type: integer maximum: 65535 minimum: 1 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' x-min-runtime-version: '1.2' 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. anyOf: - $ref: '#/components/schemas/VirtualClusterReferenceById' - $ref: '#/components/schemas/VirtualClusterReferenceByName' x-terraform-preferred: '#/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 VirtualClusterReferenceByName: description: Reference a virtual cluster by its unique name. type: object properties: name: $ref: '#/components/schemas/VirtualClusterName' required: - name 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' 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' 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`. anyOf: - $ref: '#/components/schemas/TLSTrustBundleReferenceById' - $ref: '#/components/schemas/TLSTrustBundleReferenceByName' x-terraform-preferred: '#/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 TLSTrustBundleReferenceByName: type: object properties: name: $ref: '#/components/schemas/TLSTrustBundleName' required: - name 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' 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' minItems: 1 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 minLength: 1 scope: description: Maps the scope claim. type: string minLength: 1 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' minItems: 1 issuer: description: Expected token issuer in the token. type: string minLength: 1 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' 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' 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' 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-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`. anyOf: - $ref: '#/components/schemas/BackendClusterReferenceById' - $ref: '#/components/schemas/BackendClusterReferenceByName' BackendClusterReferenceById: type: object properties: id: description: The unique identifier of the backend cluster. type: string format: uuid minLength: 1 required: - id BackendClusterReferenceByName: type: object properties: name: $ref: '#/components/schemas/BackendClusterName' required: - name 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 of the virtual cluster. type: string default: '' maxLength: 512 type: description: The type of the schema registry. type: string config: description: The configuration of the schema registry. type: object 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 of the virtual cluster. type: string default: '' maxLength: 512 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 of the virtual cluster. type: string default: '' maxLength: 512 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. oneOf: - $ref: '#/components/schemas/SchemaRegistryReferenceById' - $ref: '#/components/schemas/SchemaRegistryReferenceByName' x-terraform-preferred: '#/components/schemas/SchemaRegistryReferenceById' SchemaRegistryReferenceById: type: object properties: id: description: The unique identifier of the schema registry. type: string format: uuid minLength: 1 required: - id SchemaRegistryReferenceByName: description: Reference a schema registry by its unique name. type: object properties: name: description: The unique name of the schema registry. type: string maxLength: 255 minLength: 1 required: - name 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 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 nullable: true 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 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 nullable: true 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 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 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' required: - mode - tls_trust_bundles x-min-runtime-version: '1.1' 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' required: - mode - tls_trust_bundles x-min-runtime-version: '1.1' 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 EventGatewayListenerPolicyCreate: description: The typed schema of the listener policy to modify it. discriminator: propertyName: type mapping: tls_server: '#/components/schemas/EventGatewayTLSListenerPolicy' forward_to_virtual_cluster: '#/components/schemas/ForwardToVirtualClusterPolicy' oneOf: - $ref: '#/components/schemas/EventGatewayTLSListenerPolicy' - $ref: '#/components/schemas/ForwardToVirtualClusterPolicy' EventGatewayListenerPolicyUpdate: description: The typed schema of the listener policy to modify it. discriminator: propertyName: type mapping: tls_server: '#/components/schemas/EventGatewayTLSListenerSensitiveDataAwarePolicy' forward_to_virtual_cluster: '#/components/schemas/ForwardToVirtualClusterPolicy' oneOf: - $ref: '#/components/schemas/EventGatewayTLSListenerSensitiveDataAwarePolicy' - $ref: '#/components/schemas/ForwardToVirtualClusterPolicy' EventGatewayPolicyPatch: description: The schema of the policy to patch it. properties: name: description: A unique user-defined name of the policy. type: string maxLength: 255 minLength: 1 nullable: true pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.'']*[\p{L}\p{N}]$' description: description: A human-readable description of the policy. type: string maxLength: 512 nullable: true enabled: description: Whether the policy is enabled. type: boolean condition: description: A string containing the boolean expression that determines whether the policy is applied. type: string example: context.topic.name.endsWith('my_suffix') maxLength: 1000 nullable: true x-expression: type: boolean labels: $ref: '#/components/schemas/Labels' EventGatewayListenerPolicyPatch: description: The schema of the policy to patch it. properties: name: description: A unique user-defined name of the policy. type: string maxLength: 255 minLength: 1 nullable: true pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.'']*[\p{L}\p{N}]$' description: description: A human-readable description of the policy. type: string maxLength: 512 nullable: true enabled: description: Whether the policy is enabled. type: boolean labels: $ref: '#/components/schemas/Labels' 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 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 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 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' additionalProperties: false required: - type EventGatewayConsumePolicyCreate: description: The typed schema of the consume policy to modify it. discriminator: propertyName: type mapping: modify_headers: '#/components/schemas/EventGatewayModifyHeadersPolicyCreate' schema_validation: '#/components/schemas/EventGatewayConsumeSchemaValidationPolicy' decrypt: '#/components/schemas/EventGatewayDecryptPolicy' skip_record: '#/components/schemas/EventGatewaySkipRecordPolicyCreate' decrypt_fields: '#/components/schemas/EventGatewayParsedRecordDecryptFieldsPolicyCreate' oneOf: - $ref: '#/components/schemas/EventGatewayConsumeSchemaValidationPolicy' - $ref: '#/components/schemas/EventGatewayModifyHeadersPolicyCreate' - $ref: '#/components/schemas/EventGatewaySkipRecordPolicyCreate' - $ref: '#/components/schemas/EventGatewayDecryptPolicy' - $ref: '#/components/schemas/EventGatewayParsedRecordDecryptFieldsPolicyCreate' EventGatewayConsumePolicyUpdate: description: The typed schema of the consume policy to modify it. discriminator: propertyName: type mapping: modify_headers: '#/components/schemas/EventGatewayModifyHeadersPolicy' schema_validation: '#/components/schemas/EventGatewayConsumeSchemaValidationPolicy' decrypt: '#/components/schemas/EventGatewayDecryptPolicy' skip_record: '#/components/schemas/EventGatewaySkipRecordPolicy' decrypt_fields: '#/components/schemas/EventGatewayParsedRecordDecryptFieldsPolicy' oneOf: - $ref: '#/components/schemas/EventGatewayModifyHeadersPolicy' - $ref: '#/components/schemas/EventGatewayConsumeSchemaValidationPolicy' - $ref: '#/components/schemas/EventGatewayDecryptPolicy' - $ref: '#/components/schemas/EventGatewaySkipRecordPolicy' - $ref: '#/components/schemas/EventGatewayParsedRecordDecryptFieldsPolicy' EventGatewayProducePolicyCreate: description: The typed schema of the produce policy to modify it. discriminator: propertyName: type mapping: modify_headers: '#/components/schemas/EventGatewayModifyHeadersPolicyCreate' schema_validation: '#/components/schemas/EventGatewayProduceSchemaValidationPolicy' encrypt: '#/components/schemas/EventGatewayEncryptPolicy' encrypt_fields: '#/components/schemas/EventGatewayParsedRecordEncryptFieldsPolicyCreate' oneOf: - $ref: '#/components/schemas/EventGatewayModifyHeadersPolicyCreate' - $ref: '#/components/schemas/EventGatewayProduceSchemaValidationPolicy' - $ref: '#/components/schemas/EventGatewayEncryptPolicy' - $ref: '#/components/schemas/EventGatewayParsedRecordEncryptFieldsPolicyCreate' EventGatewayProducePolicyUpdate: description: The typed schema of the produce policy to modify it. discriminator: propertyName: type mapping: modify_headers: '#/components/schemas/EventGatewayModifyHeadersPolicy' schema_validation: '#/components/schemas/EventGatewayProduceSchemaValidationPolicy' encrypt: '#/components/schemas/EventGatewayEncryptPolicy' encrypt_fields: '#/components/schemas/EventGatewayParsedRecordEncryptFieldsPolicy' oneOf: - $ref: '#/components/schemas/EventGatewayProduceSchemaValidationPolicy' - $ref: '#/components/schemas/EventGatewayModifyHeadersPolicy' - $ref: '#/components/schemas/EventGatewayEncryptPolicy' - $ref: '#/components/schemas/EventGatewayParsedRecordEncryptFieldsPolicy' EventGatewayClusterPolicyModify: description: The typed schema of the cluster policy to modify it. discriminator: propertyName: type mapping: acls: '#/components/schemas/EventGatewayACLsPolicy' oneOf: - $ref: '#/components/schemas/EventGatewayACLsPolicy' 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 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' - 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' - 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 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' - 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' - 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. Registry `metadata` (tags and properties) is available from runtime 1.3 via `record.value.schema.metadata`. **Requires a minimum runtime version of `1.2`**. - name: record.value.schema.metadata type: object x-min-runtime-version: '1.3' description: |- Confluent schema-registry metadata for the record value. Present (as empty maps) whenever `record.value.schema` is present. Fields: * `properties` (`map` of `string` to `string`) - Confluent `metadata.properties`; empty map when the registry omits it. * `tags` (`map` of `string` to list of `string`) - keyed by tag, value is the list of Confluent schema paths (e.g. `io.confluent.field.<name>`) carrying that tag; empty map when the registry omits it. **Requires a minimum runtime version of `1.3`**. - 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`**. - name: record.key.schema.metadata type: object x-min-runtime-version: '1.3' description: |- Same shape as `record.value.schema.metadata`, populated when the record key has schema_validation configured. **Requires a minimum runtime version of `1.3`**. required: - type - config title: Encrypt Parsed Record x-min-runtime-version: '1.2' 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 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' - 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' - 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. Registry `metadata` (tags and properties) is available from runtime 1.3 via `record.value.schema.metadata`. **Requires a minimum runtime version of `1.2`**. - name: record.value.schema.metadata type: object x-min-runtime-version: '1.3' description: |- Confluent schema-registry metadata for the record value. Present (as empty maps) whenever `record.value.schema` is present. Fields: * `properties` (`map` of `string` to `string`) - Confluent `metadata.properties`; empty map when the registry omits it. * `tags` (`map` of `string` to list of `string`) - keyed by tag, value is the list of Confluent schema paths (e.g. `io.confluent.field.<name>`) carrying that tag; empty map when the registry omits it. **Requires a minimum runtime version of `1.3`**. - 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`**. - name: record.key.schema.metadata type: object x-min-runtime-version: '1.3' description: |- Same shape as `record.value.schema.metadata`, populated when the record key has schema_validation configured. **Requires a minimum runtime version of `1.3`**. 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' 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: paths: description: Selects which fields of the parsed record to encrypt. A maximum of 50 path entries are allowed. oneOf: - $ref: '#/components/schemas/EventGatewayParsedRecordFieldPathsArray' - $ref: '#/components/schemas/EventGatewayParsedRecordFieldPathsExpression' encryption_key: $ref: '#/components/schemas/EncryptionKey' 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 minItems: 1 EventGatewayParsedRecordFieldPathsExpression: description: | This expression should evaluate to an array of exact field paths, equivalent to the `match` values in the array variant. type: string example: | ${context.auth.type == 'sasl_oauth_bearer' ? ['credentials.accessToken', 'credentials.refreshToken'] : ['credentials.password']} x-expression: type: array items: type: string 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' - 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' - 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.' - name: record.headers type: object description: An associative array of header key value pairs. 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 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' - 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' - 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 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' - 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' - 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. Registry `metadata` (tags and properties) is available from runtime 1.3 via `record.value.schema.metadata`. **Requires a minimum runtime version of `1.2`**. - name: record.value.schema.metadata type: object x-min-runtime-version: '1.3' description: |- Confluent schema-registry metadata for the record value. Present (as empty maps) whenever `record.value.schema` is present. Fields: * `properties` (`map` of `string` to `string`) - Confluent `metadata.properties`; empty map when the registry omits it. * `tags` (`map` of `string` to list of `string`) - keyed by tag, value is the list of Confluent schema paths (e.g. `io.confluent.field.<name>`) carrying that tag; empty map when the registry omits it. **Requires a minimum runtime version of `1.3`**. - 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`**. - name: record.key.schema.metadata type: object x-min-runtime-version: '1.3' description: |- Same shape as `record.value.schema.metadata`, populated when the record key has schema_validation configured. **Requires a minimum runtime version of `1.3`**. required: - type - config title: Decrypt Parsed Record Fields x-min-runtime-version: '1.2' 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 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' - 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' - 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. Registry `metadata` (tags and properties) is available from runtime 1.3 via `record.value.schema.metadata`. **Requires a minimum runtime version of `1.2`**. - name: record.value.schema.metadata type: object x-min-runtime-version: '1.3' description: |- Confluent schema-registry metadata for the record value. Present (as empty maps) whenever `record.value.schema` is present. Fields: * `properties` (`map` of `string` to `string`) - Confluent `metadata.properties`; empty map when the registry omits it. * `tags` (`map` of `string` to list of `string`) - keyed by tag, value is the list of Confluent schema paths (e.g. `io.confluent.field.<name>`) carrying that tag; empty map when the registry omits it. **Requires a minimum runtime version of `1.3`**. - 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`**. - name: record.key.schema.metadata type: object x-min-runtime-version: '1.3' description: |- Same shape as `record.value.schema.metadata`, populated when the record key has schema_validation configured. **Requires a minimum runtime version of `1.3`**. 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' 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: description: Selects which fields of the parsed record to decrypt. A maximum of 50 path entries are allowed. oneOf: - $ref: '#/components/schemas/EventGatewayParsedRecordFieldPathsArray' - $ref: '#/components/schemas/EventGatewayParsedRecordFieldPathsExpression' 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 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' minItems: 1 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' - 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' - 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. Registry `metadata` (tags and properties) is available from runtime 1.3 via `record.value.schema.metadata`. **Requires a minimum runtime version of `1.2`**. - name: record.value.schema.metadata type: object x-min-runtime-version: '1.3' description: |- Confluent schema-registry metadata for the record value. Present (as empty maps) whenever `record.value.schema` is present. Fields: * `properties` (`map` of `string` to `string`) - Confluent `metadata.properties`; empty map when the registry omits it. * `tags` (`map` of `string` to list of `string`) - keyed by tag, value is the list of Confluent schema paths (e.g. `io.confluent.field.<name>`) carrying that tag; empty map when the registry omits it. **Requires a minimum runtime version of `1.3`**. - 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`**. - name: record.key.schema.metadata type: object x-min-runtime-version: '1.3' description: |- Same shape as `record.value.schema.metadata`, populated when the record key has schema_validation configured. **Requires a minimum runtime version of `1.3`**. 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 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' minItems: 1 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' - 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' - 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. Registry `metadata` (tags and properties) is available from runtime 1.3 via `record.value.schema.metadata`. **Requires a minimum runtime version of `1.2`**. - name: record.value.schema.metadata type: object x-min-runtime-version: '1.3' description: |- Confluent schema-registry metadata for the record value. Present (as empty maps) whenever `record.value.schema` is present. Fields: * `properties` (`map` of `string` to `string`) - Confluent `metadata.properties`; empty map when the registry omits it. * `tags` (`map` of `string` to list of `string`) - keyed by tag, value is the list of Confluent schema paths (e.g. `io.confluent.field.<name>`) carrying that tag; empty map when the registry omits it. **Requires a minimum runtime version of `1.3`**. - 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`**. - name: record.key.schema.metadata type: object x-min-runtime-version: '1.3' description: |- Same shape as `record.value.schema.metadata`, populated when the record key has schema_validation configured. **Requires a minimum runtime version of `1.3`**. parent_policy_id: description: 'The unique identifier of the parent schema validation policy, if any.' type: string format: uuid 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 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' - 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' - 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. Registry `metadata` (tags and properties) is available from runtime 1.3 via `record.value.schema.metadata`. **Requires a minimum runtime version of `1.2`**. - name: record.value.schema.metadata type: object x-min-runtime-version: '1.3' description: |- Confluent schema-registry metadata for the record value. Present (as empty maps) whenever `record.value.schema` is present. Fields: * `properties` (`map` of `string` to `string`) - Confluent `metadata.properties`; empty map when the registry omits it. * `tags` (`map` of `string` to list of `string`) - keyed by tag, value is the list of Confluent schema paths (e.g. `io.confluent.field.<name>`) carrying that tag; empty map when the registry omits it. **Requires a minimum runtime version of `1.3`**. - 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`**. - name: record.key.schema.metadata type: object x-min-runtime-version: '1.3' description: |- Same shape as `record.value.schema.metadata`, populated when the record key has schema_validation configured. **Requires a minimum runtime version of `1.3`**. 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 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' - 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' - 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. Registry `metadata` (tags and properties) is available from runtime 1.3 via `record.value.schema.metadata`. **Requires a minimum runtime version of `1.2`**. - name: record.value.schema.metadata type: object x-min-runtime-version: '1.3' description: |- Confluent schema-registry metadata for the record value. Present (as empty maps) whenever `record.value.schema` is present. Fields: * `properties` (`map` of `string` to `string`) - Confluent `metadata.properties`; empty map when the registry omits it. * `tags` (`map` of `string` to list of `string`) - keyed by tag, value is the list of Confluent schema paths (e.g. `io.confluent.field.<name>`) carrying that tag; empty map when the registry omits it. **Requires a minimum runtime version of `1.3`**. - 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`**. - name: record.key.schema.metadata type: object x-min-runtime-version: '1.3' description: |- Same shape as `record.value.schema.metadata`, populated when the record key has schema_validation configured. **Requires a minimum runtime version of `1.3`**. parent_policy_id: description: 'The unique identifier of the parent schema validation policy, if any.' type: string format: uuid 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 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' - 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' - 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' 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' 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' 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' 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 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' - 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' - 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' 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' 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' 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' 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 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' - 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' - 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.' oneOf: - $ref: '#/components/schemas/EventGatewayACLRuleResourceNamesStaticArray' - $ref: '#/components/schemas/EventGatewayACLRuleResourceNamesDynamicArray' 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 EventGatewayACLRuleResourceNamesStaticArray: description: A static list of resource name globs to match against resources when applying an ACL policy. type: array items: $ref: '#/components/schemas/EventGatewayACLResourceName' example: - match: orders-* - match: payments-* maxItems: 50 EventGatewayACLRuleResourceNamesDynamicArray: description: |- This expression should evaluate to an array of glob patterns, equivalent to the `match` values in the static array form of `resource_names`. **Requires a minimum runtime version of `1.1`**. type: string example: 'context.auth.token.claims["topics"]' x-expression: type: array items: type: string 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' - 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' - 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.' x-min-runtime-version: '1.1' 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-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-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. anyOf: - $ref: '#/components/schemas/EncryptionKeyStaticReferenceById' - $ref: '#/components/schemas/EncryptionKeyStaticReferenceByName' x-terraform-preferred: '#/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 EncryptionKeyStaticReferenceByName: description: A static encryption key reference by name. type: object properties: name: description: The name of the static key defined in the key source. type: string maxLength: 255 minLength: 1 required: - name x-speakeasy-name-override: ReferenceByName 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 MoveEventGatewayPolicy: description: Defines the position of a policy relative to the policy chain. type: object properties: index: description: The position of the policy relative to the policy chain. type: integer example: 2 minimum: 0 required: - index 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 maxLength: 255 minLength: 1 x-unicode-pattern: '^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+'']*[\p{L}\p{N}]$' description: description: A description of the certificate. type: string 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 subject: description: The subject of the certificate. type: string key_usages: description: The key usages of the certificate. type: array items: type: string expiry: description: The expiry date of the certificate as a unix timestamp. type: integer format: int64 san_names: description: The Subject Alternative Names (SAN) of the certificate. type: array items: type: string dns_names: description: The DNS names in the certificate SAN. type: array items: type: string email_addresses: description: The email addresses in the certificate SAN. type: array items: type: string ip_addresses: description: The IP addresses in the certificate SAN. type: array items: type: string uris: description: The URIs in the certificate SAN. type: array items: type: string format: uri sha256_fingerprint: description: The SHA-256 fingerprint of the certificate. type: string EventGatewayNodeError: description: An error reported by an event gateway node. type: object properties: name: description: The name of the error. type: string message: description: The error message. type: string required: - name - message 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 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' 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' 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' - 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' - 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' 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' minItems: 1 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 minItems: 1 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 EventGatewayPolicyReference: description: The unique identifier of the policy. type: string format: uuid 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 PatchGatewayRequest: description: The request schema for the patch gateway request. type: object properties: name: $ref: '#/components/schemas/GatewayName' description: description: A human-readable description of the Gateway. type: string maxLength: 512 nullable: true min_runtime_version: 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' nullable: true pattern: ^\d+\.\d+$ 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 maxProperties: 50 nullable: true title: Labels additionalProperties: false title: PatchGatewayRequest 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 GatewayNode: type: object properties: id: description: The node ID. type: string format: uuid example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 readOnly: true version: description: The string representation of the node current version. type: string last_seen_at: description: An ISO-8604 timestamp representation of node last seen date. type: string format: date-time example: '2025-08-04T20:10:06.927Z' created_at: description: An ISO-8604 timestamp representation of node creation date. type: string format: date-time example: '2025-08-04T20:10:06.927Z' readOnly: true updated_at: description: An ISO-8604 timestamp representation of node update date. type: string format: date-time example: '2025-08-04T20:10:06.927Z' readOnly: true config_applied_at: description: The time the node succeeds in applying the configuration. type: string format: date-time readOnly: true config_version: description: The version number of the configuration applied by the node. type: string example: v1.123 readOnly: true required: - id - version - last_seen_at - created_at - updated_at Addon: description: |- Add-on allows extending subscriptions with compatible plans with additional ratecards. type: object properties: id: description: ULID (Universally Unique Lexicographically Sortable Identifier). type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: ULID name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' created_at: description: An ISO-8601 timestamp representation of entity creation date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time updated_at: description: An ISO-8601 timestamp representation of entity last update date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time deleted_at: description: An ISO-8601 timestamp representation of entity deletion date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time key: description: |- A key is a semi-unique string that is used to identify the add-on. It is used to reference the latest `active` version of the add-on and is unique with the version number. type: string example: resource_key maxLength: 64 minLength: 1 pattern: '^[a-z0-9]+(?:_[a-z0-9]+)*$' title: Key version: description: Version of the add-on. Incremented when the add-on is updated. type: integer default: 1 minimum: 1 readOnly: true title: Version instance_type: description: The InstanceType of the add-ons. Can be "single" or "multiple". type: string enum: - single - multiple title: The InstanceType of the add-ons. Can be "single" or "multiple". x-speakeasy-unknown-values: allow currency: description: Fiat or custom currency code. type: string example: USD maxLength: 3 minLength: 3 pattern: '^[A-Z]{3}$' effective_from: description: |- The date and time when the add-on becomes effective. When not specified, the add-on is a draft. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: Effective start date effective_to: description: |- The date and time when the add-on is no longer effective. When not specified, the add-on is effective indefinitely. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: Effective end date status: description: |- The status of the add-on. Computed based on the effective start and end dates: - `draft`: `effective_from` is not set. - `active`: `effective_from <= now` and (`effective_to` is not set or `now < effective_to`). - `archived`: `effective_to <= now`. type: string enum: - draft - active - archived readOnly: true title: Status x-speakeasy-unknown-values: allow rate_cards: description: The rate cards of the add-on. type: array items: $ref: '#/components/schemas/BillingRateCard' title: Rate cards validation_errors: description: List of validation errors. type: array items: $ref: '#/components/schemas/ProductCatalogValidationError' readOnly: true title: Validation errors additionalProperties: false required: - id - name - created_at - updated_at - key - version - instance_type - currency - status - rate_cards AddonPagePaginatedResponse: description: Page paginated response. type: object properties: data: type: array items: $ref: '#/components/schemas/Addon' meta: $ref: '#/components/schemas/PaginatedMeta' additionalProperties: false required: - data - meta Address: description: Address type: object properties: country: description: |- Country code in [ISO 3166-1](https://www.iso.org/iso-3166-country-codes.html) alpha-2 format. type: string example: US maxLength: 2 minLength: 2 pattern: '^[A-Z]{2}$' title: Country postal_code: description: Postal code. type: string title: Postal Code state: description: State or province. type: string title: State city: description: City. type: string title: City line1: description: First line of the address. type: string title: Line 1 line2: description: Second line of the address. type: string title: Line 2 phone_number: description: Phone number. type: string title: Phone Number additionalProperties: false AppPagePaginatedResponse: description: Page paginated response. type: object properties: data: type: array items: $ref: '#/components/schemas/BillingApp' meta: $ref: '#/components/schemas/PaginatedMeta' additionalProperties: false required: - data - meta BillingApp: description: Installed application. type: object discriminator: propertyName: type mapping: stripe: '#/components/schemas/BillingAppStripe' sandbox: '#/components/schemas/BillingAppSandbox' external_invoicing: '#/components/schemas/BillingAppExternalInvoicing' oneOf: - $ref: '#/components/schemas/BillingAppStripe' - $ref: '#/components/schemas/BillingAppSandbox' - $ref: '#/components/schemas/BillingAppExternalInvoicing' BillingAppCustomerData: description: App customer data. type: object properties: stripe: description: Used if the customer has a linked Stripe app. type: object additionalProperties: false properties: customer_id: description: The Stripe customer ID used. type: string example: cus_1234567890 title: Stripe customer ID default_payment_method_id: description: The Stripe default payment method ID. type: string example: pm_1234567890 title: Stripe default payment method ID labels: description: Labels for this Stripe integration on the customer. 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 maxProperties: 50 title: Labels title: Stripe external_invoicing: description: Used if the customer has a linked external invoicing app. type: object additionalProperties: false properties: labels: description: Labels for this external invoicing integration on the customer. 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 maxProperties: 50 title: Labels title: External invoicing additionalProperties: false BillingAppExternalInvoicing: description: |- External Invoicing app enables integration with third-party invoicing or payment system. The app supports a bi-directional synchronization pattern where OpenMeter Billing manages the invoice lifecycle while the external system handles invoice presentation and payment collection. Integration workflow: 1. The billing system creates invoices and transitions them through lifecycle states (draft → issuing → issued) 2. The integration receives webhook notifications about invoice state changes 3. The integration calls back to provide external system IDs and metadata 4. The integration reports payment events back via the payment status API State synchronization is controlled by hooks that pause invoice progression until the external system confirms synchronization via API callbacks. type: object properties: id: description: ULID (Universally Unique Lexicographically Sortable Identifier). type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: ULID name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' created_at: description: An ISO-8601 timestamp representation of entity creation date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time updated_at: description: An ISO-8601 timestamp representation of entity last update date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time deleted_at: description: An ISO-8601 timestamp representation of entity deletion date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time type: description: The app type. type: string enum: - external_invoicing readOnly: true definition: description: The app catalog definition that this installed app is based on. type: object example: type: stripe name: Stripe description: Stripe integration allows you to collect payments with Stripe. additionalProperties: false properties: type: description: Type of the app. type: string enum: - sandbox - stripe - external_invoicing readOnly: true x-speakeasy-unknown-values: allow name: description: Name of the app. type: string readOnly: true description: description: Description of the app. type: string readOnly: true readOnly: true required: - type - name - description status: description: Status of the app connection. type: string enum: - ready - unauthorized readOnly: true x-speakeasy-unknown-values: allow enable_draft_sync_hook: description: |- Enable draft synchronization hook. When enabled, invoices will pause at the draft state and wait for the integration to call the draft synchronized endpoint before progressing to the issuing state. This allows the external system to validate and prepare the invoice data. When disabled, invoices automatically progress through the draft state based on the configured workflow timing. type: boolean enable_issuing_sync_hook: description: |- Enable issuing synchronization hook. When enabled, invoices will pause at the issuing state and wait for the integration to call the issuing synchronized endpoint before progressing to the issued state. This ensures the external invoicing system has successfully created and finalized the invoice before it is marked as issued. When disabled, invoices automatically progress through the issuing state and are immediately marked as issued. type: boolean additionalProperties: false required: - id - name - created_at - updated_at - type - definition - status - enable_draft_sync_hook - enable_issuing_sync_hook BillingAppReference: description: App reference. type: object properties: id: description: The ID of the app. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: ULID additionalProperties: false required: - id BillingAppSandbox: description: Sandbox app can be used for testing billing features. type: object properties: id: description: ULID (Universally Unique Lexicographically Sortable Identifier). type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: ULID name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' created_at: description: An ISO-8601 timestamp representation of entity creation date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time updated_at: description: An ISO-8601 timestamp representation of entity last update date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time deleted_at: description: An ISO-8601 timestamp representation of entity deletion date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time type: description: The app type. type: string enum: - sandbox readOnly: true definition: description: The app catalog definition that this installed app is based on. type: object example: type: stripe name: Stripe description: Stripe integration allows you to collect payments with Stripe. additionalProperties: false properties: type: description: Type of the app. type: string enum: - sandbox - stripe - external_invoicing readOnly: true x-speakeasy-unknown-values: allow name: description: Name of the app. type: string readOnly: true description: description: Description of the app. type: string readOnly: true readOnly: true required: - type - name - description status: description: Status of the app connection. type: string enum: - ready - unauthorized readOnly: true x-speakeasy-unknown-values: allow additionalProperties: false required: - id - name - created_at - updated_at - type - definition - status BillingAppStripe: description: Stripe app. type: object properties: id: description: ULID (Universally Unique Lexicographically Sortable Identifier). type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: ULID name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' created_at: description: An ISO-8601 timestamp representation of entity creation date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time updated_at: description: An ISO-8601 timestamp representation of entity last update date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time deleted_at: description: An ISO-8601 timestamp representation of entity deletion date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time type: description: The app type. type: string enum: - stripe readOnly: true definition: description: The app catalog definition that this installed app is based on. type: object example: type: stripe name: Stripe description: Stripe integration allows you to collect payments with Stripe. additionalProperties: false properties: type: description: Type of the app. type: string enum: - sandbox - stripe - external_invoicing readOnly: true x-speakeasy-unknown-values: allow name: description: Name of the app. type: string readOnly: true description: description: Description of the app. type: string readOnly: true readOnly: true required: - type - name - description status: description: Status of the app connection. type: string enum: - ready - unauthorized readOnly: true x-speakeasy-unknown-values: allow account_id: description: The Stripe account ID associated with the connected Stripe account. type: string readOnly: true livemode: description: Indicates whether the app is connected to a live Stripe account. type: boolean readOnly: true masked_api_key: description: The masked Stripe API key that only exposes the first and last few characters. type: string readOnly: true additionalProperties: false required: - id - name - created_at - updated_at - type - definition - status - account_id - livemode - masked_api_key BillingAppStripeCreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreementPosition: description: Position of payment method reuse agreement in the UI. type: string enum: - auto - hidden x-speakeasy-unknown-values: allow BillingAppStripeCreateCheckoutSessionResult: description: |- Result of creating a Stripe Checkout Session. Contains all the information needed to redirect customers to the checkout or initialize an embedded checkout flow. type: object properties: customer_id: description: The customer ID in the billing system. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: ULID stripe_customer_id: description: The Stripe customer ID. type: string session_id: description: The Stripe checkout session ID. type: string setup_intent_id: description: The setup intent ID created for collecting the payment method. type: string client_secret: description: |- Client secret for initializing Stripe.js on the client side. Required for embedded checkout sessions. See: https://docs.stripe.com/payments/checkout/custom-success-page type: string client_reference_id: description: |- The client reference ID provided in the request. Useful for reconciling the session with your internal systems. type: string customer_email: description: Customer's email address if provided to Stripe. type: string currency: description: Currency code for the checkout session. type: string example: USD maxLength: 3 minLength: 3 pattern: '^[A-Z]{3}$' created_at: description: Timestamp when the checkout session was created. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: RFC3339 Date-Time expires_at: description: Timestamp when the checkout session will expire. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: RFC3339 Date-Time metadata: description: Metadata attached to the checkout session. type: object additionalProperties: type: string status: description: |- The status of the checkout session. See: https://docs.stripe.com/api/checkout/sessions/object#checkout_session_object-status type: string url: description: URL to redirect customers to the checkout page (for hosted mode). type: string mode: description: |- Mode of the checkout session. Currently only "setup" mode is supported for collecting payment methods. type: string enum: - setup cancel_url: description: The cancel URL where customers are redirected if they cancel. type: string success_url: description: The success URL where customers are redirected after completion. type: string return_url: description: The return URL for embedded sessions after authentication. type: string additionalProperties: false required: - customer_id - stripe_customer_id - session_id - setup_intent_id - created_at - mode BillingAppStripeCreateCheckoutSessionTaxIdCollectionRequired: description: Tax ID collection requirement level. type: string enum: - if_supported - never x-speakeasy-unknown-values: allow BillingAppStripeCreateCustomerPortalSessionResult: description: |- Result of creating a [Stripe Customer Portal Session](https://docs.stripe.com/api/customer_portal/sessions/object). Contains all the information needed to redirect the customer to the Stripe Customer Portal. type: object properties: id: description: |- The ID of the customer portal session. See: https://docs.stripe.com/api/customer_portal/sessions/object#portal_session_object-id type: string stripe_customer_id: description: The ID of the stripe customer. type: string configuration_id: description: |- Configuration used to customize the customer portal. See: https://docs.stripe.com/api/customer_portal/sessions/object#portal_session_object-configuration type: string livemode: description: |- Livemode. See: https://docs.stripe.com/api/customer_portal/sessions/object#portal_session_object-livemode type: boolean created_at: description: |- Created at. See: https://docs.stripe.com/api/customer_portal/sessions/object#portal_session_object-created type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: RFC3339 Date-Time return_url: description: |- Return URL. See: https://docs.stripe.com/api/customer_portal/sessions/object#portal_session_object-return_url type: string locale: description: |- The IETF language tag of the locale customer portal is displayed in. See: https://docs.stripe.com/api/customer_portal/sessions/object#portal_session_object-locale type: string url: description: |- The URL to redirect the customer to after they have completed their requested actions. type: string additionalProperties: false required: - id - stripe_customer_id - configuration_id - livemode - created_at - return_url - locale - url BillingCharge: description: Customer charge. type: object discriminator: propertyName: type mapping: flat_fee: '#/components/schemas/BillingChargeFlatFee' usage_based: '#/components/schemas/BillingChargeUsageBased' oneOf: - $ref: '#/components/schemas/BillingChargeFlatFee' - $ref: '#/components/schemas/BillingChargeUsageBased' title: Customer charge BillingChargeFlatFee: description: A flat fee charge for a customer. type: object properties: id: description: ULID (Universally Unique Lexicographically Sortable Identifier). type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: ULID name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' created_at: description: An ISO-8601 timestamp representation of entity creation date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time updated_at: description: An ISO-8601 timestamp representation of entity last update date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time deleted_at: description: An ISO-8601 timestamp representation of entity deletion date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time type: description: The type of the charge. type: string enum: - flat_fee title: Type customer: description: The customer owning the charge. type: object additionalProperties: false properties: id: description: The ID of the customer. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: ULID readOnly: true required: - id title: Customer lifecycle_controller: description: |- Indicates whether the charge lifecycle is controlled by OpenMeter or manually overridden by the API user. type: string enum: - system - manual readOnly: true title: Lifecycle controller x-speakeasy-unknown-values: allow subscription: description: |- The subscription that originated the charge, when the charge was created from a subscription item. type: object additionalProperties: false properties: id: description: The ID of the subscription. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: Subscription ID phase: description: The phase of the subscription. type: object additionalProperties: false properties: id: description: The ID of the phase. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: Phase ID item: description: The item of the phase. type: object additionalProperties: false properties: id: description: The ID of the item. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: Item ID readOnly: true required: - id title: Item ID readOnly: true required: - id - item title: Phase ID readOnly: true required: - id - phase title: Subscription currency: description: The currency of the charge. type: string example: USD maxLength: 3 minLength: 3 pattern: '^[A-Z]{3}$' title: Currency status: description: The lifecycle status of the charge. type: string enum: - created - active - final - deleted readOnly: true title: Status x-speakeasy-unknown-values: allow invoice_at: description: The timestamp when the charge is intended to be invoiced. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: Invoice at service_period: description: The effective service period covered by the charge. type: object additionalProperties: false properties: from: description: |- The start of the period. The period is inclusive at the start. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: Start to: description: |- The end of the period. The period is exclusive at the end. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: End required: - from - to title: Service period full_service_period: description: 'The full, unprorated service period of the charge.' type: object additionalProperties: false properties: from: description: |- The start of the period. The period is inclusive at the start. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: Start to: description: |- The end of the period. The period is exclusive at the end. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: End readOnly: true required: - from - to title: Full service period billing_period: description: The billing period the charge belongs to. type: object additionalProperties: false properties: from: description: |- The start of the period. The period is inclusive at the start. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: Start to: description: |- The end of the period. The period is exclusive at the end. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: End readOnly: true required: - from - to title: Billing period advance_after: description: |- The earliest time when the charge should be advanced again by background processing. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: Advance after unique_reference_id: description: Unique reference ID of the charge. type: string title: Unique reference ID settlement_mode: description: Settlement mode of the charge. type: string enum: - credit_then_invoice - credit_only title: Settlement mode x-speakeasy-unknown-values: allow tax_config: description: Tax configuration of the charge. type: object additionalProperties: false properties: behavior: description: |- Tax behavior. If not specified the billing profile is used to determine the tax behavior. If not specified in the billing profile, the provider's default behavior is used. type: string enum: - inclusive - exclusive title: Tax behavior x-speakeasy-unknown-values: allow stripe: description: Stripe tax config. type: object additionalProperties: false deprecated: true properties: code: description: 'Product [tax code](https://docs.stripe.com/tax/tax-codes).' type: string example: txcd_10000000 pattern: '^txcd_\d{8}$' title: Tax code required: - code title: Stripe tax config external_invoicing: description: External invoicing tax config. type: object additionalProperties: false deprecated: true properties: code: description: The tax code should be interpreted by the external invoicing provider. type: string maxLength: 64 title: Tax code required: - code title: External invoicing tax config tax_code_id: description: Tax code ID. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH deprecated: true pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: Tax code ID tax_code: description: |- Tax code reference. When both `tax_code` and `tax_code_id` are provided, `tax_code` takes precedence. When `stripe.code` is also provided, `tax_code` still wins and `stripe.code` is ignored. type: object additionalProperties: false properties: id: $ref: '#/components/schemas/ULID' required: - id title: Tax code title: Tax configuration payment_term: description: Payment term of the flat fee charge. type: string enum: - in_advance - in_arrears title: Payment term x-speakeasy-unknown-values: allow discounts: description: The discounts applied to the charge. type: object additionalProperties: false properties: percentage: description: Percentage discount applied to the price (0–100). type: number maximum: 100 minimum: 0 title: Discounts feature_key: description: 'The feature associated with the charge, when applicable.' type: string title: Feature key proration_configuration: description: The proration configuration of the charge. type: object additionalProperties: false properties: mode: description: The proration mode of the rate card. type: string enum: - no_proration - prorate_prices title: Proration mode x-speakeasy-unknown-values: allow required: - mode title: Proration configuration amount_after_proration: description: The amount after proration of the charge. type: object additionalProperties: false properties: amount: $ref: '#/components/schemas/Numeric' currency: $ref: '#/components/schemas/CurrencyCode' readOnly: true required: - amount - currency title: Amount after proration price: description: The price of the charge. type: object discriminator: propertyName: type mapping: free: '#/components/schemas/BillingPriceFree' flat: '#/components/schemas/BillingPriceFlat' unit: '#/components/schemas/BillingPriceUnit' graduated: '#/components/schemas/BillingPriceGraduated' volume: '#/components/schemas/BillingPriceVolume' oneOf: - $ref: '#/components/schemas/BillingPriceFree' - $ref: '#/components/schemas/BillingPriceFlat' - $ref: '#/components/schemas/BillingPriceUnit' - $ref: '#/components/schemas/BillingPriceGraduated' - $ref: '#/components/schemas/BillingPriceVolume' readOnly: true title: Price additionalProperties: false required: - id - name - created_at - updated_at - type - customer - lifecycle_controller - currency - status - invoice_at - service_period - full_service_period - billing_period - settlement_mode - payment_term - proration_configuration - amount_after_proration - price title: Flat fee charge BillingChargeUsageBased: description: A usage-based charge for a customer. type: object properties: id: description: ULID (Universally Unique Lexicographically Sortable Identifier). type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: ULID name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' created_at: description: An ISO-8601 timestamp representation of entity creation date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time updated_at: description: An ISO-8601 timestamp representation of entity last update date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time deleted_at: description: An ISO-8601 timestamp representation of entity deletion date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time type: description: The type of the charge. type: string enum: - usage_based title: Type customer: description: The customer owning the charge. type: object additionalProperties: false properties: id: description: The ID of the customer. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: ULID readOnly: true required: - id title: Customer lifecycle_controller: description: |- Indicates whether the charge lifecycle is controlled by OpenMeter or manually overridden by the API user. type: string enum: - system - manual readOnly: true title: Lifecycle controller x-speakeasy-unknown-values: allow subscription: description: |- The subscription that originated the charge, when the charge was created from a subscription item. type: object additionalProperties: false properties: id: description: The ID of the subscription. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: Subscription ID phase: description: The phase of the subscription. type: object additionalProperties: false properties: id: description: The ID of the phase. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: Phase ID item: description: The item of the phase. type: object additionalProperties: false properties: id: description: The ID of the item. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: Item ID readOnly: true required: - id title: Item ID readOnly: true required: - id - item title: Phase ID readOnly: true required: - id - phase title: Subscription currency: description: The currency of the charge. type: string example: USD maxLength: 3 minLength: 3 pattern: '^[A-Z]{3}$' title: Currency status: description: The lifecycle status of the charge. type: string enum: - created - active - final - deleted readOnly: true title: Status x-speakeasy-unknown-values: allow invoice_at: description: The timestamp when the charge is intended to be invoiced. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: Invoice at service_period: description: The effective service period covered by the charge. type: object additionalProperties: false properties: from: description: |- The start of the period. The period is inclusive at the start. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: Start to: description: |- The end of the period. The period is exclusive at the end. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: End required: - from - to title: Service period full_service_period: description: 'The full, unprorated service period of the charge.' type: object additionalProperties: false properties: from: description: |- The start of the period. The period is inclusive at the start. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: Start to: description: |- The end of the period. The period is exclusive at the end. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: End readOnly: true required: - from - to title: Full service period billing_period: description: The billing period the charge belongs to. type: object additionalProperties: false properties: from: description: |- The start of the period. The period is inclusive at the start. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: Start to: description: |- The end of the period. The period is exclusive at the end. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: End readOnly: true required: - from - to title: Billing period advance_after: description: |- The earliest time when the charge should be advanced again by background processing. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: Advance after unique_reference_id: description: Unique reference ID of the charge. type: string title: Unique reference ID settlement_mode: description: Settlement mode of the charge. type: string enum: - credit_then_invoice - credit_only title: Settlement mode x-speakeasy-unknown-values: allow tax_config: description: Tax configuration of the charge. type: object additionalProperties: false properties: behavior: description: |- Tax behavior. If not specified the billing profile is used to determine the tax behavior. If not specified in the billing profile, the provider's default behavior is used. type: string enum: - inclusive - exclusive title: Tax behavior x-speakeasy-unknown-values: allow stripe: description: Stripe tax config. type: object additionalProperties: false deprecated: true properties: code: description: 'Product [tax code](https://docs.stripe.com/tax/tax-codes).' type: string example: txcd_10000000 pattern: '^txcd_\d{8}$' title: Tax code required: - code title: Stripe tax config external_invoicing: description: External invoicing tax config. type: object additionalProperties: false deprecated: true properties: code: description: The tax code should be interpreted by the external invoicing provider. type: string maxLength: 64 title: Tax code required: - code title: External invoicing tax config tax_code_id: description: Tax code ID. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH deprecated: true pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: Tax code ID tax_code: description: |- Tax code reference. When both `tax_code` and `tax_code_id` are provided, `tax_code` takes precedence. When `stripe.code` is also provided, `tax_code` still wins and `stripe.code` is ignored. type: object additionalProperties: false properties: id: $ref: '#/components/schemas/ULID' required: - id title: Tax code title: Tax configuration discounts: description: Discounts applied to the usage-based charge. type: object additionalProperties: false properties: percentage: description: Percentage discount applied to the price (0–100). type: number maximum: 100 minimum: 0 usage: description: |- Number of usage units granted free before billing starts. Only applies to usage-based lines (not flat fees). Usage is treated as zero until this amount is exhausted. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' title: Discounts feature_key: description: The feature associated with the charge. type: string title: Feature key totals: description: Aggregated booked and realtime totals for the charge. type: object additionalProperties: false properties: booked: description: The amount of the charge already booked to the internal accounting system. type: object additionalProperties: false properties: amount: description: 'The total value of the resource before taxes, discounts and commitments.' type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' readOnly: true title: Amount taxes_total: description: The total tax amount applied to the resource. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' readOnly: true title: Taxes total taxes_inclusive_total: description: The total tax amount already included in the resource amount. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' readOnly: true title: Inclusive taxes total taxes_exclusive_total: description: The total tax amount added on top of the resource amount. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' readOnly: true title: Exclusive taxes total charges_total: description: The total amount contributed by additional charges. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' readOnly: true title: Charges total discounts_total: description: The total amount deducted through discounts. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' readOnly: true title: Discounts total credits_total: description: The total amount deducted through credits before taxes are applied. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' readOnly: true title: Credits total total: description: 'The final total value of the resource after taxes, discounts and commitments.' type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' readOnly: true title: Total readOnly: true required: - amount - taxes_total - taxes_inclusive_total - taxes_exclusive_total - charges_total - discounts_total - credits_total - total title: Booked realtime: description: |- The realtime amount of the charge. Requires the `realtime_usage` expand. type: object additionalProperties: false properties: amount: description: 'The total value of the resource before taxes, discounts and commitments.' type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' readOnly: true title: Amount taxes_total: description: The total tax amount applied to the resource. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' readOnly: true title: Taxes total taxes_inclusive_total: description: The total tax amount already included in the resource amount. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' readOnly: true title: Inclusive taxes total taxes_exclusive_total: description: The total tax amount added on top of the resource amount. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' readOnly: true title: Exclusive taxes total charges_total: description: The total amount contributed by additional charges. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' readOnly: true title: Charges total discounts_total: description: The total amount deducted through discounts. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' readOnly: true title: Discounts total credits_total: description: The total amount deducted through credits before taxes are applied. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' readOnly: true title: Credits total total: description: 'The final total value of the resource after taxes, discounts and commitments.' type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' readOnly: true title: Total readOnly: true required: - amount - taxes_total - taxes_inclusive_total - taxes_exclusive_total - charges_total - discounts_total - credits_total - total title: Realtime totals readOnly: true required: - booked title: Totals for the charge price: description: The price of the charge. type: object discriminator: propertyName: type mapping: free: '#/components/schemas/BillingPriceFree' flat: '#/components/schemas/BillingPriceFlat' unit: '#/components/schemas/BillingPriceUnit' graduated: '#/components/schemas/BillingPriceGraduated' volume: '#/components/schemas/BillingPriceVolume' oneOf: - $ref: '#/components/schemas/BillingPriceFree' - $ref: '#/components/schemas/BillingPriceFlat' - $ref: '#/components/schemas/BillingPriceUnit' - $ref: '#/components/schemas/BillingPriceGraduated' - $ref: '#/components/schemas/BillingPriceVolume' title: Price additionalProperties: false required: - id - name - created_at - updated_at - type - customer - lifecycle_controller - currency - status - invoice_at - service_period - full_service_period - billing_period - settlement_mode - feature_key - totals - price title: Usage-based charge BillingChargesExpand: description: |- Expands for customer charges. Values: - `real_time_usage`: The charge's real-time usage. type: string enum: - real_time_usage title: Customer charge expands BillingCreditAdjustment: description: |- A credit adjustment can be used to make manual adjustments to a customer's credit balance. Supported use-cases: - Usage correction type: object properties: name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' additionalProperties: false required: - name title: Credit adjustment BillingCreditAvailabilityPolicy: description: |- When credits become available for consumption. - `on_creation`: Credits are available as soon as the grant is created. - `on_authorization`: Credits are available once the payment is authorized. - `on_settlement`: Credits are available once the payment is settled. type: string enum: - on_creation title: Credit availability policy BillingCreditBalances: description: The balances of the credits of a customer. type: object properties: retrieved_at: description: The timestamp of the balance retrieval. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time balances: description: The balances by currencies. type: array items: $ref: '#/components/schemas/CreditBalance' readOnly: true additionalProperties: false required: - retrieved_at - balances title: Credit balances BillingCreditGrant: description: |- A credit grant allocates credits to a customer. Credits are drawn down against charges according to the settlement mode configured on the rate card. type: object properties: id: description: ULID (Universally Unique Lexicographically Sortable Identifier). type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: ULID name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' created_at: description: An ISO-8601 timestamp representation of entity creation date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time updated_at: description: An ISO-8601 timestamp representation of entity last update date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time deleted_at: description: An ISO-8601 timestamp representation of entity deletion date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time funding_method: description: Funding method of the grant. type: string enum: - none - invoice - external title: Credit funding method x-speakeasy-unknown-values: allow currency: description: Fiat or custom currency code. type: string example: USD maxLength: 3 minLength: 3 pattern: '^[A-Z]{3}$' amount: description: Granted credit amount. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' purchase: description: Present when a funding workflow applies (funding_method is not `none`). type: object additionalProperties: false properties: currency: description: Currency of the purchase amount. type: string example: USD maxLength: 3 minLength: 3 pattern: '^[A-Z]{3}$' per_unit_cost_basis: description: |- Cost basis per credit unit used to calculate the purchase amount. If `per_unit_cost_basis` is 0.50 and credit amount is $100.00, the total charge is $50.00. The value must be greater than 0. If the cost basis is 0, use `funding_method=none` instead. Defaults to 1.0. type: string default: '1.0' pattern: '^\-?[0-9]+(\.[0-9]+)?$' amount: description: The purchase amount. Calculated from `per_unit_cost_basis` and credit `amount`. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' readOnly: true availability_policy: description: |- Controls when credits become available for consumption. Defaults to `on_creation`. type: string default: on_creation enum: - on_creation title: Credit availability policy settlement_status: description: Current payment settlement status. type: string enum: - pending - authorized - settled readOnly: true title: Credit purchase payment settlement status x-speakeasy-unknown-values: allow required: - currency - amount tax_config: description: |- Tax configuration for the grant. For `invoice` and `external` funding methods, tax configuration should be provided to ensure correct revenue recognition. When not provided, the default credit grant tax code is applied, if that's not set the global default taxcode is used. type: object additionalProperties: false properties: behavior: description: Tax behavior applied to the invoice line item. type: string enum: - inclusive - exclusive x-speakeasy-unknown-values: allow tax_code: description: Tax code applied to the invoice line item. type: object additionalProperties: false properties: id: $ref: '#/components/schemas/ULID' required: - id title: Tax configuration for a credit grant invoice: description: Available when `funding_method` is `invoice`. type: object additionalProperties: false properties: id: description: Identifier of the invoice associated with the grant. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: ULID line: description: Identifier of the invoice line associated with the grant. type: object additionalProperties: false properties: id: $ref: '#/components/schemas/ULID' readOnly: true required: - id readOnly: true filters: $ref: '#/components/schemas/BillingCreditGrantFilters' priority: description: Draw-down priority of the grant. Lower values have higher priority. type: integer format: int16 default: 10 maximum: 1000 minimum: 1 effective_at: description: |- The timestamp when the credit grant becomes effective. Defaults to the current date and time. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: RFC3339 Date-Time key: description: |- Idempotency key for the credit grant creation request. When provided, reusing the same key returns an HTTP 409 Conflict instead of creating a duplicate grant, which makes create requests safe to retry. type: string example: 019ae40f-4258-7f15-9491-842f42a7d6ac maxLength: 256 minLength: 1 title: External Resource Key expires_at: description: |- The timestamp when the credit grant expires. Calculated from the grant effective time and `expires_after` if provided. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time voided_at: description: Timestamp when the grant was voided. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time status: description: Current lifecycle status of the grant. type: string enum: - pending - active - expired - voided readOnly: true title: Credit grant lifecycle status x-speakeasy-unknown-values: allow additionalProperties: false required: - id - name - created_at - updated_at - funding_method - currency - amount - status title: Credit grant BillingCreditGrantFilters: description: Filters for the credit grant. type: object properties: features: description: |- Limit the credit grant to specific features. If no features are specified, the credit grant can be used for any feature. type: array items: $ref: '#/components/schemas/ResourceKey' example: - input_tokens - output_tokens additionalProperties: false BillingCreditPurchasePaymentSettlementStatus: description: |- Credit purchase payment settlement status. - `pending`: Payment has been initiated and is not yet authorized. - `authorized`: Payment has been authorized. - `settled`: Payment has been settled. type: string enum: - pending - authorized - settled title: Credit purchase payment settlement status x-speakeasy-unknown-values: allow BillingCreditTransaction: description: |- A credit transaction represents a single credit movement on the customer's balance. Credit transactions are immutable. type: object properties: id: description: ULID (Universally Unique Lexicographically Sortable Identifier). type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: ULID name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' created_at: description: An ISO-8601 timestamp representation of entity creation date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time booked_at: description: The date and time the transaction was booked. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time type: description: The type of credit transaction. type: string enum: - funded - consumed - expired readOnly: true x-speakeasy-unknown-values: allow currency: description: Fiat or custom currency code. type: string example: USD maxLength: 3 minLength: 3 pattern: '^[A-Z]{3}$' amount: description: |- Signed amount of the credit movement. Positive values add balance, negative values reduce balance. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' readOnly: true available_balance: description: The available balance before and after the transaction. type: object additionalProperties: false properties: before: $ref: '#/components/schemas/Numeric' after: $ref: '#/components/schemas/Numeric' readOnly: true required: - before - after additionalProperties: false required: - id - name - created_at - booked_at - type - currency - amount - available_balance title: Credit transaction BillingCustomer: description: |- Customers can be individuals or organizations that can subscribe to plans and have access to features. type: object properties: id: description: ULID (Universally Unique Lexicographically Sortable Identifier). type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: ULID name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' created_at: description: An ISO-8601 timestamp representation of entity creation date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time updated_at: description: An ISO-8601 timestamp representation of entity last update date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time deleted_at: description: An ISO-8601 timestamp representation of entity deletion date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time key: $ref: '#/components/schemas/ExternalResourceKey' usage_attribution: description: Mapping to attribute metered usage to the customer by the event subject. type: object additionalProperties: false properties: subject_keys: description: |- The subjects that are attributed to the customer. Can be empty when no usage event subjects are associated with the customer. type: array items: $ref: '#/components/schemas/UsageAttributionSubjectKey' minItems: 0 title: Subject Keys required: - subject_keys title: Usage Attribution primary_email: description: The primary email address of the customer. type: string title: Primary Email currency: description: 'Currency of the customer. Used for billing, tax and invoicing.' type: string example: USD maxLength: 3 minLength: 3 pattern: '^[A-Z]{3}$' title: Currency billing_address: description: The billing address of the customer. Used for tax and invoicing. type: object additionalProperties: false properties: country: description: |- Country code in [ISO 3166-1](https://www.iso.org/iso-3166-country-codes.html) alpha-2 format. type: string example: US maxLength: 2 minLength: 2 pattern: '^[A-Z]{2}$' title: Country postal_code: description: Postal code. type: string title: Postal Code state: description: State or province. type: string title: State city: description: City. type: string title: City line1: description: First line of the address. type: string title: Line 1 line2: description: Second line of the address. type: string title: Line 2 phone_number: description: Phone number. type: string title: Phone Number title: Billing Address additionalProperties: false required: - id - name - created_at - updated_at - key BillingCustomerData: description: Billing customer data. type: object properties: billing_profile: description: |- The billing profile for the customer. If not provided, the default billing profile will be used. type: object additionalProperties: false properties: id: description: The ID of the billing profile. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: ULID required: - id title: Billing profile app_data: description: App customer data. type: object additionalProperties: false properties: stripe: description: Used if the customer has a linked Stripe app. type: object additionalProperties: false properties: customer_id: description: The Stripe customer ID used. type: string example: cus_1234567890 title: Stripe customer ID default_payment_method_id: description: The Stripe default payment method ID. type: string example: pm_1234567890 title: Stripe default payment method ID labels: description: Labels for this Stripe integration on the customer. 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 maxProperties: 50 title: Labels title: Stripe external_invoicing: description: Used if the customer has a linked external invoicing app. type: object additionalProperties: false properties: labels: description: Labels for this external invoicing integration on the customer. 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 maxProperties: 50 title: Labels title: External invoicing title: App customer data additionalProperties: false BillingCustomerStripeCreateCheckoutSessionRequest: description: |- Request to create a Stripe Checkout Session for the customer. Checkout Sessions are used to collect payment method information from customers in a secure, Stripe-hosted interface. This integration uses setup mode to collect payment methods that can be charged later for subscription billing. type: object properties: stripe_options: description: |- Options for configuring the Stripe Checkout Session. These options are passed directly to Stripe's [checkout session creation API](https://docs.stripe.com/api/checkout/sessions/create). type: object additionalProperties: false properties: billing_address_collection: description: |- Whether to collect the customer's billing address. Defaults to auto, which only collects the address when necessary for tax calculation. type: string default: auto enum: - auto - required x-speakeasy-unknown-values: allow cancel_url: description: |- URL to redirect customers who cancel the checkout session. Not allowed when ui_mode is "embedded". type: string client_reference_id: description: |- Unique reference string for reconciling sessions with internal systems. Can be a customer ID, cart ID, or any other identifier. type: string customer_update: description: Controls which customer fields can be updated by the checkout session. type: object additionalProperties: false properties: address: description: |- Whether to save the billing address to customer.address. Defaults to "never". type: string default: never enum: - auto - never x-speakeasy-unknown-values: allow name: description: |- Whether to save the customer name to customer.name. Defaults to "never". type: string default: never enum: - auto - never x-speakeasy-unknown-values: allow shipping: description: |- Whether to save shipping information to customer.shipping. Defaults to "never". type: string default: never enum: - auto - never x-speakeasy-unknown-values: allow consent_collection: description: Configuration for collecting customer consent during checkout. type: object additionalProperties: false properties: payment_method_reuse_agreement: description: Controls the visibility of payment method reuse agreement. type: object additionalProperties: false properties: position: description: Position and visibility of the payment method reuse agreement. type: string enum: - auto - hidden x-speakeasy-unknown-values: allow promotions: description: |- Enables collection of promotional communication consent. Only available to US merchants. When set to "auto", Checkout determines whether to show the option based on the customer's locale. type: string enum: - auto - none x-speakeasy-unknown-values: allow terms_of_service: description: |- Requires customers to accept terms of service before payment. Requires a valid terms of service URL in your Stripe Dashboard settings. type: string enum: - none - required x-speakeasy-unknown-values: allow currency: description: |- Three-letter ISO 4217 currency code in uppercase. Required for payment mode sessions. Optional for setup mode sessions. type: string example: USD maxLength: 3 minLength: 3 pattern: '^[A-Z]{3}$' custom_text: description: Custom text to display during checkout at various stages. type: object additionalProperties: false properties: after_submit: description: Text displayed after the payment confirmation button. type: object additionalProperties: false properties: message: description: The custom message text (max 1200 characters). type: string maxLength: 1200 shipping_address: description: Text displayed alongside shipping address collection. type: object additionalProperties: false properties: message: description: The custom message text (max 1200 characters). type: string maxLength: 1200 submit: description: Text displayed alongside the payment confirmation button. type: object additionalProperties: false properties: message: description: The custom message text (max 1200 characters). type: string maxLength: 1200 terms_of_service_acceptance: description: Text replacing the default terms of service agreement text. type: object additionalProperties: false properties: message: description: The custom message text (max 1200 characters). type: string maxLength: 1200 expires_at: description: |- Unix timestamp when the checkout session expires. Can be 30 minutes to 24 hours from creation. Defaults to 24 hours. type: integer format: int64 locale: description: |- IETF language tag for the checkout UI locale. If blank or "auto", uses the browser's locale. Example: "en", "fr", "de". type: string metadata: description: |- Set of key-value pairs to attach to the checkout session. Useful for storing additional structured information. type: object additionalProperties: type: string return_url: description: |- Return URL for embedded checkout sessions after payment authentication. Required if ui_mode is "embedded" and redirect-based payment methods are enabled. type: string success_url: description: |- Success URL to redirect customers after completing payment or setup. Not allowed when ui_mode is "embedded". See: https://docs.stripe.com/payments/checkout/custom-success-page type: string ui_mode: description: |- The UI mode for the checkout session. "hosted" displays a Stripe-hosted page. "embedded" integrates directly into your app. Defaults to "hosted". type: string default: hosted enum: - embedded - hosted x-speakeasy-unknown-values: allow payment_method_types: description: |- List of payment method types to enable (e.g., "card", "us_bank_account"). If not specified, Stripe enables all relevant payment methods. type: array items: type: string redirect_on_completion: description: |- Redirect behavior for embedded checkout sessions. Controls when to redirect users after completion. See: https://docs.stripe.com/payments/checkout/custom-success-page?payment-ui=embedded-form type: string enum: - always - if_required - never x-speakeasy-unknown-values: allow tax_id_collection: description: Configuration for collecting tax IDs during checkout. type: object additionalProperties: false properties: enabled: description: |- Enable tax ID collection during checkout. Defaults to false. type: boolean default: false required: description: |- Whether tax ID collection is required. Defaults to "never". type: string default: never enum: - if_supported - never x-speakeasy-unknown-values: allow additionalProperties: false required: - stripe_options BillingCustomerStripeCreateCustomerPortalSessionRequest: description: |- Request to create a Stripe Customer Portal Session for the customer. Useful to redirect the customer to the Stripe Customer Portal to manage their payment methods, change their billing address and access their invoice history. Only returns URL if the customer billing profile is linked to a stripe app and customer. type: object properties: stripe_options: description: Options for configuring the Stripe Customer Portal Session. type: object additionalProperties: false properties: configuration_id: description: |- The ID of an existing [Stripe configuration](https://docs.stripe.com/api/customer_portal/configurations) to use for this session, describing its functionality and features. If not specified, the session uses the default configuration. type: string locale: description: |- The IETF [language tag](https://docs.stripe.com/api/customer_portal/sessions/create#create_portal_session-locale) of the locale customer portal is displayed in. If blank or `auto`, the customer's preferred_locales or browser's locale is used. type: string return_url: description: |- The [URL to redirect](https://docs.stripe.com/api/customer_portal/sessions/create#create_portal_session-return_url) the customer to after they have completed their requested actions. type: string additionalProperties: false required: - stripe_options BillingEntitlementAccessResult: description: Entitlement access result. type: object properties: type: description: The type of the entitlement. type: string example: static enum: - metered - static - boolean readOnly: true x-speakeasy-unknown-values: allow feature_key: description: The feature key of the entitlement. type: string example: available_models maxLength: 64 minLength: 1 pattern: '^[a-z0-9]+(?:_[a-z0-9]+)*$' readOnly: true title: Resource Key has_access: description: |- Whether the customer has access to the feature. Always true for `boolean` and `static` entitlements. Depends on balance for `metered` entitlements. type: boolean example: true readOnly: true config: description: |- Only available for static entitlements. Config is the JSON parsable configuration of the entitlement. Useful to describe per customer configuration. type: string example: '{ "availableModels": ["gpt-5", "gpt-4o"] }' readOnly: true additionalProperties: false required: - type - feature_key - has_access BillingFeatureLLMUnitCost: description: |- LLM cost lookup configuration. Each dimension (provider, model, token type) can be specified as either a static value or a meter group-by property name (mutually exclusive). type: object properties: type: description: The type discriminator for LLM unit cost. type: string enum: - llm provider_property: description: |- Meter group-by property that holds the LLM provider. Use this when the meter has a group-by dimension for provider. Mutually exclusive with `provider`. type: string title: Provider property provider: description: |- Static LLM provider value (e.g., "openai", "anthropic"). Use this when the feature tracks a single provider. Mutually exclusive with `provider_property`. type: string title: Provider model_property: description: |- Meter group-by property that holds the model ID. Use this when the meter has a group-by dimension for model. Mutually exclusive with `model`. type: string title: Model property model: description: |- Static model ID value (e.g., "gpt-4", "claude-3-5-sonnet"). Use this when the feature tracks a single model. Mutually exclusive with `model_property`. type: string title: Model token_type_property: description: |- Meter group-by property that holds the token type. Use this when the meter has a group-by dimension for token type. Mutually exclusive with `token_type`. type: string title: Token type property token_type: description: |- Static token type value. Use this when the feature tracks a single token type (e.g., only input tokens). `request` is an alias for `input`, `response` is an alias for `output`. Mutually exclusive with `token_type_property`. type: string enum: - input - output - cache_read - cache_write - reasoning - request - response title: Token type x-speakeasy-unknown-values: allow pricing: description: |- Resolved per-token pricing from the LLM cost database. Populated in responses when the provider and model can be determined, either from static values or from meter group-by filters with exact matches. type: object additionalProperties: false properties: input_per_token: description: Cost per input token in USD. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' title: Input per token output_per_token: description: Cost per output token in USD. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' title: Output per token cache_read_per_token: description: Cost per cache read token in USD. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' title: Cache read per token reasoning_per_token: description: Cost per reasoning token in USD. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' title: Reasoning per token cache_write_per_token: description: Cost per cache write token in USD. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' title: Cache write per token readOnly: true required: - input_per_token - output_per_token title: Resolved pricing additionalProperties: false required: - type BillingFeatureManualUnitCost: description: A fixed per-unit cost amount. type: object properties: type: description: The type discriminator for manual unit cost. type: string enum: - manual amount: description: Fixed per-unit cost amount in USD. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' additionalProperties: false required: - type - amount BillingPlan: description: Plans provide a template for subscriptions. type: object properties: id: description: ULID (Universally Unique Lexicographically Sortable Identifier). type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: ULID name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' created_at: description: An ISO-8601 timestamp representation of entity creation date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time updated_at: description: An ISO-8601 timestamp representation of entity last update date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time deleted_at: description: An ISO-8601 timestamp representation of entity deletion date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time key: description: |- A key is a semi-unique string that is used to identify the plan. It is used to reference the latest `active` version of the plan and is unique with the version number. type: string example: resource_key maxLength: 64 minLength: 1 pattern: '^[a-z0-9]+(?:_[a-z0-9]+)*$' title: Key version: description: |- Plans are versioned to allow you to make changes without affecting running subscriptions. type: integer default: 1 minimum: 1 readOnly: true title: Version currency: description: The currency code of the plan. type: string example: USD maxLength: 3 minLength: 3 pattern: '^[A-Z]{3}$' title: Currency billing_cadence: description: The billing cadence for subscriptions using this plan. type: string format: ISO8601 example: P1Y pattern: '^P(?:\d+(?:\.\d+)?Y)?(?:\d+(?:\.\d+)?M)?(?:\d+(?:\.\d+)?W)?(?:\d+(?:\.\d+)?D)?(?:T(?:\d+(?:\.\d+)?H)?(?:\d+(?:\.\d+)?M)?(?:\d+(?:\.\d+)?S)?)?$' title: Billing cadence pro_rating_enabled: description: Whether pro-rating is enabled for this plan. type: boolean default: true title: Pro-rating enabled effective_from: description: |- The date and time when the plan becomes `active`. When not specified, the plan is in `draft` status. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: Effective start date effective_to: description: |- A scheduled date and time when the plan becomes `archived`. When not specified, the plan is in `active` status indefinitely. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: Effective end date status: description: |- The status of the plan. Computed based on the effective start and end dates: - `draft`: `effective_from` is not set. - `scheduled`: `now < effective_from`. - `active`: `effective_from <= now` and (`effective_to` is not set or `now < effective_to`). - `archived`: `effective_to <= now`. type: string enum: - draft - active - archived - scheduled readOnly: true title: Status x-speakeasy-unknown-values: allow phases: description: |- The plan phases define the pricing ramp for a subscription. A phase switch occurs only at the end of a billing period. At least one phase is required. type: array items: $ref: '#/components/schemas/BillingPlanPhase' minItems: 1 title: Plan phases settlement_mode: description: |- Settlement mode for plan. Values: - `credit_then_invoice`: Credits are applied first, then any remainder is invoiced. - `credit_only`: Usage is settled exclusively against credits. type: string default: credit_then_invoice enum: - credit_then_invoice - credit_only readOnly: true title: Settlement Mode x-speakeasy-unknown-values: allow validation_errors: description: |- List of validation errors in `draft` state that prevent the plan from being published. type: array items: $ref: '#/components/schemas/ProductCatalogValidationError' readOnly: true title: Validation errors additionalProperties: false required: - id - name - created_at - updated_at - key - version - currency - billing_cadence - status - phases BillingPlanPhase: description: |- The plan phase or pricing ramp allows changing a plan's rate cards over time as a subscription progresses. type: object properties: name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' key: $ref: '#/components/schemas/ResourceKey' duration: description: |- The duration of the phase. When not specified, the phase runs indefinitely. Only the last phase may omit the duration. type: string format: ISO8601 example: P1Y pattern: '^P(?:\d+(?:\.\d+)?Y)?(?:\d+(?:\.\d+)?M)?(?:\d+(?:\.\d+)?W)?(?:\d+(?:\.\d+)?D)?(?:T(?:\d+(?:\.\d+)?H)?(?:\d+(?:\.\d+)?M)?(?:\d+(?:\.\d+)?S)?)?$' title: Duration rate_cards: description: The rate cards of the plan. type: array items: $ref: '#/components/schemas/BillingRateCard' title: Rate cards additionalProperties: false required: - name - key - rate_cards BillingPriceFlat: description: Flat price. type: object properties: type: description: The type of the price. type: string enum: - flat title: Type amount: description: The amount of the flat price. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' title: Amount additionalProperties: false required: - type - amount BillingPriceFree: description: Free price. type: object properties: type: description: The type of the price. type: string enum: - free title: Type additionalProperties: false required: - type BillingPriceGraduated: description: |- Graduated tiered price. Each tier's rate applies only to the usage within that tier. Pricing can change as cumulative usage crosses tier boundaries. When UnitConfig is present on the rate card, tier boundaries (up_to_amount) are expressed in converted billing units. type: object properties: type: description: The type of the price. type: string enum: - graduated title: Type tiers: description: The tiers of the graduated price. At least one tier is required. type: array items: $ref: '#/components/schemas/BillingPriceTier' minItems: 1 title: Tiers additionalProperties: false required: - type - tiers BillingPriceTier: description: |- A price tier used in graduated and volume pricing. At least one price component (flat_price or unit_price) must be set. When UnitConfig is present on the rate card, up_to_amount is expressed in converted billing units. type: object properties: up_to_amount: description: |- Up to and including this quantity will be contained in the tier. If undefined, the tier is open-ended (the last tier). type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' title: Up to quantity flat_price: description: The flat price component of the tier. Charged once when the tier is entered. type: object additionalProperties: false properties: type: description: The type of the price. type: string enum: - flat title: Type amount: description: The amount of the flat price. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' title: Amount required: - type - amount title: Flat price component unit_price: description: The unit price component of the tier. Charged per billing unit within the tier. type: object additionalProperties: false properties: type: description: The type of the price. type: string enum: - unit title: Type amount: description: The amount of the unit price. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' title: Amount required: - type - amount title: Unit price component additionalProperties: false BillingPriceUnit: description: |- Unit price. Charges a fixed rate per billing unit. When UnitConfig is present on the rate card, billing units are the converted quantities (e.g. GB instead of bytes). type: object properties: type: description: The type of the price. type: string enum: - unit title: Type amount: description: The amount of the unit price. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' title: Amount additionalProperties: false required: - type - amount BillingPriceVolume: description: |- Volume tiered price. The maximum quantity within a period determines the per-unit price for all units in that period. When UnitConfig is present on the rate card, tier boundaries (up_to_amount) are expressed in converted billing units. type: object properties: type: description: The type of the price. type: string enum: - volume title: Type tiers: description: The tiers of the volume price. At least one tier is required. type: array items: $ref: '#/components/schemas/BillingPriceTier' minItems: 1 title: Tiers additionalProperties: false required: - type - tiers BillingProfile: description: |- Billing profiles contain the settings for billing and controls invoice generation. type: object properties: id: description: ULID (Universally Unique Lexicographically Sortable Identifier). type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: ULID name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' created_at: description: An ISO-8601 timestamp representation of entity creation date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time updated_at: description: An ISO-8601 timestamp representation of entity last update date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time deleted_at: description: An ISO-8601 timestamp representation of entity deletion date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time supplier: description: |- The name and contact information for the supplier this billing profile represents type: object additionalProperties: false properties: id: description: Unique identifier for the party. type: string readOnly: true key: description: An optional unique key of the party. type: string example: 019ae40f-4258-7f15-9491-842f42a7d6ac maxLength: 256 minLength: 1 title: External Resource Key name: description: Legal name or representation of the party. type: string tax_id: description: |- The entity's legal identification used for tax purposes. They may have other numbers, but we're only interested in those valid for tax purposes. type: object additionalProperties: false properties: code: description: Normalized tax identification code shown on the original identity document. type: string maxLength: 32 minLength: 1 addresses: description: Address for where information should be sent if needed. type: object additionalProperties: false properties: billing_address: description: Billing address. type: object additionalProperties: false properties: country: description: |- Country code in [ISO 3166-1](https://www.iso.org/iso-3166-country-codes.html) alpha-2 format. type: string example: US maxLength: 2 minLength: 2 pattern: '^[A-Z]{2}$' title: Country postal_code: description: Postal code. type: string title: Postal Code state: description: State or province. type: string title: State city: description: City. type: string title: City line1: description: First line of the address. type: string title: Line 1 line2: description: Second line of the address. type: string title: Line 2 phone_number: description: Phone number. type: string title: Phone Number required: - billing_address workflow: description: The billing workflow settings for this profile type: object additionalProperties: false properties: collection: description: The collection settings for this workflow type: object additionalProperties: false properties: alignment: description: The alignment for collecting the pending line items into an invoice. type: object default: type: subscription discriminator: propertyName: type mapping: subscription: '#/components/schemas/BillingWorkflowCollectionAlignmentSubscription' anchored: '#/components/schemas/BillingWorkflowCollectionAlignmentAnchored' oneOf: - $ref: '#/components/schemas/BillingWorkflowCollectionAlignmentSubscription' - $ref: '#/components/schemas/BillingWorkflowCollectionAlignmentAnchored' interval: description: |- This grace period can be used to delay the collection of the pending line items specified in alignment. This is useful, in case of multiple subscriptions having slightly different billing periods. type: string format: ISO8601 example: P1D default: PT1H title: Workflow collection settings invoicing: description: The invoicing settings for this workflow type: object additionalProperties: false properties: auto_advance: description: Whether to automatically issue the invoice after the draftPeriod has passed. type: boolean default: true draft_period: description: The period for the invoice to be kept in draft status for manual reviews. type: string format: ISO8601 example: P1D default: P0D progressive_billing: description: Should progressive billing be allowed for this workflow? type: boolean default: true subscription_end_proration_mode: description: Controls how subscription-ending shortened service periods are billed. type: string default: bill_actual_period enum: - bill_full_period - bill_actual_period x-speakeasy-unknown-values: allow title: Workflow invoice settings payment: description: The payment settings for this workflow type: object discriminator: propertyName: collection_method mapping: charge_automatically: '#/components/schemas/BillingWorkflowPaymentChargeAutomaticallySettings' send_invoice: '#/components/schemas/BillingWorkflowPaymentSendInvoiceSettings' oneOf: - $ref: '#/components/schemas/BillingWorkflowPaymentChargeAutomaticallySettings' - $ref: '#/components/schemas/BillingWorkflowPaymentSendInvoiceSettings' tax: description: The tax settings for this workflow type: object additionalProperties: false properties: enabled: description: |- Enable automatic tax calculation when tax is supported by the app. For example, with Stripe Invoicing when enabled, tax is calculated via Stripe Tax. type: boolean default: true enforced: description: |- Enforce tax calculation when tax is supported by the app. When enabled, the billing system will not allow to create an invoice without tax calculation. Enforcement is different per apps, for example, Stripe app requires customer to have a tax location when starting a paid subscription. type: boolean default: false default_tax_config: description: |- Default tax configuration to apply to the invoices for line items. Setting a tax code (`stripe.code` / `taxCodeId`) on a profile's default tax config is deprecated and can no longer be added or changed: the organization default tax code is used instead. Existing tax-code values may still be removed, and `behavior` remains fully supported. type: object additionalProperties: false properties: behavior: description: |- Tax behavior. If not specified the billing profile is used to determine the tax behavior. If not specified in the billing profile, the provider's default behavior is used. type: string enum: - inclusive - exclusive title: Tax behavior x-speakeasy-unknown-values: allow stripe: description: Stripe tax config. type: object additionalProperties: false deprecated: true properties: code: description: 'Product [tax code](https://docs.stripe.com/tax/tax-codes).' type: string example: txcd_10000000 pattern: '^txcd_\d{8}$' title: Tax code required: - code title: Stripe tax config external_invoicing: description: External invoicing tax config. type: object additionalProperties: false deprecated: true properties: code: description: The tax code should be interpreted by the external invoicing provider. type: string maxLength: 64 title: Tax code required: - code title: External invoicing tax config tax_code_id: description: Tax code ID. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH deprecated: true pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: Tax code ID tax_code: description: |- Tax code reference. When both `tax_code` and `tax_code_id` are provided, `tax_code` takes precedence. When `stripe.code` is also provided, `tax_code` still wins and `stripe.code` is ignored. type: object additionalProperties: false properties: id: $ref: '#/components/schemas/ULID' required: - id title: Tax code title: Workflow tax settings apps: description: The applications used by this billing profile. type: object additionalProperties: false properties: tax: description: The tax app used for this workflow. type: object additionalProperties: false properties: id: description: The ID of the app. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: ULID required: - id invoicing: description: The invoicing app used for this workflow. type: object additionalProperties: false properties: id: description: The ID of the app. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: ULID required: - id payment: description: The payment app used for this workflow. type: object additionalProperties: false properties: id: description: The ID of the app. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: ULID required: - id required: - tax - invoicing - payment default: description: Whether this is the default profile. type: boolean additionalProperties: false required: - id - name - created_at - updated_at - supplier - workflow - apps - default BillingProfilePagePaginatedResponse: description: Page paginated response. type: object properties: data: type: array items: $ref: '#/components/schemas/BillingProfile' meta: $ref: '#/components/schemas/PaginatedMeta' additionalProperties: false required: - data - meta BillingRateCard: description: A rate card defines the pricing and entitlement of a feature or service. type: object properties: name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' key: $ref: '#/components/schemas/ResourceKey' feature: description: The feature associated with the rate card. type: object additionalProperties: false properties: id: $ref: '#/components/schemas/ULID' required: - id title: Feature reference billing_cadence: description: |- The billing cadence of the rate card. When null, the charge is one-time (non-recurring). Only valid for flat prices. type: string format: ISO8601 example: P1Y pattern: '^P(?:\d+(?:\.\d+)?Y)?(?:\d+(?:\.\d+)?M)?(?:\d+(?:\.\d+)?W)?(?:\d+(?:\.\d+)?D)?(?:T(?:\d+(?:\.\d+)?H)?(?:\d+(?:\.\d+)?M)?(?:\d+(?:\.\d+)?S)?)?$' title: Billing cadence price: description: The price of the rate card. type: object discriminator: propertyName: type mapping: free: '#/components/schemas/BillingPriceFree' flat: '#/components/schemas/BillingPriceFlat' unit: '#/components/schemas/BillingPriceUnit' graduated: '#/components/schemas/BillingPriceGraduated' volume: '#/components/schemas/BillingPriceVolume' oneOf: - $ref: '#/components/schemas/BillingPriceFree' - $ref: '#/components/schemas/BillingPriceFlat' - $ref: '#/components/schemas/BillingPriceUnit' - $ref: '#/components/schemas/BillingPriceGraduated' - $ref: '#/components/schemas/BillingPriceVolume' title: Price unit_config: description: |- Unit conversion configuration for the rate card. Synthesized on read for plans authored with v1 dynamic or package prices: dynamic prices map to a unit price with a multiply unit config, and package prices map to a unit price with a divide unit config. Accepted on create and update only when the UnitConfig feature is enabled on the deployment; otherwise rejected. type: object additionalProperties: false properties: operation: description: The arithmetic operation to apply to the raw metered quantity. type: string enum: - divide - multiply title: Conversion operation x-speakeasy-unknown-values: allow conversion_factor: description: |- The factor used in the conversion operation. - For `divide`: `converted = raw / conversionFactor`. - For `multiply`: `converted = raw × conversionFactor`. Must be a positive non-zero value. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' title: Conversion factor rounding: description: |- The rounding mode applied to the converted quantity for invoicing. Defaults to none (no rounding). Entitlement checks always use the precise (unrounded) value. type: string default: none enum: - ceiling - floor - half_up - none title: Rounding mode x-speakeasy-unknown-values: allow precision: description: |- The number of decimal places to retain after rounding. Only meaningful when rounding is not "none". Defaults to 0 (round to whole numbers). type: integer default: 0 title: Rounding precision (decimal places) display_unit: description: |- A human-readable label for the converted unit shown on invoices and in the customer portal (e.g., "GB", "hours", "M tokens"). Optional. When omitted, no unit label is rendered. type: string title: Display unit label required: - operation - conversion_factor title: Unit config payment_term: description: |- The payment term of the rate card. In advance payment term can only be used for flat prices. type: string default: in_arrears enum: - in_advance - in_arrears title: Payment term x-speakeasy-unknown-values: allow commitments: description: |- Spend commitments for this rate card. Only applicable to usage-based prices (unit, graduated, volume). type: object additionalProperties: false properties: minimum_amount: description: The customer is committed to spend at least the amount. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' title: Minimum amount maximum_amount: description: The customer is limited to spend at most the amount. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' title: Maximum amount title: Commitments discounts: description: The discounts of the rate card. type: object additionalProperties: false properties: percentage: description: Percentage discount applied to the price (0–100). type: number maximum: 100 minimum: 0 usage: description: |- Number of usage units granted free before billing starts. Only applies to usage-based lines (not flat fees). Usage is treated as zero until this amount is exhausted. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' title: Discounts tax_config: description: The tax config of the rate card. type: object additionalProperties: false properties: behavior: $ref: '#/components/schemas/BillingTaxBehavior' code: $ref: '#/components/schemas/TaxCodeReference' required: - code title: Tax config entitlement: description: |- The entitlement template granted to subscribers of a plan or addon containing this rate card. Requires `feature` to be set. type: object discriminator: propertyName: type mapping: metered: '#/components/schemas/BillingRateCardMeteredEntitlement' static: '#/components/schemas/BillingRateCardStaticEntitlement' boolean: '#/components/schemas/BillingRateCardBooleanEntitlement' oneOf: - $ref: '#/components/schemas/BillingRateCardMeteredEntitlement' - $ref: '#/components/schemas/BillingRateCardStaticEntitlement' - $ref: '#/components/schemas/BillingRateCardBooleanEntitlement' title: Entitlement template additionalProperties: false required: - name - key - price BillingRateCardBooleanEntitlement: description: The entitlement template of a boolean entitlement. type: object properties: type: description: The type of the entitlement template. type: string enum: - boolean title: Type additionalProperties: false required: - type BillingRateCardMeteredEntitlement: description: The entitlement template of a metered entitlement. type: object properties: type: description: The type of the entitlement template. type: string enum: - metered title: Type is_soft_limit: description: |- If soft limit is true, the subject can use the feature even if the entitlement is exhausted; access remains granted. type: boolean default: false title: Soft limit limit: description: |- The amount of usage granted each usage period, in the feature's unit. Usage is counted against this allowance and the balance resets every usage period. When `is_soft_limit` is true the subject keeps access after the limit is reached; otherwise access is denied once the allowance is exhausted. type: number format: double minimum: 0 title: Usage limit usage_period: description: |- The reset interval of the metered entitlement in ISO8601 format. Defaults to the billing cadence of the rate card. type: string format: ISO8601 example: P1Y pattern: '^P(?:\d+(?:\.\d+)?Y)?(?:\d+(?:\.\d+)?M)?(?:\d+(?:\.\d+)?W)?(?:\d+(?:\.\d+)?D)?(?:T(?:\d+(?:\.\d+)?H)?(?:\d+(?:\.\d+)?M)?(?:\d+(?:\.\d+)?S)?)?$' title: Usage period additionalProperties: false required: - type BillingRateCardProrationMode: description: |- The proration mode of the rate card. Values: - `no_proration`: No proration. - `prorate_prices`: Prorate the price based on the time remaining in the billing period. type: string enum: - no_proration - prorate_prices x-speakeasy-unknown-values: allow BillingRateCardStaticEntitlement: description: The entitlement template of a static entitlement. type: object properties: type: description: The type of the entitlement template. type: string enum: - static title: Type config: description: |- The entitlement config as a JSON object. Returned when checking entitlement access; useful for configuring fine-grained access settings implemented in your own system. title: Config additionalProperties: false required: - type - config BillingSubscription: description: Subscription. type: object properties: id: description: ULID (Universally Unique Lexicographically Sortable Identifier). type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: ULID labels: $ref: '#/components/schemas/Labels' created_at: description: An ISO-8601 timestamp representation of entity creation date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time updated_at: description: An ISO-8601 timestamp representation of entity last update date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time deleted_at: description: An ISO-8601 timestamp representation of entity deletion date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time customer_id: description: The customer ID of the subscription. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: Customer ID plan_id: description: The plan ID of the subscription. Set if subscription is created from a plan. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: Plan ID billing_anchor: description: |- A billing anchor is the fixed point in time that determines the subscription's recurring billing cycle. It affects when charges occur and how prorations are calculated. Common anchors: - Calendar month (1st of each month): `2025-01-01T00:00:00Z` - Subscription anniversary (day customer signed up) - Custom date (customer-specified day) type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: Billing anchor status: description: The status of the subscription. type: string enum: - active - inactive - canceled - scheduled readOnly: true title: Status x-speakeasy-unknown-values: allow settlement_mode: description: |- Settlement mode for billing. Values: - `credit_then_invoice`: Credits are applied first, then any remainder is invoiced. - `credit_only`: Usage is settled exclusively against credits. type: string enum: - credit_then_invoice - credit_only title: Settlement Mode x-speakeasy-unknown-values: allow additionalProperties: false required: - id - created_at - updated_at - customer_id - billing_anchor - status BillingSubscriptionCancel: description: Request for canceling a subscription. type: object properties: timing: description: If not provided the subscription is canceled immediately. example: immediate default: immediate oneOf: - $ref: '#/components/schemas/BillingSubscriptionEditTimingEnum' - $ref: '#/components/schemas/DateTime' additionalProperties: false BillingSubscriptionChange: description: Request for changing a subscription. type: object properties: labels: $ref: '#/components/schemas/Labels' settlement_mode: description: |- Settlement mode for billing. Values: - `credit_then_invoice`: Credits are applied first, then any remainder is invoiced. - `credit_only`: Usage is settled exclusively against credits. type: string enum: - credit_then_invoice - credit_only title: Settlement Mode x-speakeasy-unknown-values: allow customer: description: The customer to create the subscription for. type: object additionalProperties: false properties: id: description: |- The ID of the customer to create the subscription for. Either customer ID or customer key must be provided. If both are provided, the ID will be used. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: Customer ID key: description: |- The key of the customer to create the subscription for. Either customer ID or customer key must be provided. If both are provided, the ID will be used. type: string example: 019ae40f-4258-7f15-9491-842f42a7d6ac maxLength: 256 minLength: 1 title: Customer Key plan: description: The plan reference of the subscription. type: object additionalProperties: false properties: id: description: |- The plan ID of the subscription. Set if subscription is created from a plan. ID or Key of the plan is required if creating a subscription from a plan. If both are provided, the ID will be used. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: Plan ID key: description: |- The plan Key of the subscription, if any. Set if subscription is created from a plan. ID or Key of the plan is required if creating a subscription from a plan. If both are provided, the ID will be used. type: string example: resource_key maxLength: 64 minLength: 1 pattern: '^[a-z0-9]+(?:_[a-z0-9]+)*$' title: Plan Key version: description: |- The plan version of the subscription, if any. If not provided, the latest version of the plan will be used. type: integer title: Plan Version billing_anchor: description: |- A billing anchor is the fixed point in time that determines the subscription's recurring billing cycle. It affects when charges occur and how prorations are calculated. Common anchors: - Calendar month (1st of each month): `2025-01-01T00:00:00Z` - Subscription anniversary (day customer signed up) - Custom date (customer-specified day) If not provided, the subscription will be created with the subscription's creation time as the billing anchor. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: Billing anchor timing: description: |- Timing configuration for the change, when the change should take effect. For changing a subscription, the accepted values depend on the subscription configuration. example: immediate oneOf: - $ref: '#/components/schemas/BillingSubscriptionEditTimingEnum' - $ref: '#/components/schemas/DateTime' additionalProperties: false required: - customer - plan - timing BillingSubscriptionChangeResponse: description: Response for changing a subscription. type: object properties: current: description: The current subscription before the change. type: object additionalProperties: false properties: id: description: ULID (Universally Unique Lexicographically Sortable Identifier). type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: ULID labels: $ref: '#/components/schemas/Labels' created_at: description: An ISO-8601 timestamp representation of entity creation date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time updated_at: description: An ISO-8601 timestamp representation of entity last update date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time deleted_at: description: An ISO-8601 timestamp representation of entity deletion date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time customer_id: description: The customer ID of the subscription. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: Customer ID plan_id: description: The plan ID of the subscription. Set if subscription is created from a plan. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: Plan ID billing_anchor: description: |- A billing anchor is the fixed point in time that determines the subscription's recurring billing cycle. It affects when charges occur and how prorations are calculated. Common anchors: - Calendar month (1st of each month): `2025-01-01T00:00:00Z` - Subscription anniversary (day customer signed up) - Custom date (customer-specified day) type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: Billing anchor status: description: The status of the subscription. type: string enum: - active - inactive - canceled - scheduled readOnly: true title: Status x-speakeasy-unknown-values: allow settlement_mode: description: |- Settlement mode for billing. Values: - `credit_then_invoice`: Credits are applied first, then any remainder is invoiced. - `credit_only`: Usage is settled exclusively against credits. type: string enum: - credit_then_invoice - credit_only title: Settlement Mode x-speakeasy-unknown-values: allow required: - id - created_at - updated_at - customer_id - billing_anchor - status next: description: The new state of the subscription after the change. type: object additionalProperties: false properties: id: description: ULID (Universally Unique Lexicographically Sortable Identifier). type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: ULID labels: $ref: '#/components/schemas/Labels' created_at: description: An ISO-8601 timestamp representation of entity creation date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time updated_at: description: An ISO-8601 timestamp representation of entity last update date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time deleted_at: description: An ISO-8601 timestamp representation of entity deletion date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time customer_id: description: The customer ID of the subscription. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: Customer ID plan_id: description: The plan ID of the subscription. Set if subscription is created from a plan. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: Plan ID billing_anchor: description: |- A billing anchor is the fixed point in time that determines the subscription's recurring billing cycle. It affects when charges occur and how prorations are calculated. Common anchors: - Calendar month (1st of each month): `2025-01-01T00:00:00Z` - Subscription anniversary (day customer signed up) - Custom date (customer-specified day) type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: Billing anchor status: description: The status of the subscription. type: string enum: - active - inactive - canceled - scheduled readOnly: true title: Status x-speakeasy-unknown-values: allow settlement_mode: description: |- Settlement mode for billing. Values: - `credit_then_invoice`: Credits are applied first, then any remainder is invoiced. - `credit_only`: Usage is settled exclusively against credits. type: string enum: - credit_then_invoice - credit_only title: Settlement Mode x-speakeasy-unknown-values: allow required: - id - created_at - updated_at - customer_id - billing_anchor - status additionalProperties: false required: - current - next BillingSubscriptionCreate: description: Subscription create request. type: object properties: labels: $ref: '#/components/schemas/Labels' settlement_mode: description: |- Settlement mode for billing. Values: - `credit_then_invoice`: Credits are applied first, then any remainder is invoiced. - `credit_only`: Usage is settled exclusively against credits. type: string enum: - credit_then_invoice - credit_only title: Settlement Mode x-speakeasy-unknown-values: allow customer: description: The customer to create the subscription for. type: object additionalProperties: false properties: id: description: |- The ID of the customer to create the subscription for. Either customer ID or customer key must be provided. If both are provided, the ID will be used. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: Customer ID key: description: |- The key of the customer to create the subscription for. Either customer ID or customer key must be provided. If both are provided, the ID will be used. type: string example: 019ae40f-4258-7f15-9491-842f42a7d6ac maxLength: 256 minLength: 1 title: Customer Key plan: description: The plan reference of the subscription. type: object additionalProperties: false properties: id: description: |- The plan ID of the subscription. Set if subscription is created from a plan. ID or Key of the plan is required if creating a subscription from a plan. If both are provided, the ID will be used. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: Plan ID key: description: |- The plan Key of the subscription, if any. Set if subscription is created from a plan. ID or Key of the plan is required if creating a subscription from a plan. If both are provided, the ID will be used. type: string example: resource_key maxLength: 64 minLength: 1 pattern: '^[a-z0-9]+(?:_[a-z0-9]+)*$' title: Plan Key version: description: |- The plan version of the subscription, if any. If not provided, the latest version of the plan will be used. type: integer title: Plan Version billing_anchor: description: |- A billing anchor is the fixed point in time that determines the subscription's recurring billing cycle. It affects when charges occur and how prorations are calculated. Common anchors: - Calendar month (1st of each month): `2025-01-01T00:00:00Z` - Subscription anniversary (day customer signed up) - Custom date (customer-specified day) If not provided, the subscription will be created with the subscription's creation time as the billing anchor. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: Billing anchor additionalProperties: false required: - customer - plan BillingSubscriptionEditTimingEnum: description: |- Subscription edit timing. When immediate, the requested changes take effect immediately. When next_billing_cycle, the requested changes take effect at the next billing cycle. type: string enum: - immediate - next_billing_cycle x-speakeasy-unknown-values: allow BillingTaxBehavior: description: |- Tax behavior. This enum is used to specify whether tax is included in the price or excluded from the price. type: string enum: - inclusive - exclusive x-speakeasy-unknown-values: allow BillingTaxCode: description: Tax codes by provider. type: object properties: id: description: ULID (Universally Unique Lexicographically Sortable Identifier). type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: ULID name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' created_at: description: An ISO-8601 timestamp representation of entity creation date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time updated_at: description: An ISO-8601 timestamp representation of entity last update date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time deleted_at: description: An ISO-8601 timestamp representation of entity deletion date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time key: $ref: '#/components/schemas/ResourceKey' app_mappings: description: Mapping of app types to tax codes. type: array items: $ref: '#/components/schemas/BillingTaxCodeAppMapping' title: App type to tax code mappings additionalProperties: false required: - id - name - created_at - updated_at - key - app_mappings BillingTaxCodeAppMapping: description: Mapping of app types to tax codes. type: object properties: app_type: description: The app type that the tax code is associated with. type: string enum: - sandbox - stripe - external_invoicing title: App type x-speakeasy-unknown-values: allow tax_code: description: Tax code. type: string title: Tax code additionalProperties: false required: - app_type - tax_code BillingTaxConfig: description: Set of provider specific tax configs. type: object properties: behavior: description: |- Tax behavior. If not specified the billing profile is used to determine the tax behavior. If not specified in the billing profile, the provider's default behavior is used. type: string enum: - inclusive - exclusive title: Tax behavior x-speakeasy-unknown-values: allow stripe: description: Stripe tax config. type: object additionalProperties: false deprecated: true properties: code: description: 'Product [tax code](https://docs.stripe.com/tax/tax-codes).' type: string example: txcd_10000000 pattern: '^txcd_\d{8}$' title: Tax code required: - code title: Stripe tax config external_invoicing: description: External invoicing tax config. type: object additionalProperties: false deprecated: true properties: code: description: The tax code should be interpreted by the external invoicing provider. type: string maxLength: 64 title: Tax code required: - code title: External invoicing tax config tax_code_id: description: Tax code ID. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH deprecated: true pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: Tax code ID tax_code: description: |- Tax code reference. When both `tax_code` and `tax_code_id` are provided, `tax_code` takes precedence. When `stripe.code` is also provided, `tax_code` still wins and `stripe.code` is ignored. type: object additionalProperties: false properties: id: $ref: '#/components/schemas/ULID' required: - id title: Tax code additionalProperties: false BillingTaxConfigExternalInvoicing: description: External invoicing tax config. type: object properties: code: description: The tax code should be interpreted by the external invoicing provider. type: string maxLength: 64 title: Tax code additionalProperties: false required: - code BillingTaxConfigStripe: description: The tax config for Stripe. type: object properties: code: description: 'Product [tax code](https://docs.stripe.com/tax/tax-codes).' type: string example: txcd_10000000 pattern: '^txcd_\d{8}$' title: Tax code additionalProperties: false required: - code BillingTaxIdentificationCode: description: |- Tax identifier code is a normalized tax code shown on the original identity document. type: string maxLength: 32 minLength: 1 BillingUnitConfigOperation: description: |- The arithmetic operation used to convert raw metered units into billing units. - `divide`: Divide the metered quantity by the conversion factor (e.g., bytes ÷ 1e9 = GB). - `multiply`: Multiply the metered quantity by the conversion factor (e.g., cost × 1.2 = cost + 20% margin). type: string enum: - divide - multiply x-speakeasy-unknown-values: allow BillingUnitConfigRoundingMode: description: |- The rounding mode applied to the converted quantity for invoicing. Rounding is applied only to the invoiced quantity. Entitlement balance checks use the precise decimal value after conversion. - `ceiling`: Round up to the next integer (typical for package-style billing). - `floor`: Round down to the previous integer. - `half_up`: Round to the nearest integer, with 0.5 rounding up. - `none`: No rounding; the converted value is used as-is. type: string enum: - ceiling - floor - half_up - none x-speakeasy-unknown-values: allow BillingWorkflowCollectionAlignment: description: |- The alignment for collecting the pending line items into an invoice. Defaults to subscription, which means that we are to create a new invoice every time the a subscription period starts (for in advance items) or ends (for in arrears items). type: object discriminator: propertyName: type mapping: subscription: '#/components/schemas/BillingWorkflowCollectionAlignmentSubscription' anchored: '#/components/schemas/BillingWorkflowCollectionAlignmentAnchored' oneOf: - $ref: '#/components/schemas/BillingWorkflowCollectionAlignmentSubscription' - $ref: '#/components/schemas/BillingWorkflowCollectionAlignmentAnchored' BillingWorkflowCollectionAlignmentAnchored: description: |- BillingWorkflowCollectionAlignmentAnchored specifies the alignment for collecting the pending line items into an invoice. type: object properties: type: description: The type of alignment. type: string enum: - anchored recurring_period: description: The recurring period for the alignment. type: object additionalProperties: false properties: anchor: description: A date-time anchor to base the recurring period on. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: Anchor time interval: description: The interval duration in ISO 8601 format. type: string format: ISO8601 example: P1M pattern: '^P(?:\d+(?:\.\d+)?Y)?(?:\d+(?:\.\d+)?M)?(?:\d+(?:\.\d+)?W)?(?:\d+(?:\.\d+)?D)?(?:T(?:\d+(?:\.\d+)?H)?(?:\d+(?:\.\d+)?M)?(?:\d+(?:\.\d+)?S)?)?$' title: Interval in ISO 8601 duration format required: - anchor - interval additionalProperties: false required: - type - recurring_period BillingWorkflowCollectionAlignmentSubscription: description: |- BillingWorkflowCollectionAlignmentSubscription specifies the alignment for collecting the pending line items into an invoice. type: object properties: type: description: The type of alignment. type: string enum: - subscription additionalProperties: false required: - type BillingWorkflowCollectionSettings: description: |- Workflow collection specifies how to collect the pending line items for an invoice. type: object properties: alignment: description: The alignment for collecting the pending line items into an invoice. type: object default: type: subscription discriminator: propertyName: type mapping: subscription: '#/components/schemas/BillingWorkflowCollectionAlignmentSubscription' anchored: '#/components/schemas/BillingWorkflowCollectionAlignmentAnchored' oneOf: - $ref: '#/components/schemas/BillingWorkflowCollectionAlignmentSubscription' - $ref: '#/components/schemas/BillingWorkflowCollectionAlignmentAnchored' interval: description: |- This grace period can be used to delay the collection of the pending line items specified in alignment. This is useful, in case of multiple subscriptions having slightly different billing periods. type: string format: ISO8601 example: P1D default: PT1H additionalProperties: false title: Workflow collection settings BillingWorkflowInvoicingSettings: description: Invoice settings for a billing workflow. type: object properties: auto_advance: description: Whether to automatically issue the invoice after the draftPeriod has passed. type: boolean default: true draft_period: description: The period for the invoice to be kept in draft status for manual reviews. type: string format: ISO8601 example: P1D default: P0D progressive_billing: description: Should progressive billing be allowed for this workflow? type: boolean default: true subscription_end_proration_mode: description: Controls how subscription-ending shortened service periods are billed. type: string default: bill_actual_period enum: - bill_full_period - bill_actual_period x-speakeasy-unknown-values: allow additionalProperties: false title: Workflow invoice settings BillingWorkflowInvoicingSubscriptionEndProrationMode: description: Billing workflow subscription end proration mode. type: string enum: - bill_full_period - bill_actual_period x-speakeasy-unknown-values: allow BillingWorkflowPaymentChargeAutomaticallySettings: description: |- Payment settings for a billing workflow when the collection method is charge automatically. type: object properties: collection_method: description: The collection method for the invoice. type: string enum: - charge_automatically additionalProperties: false required: - collection_method BillingWorkflowPaymentSendInvoiceSettings: description: |- Payment settings for a billing workflow when the collection method is send invoice. type: object properties: collection_method: description: The collection method for the invoice. type: string enum: - send_invoice due_after: description: |- The period after which the invoice is due. With some payment solutions it's only applicable for manual collection method. type: string format: ISO8601 example: P30D default: P30D additionalProperties: false required: - collection_method BillingWorkflowPaymentSettings: description: Payment settings for a billing workflow. type: object discriminator: propertyName: collection_method mapping: charge_automatically: '#/components/schemas/BillingWorkflowPaymentChargeAutomaticallySettings' send_invoice: '#/components/schemas/BillingWorkflowPaymentSendInvoiceSettings' oneOf: - $ref: '#/components/schemas/BillingWorkflowPaymentChargeAutomaticallySettings' - $ref: '#/components/schemas/BillingWorkflowPaymentSendInvoiceSettings' BillingWorkflowTaxSettings: description: Tax settings for a billing workflow. type: object properties: enabled: description: |- Enable automatic tax calculation when tax is supported by the app. For example, with Stripe Invoicing when enabled, tax is calculated via Stripe Tax. type: boolean default: true enforced: description: |- Enforce tax calculation when tax is supported by the app. When enabled, the billing system will not allow to create an invoice without tax calculation. Enforcement is different per apps, for example, Stripe app requires customer to have a tax location when starting a paid subscription. type: boolean default: false default_tax_config: description: |- Default tax configuration to apply to the invoices for line items. Setting a tax code (`stripe.code` / `taxCodeId`) on a profile's default tax config is deprecated and can no longer be added or changed: the organization default tax code is used instead. Existing tax-code values may still be removed, and `behavior` remains fully supported. type: object additionalProperties: false properties: behavior: description: |- Tax behavior. If not specified the billing profile is used to determine the tax behavior. If not specified in the billing profile, the provider's default behavior is used. type: string enum: - inclusive - exclusive title: Tax behavior x-speakeasy-unknown-values: allow stripe: description: Stripe tax config. type: object additionalProperties: false deprecated: true properties: code: description: 'Product [tax code](https://docs.stripe.com/tax/tax-codes).' type: string example: txcd_10000000 pattern: '^txcd_\d{8}$' title: Tax code required: - code title: Stripe tax config external_invoicing: description: External invoicing tax config. type: object additionalProperties: false deprecated: true properties: code: description: The tax code should be interpreted by the external invoicing provider. type: string maxLength: 64 title: Tax code required: - code title: External invoicing tax config tax_code_id: description: Tax code ID. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH deprecated: true pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: Tax code ID tax_code: description: |- Tax code reference. When both `tax_code` and `tax_code_id` are provided, `tax_code` takes precedence. When `stripe.code` is also provided, `tax_code` still wins and `stripe.code` is ignored. type: object additionalProperties: false properties: id: $ref: '#/components/schemas/ULID' required: - id title: Tax code additionalProperties: false title: Workflow tax settings ChargePagePaginatedResponse: description: Page paginated response. type: object properties: data: type: array items: $ref: '#/components/schemas/BillingCharge' meta: $ref: '#/components/schemas/PaginatedMeta' additionalProperties: false required: - data - meta CreateAddonRequest: description: Addon create request. type: object properties: name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' key: description: |- A key is a semi-unique string that is used to identify the add-on. It is used to reference the latest `active` version of the add-on and is unique with the version number. type: string example: resource_key maxLength: 64 minLength: 1 pattern: '^[a-z0-9]+(?:_[a-z0-9]+)*$' title: Key instance_type: description: The InstanceType of the add-ons. Can be "single" or "multiple". type: string enum: - single - multiple title: The InstanceType of the add-ons. Can be "single" or "multiple". x-speakeasy-unknown-values: allow currency: description: The currency code of the add-on. type: string example: USD maxLength: 3 minLength: 3 pattern: '^[A-Z]{3}$' title: Currency rate_cards: description: The rate cards of the add-on. type: array items: $ref: '#/components/schemas/BillingRateCard' title: Rate cards additionalProperties: false required: - name - key - instance_type - currency - rate_cards CreateBillingProfileRequest: description: BillingProfile create request. type: object properties: name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' supplier: description: |- The name and contact information for the supplier this billing profile represents type: object additionalProperties: false properties: id: description: Unique identifier for the party. type: string readOnly: true key: description: An optional unique key of the party. type: string example: 019ae40f-4258-7f15-9491-842f42a7d6ac maxLength: 256 minLength: 1 title: External Resource Key name: description: Legal name or representation of the party. type: string tax_id: description: |- The entity's legal identification used for tax purposes. They may have other numbers, but we're only interested in those valid for tax purposes. type: object additionalProperties: false properties: code: description: Normalized tax identification code shown on the original identity document. type: string maxLength: 32 minLength: 1 addresses: description: Address for where information should be sent if needed. type: object additionalProperties: false properties: billing_address: description: Billing address. type: object additionalProperties: false properties: country: description: |- Country code in [ISO 3166-1](https://www.iso.org/iso-3166-country-codes.html) alpha-2 format. type: string example: US maxLength: 2 minLength: 2 pattern: '^[A-Z]{2}$' title: Country postal_code: description: Postal code. type: string title: Postal Code state: description: State or province. type: string title: State city: description: City. type: string title: City line1: description: First line of the address. type: string title: Line 1 line2: description: Second line of the address. type: string title: Line 2 phone_number: description: Phone number. type: string title: Phone Number required: - billing_address workflow: description: The billing workflow settings for this profile type: object additionalProperties: false properties: collection: description: The collection settings for this workflow type: object additionalProperties: false properties: alignment: description: The alignment for collecting the pending line items into an invoice. type: object default: type: subscription discriminator: propertyName: type mapping: subscription: '#/components/schemas/BillingWorkflowCollectionAlignmentSubscription' anchored: '#/components/schemas/BillingWorkflowCollectionAlignmentAnchored' oneOf: - $ref: '#/components/schemas/BillingWorkflowCollectionAlignmentSubscription' - $ref: '#/components/schemas/BillingWorkflowCollectionAlignmentAnchored' interval: description: |- This grace period can be used to delay the collection of the pending line items specified in alignment. This is useful, in case of multiple subscriptions having slightly different billing periods. type: string format: ISO8601 example: P1D default: PT1H title: Workflow collection settings invoicing: description: The invoicing settings for this workflow type: object additionalProperties: false properties: auto_advance: description: Whether to automatically issue the invoice after the draftPeriod has passed. type: boolean default: true draft_period: description: The period for the invoice to be kept in draft status for manual reviews. type: string format: ISO8601 example: P1D default: P0D progressive_billing: description: Should progressive billing be allowed for this workflow? type: boolean default: true subscription_end_proration_mode: description: Controls how subscription-ending shortened service periods are billed. type: string default: bill_actual_period enum: - bill_full_period - bill_actual_period x-speakeasy-unknown-values: allow title: Workflow invoice settings payment: description: The payment settings for this workflow type: object discriminator: propertyName: collection_method mapping: charge_automatically: '#/components/schemas/BillingWorkflowPaymentChargeAutomaticallySettings' send_invoice: '#/components/schemas/BillingWorkflowPaymentSendInvoiceSettings' oneOf: - $ref: '#/components/schemas/BillingWorkflowPaymentChargeAutomaticallySettings' - $ref: '#/components/schemas/BillingWorkflowPaymentSendInvoiceSettings' tax: description: The tax settings for this workflow type: object additionalProperties: false properties: enabled: description: |- Enable automatic tax calculation when tax is supported by the app. For example, with Stripe Invoicing when enabled, tax is calculated via Stripe Tax. type: boolean default: true enforced: description: |- Enforce tax calculation when tax is supported by the app. When enabled, the billing system will not allow to create an invoice without tax calculation. Enforcement is different per apps, for example, Stripe app requires customer to have a tax location when starting a paid subscription. type: boolean default: false default_tax_config: description: |- Default tax configuration to apply to the invoices for line items. Setting a tax code (`stripe.code` / `taxCodeId`) on a profile's default tax config is deprecated and can no longer be added or changed: the organization default tax code is used instead. Existing tax-code values may still be removed, and `behavior` remains fully supported. type: object additionalProperties: false properties: behavior: description: |- Tax behavior. If not specified the billing profile is used to determine the tax behavior. If not specified in the billing profile, the provider's default behavior is used. type: string enum: - inclusive - exclusive title: Tax behavior x-speakeasy-unknown-values: allow stripe: description: Stripe tax config. type: object additionalProperties: false deprecated: true properties: code: description: 'Product [tax code](https://docs.stripe.com/tax/tax-codes).' type: string example: txcd_10000000 pattern: '^txcd_\d{8}$' title: Tax code required: - code title: Stripe tax config external_invoicing: description: External invoicing tax config. type: object additionalProperties: false deprecated: true properties: code: description: The tax code should be interpreted by the external invoicing provider. type: string maxLength: 64 title: Tax code required: - code title: External invoicing tax config tax_code_id: description: Tax code ID. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH deprecated: true pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: Tax code ID tax_code: description: |- Tax code reference. When both `tax_code` and `tax_code_id` are provided, `tax_code` takes precedence. When `stripe.code` is also provided, `tax_code` still wins and `stripe.code` is ignored. type: object additionalProperties: false properties: id: $ref: '#/components/schemas/ULID' required: - id title: Tax code title: Workflow tax settings apps: description: The applications used by this billing profile. type: object additionalProperties: false properties: tax: description: The tax app used for this workflow. type: object additionalProperties: false properties: id: description: The ID of the app. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: ULID required: - id invoicing: description: The invoicing app used for this workflow. type: object additionalProperties: false properties: id: description: The ID of the app. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: ULID required: - id payment: description: The payment app used for this workflow. type: object additionalProperties: false properties: id: description: The ID of the app. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: ULID required: - id required: - tax - invoicing - payment default: description: Whether this is the default profile. type: boolean additionalProperties: false required: - name - supplier - workflow - apps - default CreateChargeFlatFeeRequest: description: Flat fee charge create request. type: object properties: name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' type: description: The type of the charge. type: string enum: - flat_fee title: Type currency: description: The currency of the charge. type: string example: USD maxLength: 3 minLength: 3 pattern: '^[A-Z]{3}$' title: Currency invoice_at: description: The timestamp when the charge is intended to be invoiced. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: Invoice at service_period: description: The effective service period covered by the charge. type: object additionalProperties: false properties: from: description: |- The start of the period. The period is inclusive at the start. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: Start to: description: |- The end of the period. The period is exclusive at the end. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: End required: - from - to title: Service period unique_reference_id: description: Unique reference ID of the charge. type: string title: Unique reference ID settlement_mode: description: Settlement mode of the charge. type: string enum: - credit_then_invoice - credit_only title: Settlement mode x-speakeasy-unknown-values: allow tax_config: description: Tax configuration of the charge. type: object additionalProperties: false properties: behavior: description: |- Tax behavior. If not specified the billing profile is used to determine the tax behavior. If not specified in the billing profile, the provider's default behavior is used. type: string enum: - inclusive - exclusive title: Tax behavior x-speakeasy-unknown-values: allow stripe: description: Stripe tax config. type: object additionalProperties: false deprecated: true properties: code: description: 'Product [tax code](https://docs.stripe.com/tax/tax-codes).' type: string example: txcd_10000000 pattern: '^txcd_\d{8}$' title: Tax code required: - code title: Stripe tax config external_invoicing: description: External invoicing tax config. type: object additionalProperties: false deprecated: true properties: code: description: The tax code should be interpreted by the external invoicing provider. type: string maxLength: 64 title: Tax code required: - code title: External invoicing tax config tax_code_id: description: Tax code ID. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH deprecated: true pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: Tax code ID tax_code: description: |- Tax code reference. When both `tax_code` and `tax_code_id` are provided, `tax_code` takes precedence. When `stripe.code` is also provided, `tax_code` still wins and `stripe.code` is ignored. type: object additionalProperties: false properties: id: $ref: '#/components/schemas/ULID' required: - id title: Tax code title: Tax configuration payment_term: description: Payment term of the flat fee charge. type: string enum: - in_advance - in_arrears title: Payment term x-speakeasy-unknown-values: allow discounts: description: The discounts applied to the charge. type: object additionalProperties: false properties: percentage: description: Percentage discount applied to the price (0–100). type: number maximum: 100 minimum: 0 title: Discounts feature_key: description: 'The feature associated with the charge, when applicable.' type: string title: Feature key proration_configuration: description: The proration configuration of the charge. type: object additionalProperties: false properties: mode: description: The proration mode of the rate card. type: string enum: - no_proration - prorate_prices title: Proration mode x-speakeasy-unknown-values: allow required: - mode title: Proration configuration amount_before_proration: description: The amount before proration of the charge. type: object additionalProperties: false properties: amount: $ref: '#/components/schemas/Numeric' currency: $ref: '#/components/schemas/CurrencyCode' required: - amount - currency title: Amount before proration full_service_period: description: 'The full, unprorated service period of the charge.' type: object additionalProperties: false properties: from: description: |- The start of the period. The period is inclusive at the start. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: Start to: description: |- The end of the period. The period is exclusive at the end. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: End required: - from - to title: Full service period billing_period: description: The billing period the charge belongs to. type: object additionalProperties: false properties: from: description: |- The start of the period. The period is inclusive at the start. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: Start to: description: |- The end of the period. The period is exclusive at the end. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: End required: - from - to title: Billing period additionalProperties: false required: - name - type - currency - invoice_at - service_period - settlement_mode - payment_term - proration_configuration - amount_before_proration CreateChargeRequest: description: Customer charge. type: object discriminator: propertyName: type mapping: flat_fee: '#/components/schemas/CreateChargeFlatFeeRequest' usage_based: '#/components/schemas/CreateChargeUsageBasedRequest' oneOf: - $ref: '#/components/schemas/CreateChargeFlatFeeRequest' - $ref: '#/components/schemas/CreateChargeUsageBasedRequest' title: Customer charge create request. CreateChargeUsageBasedRequest: description: Usage-based charge create request. type: object properties: name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' type: description: The type of the charge. type: string enum: - usage_based title: Type currency: description: The currency of the charge. type: string example: USD maxLength: 3 minLength: 3 pattern: '^[A-Z]{3}$' title: Currency invoice_at: description: The timestamp when the charge is intended to be invoiced. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: Invoice at service_period: description: The effective service period covered by the charge. type: object additionalProperties: false properties: from: description: |- The start of the period. The period is inclusive at the start. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: Start to: description: |- The end of the period. The period is exclusive at the end. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: End required: - from - to title: Service period unique_reference_id: description: Unique reference ID of the charge. type: string title: Unique reference ID settlement_mode: description: Settlement mode of the charge. type: string enum: - credit_then_invoice - credit_only title: Settlement mode x-speakeasy-unknown-values: allow tax_config: description: Tax configuration of the charge. type: object additionalProperties: false properties: behavior: description: |- Tax behavior. If not specified the billing profile is used to determine the tax behavior. If not specified in the billing profile, the provider's default behavior is used. type: string enum: - inclusive - exclusive title: Tax behavior x-speakeasy-unknown-values: allow stripe: description: Stripe tax config. type: object additionalProperties: false deprecated: true properties: code: description: 'Product [tax code](https://docs.stripe.com/tax/tax-codes).' type: string example: txcd_10000000 pattern: '^txcd_\d{8}$' title: Tax code required: - code title: Stripe tax config external_invoicing: description: External invoicing tax config. type: object additionalProperties: false deprecated: true properties: code: description: The tax code should be interpreted by the external invoicing provider. type: string maxLength: 64 title: Tax code required: - code title: External invoicing tax config tax_code_id: description: Tax code ID. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH deprecated: true pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: Tax code ID tax_code: description: |- Tax code reference. When both `tax_code` and `tax_code_id` are provided, `tax_code` takes precedence. When `stripe.code` is also provided, `tax_code` still wins and `stripe.code` is ignored. type: object additionalProperties: false properties: id: $ref: '#/components/schemas/ULID' required: - id title: Tax code title: Tax configuration discounts: description: Discounts applied to the usage-based charge. type: object additionalProperties: false properties: percentage: description: Percentage discount applied to the price (0–100). type: number maximum: 100 minimum: 0 usage: description: |- Number of usage units granted free before billing starts. Only applies to usage-based lines (not flat fees). Usage is treated as zero until this amount is exhausted. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' title: Discounts feature_key: description: The feature associated with the charge. type: string title: Feature key price: description: The price of the charge. type: object discriminator: propertyName: type mapping: free: '#/components/schemas/BillingPriceFree' flat: '#/components/schemas/BillingPriceFlat' unit: '#/components/schemas/BillingPriceUnit' graduated: '#/components/schemas/BillingPriceGraduated' volume: '#/components/schemas/BillingPriceVolume' oneOf: - $ref: '#/components/schemas/BillingPriceFree' - $ref: '#/components/schemas/BillingPriceFlat' - $ref: '#/components/schemas/BillingPriceUnit' - $ref: '#/components/schemas/BillingPriceGraduated' - $ref: '#/components/schemas/BillingPriceVolume' title: Price full_service_period: description: 'The full, unprorated service period of the charge.' type: object additionalProperties: false properties: from: description: |- The start of the period. The period is inclusive at the start. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: Start to: description: |- The end of the period. The period is exclusive at the end. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: End required: - from - to title: Full service period billing_period: description: The billing period the charge belongs to. type: object additionalProperties: false properties: from: description: |- The start of the period. The period is inclusive at the start. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: Start to: description: |- The end of the period. The period is exclusive at the end. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: End required: - from - to title: Billing period additionalProperties: false required: - name - type - currency - invoice_at - service_period - settlement_mode - feature_key - price CreateCreditAdjustmentRequest: description: CreditAdjustment create request. type: object properties: name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' currency: description: The currency of the granted credits. type: string example: USD maxLength: 3 minLength: 3 pattern: '^[A-Z]{3}$' amount: description: Granted credit amount. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' additionalProperties: false required: - name - currency - amount CreateCreditGrantFilters: description: Filters for the credit grant. type: object properties: features: description: |- Limit the credit grant to specific features. If no features are specified, the credit grant can be used for any feature. type: array items: $ref: '#/components/schemas/ResourceKey' example: - input_tokens - output_tokens additionalProperties: false CreateCreditGrantRequest: description: CreditGrant create request. type: object properties: name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' funding_method: description: Funding method of the grant. type: string enum: - none - invoice - external title: Credit funding method x-speakeasy-unknown-values: allow currency: description: Fiat or custom currency code. type: string example: USD maxLength: 3 minLength: 3 pattern: '^[A-Z]{3}$' amount: description: Granted credit amount. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' purchase: description: Present when a funding workflow applies (funding_method is not `none`). type: object additionalProperties: false properties: currency: description: Currency of the purchase amount. type: string example: USD maxLength: 3 minLength: 3 pattern: '^[A-Z]{3}$' per_unit_cost_basis: description: |- Cost basis per credit unit used to calculate the purchase amount. If `per_unit_cost_basis` is 0.50 and credit amount is $100.00, the total charge is $50.00. The value must be greater than 0. If the cost basis is 0, use `funding_method=none` instead. Defaults to 1.0. type: string default: '1.0' pattern: '^\-?[0-9]+(\.[0-9]+)?$' availability_policy: description: |- Controls when credits become available for consumption. Defaults to `on_creation`. type: string default: on_creation enum: - on_creation title: Credit availability policy required: - currency tax_config: description: |- Tax configuration for the grant. For `invoice` and `external` funding methods, tax configuration should be provided to ensure correct revenue recognition. When not provided, the default credit grant tax code is applied, if that's not set the global default taxcode is used. type: object additionalProperties: false properties: behavior: description: Tax behavior applied to the invoice line item. type: string enum: - inclusive - exclusive x-speakeasy-unknown-values: allow tax_code: description: Tax code applied to the invoice line item. type: object additionalProperties: false properties: id: $ref: '#/components/schemas/ULID' required: - id title: Tax configuration for a credit grant filters: $ref: '#/components/schemas/CreateCreditGrantFilters' priority: description: Draw-down priority of the grant. Lower values have higher priority. type: integer format: int16 default: 10 maximum: 1000 minimum: 1 effective_at: description: |- The timestamp when the credit grant becomes effective. Defaults to the current date and time. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: RFC3339 Date-Time expires_after: description: |- The duration after which the credit grant expires. Defaults to never expiring. type: string format: ISO8601 example: P1Y pattern: '^P(?:\d+(?:\.\d+)?Y)?(?:\d+(?:\.\d+)?M)?(?:\d+(?:\.\d+)?W)?(?:\d+(?:\.\d+)?D)?(?:T(?:\d+(?:\.\d+)?H)?(?:\d+(?:\.\d+)?M)?(?:\d+(?:\.\d+)?S)?)?$' title: ISO 8601 Duration key: description: |- Idempotency key for the credit grant creation request. When provided, reusing the same key returns an HTTP 409 Conflict instead of creating a duplicate grant, which makes create requests safe to retry. type: string example: 019ae40f-4258-7f15-9491-842f42a7d6ac maxLength: 256 minLength: 1 title: External Resource Key additionalProperties: false required: - name - funding_method - currency - amount CreateCustomerRequest: description: Customer create request. type: object properties: name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' key: $ref: '#/components/schemas/ExternalResourceKey' usage_attribution: description: Mapping to attribute metered usage to the customer by the event subject. type: object additionalProperties: false properties: subject_keys: description: |- The subjects that are attributed to the customer. Can be empty when no usage event subjects are associated with the customer. type: array items: $ref: '#/components/schemas/UsageAttributionSubjectKey' minItems: 0 title: Subject Keys required: - subject_keys title: Usage Attribution primary_email: description: The primary email address of the customer. type: string title: Primary Email currency: description: 'Currency of the customer. Used for billing, tax and invoicing.' type: string example: USD maxLength: 3 minLength: 3 pattern: '^[A-Z]{3}$' title: Currency billing_address: description: The billing address of the customer. Used for tax and invoicing. type: object additionalProperties: false properties: country: description: |- Country code in [ISO 3166-1](https://www.iso.org/iso-3166-country-codes.html) alpha-2 format. type: string example: US maxLength: 2 minLength: 2 pattern: '^[A-Z]{2}$' title: Country postal_code: description: Postal code. type: string title: Postal Code state: description: State or province. type: string title: State city: description: City. type: string title: City line1: description: First line of the address. type: string title: Line 1 line2: description: Second line of the address. type: string title: Line 2 phone_number: description: Phone number. type: string title: Phone Number title: Billing Address additionalProperties: false required: - name - key CreateFeatureRequest: description: Feature create request. type: object properties: name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' key: $ref: '#/components/schemas/ResourceKey' meter: description: |- The meter that the feature is associated with and based on which usage is calculated. If not specified, the feature is static. type: object additionalProperties: false properties: id: description: The ID of the meter to associate with this feature. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: Meter ID filters: description: Filters to apply to the dimensions of the meter. type: object additionalProperties: $ref: '#/components/schemas/QueryFilterStringMapItem' maxProperties: 10 title: Meter dimensions filters required: - id title: Meter reference unit_cost: description: |- Optional per-unit cost configuration. Use "manual" for a fixed per-unit cost, or "llm" to look up cost from the LLM cost database based on meter group-by properties. type: object discriminator: propertyName: type mapping: manual: '#/components/schemas/BillingFeatureManualUnitCost' llm: '#/components/schemas/BillingFeatureLLMUnitCost' oneOf: - $ref: '#/components/schemas/BillingFeatureManualUnitCost' - $ref: '#/components/schemas/BillingFeatureLLMUnitCost' title: Unit cost additionalProperties: false required: - name - key CreateMeterRequest: description: Meter create request. type: object properties: name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' key: $ref: '#/components/schemas/ResourceKey' aggregation: description: The aggregation type to use for the meter. type: string enum: - sum - count - unique_count - avg - min - max - latest x-speakeasy-unknown-values: allow event_type: description: The event type to include in the aggregation. type: string example: prompt minLength: 1 events_from: description: |- The date since the meter should include events. Useful to skip old events. If not specified, all historical events are included. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: RFC3339 Date-Time value_property: description: |- JSONPath expression to extract the value from the ingested event's data property. The ingested value for sum, avg, min, and max aggregations is a number or a string that can be parsed to a number. For unique_count aggregation, the ingested value must be a string. For count aggregation the value_property is ignored. type: string example: $.tokens minLength: 1 dimensions: description: |- Named JSONPath expressions to extract the group by values from the event data. Keys must be unique and consist only alphanumeric and underscore characters. type: object example: type: $.type additionalProperties: type: string additionalProperties: false required: - name - key - aggregation - event_type CreatePlanAddonRequest: description: PlanAddon create request. type: object properties: name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' addon: description: The add-on associated with the plan. type: object additionalProperties: false properties: id: $ref: '#/components/schemas/ULID' required: - id title: Add-on from_plan_phase: description: The key of the plan phase from which the add-on becomes available for purchase. type: string example: resource_key maxLength: 64 minLength: 1 pattern: '^[a-z0-9]+(?:_[a-z0-9]+)*$' title: From plan phase max_quantity: description: |- The maximum number of times the add-on can be purchased for the plan. For single-instance add-ons this field must be omitted. For multi-instance add-ons when omitted, unlimited quantity can be purchased. type: integer minimum: 1 title: Max quantity additionalProperties: false required: - name - addon - from_plan_phase CreatePlanRequest: description: Plan create request. type: object properties: name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' key: description: |- A key is a semi-unique string that is used to identify the plan. It is used to reference the latest `active` version of the plan and is unique with the version number. type: string example: resource_key maxLength: 64 minLength: 1 pattern: '^[a-z0-9]+(?:_[a-z0-9]+)*$' title: Key currency: description: The currency code of the plan. type: string example: USD maxLength: 3 minLength: 3 pattern: '^[A-Z]{3}$' title: Currency billing_cadence: description: The billing cadence for subscriptions using this plan. type: string format: ISO8601 example: P1Y pattern: '^P(?:\d+(?:\.\d+)?Y)?(?:\d+(?:\.\d+)?M)?(?:\d+(?:\.\d+)?W)?(?:\d+(?:\.\d+)?D)?(?:T(?:\d+(?:\.\d+)?H)?(?:\d+(?:\.\d+)?M)?(?:\d+(?:\.\d+)?S)?)?$' title: Billing cadence pro_rating_enabled: description: Whether pro-rating is enabled for this plan. type: boolean default: true title: Pro-rating enabled phases: description: |- The plan phases define the pricing ramp for a subscription. A phase switch occurs only at the end of a billing period. At least one phase is required. type: array items: $ref: '#/components/schemas/BillingPlanPhase' minItems: 1 title: Plan phases additionalProperties: false required: - name - key - currency - billing_cadence - phases CreateResourceReference: description: TaxCode reference. type: object properties: id: $ref: '#/components/schemas/ULID' additionalProperties: false required: - id CreateTaxCodeRequest: description: TaxCode create request. type: object properties: name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' key: $ref: '#/components/schemas/ResourceKey' app_mappings: description: Mapping of app types to tax codes. type: array items: $ref: '#/components/schemas/BillingTaxCodeAppMapping' title: App type to tax code mappings additionalProperties: false required: - name - key - app_mappings CreditBalance: description: The credit balance by currency. type: object properties: currency: description: Fiat or custom currency code. type: string example: USD maxLength: 3 minLength: 3 pattern: '^[A-Z]{3}$' readOnly: true live: description: Credits available after applying currently live charge impacts. type: string example: '200.00' pattern: '^\-?[0-9]+(\.[0-9]+)?$' readOnly: true settled: description: Credits that have been booked on the ledger as of the balance timestamp. type: string example: '150.00' pattern: '^\-?[0-9]+(\.[0-9]+)?$' readOnly: true pending: description: |- Credits that have been granted but are not yet written to the ledger, or are written to the ledger with a future booked time. type: string example: '50.00' pattern: '^\-?[0-9]+(\.[0-9]+)?$' readOnly: true additionalProperties: false required: - currency - live - settled - pending title: Credit balance CreditGrantPagePaginatedResponse: description: Page paginated response. type: object properties: data: type: array items: $ref: '#/components/schemas/BillingCreditGrant' meta: $ref: '#/components/schemas/PaginatedMeta' additionalProperties: false required: - data - meta CreditTransactionPaginatedResponse: description: Cursor paginated response. type: object properties: data: type: array items: $ref: '#/components/schemas/BillingCreditTransaction' meta: $ref: '#/components/schemas/CursorMeta' additionalProperties: false required: - data - meta CurrencyCode: description: |- Three-letter [ISO4217](https://www.iso.org/iso-4217-currency-codes.html) currency code. Custom three-letter currency codes are also supported for convenience. type: string example: USD maxLength: 3 minLength: 3 pattern: '^[A-Z]{3}$' CursorPaginationQueryPage: description: Determines which page of the collection to retrieve. type: object properties: size: description: The number of items to include per page. type: integer after: description: 'Request the next page of data, starting with the item after this parameter.' type: string before: description: 'Request the previous page of data, starting with the item before this parameter.' type: string additionalProperties: false CustomerPagePaginatedResponse: description: Page paginated response. type: object properties: data: type: array items: $ref: '#/components/schemas/BillingCustomer' meta: $ref: '#/components/schemas/PaginatedMeta' additionalProperties: false required: - data - meta DateTime: description: |- [RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: RFC3339 Date-Time ExternalResourceKey: description: |- ExternalResourceKey is a unique string that is used to identify a resource in an external system. type: string example: 019ae40f-4258-7f15-9491-842f42a7d6ac maxLength: 256 minLength: 1 title: External Resource Key Feature: description: A capability or billable dimension offered by a provider. type: object properties: id: description: ULID (Universally Unique Lexicographically Sortable Identifier). type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: ULID name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' created_at: description: An ISO-8601 timestamp representation of entity creation date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time updated_at: description: An ISO-8601 timestamp representation of entity last update date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time deleted_at: description: An ISO-8601 timestamp representation of entity deletion date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time key: $ref: '#/components/schemas/ResourceKey' meter: description: |- The meter that the feature is associated with and based on which usage is calculated. If not specified, the feature is static. type: object additionalProperties: false properties: id: description: The ID of the meter to associate with this feature. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: Meter ID filters: description: Filters to apply to the dimensions of the meter. type: object additionalProperties: $ref: '#/components/schemas/QueryFilterStringMapItem' maxProperties: 10 title: Meter dimensions filters required: - id title: Meter reference unit_cost: description: |- Optional per-unit cost configuration. Use "manual" for a fixed per-unit cost, or "llm" to look up cost from the LLM cost database based on meter group-by properties. type: object discriminator: propertyName: type mapping: manual: '#/components/schemas/BillingFeatureManualUnitCost' llm: '#/components/schemas/BillingFeatureLLMUnitCost' oneOf: - $ref: '#/components/schemas/BillingFeatureManualUnitCost' - $ref: '#/components/schemas/BillingFeatureLLMUnitCost' title: Unit cost additionalProperties: false required: - id - name - created_at - updated_at - key FeatureCostQueryResult: description: Result of a feature cost query. type: object properties: from: description: Start of the queried period. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: RFC3339 Date-Time to: description: End of the queried period. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: RFC3339 Date-Time data: description: The cost data rows. type: array items: $ref: '#/components/schemas/FeatureCostQueryRow' additionalProperties: false required: - data FeatureCostQueryRow: description: A row in the result of a feature cost query. type: object properties: usage: description: The metered usage value for the period. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' cost: description: |- The computed cost amount (usage × unit cost). Null when pricing is not available for the given combination of dimensions. type: string nullable: true pattern: '^\-?[0-9]+(\.[0-9]+)?$' currency: description: The currency code of the cost amount. type: string example: USD maxLength: 3 minLength: 3 pattern: '^[A-Z]{3}$' detail: description: |- Detail message when cost amount is null, explaining why the cost could not be resolved. type: string from: description: The start of the time bucket the value is aggregated over. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: RFC3339 Date-Time to: description: The end of the time bucket the value is aggregated over. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: RFC3339 Date-Time dimensions: description: |- The dimensions the value is aggregated over. `subject` and `customer_id` are reserved dimensions. type: object additionalProperties: type: string additionalProperties: false required: - usage - cost - currency - from - to - dimensions FeaturePagePaginatedResponse: description: Page paginated response. type: object properties: data: type: array items: $ref: '#/components/schemas/Feature' meta: $ref: '#/components/schemas/PaginatedMeta' additionalProperties: false required: - data - meta GetCreditBalanceParamsFilter: description: Filter options for getting a credit balance. type: object properties: currency: description: Filter credit balance by currency. type: object additionalProperties: false properties: eq: type: string oeq: type: string neq: type: string required: - oeq - neq title: StringFieldNEQFilter feature_key: description: |- Filter credit balance by feature key. Omit to return the total portfolio value. Use `exists=false` to return only unrestricted balance. type: object additionalProperties: false properties: eq: type: string contains: type: string ocontains: type: string oeq: type: string neq: type: string required: - contains - ocontains - oeq - neq title: StringFieldNEQFilter additionalProperties: false ISO8601Duration: description: |- [ISO 8601 Duration](https://docs.digi.com/resources/documentation/digidocs/90001488-13/reference/r_iso_8601_duration_format.htm) string. type: string format: ISO8601 example: P1Y pattern: '^P(?:\d+(?:\.\d+)?Y)?(?:\d+(?:\.\d+)?M)?(?:\d+(?:\.\d+)?W)?(?:\d+(?:\.\d+)?D)?(?:T(?:\d+(?:\.\d+)?H)?(?:\d+(?:\.\d+)?M)?(?:\d+(?:\.\d+)?S)?)?$' title: ISO 8601 Duration IngestedEventPaginatedResponse: description: Cursor paginated response. type: object properties: data: type: array items: $ref: '#/components/schemas/MeteringIngestedEvent' meta: $ref: '#/components/schemas/CursorMeta' additionalProperties: false required: - data - meta LLMCostOverrideCreate: description: |- Input for creating a per-namespace price override. Unique per provider, model and currency. If an override already exists for the given provider, model and currency, it will be updated. If an override does not exist, it will be created. type: object properties: provider: description: Provider/vendor of the model. type: string model_id: description: Canonical model identifier. type: string model_name: description: Human-readable model name. type: string pricing: description: Token pricing data. type: object additionalProperties: false properties: input_per_token: description: Input price per token (USD). type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' output_per_token: description: Output price per token (USD). type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' cache_read_per_token: description: Cache read price per token (USD). type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' cache_write_per_token: description: Cache write price per token (USD). type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' reasoning_per_token: description: Reasoning output price per token (USD). type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' required: - input_per_token - output_per_token currency: description: Currency code. type: string example: USD maxLength: 3 minLength: 3 pattern: '^[A-Z]{3}$' effective_from: description: When this override becomes effective. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: RFC3339 Date-Time effective_to: description: When this override expires. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: RFC3339 Date-Time additionalProperties: false required: - provider - model_id - pricing - currency - effective_from LLMCostPrice: description: |- An LLM cost price record, representing the cost per token for a specific model from a specific provider. type: object properties: id: description: Unique identifier. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: ULID provider: description: Provider of the model. type: object additionalProperties: false properties: id: description: 'Identifier of the provider, e.g., "openai", "anthropic".' type: string name: description: 'Name of the provider, e.g., "OpenAI", "Anthropic".' type: string readOnly: true required: - id - name model: description: The model. type: object additionalProperties: false properties: id: description: 'Identifier of the model, e.g., "gpt-4", "claude-3-5-sonnet".' type: string name: description: 'Name of the model, e.g., "GPT-4", "Claude 3.5 Sonnet".' type: string readOnly: true required: - id - name pricing: description: Token pricing data. type: object additionalProperties: false properties: input_per_token: description: Input price per token (USD). type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' output_per_token: description: Output price per token (USD). type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' cache_read_per_token: description: Cache read price per token (USD). type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' cache_write_per_token: description: Cache write price per token (USD). type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' reasoning_per_token: description: Reasoning output price per token (USD). type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' readOnly: true required: - input_per_token - output_per_token currency: description: Currency code (currently always "USD"). type: string example: USD maxLength: 3 minLength: 3 pattern: '^[A-Z]{3}$' readOnly: true source: description: Where this price came from. type: string enum: - manual - system readOnly: true x-speakeasy-unknown-values: allow effective_from: description: When this price becomes effective. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time effective_to: description: When this price expires. Omitted when the price is currently effective. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time created_at: description: Creation timestamp. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time updated_at: description: Last update timestamp. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time additionalProperties: false required: - id - provider - model - pricing - currency - source - effective_from - created_at - updated_at ListAddonsParamsFilter: description: Filter options for listing add-ons. type: object properties: id: $ref: '#/components/schemas/ULIDFieldFilter' key: $ref: '#/components/schemas/StringFieldFilter' name: $ref: '#/components/schemas/StringFieldFilter' status: $ref: '#/components/schemas/StringFieldFilterExact' currency: $ref: '#/components/schemas/StringFieldFilterExact' additionalProperties: false ListChargesParamsFilter: description: Filter options for listing charges. type: object properties: status: description: |- Filter charges by status. Supported statuses are: - `created` - `active` - `final` - `deleted` If omitted, all statuses are returned except for `deleted`. type: object additionalProperties: false properties: eq: type: string oeq: type: string neq: type: string required: - oeq - neq title: StringFieldNEQFilter additionalProperties: false ListCreditGrantsParamsFilter: description: Filter options for listing credit grants. type: object properties: status: description: Filter credit grants by status. type: string enum: - pending - active - expired - voided title: Credit grant lifecycle status x-speakeasy-unknown-values: allow currency: description: Filter credit grants by currency. type: string example: USD maxLength: 3 minLength: 3 pattern: '^[A-Z]{3}$' key: description: Filter credit grants by key. type: object additionalProperties: false properties: eq: type: string contains: type: string ocontains: type: string oeq: type: string neq: type: string required: - contains - ocontains - oeq - neq title: StringFieldNEQFilter additionalProperties: false ListCreditTransactionsParamsFilter: description: Filter options for listing credit transactions. type: object properties: type: description: Filter credit transactions by type. type: string enum: - funded - consumed - expired x-speakeasy-unknown-values: allow currency: description: Filter credit transactions by currency. type: string example: USD maxLength: 3 minLength: 3 pattern: '^[A-Z]{3}$' feature_key: description: |- Filter credit transactions by feature key. Omit to return all credit transactions. Use `exists=false` to return only unrestricted credit transactions. type: object additionalProperties: false properties: eq: type: string contains: type: string ocontains: type: string oeq: type: string neq: type: string required: - contains - ocontains - oeq - neq title: StringFieldNEQFilter additionalProperties: false ListCustomerEntitlementAccessResponseData: description: List customer entitlement access response data. type: object properties: data: description: The list of entitlement access results. type: array items: $ref: '#/components/schemas/BillingEntitlementAccessResult' readOnly: true additionalProperties: false required: - data ListCustomersParamsFilter: description: Filter options for listing customers. type: object properties: key: $ref: '#/components/schemas/StringFieldFilter' name: $ref: '#/components/schemas/StringFieldFilter' primary_email: $ref: '#/components/schemas/StringFieldFilter' usage_attribution_subject_key: $ref: '#/components/schemas/StringFieldFilter' plan_key: $ref: '#/components/schemas/StringFieldFilter' billing_profile_id: $ref: '#/components/schemas/ULIDFieldFilter' additionalProperties: false ListEventsParamsFilter: description: Filter options for listing ingested events. type: object properties: id: description: Filter events by ID. type: object additionalProperties: false properties: eq: type: string contains: type: string ocontains: type: string oeq: type: string neq: type: string required: - contains - ocontains - oeq - neq title: StringFieldNEQFilter source: description: Filter events by source. type: object additionalProperties: false properties: eq: type: string contains: type: string ocontains: type: string oeq: type: string neq: type: string required: - contains - ocontains - oeq - neq title: StringFieldNEQFilter subject: description: Filter events by subject. type: object additionalProperties: false properties: eq: type: string contains: type: string ocontains: type: string oeq: type: string neq: type: string required: - contains - ocontains - oeq - neq title: StringFieldNEQFilter type: description: Filter events by type. type: object additionalProperties: false properties: eq: type: string contains: type: string ocontains: type: string oeq: type: string neq: type: string required: - contains - ocontains - oeq - neq title: StringFieldNEQFilter customer_id: description: Filter events by the associated customer ID. anyOf: - $ref: '#/components/schemas/ULID' - type: object properties: eq: description: Value strictly equals the given ULID value. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: ULID oeq: description: |- Returns entities that exact match any of the comma-delimited ULIDs in the filter string. type: string items: $ref: '#/components/schemas/ULID' format: ArrayEncoding.commaDelimited neq: description: Value does not equal the given ULID value. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: ULID additionalProperties: false title: ULID Field Filter x-go-type: filters.FilterULID x-go-type-import: path: github.com/openmeterio/openmeter/api/v3/filters time: description: Filter events by event time. oneOf: - type: object title: DateTimeFieldEqualsFilter additionalProperties: false properties: eq: description: Value strictly equals given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - eq - type: object title: DateTimeFieldLTFilter additionalProperties: false properties: lt: description: Value is less than the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - lt - type: object title: DateTimeFieldLTEFilter additionalProperties: false properties: lte: description: Value is less than or equal to the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - lte - type: object title: DateTimeFieldGTFilter additionalProperties: false properties: gt: description: Value is greater than the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - gt - type: object title: DateTimeFieldGTEFilter additionalProperties: false properties: gte: description: Value is greater than or equal to the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - gte title: DateTimeFieldFilter ingested_at: description: Filter events by the time the event was ingested. oneOf: - type: object title: DateTimeFieldEqualsFilter additionalProperties: false properties: eq: description: Value strictly equals given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - eq - type: object title: DateTimeFieldLTFilter additionalProperties: false properties: lt: description: Value is less than the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - lt - type: object title: DateTimeFieldLTEFilter additionalProperties: false properties: lte: description: Value is less than or equal to the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - lte - type: object title: DateTimeFieldGTFilter additionalProperties: false properties: gt: description: Value is greater than the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - gt - type: object title: DateTimeFieldGTEFilter additionalProperties: false properties: gte: description: Value is greater than or equal to the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - gte title: DateTimeFieldFilter stored_at: description: Filter events by the time the event was stored. oneOf: - type: object title: DateTimeFieldEqualsFilter additionalProperties: false properties: eq: description: Value strictly equals given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - eq - type: object title: DateTimeFieldLTFilter additionalProperties: false properties: lt: description: Value is less than the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - lt - type: object title: DateTimeFieldLTEFilter additionalProperties: false properties: lte: description: Value is less than or equal to the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - lte - type: object title: DateTimeFieldGTFilter additionalProperties: false properties: gt: description: Value is greater than the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - gt - type: object title: DateTimeFieldGTEFilter additionalProperties: false properties: gte: description: Value is greater than or equal to the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - gte title: DateTimeFieldFilter additionalProperties: false ListFeatureParamsFilter: description: Filter options for listing features. type: object properties: meter_id: $ref: '#/components/schemas/ULIDFieldFilter' key: $ref: '#/components/schemas/StringFieldFilter' name: $ref: '#/components/schemas/StringFieldFilter' additionalProperties: false ListLLMCostPricesParamsFilter: description: Filter options for listing LLM cost prices. type: object properties: provider: description: 'Filter by provider. e.g. ?filter[provider][eq]=openai' type: object additionalProperties: false properties: eq: type: string contains: type: string ocontains: type: string oeq: type: string neq: type: string required: - contains - ocontains - oeq - neq title: StringFieldNEQFilter model_id: description: 'Filter by model ID. e.g. ?filter[model_id][eq]=gpt-4' type: object additionalProperties: false properties: eq: type: string contains: type: string ocontains: type: string oeq: type: string neq: type: string required: - contains - ocontains - oeq - neq title: StringFieldNEQFilter model_name: description: 'Filter by model name. e.g. ?filter[model_name][contains]=gpt' type: object additionalProperties: false properties: eq: type: string contains: type: string ocontains: type: string oeq: type: string neq: type: string required: - contains - ocontains - oeq - neq title: StringFieldNEQFilter currency: description: 'Filter by currency code. e.g. ?filter[currency][eq]=USD' type: object additionalProperties: false properties: eq: type: string contains: type: string ocontains: type: string oeq: type: string neq: type: string required: - contains - ocontains - oeq - neq title: StringFieldNEQFilter source: description: 'Filter by source. e.g. ?filter[source][eq]=system' type: object additionalProperties: false properties: eq: type: string contains: type: string ocontains: type: string oeq: type: string neq: type: string required: - contains - ocontains - oeq - neq title: StringFieldNEQFilter additionalProperties: false ListMetersParamsFilter: description: Filter options for listing meters. type: object properties: key: description: Filter meters by key. type: object additionalProperties: false properties: eq: type: string contains: type: string ocontains: type: string oeq: type: string neq: type: string required: - contains - ocontains - oeq - neq title: StringFieldNEQFilter name: description: Filter meters by name. type: object additionalProperties: false properties: eq: type: string contains: type: string ocontains: type: string oeq: type: string neq: type: string required: - contains - ocontains - oeq - neq title: StringFieldNEQFilter additionalProperties: false ListPlansParamsFilter: description: Filter options for listing plans. type: object properties: key: $ref: '#/components/schemas/StringFieldFilter' name: $ref: '#/components/schemas/StringFieldFilter' status: $ref: '#/components/schemas/StringFieldFilterExact' currency: $ref: '#/components/schemas/StringFieldFilterExact' additionalProperties: false ListSubscriptionsParamsFilter: description: Filter options for listing subscriptions. type: object properties: id: $ref: '#/components/schemas/ULIDFieldFilter' customer_id: $ref: '#/components/schemas/ULIDFieldFilter' status: $ref: '#/components/schemas/StringFieldFilterExact' plan_id: $ref: '#/components/schemas/ULIDFieldFilter' plan_key: $ref: '#/components/schemas/StringFieldFilterExact' additionalProperties: false Meter: description: A meter is a configuration that defines how to match and aggregate events. type: object properties: id: description: ULID (Universally Unique Lexicographically Sortable Identifier). type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: ULID name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' created_at: description: An ISO-8601 timestamp representation of entity creation date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time updated_at: description: An ISO-8601 timestamp representation of entity last update date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time deleted_at: description: An ISO-8601 timestamp representation of entity deletion date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time key: $ref: '#/components/schemas/ResourceKey' aggregation: description: The aggregation type to use for the meter. type: string enum: - sum - count - unique_count - avg - min - max - latest x-speakeasy-unknown-values: allow event_type: description: The event type to include in the aggregation. type: string example: prompt minLength: 1 events_from: description: |- The date since the meter should include events. Useful to skip old events. If not specified, all historical events are included. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: RFC3339 Date-Time value_property: description: |- JSONPath expression to extract the value from the ingested event's data property. The ingested value for sum, avg, min, and max aggregations is a number or a string that can be parsed to a number. For unique_count aggregation, the ingested value must be a string. For count aggregation the value_property is ignored. type: string example: $.tokens minLength: 1 dimensions: description: |- Named JSONPath expressions to extract the group by values from the event data. Keys must be unique and consist only alphanumeric and underscore characters. type: object example: type: $.type additionalProperties: type: string example: id: 01G65Z755AFWAKHE12NY0CQ9FH key: tokens_total name: Tokens Total description: AI Token Usage aggregation: sum event_type: prompt value_property: $.tokens dimensions: model: $.model type: $.type created_at: '2024-01-01T01:01:01.001Z' updated_at: '2024-01-01T01:01:01.001Z' additionalProperties: false required: - id - name - created_at - updated_at - key - aggregation - event_type MeterPagePaginatedResponse: description: Page paginated response. type: object properties: data: type: array items: $ref: '#/components/schemas/Meter' meta: $ref: '#/components/schemas/PaginatedMeta' additionalProperties: false required: - data - meta MeterQueryRequest: description: A meter query request. type: object properties: from: description: The start of the period the usage is queried from. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: RFC3339 Date-Time to: description: The end of the period the usage is queried to. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: RFC3339 Date-Time granularity: description: |- The size of the time buckets to group the usage into. If not specified, the usage is aggregated over the entire period. type: string enum: - PT1M - PT1H - P1D - P1M x-speakeasy-unknown-values: allow time_zone: description: |- The value is the name of the time zone as defined in the IANA Time Zone Database (http://www.iana.org/time-zones). The time zone is used to determine the start and end of the time buckets. If not specified, the UTC timezone will be used. type: string default: UTC group_by_dimensions: description: The dimensions to group the results by. type: array items: type: string example: - model - type maxItems: 100 filters: description: Filters to apply to the query. type: object additionalProperties: false properties: dimensions: description: |- Filters to apply to the dimensions of the query. For `subject` and `customer_id` only equals ("eq", "in") comparisons are supported. type: object additionalProperties: $ref: '#/components/schemas/QueryFilterStringMapItem' maxProperties: 10 example: from: '2023-01-01T00:00:00Z' to: '2023-01-02T00:00:00Z' granularity: P1D time_zone: UTC additionalProperties: false MeterQueryResult: description: Meter query result. type: object properties: from: description: The start of the period the usage is queried from. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: RFC3339 Date-Time to: description: The end of the period the usage is queried to. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: RFC3339 Date-Time data: description: 'The usage data. If no data is available, an empty array is returned.' type: array items: $ref: '#/components/schemas/MeterQueryRow' example: from: '2023-01-01T00:00:00Z' to: '2023-01-02T00:00:00Z' data: - value: '12.3456' from: '2023-01-01T00:00:00Z' to: '2023-01-02T00:00:00Z' dimensions: customer_id: 01G65Z755AFWAKHE12NY0CQ9FH model: gpt-4-turbo type: input additionalProperties: false required: - data MeterQueryRow: description: A row in the result of a meter query. type: object properties: value: description: The aggregated value. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' from: description: The start of the time bucket the value is aggregated over. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: RFC3339 Date-Time to: description: The end of the time bucket the value is aggregated over. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: RFC3339 Date-Time dimensions: description: |- The dimensions the value is aggregated over. `subject` and `customer_id` are reserved dimensions. type: object additionalProperties: type: string example: value: '12.3456' from: '2023-01-01T00:00:00Z' to: '2023-01-02T00:00:00Z' dimensions: customer_id: 01G65Z755AFWAKHE12NY0CQ9FH model: gpt-4-turbo type: input additionalProperties: false required: - value - from - to - dimensions MeteringEvent: description: Metering event following the CloudEvents specification. type: object properties: id: description: Identifies the event. type: string example: 5c10fade-1c9e-4d6c-8275-c52c36731d3c minLength: 1 source: description: Identifies the context in which an event happened. type: string format: uri-reference example: service-name minLength: 1 specversion: description: The version of the CloudEvents specification which the event uses. type: string example: '1.0' default: '1.0' minLength: 1 type: description: |- Contains a value describing the type of event related to the originating occurrence. type: string example: com.example.someevent minLength: 1 datacontenttype: description: |- Content type of the CloudEvents data value. Only the value "application/json" is allowed over HTTP. type: string example: application/json enum: - application/json nullable: true dataschema: description: Identifies the schema that data adheres to. type: string format: uri minLength: 1 nullable: true subject: description: |- Describes the subject of the event in the context of the event producer (identified by source). type: string example: customer-id minLength: 1 time: description: Timestamp of when the occurrence happened. Must adhere to RFC 3339. type: string format: date-time example: '2023-01-01T01:01:01.001Z' nullable: true title: RFC3339 Date-Time data: description: 'The event payload. Optional, if present it must be a JSON object.' type: object additionalProperties: {} nullable: true example: specversion: '1.0' id: 5c10fade-1c9e-4d6c-8275-c52c36731d3c source: service-name type: prompt subject: customer-id time: '2023-01-01T01:01:01.001Z' data: prompt: 'Hello, world!' tokens: 100 model: gpt-4o type: input additionalProperties: false required: - id - source - specversion - type - subject title: Metering Event MeteringIngestedEvent: description: An ingested metering event with ingestion metadata. type: object properties: event: description: The original event ingested. type: object example: specversion: '1.0' id: 5c10fade-1c9e-4d6c-8275-c52c36731d3c source: service-name type: prompt subject: customer-id time: '2023-01-01T01:01:01.001Z' data: prompt: 'Hello, world!' tokens: 100 model: gpt-4o type: input additionalProperties: false properties: id: description: Identifies the event. type: string example: 5c10fade-1c9e-4d6c-8275-c52c36731d3c minLength: 1 source: description: Identifies the context in which an event happened. type: string format: uri-reference example: service-name minLength: 1 specversion: description: The version of the CloudEvents specification which the event uses. type: string example: '1.0' default: '1.0' minLength: 1 type: description: |- Contains a value describing the type of event related to the originating occurrence. type: string example: com.example.someevent minLength: 1 datacontenttype: description: |- Content type of the CloudEvents data value. Only the value "application/json" is allowed over HTTP. type: string example: application/json enum: - application/json nullable: true dataschema: description: Identifies the schema that data adheres to. type: string format: uri minLength: 1 nullable: true subject: description: |- Describes the subject of the event in the context of the event producer (identified by source). type: string example: customer-id minLength: 1 time: description: Timestamp of when the occurrence happened. Must adhere to RFC 3339. type: string format: date-time example: '2023-01-01T01:01:01.001Z' nullable: true title: RFC3339 Date-Time data: description: 'The event payload. Optional, if present it must be a JSON object.' type: object additionalProperties: {} nullable: true required: - id - source - specversion - type - subject title: Metering Event customer: description: The customer if the event is associated with a customer. type: object additionalProperties: false properties: id: $ref: '#/components/schemas/ULID' required: - id ingested_at: description: The date and time the event was ingested and its processing started. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: RFC3339 Date-Time stored_at: description: The date and time the event was stored in the database. type: string format: date-time example: '2023-01-01T01:01:01.001Z' title: RFC3339 Date-Time validation_errors: description: The validation errors of the ingested event. type: array items: $ref: '#/components/schemas/MeteringIngestedEventValidationError' example: event: id: 5c10fade-1c9e-4d6c-8275-c52c36731d3c source: service-name specversion: '1.0' type: prompt subject: customer_key time: '2023-01-01T01:01:01.001Z' customer: id: 01G65Z755AFWAKHE12NY0CQ9FH ingested_at: '2023-01-01T01:01:01.001Z' stored_at: '2023-01-01T01:01:02.001Z' additionalProperties: false required: - event - ingested_at - stored_at title: Ingested Event MeteringIngestedEventValidationError: description: Event validation errors. type: object properties: code: description: The machine readable code of the error. type: string readOnly: true title: Code message: description: The human readable description of the error. type: string readOnly: true title: Message attributes: description: Additional attributes. type: object additionalProperties: {} readOnly: true title: Attributes additionalProperties: false required: - code - message Numeric: description: Numeric represents an arbitrary precision number. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' OrganizationDefaultTaxCodes: description: |- Organization-level default tax code references. Stores the default tax codes applied to specific billing contexts for this organization. Provisioned automatically when the organization is created. type: object properties: invoicing_tax_code: description: Default tax code for invoicing. type: object additionalProperties: false properties: id: $ref: '#/components/schemas/ULID' required: - id title: Invoicing tax code credit_grant_tax_code: description: Default tax code for credit grants. type: object additionalProperties: false properties: id: $ref: '#/components/schemas/ULID' required: - id title: Credit grant tax code created_at: description: Timestamp of creation. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time updated_at: description: Timestamp of last update. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time additionalProperties: false required: - invoicing_tax_code - credit_grant_tax_code - created_at - updated_at PlanAddon: description: |- PlanAddon represents an association between a plan and an add-on, controlling which add-ons are available for purchase within a plan. type: object properties: id: description: ULID (Universally Unique Lexicographically Sortable Identifier). type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: ULID name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' created_at: description: An ISO-8601 timestamp representation of entity creation date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time updated_at: description: An ISO-8601 timestamp representation of entity last update date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time deleted_at: description: An ISO-8601 timestamp representation of entity deletion date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time addon: description: The add-on associated with the plan. type: object additionalProperties: false properties: id: $ref: '#/components/schemas/ULID' required: - id title: Add-on from_plan_phase: description: The key of the plan phase from which the add-on becomes available for purchase. type: string example: resource_key maxLength: 64 minLength: 1 pattern: '^[a-z0-9]+(?:_[a-z0-9]+)*$' title: From plan phase max_quantity: description: |- The maximum number of times the add-on can be purchased for the plan. For single-instance add-ons this field must be omitted. For multi-instance add-ons when omitted, unlimited quantity can be purchased. type: integer minimum: 1 title: Max quantity validation_errors: description: List of validation errors. type: array items: $ref: '#/components/schemas/ProductCatalogValidationError' readOnly: true title: Validation errors additionalProperties: false required: - id - name - created_at - updated_at - addon - from_plan_phase PlanAddonPagePaginatedResponse: description: Page paginated response. type: object properties: data: type: array items: $ref: '#/components/schemas/PlanAddon' meta: $ref: '#/components/schemas/PaginatedMeta' additionalProperties: false required: - data - meta PlanPagePaginatedResponse: description: Page paginated response. type: object properties: data: type: array items: $ref: '#/components/schemas/BillingPlan' meta: $ref: '#/components/schemas/PaginatedMeta' additionalProperties: false required: - data - meta PricePagePaginatedResponse: description: Page paginated response. type: object properties: data: type: array items: $ref: '#/components/schemas/LLMCostPrice' meta: $ref: '#/components/schemas/PaginatedMeta' additionalProperties: false required: - data - meta ProductCatalogValidationError: description: Validation errors providing detailed description of the issue. type: object properties: code: description: Machine-readable error code. type: string readOnly: true title: Code message: description: Human-readable description of the error. type: string readOnly: true title: Message attributes: description: Additional structured context. type: object additionalProperties: {} readOnly: true title: Attributes field: description: The path to the field. type: string example: addons/pro/ratecards/token/featureKey readOnly: true title: Field additionalProperties: false required: - code - message - field QueryFilterString: description: |- A query filter for a string attribute. Operators are mutually exclusive, only one operator is allowed at a time. type: object properties: eq: description: The attribute equals the provided value. type: string neq: description: The attribute does not equal the provided value. type: string in: description: The attribute is one of the provided values. type: array items: type: string maxItems: 100 minItems: 1 nin: description: The attribute is not one of the provided values. type: array items: type: string maxItems: 100 minItems: 1 contains: description: The attribute contains the provided value. type: string ncontains: description: The attribute does not contain the provided value. type: string and: description: Combines the provided filters with a logical AND. type: array items: $ref: '#/components/schemas/QueryFilterString' maxItems: 10 minItems: 1 or: description: Combines the provided filters with a logical OR. type: array items: $ref: '#/components/schemas/QueryFilterString' maxItems: 10 minItems: 1 additionalProperties: false title: Query String Filter QueryFilterStringMapItem: description: |- A query filter for an item in a string map attribute. Operators are mutually exclusive, only one operator is allowed at a time. type: object properties: exists: description: The attribute exists. type: boolean eq: description: The attribute equals the provided value. type: string neq: description: The attribute does not equal the provided value. type: string in: description: The attribute is one of the provided values. type: array items: type: string maxItems: 100 minItems: 1 nin: description: The attribute is not one of the provided values. type: array items: type: string maxItems: 100 minItems: 1 contains: description: The attribute contains the provided value. type: string ncontains: description: The attribute does not contain the provided value. type: string and: description: Combines the provided filters with a logical AND. type: array items: $ref: '#/components/schemas/QueryFilterString' maxItems: 10 minItems: 1 or: description: Combines the provided filters with a logical OR. type: array items: $ref: '#/components/schemas/QueryFilterString' maxItems: 10 minItems: 1 additionalProperties: false title: Query String Map Item Filter ResourceKey: description: A key is a unique string that is used to identify a resource. type: string example: resource_key maxLength: 64 minLength: 1 pattern: '^[a-z0-9]+(?:_[a-z0-9]+)*$' title: Resource Key SubscriptionAddon: description: Addon purchased with a subscription. type: object properties: id: description: ULID (Universally Unique Lexicographically Sortable Identifier). type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' readOnly: true title: ULID labels: $ref: '#/components/schemas/Labels' created_at: description: An ISO-8601 timestamp representation of entity creation date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time updated_at: description: An ISO-8601 timestamp representation of entity last update date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time deleted_at: description: An ISO-8601 timestamp representation of entity deletion date. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 readOnly: true description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 readOnly: true addon: description: The add-on associated with the subscription. type: object additionalProperties: false properties: id: $ref: '#/components/schemas/ULID' required: - id title: Add-on quantity: description: The quantity of the add-on. Always 1 for single instance add-ons. type: integer minimum: 1 title: Quantity quantity_at: description: |- An ISO-8601 timestamp representation of which point in time the quantity was resolved to. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time active_from: description: An ISO-8601 timestamp representation of the cadence start of the resource. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time active_to: description: An ISO-8601 timestamp representation of the cadence end of the resource. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time timeline: description: The timeline of the add-on. The returned periods are sorted and continuous. type: array items: $ref: '#/components/schemas/SubscriptionAddonTimelineSegment' example: - quantity: 1 active_from: '2025-01-01T00:00:00Z' active_to: '2025-01-02T00:00:00Z' - quantity: 0 active_from: '2025-01-02T00:00:00Z' active_to: '2025-01-03T00:00:00Z' - quantity: 1 active_from: '2025-01-03T00:00:00Z' readOnly: true title: Timeline rate_cards: description: The rate cards of the add-on. type: array items: $ref: '#/components/schemas/SubscriptionAddonRateCard' readOnly: true title: Rate cards additionalProperties: false required: - id - created_at - updated_at - name - addon - quantity - quantity_at - active_from - timeline - rate_cards SubscriptionAddonPagePaginatedResponse: description: Page paginated response. type: object properties: data: type: array items: $ref: '#/components/schemas/SubscriptionAddon' meta: $ref: '#/components/schemas/PaginatedMeta' additionalProperties: false required: - data - meta SubscriptionAddonRateCard: description: A rate card for a subscription add-on. type: object properties: rate_card: description: The rate card. type: object additionalProperties: false properties: name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' key: $ref: '#/components/schemas/ResourceKey' feature: description: The feature associated with the rate card. type: object additionalProperties: false properties: id: $ref: '#/components/schemas/ULID' required: - id title: Feature reference billing_cadence: description: |- The billing cadence of the rate card. When null, the charge is one-time (non-recurring). Only valid for flat prices. type: string format: ISO8601 example: P1Y pattern: '^P(?:\d+(?:\.\d+)?Y)?(?:\d+(?:\.\d+)?M)?(?:\d+(?:\.\d+)?W)?(?:\d+(?:\.\d+)?D)?(?:T(?:\d+(?:\.\d+)?H)?(?:\d+(?:\.\d+)?M)?(?:\d+(?:\.\d+)?S)?)?$' title: Billing cadence price: description: The price of the rate card. type: object discriminator: propertyName: type mapping: free: '#/components/schemas/BillingPriceFree' flat: '#/components/schemas/BillingPriceFlat' unit: '#/components/schemas/BillingPriceUnit' graduated: '#/components/schemas/BillingPriceGraduated' volume: '#/components/schemas/BillingPriceVolume' oneOf: - $ref: '#/components/schemas/BillingPriceFree' - $ref: '#/components/schemas/BillingPriceFlat' - $ref: '#/components/schemas/BillingPriceUnit' - $ref: '#/components/schemas/BillingPriceGraduated' - $ref: '#/components/schemas/BillingPriceVolume' title: Price unit_config: description: |- Unit conversion configuration for the rate card. Synthesized on read for plans authored with v1 dynamic or package prices: dynamic prices map to a unit price with a multiply unit config, and package prices map to a unit price with a divide unit config. Accepted on create and update only when the UnitConfig feature is enabled on the deployment; otherwise rejected. type: object additionalProperties: false properties: operation: description: The arithmetic operation to apply to the raw metered quantity. type: string enum: - divide - multiply title: Conversion operation x-speakeasy-unknown-values: allow conversion_factor: description: |- The factor used in the conversion operation. - For `divide`: `converted = raw / conversionFactor`. - For `multiply`: `converted = raw × conversionFactor`. Must be a positive non-zero value. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' title: Conversion factor rounding: description: |- The rounding mode applied to the converted quantity for invoicing. Defaults to none (no rounding). Entitlement checks always use the precise (unrounded) value. type: string default: none enum: - ceiling - floor - half_up - none title: Rounding mode x-speakeasy-unknown-values: allow precision: description: |- The number of decimal places to retain after rounding. Only meaningful when rounding is not "none". Defaults to 0 (round to whole numbers). type: integer default: 0 title: Rounding precision (decimal places) display_unit: description: |- A human-readable label for the converted unit shown on invoices and in the customer portal (e.g., "GB", "hours", "M tokens"). Optional. When omitted, no unit label is rendered. type: string title: Display unit label required: - operation - conversion_factor title: Unit config payment_term: description: |- The payment term of the rate card. In advance payment term can only be used for flat prices. type: string default: in_arrears enum: - in_advance - in_arrears title: Payment term x-speakeasy-unknown-values: allow commitments: description: |- Spend commitments for this rate card. Only applicable to usage-based prices (unit, graduated, volume). type: object additionalProperties: false properties: minimum_amount: description: The customer is committed to spend at least the amount. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' title: Minimum amount maximum_amount: description: The customer is limited to spend at most the amount. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' title: Maximum amount title: Commitments discounts: description: The discounts of the rate card. type: object additionalProperties: false properties: percentage: description: Percentage discount applied to the price (0–100). type: number maximum: 100 minimum: 0 usage: description: |- Number of usage units granted free before billing starts. Only applies to usage-based lines (not flat fees). Usage is treated as zero until this amount is exhausted. type: string pattern: '^\-?[0-9]+(\.[0-9]+)?$' title: Discounts tax_config: description: The tax config of the rate card. type: object additionalProperties: false properties: behavior: $ref: '#/components/schemas/BillingTaxBehavior' code: $ref: '#/components/schemas/TaxCodeReference' required: - code title: Tax config entitlement: description: |- The entitlement template granted to subscribers of a plan or addon containing this rate card. Requires `feature` to be set. type: object discriminator: propertyName: type mapping: metered: '#/components/schemas/BillingRateCardMeteredEntitlement' static: '#/components/schemas/BillingRateCardStaticEntitlement' boolean: '#/components/schemas/BillingRateCardBooleanEntitlement' oneOf: - $ref: '#/components/schemas/BillingRateCardMeteredEntitlement' - $ref: '#/components/schemas/BillingRateCardStaticEntitlement' - $ref: '#/components/schemas/BillingRateCardBooleanEntitlement' title: Entitlement template required: - name - key - price title: Rate card affected_subscription_item_ids: description: The IDs of the subscription items that this rate card belongs to. type: array items: $ref: '#/components/schemas/ULID' readOnly: true title: Affected subscription item IDs additionalProperties: false required: - rate_card - affected_subscription_item_ids SubscriptionAddonTimelineSegment: description: A subscription add-on event. type: object properties: active_from: description: An ISO-8601 timestamp representation of the cadence start of the resource. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time active_to: description: An ISO-8601 timestamp representation of the cadence end of the resource. type: string format: date-time example: '2023-01-01T01:01:01.001Z' readOnly: true title: RFC3339 Date-Time quantity: description: The quantity of the add-on for the given period. type: integer example: 1 minimum: 0 readOnly: true title: Quantity additionalProperties: false required: - active_from - quantity SubscriptionPagePaginatedResponse: description: Page paginated response. type: object properties: data: type: array items: $ref: '#/components/schemas/BillingSubscription' meta: $ref: '#/components/schemas/PaginatedMeta' additionalProperties: false required: - data - meta TaxCodePagePaginatedResponse: description: Page paginated response. type: object properties: data: type: array items: $ref: '#/components/schemas/BillingTaxCode' meta: $ref: '#/components/schemas/PaginatedMeta' additionalProperties: false required: - data - meta TaxCodeReference: description: TaxCode reference. type: object properties: id: $ref: '#/components/schemas/ULID' additionalProperties: false required: - id ULID: description: ULID (Universally Unique Lexicographically Sortable Identifier). type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: ULID ULIDFieldFilter: description: |- Filters on the given ULID field value by exact match. All properties are optional; provide exactly one to specify the comparison. anyOf: - $ref: '#/components/schemas/ULID' - type: object properties: eq: description: Value strictly equals the given ULID value. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: ULID oeq: description: |- Returns entities that exact match any of the comma-delimited ULIDs in the filter string. type: string items: $ref: '#/components/schemas/ULID' format: ArrayEncoding.commaDelimited neq: description: Value does not equal the given ULID value. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: ULID additionalProperties: false title: ULID Field Filter x-go-type: filters.FilterULID x-go-type-import: path: github.com/openmeterio/openmeter/api/v3/filters UpdateCreditGrantExternalSettlementRequest: description: |- Request body for updating the external payment settlement status of a credit grant. type: object properties: status: description: The new payment settlement status. type: string enum: - pending - authorized - settled title: Credit purchase payment settlement status x-speakeasy-unknown-values: allow additionalProperties: false required: - status UpdateFeatureRequest: description: |- Request body for updating a feature. Currently only the unit_cost field can be updated. type: object properties: unit_cost: description: |- Optional per-unit cost configuration. Use "manual" for a fixed per-unit cost, or "llm" to look up cost from the LLM cost database based on meter group-by properties. Set to `null` to clear the existing unit cost; omit to leave it unchanged. type: object discriminator: propertyName: type mapping: manual: '#/components/schemas/BillingFeatureManualUnitCost' llm: '#/components/schemas/BillingFeatureLLMUnitCost' nullable: true oneOf: - $ref: '#/components/schemas/BillingFeatureManualUnitCost' - $ref: '#/components/schemas/BillingFeatureLLMUnitCost' title: Unit cost additionalProperties: false UpdateMeterRequest: description: Meter update request. type: object properties: name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' dimensions: description: |- Named JSONPath expressions to extract the group by values from the event data. Keys must be unique and consist only alphanumeric and underscore characters. type: object example: type: $.type additionalProperties: type: string additionalProperties: false UpdateOrganizationDefaultTaxCodesRequest: description: OrganizationDefaultTaxCodes update request. type: object properties: invoicing_tax_code: description: Default tax code for invoicing. type: object additionalProperties: false properties: id: $ref: '#/components/schemas/ULID' required: - id title: Invoicing tax code credit_grant_tax_code: description: Default tax code for credit grants. type: object additionalProperties: false properties: id: $ref: '#/components/schemas/ULID' required: - id title: Credit grant tax code additionalProperties: false UpsertAddonRequest: description: Addon upsert request. type: object properties: name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' instance_type: description: The InstanceType of the add-ons. Can be "single" or "multiple". type: string enum: - single - multiple title: The InstanceType of the add-ons. Can be "single" or "multiple". x-speakeasy-unknown-values: allow rate_cards: description: The rate cards of the add-on. type: array items: $ref: '#/components/schemas/BillingRateCard' title: Rate cards additionalProperties: false required: - name - instance_type - rate_cards UpsertAppCustomerDataRequest: description: AppCustomerData upsert request. type: object properties: stripe: description: Used if the customer has a linked Stripe app. type: object additionalProperties: false properties: customer_id: description: The Stripe customer ID used. type: string example: cus_1234567890 title: Stripe customer ID default_payment_method_id: description: The Stripe default payment method ID. type: string example: pm_1234567890 title: Stripe default payment method ID labels: description: Labels for this Stripe integration on the customer. 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 maxProperties: 50 title: Labels title: Stripe external_invoicing: description: Used if the customer has a linked external invoicing app. type: object additionalProperties: false properties: labels: description: Labels for this external invoicing integration on the customer. 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 maxProperties: 50 title: Labels title: External invoicing additionalProperties: false UpsertBillingProfileRequest: description: BillingProfile upsert request. type: object properties: name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' supplier: description: |- The name and contact information for the supplier this billing profile represents type: object additionalProperties: false properties: id: description: Unique identifier for the party. type: string readOnly: true key: description: An optional unique key of the party. type: string example: 019ae40f-4258-7f15-9491-842f42a7d6ac maxLength: 256 minLength: 1 title: External Resource Key name: description: Legal name or representation of the party. type: string tax_id: description: |- The entity's legal identification used for tax purposes. They may have other numbers, but we're only interested in those valid for tax purposes. type: object additionalProperties: false properties: code: description: Normalized tax identification code shown on the original identity document. type: string maxLength: 32 minLength: 1 addresses: description: Address for where information should be sent if needed. type: object additionalProperties: false properties: billing_address: description: Billing address. type: object additionalProperties: false properties: country: description: |- Country code in [ISO 3166-1](https://www.iso.org/iso-3166-country-codes.html) alpha-2 format. type: string example: US maxLength: 2 minLength: 2 pattern: '^[A-Z]{2}$' title: Country postal_code: description: Postal code. type: string title: Postal Code state: description: State or province. type: string title: State city: description: City. type: string title: City line1: description: First line of the address. type: string title: Line 1 line2: description: Second line of the address. type: string title: Line 2 phone_number: description: Phone number. type: string title: Phone Number required: - billing_address workflow: description: The billing workflow settings for this profile type: object additionalProperties: false properties: collection: description: The collection settings for this workflow type: object additionalProperties: false properties: alignment: description: The alignment for collecting the pending line items into an invoice. type: object default: type: subscription discriminator: propertyName: type mapping: subscription: '#/components/schemas/BillingWorkflowCollectionAlignmentSubscription' anchored: '#/components/schemas/BillingWorkflowCollectionAlignmentAnchored' oneOf: - $ref: '#/components/schemas/BillingWorkflowCollectionAlignmentSubscription' - $ref: '#/components/schemas/BillingWorkflowCollectionAlignmentAnchored' interval: description: |- This grace period can be used to delay the collection of the pending line items specified in alignment. This is useful, in case of multiple subscriptions having slightly different billing periods. type: string format: ISO8601 example: P1D default: PT1H title: Workflow collection settings invoicing: description: The invoicing settings for this workflow type: object additionalProperties: false properties: auto_advance: description: Whether to automatically issue the invoice after the draftPeriod has passed. type: boolean default: true draft_period: description: The period for the invoice to be kept in draft status for manual reviews. type: string format: ISO8601 example: P1D default: P0D progressive_billing: description: Should progressive billing be allowed for this workflow? type: boolean default: true subscription_end_proration_mode: description: Controls how subscription-ending shortened service periods are billed. type: string default: bill_actual_period enum: - bill_full_period - bill_actual_period x-speakeasy-unknown-values: allow title: Workflow invoice settings payment: description: The payment settings for this workflow type: object discriminator: propertyName: collection_method mapping: charge_automatically: '#/components/schemas/BillingWorkflowPaymentChargeAutomaticallySettings' send_invoice: '#/components/schemas/BillingWorkflowPaymentSendInvoiceSettings' oneOf: - $ref: '#/components/schemas/BillingWorkflowPaymentChargeAutomaticallySettings' - $ref: '#/components/schemas/BillingWorkflowPaymentSendInvoiceSettings' tax: description: The tax settings for this workflow type: object additionalProperties: false properties: enabled: description: |- Enable automatic tax calculation when tax is supported by the app. For example, with Stripe Invoicing when enabled, tax is calculated via Stripe Tax. type: boolean default: true enforced: description: |- Enforce tax calculation when tax is supported by the app. When enabled, the billing system will not allow to create an invoice without tax calculation. Enforcement is different per apps, for example, Stripe app requires customer to have a tax location when starting a paid subscription. type: boolean default: false default_tax_config: description: |- Default tax configuration to apply to the invoices for line items. Setting a tax code (`stripe.code` / `taxCodeId`) on a profile's default tax config is deprecated and can no longer be added or changed: the organization default tax code is used instead. Existing tax-code values may still be removed, and `behavior` remains fully supported. type: object additionalProperties: false properties: behavior: description: |- Tax behavior. If not specified the billing profile is used to determine the tax behavior. If not specified in the billing profile, the provider's default behavior is used. type: string enum: - inclusive - exclusive title: Tax behavior x-speakeasy-unknown-values: allow stripe: description: Stripe tax config. type: object additionalProperties: false deprecated: true properties: code: description: 'Product [tax code](https://docs.stripe.com/tax/tax-codes).' type: string example: txcd_10000000 pattern: '^txcd_\d{8}$' title: Tax code required: - code title: Stripe tax config external_invoicing: description: External invoicing tax config. type: object additionalProperties: false deprecated: true properties: code: description: The tax code should be interpreted by the external invoicing provider. type: string maxLength: 64 title: Tax code required: - code title: External invoicing tax config tax_code_id: description: Tax code ID. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH deprecated: true pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: Tax code ID tax_code: description: |- Tax code reference. When both `tax_code` and `tax_code_id` are provided, `tax_code` takes precedence. When `stripe.code` is also provided, `tax_code` still wins and `stripe.code` is ignored. type: object additionalProperties: false properties: id: $ref: '#/components/schemas/ULID' required: - id title: Tax code title: Workflow tax settings default: description: Whether this is the default profile. type: boolean additionalProperties: false required: - name - supplier - workflow - default UpsertCustomerBillingDataRequest: description: CustomerBillingData upsert request. type: object properties: billing_profile: description: |- The billing profile for the customer. If not provided, the default billing profile will be used. type: object additionalProperties: false properties: id: description: The ID of the billing profile. type: string example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: '^[0-7][0-9A-HJKMNP-TV-Z]{25}$' title: ULID required: - id title: Billing profile app_data: description: App customer data. type: object additionalProperties: false properties: stripe: description: Used if the customer has a linked Stripe app. type: object additionalProperties: false properties: customer_id: description: The Stripe customer ID used. type: string example: cus_1234567890 title: Stripe customer ID default_payment_method_id: description: The Stripe default payment method ID. type: string example: pm_1234567890 title: Stripe default payment method ID labels: description: Labels for this Stripe integration on the customer. 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 maxProperties: 50 title: Labels title: Stripe external_invoicing: description: Used if the customer has a linked external invoicing app. type: object additionalProperties: false properties: labels: description: Labels for this external invoicing integration on the customer. 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 maxProperties: 50 title: Labels title: External invoicing title: App customer data additionalProperties: false UpsertCustomerRequest: description: Customer upsert request. type: object properties: name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' usage_attribution: description: Mapping to attribute metered usage to the customer by the event subject. type: object additionalProperties: false properties: subject_keys: description: |- The subjects that are attributed to the customer. Can be empty when no usage event subjects are associated with the customer. type: array items: $ref: '#/components/schemas/UsageAttributionSubjectKey' minItems: 0 title: Subject Keys required: - subject_keys title: Usage Attribution primary_email: description: The primary email address of the customer. type: string title: Primary Email currency: description: 'Currency of the customer. Used for billing, tax and invoicing.' type: string example: USD maxLength: 3 minLength: 3 pattern: '^[A-Z]{3}$' title: Currency billing_address: description: The billing address of the customer. Used for tax and invoicing. type: object additionalProperties: false properties: country: description: |- Country code in [ISO 3166-1](https://www.iso.org/iso-3166-country-codes.html) alpha-2 format. type: string example: US maxLength: 2 minLength: 2 pattern: '^[A-Z]{2}$' title: Country postal_code: description: Postal code. type: string title: Postal Code state: description: State or province. type: string title: State city: description: City. type: string title: City line1: description: First line of the address. type: string title: Line 1 line2: description: Second line of the address. type: string title: Line 2 phone_number: description: Phone number. type: string title: Phone Number title: Billing Address additionalProperties: false required: - name UpsertPlanAddonRequest: description: PlanAddon upsert request. type: object properties: name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' from_plan_phase: description: The key of the plan phase from which the add-on becomes available for purchase. type: string example: resource_key maxLength: 64 minLength: 1 pattern: '^[a-z0-9]+(?:_[a-z0-9]+)*$' title: From plan phase max_quantity: description: |- The maximum number of times the add-on can be purchased for the plan. For single-instance add-ons this field must be omitted. For multi-instance add-ons when omitted, unlimited quantity can be purchased. type: integer minimum: 1 title: Max quantity additionalProperties: false required: - name - from_plan_phase UpsertPlanRequest: description: Plan upsert request. type: object properties: name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' pro_rating_enabled: description: Whether pro-rating is enabled for this plan. type: boolean default: true title: Pro-rating enabled phases: description: |- The plan phases define the pricing ramp for a subscription. A phase switch occurs only at the end of a billing period. At least one phase is required. type: array items: $ref: '#/components/schemas/BillingPlanPhase' minItems: 1 title: Plan phases additionalProperties: false required: - name - phases UpsertTaxCodeRequest: description: TaxCode upsert request. type: object properties: name: description: |- Display name of the resource. Between 1 and 256 characters. type: string maxLength: 256 minLength: 1 description: description: |- Optional description of the resource. Maximum 1024 characters. type: string maxLength: 1024 labels: $ref: '#/components/schemas/Labels' app_mappings: description: Mapping of app types to tax codes. type: array items: $ref: '#/components/schemas/BillingTaxCodeAppMapping' title: App type to tax code mappings additionalProperties: false required: - name - app_mappings UsageAttributionSubjectKey: description: Subject key. type: string minLength: 1 GoneError: allOf: - $ref: '#/components/schemas/BaseError' - type: object properties: status: example: 410 title: example: Gone type: example: 'https://httpstatuses.com/410' instance: example: 'kong:trace:1234567890' detail: example: Gone AIGatewayEntityIdentifier: description: 'Identifier for an AI Gateway entity. In some cases, this may be the entity name or ID.' type: string example: my-entity-name maxLength: 256 minLength: 1 pattern: '^[A-Za-z0-9._-]{1,256}$' AIGatewayProxyURL: 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 port: description: Port of the proxy URL. type: integer protocol: description: Protocol of the proxy URL. type: string example: host: example.com port: 443 protocol: https additionalProperties: false required: - host - port - protocol CreateAIGatewayRequest: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: display_name: description: The display name for this AI Gateway. type: string example: My AI Gateway maxLength: 256 minLength: 1 name: description: The name for this AI Gateway. This value is immutable after creation. example: my-ai-gateway allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' description: description: The description of the AI Gateway. type: string example: An AI Gateway for my organization. maxLength: 1024 proxy_urls: description: Array of proxy URLs associated with reaching the data-planes connected to a control-plane. type: array items: $ref: '#/components/schemas/AIGatewayProxyURL' format: set labels: $ref: '#/components/schemas/PublicLabels' additionalProperties: true required: - display_name - name UpdateAIGatewayRequest: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: display_name: description: The display name for this AI Gateway. type: string example: My AI Gateway maxLength: 256 minLength: 1 name: description: The name for this AI Gateway. This value is immutable after creation. example: my-ai-gateway allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' description: description: The description of the AI Gateway. type: string example: An AI Gateway for my organization. maxLength: 1024 proxy_urls: description: Array of proxy URLs associated with reaching the data-planes connected to a control-plane. type: array items: $ref: '#/components/schemas/AIGatewayProxyURL' format: set labels: $ref: '#/components/schemas/PublicLabels' additionalProperties: true required: - display_name - name AIGateway: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: display_name: description: The display name for this AI Gateway. type: string example: My AI Gateway maxLength: 256 minLength: 1 name: description: The name for this AI Gateway. This value is immutable after creation. example: my-ai-gateway allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' description: description: The description of the AI Gateway. type: string example: An AI Gateway for my organization. maxLength: 1024 proxy_urls: description: Array of proxy URLs associated with reaching the data-planes connected to a control-plane. type: array items: $ref: '#/components/schemas/AIGatewayProxyURL' format: set labels: $ref: '#/components/schemas/PublicLabels' id: $ref: '#/components/schemas/UUID' endpoints: description: Object containing AI Gateway access endpoints. type: object additionalProperties: false properties: configuration: description: Configuration Endpoint. type: string format: url example: 'https://acfe5f253f.cp.konghq.com' readOnly: true telemetry: description: Telemetry Endpoint. type: string format: url example: 'https://acfe5f253f.tp0.konghq.com' readOnly: true required: - configuration - telemetry config_version: description: | The version identification of the latest configuration of the gateway. Any change to an entity under this gateway can result in a new version. The config_version is generated in the control plane and used to verify if an AI Gateway node configuration is up to date. type: string readOnly: true created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: true required: - display_name - name - id - endpoints - created_at - updated_at CreateAIGatewayDataPlaneCertificateRequest: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: cert: description: JSON escaped string of the certificate. type: string title: description: A human-readable name for the certificate. type: string maxLength: 256 minLength: 1 description: description: An optional description of the certificate. type: string maxLength: 1024 additionalProperties: false required: - cert - title AIGatewayDataPlaneClientCertificate: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: cert: description: JSON escaped string of the certificate. type: string title: description: A human-readable name for the certificate. type: string maxLength: 256 minLength: 1 description: description: An optional description of the certificate. type: string maxLength: 1024 id: $ref: '#/components/schemas/UUID' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' metadata: description: Metadata extracted from the certificate. type: object additionalProperties: false properties: subject: description: The certificate subject. type: string issuer: description: The certificate issuer. type: string san_names: description: Subject alternative names (deprecated). type: array items: type: string deprecated: true expiry: description: Unix timestamp of certificate expiry. type: integer format: int64 key_usages: description: Key usage types for the certificate. type: array items: type: string snis: description: Server Name Indications associated with the certificate. type: array items: type: string dns_names: description: DNS subject alternative names. type: array items: type: string email_addresses: description: Email subject alternative names. type: array items: type: string ip_addresses: description: IP subject alternative names. type: array items: type: string uris: description: URI subject alternative names. type: array items: type: string is_ca: description: Whether the certificate is a CA certificate. type: boolean readOnly: true additionalProperties: false required: - cert - title - id - created_at - updated_at AIGatewayDataPlaneNode: type: object properties: id: $ref: '#/components/schemas/UUID' version: type: string hostname: type: string last_ping: type: integer type: type: string created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' config_version: description: The version of the configuration applied by the node. type: string readOnly: true errors: description: Validation or configuration errors reported by the data plane node. type: array items: $ref: '#/components/schemas/AIGatewayDataPlaneNodeError' compatibility_status: type: object additionalProperties: false properties: state: type: string issues: type: array items: $ref: '#/components/schemas/AIGatewayDataPlaneNodeCompatibilityIssue' additionalProperties: false required: - id - version - hostname - last_ping - type - created_at - updated_at - compatibility_status AIGatewayDataPlaneNodeError: type: object properties: name: type: string error_message: type: string config_hash: type: string flattened_errors: type: array items: $ref: '#/components/schemas/AIGatewayDataPlaneNodeFlattenedError' fields: type: object additionalProperties: type: string code: type: integer source: type: string traceback: type: string additionalProperties: false required: - name - error_message - code - source - traceback title: A Node Error AIGatewayDataPlaneNodeFlattenedError: type: object properties: entity_id: type: string entity_name: type: string entity_type: type: string errors: type: array items: $ref: '#/components/schemas/AIGatewayDataPlaneNodeErrorDetail' additionalProperties: false AIGatewayDataPlaneNodeErrorDetail: type: object properties: error_message: type: string type: type: string field: type: string additionalProperties: false AIGatewayExpectedConfigVersion: type: object properties: expected_config_version: description: The expected configuration version. type: string created_at: $ref: '#/components/schemas/CreatedAt' required: - expected_config_version AIGatewayDataPlaneNodeCompatibilityIssue: type: object properties: code: description: The compatibility issue code. type: string severity: description: The severity of the issue. type: string description: description: The description of the issue. type: string resolution: description: Steps required to take in order to resolve the issue. type: string affected_resources: description: Details of the resources affected by the issue. type: array items: $ref: '#/components/schemas/AIGatewayDataPlaneNodeCompatibilityIssueAffectedResource' documentation_url: description: Doc URL for the compatibility issue. type: string additionalProperties: false required: - code - severity - description - resolution - affected_resources - documentation_url AIGatewayDataPlaneNodeCompatibilityIssueAffectedResource: type: object properties: id: description: ID of the affected resource. type: string type: description: Type of the affected resource. type: string parent_code: description: Parent Issue Code. type: string details: description: Details of the affected resource. type: array items: type: string additionalProperties: false required: - id - type - parent_code - details AIGatewayModelModel: description: Configuration for proxying synchronous requests/responses to/from an AI Gateway model using generative APIs. type: object properties: display_name: description: The display name for this model instance. type: string example: My GPT 5 model maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this model, used as a stable human-readable reference. This value is immutable after creation. example: my-gpt-5-model allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' enabled: description: Whether the model is enabled. type: boolean example: true default: true access: $ref: '#/components/schemas/AIGatewayModelAccess' formats: description: List of request/response formats supported by this model. type: array items: $ref: '#/components/schemas/AIGatewayModelFormat' maxItems: 1 minItems: 1 targets: description: One or more backend models that this model entry routes to. type: array items: $ref: '#/components/schemas/AIGatewayTarget' minItems: 1 policies: $ref: '#/components/schemas/AIGatewayPolicyReferences' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' type: type: string enum: - model config: $ref: '#/components/schemas/AIGatewayModelModelConfig' capabilities: description: List of AI capabilities enabled for this model. type: array items: type: string enum: - generate - agentic - realtime - embeddings - image - audio/speech - audio/transcription - audio/translation - video - rerank x-speakeasy-unknown-values: allow minItems: 1 required: - display_name - name - formats - targets - type - config - capabilities AIGatewayModelAPI: description: Configuration for proxying asynchronous requests/responses to/from an AI Gateway model using the files and batches APIs. type: object properties: display_name: description: The display name for this model instance. type: string example: My GPT 5 model maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this model, used as a stable human-readable reference. This value is immutable after creation. example: my-gpt-5-model allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' enabled: description: Whether the model is enabled. type: boolean example: true default: true access: $ref: '#/components/schemas/AIGatewayModelAccess' formats: description: List of request/response formats supported by this model. type: array items: $ref: '#/components/schemas/AIGatewayModelFormat' maxItems: 1 minItems: 1 targets: description: One or more backend models that this model entry routes to. type: array items: $ref: '#/components/schemas/AIGatewayTarget' minItems: 1 policies: $ref: '#/components/schemas/AIGatewayPolicyReferences' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' type: type: string enum: - api config: $ref: '#/components/schemas/AIGatewayModelAPIConfig' capabilities: description: List of AI capabilities enabled for this API model. type: array items: type: string enum: - batches - files x-speakeasy-unknown-values: allow required: - display_name - name - formats - targets - type - config - capabilities CreateAIGatewayModelRequest: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for an AI Gateway model. discriminator: propertyName: type mapping: api: '#/components/schemas/AIGatewayModelAPI' model: '#/components/schemas/AIGatewayModelModel' oneOf: - $ref: '#/components/schemas/AIGatewayModelAPI' - $ref: '#/components/schemas/AIGatewayModelModel' UpdateAIGatewayModelRequest: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for an AI Gateway model. discriminator: propertyName: type mapping: api: '#/components/schemas/AIGatewayModelAPI' model: '#/components/schemas/AIGatewayModelModel' oneOf: - $ref: '#/components/schemas/AIGatewayModelAPI' - $ref: '#/components/schemas/AIGatewayModelModel' AIGatewayModel: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for an AI Gateway model. type: object properties: id: $ref: '#/components/schemas/UUID' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' discriminator: propertyName: type mapping: api: '#/components/schemas/AIGatewayModelAPI' model: '#/components/schemas/AIGatewayModelModel' oneOf: - $ref: '#/components/schemas/AIGatewayModelAPI' - $ref: '#/components/schemas/AIGatewayModelModel' required: - id - created_at - updated_at AIGatewayModelModelConfig: description: 'Routing, logging, and load balancing configuration for the model.' type: object properties: route: $ref: '#/components/schemas/AIGatewayModelRouteConfig' logging: $ref: '#/components/schemas/AIGatewayLoggingConfig' response_streaming: type: string default: allow enum: - allow - always - deny x-speakeasy-unknown-values: allow max_request_body_size: description: Maximum size of request body to parse. Set to 0 for unlimited. type: integer default: 8388608 model: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object default: name_header: true additionalProperties: false properties: name_header: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Display the model name selected in the X-Kong-LLM-Model response header type: boolean default: true balancer: $ref: '#/components/schemas/AIGatewayModelBalancerConfig' proxy: $ref: '#/components/schemas/AIGatewayProxyConfig' additionalProperties: false required: - route AIGatewayModelAPIConfig: description: 'Routing, logging, and load balancing configuration for the model.' type: object properties: route: $ref: '#/components/schemas/AIGatewayModelRouteConfig' logging: $ref: '#/components/schemas/AIGatewayLoggingConfig' response_streaming: type: string default: allow enum: - allow - always - deny x-speakeasy-unknown-values: allow max_request_body_size: description: Maximum size of request body to parse. Set to 0 for unlimited. type: integer default: 8388608 balancer: $ref: '#/components/schemas/AIGatewayModelBalancerConfig' proxy: $ref: '#/components/schemas/AIGatewayProxyConfig' additionalProperties: false required: - route AIGatewayModelRouteConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for an AI Gateway route. type: object properties: 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 example: version: - v1 - v2 additionalProperties: true hosts: description: A list of domain names that match this route. Note that the hosts value is case sensitive. type: array items: type: string example: foo.example.com 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 methods: description: A list of HTTP methods that match this route. type: array items: type: string paths: description: A list of paths that match this route. type: array items: type: string 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 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: type: string default: - http - https 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 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 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 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 tags: description: An optional set of strings associated with the route for grouping and filtering. type: array items: type: string model: $ref: '#/components/schemas/AIGatewayModelAliasConfig' additionalProperties: false AIGatewayModelAliasConfig: description: Configuration for routing to this model using an alias. oneOf: - $ref: '#/components/schemas/AIGatewayModelAliasConfigBody' - $ref: '#/components/schemas/AIGatewayModelAliasConfigHeaders' - $ref: '#/components/schemas/AIGatewayModelAliasConfigPath' title: AIGatewayModelAliasConfig AIGatewayModelAliasConfigBody: description: | Configuration for routing requests to a specific model using a request body property. type: object properties: body: description: | Value indexed by property name that will cause this route to match if present in the request body. type: object example: model: - '@azure/claude-sonnet-5' additionalProperties: true maxProperties: 1 additionalProperties: false required: - body title: AIGatewayModelAliasConfigBody AIGatewayModelAliasConfigHeaders: description: | Configuration for routing requests to a specific model using a header. type: object properties: headers: description: | Value indexed by property name that will cause this route to match if present in the request headers. type: object example: model: - '@azure/claude-sonnet-5' additionalProperties: true maxProperties: 1 additionalProperties: false required: - headers title: AIGatewayModelAliasConfigHeaders AIGatewayModelAliasConfigPath: description: | Configuration for routing requests to a specific model using a path alias. type: object properties: path_aliases: description: | Value that will cause this route to match if present in the request path. type: array items: type: string example: '@azure/claude-sonnet-5' maxItems: 1 additionalProperties: false required: - path_aliases title: AIGatewayModelAliasConfigPath AIGatewayModelBalancerConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for a model's load balancer when multiple target models are configured. discriminator: propertyName: algorithm mapping: consistent-hashing: '#/components/schemas/AIGatewayModelBalancerConsistentHashingConfig' least-connections: '#/components/schemas/AIGatewayModelBalancerLeastConnectionsConfig' lowest-latency: '#/components/schemas/AIGatewayModelBalancerLowestLatencyConfig' lowest-usage: '#/components/schemas/AIGatewayModelBalancerLowestUsageConfig' priority: '#/components/schemas/AIGatewayModelBalancerPriorityConfig' round-robin: '#/components/schemas/AIGatewayModelBalancerRoundRobinConfig' semantic: '#/components/schemas/AIGatewayModelBalancerSemanticConfig' oneOf: - $ref: '#/components/schemas/AIGatewayModelBalancerConsistentHashingConfig' - $ref: '#/components/schemas/AIGatewayModelBalancerLeastConnectionsConfig' - $ref: '#/components/schemas/AIGatewayModelBalancerLowestLatencyConfig' - $ref: '#/components/schemas/AIGatewayModelBalancerLowestUsageConfig' - $ref: '#/components/schemas/AIGatewayModelBalancerPriorityConfig' - $ref: '#/components/schemas/AIGatewayModelBalancerRoundRobinConfig' - $ref: '#/components/schemas/AIGatewayModelBalancerSemanticConfig' AIGatewayModelBalancerConsistentHashingConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: 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 https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream' type: array items: type: string enum: - error - http_403 - http_404 - http_429 - http_500 - http_502 - http_503 - http_504 - invalid_header - non_idempotent - timeout x-speakeasy-unknown-values: allow default: - error - timeout 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 write_timeout: type: integer default: 60000 maximum: 2147483646 minimum: 1 algorithm: type: string enum: - consistent-hashing hash_on_header: description: The header to use for consistent-hashing. type: string default: X-Kong-LLM-Request-ID additionalProperties: false required: - algorithm AIGatewayModelBalancerLeastConnectionsConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: 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 https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream' type: array items: type: string enum: - error - http_403 - http_404 - http_429 - http_500 - http_502 - http_503 - http_504 - invalid_header - non_idempotent - timeout x-speakeasy-unknown-values: allow default: - error - timeout 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 write_timeout: type: integer default: 60000 maximum: 2147483646 minimum: 1 algorithm: type: string enum: - least-connections additionalProperties: false required: - algorithm AIGatewayModelBalancerLowestLatencyConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: 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 https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream' type: array items: type: string enum: - error - http_403 - http_404 - http_429 - http_500 - http_502 - http_503 - http_504 - invalid_header - non_idempotent - timeout x-speakeasy-unknown-values: allow default: - error - timeout 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 write_timeout: type: integer default: 60000 maximum: 2147483646 minimum: 1 algorithm: type: string enum: - lowest-latency 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 additionalProperties: false required: - algorithm - latency_strategy AIGatewayModelBalancerLowestUsageConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: 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 https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream' type: array items: type: string enum: - error - http_403 - http_404 - http_429 - http_500 - http_502 - http_503 - http_504 - invalid_header - non_idempotent - timeout x-speakeasy-unknown-values: allow default: - error - timeout 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 write_timeout: type: integer default: 60000 maximum: 2147483646 minimum: 1 algorithm: type: string enum: - lowest-usage tokens_count_strategy: description: Methodology to use for token usage calculation. type: string default: total-tokens enum: - completion-tokens - cost - llm-accuracy - prompt-tokens - total-tokens x-speakeasy-unknown-values: allow additionalProperties: false required: - algorithm - tokens_count_strategy AIGatewayModelBalancerPriorityConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: 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 https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream' type: array items: type: string enum: - error - http_403 - http_404 - http_429 - http_500 - http_502 - http_503 - http_504 - invalid_header - non_idempotent - timeout x-speakeasy-unknown-values: allow default: - error - timeout 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 write_timeout: type: integer default: 60000 maximum: 2147483646 minimum: 1 algorithm: type: string enum: - priority additionalProperties: false required: - algorithm AIGatewayModelBalancerRoundRobinConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: 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 https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream' type: array items: type: string enum: - error - http_403 - http_404 - http_429 - http_500 - http_502 - http_503 - http_504 - invalid_header - non_idempotent - timeout x-speakeasy-unknown-values: allow default: - error - timeout 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 write_timeout: type: integer default: 60000 maximum: 2147483646 minimum: 1 algorithm: type: string enum: - round-robin additionalProperties: false required: - algorithm AIGatewayModelBalancerSemanticConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: 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 https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream' type: array items: type: string enum: - error - http_403 - http_404 - http_429 - http_500 - http_502 - http_503 - http_504 - invalid_header - non_idempotent - timeout x-speakeasy-unknown-values: allow default: - error - timeout 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 write_timeout: type: integer default: 60000 maximum: 2147483646 minimum: 1 algorithm: type: string enum: - semantic embeddings: description: Embeddings model configuration for this model. type: object additionalProperties: false properties: allow_auth_override: description: | When enabled, request-level auth parameters (such as API keys or bearer tokens) will override the static values defined for the provider. type: boolean default: false provider: $ref: '#/components/schemas/AIGatewayModelProviderReference' name: description: The name of the embeddings model. type: string config: $ref: '#/components/schemas/AIGatewayEmbeddingsModelConfig' required: - name - provider - config vectordb: $ref: '#/components/schemas/AIGatewayModelVectorDBConfig' additionalProperties: false required: - algorithm - embeddings - vectordb AIGatewayEmbeddingsModelConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for an embeddings model. discriminator: propertyName: type mapping: azure: '#/components/schemas/AIGatewayAzureEmbeddingsModelConfig' bedrock: '#/components/schemas/AIGatewayBedrockEmbeddingsModelConfig' gemini: '#/components/schemas/AIGatewayGeminiEmbeddingsModelConfig' huggingface: '#/components/schemas/AIGatewayHuggingfaceEmbeddingsModelConfig' mistral: '#/components/schemas/AIGatewayMistralEmbeddingsModelConfig' ollama: '#/components/schemas/AIGatewayOllamaEmbeddingsModelConfig' openai: '#/components/schemas/AIGatewayOpenaiEmbeddingsModelConfig' vertex: '#/components/schemas/AIGatewayVertexEmbeddingsModelConfig' oneOf: - $ref: '#/components/schemas/AIGatewayAzureEmbeddingsModelConfig' - $ref: '#/components/schemas/AIGatewayBedrockEmbeddingsModelConfig' - $ref: '#/components/schemas/AIGatewayGeminiEmbeddingsModelConfig' - $ref: '#/components/schemas/AIGatewayHuggingfaceEmbeddingsModelConfig' - $ref: '#/components/schemas/AIGatewayMistralEmbeddingsModelConfig' - $ref: '#/components/schemas/AIGatewayOllamaEmbeddingsModelConfig' - $ref: '#/components/schemas/AIGatewayOpenaiEmbeddingsModelConfig' - $ref: '#/components/schemas/AIGatewayVertexEmbeddingsModelConfig' AIGatewayAzureEmbeddingsModelConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Azure-specific configuration for a model. type: object properties: upstream_url: description: The URL of the embeddings model. type: string type: type: string enum: - azure deployment_id: description: The Azure deployment ID for the model. type: string api_version: description: The Azure OpenAI API version to use. type: string default: '2023-05-15' additionalProperties: false required: - type - deployment_id AIGatewayBedrockEmbeddingsModelConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. AWS Bedrock-specific configuration for a model. type: object properties: upstream_url: description: The URL of the embeddings model. type: string type: type: string enum: - bedrock region: description: | The AWS region for the model. Setting this option overrides the AWS_REGION environment variable. type: string batch_bucket_prefix: description: S3 bucket prefix for batch inference jobs. type: string embeddings_normalize: description: Whether to normalize embedding vectors in the response. type: boolean default: false performance_config_latency: description: Latency performance configuration for the model invocation. type: string video_output_s3_uri: description: S3 URI for storing video generation outputs. type: string additionalProperties: false required: - type AIGatewayGeminiEmbeddingsModelConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Google Gemini-specific configuration for a model. type: object properties: upstream_url: description: The URL of the embeddings model. type: string type: type: string enum: - gemini gcp_environment: $ref: '#/components/schemas/GCPModelConfig' additionalProperties: false required: - type AIGatewayHuggingfaceEmbeddingsModelConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Hugging Face-specific configuration for a model. type: object properties: upstream_url: description: The URL of the embeddings model. type: string type: type: string enum: - huggingface use_cache: description: Whether to use the Hugging Face inference cache. type: boolean default: false wait_for_model: description: Whether to wait for the model to load if it is not ready. type: boolean default: false additionalProperties: false required: - type AIGatewayMistralEmbeddingsModelConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: upstream_url: description: The URL of the embeddings model. type: string type: type: string enum: - mistral additionalProperties: false required: - type AIGatewayOllamaEmbeddingsModelConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Ollama-specific configuration for a model. type: object properties: upstream_url: description: The URL of the embeddings model. type: string type: type: string enum: - ollama additionalProperties: false required: - type AIGatewayOpenaiEmbeddingsModelConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Openai-specific configuration for a model. type: object properties: upstream_url: description: The URL of the embeddings model. type: string type: type: string enum: - openai additionalProperties: false required: - type AIGatewayVertexEmbeddingsModelConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Google Vertex-specific configuration for a model. type: object properties: upstream_url: description: The URL of the embeddings model. type: string type: type: string enum: - vertex gcp_environment: $ref: '#/components/schemas/GCPModelConfig' additionalProperties: false required: - type AIGatewayModelVectorDBConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for the vector database used by the model. discriminator: propertyName: type mapping: pgvector: '#/components/schemas/AIGatewayModelVectorDBConfigPgVector' redis: '#/components/schemas/AIGatewayModelVectorDBConfigRedis' oneOf: - $ref: '#/components/schemas/AIGatewayModelVectorDBConfigPgVector' - $ref: '#/components/schemas/AIGatewayModelVectorDBConfigRedis' AIGatewayModelVectorDBConfigRedis: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Config for connecting to a Cloud Provider's Redis instance. type: object properties: type: type: string enum: - redis 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 threshold: description: the default similarity threshold for accepting semantic search results (float). Higher threshold means more results are considered similar. type: number cloud_authentication: description: Auth related config for connecting to a Cloud Provider's Redis instance. discriminator: propertyName: type mapping: aws: '#/components/schemas/AIGatewayRedisAWSAuthentication' azure: '#/components/schemas/AIGatewayRedisAzureAuthentication' gcp: '#/components/schemas/AIGatewayRedisGCPAuthentication' oneOf: - $ref: '#/components/schemas/AIGatewayRedisAWSAuthentication' - $ref: '#/components/schemas/AIGatewayRedisAzureAuthentication' - $ref: '#/components/schemas/AIGatewayRedisGCPAuthentication' cluster: description: Cluster configuration for the Redis connection. type: object additionalProperties: false properties: max_redirections: description: Maximum retry attempts for redirection. type: integer default: 5 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: type: object 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 minItems: 1 connect_timeout: description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. type: integer default: 2000 maximum: 2147483646 minimum: 0 connection_is_proxied: description: 'If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address.' type: boolean default: false database: description: Database to use for the Redis connection when using the `redis` strategy type: integer default: 0 host: description: | A string representing a host name, such as example.com. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string default: 127.0.0.1 x-referenceable: true keepalive: description: Keepalive configuration for the Redis connection. type: object additionalProperties: false properties: 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 `pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `pool_size`.' type: integer maximum: 2147483646 minimum: 0 pool_size: description: 'The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `pool_size` nor `backlog` is specified, no pool is created. If `pool_size` isn''t specified but `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. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true port: description: | An integer representing a port number between 0 and 65535, inclusive. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). oneOf: - type: integer default: 6379 maximum: 65535 minimum: 0 example: 6379 - type: string example: '{vault://hcv/redis/port}' x-go-type: types.Referenceable x-go-type-import: path: github.com/kong/koko/internal/server/public/openapi/controlplanesconfig/types name: types 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: description: Configuration for Redis Sentinel. type: object additionalProperties: false properties: master: description: Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel. type: string 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: type: object 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 minItems: 1 password: description: | Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true 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 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+. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true server_name: description: | A string representing an SNI (server name indication) value for TLS. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true ssl: description: 'If set to true, uses SSL to connect to Redis.' type: boolean default: true 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: true 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`. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true additionalProperties: false required: - type - dimensions - distance_metric AIGatewayModelVectorDBConfigPgVector: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: type: type: string enum: - pgvector 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 threshold: description: the default similarity threshold for accepting semantic search results (float). Higher threshold means more results are considered similar. type: number 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 This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string writeOnly: true x-referenceable: true port: description: the port of the pgvector database type: integer default: 5432 ssl: type: object additionalProperties: false properties: enabled: description: whether to use ssl for the pgvector database type: boolean default: true cert: description: the path of ssl cert to use for the pgvector database type: string cert_key: description: the path of ssl cert key to use for the pgvector database type: string required: description: whether ssl is required for the pgvector database type: boolean default: true verify: description: whether to verify ssl for the pgvector database type: boolean default: true 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 This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string default: postgres x-referenceable: true additionalProperties: false required: - type - dimensions - distance_metric AIGatewayModelFormat: description: Request and response format supported by this model. type: object properties: type: description: The format type. type: string example: openai enum: - anthropic - bedrock - cohere - gemini - huggingface - openai - vertex x-speakeasy-unknown-values: allow additionalProperties: false AIGatewayTarget: description: A target instance a model entry routes requests to. type: object properties: name: description: The name of the model defined in the upstream provider that will be executed. type: string example: gpt-5-model weight: description: The weight this target gets within the upstream load balancer type: integer example: 100 default: 100 maximum: 65535 minimum: 1 semantic_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. type: string allow_auth_override: description: | When enabled, request-level auth parameters (such as API keys or bearer tokens) will override the static values defined for the provider. type: boolean default: false provider: $ref: '#/components/schemas/AIGatewayModelProviderReference' config: $ref: '#/components/schemas/AIGatewayTargetConfig' additionalProperties: false required: - name - provider - config AIGatewayTargetConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for a target model. discriminator: propertyName: type mapping: anthropic: '#/components/schemas/AIGatewayTargetAnthropicConfig' azure: '#/components/schemas/AIGatewayTargetAzureConfig' bedrock: '#/components/schemas/AIGatewayTargetBedrockConfig' cerebras: '#/components/schemas/AIGatewayTargetCerebrasConfig' cohere: '#/components/schemas/AIGatewayTargetCohereConfig' dashscope: '#/components/schemas/AIGatewayTargetDashscopeConfig' databricks: '#/components/schemas/AIGatewayTargetDatabricksConfig' deepseek: '#/components/schemas/AIGatewayTargetDeepseekConfig' gemini: '#/components/schemas/AIGatewayTargetGeminiConfig' huggingface: '#/components/schemas/AIGatewayTargetHuggingfaceConfig' kimi: '#/components/schemas/AIGatewayTargetKimiConfig' llama2: '#/components/schemas/AIGatewayTargetLlama2Config' mistral: '#/components/schemas/AIGatewayTargetMistralConfig' ollama: '#/components/schemas/AIGatewayTargetOllamaConfig' openai: '#/components/schemas/AIGatewayTargetOpenaiConfig' vercel: '#/components/schemas/AIGatewayTargetVercelConfig' vertex: '#/components/schemas/AIGatewayTargetVertexConfig' vllm: '#/components/schemas/AIGatewayTargetVllmConfig' xai: '#/components/schemas/AIGatewayTargetXaiConfig' sagemaker: '#/components/schemas/AIGatewayTargetSagemakerConfig' oneOf: - $ref: '#/components/schemas/AIGatewayTargetAnthropicConfig' - $ref: '#/components/schemas/AIGatewayTargetAzureConfig' - $ref: '#/components/schemas/AIGatewayTargetBedrockConfig' - $ref: '#/components/schemas/AIGatewayTargetCerebrasConfig' - $ref: '#/components/schemas/AIGatewayTargetCohereConfig' - $ref: '#/components/schemas/AIGatewayTargetDashscopeConfig' - $ref: '#/components/schemas/AIGatewayTargetDatabricksConfig' - $ref: '#/components/schemas/AIGatewayTargetDeepseekConfig' - $ref: '#/components/schemas/AIGatewayTargetGeminiConfig' - $ref: '#/components/schemas/AIGatewayTargetHuggingfaceConfig' - $ref: '#/components/schemas/AIGatewayTargetKimiConfig' - $ref: '#/components/schemas/AIGatewayTargetLlama2Config' - $ref: '#/components/schemas/AIGatewayTargetMistralConfig' - $ref: '#/components/schemas/AIGatewayTargetOllamaConfig' - $ref: '#/components/schemas/AIGatewayTargetOpenaiConfig' - $ref: '#/components/schemas/AIGatewayTargetVercelConfig' - $ref: '#/components/schemas/AIGatewayTargetVertexConfig' - $ref: '#/components/schemas/AIGatewayTargetVllmConfig' - $ref: '#/components/schemas/AIGatewayTargetXaiConfig' - $ref: '#/components/schemas/AIGatewayTargetSagemakerConfig' AIGatewayTargetAnthropicConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Anthropic-specific configuration for a model. type: object properties: embeddings_dimensions: description: The number of dimensions for embedding outputs. type: integer max_tokens: description: The maximum number of tokens to generate in the response. type: integer input_cost: description: Cost per input token for billing and cost tracking. type: number output_cost: description: Cost per output token for billing and cost tracking. type: number temperature: description: Controls randomness in the model output. Higher values produce more varied responses. type: number top_k: description: Limits the number of highest-probability tokens considered during generation. type: integer top_p: description: Nucleus sampling probability mass. Tokens with cumulative probability up to top_p are considered. type: number upstream_url: description: The upstream URL for the model endpoint. type: string format: uri type: type: string enum: - anthropic version: description: The Anthropic API version to use. type: string default: '2023-06-01' required: - type AIGatewayTargetAzureConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Azure-specific configuration for a model. type: object properties: embeddings_dimensions: description: The number of dimensions for embedding outputs. type: integer max_tokens: description: The maximum number of tokens to generate in the response. type: integer input_cost: description: Cost per input token for billing and cost tracking. type: number output_cost: description: Cost per output token for billing and cost tracking. type: number temperature: description: Controls randomness in the model output. Higher values produce more varied responses. type: number top_k: description: Limits the number of highest-probability tokens considered during generation. type: integer top_p: description: Nucleus sampling probability mass. Tokens with cumulative probability up to top_p are considered. type: number upstream_url: description: The upstream URL for the model endpoint. type: string format: uri type: type: string enum: - azure deployment_id: description: The Azure deployment ID for the model. type: string api_version: description: The Azure OpenAI API version to use. type: string default: '2023-05-15' required: - type - deployment_id AIGatewayTargetBedrockConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. AWS Bedrock-specific configuration for a model. type: object properties: embeddings_dimensions: description: The number of dimensions for embedding outputs. type: integer max_tokens: description: The maximum number of tokens to generate in the response. type: integer input_cost: description: Cost per input token for billing and cost tracking. type: number output_cost: description: Cost per output token for billing and cost tracking. type: number temperature: description: Controls randomness in the model output. Higher values produce more varied responses. type: number top_k: description: Limits the number of highest-probability tokens considered during generation. type: integer top_p: description: Nucleus sampling probability mass. Tokens with cumulative probability up to top_p are considered. type: number upstream_url: description: The upstream URL for the model endpoint. type: string format: uri type: type: string enum: - bedrock region: description: | The AWS region for the model. Setting this option overrides the AWS_REGION environment variable. type: string batch_bucket_prefix: description: S3 bucket prefix for batch inference jobs. type: string embeddings_normalize: description: Whether to normalize embedding vectors in the response. type: boolean default: false performance_config_latency: description: Latency performance configuration for the model invocation. type: string video_output_s3_uri: description: S3 URI for storing video generation outputs. type: string required: - type AIGatewayTargetCerebrasConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Cerebras-specific configuration for a model. type: object properties: embeddings_dimensions: description: The number of dimensions for embedding outputs. type: integer max_tokens: description: The maximum number of tokens to generate in the response. type: integer input_cost: description: Cost per input token for billing and cost tracking. type: number output_cost: description: Cost per output token for billing and cost tracking. type: number temperature: description: Controls randomness in the model output. Higher values produce more varied responses. type: number top_k: description: Limits the number of highest-probability tokens considered during generation. type: integer top_p: description: Nucleus sampling probability mass. Tokens with cumulative probability up to top_p are considered. type: number upstream_url: description: The upstream URL for the model endpoint. type: string format: uri type: type: string enum: - cerebras required: - type AIGatewayTargetCohereConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Cohere-specific configuration for a model. type: object properties: embeddings_dimensions: description: The number of dimensions for embedding outputs. type: integer max_tokens: description: The maximum number of tokens to generate in the response. type: integer input_cost: description: Cost per input token for billing and cost tracking. type: number output_cost: description: Cost per output token for billing and cost tracking. type: number temperature: description: Controls randomness in the model output. Higher values produce more varied responses. type: number top_k: description: Limits the number of highest-probability tokens considered during generation. type: integer top_p: description: Nucleus sampling probability mass. Tokens with cumulative probability up to top_p are considered. type: number upstream_url: description: The upstream URL for the model endpoint. type: string format: uri type: type: string enum: - cohere api_version: description: | Cohere API version. `v1` uses the legacy `/v1/chat` endpoint; `v2` (default) uses `/v2/chat` and supports tool calling. type: string default: v2 enum: - v1 - v2 x-speakeasy-unknown-values: allow embedding_input_type: description: The intended downstream use of the embeddings to improve model quality. type: string default: classification enum: - classification - clustering - image - search_document - search_query x-speakeasy-unknown-values: allow wait_for_model: description: Whether to wait for the model to be ready before sending the request. type: boolean default: false required: - type AIGatewayTargetDashscopeConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Alibaba DashScope-specific configuration for a model. type: object properties: embeddings_dimensions: description: The number of dimensions for embedding outputs. type: integer max_tokens: description: The maximum number of tokens to generate in the response. type: integer input_cost: description: Cost per input token for billing and cost tracking. type: number output_cost: description: Cost per output token for billing and cost tracking. type: number temperature: description: Controls randomness in the model output. Higher values produce more varied responses. type: number top_k: description: Limits the number of highest-probability tokens considered during generation. type: integer top_p: description: Nucleus sampling probability mass. Tokens with cumulative probability up to top_p are considered. type: number upstream_url: description: The upstream URL for the model endpoint. type: string format: uri type: type: string enum: - dashscope international: description: Whether to use the international DashScope endpoint. type: boolean default: true required: - type AIGatewayTargetDatabricksConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Databricks-specific configuration for a model. type: object properties: embeddings_dimensions: description: The number of dimensions for embedding outputs. type: integer max_tokens: description: The maximum number of tokens to generate in the response. type: integer input_cost: description: Cost per input token for billing and cost tracking. type: number output_cost: description: Cost per output token for billing and cost tracking. type: number temperature: description: Controls randomness in the model output. Higher values produce more varied responses. type: number top_k: description: Limits the number of highest-probability tokens considered during generation. type: integer top_p: description: Nucleus sampling probability mass. Tokens with cumulative probability up to top_p are considered. type: number upstream_url: description: The upstream URL for the model endpoint. type: string format: uri type: type: string enum: - databricks workspace_instance_id: description: The Databricks workspace instance ID. type: string required: - type - workspace_instance_id AIGatewayTargetDeepseekConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Deepseek-specific configuration for a model. type: object properties: embeddings_dimensions: description: The number of dimensions for embedding outputs. type: integer max_tokens: description: The maximum number of tokens to generate in the response. type: integer input_cost: description: Cost per input token for billing and cost tracking. type: number output_cost: description: Cost per output token for billing and cost tracking. type: number temperature: description: Controls randomness in the model output. Higher values produce more varied responses. type: number top_k: description: Limits the number of highest-probability tokens considered during generation. type: integer top_p: description: Nucleus sampling probability mass. Tokens with cumulative probability up to top_p are considered. type: number upstream_url: description: The upstream URL for the model endpoint. type: string format: uri type: type: string enum: - deepseek required: - type AIGatewayTargetGeminiConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Google Gemini-specific configuration for a model. type: object properties: embeddings_dimensions: description: The number of dimensions for embedding outputs. type: integer max_tokens: description: The maximum number of tokens to generate in the response. type: integer input_cost: description: Cost per input token for billing and cost tracking. type: number output_cost: description: Cost per output token for billing and cost tracking. type: number temperature: description: Controls randomness in the model output. Higher values produce more varied responses. type: number top_k: description: Limits the number of highest-probability tokens considered during generation. type: integer top_p: description: Nucleus sampling probability mass. Tokens with cumulative probability up to top_p are considered. type: number upstream_url: description: The upstream URL for the model endpoint. type: string format: uri type: type: string enum: - gemini gcp_environment: $ref: '#/components/schemas/GCPModelConfig' required: - type AIGatewayTargetHuggingfaceConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Hugging Face-specific configuration for a model. type: object properties: embeddings_dimensions: description: The number of dimensions for embedding outputs. type: integer max_tokens: description: The maximum number of tokens to generate in the response. type: integer input_cost: description: Cost per input token for billing and cost tracking. type: number output_cost: description: Cost per output token for billing and cost tracking. type: number temperature: description: Controls randomness in the model output. Higher values produce more varied responses. type: number top_k: description: Limits the number of highest-probability tokens considered during generation. type: integer top_p: description: Nucleus sampling probability mass. Tokens with cumulative probability up to top_p are considered. type: number upstream_url: description: The upstream URL for the model endpoint. type: string format: uri type: type: string enum: - huggingface use_cache: description: Whether to use the Hugging Face inference cache. type: boolean default: false wait_for_model: description: Whether to wait for the model to load if it is not ready. type: boolean default: false required: - type AIGatewayTargetKimiConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Kimi (Moonshot AI)-specific configuration for a model. type: object properties: embeddings_dimensions: description: The number of dimensions for embedding outputs. type: integer max_tokens: description: The maximum number of tokens to generate in the response. type: integer input_cost: description: Cost per input token for billing and cost tracking. type: number output_cost: description: Cost per output token for billing and cost tracking. type: number temperature: description: Controls randomness in the model output. Higher values produce more varied responses. type: number top_k: description: Limits the number of highest-probability tokens considered during generation. type: integer top_p: description: Nucleus sampling probability mass. Tokens with cumulative probability up to top_p are considered. type: number upstream_url: description: The upstream URL for the model endpoint. type: string format: uri type: type: string enum: - kimi international: description: | When `true`, requests are sent to `api.moonshot.ai` (international). When `false`, requests are sent to `api.moonshot.cn` (mainland China). type: boolean default: true required: - type AIGatewayTargetLlama2Config: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Llama2-specific configuration for a model. type: object properties: embeddings_dimensions: description: The number of dimensions for embedding outputs. type: integer max_tokens: description: The maximum number of tokens to generate in the response. type: integer input_cost: description: Cost per input token for billing and cost tracking. type: number output_cost: description: Cost per output token for billing and cost tracking. type: number temperature: description: Controls randomness in the model output. Higher values produce more varied responses. type: number top_k: description: Limits the number of highest-probability tokens considered during generation. type: integer top_p: description: Nucleus sampling probability mass. Tokens with cumulative probability up to top_p are considered. type: number upstream_url: description: The upstream URL for the model endpoint. type: string format: uri type: type: string enum: - llama2 format: description: The request format to use when communicating with the Llama2 model. type: string enum: - ollama - openai - raw x-speakeasy-unknown-values: allow required: - type - format - upstream_url AIGatewayTargetMistralConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Mistral-specific configuration for a model. type: object properties: embeddings_dimensions: description: The number of dimensions for embedding outputs. type: integer max_tokens: description: The maximum number of tokens to generate in the response. type: integer input_cost: description: Cost per input token for billing and cost tracking. type: number output_cost: description: Cost per output token for billing and cost tracking. type: number temperature: description: Controls randomness in the model output. Higher values produce more varied responses. type: number top_k: description: Limits the number of highest-probability tokens considered during generation. type: integer top_p: description: Nucleus sampling probability mass. Tokens with cumulative probability up to top_p are considered. type: number upstream_url: description: The upstream URL for the model endpoint. type: string format: uri type: type: string enum: - mistral format: description: The request format to use when communicating with the Mistral model. type: string enum: - ollama - openai x-speakeasy-unknown-values: allow required: - type - format AIGatewayTargetOllamaConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Ollama-specific configuration for a model. type: object properties: embeddings_dimensions: description: The number of dimensions for embedding outputs. type: integer max_tokens: description: The maximum number of tokens to generate in the response. type: integer input_cost: description: Cost per input token for billing and cost tracking. type: number output_cost: description: Cost per output token for billing and cost tracking. type: number temperature: description: Controls randomness in the model output. Higher values produce more varied responses. type: number top_k: description: Limits the number of highest-probability tokens considered during generation. type: integer top_p: description: Nucleus sampling probability mass. Tokens with cumulative probability up to top_p are considered. type: number upstream_url: description: The upstream URL for the model endpoint. type: string format: uri type: type: string enum: - ollama required: - type AIGatewayTargetOpenaiConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Openai-specific configuration for a model. type: object properties: embeddings_dimensions: description: The number of dimensions for embedding outputs. type: integer max_tokens: description: The maximum number of tokens to generate in the response. type: integer input_cost: description: Cost per input token for billing and cost tracking. type: number output_cost: description: Cost per output token for billing and cost tracking. type: number temperature: description: Controls randomness in the model output. Higher values produce more varied responses. type: number top_k: description: Limits the number of highest-probability tokens considered during generation. type: integer top_p: description: Nucleus sampling probability mass. Tokens with cumulative probability up to top_p are considered. type: number upstream_url: description: The upstream URL for the model endpoint. type: string format: uri type: type: string enum: - openai required: - type AIGatewayTargetVercelConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Vercel AI Gateway-specific configuration for a model. type: object properties: embeddings_dimensions: description: The number of dimensions for embedding outputs. type: integer max_tokens: description: The maximum number of tokens to generate in the response. type: integer input_cost: description: Cost per input token for billing and cost tracking. type: number output_cost: description: Cost per output token for billing and cost tracking. type: number temperature: description: Controls randomness in the model output. Higher values produce more varied responses. type: number top_k: description: Limits the number of highest-probability tokens considered during generation. type: integer top_p: description: Nucleus sampling probability mass. Tokens with cumulative probability up to top_p are considered. type: number upstream_url: description: The upstream URL for the model endpoint. type: string format: uri type: type: string enum: - vercel required: - type AIGatewayTargetVertexConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Google Vertex-specific configuration for a model. type: object properties: embeddings_dimensions: description: The number of dimensions for embedding outputs. type: integer max_tokens: description: The maximum number of tokens to generate in the response. type: integer input_cost: description: Cost per input token for billing and cost tracking. type: number output_cost: description: Cost per output token for billing and cost tracking. type: number temperature: description: Controls randomness in the model output. Higher values produce more varied responses. type: number top_k: description: Limits the number of highest-probability tokens considered during generation. type: integer top_p: description: Nucleus sampling probability mass. Tokens with cumulative probability up to top_p are considered. type: number upstream_url: description: The upstream URL for the model endpoint. type: string format: uri type: type: string enum: - vertex gcp_environment: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for a model hosted on Google Cloud Project. type: object properties: api_endpoint: description: The custom API endpoint for the Gemini model. type: string location_id: description: The Google Cloud location ID for the model endpoint. type: string project_id: description: The Google Cloud project ID for the model endpoint. type: string endpoint_id: description: | The endpoint ID for the model. This must be set when running a target model on Gemini on Vertex Model Garden. type: string required: - api_endpoint - location_id - project_id required: - type AIGatewayTargetVllmConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Vllm-specific configuration for a model. type: object properties: embeddings_dimensions: description: The number of dimensions for embedding outputs. type: integer max_tokens: description: The maximum number of tokens to generate in the response. type: integer input_cost: description: Cost per input token for billing and cost tracking. type: number output_cost: description: Cost per output token for billing and cost tracking. type: number temperature: description: Controls randomness in the model output. Higher values produce more varied responses. type: number top_k: description: Limits the number of highest-probability tokens considered during generation. type: integer top_p: description: Nucleus sampling probability mass. Tokens with cumulative probability up to top_p are considered. type: number upstream_url: description: The upstream URL for the model endpoint. type: string format: uri type: type: string enum: - vllm required: - type - upstream_url AIGatewayTargetXaiConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Xai-specific configuration for a model. type: object properties: embeddings_dimensions: description: The number of dimensions for embedding outputs. type: integer max_tokens: description: The maximum number of tokens to generate in the response. type: integer input_cost: description: Cost per input token for billing and cost tracking. type: number output_cost: description: Cost per output token for billing and cost tracking. type: number temperature: description: Controls randomness in the model output. Higher values produce more varied responses. type: number top_k: description: Limits the number of highest-probability tokens considered during generation. type: integer top_p: description: Nucleus sampling probability mass. Tokens with cumulative probability up to top_p are considered. type: number upstream_url: description: The upstream URL for the model endpoint. type: string format: uri type: type: string enum: - xai required: - type AIGatewayTargetSagemakerConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. AWS SageMaker-specific configuration for a model. type: object properties: embeddings_dimensions: description: The number of dimensions for embedding outputs. type: integer max_tokens: description: The maximum number of tokens to generate in the response. type: integer input_cost: description: Cost per input token for billing and cost tracking. type: number output_cost: description: Cost per output token for billing and cost tracking. type: number temperature: description: Controls randomness in the model output. Higher values produce more varied responses. type: number top_k: description: Limits the number of highest-probability tokens considered during generation. type: integer top_p: description: Nucleus sampling probability mass. Tokens with cumulative probability up to top_p are considered. type: number upstream_url: description: The upstream URL for the model endpoint. type: string format: uri type: type: string enum: - sagemaker aws: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object additionalProperties: false properties: region: description: Overrides the AWS_REGION environment variable for SageMaker requests. type: string assume_role_arn: description: Assume a different IAM role after authenticating; mutually required with role_session_name. type: string role_session_name: description: Session identifier for the assumed role; mutually required with assume_role_arn. type: string sts_endpoint_url: description: Overrides the STS endpoint when assuming a role. type: string target: type: object additionalProperties: false properties: model: description: Sets the X-Amzn-SageMaker-Target-Model header (multi-model endpoints). type: string variant: description: Sets the X-Amzn-SageMaker-Target-Variant header (A/B variant testing). type: string container_hostname: description: Sets the X-Amzn-SageMaker-Target-Container-Hostname header (multi-container). type: string required: - type GCPModelConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for a model hosted on Google Cloud Project. type: object properties: api_endpoint: description: The custom API endpoint for the Gemini model. type: string location_id: description: The Google Cloud location ID for the model endpoint. type: string project_id: description: The Google Cloud project ID for the model endpoint. type: string required: - api_endpoint - location_id - project_id AIGatewayAllowACL: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: allow: description: 'List of Consumer Groups Names, or Authenticated Groups Names that are permitted access.' type: array items: type: string example: allow: - consumer-group-1 required: - allow AIGatewayDenyACL: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: deny: description: 'List of Consumer Groups Names, or Authenticated Groups Names that are denied access.' type: array items: type: string example: deny: - consumer-group-1 required: - deny AIGatewayACLS: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules. Configure exactly one of `allow` or `deny`. oneOf: - $ref: '#/components/schemas/AIGatewayAllowACL' - $ref: '#/components/schemas/AIGatewayDenyACL' AIGatewayAgentAccess: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Access control configuration for an agent. type: object properties: acls: $ref: '#/components/schemas/AIGatewayACLS' additionalProperties: false AIGatewayModelAccess: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Access control configuration for a model. type: object properties: acls: $ref: '#/components/schemas/AIGatewayACLS' identity_providers: description: | List of identity providers for granting access to the model. At most 1 identity provider of each identity provider type can be referenced. type: array items: $ref: '#/components/schemas/AIGatewayIdentityProviderReference' additionalProperties: false AIGatewayMCPACLs: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules for MCP resources. Configure `allow`, `deny`, or both. type: object properties: allow: description: List of consumer groups that are permitted access. type: array items: type: string deny: description: List of consumer groups that are denied access. type: array items: type: string example: allow: - gold-partner deny: - bronze-partner AIGatewayPolicyReferences: description: List of policy references. type: array items: type: string description: Reference to a policy instance by name. AIGatewayVaultConfigBaseProperties: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: base64_decode: description: | Decode all secrets in this vault as base64. Useful for binary data. If some of the secrets in the vault are not base64-encoded, an error will occur when using them. We recommend creating a separate vault for base64 secrets. type: boolean AIGatewayVaultCloudProviderConfigBaseProperties: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: neg_ttl: description: | Time-to-live (in seconds) for caching failed secret lookups. A value of 0 disables negative caching. Kong will retry fetching the secret after neg_ttl expires. type: integer default: 0 resurrect_ttl: description: | Time (in seconds) that secrets remain in use after expiration (config.ttl ends). Useful if the vault is unreachable or the secret is deleted but not yet replaced. Kong continues to retry for resurrect_ttl seconds before giving up. The default is ~3 years to support uninterrupted service during outages. type: integer default: 100000000 ttl: description: | Time-to-live (in seconds) for a cached secret. A value of 0 disables rotation. For non-zero values, use a minimum of 60 seconds. type: integer default: 0 KonnectConfigStoreVault: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this vault instance, used as a stable human-readable reference. This value is immutable after creation. The name is used to load the right Vault configuration and implementation when referencing secrets with the other entities. example: my-awesome-vault allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' description: description: The description of the Vault. type: string example: This vault is used to retrieve redis database access credentials maxLength: 1024 labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' type: type: string enum: - konnect config: type: object additionalProperties: false properties: config_store_id: description: | The ID of the Konnect Config Store that contains the secrets. type: string example: 77426bee-2bca-4005-81af-284868fd3038 required: - config_store_id required: - name - type - config EnvironmentVariableVault: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this vault instance, used as a stable human-readable reference. This value is immutable after creation. The name is used to load the right Vault configuration and implementation when referencing secrets with the other entities. example: my-awesome-vault allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' description: description: The description of the Vault. type: string example: This vault is used to retrieve redis database access credentials maxLength: 1024 labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' type: type: string enum: - env config: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: base64_decode: description: | Decode all secrets in this vault as base64. Useful for binary data. If some of the secrets in the vault are not base64-encoded, an error will occur when using them. We recommend creating a separate vault for base64 secrets. type: boolean prefix: description: | The prefix for the environment variable that the value will be stored in. type: string example: MY_SECRET_ title: EnvironmentVariableVaultConfig required: - name - type - config EnvironmentVariableVaultConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: prefix: description: | The prefix for the environment variable that the value will be stored in. type: string example: MY_SECRET_ title: EnvironmentVariableVaultConfig AwsSecretsManagerVault: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this vault instance, used as a stable human-readable reference. This value is immutable after creation. The name is used to load the right Vault configuration and implementation when referencing secrets with the other entities. example: my-awesome-vault allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' description: description: The description of the Vault. type: string example: This vault is used to retrieve redis database access credentials maxLength: 1024 labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' type: type: string enum: - aws config: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: base64_decode: description: | Decode all secrets in this vault as base64. Useful for binary data. If some of the secrets in the vault are not base64-encoded, an error will occur when using them. We recommend creating a separate vault for base64 secrets. type: boolean neg_ttl: description: | Time-to-live (in seconds) for caching failed secret lookups. A value of 0 disables negative caching. Kong will retry fetching the secret after neg_ttl expires. type: integer default: 0 resurrect_ttl: description: | Time (in seconds) that secrets remain in use after expiration (config.ttl ends). Useful if the vault is unreachable or the secret is deleted but not yet replaced. Kong continues to retry for resurrect_ttl seconds before giving up. The default is ~3 years to support uninterrupted service during outages. type: integer default: 100000000 ttl: description: | Time-to-live (in seconds) for a cached secret. A value of 0 disables rotation. For non-zero values, use a minimum of 60 seconds. type: integer default: 0 assume_role_arn: description: | The ARN of the role to assume when retrieving secrets from AWS Secrets Manager. type: string endpoint_url: description: | The endpoint URL of the AWS Secrets Manager service. If not specified, the default is https://secretsmanager.{region}.amazonaws.com. You can override this by specifying a complete URL including the http/https scheme. type: string region: description: The AWS region where your vault is located. type: string example: us-east-1 role_session_name: description: The session name used when assuming a role. type: string default: KongVault sts_endpoint_url: description: | A custom STS endpoint URL used for IAM role assumption. Overrides the default https://sts.amazonaws.com or regional variant https://sts.<region>.amazonaws.com. Include the full http/https scheme. Only specify this if using a private VPC endpoint for STS. type: string required: - role_session_name title: AwsSecretsManagerVaultConfig required: - name - type - config AwsSecretsManagerVaultConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: assume_role_arn: description: | The ARN of the role to assume when retrieving secrets from AWS Secrets Manager. type: string endpoint_url: description: | The endpoint URL of the AWS Secrets Manager service. If not specified, the default is https://secretsmanager.{region}.amazonaws.com. You can override this by specifying a complete URL including the http/https scheme. type: string region: description: The AWS region where your vault is located. type: string example: us-east-1 role_session_name: description: The session name used when assuming a role. type: string default: KongVault sts_endpoint_url: description: | A custom STS endpoint URL used for IAM role assumption. Overrides the default https://sts.amazonaws.com or regional variant https://sts.<region>.amazonaws.com. Include the full http/https scheme. Only specify this if using a private VPC endpoint for STS. type: string required: - role_session_name title: AwsSecretsManagerVaultConfig GoogleSecretManagerVault: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this vault instance, used as a stable human-readable reference. This value is immutable after creation. The name is used to load the right Vault configuration and implementation when referencing secrets with the other entities. example: my-awesome-vault allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' description: description: The description of the Vault. type: string example: This vault is used to retrieve redis database access credentials maxLength: 1024 labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' type: type: string enum: - gcp config: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: base64_decode: description: | Decode all secrets in this vault as base64. Useful for binary data. If some of the secrets in the vault are not base64-encoded, an error will occur when using them. We recommend creating a separate vault for base64 secrets. type: boolean neg_ttl: description: | Time-to-live (in seconds) for caching failed secret lookups. A value of 0 disables negative caching. Kong will retry fetching the secret after neg_ttl expires. type: integer default: 0 resurrect_ttl: description: | Time (in seconds) that secrets remain in use after expiration (config.ttl ends). Useful if the vault is unreachable or the secret is deleted but not yet replaced. Kong continues to retry for resurrect_ttl seconds before giving up. The default is ~3 years to support uninterrupted service during outages. type: integer default: 100000000 ttl: description: | Time-to-live (in seconds) for a cached secret. A value of 0 disables rotation. For non-zero values, use a minimum of 60 seconds. type: integer default: 0 project_id: description: | The project ID from your Google API Console. You can find it by visiting your Google API Console and selecting “Manage all projects” in the projects list. type: string required: - project_id title: GoogleSecretManagerVaultConfig required: - name - type - config GoogleSecretManagerVaultConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: project_id: description: | The project ID from your Google API Console. You can find it by visiting your Google API Console and selecting “Manage all projects” in the projects list. type: string required: - project_id title: GoogleSecretManagerVaultConfig AzureKeyVault: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this vault instance, used as a stable human-readable reference. This value is immutable after creation. The name is used to load the right Vault configuration and implementation when referencing secrets with the other entities. example: my-awesome-vault allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' description: description: The description of the Vault. type: string example: This vault is used to retrieve redis database access credentials maxLength: 1024 labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' type: type: string enum: - azure config: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: base64_decode: description: | Decode all secrets in this vault as base64. Useful for binary data. If some of the secrets in the vault are not base64-encoded, an error will occur when using them. We recommend creating a separate vault for base64 secrets. type: boolean neg_ttl: description: | Time-to-live (in seconds) for caching failed secret lookups. A value of 0 disables negative caching. Kong will retry fetching the secret after neg_ttl expires. type: integer default: 0 resurrect_ttl: description: | Time (in seconds) that secrets remain in use after expiration (config.ttl ends). Useful if the vault is unreachable or the secret is deleted but not yet replaced. Kong continues to retry for resurrect_ttl seconds before giving up. The default is ~3 years to support uninterrupted service during outages. type: integer default: 100000000 ttl: description: | Time-to-live (in seconds) for a cached secret. A value of 0 disables rotation. For non-zero values, use a minimum of 60 seconds. type: integer default: 0 credentials_prefix: description: | The prefix for the credentials stored in the Azure Key Vault. type: string default: AZURE vault_uri: description: | The URI from which the vault is reachable. This value can be found in your Azure Key Vault Dashboard under the Vault URI entry. type: string location: description: | Each Azure geography includes one or more regions that meet specific data residency and compliance requirements. type: string client_id: description: | The client ID for your registered application. You can find this in the Azure Dashboard under App Registrations. type: string tenant_id: description: | The DirectoryId and TenantId are the same: both refer to the GUID representing your Azure Active Directory tenant. Microsoft documentation and products may use either term depending on context. type: string type: type: string default: secrets enum: - secrets required: - vault_uri - location - type title: AzureKeyVaultConfig required: - name - type - config AzureKeyVaultConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: credentials_prefix: description: | The prefix for the credentials stored in the Azure Key Vault. type: string default: AZURE vault_uri: description: | The URI from which the vault is reachable. This value can be found in your Azure Key Vault Dashboard under the Vault URI entry. type: string location: description: | Each Azure geography includes one or more regions that meet specific data residency and compliance requirements. type: string client_id: description: | The client ID for your registered application. You can find this in the Azure Dashboard under App Registrations. type: string tenant_id: description: | The DirectoryId and TenantId are the same: both refer to the GUID representing your Azure Active Directory tenant. Microsoft documentation and products may use either term depending on context. type: string type: type: string default: secrets enum: - secrets required: - vault_uri - location - type title: AzureKeyVaultConfig ConjurVault: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this vault instance, used as a stable human-readable reference. This value is immutable after creation. The name is used to load the right Vault configuration and implementation when referencing secrets with the other entities. example: my-awesome-vault allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' description: description: The description of the Vault. type: string example: This vault is used to retrieve redis database access credentials maxLength: 1024 labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' type: type: string enum: - conjur config: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: base64_decode: description: | Decode all secrets in this vault as base64. Useful for binary data. If some of the secrets in the vault are not base64-encoded, an error will occur when using them. We recommend creating a separate vault for base64 secrets. type: boolean neg_ttl: description: | Time-to-live (in seconds) for caching failed secret lookups. A value of 0 disables negative caching. Kong will retry fetching the secret after neg_ttl expires. type: integer default: 0 resurrect_ttl: description: | Time (in seconds) that secrets remain in use after expiration (config.ttl ends). Useful if the vault is unreachable or the secret is deleted but not yet replaced. Kong continues to retry for resurrect_ttl seconds before giving up. The default is ~3 years to support uninterrupted service during outages. type: integer default: 100000000 ttl: description: | Time-to-live (in seconds) for a cached secret. A value of 0 disables rotation. For non-zero values, use a minimum of 60 seconds. type: integer default: 0 account: description: | The CyberArk Secrets Manager organization account name. type: string api_key: description: | The API key of the workload identity. type: string writeOnly: true endpoint_url: description: | The CyberArk Secrets Manager backend URL to connect with. Accepts http or https protocols. type: string login: description: | The login name of the workload identity. type: string required: - endpoint_url - login - account title: ConjurVaultConfig required: - name - type - config ConjurVaultConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: account: description: | The CyberArk Secrets Manager organization account name. type: string api_key: description: | The API key of the workload identity. type: string writeOnly: true endpoint_url: description: | The CyberArk Secrets Manager backend URL to connect with. Accepts http or https protocols. type: string login: description: | The login name of the workload identity. type: string required: - endpoint_url - login - account title: ConjurVaultConfig HashiCorpVault: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this vault instance, used as a stable human-readable reference. This value is immutable after creation. The name is used to load the right Vault configuration and implementation when referencing secrets with the other entities. example: my-awesome-vault allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' description: description: The description of the Vault. type: string example: This vault is used to retrieve redis database access credentials maxLength: 1024 labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' type: type: string enum: - hcv config: $ref: '#/components/schemas/HashiCorpVaultConfig' required: - name - type - config HashiCorpVaultConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for an AI Gateway Vault. discriminator: propertyName: auth_method mapping: token: '#/components/schemas/HashiCorpVaultTokenConfig' cert: '#/components/schemas/HashiCorpVaultCertConfig' jwt: '#/components/schemas/HashiCorpVaultOauth2Config' approle: '#/components/schemas/HashiCorpVaultAppRoleConfig' kubernetes: '#/components/schemas/HashiCorpVaultKubernetesConfig' gcp_iam: '#/components/schemas/HashiCorpVaultGcpIAMConfig' gcp_gce: '#/components/schemas/HashiCorpVaultGcpGCEConfig' aws_ec2: '#/components/schemas/HashiCorpVaultAwsEC2Config' aws_iam: '#/components/schemas/HashiCorpVaultAwsIAMConfig' azure: '#/components/schemas/HashiCorpVaultAzureConfig' oneOf: - $ref: '#/components/schemas/HashiCorpVaultTokenConfig' - $ref: '#/components/schemas/HashiCorpVaultCertConfig' - $ref: '#/components/schemas/HashiCorpVaultOauth2Config' - $ref: '#/components/schemas/HashiCorpVaultAppRoleConfig' - $ref: '#/components/schemas/HashiCorpVaultKubernetesConfig' - $ref: '#/components/schemas/HashiCorpVaultGcpIAMConfig' - $ref: '#/components/schemas/HashiCorpVaultGcpGCEConfig' - $ref: '#/components/schemas/HashiCorpVaultAwsEC2Config' - $ref: '#/components/schemas/HashiCorpVaultAwsIAMConfig' - $ref: '#/components/schemas/HashiCorpVaultAzureConfig' title: HashiCorpVaultConfig HashiCorpVaultTokenConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: base64_decode: description: | Decode all secrets in this vault as base64. Useful for binary data. If some of the secrets in the vault are not base64-encoded, an error will occur when using them. We recommend creating a separate vault for base64 secrets. type: boolean neg_ttl: description: | Time-to-live (in seconds) for caching failed secret lookups. A value of 0 disables negative caching. Kong will retry fetching the secret after neg_ttl expires. type: integer default: 0 resurrect_ttl: description: | Time (in seconds) that secrets remain in use after expiration (config.ttl ends). Useful if the vault is unreachable or the secret is deleted but not yet replaced. Kong continues to retry for resurrect_ttl seconds before giving up. The default is ~3 years to support uninterrupted service during outages. type: integer default: 100000000 ttl: description: | Time-to-live (in seconds) for a cached secret. A value of 0 disables rotation. For non-zero values, use a minimum of 60 seconds. type: integer default: 0 host: description: The hostname of your HashiCorp vault. type: string port: description: The port number of your HashiCorp vault. type: integer mount: description: The mount point. type: string default: secret kv: description: The secrets engine version. type: string default: v1 enum: - v1 - v2 x-speakeasy-unknown-values: allow protocol: description: The protocol to connect with. type: string default: https enum: - http - https x-speakeasy-unknown-values: allow ssl_verify: description: Whether to verify the TLS certificate of the vault when connecting. type: boolean default: true namespace: description: Namespace for the Vault. Vault Enterprise requires a namespace to connect successfully. type: string auth_method: type: string enum: - token token: description: The token string to be used for authentication. type: string writeOnly: true required: - host - port - mount - auth_method HashiCorpVaultCertConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: base64_decode: description: | Decode all secrets in this vault as base64. Useful for binary data. If some of the secrets in the vault are not base64-encoded, an error will occur when using them. We recommend creating a separate vault for base64 secrets. type: boolean neg_ttl: description: | Time-to-live (in seconds) for caching failed secret lookups. A value of 0 disables negative caching. Kong will retry fetching the secret after neg_ttl expires. type: integer default: 0 resurrect_ttl: description: | Time (in seconds) that secrets remain in use after expiration (config.ttl ends). Useful if the vault is unreachable or the secret is deleted but not yet replaced. Kong continues to retry for resurrect_ttl seconds before giving up. The default is ~3 years to support uninterrupted service during outages. type: integer default: 100000000 ttl: description: | Time-to-live (in seconds) for a cached secret. A value of 0 disables rotation. For non-zero values, use a minimum of 60 seconds. type: integer default: 0 host: description: The hostname of your HashiCorp vault. type: string port: description: The port number of your HashiCorp vault. type: integer mount: description: The mount point. type: string default: secret kv: description: The secrets engine version. type: string default: v1 enum: - v1 - v2 x-speakeasy-unknown-values: allow protocol: description: The protocol to connect with. type: string default: https enum: - http - https x-speakeasy-unknown-values: allow ssl_verify: description: Whether to verify the TLS certificate of the vault when connecting. type: boolean default: true namespace: description: Namespace for the Vault. Vault Enterprise requires a namespace to connect successfully. type: string auth_method: type: string enum: - cert cert: description: The client certificate. type: string example: | -----BEGIN CERTIFICATE----- certificate-content -----END CERTIFICATE----- key: description: The key for the client certificate. type: string example: | -----BEGIN PRIVATE KEY----- private-key-content -----END PRIVATE KEY----- writeOnly: true role_name: description: The trusted certificate role name. type: string required: - host - port - mount - auth_method - cert HashiCorpVaultOauth2Config: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: base64_decode: description: | Decode all secrets in this vault as base64. Useful for binary data. If some of the secrets in the vault are not base64-encoded, an error will occur when using them. We recommend creating a separate vault for base64 secrets. type: boolean neg_ttl: description: | Time-to-live (in seconds) for caching failed secret lookups. A value of 0 disables negative caching. Kong will retry fetching the secret after neg_ttl expires. type: integer default: 0 resurrect_ttl: description: | Time (in seconds) that secrets remain in use after expiration (config.ttl ends). Useful if the vault is unreachable or the secret is deleted but not yet replaced. Kong continues to retry for resurrect_ttl seconds before giving up. The default is ~3 years to support uninterrupted service during outages. type: integer default: 100000000 ttl: description: | Time-to-live (in seconds) for a cached secret. A value of 0 disables rotation. For non-zero values, use a minimum of 60 seconds. type: integer default: 0 host: description: The hostname of your HashiCorp vault. type: string port: description: The port number of your HashiCorp vault. type: integer mount: description: The mount point. type: string default: secret kv: description: The secrets engine version. type: string default: v1 enum: - v1 - v2 x-speakeasy-unknown-values: allow protocol: description: The protocol to connect with. type: string default: https enum: - http - https x-speakeasy-unknown-values: allow ssl_verify: description: Whether to verify the TLS certificate of the vault when connecting. type: boolean default: true namespace: description: Namespace for the Vault. Vault Enterprise requires a namespace to connect successfully. type: string auth_method: type: string enum: - jwt role: description: | The configured role name in HashiCorp Vault for JWT auth. When creating the role in HashiCorp Vault, make sure that the `role_type` is `jwt` and the `token_policies` have permissions to read the secrets. type: string example: demo token_endpoint: description: The OAuth2 token endpoint for Hashicorp Vault's OAuth2 auth method. type: string client_id: description: The OAuth2 client ID. type: string client_secret: description: The OAuth2 client secret. type: string writeOnly: true audiences: description: Comma-separated list of OAuth2 audiences. type: string required: - host - port - mount - auth_method - role - token_endpoint - client_id HashiCorpVaultAppRoleConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: base64_decode: description: | Decode all secrets in this vault as base64. Useful for binary data. If some of the secrets in the vault are not base64-encoded, an error will occur when using them. We recommend creating a separate vault for base64 secrets. type: boolean neg_ttl: description: | Time-to-live (in seconds) for caching failed secret lookups. A value of 0 disables negative caching. Kong will retry fetching the secret after neg_ttl expires. type: integer default: 0 resurrect_ttl: description: | Time (in seconds) that secrets remain in use after expiration (config.ttl ends). Useful if the vault is unreachable or the secret is deleted but not yet replaced. Kong continues to retry for resurrect_ttl seconds before giving up. The default is ~3 years to support uninterrupted service during outages. type: integer default: 100000000 ttl: description: | Time-to-live (in seconds) for a cached secret. A value of 0 disables rotation. For non-zero values, use a minimum of 60 seconds. type: integer default: 0 host: description: The hostname of your HashiCorp vault. type: string port: description: The port number of your HashiCorp vault. type: integer mount: description: The mount point. type: string default: secret kv: description: The secrets engine version. type: string default: v1 enum: - v1 - v2 x-speakeasy-unknown-values: allow protocol: description: The protocol to connect with. type: string default: https enum: - http - https x-speakeasy-unknown-values: allow ssl_verify: description: Whether to verify the TLS certificate of the vault when connecting. type: boolean default: true namespace: description: Namespace for the Vault. Vault Enterprise requires a namespace to connect successfully. type: string auth_method: type: string enum: - approle path: description: | Path for enabling the AppRole auth method. Single leading/trailing slashes are trimmed. type: string default: approle response_wrapping: description: | Whether the secret ID is a response-wrapping token. When true, Kong unwraps the token to get the actual secret ID. Note: tokens can only be unwrapped once; distribute them individually to Kong nodes. type: boolean default: false role_id: description: | Specifies the AppRole role ID in HashiCorp Vault. Either `role_id` or `secret_id_file` must be set. type: string secret_id: description: Defines the AppRole’s secret ID in HashiCorp Vault. type: string secret_id_file: description: | Path to a file containing the AppRole secret ID. Either `role_id` or `secret_id_file` must be set. type: string required: - host - port - mount - auth_method HashiCorpVaultKubernetesConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: base64_decode: description: | Decode all secrets in this vault as base64. Useful for binary data. If some of the secrets in the vault are not base64-encoded, an error will occur when using them. We recommend creating a separate vault for base64 secrets. type: boolean neg_ttl: description: | Time-to-live (in seconds) for caching failed secret lookups. A value of 0 disables negative caching. Kong will retry fetching the secret after neg_ttl expires. type: integer default: 0 resurrect_ttl: description: | Time (in seconds) that secrets remain in use after expiration (config.ttl ends). Useful if the vault is unreachable or the secret is deleted but not yet replaced. Kong continues to retry for resurrect_ttl seconds before giving up. The default is ~3 years to support uninterrupted service during outages. type: integer default: 100000000 ttl: description: | Time-to-live (in seconds) for a cached secret. A value of 0 disables rotation. For non-zero values, use a minimum of 60 seconds. type: integer default: 0 host: description: The hostname of your HashiCorp vault. type: string port: description: The port number of your HashiCorp vault. type: integer mount: description: The mount point. type: string default: secret kv: description: The secrets engine version. type: string default: v1 enum: - v1 - v2 x-speakeasy-unknown-values: allow protocol: description: The protocol to connect with. type: string default: https enum: - http - https x-speakeasy-unknown-values: allow ssl_verify: description: Whether to verify the TLS certificate of the vault when connecting. type: boolean default: true namespace: description: Namespace for the Vault. Vault Enterprise requires a namespace to connect successfully. type: string auth_method: type: string enum: - kubernetes role: description: | Role assigned to the Kubernetes service account. type: string path: description: | Path for enabling the Kubernetes auth method. Single leading/trailing slashes are trimmed. type: string default: kubernetes api_token_file: description: | Path to the Kubernetes service account token file. type: string default: /run/secrets/kubernetes.io/serviceaccount/token required: - host - port - mount - auth_method HashiCorpVaultGcpIAMConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: base64_decode: description: | Decode all secrets in this vault as base64. Useful for binary data. If some of the secrets in the vault are not base64-encoded, an error will occur when using them. We recommend creating a separate vault for base64 secrets. type: boolean neg_ttl: description: | Time-to-live (in seconds) for caching failed secret lookups. A value of 0 disables negative caching. Kong will retry fetching the secret after neg_ttl expires. type: integer default: 0 resurrect_ttl: description: | Time (in seconds) that secrets remain in use after expiration (config.ttl ends). Useful if the vault is unreachable or the secret is deleted but not yet replaced. Kong continues to retry for resurrect_ttl seconds before giving up. The default is ~3 years to support uninterrupted service during outages. type: integer default: 100000000 ttl: description: | Time-to-live (in seconds) for a cached secret. A value of 0 disables rotation. For non-zero values, use a minimum of 60 seconds. type: integer default: 0 host: description: The hostname of your HashiCorp vault. type: string port: description: The port number of your HashiCorp vault. type: integer mount: description: The mount point. type: string default: secret kv: description: The secrets engine version. type: string default: v1 enum: - v1 - v2 x-speakeasy-unknown-values: allow protocol: description: The protocol to connect with. type: string default: https enum: - http - https x-speakeasy-unknown-values: allow ssl_verify: description: Whether to verify the TLS certificate of the vault when connecting. type: boolean default: true namespace: description: Namespace for the Vault. Vault Enterprise requires a namespace to connect successfully. type: string auth_method: type: string enum: - gcp_iam role: description: The role to use for GCP IAM auth. type: string service_account: description: The GCP service account for GCE auth. type: string jwt_exp: description: The JWT expiration time in seconds for GCP auth (0-900) type: integer maximum: 900 minimum: 0 required: - host - port - mount - auth_method - role - service_account - jwt_exp HashiCorpVaultGcpGCEConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: base64_decode: description: | Decode all secrets in this vault as base64. Useful for binary data. If some of the secrets in the vault are not base64-encoded, an error will occur when using them. We recommend creating a separate vault for base64 secrets. type: boolean neg_ttl: description: | Time-to-live (in seconds) for caching failed secret lookups. A value of 0 disables negative caching. Kong will retry fetching the secret after neg_ttl expires. type: integer default: 0 resurrect_ttl: description: | Time (in seconds) that secrets remain in use after expiration (config.ttl ends). Useful if the vault is unreachable or the secret is deleted but not yet replaced. Kong continues to retry for resurrect_ttl seconds before giving up. The default is ~3 years to support uninterrupted service during outages. type: integer default: 100000000 ttl: description: | Time-to-live (in seconds) for a cached secret. A value of 0 disables rotation. For non-zero values, use a minimum of 60 seconds. type: integer default: 0 host: description: The hostname of your HashiCorp vault. type: string port: description: The port number of your HashiCorp vault. type: integer mount: description: The mount point. type: string default: secret kv: description: The secrets engine version. type: string default: v1 enum: - v1 - v2 x-speakeasy-unknown-values: allow protocol: description: The protocol to connect with. type: string default: https enum: - http - https x-speakeasy-unknown-values: allow ssl_verify: description: Whether to verify the TLS certificate of the vault when connecting. type: boolean default: true namespace: description: Namespace for the Vault. Vault Enterprise requires a namespace to connect successfully. type: string auth_method: type: string enum: - gcp_gce role: description: The role to use for GCP GCE auth. type: string login_path: description: The login path for GCP auth in HashiCorp Vault. type: string default: /v1/auth/gcp/login required: - host - port - mount - auth_method - role HashiCorpVaultAzureConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: base64_decode: description: | Decode all secrets in this vault as base64. Useful for binary data. If some of the secrets in the vault are not base64-encoded, an error will occur when using them. We recommend creating a separate vault for base64 secrets. type: boolean neg_ttl: description: | Time-to-live (in seconds) for caching failed secret lookups. A value of 0 disables negative caching. Kong will retry fetching the secret after neg_ttl expires. type: integer default: 0 resurrect_ttl: description: | Time (in seconds) that secrets remain in use after expiration (config.ttl ends). Useful if the vault is unreachable or the secret is deleted but not yet replaced. Kong continues to retry for resurrect_ttl seconds before giving up. The default is ~3 years to support uninterrupted service during outages. type: integer default: 100000000 ttl: description: | Time-to-live (in seconds) for a cached secret. A value of 0 disables rotation. For non-zero values, use a minimum of 60 seconds. type: integer default: 0 host: description: The hostname of your HashiCorp vault. type: string port: description: The port number of your HashiCorp vault. type: integer mount: description: The mount point. type: string default: secret kv: description: The secrets engine version. type: string default: v1 enum: - v1 - v2 x-speakeasy-unknown-values: allow protocol: description: The protocol to connect with. type: string default: https enum: - http - https x-speakeasy-unknown-values: allow ssl_verify: description: Whether to verify the TLS certificate of the vault when connecting. type: boolean default: true namespace: description: Namespace for the Vault. Vault Enterprise requires a namespace to connect successfully. type: string auth_method: type: string enum: - azure role: description: The role to use for Azure auth. type: string login_path: description: The login path for Azure auth in HashiCorp Vault type: string default: /v1/auth/azure/login required: - host - port - mount - auth_method - role HashiCorpVaultAwsEC2Config: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: base64_decode: description: | Decode all secrets in this vault as base64. Useful for binary data. If some of the secrets in the vault are not base64-encoded, an error will occur when using them. We recommend creating a separate vault for base64 secrets. type: boolean neg_ttl: description: | Time-to-live (in seconds) for caching failed secret lookups. A value of 0 disables negative caching. Kong will retry fetching the secret after neg_ttl expires. type: integer default: 0 resurrect_ttl: description: | Time (in seconds) that secrets remain in use after expiration (config.ttl ends). Useful if the vault is unreachable or the secret is deleted but not yet replaced. Kong continues to retry for resurrect_ttl seconds before giving up. The default is ~3 years to support uninterrupted service during outages. type: integer default: 100000000 ttl: description: | Time-to-live (in seconds) for a cached secret. A value of 0 disables rotation. For non-zero values, use a minimum of 60 seconds. type: integer default: 0 host: description: The hostname of your HashiCorp vault. type: string port: description: The port number of your HashiCorp vault. type: integer mount: description: The mount point. type: string default: secret kv: description: The secrets engine version. type: string default: v1 enum: - v1 - v2 x-speakeasy-unknown-values: allow protocol: description: The protocol to connect with. type: string default: https enum: - http - https x-speakeasy-unknown-values: allow ssl_verify: description: Whether to verify the TLS certificate of the vault when connecting. type: boolean default: true namespace: description: Namespace for the Vault. Vault Enterprise requires a namespace to connect successfully. type: string auth_method: type: string enum: - aws_ec2 role: description: The role to use for AWS EC2 auth. type: string nonce: description: The nonce for AWS EC2 auth. type: string login_path: description: The login path for AWS auth in HashiCorp Vault. type: string default: /v1/auth/aws/login required: - host - port - mount - auth_method - role - nonce HashiCorpVaultAwsIAMConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: base64_decode: description: | Decode all secrets in this vault as base64. Useful for binary data. If some of the secrets in the vault are not base64-encoded, an error will occur when using them. We recommend creating a separate vault for base64 secrets. type: boolean neg_ttl: description: | Time-to-live (in seconds) for caching failed secret lookups. A value of 0 disables negative caching. Kong will retry fetching the secret after neg_ttl expires. type: integer default: 0 resurrect_ttl: description: | Time (in seconds) that secrets remain in use after expiration (config.ttl ends). Useful if the vault is unreachable or the secret is deleted but not yet replaced. Kong continues to retry for resurrect_ttl seconds before giving up. The default is ~3 years to support uninterrupted service during outages. type: integer default: 100000000 ttl: description: | Time-to-live (in seconds) for a cached secret. A value of 0 disables rotation. For non-zero values, use a minimum of 60 seconds. type: integer default: 0 host: description: The hostname of your HashiCorp vault. type: string port: description: The port number of your HashiCorp vault. type: integer mount: description: The mount point. type: string default: secret kv: description: The secrets engine version. type: string default: v1 enum: - v1 - v2 x-speakeasy-unknown-values: allow protocol: description: The protocol to connect with. type: string default: https enum: - http - https x-speakeasy-unknown-values: allow ssl_verify: description: Whether to verify the TLS certificate of the vault when connecting. type: boolean default: true namespace: description: Namespace for the Vault. Vault Enterprise requires a namespace to connect successfully. type: string auth_method: type: string enum: - aws_iam role: description: The role to use for AWS IAM auth. type: string region: description: The AWS region for auth. type: string login_path: description: The login path for AWS auth in HashiCorp Vault. type: string default: /v1/auth/aws/login access_key_id: description: | The AWS access key ID for IAM auth. If not provided, the default credentials provider chain is used. If set, `secret_access_key` must also be set. type: string secret_access_key: description: | The AWS secret access key for IAM auth. If not provided, the default credentials provider chain is used. If set, `access_key_id` must also be set. type: string writeOnly: true sts_endpoint_url: description: | The AWS STS endpoint URL used by Kong Gateway when signing the GetCallerIdentity request for AWS IAM authentication. If not provided, defaults to the standard STS endpoint for the specified region. This setting only affects the STS endpoint that Kong Gateway itself contacts - it does not influence which STS endpoint HashiCorp Vault uses on its side. type: string assume_role_arn: description: | The ARN of the role to assume for AWS IAM authentication. If set, `role_session_name` must also be set. type: string role_session_name: description: | The session name to use when assuming a role for AWS IAM authentication. If set, `assume_role_arn` must also be set. type: string required: - host - port - mount - auth_method - role - region CreateAIGatewayVaultRequest: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for an AI Gateway Vault. discriminator: propertyName: type mapping: konnect: '#/components/schemas/KonnectConfigStoreVault' env: '#/components/schemas/EnvironmentVariableVault' aws: '#/components/schemas/AwsSecretsManagerVault' gcp: '#/components/schemas/GoogleSecretManagerVault' azure: '#/components/schemas/AzureKeyVault' conjur: '#/components/schemas/ConjurVault' hcv: '#/components/schemas/HashiCorpVault' oneOf: - $ref: '#/components/schemas/KonnectConfigStoreVault' - $ref: '#/components/schemas/EnvironmentVariableVault' - $ref: '#/components/schemas/AwsSecretsManagerVault' - $ref: '#/components/schemas/GoogleSecretManagerVault' - $ref: '#/components/schemas/AzureKeyVault' - $ref: '#/components/schemas/ConjurVault' - $ref: '#/components/schemas/HashiCorpVault' UpdateAIGatewayVaultRequest: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for an AI Gateway Vault. discriminator: propertyName: type mapping: konnect: '#/components/schemas/KonnectConfigStoreVault' env: '#/components/schemas/EnvironmentVariableVault' aws: '#/components/schemas/AwsSecretsManagerVault' gcp: '#/components/schemas/GoogleSecretManagerVault' azure: '#/components/schemas/AzureKeyVault' conjur: '#/components/schemas/ConjurVault' hcv: '#/components/schemas/HashiCorpVault' oneOf: - $ref: '#/components/schemas/KonnectConfigStoreVault' - $ref: '#/components/schemas/EnvironmentVariableVault' - $ref: '#/components/schemas/AwsSecretsManagerVault' - $ref: '#/components/schemas/GoogleSecretManagerVault' - $ref: '#/components/schemas/AzureKeyVault' - $ref: '#/components/schemas/ConjurVault' - $ref: '#/components/schemas/HashiCorpVault' AIGatewayVault: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for an AI Gateway Vault. type: object properties: id: $ref: '#/components/schemas/UUID' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' discriminator: propertyName: type mapping: konnect: '#/components/schemas/KonnectConfigStoreVault' env: '#/components/schemas/EnvironmentVariableVault' aws: '#/components/schemas/AwsSecretsManagerVault' gcp: '#/components/schemas/GoogleSecretManagerVault' azure: '#/components/schemas/AzureKeyVault' conjur: '#/components/schemas/ConjurVault' hcv: '#/components/schemas/HashiCorpVault' oneOf: - $ref: '#/components/schemas/KonnectConfigStoreVault' - $ref: '#/components/schemas/EnvironmentVariableVault' - $ref: '#/components/schemas/AwsSecretsManagerVault' - $ref: '#/components/schemas/GoogleSecretManagerVault' - $ref: '#/components/schemas/AzureKeyVault' - $ref: '#/components/schemas/ConjurVault' - $ref: '#/components/schemas/HashiCorpVault' required: - id - created_at - updated_at CreateAIGatewayPolicyRequest: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: display_name: description: The display name for this policy instance. type: string example: My Cool AI PII Sanitizer Policy maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this policy instance, used as a stable human-readable reference. This value is immutable after creation. example: ai-pii-sanitizer-1234 allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' type: description: | The type of the Policy. This is equivalent to the Kong 3 plugin name. Some examples are: 'ai-sanitizer', 'ai-prompt-guard', and 'rate-limiting'. Note: Plugins have been renamed to Policies in Kong AI Gateway. Policy types and configuration documentation can be found in the [Developer Docs](https://developer.konghq.com/plugins/). type: string example: ai-sanitizer enabled: description: Whether the policy is enabled. type: boolean example: true default: true global: description: Whether the policy is globally applied to all resources. type: boolean example: false default: false config: description: | Configuration for the policy. This is equivalent to the Kong 3 plugin configuration. Note: Plugins have been renamed to Policies in Kong AI Gateway. Policy types and configuration documentation can be found in the [Developer Docs](https://developer.konghq.com/plugins/). type: object example: anonymize: - phone - creditcard stop_on_error: true additionalProperties: true labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' additionalProperties: false required: - display_name - name - type - config UpdateAIGatewayPolicyRequest: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: display_name: description: The display name for this policy instance. type: string example: My Cool AI PII Sanitizer Policy maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this policy instance, used as a stable human-readable reference. This value is immutable after creation. example: ai-pii-sanitizer-1234 allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' type: description: | The type of the Policy. This is equivalent to the Kong 3 plugin name. Some examples are: 'ai-sanitizer', 'ai-prompt-guard', and 'rate-limiting'. Note: Plugins have been renamed to Policies in Kong AI Gateway. Policy types and configuration documentation can be found in the [Developer Docs](https://developer.konghq.com/plugins/). type: string example: ai-sanitizer enabled: description: Whether the policy is enabled. type: boolean example: true default: true global: description: Whether the policy is globally applied to all resources. type: boolean example: false default: false config: description: | Configuration for the policy. This is equivalent to the Kong 3 plugin configuration. Note: Plugins have been renamed to Policies in Kong AI Gateway. Policy types and configuration documentation can be found in the [Developer Docs](https://developer.konghq.com/plugins/). type: object example: anonymize: - phone - creditcard stop_on_error: true additionalProperties: true labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' additionalProperties: false required: - display_name - name - type - config AIGatewayPolicy: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: display_name: description: The display name for this policy instance. type: string example: My Cool AI PII Sanitizer Policy maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this policy instance, used as a stable human-readable reference. This value is immutable after creation. example: ai-pii-sanitizer-1234 allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' type: description: | The type of the Policy. This is equivalent to the Kong 3 plugin name. Some examples are: 'ai-sanitizer', 'ai-prompt-guard', and 'rate-limiting'. Note: Plugins have been renamed to Policies in Kong AI Gateway. Policy types and configuration documentation can be found in the [Developer Docs](https://developer.konghq.com/plugins/). type: string example: ai-sanitizer enabled: description: Whether the policy is enabled. type: boolean example: true default: true global: description: Whether the policy is globally applied to all resources. type: boolean example: false default: false config: description: | Configuration for the policy. This is equivalent to the Kong 3 plugin configuration. Note: Plugins have been renamed to Policies in Kong AI Gateway. Policy types and configuration documentation can be found in the [Developer Docs](https://developer.konghq.com/plugins/). type: object example: anonymize: - phone - creditcard stop_on_error: true additionalProperties: true labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' id: $ref: '#/components/schemas/UUID' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - display_name - name - type - config - id - created_at - updated_at CreateAIGatewayAgentRequest: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: display_name: description: The display name for this agent. type: string example: Kong Air Flight Booking Agent maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this agent, used as a stable human-readable reference. This value is immutable after creation. example: kongair-flight-booking-agent allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' enabled: description: Whether the Agent is enabled. type: boolean example: true default: true type: description: The type of the agent. type: string example: a2a enum: - a2a - http x-speakeasy-unknown-values: allow policies: $ref: '#/components/schemas/AIGatewayPolicyReferences' access: $ref: '#/components/schemas/AIGatewayAgentAccess' config: description: Configuration for the agent. The structure varies depending on the agent type. type: object additionalProperties: false properties: url: description: | Helper field to set protocol, host, port and path of the upstream A2A Agent using a URL. This is the same as a Kong Gateway Service URL: ${scheme}://${host}:${port}/${path} type: string format: uri example: 'https://booking-agent.internal.kongair.com' route: $ref: '#/components/schemas/AIGatewayRouteConfig' max_request_body_size: description: Maximum size of request body to parse. Set to 0 for unlimited. type: integer default: 8388608 logging: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for AI Gateway logging. type: object additionalProperties: false properties: payloads: 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 example: 524288 default: 1048576 required: - url labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' additionalProperties: true required: - display_name - name - type - config UpdateAIGatewayAgentRequest: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: display_name: description: The display name for this agent. type: string example: Kong Air Flight Booking Agent maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this agent, used as a stable human-readable reference. This value is immutable after creation. example: kongair-flight-booking-agent allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' enabled: description: Whether the Agent is enabled. type: boolean example: true default: true type: description: The type of the agent. type: string example: a2a enum: - a2a - http x-speakeasy-unknown-values: allow policies: $ref: '#/components/schemas/AIGatewayPolicyReferences' access: $ref: '#/components/schemas/AIGatewayAgentAccess' config: description: Configuration for the agent. The structure varies depending on the agent type. type: object additionalProperties: false properties: url: description: | Helper field to set protocol, host, port and path of the upstream A2A Agent using a URL. This is the same as a Kong Gateway Service URL: ${scheme}://${host}:${port}/${path} type: string format: uri example: 'https://booking-agent.internal.kongair.com' route: $ref: '#/components/schemas/AIGatewayRouteConfig' max_request_body_size: description: Maximum size of request body to parse. Set to 0 for unlimited. type: integer default: 8388608 logging: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for AI Gateway logging. type: object additionalProperties: false properties: payloads: 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 example: 524288 default: 1048576 required: - url labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' additionalProperties: true required: - display_name - name - type - config AIGatewayAgent: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: display_name: description: The display name for this agent. type: string example: Kong Air Flight Booking Agent maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this agent, used as a stable human-readable reference. This value is immutable after creation. example: kongair-flight-booking-agent allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' enabled: description: Whether the Agent is enabled. type: boolean example: true default: true type: description: The type of the agent. type: string example: a2a enum: - a2a - http x-speakeasy-unknown-values: allow policies: $ref: '#/components/schemas/AIGatewayPolicyReferences' access: $ref: '#/components/schemas/AIGatewayAgentAccess' config: description: Configuration for the agent. The structure varies depending on the agent type. type: object additionalProperties: false properties: url: description: | Helper field to set protocol, host, port and path of the upstream A2A Agent using a URL. This is the same as a Kong Gateway Service URL: ${scheme}://${host}:${port}/${path} type: string format: uri example: 'https://booking-agent.internal.kongair.com' route: $ref: '#/components/schemas/AIGatewayRouteConfig' max_request_body_size: description: Maximum size of request body to parse. Set to 0 for unlimited. type: integer default: 8388608 logging: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for AI Gateway logging. type: object additionalProperties: false properties: payloads: 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 example: 524288 default: 1048576 required: - url labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' id: $ref: '#/components/schemas/UUID' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: true required: - display_name - name - type - config - id - created_at - updated_at CreateAIGatewayConsumerRequest: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for an AI Gateway Consumer. type: object properties: display_name: description: The display name for this consumer instance. type: string example: Greg's Dev Consumer maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this consumer, used as a stable human-readable reference. This value is immutable after creation. example: gregs-dev-consumer allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' type: description: The type of the consumer. type: string enum: - api-key - oauth x-speakeasy-unknown-values: allow custom_id: description: Identifier for mapping the consumer when using OAuth authentication. type: string example: dev-users policies: $ref: '#/components/schemas/AIGatewayPolicyReferences' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' additionalProperties: true required: - display_name - name - type UpdateAIGatewayConsumerRequest: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for an AI Gateway Consumer. type: object properties: display_name: description: The display name for this consumer instance. type: string example: Greg's Dev Consumer maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this consumer, used as a stable human-readable reference. This value is immutable after creation. example: gregs-dev-consumer allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' type: description: The type of the consumer. type: string enum: - api-key - oauth x-speakeasy-unknown-values: allow custom_id: description: Identifier for mapping the consumer when using OAuth authentication. type: string example: dev-users policies: $ref: '#/components/schemas/AIGatewayPolicyReferences' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' additionalProperties: true required: - display_name - name - type AIGatewayConsumer: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for an AI Gateway Consumer. type: object properties: display_name: description: The display name for this consumer instance. type: string example: Greg's Dev Consumer maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this consumer, used as a stable human-readable reference. This value is immutable after creation. example: gregs-dev-consumer allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' type: description: The type of the consumer. type: string enum: - api-key - oauth x-speakeasy-unknown-values: allow custom_id: description: Identifier for mapping the consumer when using OAuth authentication. type: string example: dev-users policies: $ref: '#/components/schemas/AIGatewayPolicyReferences' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' id: $ref: '#/components/schemas/UUID' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: true required: - display_name - name - type - id - created_at - updated_at AIGatewayConsumerCredential: type: object properties: display_name: description: The display name for this credential instance. type: string example: Greg's Dev Key name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this credential, used as a stable human-readable reference. This value is immutable after creation. example: gregs-dev-key allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' type: type: string example: api-key enum: - api-key ttl: description: The API Key's time-to-live in seconds. A value of 0 means the API Key never expires. type: integer example: 86400 default: 0 id: $ref: '#/components/schemas/UUID' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - display_name - name - type - id - created_at - updated_at AIGatewayConsumerCredentialWithKey: type: object properties: display_name: description: The display name for this credential instance. type: string example: Greg's Dev Key name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this credential, used as a stable human-readable reference. This value is immutable after creation. example: gregs-dev-key allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' type: type: string example: api-key enum: - api-key ttl: description: The API Key's time-to-live in seconds. A value of 0 means the API Key never expires. type: integer example: 86400 default: 0 api_key: description: 'The API Key value. If not provided, then the key will be auto generated by the server and returned in the response.' type: string example: sk-387788hd3xnej id: $ref: '#/components/schemas/UUID' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - display_name - name - id - created_at - updated_at - type - api_key CreateAIGatewayConsumerCredentialRequest: type: object properties: display_name: description: The display name for this credential instance. type: string example: Greg's Dev Key name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this credential, used as a stable human-readable reference. This value is immutable after creation. example: gregs-dev-key allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' type: type: string example: api-key enum: - api-key ttl: description: The API Key's time-to-live in seconds. A value of 0 means the API Key never expires. type: integer example: 86400 default: 0 api_key: description: 'The API Key value. If not provided, then the key will be auto generated by the server and returned in the response.' type: string example: sk-387788hd3xnej writeOnly: true additionalProperties: false required: - display_name - name - type AIGatewayConsumerCredentialBaseProperties: type: object properties: display_name: description: The display name for this credential instance. type: string example: Greg's Dev Key name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this credential, used as a stable human-readable reference. This value is immutable after creation. example: gregs-dev-key allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' required: - display_name - name AIGatewayConsumerCredentialAPIKeyBase: type: object properties: display_name: description: The display name for this credential instance. type: string example: Greg's Dev Key name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this credential, used as a stable human-readable reference. This value is immutable after creation. example: gregs-dev-key allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' type: type: string example: api-key enum: - api-key ttl: description: The API Key's time-to-live in seconds. A value of 0 means the API Key never expires. type: integer example: 86400 default: 0 additionalProperties: false required: - display_name - name - type CreateAIGatewayConsumerGroupRequest: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: display_name: description: The display name for this consumer group instance. type: string example: Dev Users Group maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this consumer group, used as a stable human-readable reference. This value is immutable after creation. example: dev-users allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' policies: $ref: '#/components/schemas/AIGatewayPolicyReferences' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' additionalProperties: true required: - display_name - name UpdateAIGatewayConsumerGroupRequest: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: display_name: description: The display name for this consumer group instance. type: string example: Dev Users Group maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this consumer group, used as a stable human-readable reference. This value is immutable after creation. example: dev-users allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' policies: $ref: '#/components/schemas/AIGatewayPolicyReferences' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' additionalProperties: true required: - display_name - name AddAIGatewayConsumerToGroupRequest: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. properties: consumer: description: The ID or name of the consumer to add to the group. type: string example: cf4c7e60-11db-49dd-b300-7c7e5f0f7e6b additionalProperties: false required: - consumer AIGatewayConsumerGroup: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: display_name: description: The display name for this consumer group instance. type: string example: Dev Users Group maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this consumer group, used as a stable human-readable reference. This value is immutable after creation. example: dev-users allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' policies: $ref: '#/components/schemas/AIGatewayPolicyReferences' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' id: $ref: '#/components/schemas/UUID' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: true required: - display_name - name - id - created_at - updated_at AIGatewayMCPServerConversionOnly: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: type: type: string enum: - conversion-only config: $ref: '#/components/schemas/AIGatewayMCPServerWithUpstreamNoProxyConfigNoServerConfig' tools: description: List of tools exposed by this MCP Server. type: array items: $ref: '#/components/schemas/AIGatewayMCPConversionTool' display_name: description: The display name for the MCP Server. type: string example: Kong Air Flights maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this MCP server, used as a stable human-readable reference. This value is immutable after creation. example: kongair-flights allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' enabled: description: Whether the MCP Server is enabled. type: boolean example: true default: true policies: $ref: '#/components/schemas/AIGatewayPolicyReferences' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' additionalProperties: true required: - type - config - display_name - name AIGatewayMCPServerConversionListener: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: type: type: string enum: - conversion-listener config: $ref: '#/components/schemas/AIGatewayMCPServerWithUpstreamNoProxyConfig' tools: description: List of tools exposed by this MCP Server. type: array items: $ref: '#/components/schemas/AIGatewayMCPConversionTool' access: $ref: '#/components/schemas/AIGatewayMCPServerBaseACLProperties' display_name: description: The display name for the MCP Server. type: string example: Kong Air Flights maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this MCP server, used as a stable human-readable reference. This value is immutable after creation. example: kongair-flights allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' enabled: description: Whether the MCP Server is enabled. type: boolean example: true default: true policies: $ref: '#/components/schemas/AIGatewayPolicyReferences' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' additionalProperties: true required: - type - config - display_name - name AIGatewayMCPServerListener: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: type: type: string enum: - listener config: $ref: '#/components/schemas/AIGatewayMCPServerNoUpstreamConfig' tools: description: List of tools exposed by this MCP Server. type: array items: $ref: '#/components/schemas/AIGatewayMCPToolBase' access: $ref: '#/components/schemas/AIGatewayMCPServerBaseACLProperties' display_name: description: The display name for the MCP Server. type: string example: Kong Air Flights maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this MCP server, used as a stable human-readable reference. This value is immutable after creation. example: kongair-flights allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' enabled: description: Whether the MCP Server is enabled. type: boolean example: true default: true policies: $ref: '#/components/schemas/AIGatewayPolicyReferences' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' additionalProperties: true required: - type - config - display_name - name AIGatewayMCPServerPassthroughListener: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: type: type: string enum: - passthrough-listener config: $ref: '#/components/schemas/AIGatewayMCPServerWithUpstreamConfig' tools: description: List of tools exposed by this MCP Server. type: array items: $ref: '#/components/schemas/AIGatewayMCPToolBase' access: $ref: '#/components/schemas/AIGatewayMCPServerBaseACLProperties' display_name: description: The display name for the MCP Server. type: string example: Kong Air Flights maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this MCP server, used as a stable human-readable reference. This value is immutable after creation. example: kongair-flights allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' enabled: description: Whether the MCP Server is enabled. type: boolean example: true default: true policies: $ref: '#/components/schemas/AIGatewayPolicyReferences' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' additionalProperties: true required: - type - config - display_name - name AIGatewayMCPServerUpstreamServer: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: type: type: string enum: - upstream-server config: $ref: '#/components/schemas/AIGatewayMCPServerUpstreamServerConfig' tools: description: List of tools exposed by this MCP Server. type: array items: $ref: '#/components/schemas/AIGatewayMCPUpstreamTool' access: $ref: '#/components/schemas/AIGatewayMCPServerBaseACLProperties' display_name: description: The display name for the MCP Server. type: string example: Kong Air Flights maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this MCP server, used as a stable human-readable reference. This value is immutable after creation. example: kongair-flights allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' enabled: description: Whether the MCP Server is enabled. type: boolean example: true default: true policies: $ref: '#/components/schemas/AIGatewayPolicyReferences' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' additionalProperties: true required: - type - config - display_name - name AIGatewayMCPConversionTool: description: A tool exposed by an MCP Server in `conversion-only` or `conversion-listener` mode. type: object properties: access: type: object additionalProperties: false properties: acls: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules for allowing or denying consumer groups access to this tool. When configured, these will override the default access control rules defined on the MCP Server. allOf: - $ref: '#/components/schemas/AIGatewayMCPACLs' annotations: $ref: '#/components/schemas/AIGatewayMCPToolAnnotations' description: description: A description of what the tool does. type: string example: Search for available flights headers: $ref: '#/components/schemas/AIGatewayMCPToolHeaders' 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 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 annotations.title if present).' type: string method: description: 'For conversion-only and conversion-listener modes, the method of the exported API, which must match the route''s methods.' type: string enum: - DELETE - GET - PATCH - POST - PUT x-speakeasy-unknown-values: allow 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. By default, Kong will extract the path from API configuration.' type: string query: $ref: '#/components/schemas/AIGatewayMCPToolQuery' request_body: $ref: '#/components/schemas/AIGatewayMCPToolRequestBody' responses: $ref: '#/components/schemas/AIGatewayMCPToolResponses' scheme: description: 'The scheme of the exported API. 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 parameters: $ref: '#/components/schemas/AIGatewayMCPToolParameters' additionalProperties: false required: - name - description - method AIGatewayMCPServerBaseACLProperties: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. default: acl_attribute_type: consumer discriminator: propertyName: acl_attribute_type mapping: consumer: '#/components/schemas/AIGatewayMCPServerBaseACLPropertiesConsumer' oauth_access_token: '#/components/schemas/AIGatewayMCPServerBaseACLPropertiesOauth' oneOf: - $ref: '#/components/schemas/AIGatewayMCPServerBaseACLPropertiesConsumer' - $ref: '#/components/schemas/AIGatewayMCPServerBaseACLPropertiesOauth' AIGatewayMCPServerBaseACLPropertiesConsumer: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: acl_attribute_type: description: The type of attributes that ACL is evaluated with. type: string default: consumer enum: - consumer acls: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules for allowing or denying consumer groups. allOf: - $ref: '#/components/schemas/AIGatewayMCPACLs' default_tool_acls: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Default access control rules for allowing or denying consumer groups to tools. allOf: - $ref: '#/components/schemas/AIGatewayMCPACLs' required: - acl_attribute_type title: AIGatewayMCPServerBaseACLPropertiesConsumer AIGatewayMCPServerBaseACLPropertiesOauth: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: acl_attribute_type: description: The type of attributes that ACL is evaluated with. type: string enum: - oauth_access_token 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 acls: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules for allowing or denying consumer groups. allOf: - $ref: '#/components/schemas/AIGatewayMCPACLs' default_tool_acls: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Default access control rules for allowing or denying consumer groups to tools. allOf: - $ref: '#/components/schemas/AIGatewayMCPACLs' required: - acl_attribute_type - access_token_claim_field title: AIGatewayMCPServerBaseACLPropertiesOauth AIGatewayRedisAWSAuthentication: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. AWS specific configs for connecting to a Cloud Provider's redis instance. type: object properties: type: type: string enum: - aws access_key_id: description: | AWS Access Key ID to be used for authentication. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true assume_role_arn: description: | The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true cache_name: description: | The name of the AWS Elasticache cluster. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true is_serverless: description: This flag specifies whether the cluster is serverless. type: boolean default: true region: description: | The region of the AWS ElastiCache cluster. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true role_session_name: description: | The session name for the temporary credentials when assuming the IAM role. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true secret_access_key: description: | AWS Secret Access Key. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string writeOnly: true x-referenceable: true additionalProperties: false required: - type title: AIGatewayRedisAWSAuthentication AIGatewayRedisAzureAuthentication: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Azure specific configs for connecting to a Cloud Provider's redis instance. type: object properties: type: type: string enum: - azure client_id: description: | Azure Client ID. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true client_secret: description: | Azure Client Secret. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string writeOnly: true x-referenceable: true tenant_id: description: | Azure Tenant ID. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true additionalProperties: false required: - type title: AIGatewayRedisAzureAuthentication AIGatewayRedisGCPAuthentication: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. GCP specific configs for connecting to a Cloud Provider's redis instance. type: object properties: type: type: string enum: - gcp service_account_json: description: | GCP Service Account JSON. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string writeOnly: true x-referenceable: true additionalProperties: false required: - type title: AIGatewayRedisGCPAuthentication AIGatewayRedisCloudConfiguration: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Config for connecting to a Cloud Provider's Redis instance. type: object properties: cloud_authentication: description: Auth related config for connecting to a Cloud Provider's Redis instance. discriminator: propertyName: type mapping: aws: '#/components/schemas/AIGatewayRedisAWSAuthentication' azure: '#/components/schemas/AIGatewayRedisAzureAuthentication' gcp: '#/components/schemas/AIGatewayRedisGCPAuthentication' oneOf: - $ref: '#/components/schemas/AIGatewayRedisAWSAuthentication' - $ref: '#/components/schemas/AIGatewayRedisAzureAuthentication' - $ref: '#/components/schemas/AIGatewayRedisGCPAuthentication' cluster: description: Cluster configuration for the Redis connection. type: object additionalProperties: false properties: max_redirections: description: Maximum retry attempts for redirection. type: integer default: 5 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: type: object 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 minItems: 1 connect_timeout: description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. type: integer default: 2000 maximum: 2147483646 minimum: 0 connection_is_proxied: description: 'If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address.' type: boolean default: false database: description: Database to use for the Redis connection when using the `redis` strategy type: integer default: 0 host: description: | A string representing a host name, such as example.com. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string default: 127.0.0.1 x-referenceable: true keepalive: description: Keepalive configuration for the Redis connection. type: object additionalProperties: false properties: 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 `pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `pool_size`.' type: integer maximum: 2147483646 minimum: 0 pool_size: description: 'The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `pool_size` nor `backlog` is specified, no pool is created. If `pool_size` isn''t specified but `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. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true port: description: | An integer representing a port number between 0 and 65535, inclusive. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). oneOf: - type: integer default: 6379 maximum: 65535 minimum: 0 example: 6379 - type: string example: '{vault://hcv/redis/port}' x-go-type: types.Referenceable x-go-type-import: path: github.com/kong/koko/internal/server/public/openapi/controlplanesconfig/types name: types 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: description: Configuration for Redis Sentinel. type: object additionalProperties: false properties: master: description: Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel. type: string 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: type: object 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 minItems: 1 password: description: | Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true 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 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+. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true server_name: description: | A string representing an SNI (server name indication) value for TLS. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true ssl: description: 'If set to true, uses SSL to connect to Redis.' type: boolean default: true 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: true 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`. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true additionalProperties: false AIGatewayProxyConfig: description: HTTP/HTTPS proxy configuration for outbound requests to the upstream AI provider. type: object properties: http_proxy: description: HTTP proxy server to route plaintext outbound requests through. type: object additionalProperties: false 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 https_proxy: description: HTTPS proxy server to route TLS outbound requests through. type: object additionalProperties: false 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 proxy_scheme: description: The proxy scheme to use when connecting to the proxy server. type: string default: http enum: - http auth: description: Credentials used to authenticate to the proxy server. type: object additionalProperties: false properties: username: description: | The username to use for proxy authentication. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true password: description: | The password to use for proxy authentication. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string writeOnly: true x-referenceable: true no_proxy: description: Comma-separated list of hosts that should not be proxied. type: string additionalProperties: false AIGatewayRouteConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for an AI Gateway route. type: object properties: 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 example: version: - v1 - v2 additionalProperties: true hosts: description: A list of domain names that match this route. Note that the hosts value is case sensitive. type: array items: type: string example: foo.example.com 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 methods: description: A list of HTTP methods that match this route. type: array items: type: string paths: description: A list of paths that match this route. type: array items: type: string 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 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: type: string default: - http - https 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 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 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 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 tags: description: An optional set of strings associated with the route for grouping and filtering. type: array items: type: string additionalProperties: false AIGatewayLoggingConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for AI Gateway logging. type: object properties: payloads: type: boolean default: false additionalProperties: false AIGatewayMCPServerNoUpstreamConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Routing, logging, and server configuration for the MCP Server. type: object properties: route: $ref: '#/components/schemas/AIGatewayRouteConfig' logging: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for AI Gateway logging. type: object additionalProperties: false properties: payloads: type: boolean default: false audits: type: boolean default: false max_request_body_size: description: Maximum size of request body to parse. Set to 0 for unlimited. type: integer default: 8388608 server: $ref: '#/components/schemas/AIGatewayMCPServerServerConfigBase' additionalProperties: false AIGatewayMCPServerWithUpstreamNoProxyConfigNoServerConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Routing, logging, and request body size limits for the MCP Server. type: object properties: route: $ref: '#/components/schemas/AIGatewayRouteConfig' logging: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for AI Gateway logging. type: object additionalProperties: false properties: payloads: type: boolean default: false audits: type: boolean default: false max_request_body_size: description: Maximum size of request body to parse. Set to 0 for unlimited. type: integer default: 8388608 url: description: | Helper field to set protocol, host, port and path of the upstream service using a URL. This is the same as a Kong Gateway Service URL: ${scheme}://${host}:${port}/${path} type: string format: uri example: 'https://mcp.internal.kongair.com' additionalProperties: false required: - url AIGatewayMCPServerWithUpstreamNoProxyConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Routing, logging, and server configuration for the MCP Server. type: object properties: route: $ref: '#/components/schemas/AIGatewayRouteConfig' logging: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for AI Gateway logging. type: object additionalProperties: false properties: payloads: type: boolean default: false audits: type: boolean default: false max_request_body_size: description: Maximum size of request body to parse. Set to 0 for unlimited. type: integer default: 8388608 server: $ref: '#/components/schemas/AIGatewayMCPServerServerConfigBase' url: description: | Helper field to set protocol, host, port and path of the upstream service using a URL. This is the same as a Kong Gateway Service URL: ${scheme}://${host}:${port}/${path} type: string format: uri example: 'https://mcp.internal.kongair.com' additionalProperties: false required: - url AIGatewayMCPServerWithUpstreamConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Routing, logging, and server configuration for the MCP Server. type: object properties: route: $ref: '#/components/schemas/AIGatewayRouteConfig' logging: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for AI Gateway logging. type: object additionalProperties: false properties: payloads: type: boolean default: false audits: type: boolean default: false max_request_body_size: description: Maximum size of request body to parse. Set to 0 for unlimited. type: integer default: 8388608 server: $ref: '#/components/schemas/AIGatewayMCPServerServerConfigBase' url: description: | Helper field to set protocol, host, port and path of the upstream service using a URL. This is the same as a Kong Gateway Service URL: ${scheme}://${host}:${port}/${path} type: string format: uri example: 'https://mcp.internal.kongair.com' proxy: $ref: '#/components/schemas/AIGatewayProxyConfig' additionalProperties: false required: - url AIGatewayMCPServerUpstreamServerConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Routing, logging, and server configuration for the MCP Server. type: object properties: route: $ref: '#/components/schemas/AIGatewayRouteConfig' logging: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for AI Gateway logging. type: object additionalProperties: false properties: payloads: type: boolean default: false audits: type: boolean default: false max_request_body_size: description: Maximum size of request body to parse. Set to 0 for unlimited. type: integer default: 8388608 server: $ref: '#/components/schemas/AIGatewayMCPServerUpstreamServerServerConfig' url: description: | Helper field to set protocol, host, port and path of the upstream service using a URL. This is the same as a Kong Gateway Service URL: ${scheme}://${host}:${port}/${path} type: string format: uri example: 'https://mcp.internal.kongair.com' tools_cache_ttl_seconds: description: | The time-to-live (TTL) for the upstream tools cache in seconds. Set to `0` to refresh on every client call. type: integer minimum: 0 additionalProperties: false required: - url - tools_cache_ttl_seconds AIGatewayMCPServerServerConfigBase: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Server-side configuration for the MCP Server. type: object 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, conversion-listener, or upstream-server modes. This doesn't affect the passthrough-listener mode as the state in that mode is maintained by the upstream MCP servers. type: object additionalProperties: false properties: client: description: The configuration for client-side session storage. type: object additionalProperties: false 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: type: string minLength: 8 x-referenceable: true description: | This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). minItems: 1 managed: description: 'If enabled, Kong will maintain managed sessions with the MCP server.' type: boolean default: true redis: $ref: '#/components/schemas/AIGatewayRedisCloudConfiguration' session_ttl: description: The time-to-live (TTL) for each session in seconds. type: integer 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 label: description: The label of the MCP server. This is used to filter the exported MCP tools. type: string timeout: description: The timeout for calling the tools in milliseconds. type: integer default: 10000 additionalProperties: false AIGatewayMCPServerUpstreamServerServerConfig: description: Server-side configuration specific to `upstream-server` mode. type: object 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, conversion-listener, or upstream-server modes. This doesn't affect the passthrough-listener mode as the state in that mode is maintained by the upstream MCP servers. type: object additionalProperties: false properties: client: description: The configuration for client-side session storage. type: object additionalProperties: false 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: type: string minLength: 8 x-referenceable: true description: | This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). minItems: 1 managed: description: 'If enabled, Kong will maintain managed sessions with the MCP server.' type: boolean default: true redis: $ref: '#/components/schemas/AIGatewayRedisCloudConfiguration' session_ttl: description: The time-to-live (TTL) for each session in seconds. type: integer 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 label: description: The label of the MCP server. This is used to filter the exported MCP tools. type: string timeout: description: The timeout for calling the tools in milliseconds. type: integer default: 10000 preserve_upstream_tool_names: description: | If enabled, the original upstream tool names are preserved as-is when Kong acts as an MCP server. If disabled (`false`), the service name will be prepended to the MCP tool names to avoid name collisions when multiple services are used. type: boolean default: false tools_list_auth: $ref: '#/components/schemas/AIGatewayMCPServerUpstreamServerServerToolAuthConfig' additionalProperties: false AIGatewayMCPServerUpstreamServerServerToolAuthConfig: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for an Upstream Server's MCP Server Tools' Authentication. discriminator: propertyName: type mapping: jwt: '#/components/schemas/AIGatewayMCPServerUpstreamServerToolOauth2ConfigJwt' credentials: '#/components/schemas/AIGatewayMCPServerUpstreamServerToolOauth2ConfigCredentials' oneOf: - $ref: '#/components/schemas/AIGatewayMCPServerUpstreamServerToolOauth2ConfigJwt' - $ref: '#/components/schemas/AIGatewayMCPServerUpstreamServerToolOauth2ConfigCredentials' AIGatewayMCPServerUpstreamServerToolOauth2ConfigJwt: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: scope: description: | The scopes for the OAuth 2.0 client-credentials. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true access_token_header: description: | Header name used to send the fetched access token to the upstream MCP server. The value should include the header name and the token prefix if needed. type: string default: Authorization id_token_header: description: | Header name used to send the fetched ID token to the upstream MCP server. The value should include the header name and the token prefix if needed. Leave empty to omit the ID token when fetching the tools list. type: string type: type: string enum: - jwt additionalProperties: false required: - type AIGatewayMCPServerUpstreamServerToolOauth2ConfigCredentials: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: scope: description: | The scopes for the OAuth 2.0 client-credentials. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true access_token_header: description: | Header name used to send the fetched access token to the upstream MCP server. The value should include the header name and the token prefix if needed. type: string default: Authorization id_token_header: description: | Header name used to send the fetched ID token to the upstream MCP server. The value should include the header name and the token prefix if needed. Leave empty to omit the ID token when fetching the tools list. type: string type: type: string enum: - credentials token_endpoint: description: | The token endpoint URL for fetching the OAuth 2.0 access token using client-credentials. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string format: uri x-referenceable: true client_id: description: | The client ID for the OAuth 2.0 client-credentials. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true client_secret: description: | The client secret for the OAuth 2.0 client-credentials. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string writeOnly: true x-referenceable: true additionalProperties: false required: - type - token_endpoint - client_id CreateAIGatewayMCPServerRequest: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. discriminator: propertyName: type mapping: conversion-only: '#/components/schemas/AIGatewayMCPServerConversionOnly' conversion-listener: '#/components/schemas/AIGatewayMCPServerConversionListener' listener: '#/components/schemas/AIGatewayMCPServerListener' passthrough-listener: '#/components/schemas/AIGatewayMCPServerPassthroughListener' upstream-server: '#/components/schemas/AIGatewayMCPServerUpstreamServer' oneOf: - $ref: '#/components/schemas/AIGatewayMCPServerConversionOnly' - $ref: '#/components/schemas/AIGatewayMCPServerConversionListener' - $ref: '#/components/schemas/AIGatewayMCPServerListener' - $ref: '#/components/schemas/AIGatewayMCPServerPassthroughListener' - $ref: '#/components/schemas/AIGatewayMCPServerUpstreamServer' UpdateAIGatewayMCPServerRequest: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. discriminator: propertyName: type mapping: conversion-only: '#/components/schemas/AIGatewayMCPServerConversionOnly' conversion-listener: '#/components/schemas/AIGatewayMCPServerConversionListener' listener: '#/components/schemas/AIGatewayMCPServerListener' passthrough-listener: '#/components/schemas/AIGatewayMCPServerPassthroughListener' upstream-server: '#/components/schemas/AIGatewayMCPServerUpstreamServer' oneOf: - $ref: '#/components/schemas/AIGatewayMCPServerConversionOnly' - $ref: '#/components/schemas/AIGatewayMCPServerConversionListener' - $ref: '#/components/schemas/AIGatewayMCPServerListener' - $ref: '#/components/schemas/AIGatewayMCPServerPassthroughListener' - $ref: '#/components/schemas/AIGatewayMCPServerUpstreamServer' AIGatewayMCPServer: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: id: $ref: '#/components/schemas/UUID' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' discriminator: propertyName: type mapping: conversion-only: '#/components/schemas/AIGatewayMCPServerConversionOnly' conversion-listener: '#/components/schemas/AIGatewayMCPServerConversionListener' listener: '#/components/schemas/AIGatewayMCPServerListener' passthrough-listener: '#/components/schemas/AIGatewayMCPServerPassthroughListener' upstream-server: '#/components/schemas/AIGatewayMCPServerUpstreamServer' oneOf: - $ref: '#/components/schemas/AIGatewayMCPServerConversionOnly' - $ref: '#/components/schemas/AIGatewayMCPServerConversionListener' - $ref: '#/components/schemas/AIGatewayMCPServerListener' - $ref: '#/components/schemas/AIGatewayMCPServerPassthroughListener' - $ref: '#/components/schemas/AIGatewayMCPServerUpstreamServer' required: - id - created_at - updated_at AIGatewayMCPToolBase: description: 'A tool exposed by the MCP Server, mapped to a backend HTTP endpoint.' type: object properties: access: type: object additionalProperties: false properties: acls: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules for allowing or denying consumer groups access to this tool. When configured, these will override the default access control rules defined on the MCP Server. allOf: - $ref: '#/components/schemas/AIGatewayMCPACLs' annotations: $ref: '#/components/schemas/AIGatewayMCPToolAnnotations' description: description: A description of what the tool does. type: string example: Search for available flights headers: $ref: '#/components/schemas/AIGatewayMCPToolHeaders' 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 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 annotations.title if present).' type: string method: description: 'For conversion-only and conversion-listener modes, the method of the exported API, which must match the route''s methods.' type: string enum: - DELETE - GET - PATCH - POST - PUT x-speakeasy-unknown-values: allow 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. By default, Kong will extract the path from API configuration.' type: string query: $ref: '#/components/schemas/AIGatewayMCPToolQuery' request_body: $ref: '#/components/schemas/AIGatewayMCPToolRequestBody' responses: $ref: '#/components/schemas/AIGatewayMCPToolResponses' scheme: description: 'The scheme of the exported API. 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 parameters: $ref: '#/components/schemas/AIGatewayMCPToolParameters' additionalProperties: false required: - name - description AIGatewayMCPUpstreamTool: description: A tool exposed by an MCP Server in `upstream-server` mode. Extends the base tool with input/output schema overrides for the upstream server's advertised tool. type: object properties: access: type: object additionalProperties: false properties: acls: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Access control rules for allowing or denying consumer groups access to this tool. When configured, these will override the default access control rules defined on the MCP Server. allOf: - $ref: '#/components/schemas/AIGatewayMCPACLs' annotations: $ref: '#/components/schemas/AIGatewayMCPToolAnnotations' description: description: A description of what the tool does. type: string example: Search for available flights headers: $ref: '#/components/schemas/AIGatewayMCPToolHeaders' 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 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 annotations.title if present).' type: string method: description: 'When provided, the method of the exported API, which must match the route''s methods.' type: string enum: - DELETE - GET - PATCH - POST - PUT x-speakeasy-unknown-values: allow 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. By default, Kong will extract the path from API configuration.' type: string query: $ref: '#/components/schemas/AIGatewayMCPToolQuery' request_body: $ref: '#/components/schemas/AIGatewayMCPToolRequestBody' responses: $ref: '#/components/schemas/AIGatewayMCPToolResponses' scheme: description: 'The scheme of the exported API. 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 parameters: $ref: '#/components/schemas/AIGatewayMCPToolParameters' input_schema: description: | The entire `inputSchema` section for the tool. Overrides the upstream server's `inputSchema` for the same tool name, if present. type: object additionalProperties: true nullable: true x-speakeasy-type-override: any output_schema: description: | The entire `outputSchema` section for the tool. Overrides the upstream server's `outputSchema` for the same tool name, if present. type: object additionalProperties: true nullable: true x-speakeasy-type-override: any additionalProperties: false required: - name - description AIGatewayMCPToolAnnotations: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: destructive_hint: description: 'If true, the tool may perform destructive updates' type: boolean idempotent_hint: description: 'If true, repeated calls with same args have no additional effect' type: boolean open_world_hint: description: 'If true, tool interacts with external entities' type: boolean read_only_hint: description: 'If true, the tool does not modify its environment' type: boolean title: description: Human-readable title for the tool type: string additionalProperties: false AIGatewayMCPToolHeaders: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. 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 additionalProperties: true x-speakeasy-type-override: any AIGatewayMCPToolQuery: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. The query arguments of the exported API. If the generated query arguments are not exactly matched, this field is required. type: object additionalProperties: true x-speakeasy-type-override: any AIGatewayMCPToolRequestBody: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. 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. type: object additionalProperties: true x-speakeasy-type-override: any AIGatewayMCPToolResponses: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. 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. type: object additionalProperties: true x-speakeasy-type-override: any AIGatewayMCPToolParameters: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: array items: $ref: '#/components/schemas/AIGatewayMCPToolParameter' AIGatewayMCPToolParameter: description: 'An API parameter 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.' type: object properties: name: description: The name of the parameter. type: string example: origin in: description: The location of the parameter in the request. type: string example: query enum: - query - path - header - body x-speakeasy-unknown-values: allow description: description: A description of the parameter. type: string example: The origin airport code. required: description: Whether this parameter is required. type: boolean example: true schema: description: 'JSON Schema definition for the parameter value. See https://swagger.io/docs/specification/v3_0/describing-parameters/#schema-vs-content for more details.' type: object additionalProperties: true additionalProperties: false required: - name - in AIGatewayIdentityProviderReference: description: Reference to a identity provider instance by name. type: string example: okta-ai-se AIGatewayIdentityProviderKeyAuth: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for an identity provider. type: object properties: display_name: description: The display name for this identity provider instance. type: string example: Okta AI SE maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this identity provider instance, used as a stable human-readable reference. This value is immutable after creation. example: okta-ai-se allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' type: type: string enum: - key-auth config: description: | Configuration for the Kong Key auth identity provider. For advanced use cases, additional config properties can be sent in the request body. See: https://developer.konghq.com/plugins/key-auth/reference/ for the list of properties type: object additionalProperties: true properties: 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: true key_in_body: description: | If enabled, 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: | An array of strings containing the names of the keys to look for in the request. type: array items: type: string default: - apikey required: - display_name - name - type title: AIGatewayIdentityProviderKeyAuthConfig AIGatewayIdentityProviderOpenIDConnect: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for an identity provider. type: object properties: display_name: description: The display name for this identity provider instance. type: string example: Okta AI SE maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this identity provider instance, used as a stable human-readable reference. This value is immutable after creation. example: okta-ai-se allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' type: type: string enum: - openid-connect config: description: | Configuration for the OpenID Connect identity provider. For advanced use cases, additional config properties can be sent in the request body. See: https://developer.konghq.com/plugins/openid-connect/reference/ for the list of properties type: object additionalProperties: true properties: auth_methods: description: Types of credentials/grants to enable. type: array items: type: string enum: - authorization_code - bearer - client_credentials - introspection - kong_oauth2 - password - refresh_token - session - userinfo x-speakeasy-unknown-values: allow default: - bearer - client_credentials client_id: description: | An array of strings representing the client id for the OpenID Connect provider. When multiple values are provided, the client ID and secrets pairs correspond based on their locations in the array. type: array items: type: string client_secret: description: | An array of strings representing the client secret for the OpenID Connect provider. When multiple values are provided, the client ID and secrets pairs correspond based on their locations in the array. type: array items: type: string writeOnly: true consumer_claims: description: | An array containing an array of string paths representing the location of the claim in a nested object. For example, to map to user.info.id, set [ "user", "info", "id" ]. type: array items: type: array items: type: string 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 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 issuer: description: URL that identifies the OpenID Provider type: string example: 'https://dev-123456.okta.com' scopes: description: | This field is referenceable. type: array items: type: string default: - openid ssl_verify: 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 required: - cache_tokens_salt required: - display_name - name - type title: AIGatewayIdentityProviderOpenIDConnectConfig AIGatewayModelProviderReference: description: Reference to a model provider instance by name. type: string example: azure-ai-se AIGatewayModelProviderAnthropic: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: type: type: string enum: - anthropic display_name: description: The display name for this model provider instance. type: string example: Azure AI SE maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this model provider instance, used as a stable human-readable reference. This value is immutable after creation. example: azure-ai-se allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' config: description: Configuration for the model provider. type: object additionalProperties: false properties: auth: $ref: '#/components/schemas/AIGatewayModelProviderConfigAuthBasic' required: - auth required: - type - display_name - name - config AIGatewayModelProviderCerebras: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: type: type: string enum: - cerebras display_name: description: The display name for this model provider instance. type: string example: Azure AI SE maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this model provider instance, used as a stable human-readable reference. This value is immutable after creation. example: azure-ai-se allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' config: description: Configuration for the model provider. type: object additionalProperties: false properties: auth: $ref: '#/components/schemas/AIGatewayModelProviderConfigAuthBasic' required: - auth required: - type - display_name - name - config AIGatewayModelProviderCohere: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: type: type: string enum: - cohere display_name: description: The display name for this model provider instance. type: string example: Azure AI SE maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this model provider instance, used as a stable human-readable reference. This value is immutable after creation. example: azure-ai-se allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' config: description: Configuration for the model provider. type: object additionalProperties: false properties: auth: $ref: '#/components/schemas/AIGatewayModelProviderConfigAuthBasic' required: - auth required: - type - display_name - name - config AIGatewayModelProviderDashscope: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: type: type: string enum: - dashscope display_name: description: The display name for this model provider instance. type: string example: Azure AI SE maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this model provider instance, used as a stable human-readable reference. This value is immutable after creation. example: azure-ai-se allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' config: description: Configuration for the model provider. type: object additionalProperties: false properties: auth: $ref: '#/components/schemas/AIGatewayModelProviderConfigAuthBasic' required: - auth required: - type - display_name - name - config AIGatewayModelProviderDatabricks: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: type: type: string enum: - databricks display_name: description: The display name for this model provider instance. type: string example: Azure AI SE maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this model provider instance, used as a stable human-readable reference. This value is immutable after creation. example: azure-ai-se allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' config: description: Configuration for the model provider. type: object additionalProperties: false properties: auth: $ref: '#/components/schemas/AIGatewayModelProviderConfigAuthBasic' required: - auth required: - type - display_name - name - config AIGatewayModelProviderDeepseek: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: type: type: string enum: - deepseek display_name: description: The display name for this model provider instance. type: string example: Azure AI SE maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this model provider instance, used as a stable human-readable reference. This value is immutable after creation. example: azure-ai-se allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' config: description: Configuration for the model provider. type: object additionalProperties: false properties: auth: $ref: '#/components/schemas/AIGatewayModelProviderConfigAuthBasic' required: - auth required: - type - display_name - name - config AIGatewayModelProviderHuggingface: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: type: type: string enum: - huggingface display_name: description: The display name for this model provider instance. type: string example: Azure AI SE maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this model provider instance, used as a stable human-readable reference. This value is immutable after creation. example: azure-ai-se allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' config: description: Configuration for the model provider. type: object additionalProperties: false properties: auth: $ref: '#/components/schemas/AIGatewayModelProviderConfigAuthBasic' required: - auth required: - type - display_name - name - config AIGatewayModelProviderKimi: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: type: type: string enum: - kimi display_name: description: The display name for this model provider instance. type: string example: Azure AI SE maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this model provider instance, used as a stable human-readable reference. This value is immutable after creation. example: azure-ai-se allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' config: description: Configuration for the model provider. type: object additionalProperties: false properties: auth: $ref: '#/components/schemas/AIGatewayModelProviderConfigAuthBasic' required: - auth required: - type - display_name - name - config AIGatewayModelProviderLlama2: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: type: type: string enum: - llama2 display_name: description: The display name for this model provider instance. type: string example: Azure AI SE maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this model provider instance, used as a stable human-readable reference. This value is immutable after creation. example: azure-ai-se allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' config: description: Configuration for the model provider. type: object additionalProperties: false properties: auth: $ref: '#/components/schemas/AIGatewayModelProviderConfigAuthBasic' required: - auth required: - type - display_name - name - config AIGatewayModelProviderMistral: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: type: type: string enum: - mistral display_name: description: The display name for this model provider instance. type: string example: Azure AI SE maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this model provider instance, used as a stable human-readable reference. This value is immutable after creation. example: azure-ai-se allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' config: description: Configuration for the model provider. type: object additionalProperties: false properties: auth: $ref: '#/components/schemas/AIGatewayModelProviderConfigAuthBasic' required: - auth required: - type - display_name - name - config AIGatewayModelProviderOllama: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: type: type: string enum: - ollama display_name: description: The display name for this model provider instance. type: string example: Azure AI SE maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this model provider instance, used as a stable human-readable reference. This value is immutable after creation. example: azure-ai-se allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' config: description: Configuration for the model provider. type: object additionalProperties: false properties: auth: $ref: '#/components/schemas/AIGatewayModelProviderConfigAuthBasic' required: - auth required: - type - display_name - name - config AIGatewayModelProviderOpenai: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: type: type: string enum: - openai display_name: description: The display name for this model provider instance. type: string example: Azure AI SE maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this model provider instance, used as a stable human-readable reference. This value is immutable after creation. example: azure-ai-se allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' config: description: Configuration for the model provider. type: object additionalProperties: false properties: auth: $ref: '#/components/schemas/AIGatewayModelProviderConfigAuthBasic' required: - auth required: - type - display_name - name - config AIGatewayModelProviderVercel: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: type: type: string enum: - vercel display_name: description: The display name for this model provider instance. type: string example: Azure AI SE maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this model provider instance, used as a stable human-readable reference. This value is immutable after creation. example: azure-ai-se allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' config: description: Configuration for the model provider. type: object additionalProperties: false properties: auth: $ref: '#/components/schemas/AIGatewayModelProviderConfigAuthBasic' required: - auth required: - type - display_name - name - config AIGatewayModelProviderVllm: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: type: type: string enum: - vllm display_name: description: The display name for this model provider instance. type: string example: Azure AI SE maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this model provider instance, used as a stable human-readable reference. This value is immutable after creation. example: azure-ai-se allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' config: description: Configuration for the model provider. type: object additionalProperties: false properties: auth: $ref: '#/components/schemas/AIGatewayModelProviderConfigAuthBasic' required: - auth required: - type - display_name - name - config AIGatewayModelProviderXai: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: type: type: string enum: - xai display_name: description: The display name for this model provider instance. type: string example: Azure AI SE maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this model provider instance, used as a stable human-readable reference. This value is immutable after creation. example: azure-ai-se allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' config: description: Configuration for the model provider. type: object additionalProperties: false properties: auth: $ref: '#/components/schemas/AIGatewayModelProviderConfigAuthBasic' required: - auth required: - type - display_name - name - config AIGatewayModelProviderConfigAuthBasic: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Basic auth config for an upstream model provider. type: object properties: type: type: string enum: - basic headers: type: array items: type: object additionalProperties: false required: - name properties: name: description: | The name of the header used for authentication. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true value: description: | The auth header value for ‘header_name’, for example ‘Bearer key...’. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string writeOnly: true x-referenceable: true maxItems: 1 params: type: array items: type: object additionalProperties: false required: - name properties: name: description: | This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true value: description: | This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string writeOnly: true x-referenceable: true location: description: 'Specify whether the param name and value options go in a query string, or the POST form/JSON body.' type: string enum: - body - query x-speakeasy-unknown-values: allow maxItems: 1 additionalProperties: false required: - type title: AIGatewayModelProviderConfigAuthBasic AIGatewayModelProviderBedrock: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Config for AWS model provider. type: object properties: type: type: string enum: - bedrock display_name: description: The display name for this model provider instance. type: string example: Azure AI SE maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this model provider instance, used as a stable human-readable reference. This value is immutable after creation. example: azure-ai-se allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' config: type: object additionalProperties: false properties: auth: discriminator: propertyName: type mapping: basic: '#/components/schemas/AIGatewayModelProviderConfigAuthBasic' aws: '#/components/schemas/AIGatewayModelProviderConfigAuthAWS' oneOf: - $ref: '#/components/schemas/AIGatewayModelProviderConfigAuthBasic' - $ref: '#/components/schemas/AIGatewayModelProviderConfigAuthAWS' required: - auth required: - type - display_name - name - config AIGatewayModelProviderConfigAuthAWS: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for AWS model provider. type: object properties: type: type: string enum: - aws access_key_id: description: | The access key id for authenticating with static IAM User credentials. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true secret_access_key: description: | The secret access key for authenticating with static IAM User credentials. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string writeOnly: true x-referenceable: true assume_role_arn: description: | The ARN of the IAM role to assume for generating authentication tokens. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true role_session_name: description: | The session name for the temporary credentials when assuming the IAM role. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true sts_endpoint_url: description: 'The STS endpoint URL to use for generating authentication tokens. If not specified, the default AWS STS endpoint will be used.' type: string batch_role_arn: description: AWS role arn to use when calling the batch API. type: string required: - type title: AIGatewayModelProviderConfigAuthAWS AIGatewayModelProviderAzure: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Config for Azure model provider. type: object properties: type: type: string enum: - azure display_name: description: The display name for this model provider instance. type: string example: Azure AI SE maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this model provider instance, used as a stable human-readable reference. This value is immutable after creation. example: azure-ai-se allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' config: type: object additionalProperties: false properties: auth: discriminator: propertyName: type mapping: basic: '#/components/schemas/AIGatewayModelProviderConfigAuthBasic' azure: '#/components/schemas/AIGatewayModelProviderConfigAuthAzure' oneOf: - $ref: '#/components/schemas/AIGatewayModelProviderConfigAuthBasic' - $ref: '#/components/schemas/AIGatewayModelProviderConfigAuthAzure' instance: type: string example: kong-az-east required: - auth - instance required: - type - display_name - name - config AIGatewayModelProviderConfigAuthAzure: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for Azure model provider. type: object properties: type: type: string enum: - 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. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true 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. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string writeOnly: true x-referenceable: true 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. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true 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 additionalProperties: false required: - type title: AIGatewayModelProviderConfigAuthAzure AIGatewayModelProviderGemini: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Config for GCP model provider. type: object properties: type: type: string enum: - gemini display_name: description: The display name for this model provider instance. type: string example: Azure AI SE maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this model provider instance, used as a stable human-readable reference. This value is immutable after creation. example: azure-ai-se allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' config: type: object additionalProperties: false properties: auth: discriminator: propertyName: type mapping: basic: '#/components/schemas/AIGatewayModelProviderConfigAuthBasic' gcp: '#/components/schemas/AIGatewayModelProviderConfigAuthGCP' oneOf: - $ref: '#/components/schemas/AIGatewayModelProviderConfigAuthBasic' - $ref: '#/components/schemas/AIGatewayModelProviderConfigAuthGCP' required: - auth required: - type - display_name - name - config AIGatewayModelProviderConfigAuthGCP: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for GCP model provider. type: object properties: type: type: string enum: - gcp service_account_json: description: | Full JSON string of the GCP service account to authenticate. If not set (and gcp_use_service_account is true), the service account JSON will be from the environment variable GCP_SERVICE_ACCOUNT. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string writeOnly: true x-referenceable: true metadata_url: description: | Custom metadata URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If not set, Kong will use the default Google metadata endpoint. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true oauth_token_url: description: | Custom OAuth token URL for GCP authentication. Useful for restricted network environments or custom GCP endpoints. If not set, Kong will use the default Google OAuth token endpoint. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string x-referenceable: true use_gcp_service_account: description: Use service account auth for GCP-based providers and models. type: boolean additionalProperties: false required: - type title: AIGatewayModelProviderConfigAuthGCP AIGatewayModelProviderVertex: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Config for Vertex model provider. type: object properties: type: type: string enum: - vertex display_name: description: The display name for this model provider instance. type: string example: Azure AI SE maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this model provider instance, used as a stable human-readable reference. This value is immutable after creation. example: azure-ai-se allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' config: type: object additionalProperties: false properties: auth: discriminator: propertyName: type mapping: basic: '#/components/schemas/AIGatewayModelProviderConfigAuthBasic' vertex: '#/components/schemas/AIGatewayModelProviderConfigAuthVertex' oneOf: - $ref: '#/components/schemas/AIGatewayModelProviderConfigAuthBasic' - $ref: '#/components/schemas/AIGatewayModelProviderConfigAuthVertex' required: - auth required: - type - display_name - name - config AIGatewayModelProviderSagemaker: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Config for Sagemaker model provider. type: object properties: type: type: string enum: - sagemaker display_name: description: The display name for this model provider instance. type: string example: Azure AI SE maxLength: 256 minLength: 1 name: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. A user-defined unique identifier for this model provider instance, used as a stable human-readable reference. This value is immutable after creation. example: azure-ai-se allOf: - $ref: '#/components/schemas/AIGatewayEntityIdentifier' labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' config: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object additionalProperties: false properties: auth: discriminator: propertyName: type mapping: basic: '#/components/schemas/AIGatewayModelProviderConfigAuthBasic' sagemaker: '#/components/schemas/AIGatewayModelProviderConfigAuthSagemaker' oneOf: - $ref: '#/components/schemas/AIGatewayModelProviderConfigAuthBasic' - $ref: '#/components/schemas/AIGatewayModelProviderConfigAuthSagemaker' required: - auth required: - type - display_name - name - config AIGatewayModelProviderConfigAuthSagemaker: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Auth configuration for Sagemaker model provider. type: object properties: type: type: string enum: - sagemaker aws: type: object additionalProperties: false properties: access_key_id: description: static IAM user credential; overrides AWS_ACCESS_KEY_ID env var type: string secret_access_key: description: static IAM user credential; overrides AWS_SECRET_ACCESS_KEY env var type: string session_token: description: static IAM user credential; overrides AWS_SESSION_TOKEN env var type: string additionalProperties: false required: - type title: AIGatewayModelProviderConfigAuthSagemaker AIGatewayModelProviderConfigAuthVertex: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. Configuration for Vertex model provider. type: object properties: type: type: string enum: - vertex use_gcp_service_account: description: Use the Google Cloud Service Account (or user-assigned identity) to authenticate with Vertex-provider models. type: boolean default: true enum: - true service_account_json: description: | Full JSON string of the GCP service account to authenticate. If not set, the service account JSON will be from the environment variable GCP_SERVICE_ACCOUNT. This field is [referenceable](https://developer.konghq.com/gateway/entities/vault/#how-do-i-reference-secrets-stored-in-a-vault). type: string writeOnly: true x-referenceable: true additionalProperties: false required: - type title: AIGatewayModelProviderConfigAuthVertex CreateAIGatewayConfigStoreRequest: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: display_name: description: The display name of the Config Store. type: string example: my-config-store maxLength: 256 pattern: '^[a-zA-Z0-9.\-_~]*$' name: description: The name of the Config Store. This value is immutable after creation. type: string example: my-config-store maxLength: 256 minLength: 1 pattern: '^[a-zA-Z0-9.\-_~]*$' additionalProperties: false required: - name UpdateAIGatewayConfigStoreRequest: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: display_name: description: The display name of the Config Store. type: string example: MyConfigStore labels: $ref: '#/components/schemas/PublicLabels' managed_by: $ref: '#/components/schemas/ManagedBy' additionalProperties: false AIGatewayConfigStore: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: display_name: description: The display name of the Config Store. type: string example: my-config-store maxLength: 256 pattern: '^[a-zA-Z0-9.\-_~]*$' name: description: The name of the Config Store. This value is immutable after creation. type: string example: my-config-store maxLength: 256 minLength: 1 pattern: '^[a-zA-Z0-9.\-_~]*$' id: $ref: '#/components/schemas/UUID' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - name - id - created_at - updated_at AIGatewayConfigStoreSecretKey: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. The unique key identifying the secret within the Config Store. type: string example: my-secret-key maxLength: 512 minLength: 1 AIGatewayConfigStoreSecretValue: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. The secret value. Once stored, this value cannot be retrieved. type: string example: my-secret-value maxLength: 5120 writeOnly: true CreateAIGatewayConfigStoreSecretRequest: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: key: $ref: '#/components/schemas/AIGatewayConfigStoreSecretKey' value: $ref: '#/components/schemas/AIGatewayConfigStoreSecretValue' additionalProperties: false required: - key - value UpdateAIGatewayConfigStoreSecretRequest: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: value: $ref: '#/components/schemas/AIGatewayConfigStoreSecretValue' additionalProperties: false required: - value AIGatewayConfigStoreSecret: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: key: $ref: '#/components/schemas/AIGatewayConfigStoreSecretKey' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - key - created_at - updated_at CreateAIGatewayModelProviderRequest: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. discriminator: propertyName: type mapping: anthropic: '#/components/schemas/AIGatewayModelProviderAnthropic' azure: '#/components/schemas/AIGatewayModelProviderAzure' bedrock: '#/components/schemas/AIGatewayModelProviderBedrock' cerebras: '#/components/schemas/AIGatewayModelProviderCerebras' cohere: '#/components/schemas/AIGatewayModelProviderCohere' dashscope: '#/components/schemas/AIGatewayModelProviderDashscope' databricks: '#/components/schemas/AIGatewayModelProviderDatabricks' deepseek: '#/components/schemas/AIGatewayModelProviderDeepseek' gemini: '#/components/schemas/AIGatewayModelProviderGemini' huggingface: '#/components/schemas/AIGatewayModelProviderHuggingface' kimi: '#/components/schemas/AIGatewayModelProviderKimi' llama2: '#/components/schemas/AIGatewayModelProviderLlama2' mistral: '#/components/schemas/AIGatewayModelProviderMistral' ollama: '#/components/schemas/AIGatewayModelProviderOllama' openai: '#/components/schemas/AIGatewayModelProviderOpenai' vercel: '#/components/schemas/AIGatewayModelProviderVercel' vllm: '#/components/schemas/AIGatewayModelProviderVllm' xai: '#/components/schemas/AIGatewayModelProviderXai' vertex: '#/components/schemas/AIGatewayModelProviderVertex' sagemaker: '#/components/schemas/AIGatewayModelProviderSagemaker' oneOf: - $ref: '#/components/schemas/AIGatewayModelProviderAnthropic' - $ref: '#/components/schemas/AIGatewayModelProviderAzure' - $ref: '#/components/schemas/AIGatewayModelProviderBedrock' - $ref: '#/components/schemas/AIGatewayModelProviderCerebras' - $ref: '#/components/schemas/AIGatewayModelProviderCohere' - $ref: '#/components/schemas/AIGatewayModelProviderDashscope' - $ref: '#/components/schemas/AIGatewayModelProviderDatabricks' - $ref: '#/components/schemas/AIGatewayModelProviderDeepseek' - $ref: '#/components/schemas/AIGatewayModelProviderGemini' - $ref: '#/components/schemas/AIGatewayModelProviderHuggingface' - $ref: '#/components/schemas/AIGatewayModelProviderKimi' - $ref: '#/components/schemas/AIGatewayModelProviderLlama2' - $ref: '#/components/schemas/AIGatewayModelProviderMistral' - $ref: '#/components/schemas/AIGatewayModelProviderOllama' - $ref: '#/components/schemas/AIGatewayModelProviderOpenai' - $ref: '#/components/schemas/AIGatewayModelProviderVercel' - $ref: '#/components/schemas/AIGatewayModelProviderVllm' - $ref: '#/components/schemas/AIGatewayModelProviderXai' - $ref: '#/components/schemas/AIGatewayModelProviderVertex' - $ref: '#/components/schemas/AIGatewayModelProviderSagemaker' UpdateAIGatewayModelProviderRequest: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. discriminator: propertyName: type mapping: anthropic: '#/components/schemas/AIGatewayModelProviderAnthropic' azure: '#/components/schemas/AIGatewayModelProviderAzure' bedrock: '#/components/schemas/AIGatewayModelProviderBedrock' cerebras: '#/components/schemas/AIGatewayModelProviderCerebras' cohere: '#/components/schemas/AIGatewayModelProviderCohere' dashscope: '#/components/schemas/AIGatewayModelProviderDashscope' databricks: '#/components/schemas/AIGatewayModelProviderDatabricks' deepseek: '#/components/schemas/AIGatewayModelProviderDeepseek' gemini: '#/components/schemas/AIGatewayModelProviderGemini' huggingface: '#/components/schemas/AIGatewayModelProviderHuggingface' kimi: '#/components/schemas/AIGatewayModelProviderKimi' llama2: '#/components/schemas/AIGatewayModelProviderLlama2' mistral: '#/components/schemas/AIGatewayModelProviderMistral' ollama: '#/components/schemas/AIGatewayModelProviderOllama' openai: '#/components/schemas/AIGatewayModelProviderOpenai' vercel: '#/components/schemas/AIGatewayModelProviderVercel' vllm: '#/components/schemas/AIGatewayModelProviderVllm' xai: '#/components/schemas/AIGatewayModelProviderXai' vertex: '#/components/schemas/AIGatewayModelProviderVertex' sagemaker: '#/components/schemas/AIGatewayModelProviderSagemaker' oneOf: - $ref: '#/components/schemas/AIGatewayModelProviderAnthropic' - $ref: '#/components/schemas/AIGatewayModelProviderAzure' - $ref: '#/components/schemas/AIGatewayModelProviderBedrock' - $ref: '#/components/schemas/AIGatewayModelProviderCerebras' - $ref: '#/components/schemas/AIGatewayModelProviderCohere' - $ref: '#/components/schemas/AIGatewayModelProviderDashscope' - $ref: '#/components/schemas/AIGatewayModelProviderDatabricks' - $ref: '#/components/schemas/AIGatewayModelProviderDeepseek' - $ref: '#/components/schemas/AIGatewayModelProviderGemini' - $ref: '#/components/schemas/AIGatewayModelProviderHuggingface' - $ref: '#/components/schemas/AIGatewayModelProviderKimi' - $ref: '#/components/schemas/AIGatewayModelProviderLlama2' - $ref: '#/components/schemas/AIGatewayModelProviderMistral' - $ref: '#/components/schemas/AIGatewayModelProviderOllama' - $ref: '#/components/schemas/AIGatewayModelProviderOpenai' - $ref: '#/components/schemas/AIGatewayModelProviderVercel' - $ref: '#/components/schemas/AIGatewayModelProviderVllm' - $ref: '#/components/schemas/AIGatewayModelProviderXai' - $ref: '#/components/schemas/AIGatewayModelProviderVertex' - $ref: '#/components/schemas/AIGatewayModelProviderSagemaker' AIGatewayModelProvider: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: id: $ref: '#/components/schemas/UUID' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' discriminator: propertyName: type mapping: anthropic: '#/components/schemas/AIGatewayModelProviderAnthropic' azure: '#/components/schemas/AIGatewayModelProviderAzure' bedrock: '#/components/schemas/AIGatewayModelProviderBedrock' cerebras: '#/components/schemas/AIGatewayModelProviderCerebras' cohere: '#/components/schemas/AIGatewayModelProviderCohere' dashscope: '#/components/schemas/AIGatewayModelProviderDashscope' databricks: '#/components/schemas/AIGatewayModelProviderDatabricks' deepseek: '#/components/schemas/AIGatewayModelProviderDeepseek' gemini: '#/components/schemas/AIGatewayModelProviderGemini' huggingface: '#/components/schemas/AIGatewayModelProviderHuggingface' kimi: '#/components/schemas/AIGatewayModelProviderKimi' llama2: '#/components/schemas/AIGatewayModelProviderLlama2' mistral: '#/components/schemas/AIGatewayModelProviderMistral' ollama: '#/components/schemas/AIGatewayModelProviderOllama' openai: '#/components/schemas/AIGatewayModelProviderOpenai' vercel: '#/components/schemas/AIGatewayModelProviderVercel' vllm: '#/components/schemas/AIGatewayModelProviderVllm' xai: '#/components/schemas/AIGatewayModelProviderXai' vertex: '#/components/schemas/AIGatewayModelProviderVertex' sagemaker: '#/components/schemas/AIGatewayModelProviderSagemaker' oneOf: - $ref: '#/components/schemas/AIGatewayModelProviderAnthropic' - $ref: '#/components/schemas/AIGatewayModelProviderAzure' - $ref: '#/components/schemas/AIGatewayModelProviderBedrock' - $ref: '#/components/schemas/AIGatewayModelProviderCerebras' - $ref: '#/components/schemas/AIGatewayModelProviderCohere' - $ref: '#/components/schemas/AIGatewayModelProviderDashscope' - $ref: '#/components/schemas/AIGatewayModelProviderDatabricks' - $ref: '#/components/schemas/AIGatewayModelProviderDeepseek' - $ref: '#/components/schemas/AIGatewayModelProviderGemini' - $ref: '#/components/schemas/AIGatewayModelProviderHuggingface' - $ref: '#/components/schemas/AIGatewayModelProviderKimi' - $ref: '#/components/schemas/AIGatewayModelProviderLlama2' - $ref: '#/components/schemas/AIGatewayModelProviderMistral' - $ref: '#/components/schemas/AIGatewayModelProviderOllama' - $ref: '#/components/schemas/AIGatewayModelProviderOpenai' - $ref: '#/components/schemas/AIGatewayModelProviderVercel' - $ref: '#/components/schemas/AIGatewayModelProviderVllm' - $ref: '#/components/schemas/AIGatewayModelProviderXai' - $ref: '#/components/schemas/AIGatewayModelProviderVertex' - $ref: '#/components/schemas/AIGatewayModelProviderSagemaker' required: - id - created_at - updated_at CreateAIGatewayIdentityProviderRequest: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. discriminator: propertyName: type mapping: key-auth: '#/components/schemas/AIGatewayIdentityProviderKeyAuth' openid-connect: '#/components/schemas/AIGatewayIdentityProviderOpenIDConnect' oneOf: - $ref: '#/components/schemas/AIGatewayIdentityProviderKeyAuth' - $ref: '#/components/schemas/AIGatewayIdentityProviderOpenIDConnect' UpdateAIGatewayIdentityProviderRequest: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. discriminator: propertyName: type mapping: key-auth: '#/components/schemas/AIGatewayIdentityProviderKeyAuth' openid-connect: '#/components/schemas/AIGatewayIdentityProviderOpenIDConnect' oneOf: - $ref: '#/components/schemas/AIGatewayIdentityProviderKeyAuth' - $ref: '#/components/schemas/AIGatewayIdentityProviderOpenIDConnect' AIGatewayIdentityProvider: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. discriminator: propertyName: type mapping: key-auth: '#/components/schemas/AIGatewayIdentityProviderKeyAuthResponse' openid-connect: '#/components/schemas/AIGatewayIdentityProviderOpenIDConnectResponse' oneOf: - $ref: '#/components/schemas/AIGatewayIdentityProviderKeyAuthResponse' - $ref: '#/components/schemas/AIGatewayIdentityProviderOpenIDConnectResponse' AIGatewayIdentityProviderResponseProperties: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. type: object properties: id: $ref: '#/components/schemas/UUID' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' required: - id - created_at - updated_at AIGatewayIdentityProviderKeyAuthResponse: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. allOf: - $ref: '#/components/schemas/AIGatewayIdentityProviderKeyAuth' - $ref: '#/components/schemas/AIGatewayIdentityProviderResponseProperties' title: AIGatewayIdentityProviderKeyAuthResponse AIGatewayIdentityProviderOpenIDConnectResponse: description: |- **Pre-release Feature** This feature is currently in beta and is subject to change. allOf: - $ref: '#/components/schemas/AIGatewayIdentityProviderOpenIDConnect' - $ref: '#/components/schemas/AIGatewayIdentityProviderResponseProperties' title: AIGatewayIdentityProviderOpenIDConnectResponse 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 TooManyRequestsError: allOf: - $ref: '#/components/schemas/BaseError' - type: object properties: status: example: 429 title: example: Too Many Requests type: example: 'https://httpstatuses.com/429' instance: example: 'kong:trace:1234567890' detail: example: Too Many Requests ManagedBy: description: | Stores information about what manages this entity, such as the tool or system responsible for its lifecycle (for example, `terraform`). Keys must be 1–63 characters long and start with an alphanumeric character. type: object example: owner: terraform additionalProperties: type: string pattern: '^[a-z0-9A-Z]{1}([a-z0-9A-Z-._]*[a-z0-9A-Z]+)?$' minLength: 1 maxLength: 63 maxProperties: 5 title: ManagedBy MCPServerPodsStatus: type: object properties: ready: description: Number of pods in the ready state. type: integer example: 2 minimum: 0 starting: description: Number of pods in the starting state. type: integer example: 0 minimum: 0 failing: description: Number of pods in the failing state. type: integer example: 0 minimum: 0 required: - ready - starting - failing MCPServerVersionStatus: type: object properties: version: description: The version identifier of the MCP server deployment. type: string example: v1 desired_replicas: description: The desired number of replicas for this version. type: integer example: 2 minimum: 0 created_replicas: description: The number of replicas that have been created for this version. type: integer example: 2 minimum: 0 pods_status: $ref: '#/components/schemas/MCPServerPodsStatus' required: - version - desired_replicas - created_replicas - pods_status MCPServerStatusRequest: description: | List of per-version deployment statuses for the MCP server. type: array items: $ref: '#/components/schemas/MCPServerVersionStatus' MCPServerInfo: type: object properties: id: description: The unique identifier for the MCP server. type: string format: uuid name: description: The name of the MCP server. type: string maxLength: 256 minLength: 1 description: description: A description of the MCP server. type: string maxLength: 1024 labels: description: Labels for the MCP server. type: object additionalProperties: type: string deployed_at: description: The timestamp when the MCP server was deployed. type: string format: date-time control_plane_id: description: The control plane ID associated with the MCP server. type: string format: uuid nullable: true resource_id: description: The MCP resource ID associated with the MCP server. type: string format: uuid nullable: true mode: description: | The deployment mode of the MCP server on the associated Control Plane. allOf: - $ref: '#/components/schemas/MCPServerControlPlaneMappingMode' nullable: false version: description: The version of the MCP server. type: string created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' required: - id - name - created_at - updated_at - version ContainerSpec: type: object properties: image: description: The container image to use. type: string MCPServerCPInfo: allOf: - $ref: '#/components/schemas/MCPServerInfo' - type: object properties: container: allOf: - $ref: '#/components/schemas/ContainerSpec' - description: Configuration for the main container. init_container: allOf: - $ref: '#/components/schemas/ContainerSpec' - description: Configuration for the init container. ListMCPServersCPInfoResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/MCPServerCPInfo' meta: $ref: '#/components/schemas/CursorMeta' required: - data - meta KongEntitiesResponse: type: object properties: routes: type: array items: $ref: '#/components/schemas/KongRoute' services: type: array items: $ref: '#/components/schemas/KongService' required: - routes - services KongService: type: object properties: id: description: Service ID type: string format: uuid name: description: Service name type: string example: mcp-test-service protocol: description: The protocol used to communicate with the Service. type: string example: https host: description: Service host type: string example: mcp-test-service.svc.cluster.local port: description: Service port type: integer example: 80 maximum: 65535 minimum: 1 path: description: Service path type: string example: / required: - name - protocol - host - port - path KongRoute: type: object properties: id: description: Route ID type: string format: uuid name: description: Route name type: string example: mcp-test-route-jsonrpc service: description: Reference to the service type: object properties: id: type: string format: uuid paths: description: Request paths type: array items: type: string example: - /mcp/test-service methods: description: HTTP methods type: array items: type: string example: - POST required: - name - paths - methods MCPServerCodeResponse: type: object properties: code: description: Generated Python code for the MCP server implementation type: string example: print("Hello MCP") required: - code MCPCapabilitiesMap: description: | Map of capability name -> capability request fields. Example: { "mcp": { "version": "v1", "offset": "5" } } type: object properties: mcp: $ref: '#/components/schemas/MCPCapabilityRequest' MCPCapabilityRequest: type: object properties: version: description: 'The version of the capability schema (e.g., v1).' type: string offset: description: The version of the control plane known by the client. type: string additionalProperties: false required: - version MCPServerSignalV1: description: | Signal notifying the client that the MCP control plane config has changed. type: object properties: type: type: string enum: - mcp version: description: The current version of the MCP control plane. type: string offset: description: The offset for the MCP signal. type: string example: type: mcp version: v1 offset: '6' additionalProperties: false required: - type - version - offset MCPServerSignal: description: A single signal envelope containing exactly one typed capability signal. discriminator: propertyName: type mapping: mcp: '#/components/schemas/MCPServerSignalV1' oneOf: - $ref: '#/components/schemas/MCPServerSignalV1' MCPServerSignals: description: The MCP server signals response. type: object properties: signals: description: A list of signals for the MCP server. type: array items: $ref: '#/components/schemas/MCPServerSignal' required: - signals MCPServerControlPlaneMappingMode: description: Whether the MCP Server deployment on this Control Plane is managed by Konnect defaults ('basic') or configured directly via Kong Operator custom resources ('advanced'). type: string enum: - basic - advanced x-speakeasy-unknown-values: allow MCPServerRuntime: type: object properties: init_container: allOf: - $ref: '#/components/schemas/ContainerSpec' - description: Configuration for the init container. runtime_container: allOf: - $ref: '#/components/schemas/ContainerSpec' - description: Configuration for the main container. required: - init_container - runtime_container title: MCPServerRuntime AdvancedQuery: description: A query targeting the API usage analytics datasource. type: object properties: datasource: type: string enum: - api_usage metrics: $ref: '#/components/schemas/AdvancedMetrics' dimensions: description: List of attributes or entity types to group by. type: array items: type: string enum: - api - api_package - api_product - api_product_version - application - consumer - control_plane - control_plane_group - country_code - data_plane_node - data_plane_node_version - gateway_service - portal - principal - realm - response_source - route - status_code - status_code_grouped - time - upstream_status_code - upstream_status_code_grouped x-speakeasy-unknown-values: allow example: - status_code_grouped maxItems: 2 filters: $ref: '#/components/schemas/AdvancedFilters' granularity: $ref: '#/components/schemas/Granularity' time_range: $ref: '#/components/schemas/TimeRange' limit: description: Limits the number of distinct metric groups to return. type: number default: 50 maximum: 1000 example: datasource: api_usage time_range: type: relative time_range: 24h tz: EST dimensions: - time - gateway_service filters: - operator: in field: control_plane value: - d5ac5d88-efed-4e10-9dfe-0b0a6646c219 granularity: hourly metrics: - request_count - response_latency_p99 additionalProperties: false required: - datasource LLMQuery: description: A query targeting the LLM usage analytics datasource. type: object properties: datasource: type: string enum: - llm_usage metrics: $ref: '#/components/schemas/LLMMetrics' dimensions: description: List of attributes or entity types to group by. type: array items: type: string enum: - control_plane - control_plane_group - gateway_service - consumer - application - route - ai_provider - ai_response_model - ai_request_model - llm_cache_status - llm_embeddings_provider - llm_embeddings_model - time - principal - realm - status_code - status_code_grouped - ai_plugin x-speakeasy-unknown-values: allow maxItems: 2 filters: $ref: '#/components/schemas/LLMFilters' granularity: $ref: '#/components/schemas/Granularity' time_range: $ref: '#/components/schemas/TimeRange' limit: description: Limits the number of distinct metric groups to return. type: number default: 50 maximum: 1000 example: datasource: llm_usage time_range: type: relative time_range: 24h tz: EST dimensions: - time - ai_plugin filters: - operator: in field: control_plane value: - d5ac5d88-efed-4e10-9dfe-0b0a6646c219 granularity: hourly metrics: - total_tokens additionalProperties: false required: - datasource AgenticQuery: description: A query targeting the agentic usage analytics datasource. type: object properties: datasource: type: string enum: - agentic_usage metrics: $ref: '#/components/schemas/AgenticMetrics' dimensions: description: List of attributes or entity types to group by. type: array items: type: string enum: - a2a_context_id - a2a_error - a2a_method - a2a_task_id - api - api_package - api_product - api_product_version - application - consumer - control_plane - control_plane_group - country_code - data_plane_node - data_plane_node_version - gateway_service - mcp_error - mcp_method - mcp_session_id - mcp_tool_name - portal - principal - realm - response_source - route - status_code - status_code_grouped - time - upstream_status_code - upstream_status_code_grouped x-speakeasy-unknown-values: allow maxItems: 2 filters: $ref: '#/components/schemas/AgenticFilters' granularity: $ref: '#/components/schemas/Granularity' time_range: $ref: '#/components/schemas/TimeRange' limit: description: Limits the number of distinct metric groups to return. type: number default: 50 maximum: 1000 example: datasource: agentic_usage time_range: type: relative time_range: 24h tz: EST dimensions: - time - mcp_tool_name filters: - operator: in field: control_plane value: - d5ac5d88-efed-4e10-9dfe-0b0a6646c219 granularity: hourly metrics: - request_count additionalProperties: false required: - datasource PlatformQuery: description: A query targeting the platform usage analytics datasource. type: object properties: datasource: type: string enum: - platform_usage metrics: $ref: '#/components/schemas/PlatformMetrics' dimensions: description: List of attributes or entity types to group by. type: array items: type: string enum: - time - control_plane - gateway_service - realm - route - consumer - plugin - plugin_name - plugin_scope - data_plane_node_version - env - team - region - hostname x-speakeasy-unknown-values: allow maxItems: 2 filters: $ref: '#/components/schemas/PlatformFilters' granularity: $ref: '#/components/schemas/PlatformGranularity' time_range: $ref: '#/components/schemas/PlatformTimeRange' limit: description: Limits the number of distinct metric groups to return. type: number default: 50 maximum: 1000 example: datasource: platform_usage time_range: type: relative time_range: 30d dimensions: - time - control_plane granularity: daily metrics: - service_count - route_count additionalProperties: false required: - datasource Tile: discriminator: propertyName: type mapping: chart: '#/components/schemas/ChartTile' oneOf: - $ref: '#/components/schemas/ChartTile' ChartTile: description: A tile that queries data and renders a chart. type: object properties: layout: description: | Information about how the tile is placed on the dashboard. Examples: - a tile occupying the first half of the top row: `{ "position": { "col": 0, "row": 0 }, size: { "cols": 3, "rows": 1 } }` - a tile occupying the second half of the top row: `{ "position": { "col": 3, "row": 0 }, size: { "cols": 3, "rows": 1 } }` type: object example: position: col: 3 row: 0 size: cols: 3 rows: 1 additionalProperties: false properties: position: description: | Position of the tile in the dashboard's grid. Numbering starts at 0, so a tile in the upper left of the dashboard will be at column 0, row 0. type: object additionalProperties: false properties: col: type: integer maximum: 5 minimum: 0 row: type: integer minimum: 0 required: - col - row size: description: | Number of columns and rows the tile occupies. A dashboard always has 6 columns, but has as many rows as needed to accommodate the given tiles. type: object additionalProperties: false properties: cols: type: integer maximum: 6 minimum: 1 rows: type: integer minimum: 1 required: - cols - rows required: - position - size type: description: The type of tile. Chart tiles must have type 'chart'. type: string enum: - chart definition: description: | The tile's definition, which consists of a query to fetch data and a chart to render the data. Note that some charts expect certain types of queries to render properly. The documentation for the individual chart types has more information. type: object additionalProperties: false properties: query: discriminator: propertyName: datasource mapping: api_usage: '#/components/schemas/AdvancedQuery' llm_usage: '#/components/schemas/LLMQuery' agentic_usage: '#/components/schemas/AgenticQuery' platform_usage: '#/components/schemas/PlatformQuery' oneOf: - $ref: '#/components/schemas/AdvancedQuery' - $ref: '#/components/schemas/LLMQuery' - $ref: '#/components/schemas/AgenticQuery' - $ref: '#/components/schemas/PlatformQuery' chart: $ref: '#/components/schemas/Chart' required: - query - chart additionalProperties: false required: - layout - type - definition Dashboard: description: | A JSON object describing a dashboard. A dashboard is an array of tiles. All tiles are of type 'chart', which query data and render a chart displaying that data. Dashboards have 6 columns and as many rows as necessary to display their tiles. type: object properties: tiles: description: 'The array of tiles. We currently support up to 102 tiles, which is 17 rows of 6x1 tiles.' type: array items: $ref: '#/components/schemas/Tile' maxLength: 102 minLength: 0 preset_filters: description: | An optional array of filters that are applied globally to all relevant tiles in the dashboard. Whether or not a preset filter applies to a tile depends on the filter's dimension. Some dimensions, like `control_plane`, are common to all datasources; other dimensions may only apply to one datasource. type: array items: $ref: '#/components/schemas/AllFilterItems' example: - operator: in field: control_plane value: - 00000000-0000-0000-0000-000000000000 - operator: in field: ai_request_model value: - request_model1 nullable: false additionalProperties: false required: - tiles DashboardUpdateRequest: type: object properties: name: description: | The dashboard name, which is displayed at the top of the dashboard and in lists. It does not need to be unique. type: string maxLength: 255 minLength: 1 definition: $ref: '#/components/schemas/Dashboard' labels: $ref: '#/components/schemas/Labels' required: - name - definition title: Dashboard Request DashboardResponse: type: object properties: name: description: | The dashboard name, which is displayed at the top of the dashboard and in lists. It does not need to be unique. type: string maxLength: 255 minLength: 1 definition: $ref: '#/components/schemas/Dashboard' labels: $ref: '#/components/schemas/Labels' id: $ref: '#/components/schemas/UUID' created_by: $ref: '#/components/schemas/UUID' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' required: - name - definition title: Dashboard Request DashboardFilterParameters: type: object properties: id: $ref: '#/components/schemas/UuidFieldFilter' name: $ref: '#/components/schemas/StringFieldFilter' labels: $ref: '#/components/schemas/LabelsFieldFilter' created_at: $ref: '#/components/schemas/DateTimeFieldFilter' updated_at: $ref: '#/components/schemas/DateTimeFieldFilter' title: Dashboard Filter Parameters AdvancedMetrics: description: 'List of aggregated metrics to collect across the requested time span. If no metrics are specified, request_count will be computed by default.' type: array items: type: string enum: - error_rate - kong_internal_latency_average - kong_internal_latency_p50 - kong_internal_latency_p95 - kong_internal_latency_p99 - kong_latency_average - kong_latency_p50 - kong_latency_p95 - kong_latency_p99 - request_count - request_per_minute - request_size_average - request_size_p50 - request_size_p95 - request_size_p99 - request_size_sum - response_latency_average - response_latency_p50 - response_latency_p95 - response_latency_p99 - response_size_average - response_size_p50 - response_size_p95 - response_size_p99 - response_size_sum - upstream_latency_average - upstream_latency_p50 - upstream_latency_p95 - upstream_latency_p99 x-speakeasy-unknown-values: allow default: - request_count RequestsFilterType: description: 'The type of filter to apply. `in` filters will limit results to only the specified values, while `not_in` filters will exclude the specified values.' type: string enum: - in - not_in x-speakeasy-unknown-values: allow UnscopedUuid: type: string pattern: '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$' RequestsFilterTypeEmpty: description: The type of filter to apply. type: string enum: - empty - not_empty x-speakeasy-unknown-values: allow MetricsApiFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The IDs to include in the results. type: array items: $ref: '#/components/schemas/UnscopedUuid' field: description: The field to filter. type: string enum: - api required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - api required: - operator - field title: Filter by api MetricsApiPackageFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The IDs to include in the results. type: array items: $ref: '#/components/schemas/UnscopedUuid' field: description: The field to filter. type: string enum: - api_package required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - api_package required: - operator - field title: Filter by api_package MetricsApiProductFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The IDs to include in the results. type: array items: $ref: '#/components/schemas/UnscopedUuid' field: description: The field to filter. type: string enum: - api_product required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - api_product required: - operator - field title: Filter by api_product MetricsApiProductVersionFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The IDs to include in the results. type: array items: $ref: '#/components/schemas/UnscopedUuid' field: description: The field to filter. type: string enum: - api_product_version required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - api_product_version required: - operator - field title: Filter by api_product_version MetricsApplicationFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The IDs to include in the results. type: array items: $ref: '#/components/schemas/UnscopedUuid' field: description: The field to filter. type: string enum: - application required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - application required: - operator - field title: Filter by application ScopedUuid: type: string pattern: '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$' MetricsConsumerFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The IDs to include in the results. Because gateway IDs are only unique within a given control plane, the filter values must be of the form `control_plane_id:field_id` or `control_plane_group_id:field_id` for data plane nodes within a control plane group. type: array items: $ref: '#/components/schemas/ScopedUuid' field: description: The field to filter. type: string enum: - consumer required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - consumer required: - operator - field title: Filter by consumer MetricsControlPlaneFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The IDs to include in the results. type: array items: $ref: '#/components/schemas/UnscopedUuid' field: description: The field to filter. type: string enum: - control_plane required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - control_plane required: - operator - field title: Filter by control_plane MetricsControlPlaneGroupFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The IDs to include in the results. type: array items: $ref: '#/components/schemas/UnscopedUuid' field: description: The field to filter. type: string enum: - control_plane_group required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - control_plane_group required: - operator - field title: Filter by control_plane_group MetricsCountryCodeFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The values to include in the results. type: array items: type: string field: description: The field to filter. type: string enum: - country_code required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - country_code required: - operator - field title: Filter by country_code MetricsDataPlaneNodeFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The IDs to include in the results. Because gateway IDs are only unique within a given control plane, the filter values must be of the form `control_plane_id:field_id` or `control_plane_group_id:field_id` for data plane nodes within a control plane group. type: array items: $ref: '#/components/schemas/ScopedUuid' field: description: The field to filter. type: string enum: - data_plane_node required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - data_plane_node required: - operator - field title: Filter by data_plane_node MetricsDataPlaneNodeVersionFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The values to include in the results. type: array items: type: string field: description: The field to filter. type: string enum: - data_plane_node_version required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - data_plane_node_version required: - operator - field title: Filter by data_plane_node_version MetricsGatewayServiceFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The IDs to include in the results. Because gateway IDs are only unique within a given control plane, the filter values must be of the form `control_plane_id:field_id` or `control_plane_group_id:field_id` for data plane nodes within a control plane group. type: array items: $ref: '#/components/schemas/ScopedUuid' field: description: The field to filter. type: string enum: - gateway_service required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - gateway_service required: - operator - field title: Filter by gateway_service MetricsPortalFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The IDs to include in the results. type: array items: $ref: '#/components/schemas/UnscopedUuid' field: description: The field to filter. type: string enum: - portal required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - portal required: - operator - field title: Filter by portal MetricsPrincipalFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The IDs to include in the results. type: array items: $ref: '#/components/schemas/UnscopedUuid' field: description: The field to filter. type: string enum: - principal required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - principal required: - operator - field title: Filter by principal MetricsRealmFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The IDs to include in the results. type: array items: $ref: '#/components/schemas/UnscopedUuid' field: description: The field to filter. type: string enum: - realm required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - realm required: - operator - field title: Filter by realm MetricsResponseSourceFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The values to include in the results. type: array items: type: string field: description: The field to filter. type: string enum: - response_source required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - response_source required: - operator - field title: Filter by response_source MetricsRouteFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The IDs to include in the results. Because gateway IDs are only unique within a given control plane, the filter values must be of the form `control_plane_id:field_id` or `control_plane_group_id:field_id` for data plane nodes within a control plane group. type: array items: $ref: '#/components/schemas/ScopedUuid' field: description: The field to filter. type: string enum: - route required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - route required: - operator - field title: Filter by route MetricsStatusCodeFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The codes to include in the results. type: array items: type: integer minimum: 0 maximum: 999 field: description: The field to filter. type: string enum: - status_code required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - status_code required: - operator - field title: Filter by status_code MetricsStatusCodeGroupedFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The code groups to include in the results. type: array items: type: string pattern: '^\d[xX][xX]$' field: description: The field to filter. type: string enum: - status_code_grouped required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - status_code_grouped required: - operator - field title: Filter by status_code_grouped MetricsUpstreamStatusCodeFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The codes to include in the results. type: array items: type: integer minimum: 0 maximum: 999 field: description: The field to filter. type: string enum: - upstream_status_code required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - upstream_status_code required: - operator - field title: Filter by upstream_status_code MetricsUpstreamStatusCodeGroupedFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The code groups to include in the results. type: array items: type: string pattern: '^\d[xX][xX]$' field: description: The field to filter. type: string enum: - upstream_status_code_grouped required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - upstream_status_code_grouped required: - operator - field title: Filter by upstream_status_code_grouped AdvancedFilters: description: A list of filters to apply to the query. type: array items: type: object properties: field: type: string enum: - api - api_package - api_product - api_product_version - application - consumer - control_plane - control_plane_group - country_code - data_plane_node - data_plane_node_version - gateway_service - portal - principal - realm - response_source - route - status_code - status_code_grouped - upstream_status_code - upstream_status_code_grouped x-speakeasy-unknown-values: allow operator: type: string enum: - in - not_in - empty - not_empty x-speakeasy-unknown-values: allow value: x-speakeasy-type-override: any required: - field - operator Granularity: description: | Force time grouping into buckets of the specified duration. Only has an effect if "time" is in the "dimensions" list. The granularity of the result may be coarser than requested. The finest allowed granularity depends on the query's time range: data farther in the past may have coarser granularity. The exact result granularity will be reported in the response `meta.granularity_ms` field. If granularity is not specified and "time" is in the dimensions list, a default will be chosen based on the time range requested. Different relative times support different granularities: - 15m => tenSecondly, thirtySecondly, minutely - 1h => tenSecondly, thirtySecondly, minutely, fiveMinutely, tenMinutely - 6h => thirtySecondly, minutely, fiveMinutely, tenMinutely, thirtyMinutely, hourly - 12h => minutely, fiveMinutely, tenMinutely, thirtyMinutely, hourly - 24h => fiveMinutely, tenMinutely, thirtyMinutely, hourly - 7d => thirtyMinutely, hourly, twoHourly, twelveHourly, daily - 30d => hourly, twoHourly, twelveHourly, daily, weekly For special time ranges: - current_week, previous_week => thirtyMinutely, hourly, twoHourly, twelveHourly, daily - current_month, previous_month => hourly, twoHourly, twelveHourly, daily, weekly For absolute time ranges, daily will be used. type: string enum: - tenSecondly - thirtySecondly - minutely - fiveMinutely - tenMinutely - thirtyMinutely - hourly - twoHourly - twelveHourly - daily - weekly x-speakeasy-unknown-values: allow MetricsRelativeTimeRangeDtoV2: description: 'A duration representing a relative-to-now span of time. Generally the start time is floored to the requested granularity. Eg 7d from now, with 1day granularity initiated at 2024-01-08T17:11:00+05:00 will query for the time range from 2024-01-01T00:00:00+05:00 to 2024-01-08T17:11:00+05:00. The exact start and end timestamps are returned in the result query in the meta.start and meta.end fields. If the granularity for the previous query was 1hour, it would query a time range from 2024-01-01T17:00:00+05:00 to 2024-01-08T17:11:00+05:00.' type: object properties: tz: type: string default: Etc/UTC type: type: string enum: - relative time_range: type: string default: 1h enum: - 15m - 1h - 6h - 12h - 24h - 7d - 30d - current_week - current_month - previous_week - previous_month x-speakeasy-unknown-values: allow required: - type - time_range title: Relative time range MetricsAbsoluteTimeRangeDtoV2: description: A duration representing an exact start and end time. type: object properties: tz: type: string default: Etc/UTC type: type: string enum: - absolute start: type: string format: date-time end: type: string format: date-time required: - type title: Absolute time range TimeRange: description: The time range to query. default: type: relative time_range: 1h discriminator: propertyName: type mapping: relative: '#/components/schemas/MetricsRelativeTimeRangeDtoV2' absolute: '#/components/schemas/MetricsAbsoluteTimeRangeDtoV2' oneOf: - $ref: '#/components/schemas/MetricsRelativeTimeRangeDtoV2' - $ref: '#/components/schemas/MetricsAbsoluteTimeRangeDtoV2' LLMMetrics: description: List of aggregated metrics to collect across the requested time span. type: array items: type: string enum: - total_tokens - prompt_tokens - completion_tokens - ai_request_count - cost - error_rate - llm_cache_embeddings_latency_average - llm_cache_fetch_latency_average - llm_latency_average - llm_embeddings_tokens - llm_embeddings_cost x-speakeasy-unknown-values: allow default: - ai_request_count MetricsAiPluginFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The values to include in the results. type: array items: type: string field: description: The field to filter. type: string enum: - ai_plugin required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - ai_plugin required: - operator - field title: Filter by ai_plugin MetricsAiProviderFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The values to include in the results. type: array items: type: string field: description: The field to filter. type: string enum: - ai_provider required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - ai_provider required: - operator - field title: Filter by ai_provider MetricsAiRequestModelFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The values to include in the results. type: array items: type: string field: description: The field to filter. type: string enum: - ai_request_model required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - ai_request_model required: - operator - field title: Filter by ai_request_model MetricsAiResponseModelFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The values to include in the results. type: array items: type: string field: description: The field to filter. type: string enum: - ai_response_model required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - ai_response_model required: - operator - field title: Filter by ai_response_model MetricsLlmCacheStatusFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The values to include in the results. type: array items: type: string field: description: The field to filter. type: string enum: - llm_cache_status required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - llm_cache_status required: - operator - field title: Filter by llm_cache_status MetricsLlmEmbeddingsModelFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The values to include in the results. type: array items: type: string field: description: The field to filter. type: string enum: - llm_embeddings_model required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - llm_embeddings_model required: - operator - field title: Filter by llm_embeddings_model MetricsLlmEmbeddingsProviderFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The values to include in the results. type: array items: type: string field: description: The field to filter. type: string enum: - llm_embeddings_provider required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - llm_embeddings_provider required: - operator - field title: Filter by llm_embeddings_provider LLMFilters: description: A list of filters to apply to the query. type: array items: type: object properties: field: type: string enum: - ai_plugin - ai_provider - ai_request_model - ai_response_model - application - consumer - control_plane - control_plane_group - gateway_service - llm_cache_status - llm_embeddings_model - llm_embeddings_provider - principal - realm - route - status_code - status_code_grouped x-speakeasy-unknown-values: allow operator: type: string enum: - in - not_in - empty - not_empty x-speakeasy-unknown-values: allow value: x-speakeasy-type-override: any required: - field - operator AgenticMetrics: description: List of aggregated metrics to collect across the requested time span. type: array items: type: string enum: - a2a_latency_average - a2a_response_size_sum - error_rate - kong_internal_latency_average - kong_internal_latency_p50 - kong_internal_latency_p95 - kong_internal_latency_p99 - kong_latency_average - kong_latency_p50 - kong_latency_p95 - kong_latency_p99 - mcp_response_size_sum - request_count - request_per_minute - request_size_average - request_size_p50 - request_size_p95 - request_size_p99 - request_size_sum - response_latency_average - response_latency_p50 - response_latency_p95 - response_latency_p99 - response_size_average - response_size_p50 - response_size_p95 - response_size_p99 - response_size_sum - upstream_latency_average - upstream_latency_p50 - upstream_latency_p95 - upstream_latency_p99 x-speakeasy-unknown-values: allow default: - request_count MetricsA2aContextIdFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The values to include in the results. type: array items: type: string field: description: The field to filter. type: string enum: - a2a_context_id required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - a2a_context_id required: - operator - field title: Filter by a2a_context_id MetricsA2aErrorFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The values to include in the results. type: array items: type: string field: description: The field to filter. type: string enum: - a2a_error required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - a2a_error required: - operator - field title: Filter by a2a_error MetricsA2aMethodFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The values to include in the results. type: array items: type: string field: description: The field to filter. type: string enum: - a2a_method required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - a2a_method required: - operator - field title: Filter by a2a_method MetricsA2aTaskIdFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The values to include in the results. type: array items: type: string field: description: The field to filter. type: string enum: - a2a_task_id required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - a2a_task_id required: - operator - field title: Filter by a2a_task_id MetricsMcpErrorFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The values to include in the results. type: array items: type: string field: description: The field to filter. type: string enum: - mcp_error required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - mcp_error required: - operator - field title: Filter by mcp_error MetricsMcpMethodFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The values to include in the results. type: array items: type: string field: description: The field to filter. type: string enum: - mcp_method required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - mcp_method required: - operator - field title: Filter by mcp_method MetricsMcpSessionIdFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The values to include in the results. type: array items: type: string field: description: The field to filter. type: string enum: - mcp_session_id required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - mcp_session_id required: - operator - field title: Filter by mcp_session_id MetricsMcpToolNameFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The values to include in the results. type: array items: type: string field: description: The field to filter. type: string enum: - mcp_tool_name required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - mcp_tool_name required: - operator - field title: Filter by mcp_tool_name AgenticFilters: description: A list of filters to apply to the query. type: array items: type: object properties: field: type: string enum: - a2a_context_id - a2a_error - a2a_method - a2a_task_id - api - api_package - api_product - api_product_version - application - consumer - control_plane - control_plane_group - country_code - data_plane_node - data_plane_node_version - gateway_service - mcp_error - mcp_method - mcp_session_id - mcp_tool_name - portal - principal - realm - response_source - route - status_code - status_code_grouped - upstream_status_code - upstream_status_code_grouped x-speakeasy-unknown-values: allow operator: type: string enum: - in - not_in - empty - not_empty x-speakeasy-unknown-values: allow value: x-speakeasy-type-override: any required: - field - operator PlatformMetrics: description: List of aggregated metrics to collect across the requested time span. type: array items: type: string enum: - control_plane_count - service_count - route_count - consumer_count - plugin_count - node_count x-speakeasy-unknown-values: allow default: - control_plane_count PlatformFilter: description: A filter to apply to a platform usage query. type: object properties: field: description: The field to filter. type: string enum: - control_plane - data_plane_node_version - env - gateway_service - hostname - plugin - plugin_name - plugin_scope - realm - region - route - team x-speakeasy-unknown-values: allow operator: type: string enum: - in - not_in x-speakeasy-unknown-values: allow value: description: The values to filter by. type: array items: type: string minItems: 1 required: - field - operator - value PlatformFilters: description: A list of filters to apply to the query. type: array items: $ref: '#/components/schemas/PlatformFilter' PlatformGranularity: description: | Force time grouping into buckets of the specified duration. Only has an effect if "time" is in the "dimensions" list. If granularity is not specified and "time" is in the dimensions list, a default will be chosen based on the time range requested. Different relative times support different granularities: - 24h => daily - 7d, current_week, previous_week => daily, weekly - 30d, current_month, previous_month => daily, weekly, monthly - 90d, 180d, 365d, current_quarter, previous_quarter => daily, weekly, monthly For absolute time ranges, daily will be used. Granularity values: - `daily`: Groups data into 24-hour buckets. - `weekly`: Groups data into 7-day buckets. - `monthly`: Groups data into calendar month buckets. type: string enum: - daily - weekly - monthly x-speakeasy-unknown-values: allow PlatformRelativeTimeRange: description: A duration representing a relative-to-now span of time for platform queries. type: object properties: tz: type: string default: Etc/UTC type: type: string enum: - relative time_range: type: string default: 30d enum: - 24h - 7d - 30d - 90d - 180d - 365d - current_week - current_month - current_quarter - previous_week - previous_month - previous_quarter x-speakeasy-unknown-values: allow required: - type - time_range title: Relative time range PlatformTimeRange: description: The time range to query for platform data. default: type: relative time_range: 30d discriminator: propertyName: type mapping: relative: '#/components/schemas/PlatformRelativeTimeRange' absolute: '#/components/schemas/MetricsAbsoluteTimeRangeDtoV2' oneOf: - $ref: '#/components/schemas/PlatformRelativeTimeRange' - $ref: '#/components/schemas/MetricsAbsoluteTimeRangeDtoV2' DonutChart: description: | A chart that can display one-dimensional data in a hollow, segmented circle. To use this chart, ensure that the query includes only one dimension (not `time`). type: object properties: chart_title: description: 'The title of the chart, which is displayed in the tile''s header.' type: string nullable: false type: type: string enum: - donut additionalProperties: false required: - type title: Donut chart TimeseriesChart: description: | A chart that can render timeseries data -- data from a query that has `time` as a dimension -- as lines or bars. This type of chart can support: - One or more metrics: `{ metrics: ["response_latency_p99", "response_latency_p95"], dimensions: ["time"] }` - One metric plus one non-time dimension: `{ metrics: ["request_count"], dimensions: ["time", "gateway_service"] }` Either way, ensure that `time` is in the list of query dimensions. type: object properties: chart_title: description: 'The title of the chart, which is displayed in the tile''s header.' type: string nullable: false type: type: string enum: - timeseries_line - timeseries_bar x-speakeasy-unknown-values: allow stacked: description: | Whether to stack the bars or lines (implicitly adding them together to form a total), or leave them independent from each other. type: boolean nullable: false additionalProperties: false required: - type title: Timeseries chart BarChart: description: | A chart that can display non-timeseries data as bars. This type of chart supports up to 2 dimensions (not `time`). To render a bar chart of timeseries data, use a `timeseries_bar` chart instead. type: object properties: chart_title: description: 'The title of the chart, which is displayed in the tile''s header.' type: string nullable: false type: type: string enum: - horizontal_bar - vertical_bar x-speakeasy-unknown-values: allow stacked: description: | Whether to stack the bars (implicitly adding them together to form a total), or leave them independent from each other. type: boolean nullable: false additionalProperties: false required: - type title: Bar chart TopNChart: description: | A chart that ranks dimension values by a metric and renders them as a table, showing the top results. This type of chart supports up to 3 dimensions. type: object properties: chart_title: description: 'The title of the chart, which is displayed in the tile''s header.' type: string nullable: false type: type: string enum: - top_n additionalProperties: false required: - type title: Top N chart SingleValueChart: description: A chart that can render a single number. This chart works with a single metric and no dimensions. type: object properties: chart_title: description: 'The title of the chart, which is displayed in the tile''s header.' type: string nullable: false type: type: string enum: - single_value decimal_points: description: 'The number of figures to render after the decimal. Most metrics only support up to 2 decimals, but some may support more.' type: number additionalProperties: false required: - type title: Single value chart ChoroplethMapChart: description: | A chart that displays data on a world map. Each region on the map is colored based on the metric value. This chart works only with the `api_usage` datasource and requires a single metric and a single dimension of `country_code`. No additional dimensions are supported. type: object properties: chart_title: description: 'The title of the chart, which is displayed in the tile''s header.' type: string nullable: false type: type: string enum: - choropleth_map additionalProperties: false required: - type title: Choropleth map chart Chart: description: The type of chart to render. discriminator: propertyName: type mapping: donut: '#/components/schemas/DonutChart' timeseries_line: '#/components/schemas/TimeseriesChart' timeseries_bar: '#/components/schemas/TimeseriesChart' horizontal_bar: '#/components/schemas/BarChart' vertical_bar: '#/components/schemas/BarChart' top_n: '#/components/schemas/TopNChart' single_value: '#/components/schemas/SingleValueChart' choropleth_map: '#/components/schemas/ChoroplethMapChart' oneOf: - $ref: '#/components/schemas/DonutChart' - $ref: '#/components/schemas/TimeseriesChart' - $ref: '#/components/schemas/BarChart' - $ref: '#/components/schemas/TopNChart' - $ref: '#/components/schemas/SingleValueChart' - $ref: '#/components/schemas/ChoroplethMapChart' MetricsEnvFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The values to include in the results. type: array items: type: string field: description: The field to filter. type: string enum: - env required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - env required: - operator - field title: Filter by env MetricsHostnameFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The values to include in the results. type: array items: type: string field: description: The field to filter. type: string enum: - hostname required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - hostname required: - operator - field title: Filter by hostname MetricsRegionFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The values to include in the results. type: array items: type: string field: description: The field to filter. type: string enum: - region required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - region required: - operator - field title: Filter by region MetricsTeamFilterByField: oneOf: - title: Multiselect filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterType' value: description: | The values to include in the results. type: array items: type: string field: description: The field to filter. type: string enum: - team required: - operator - value - field - title: Empty filters type: object properties: operator: $ref: '#/components/schemas/RequestsFilterTypeEmpty' field: description: The field to filter. type: string enum: - team required: - operator - field title: Filter by team AllFilterItems: type: object properties: field: type: string enum: - a2a_context_id - a2a_error - a2a_method - a2a_task_id - ai_plugin - ai_provider - ai_request_model - ai_response_model - api - api_package - api_product - api_product_version - application - consumer - control_plane - control_plane_group - country_code - data_plane_node - data_plane_node_version - env - gateway_service - hostname - llm_cache_status - llm_embeddings_model - llm_embeddings_provider - mcp_error - mcp_method - mcp_session_id - mcp_tool_name - portal - principal - realm - region - response_source - route - status_code - status_code_grouped - team - upstream_status_code - upstream_status_code_grouped x-speakeasy-unknown-values: allow operator: type: string enum: - in - not_in - empty - not_empty x-speakeasy-unknown-values: allow value: x-speakeasy-type-override: any required: - field - operator 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 title: description: Title of the certificate. type: string ConfigStore: type: object properties: id: description: The Config Store ID. type: string format: uuid example: b9e81174-b5bb-4638-a3c3-8afe61a0abf8 readOnly: true name: description: The name of the Config Store type: string example: My Name 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 maxLength: 100 minLength: 1 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 maxLength: 100 minLength: 1 additionalProperties: false title: Update Config Store Request ConfigStoreSecret: type: object properties: key: type: string x-speakeasy-param-force-new: true value: type: string writeOnly: true x-sensitive: true 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 NodeCompatibilityIssue: type: object properties: code: description: The compatibility issue code. type: string severity: description: The severity of the issue. type: string description: description: The description of the issue. type: string resolution: description: Steps required to take in order to resolve the issue. type: string affected_resources: description: Details of the resources affected by the issue. type: array items: $ref: '#/components/schemas/NodeCompatibilityIssueAffectedResource' documentation_url: description: Doc URL for the compatibility issue. type: string NodeCompatibilityIssueAffectedResource: type: object properties: id: description: ID of the affected resource. type: string type: description: Type of the affected resource. type: string parent_code: description: Parent Issue Code. type: string details: description: Deatils of the affected resource. type: array items: type: string ACL: type: object properties: consumer: type: object nullable: true properties: id: type: string x-foreign: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true group: type: string id: 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 nullable: true example: consumer: id: 84a73fb8-50fc-44a7-a4d5-aa17728ee83f group: foo id: b1f34145-0343-41a4-9602-4c69dec2f269 additionalProperties: false required: - group ACLWithoutParents: type: object properties: consumer: type: object nullable: true properties: id: type: string x-foreign: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true group: type: string id: 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 nullable: true example: group: foo id: b1f34145-0343-41a4-9602-4c69dec2f269 additionalProperties: false required: - group BasicAuth: type: object properties: consumer: type: object nullable: true properties: id: type: string x-foreign: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true password: type: string x-encrypted: true tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string nullable: true 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 BasicAuthWithoutParents: type: object properties: consumer: type: object nullable: true properties: id: type: string x-foreign: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true password: type: string x-encrypted: true tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string nullable: true username: type: string example: id: b2f34145-0343-41a4-9602-4c69dec2f269 password: hashedsoopersecretvalue username: darius additionalProperties: false required: - password - username CACertificate: description: A CA certificate object represents a trusted CA. These objects are used by Kong to verify the validity of a client or server certificate. type: object properties: cert: description: PEM-encoded public certificate of the CA. type: string cert_digest: description: 'SHA256 hex digest of the public certificate. This field is read-only and it cannot be set by the caller, the value is automatically computed.' type: string nullable: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: 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 nullable: true 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 Certificate: description: 'A certificate object represents a public certificate, and can be optionally paired with the corresponding private key. These objects are used by Kong to handle SSL/TLS termination for encrypted requests, or for use as a trusted CA store when validating peer certificate of client/service. Certificates are optionally associated with SNI objects to tie a cert/key pair to one or more hostnames. If intermediate certificates are required in addition to the main certificate, they should be concatenated together into one string according to the following order: main certificate on the top, followed by any intermediates.' type: object properties: cert: description: 'PEM-encoded public certificate chain of the SSL key pair. This field is _referenceable_, which means it can be securely stored as a [secret](/gateway/latest/plan-and-deploy/security/secrets-management/getting-started) in a vault. References must follow a [specific format](/gateway/latest/plan-and-deploy/security/secrets-management/reference-format).' type: string 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 nullable: true x-referenceable: 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: 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 nullable: true x-encrypted: true x-referenceable: true snis: type: array items: description: 'A string representing a wildcard host name, such as *.example.com.' 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 nullable: true 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 Consumer: description: 'The Consumer object represents a consumer - or a user - of a Service. You can either rely on Kong as the primary datastore, or you can map the consumer list with your database to keep consistency between Kong and your existing primary datastore.' type: object properties: created_at: description: Unix epoch when the resource was created. type: integer nullable: true custom_id: description: Field for storing an existing unique ID for the Consumer - useful for mapping Kong with users in your existing database. You must send either this field or `username` with the request. type: string nullable: true id: 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 nullable: true updated_at: description: Unix epoch when the resource was last updated. type: integer nullable: true username: description: The unique username of the Consumer. You must send either this field or `custom_id` with the request. type: string nullable: true example: custom_id: '4200' id: 8a388226-80e8-4027-a486-25e4f7db5d21 tags: - silver-tier username: bob-the-builder additionalProperties: false ConsumerGroup: 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 nullable: true 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' CustomPlugin: 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. 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 nullable: true 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 Degraphql_route: 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 methods: 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: - GET nullable: true query: type: string service: type: object properties: id: type: string x-foreign: true updated_at: description: Unix epoch when the resource was last updated. type: integer nullable: true uri: type: string example: id: 56c4566c-14cc-4132-9011-4139fcbbe50a query: 'query{ user { email } }' service: id: bd380f99-659d-415e-b0e7-72ea05df3218 uri: /users additionalProperties: false required: - query - uri - service Degraphql_routeWithoutParents: 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 methods: 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: - GET nullable: true query: type: string service: type: object properties: id: type: string x-foreign: true updated_at: description: Unix epoch when the resource was last updated. type: integer nullable: true uri: type: string example: id: 56c4566c-14cc-4132-9011-4139fcbbe50a query: 'query{ user { email } }' uri: /users additionalProperties: false required: - query - uri GatewayUnauthorizedError: type: object properties: message: type: string status: type: integer required: - message - status GraphQLCostDecoration: 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 nullable: true properties: id: type: string x-foreign: true type_path: type: string additionalProperties: false required: - type_path GraphQLCostDecorationWithoutParents: 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 nullable: true properties: id: type: string x-foreign: true type_path: type: string additionalProperties: false required: - type_path HMACAuth: type: object properties: consumer: type: object nullable: true properties: id: type: string x-foreign: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true secret: type: string nullable: true x-encrypted: true tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string nullable: true 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: type: object properties: consumer: type: object nullable: true properties: id: type: string x-foreign: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true secret: type: string nullable: true x-encrypted: true tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string nullable: true username: type: string example: id: 75695322-e8a0-4109-aed4-5416b0308d85 secret: wQazJ304DW5huJklHgUfjfiSyCyTAEDZ username: xerxes additionalProperties: false required: - username JWT: 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 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 rsa_public_key: type: string nullable: true secret: type: string nullable: true tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string nullable: true example: algorithm: HS256 consumer: id: 84a73fb8-50fc-44a7-a4d5-aa17728ee83f id: 75695322-e8a0-4109-aed4-5416b0308d85 key: YJdmaDvVTJxtcWRCvkMikc8oELgAVNcz secret: C50k0bcahDhLNhLKSUBSR1OMiFGzNZ7X additionalProperties: false JWTWithoutParents: 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 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 rsa_public_key: type: string nullable: true secret: type: string nullable: true tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string nullable: true example: algorithm: HS256 id: 75695322-e8a0-4109-aed4-5416b0308d85 key: YJdmaDvVTJxtcWRCvkMikc8oELgAVNcz secret: C50k0bcahDhLNhLKSUBSR1OMiFGzNZ7X additionalProperties: false Key: description: 'A Key object holds a representation of asymmetric keys in various formats. When Kong or a Kong plugin requires a specific public or private key to perform certain operations, it can use this entity.' type: object properties: created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: 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 nullable: true x-encrypted: true x-referenceable: true kid: description: A unique identifier for a key. type: string name: description: The name to associate with the given keys. type: string nullable: true pem: description: A keypair in PEM format. type: object nullable: true properties: private_key: type: string x-encrypted: true x-referenceable: true public_key: type: string x-referenceable: true set: description: The id (an UUID) of the key-set with which to associate the key. type: object nullable: true properties: id: type: string x-foreign: true tags: description: An optional set of strings associated with the Key for grouping and filtering. type: array items: description: A string representing a tag. type: string nullable: true 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 nullable: true example: id: d958f66b-8e99-44d2-b0b4-edd5bbf24658 jwk: '{"alg":"RSA", "kid": "42", ...}' kid: '42' name: a-key pem: private_key: '-----BEGIN' public_key: '-----BEGIN' set: id: b86b331c-dcd0-4b3e-97ce-47c5a9543031 additionalProperties: false required: - kid KeyAuth: type: object properties: consumer: type: object nullable: true properties: id: type: string x-foreign: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true key: type: string nullable: true tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string nullable: true ttl: description: key-auth ttl in seconds type: integer nullable: true example: consumer: id: 84a73fb8-50fc-44a7-a4d5-aa17728ee83f id: b2f34145-0343-41a4-9602-4c69dec2f269 key: IL1deIyHyQA40WpeLeA1bIUXuvTwlGjo additionalProperties: false KeyAuthWithoutParents: type: object properties: consumer: type: object nullable: true properties: id: type: string x-foreign: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: description: A string representing a UUID (universally unique identifier). type: string nullable: true key: type: string nullable: true tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string nullable: true ttl: description: key-auth ttl in seconds type: integer nullable: true example: id: b2f34145-0343-41a4-9602-4c69dec2f269 key: IL1deIyHyQA40WpeLeA1bIUXuvTwlGjo additionalProperties: false KeySet: 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 nullable: true tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string nullable: true 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 KeyWithoutParents: 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 nullable: true x-encrypted: true x-referenceable: true kid: description: A unique identifier for a key. type: string name: description: The name to associate with the given keys. type: string nullable: true pem: description: A keypair in PEM format. type: object nullable: true properties: private_key: type: string x-encrypted: true x-referenceable: true public_key: type: string x-referenceable: true set: description: The id (an UUID) of the key-set with which to associate the key. type: object nullable: true properties: id: type: string x-foreign: true tags: description: An optional set of strings associated with the Key for grouping and filtering. type: array items: description: A string representing a tag. type: string nullable: true 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 nullable: true example: id: d958f66b-8e99-44d2-b0b4-edd5bbf24658 jwk: '{"alg":"RSA", "kid": "42", ...}' kid: '42' name: a-key pem: private_key: '-----BEGIN' public_key: '-----BEGIN' set: id: b86b331c-dcd0-4b3e-97ce-47c5a9543031 additionalProperties: false required: - kid MTLSAuth: type: object properties: ca_certificate: type: object properties: id: type: string x-foreign: true consumer: type: object nullable: true properties: id: type: string x-foreign: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: 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 nullable: true 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: type: object properties: ca_certificate: type: object properties: id: type: string x-foreign: true consumer: type: object nullable: true properties: id: type: string x-foreign: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: 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 nullable: true 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 Partial: 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 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 x-encrypted: true x-referenceable: true 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 x-encrypted: true x-referenceable: true 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 x-referenceable: true 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 x-encrypted: true x-referenceable: true 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 x-referenceable: true 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 x-referenceable: true 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 x-referenceable: true 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 x-encrypted: true x-referenceable: true 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 x-referenceable: true header_value: description: 'Specify the full auth header value for ''header_name'', for example ''Bearer key'' or just ''key''.' type: string x-encrypted: true x-referenceable: true 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 x-referenceable: true param_value: description: Specify the full parameter value for 'param_name'. type: string x-encrypted: true x-referenceable: true model: type: object properties: name: description: Model name to execute. type: string options: description: Key/value settings for the model type: object properties: azure: type: object 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 instance: description: Instance name for Azure OpenAI hosted models. type: string bedrock: type: object 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 aws_region: description: If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option. type: string aws_role_session_name: description: 'If using AWS providers (Bedrock), set the identifier of the assumed role session.' type: string aws_sts_endpoint_url: description: 'If using AWS providers (Bedrock), override the STS endpoint URL when assuming a different role.' type: string 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 batch_role_arn: description: AWS role arn used for calling batch API. Try to get the value from request if ommited. type: string 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 video_output_s3_uri: description: 'S3 URI (s3://bucket/prefix) where Bedrock will store generated video files. Required for video generation.' type: string gemini: type: object properties: api_endpoint: description: 'If running Gemini on Vertex, specify the regional API endpoint (hostname only).' type: string location_id: description: 'If running Gemini on Vertex, specify the location ID.' type: string project_id: description: 'If running Gemini on Vertex, specify the project ID.' type: string huggingface: type: object properties: use_cache: description: Use the cache layer on the inference API type: boolean wait_for_model: description: Wait for the model if it is not ready type: boolean upstream_url: description: upstream url for the embeddings type: string 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 nullable: true tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string nullable: true 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 PartialLink: type: object properties: id: description: The plugin's unique identifier type: string instance_name: description: The instance name of the plugin type: string name: description: The plugin's name type: string required: - id - name PartialModel: type: object properties: config: type: object properties: auth: type: object properties: allow_override: description: 'If enabled, the authorization header or parameter can be overridden in the request by the value configured in the plugin.' type: boolean default: false aws_access_key_id: description: Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_ACCESS_KEY_ID environment variable for this plugin instance. type: string x-encrypted: true x-referenceable: true 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 x-encrypted: true x-referenceable: true 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 x-referenceable: true 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 x-encrypted: true x-referenceable: true 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 x-referenceable: true 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 x-referenceable: true 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 x-referenceable: true 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 x-encrypted: true x-referenceable: true 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 x-referenceable: true header_value: description: 'Specify the full auth header value for ''header_name'', for example ''Bearer key'' or just ''key''.' type: string x-encrypted: true x-referenceable: true 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 x-referenceable: true param_value: description: Specify the full parameter value for 'param_name'. type: string x-encrypted: true x-referenceable: true 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 logging: type: object 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 metadata: description: 'For internal use only. ' type: object additionalProperties: true nullable: 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 name: description: Model name to execute. type: string options: description: Key/value settings for the model type: object properties: anthropic_version: description: 'Defines the schema/API version, if using Anthropic provider.' type: string azure_api_version: description: '''api-version'' for Azure OpenAI instances.' type: string default: '2023-05-15' azure_deployment_id: description: Deployment ID for Azure OpenAI instances. type: string azure_instance: description: Instance name for Azure OpenAI hosted models. type: string bedrock: type: object properties: aws_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 aws_region: description: If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option. type: string aws_role_session_name: description: 'If using AWS providers (Bedrock), set the identifier of the assumed role session.' type: string aws_sts_endpoint_url: description: 'If using AWS providers (Bedrock), override the STS endpoint URL when assuming a different role.' type: string 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 batch_role_arn: description: AWS role arn used for calling batch API. Try to get the value from request if ommited. type: string 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 video_output_s3_uri: description: 'S3 URI (s3://bucket/prefix) where Bedrock will store generated video files. Required for video generation.' type: string cohere: type: object 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 dashscope: type: object 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 databricks: type: object properties: workspace_instance_id: description: Workspace Instance ID ('dbc-xxx-yyy') for Databricks model serving. type: string embeddings_dimensions: description: 'If using embeddings models, set the number of dimensions to generate.' type: integer gemini: type: object properties: api_endpoint: description: 'If running Gemini on Vertex, specify the regional API endpoint (hostname only).' type: string endpoint_id: description: 'If running Gemini on Vertex Model Garden, specify the endpoint ID.' type: string location_id: description: 'If running Gemini on Vertex, specify the location ID.' type: string project_id: description: 'If running Gemini on Vertex, specify the project ID.' type: string huggingface: type: object properties: use_cache: description: Use the cache layer on the inference API type: boolean wait_for_model: description: Wait for the model if it is not ready type: boolean input_cost: description: Defines the cost per 1M tokens in your prompt. type: number 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 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 temperature: description: 'Defines the matching temperature, if using chat or completion models.' type: number maximum: 5 minimum: 0 top_k: description: 'Defines the top-k most likely tokens, if supported.' type: integer maximum: 500 minimum: 0 top_p: description: 'Defines the top-p probability mass, if supported.' type: number maximum: 1 minimum: 0 upstream_path: description: 'Manually specify or override the AI operation path, used when e.g. using the ''preserve'' route_type.' type: string upstream_url: description: 'Manually specify or override the full URL to the AI operation endpoints, when calling (self-)hosted models, or for running via a private endpoint.' type: string provider: description: AI provider request format - Kong translates requests to and from the specified backend compatible formats. type: string enum: - anthropic - azure - bedrock - 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 nullable: true tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string nullable: true 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 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 x-encrypted: true x-referenceable: true aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string x-encrypted: true x-referenceable: true aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string x-referenceable: true 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 x-referenceable: true aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string x-encrypted: true x-referenceable: true aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string x-encrypted: true x-referenceable: true azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string x-encrypted: true x-referenceable: true azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string x-encrypted: true x-referenceable: true azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string x-encrypted: true x-referenceable: true gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string x-encrypted: true x-referenceable: true 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 x-referenceable: true password: description: 'Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis.' type: string x-encrypted: true x-referenceable: true port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer 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 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: true 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 x-referenceable: 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: A unique string representing a UTF-8 encoded name. type: string nullable: true tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string nullable: true 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 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 x-encrypted: true x-referenceable: true aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string x-encrypted: true x-referenceable: true aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string x-referenceable: true 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 x-referenceable: true aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string x-encrypted: true x-referenceable: true aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string x-encrypted: true x-referenceable: true azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string x-encrypted: true x-referenceable: true azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string x-encrypted: true x-referenceable: true azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string x-encrypted: true x-referenceable: true gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string x-encrypted: true x-referenceable: true cluster_max_redirections: description: Maximum retry attempts for redirection. type: integer default: 5 cluster_nodes: description: Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element. type: array items: properties: ip: description: 'A string representing a host name, such as example.com.' type: string default: 127.0.0.1 port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer default: 6379 maximum: 65535 minimum: 0 type: object minLength: 1 connect_timeout: description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. type: integer default: 2000 maximum: 2147483646 minimum: 0 connection_is_proxied: description: 'If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address.' type: boolean default: false database: description: Database to use for the Redis connection when using the `redis` strategy type: integer default: 0 host: description: 'A string representing a host name, such as example.com.' type: string default: 127.0.0.1 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 maximum: 2147483646 minimum: 0 keepalive_pool_size: description: 'The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn''t specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low.' type: integer default: 256 maximum: 2147483646 minimum: 1 password: description: 'Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis.' type: string x-encrypted: true x-referenceable: true port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: - integer - 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 sentinel_nodes: description: Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element. type: array items: properties: host: description: 'A string representing a host name, such as example.com.' type: string default: 127.0.0.1 port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer default: 6379 maximum: 65535 minimum: 0 type: object minLength: 1 sentinel_password: description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.' type: string 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 x-referenceable: true server_name: description: A string representing an SNI (server name indication) value for TLS. type: string 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: true 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 x-referenceable: 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: A unique string representing a UTF-8 encoded name. type: string nullable: true tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string nullable: true 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 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 x-encrypted: true x-referenceable: true 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 ssl_cert_key: description: the path of ssl cert key to use for the pgvector database type: string 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: true 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 redis: type: object properties: cloud_authentication: description: Cloud auth related configs for connecting to a Cloud Provider's Redis instance. type: object 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 x-encrypted: true x-referenceable: true aws_assume_role_arn: description: The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens. type: string x-encrypted: true x-referenceable: true aws_cache_name: description: The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`. type: string x-referenceable: true 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 x-referenceable: true aws_role_session_name: description: The session name for the temporary credentials when assuming the IAM role. type: string x-encrypted: true x-referenceable: true aws_secret_access_key: description: AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`. type: string x-encrypted: true x-referenceable: true azure_client_id: description: Azure Client ID to be used for authentication when `auth_provider` is set to `azure`. type: string x-encrypted: true x-referenceable: true azure_client_secret: description: Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`. type: string x-encrypted: true x-referenceable: true azure_tenant_id: description: Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`. type: string x-encrypted: true x-referenceable: true gcp_service_account_json: description: GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`. type: string x-encrypted: true x-referenceable: true cluster_max_redirections: description: Maximum retry attempts for redirection. type: integer default: 5 cluster_nodes: description: Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element. type: array items: properties: ip: description: 'A string representing a host name, such as example.com.' type: string default: 127.0.0.1 port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer default: 6379 maximum: 65535 minimum: 0 type: object minLength: 1 connect_timeout: description: An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. type: integer default: 2000 maximum: 2147483646 minimum: 0 connection_is_proxied: description: 'If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address.' type: boolean default: false database: description: Database to use for the Redis connection when using the `redis` strategy type: integer default: 0 host: description: 'A string representing a host name, such as example.com.' type: string default: 127.0.0.1 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 maximum: 2147483646 minimum: 0 keepalive_pool_size: description: 'The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn''t specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low.' type: integer default: 256 maximum: 2147483646 minimum: 1 password: description: 'Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis.' type: string x-encrypted: true x-referenceable: true port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer 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 sentinel_nodes: description: Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element. type: array items: properties: host: description: 'A string representing a host name, such as example.com.' type: string default: 127.0.0.1 port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer default: 6379 maximum: 65535 minimum: 0 type: object minLength: 1 sentinel_password: description: 'Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.' type: string 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 x-referenceable: true server_name: description: A string representing an SNI (server name indication) value for TLS. type: string 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: true 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 x-referenceable: true 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 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 nullable: true tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string nullable: true 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 maxLength: 1024 nullable: true 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 additionalProperties: true nullable: 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 nullable: true properties: id: type: string x-foreign: true consumer_group: description: 'If set, the plugin will activate only for requests where the specified group has been authenticated' type: object nullable: true properties: id: type: string x-foreign: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true 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 nullable: true name: description: 'The name of the Plugin that''s going to be added. Currently, the Plugin must be installed in every Kong instance separately.' type: string minLength: 1 ordering: type: object nullable: true properties: after: type: object properties: access: type: array items: type: string before: type: object properties: access: type: array items: type: string partials: 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 path: type: string type: object nullable: true 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 nullable: true properties: id: type: string x-foreign: true 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 nullable: true properties: id: type: string x-foreign: true 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 nullable: true updated_at: description: Unix epoch when the resource was last updated. type: integer nullable: true example: config: anonymous: null hide_credentials: false key_in_body: false key_in_header: true key_in_query: true key_names: - apikey run_on_preflight: true enabled: true id: 3fd1eea1-885a-4011-b986-289943ff8177 name: key-auth partials: - id: cff1230a-00f7-4ae8-b376-c370f0eb4dae name: foo-partial path: config.redis - id: 129ee345-cba8-4e55-9d6d-93c223ff91ae name: bar-partial path: config.redis protocols: - grpc - grpcs - http - https additionalProperties: false required: - name PluginWithoutParents: 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 maxLength: 1024 nullable: true 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 additionalProperties: true nullable: 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 nullable: true properties: id: type: string x-foreign: true consumer_group: description: 'If set, the plugin will activate only for requests where the specified group has been authenticated' type: object nullable: true properties: id: type: string x-foreign: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true 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 nullable: true name: description: 'The name of the Plugin that''s going to be added. Currently, the Plugin must be installed in every Kong instance separately.' type: string minLength: 1 ordering: type: object nullable: true properties: after: type: object properties: access: type: array items: type: string before: type: object properties: access: type: array items: type: string partials: 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 path: type: string type: object nullable: true 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 nullable: true properties: id: type: string x-foreign: true 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 nullable: true properties: id: type: string x-foreign: true 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 nullable: true updated_at: description: Unix epoch when the resource was last updated. type: integer nullable: true example: config: anonymous: null hide_credentials: false key_in_body: false key_in_header: true key_in_query: true key_names: - apikey run_on_preflight: true enabled: true id: 3fd1eea1-885a-4011-b986-289943ff8177 name: key-auth partials: - id: cff1230a-00f7-4ae8-b376-c370f0eb4dae name: foo-partial path: config.redis - id: 129ee345-cba8-4e55-9d6d-93c223ff91ae name: bar-partial path: config.redis protocols: - grpc - grpcs - http - https additionalProperties: false required: - name Route: oneOf: - $ref: '#/components/schemas/RouteJson' - $ref: '#/components/schemas/RouteExpression' RouteExpression: description: 'Route entities define rules to match client requests. Each Route is associated with a Service, and a Service may have multiple Routes associated to it. Every request matching a given Route will be proxied to its associated Service. The combination of Routes and Services (and the separation of concerns between them) offers a powerful routing mechanism with which it is possible to define fine-grained entry-points in Kong leading to different upstream services of your infrastructure. You need at least one matching rule that applies to the protocol being matched by the Route.' type: object properties: created_at: description: Unix epoch when the resource was created. type: integer nullable: true expression: description: Use Router Expression to perform route match. This option is only available when `router_flavor` is set to `expressions`. type: string nullable: true https_redirect_status_code: description: 'The status code Kong responds with when all properties of a Route match except the protocol i.e. if the protocol of the request is `HTTP` instead of `HTTPS`. `Location` header is injected by Kong if the field is set to 301, 302, 307 or 308. Note: This config applies only if the Route is configured to only accept the `https` protocol.' type: integer default: 426 enum: - 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 nullable: true path_handling: description: 'Controls how the Service path, Route path and requested path are combined when sending a request to the upstream. See above for a detailed description of each behavior.' type: string default: v0 enum: - v0 - v1 nullable: true 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: - 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 nullable: true properties: id: type: string x-foreign: true strip_path: description: 'When matching a Route via one of the `paths`, strip the matching prefix from the upstream request URL.' type: boolean default: true nullable: true tags: description: An optional set of strings associated with the Route for grouping and filtering. type: array items: description: A string representing a tag. type: string nullable: true updated_at: description: Unix epoch when the resource was last updated. type: integer nullable: true additionalProperties: false RouteJson: 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 port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer maximum: 65535 minimum: 0 type: object nullable: true headers: description: 'One or more lists of values indexed by header name that will cause this Route to match if present in the request. The `Host` header cannot be used with this attribute: hosts should be specified using the `hosts` attribute. When `headers` contains only one value and that value starts with the special prefix `~*`, the value is interpreted as a regular expression.' type: object additionalProperties: items: type: string type: array nullable: true hosts: description: A list of domain names that match this Route. Note that the hosts value is case sensitive. type: array items: type: string nullable: true https_redirect_status_code: description: 'The status code Kong responds with when all properties of a Route match except the protocol i.e. if the protocol of the request is `HTTP` instead of `HTTPS`. `Location` header is injected by Kong if the field is set to 301, 302, 307 or 308. Note: This config applies only if the Route is configured to only accept the `https` protocol.' type: integer default: 426 enum: - 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 nullable: true name: description: 'The name of the Route. Route names must be unique, and they are case sensitive. For example, there can be two different Routes named "test" and "Test".' type: string nullable: true path_handling: description: 'Controls how the Service path, Route path and requested path are combined when sending a request to the upstream. See above for a detailed description of each behavior.' type: string default: v0 enum: - v0 - v1 nullable: true 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 nullable: true preserve_host: description: 'When matching a Route via one of the `hosts` domain names, use the request `Host` header in the upstream request headers. If set to `false`, the upstream `Host` header will be that of the Service''s `host`.' type: boolean default: false nullable: true protocols: description: 'An array of the protocols this Route should allow. See the [Route Object](#route-object) section for a list of accepted protocols. When set to only `"https"`, HTTP requests are answered with an upgrade error. When set to only `"http"`, HTTPS requests are answered with an error.' type: array items: 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: - 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 nullable: true properties: id: type: string x-foreign: true snis: description: A list of SNIs that match this Route when using stream routing. type: array items: description: 'A string representing a wildcard host name, such as *.example.com.' type: string nullable: true sources: description: A list of IP sources of incoming connections that match this Route when using stream routing. Each entry is an object with fields "ip" (optionally in CIDR range notation) and/or "port". type: array items: properties: ip: description: 'A string representing an IP address or CIDR block, such as 192.168.1.1 or 192.168.0.0/16.' type: string port: description: 'An integer representing a port number between 0 and 65535, inclusive.' type: integer maximum: 65535 minimum: 0 type: object nullable: true strip_path: description: 'When matching a Route via one of the `paths`, strip the matching prefix from the upstream request URL.' type: boolean default: true nullable: true tags: description: An optional set of strings associated with the Route for grouping and filtering. type: array items: description: A string representing a tag. type: string nullable: true 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 RouteWithoutParents: oneOf: - $ref: '#/components/schemas/RouteJson' - $ref: '#/components/schemas/RouteExpression' SNI: description: 'An SNI object represents a many-to-one mapping of hostnames to a certificate. That is, a certificate object can have many hostnames associated with it; when Kong receives an SSL request, it uses the SNI field in the Client Hello to lookup the certificate object based on the SNI associated with the certificate.' type: object properties: certificate: description: The id (a UUID) of the certificate with which to associate the SNI hostname. The Certificate must have a valid private key associated with it to be used by the SNI object. type: object properties: id: type: string x-foreign: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true id: 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 nullable: true 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 SNIWithoutParents: 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 nullable: true updated_at: description: Unix epoch when the resource was last updated. type: integer nullable: true example: id: 36c4566c-14cc-4132-9011-4139fcbbe50a name: some.example.org additionalProperties: false required: - name Service: description: 'Service entities, as the name implies, are abstractions of each of your own upstream services. Examples of Services would be a data transformation microservice, a billing API, etc. The main attribute of a Service is its URL (where Kong should proxy traffic to), which can be set as a single string or by specifying its `protocol`, `host`, `port` and `path` individually. Services are associated to Routes (a Service can have many Routes associated with it). Routes are entry-points in Kong and define rules to match client requests. Once a Route is matched, Kong proxies the request to its associated Service. See the [Proxy Reference][proxy-reference] for a detailed explanation of how Kong proxies traffic.' type: object properties: ca_certificates: description: 'Array of `CA Certificate` object UUIDs that are used to build the trust store while verifying upstream server''s TLS certificate. If set to `null` when Nginx default is respected. If default CA list in Nginx are not specified and TLS verification is enabled, then handshake with upstream server will always fail (because no CA are trusted).' type: array items: type: string nullable: true client_certificate: description: Certificate to be used as client certificate while TLS handshaking to the upstream server. type: object nullable: true properties: id: type: string x-foreign: true connect_timeout: description: The timeout in milliseconds for establishing a connection to the upstream server. type: integer default: 60000 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 nullable: true path: description: The path to be used in requests to the upstream server. type: string nullable: true port: description: The upstream server port. type: integer default: 80 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 nullable: true tls_sans: description: Additional Subject Alternative Names that can be matched on Upstream server's TLS certificate (in addition to `host`). type: object 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 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 tls_verify: description: 'Whether to enable verification of upstream server TLS certificate. If set to `null`, then the Nginx default is respected.' type: boolean nullable: true tls_verify_depth: description: 'Maximum depth of chain while verifying Upstream server''s TLS certificate. If set to `null`, then the Nginx default is respected.' type: integer maximum: 64 minimum: 0 nullable: true updated_at: description: Unix epoch when the resource was last updated. type: integer nullable: true url: description: 'Helper field to set `protocol`, `host`, `port` and `path` using a URL. This field is write-only and is not returned in responses.' type: string nullable: true writeOnly: true write_timeout: description: The timeout in milliseconds between two successive write operations for transmitting a request to the upstream server. type: integer default: 60000 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 Target: description: 'A target is an ip address/hostname with a port that identifies an instance of a backend service. Every upstream can have many targets, and the targets can be dynamically added, modified, or deleted. Changes take effect on the fly. To disable a target, post a new one with `weight=0`; alternatively, use the `DELETE` convenience method to accomplish the same. The current target object definition is the one with the latest `created_at`.' type: object properties: created_at: description: Unix epoch when the resource was created. type: number nullable: true 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 nullable: true target: description: 'The target address (ip or hostname) and port. If the hostname resolves to an SRV record, the `port` value will be overridden by the value from the DNS record.' type: string nullable: true updated_at: description: Unix epoch when the resource was last updated. type: number nullable: true upstream: 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 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: 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 nullable: true target: description: 'The target address (ip or hostname) and port. If the hostname resolves to an SRV record, the `port` value will be overridden by the value from the DNS record.' type: string nullable: true updated_at: description: Unix epoch when the resource was last updated. type: number nullable: true upstream: 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 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 Upstream: description: 'The upstream object represents a virtual hostname and can be used to loadbalance incoming requests over multiple services (targets). So for example an upstream named `service.v1.xyz` for a Service object whose `host` is `service.v1.xyz`. Requests for this Service would be proxied to the targets defined within the upstream. An upstream also includes a [health checker][healthchecks], which is able to enable and disable targets based on their ability or inability to serve requests. The configuration for the health checker is stored in the upstream object, and applies to all of its targets.' type: object properties: algorithm: description: Which load balancing algorithm to use. type: string default: round-robin enum: - consistent-hashing - 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 nullable: true properties: id: type: string x-foreign: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true hash_fallback: description: 'What to use as hashing input if the primary `hash_on` does not return a hash (eg. header is missing, or no Consumer identified). Not available if `hash_on` is set to `cookie`.' type: string default: none enum: - 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 nullable: true hash_fallback_query_arg: description: The name of the query string argument to take the value from as hash input. Only required when `hash_fallback` is set to `query_arg`. type: string minLength: 1 nullable: true hash_fallback_uri_capture: description: The name of the route URI capture to take the value from as hash input. Only required when `hash_fallback` is set to `uri_capture`. type: string minLength: 1 nullable: true hash_on: description: What to use as hashing input. Using `none` results in a weighted-round-robin scheme with no hashing. type: string default: none enum: - 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 nullable: true hash_on_cookie_path: description: The cookie path to set in the response headers. Only required when `hash_on` or `hash_fallback` is set to `cookie`. type: string default: / nullable: true hash_on_header: description: The header name to take the value from as hash input. Only required when `hash_on` is set to `header`. type: string nullable: true hash_on_query_arg: description: The name of the query string argument to take the value from as hash input. Only required when `hash_on` is set to `query_arg`. type: string minLength: 1 nullable: true hash_on_uri_capture: description: The name of the route URI capture to take the value from as hash input. Only required when `hash_on` is set to `uri_capture`. type: string minLength: 1 nullable: true 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 additionalProperties: items: type: string type: array 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 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 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 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 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 threshold: type: number default: 0 maximum: 100 minimum: 0 host_header: description: The hostname to be used as `Host` header when proxying requests through Kong. type: string nullable: true 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 nullable: true 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 nullable: true 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 Vault: description: 'Vault entities are used to configure different Vault connectors. Examples of Vaults are Environment Variables, Hashicorp Vault and AWS Secrets Manager. Configuring a Vault allows referencing the secrets with other entities. For example a certificate entity can store a reference to a certificate and key, stored in a vault, instead of storing the certificate and key within the entity. This allows a proper separation of secrets and configuration and prevents secret sprawl.' type: object properties: config: description: The configuration properties for the Vault which can be found on the vaults' documentation page. type: object additionalProperties: true nullable: true created_at: description: Unix epoch when the resource was created. type: integer nullable: true description: description: The description of the Vault entity. type: string nullable: true id: 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 nullable: true 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 CertificateRequest: 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.' example: cert: |- -----BEGIN CERTIFICATE----- certificate-content -----END CERTIFICATE----- id: b2f34145-0343-41a4-9602-4c69dec2f269 key: |- -----BEGIN PRIVATE KEY----- private-key-content -----END PRIVATE KEY----- allOf: - additionalProperties: false 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 nullable: true x-referenceable: true 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 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 nullable: true x-encrypted: true x-referenceable: true managed_by: description: 'Arbitrary JSON data for client responsible for managing the entity. Konnect only field, not synced to the Gateway.' type: object additionalProperties: true nullable: true snis: type: array items: description: 'A string representing a wildcard host name, such as *.example.com.' 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 nullable: true 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 nullable: true writeOnly: true 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 nullable: true writeOnly: true type: object - anyOf: - required: - vault - required: - cert - key KonnectCPLegacyBaseError: description: standard error type: object properties: message: description: | A short summary of the problem. type: string readOnly: 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 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. GroupMembershipUpsert: content: application/json: schema: $ref: '#/components/schemas/GroupMembership' description: Request body for upserting a list of child control planes to a control plane group membership. UpdateImpersonationSettingsRequest: content: application/json: schema: type: object properties: enabled: description: Indicates if user impersonation is allowed for the organization. type: boolean example: true description: The request schema for adding a system account to a team. UpdateUser: description: The request schema for the update user request. content: application/json: schema: type: object properties: full_name: description: The user's full name. type: string example: James C. Woods maxLength: 250 pattern: '^[\w \W]+$' writeOnly: true preferred_name: description: The user's desired name. type: string example: Jimmy maxLength: 250 writeOnly: true 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. maxLength: 250 writeOnly: true 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 pattern: '^[\w \W]+$' writeOnly: true description: description: The description of the team. type: string example: The Identity Management (IDM) API team. maxLength: 250 writeOnly: true 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 UpdateTeamMappings: content: application/json: schema: type: object properties: mappings: description: The mappings object. type: array items: type: object properties: group: type: string team_ids: type: array items: type: string example: mappings: - group: Service Developers team_ids: - af91db4c-6e51-403e-a2bf-33d27ae50c0a description: The request schema for updating IdP team mappings. PatchTeamGroupMappings: content: application/json: schema: type: object properties: data: description: The IdP groups to map to the given team. type: array items: type: object properties: team_id: type: string format: uuid groups: type: array items: type: string example: data: - team_id: af91db4c-6e51-403e-a2bf-33d27ae50c0a groups: - Service Developers description: The request schema for a partial update of mappings from Konnect Teams to IdP Groups. 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 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. InviteUser: content: application/json: schema: type: object properties: email: type: string format: email example: james.c.woods@example.com writeOnly: true required: - email description: |- The request schema for the invite user request. If you pass an `email` that is not already an active user in the request, a fresh invitation email will be created and sent to the new user. 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 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 description: description: Description of the system account. type: string 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 oidc_auth_enabled: description: The organization has OIDC disabled. type: boolean example: false saml_auth_enabled: description: The organization has SAML disabled. type: boolean example: false idp_mapping_enabled: description: Whether IdP groups determine the Konnect teams a user has. type: boolean example: true konnect_mapping_enabled: description: Whether a Konnect Identity Admin assigns teams to a user. type: boolean example: false UpdateIdPConfiguration: content: application/json: schema: type: object properties: issuer: type: string format: uri example: 'https://myidp.com/oauth2' login_path: type: string example: myapp client_id: type: string example: YOUR_CLIENT_ID client_secret: type: string example: YOUR_CLIENT_SECRET scopes: type: array items: type: string default: openid default: - email - openid - profile claim_mappings: type: object minProperties: 3 properties: name: type: string example: name default: name email: type: string example: email default: email groups: type: string example: custom-group-claim default: groups description: The request schema for the update IdP configuration request. 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' PersonalAccessTokenCreateRequest: description: Request body schema for creating personal access tokens. content: application/json: schema: oneOf: - $ref: '#/components/schemas/PersonalAccessTokenCreateRequestWithExpiresAt' - $ref: '#/components/schemas/PersonalAccessTokenCreateRequestWithTTL' PersonalAccessTokenUpdateRequest: description: Request body schema for updating personal access tokens. content: application/json: schema: type: object properties: name: $ref: '#/components/schemas/PATName' minProperties: 1 NotificationUpdateRequest: description: Request body schema for updating notification status. content: application/json: schema: $ref: '#/components/schemas/NotificationUpdatePayload' EventSubscriptionRequest: description: Request body schema for creating/updating event subscription. content: application/json: schema: $ref: '#/components/schemas/EventSubscription' BulkRequest: description: Request body schema for bulk status update. content: application/json: schema: $ref: '#/components/schemas/BulkPayload' CreateDcrProvider: required: true content: application/json: schema: $ref: '#/components/schemas/CreateDcrProviderRequest' UpdateDcrProvider: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateDcrProviderRequest' CreateAppAuthStrategy: required: true content: application/json: schema: $ref: '#/components/schemas/CreateAppAuthStrategyRequest' UpdateAppAuthStrategy: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateAppAuthStrategyRequest' 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 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 nullable: true 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 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 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 nullable: true readOnly: 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 CreateApiPackageRequest: required: true content: application/json: schema: type: object properties: id: description: The API Package identifier. type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 readOnly: true name: description: | The name of your API Package. The `name + version` combination must be unique for each API Package you publish. type: string example: MyAPIPackage maxLength: 255 minLength: 1 description: description: A description of your API Package. Will be visible on your live Portal. type: string nullable: true slug: description: | The unique slug for your API Package, It should be unique across all APIs and API Packages. type: string example: my-api-package-v1 nullable: true pattern: '^[\w-]+$' version: description: An optional version for your API Package. Leave this empty if your API Package is unversioned. type: string maxLength: 255 minLength: 1 nullable: true rate_limiting_config: $ref: '#/components/schemas/RateLimitingConfig' labels: $ref: '#/components/schemas/Labels' attributes: $ref: '#/components/schemas/ApiAttributes' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - name title: API Package 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 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 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 spec: type: object additionalProperties: false properties: content: 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"}}}}}}' type: string 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 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 nullable: true 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 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 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 nullable: true readOnly: true attributes: $ref: '#/components/schemas/ApiAttributes' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false title: API UpdateApiPackageRequest: required: true content: application/json: schema: type: object properties: id: description: The API Package identifier. type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 readOnly: true name: description: | The name of your API Package. The `name + version` combination must be unique for each API Package you publish. type: string example: MyAPIPackage maxLength: 255 minLength: 1 description: description: A description of your API Package. Will be visible on your live Portal. type: string nullable: true slug: description: | The unique slug for your API Package, It should be unique across all APIs and API Packages. type: string example: my-api-package-v1 nullable: true pattern: '^[\w-]+$' version: description: An optional version for your API Package. Leave this empty if your API Package is unversioned. type: string maxLength: 255 minLength: 1 nullable: true rate_limiting_config: $ref: '#/components/schemas/RateLimitingConfig' labels: $ref: '#/components/schemas/LabelsUpdate' attributes: $ref: '#/components/schemas/ApiAttributes' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false title: API Package UpdateApiPackageOperationRequest: required: true content: application/json: schema: $ref: '#/components/schemas/APIPackageJSONPatchOperation' 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' PutApiPackagePublicationRequest: required: true content: application/json: schema: $ref: '#/components/schemas/ApiPackagePublication' CreateApiImplementationRequest: required: true content: application/json: schema: $ref: '#/components/schemas/ApiImplementation' MoveDocumentRequest: required: true description: move document content: application/json: schema: $ref: '#/components/schemas/MoveDocumentRequestPayload' ValidateApiSpecRequest: required: true description: Specification content and type for validation. content: application/json: schema: $ref: '#/components/schemas/ValidateApiSpecRequestPayload' ReplaceApiImageRequest: required: true description: Request body to upload an image base64 dataURI for API. content: application/json: schema: $ref: '#/components/schemas/ReplaceImageRequestSchema' ReplaceApiPackageImageRequest: required: true description: Request body to upload an image base64 dataURI for API. content: application/json: schema: $ref: '#/components/schemas/ReplaceImageRequestSchema' CreatePortalIdpTeamGroupMapping: description: Create a team group mapping for an identity provider. required: true content: application/json: schema: $ref: '#/components/schemas/CreatePortalIdpTeamGroupMappingRequest' 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 maxLength: 512 nullable: true 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 nullable: true 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 canonical_domain: description: The canonical domain of the developer portal type: string format: hostname nullable: false readOnly: 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 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 maxLength: 512 nullable: true 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 nullable: true 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 canonical_domain: description: The canonical domain of the developer portal type: string format: hostname nullable: false readOnly: 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 UpdateDeveloper: description: Update a developer. required: true content: application/json: schema: $ref: '#/components/schemas/UpdateDeveloperRequest' 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' ReplacePortalIntegrations: content: application/json: schema: $ref: '#/components/schemas/PortalIntegrations' UpdatePortalIntegrations: content: application/json: schema: $ref: '#/components/schemas/UpdatePortalIntegrations' 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' MovePage: description: move page content: application/json: schema: $ref: '#/components/schemas/MovePageRequestPayload' 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' CreateDeveloper: description: Create a developer for a portal. required: true content: application/json: schema: $ref: '#/components/schemas/CreateDeveloperRequest' CreateApplication: description: Create an application for a portal. required: true content: application/json: schema: $ref: '#/components/schemas/CreateApplicationRequest' CreateApplicationRegistration: description: Create an application registration for a portal application. required: true content: application/json: schema: $ref: '#/components/schemas/CreateApplicationRegistrationRequest' UpdateApplicationRegistration: description: Update an application registration. required: true content: application/json: schema: $ref: '#/components/schemas/UpdateApplicationRegistrationRequest' UpdateRegistrationConsumerRequest: description: Update the consumer of an application registration. required: true content: application/json: schema: $ref: '#/components/schemas/UpdateRegistrationConsumerRequest' UpdateApplication: description: Update an application. required: true content: application/json: schema: $ref: '#/components/schemas/UpdateApplicationRequest' ReplacePortalAuditLogReplayJob: description: The request schema to replace a portal audit log replay job. content: application/json: schema: type: object properties: start_at: description: |- The start of a date-time range in RFC3339 format e.g. 2017-07-21T17:32:28Z. Must be within the last 7 days. type: string format: date-time end_at: description: |- The end of a date-time range in RFC3339 format e.g. 2017-07-21T17:32:28Z. Must be within the last 7 days. type: string format: date-time required: - start_at - end_at 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 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' UpdatePortalTeamGroupMappings: content: application/json: schema: $ref: '#/components/schemas/PortalTeamGroupMappingsUpdateRequest' 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' AddDeveloperToTeam: description: Add a developer to a team. content: application/json: schema: $ref: '#/components/schemas/AddDeveloperToTeamRequest' PatchCustomPortalEmailTemplatePayload: description: Update a custom portal email template. required: true content: application/json: schema: type: object properties: content: $ref: '#/components/schemas/EmailTemplateContent' enabled: description: Whether the email template is enabled or disabled for a portal type: boolean default: true PatchPortalEmailConfigPayload: description: Update a portal email configured. content: application/json: schema: $ref: '#/components/schemas/PatchPortalEmailConfig' PostPortalEmailConfigPayload: description: Create a portal email configuration. required: true content: application/json: schema: $ref: '#/components/schemas/PostPortalEmailConfig' PostSendTestEmailPayload: description: Send a test email using a custom email template. required: true content: application/json: schema: type: object properties: content: $ref: '#/components/schemas/SendTestEmailTemplateContent' required: - content CreatePortalSourceIPRestriction: content: application/json: schema: type: object properties: allowed_ips: $ref: '#/components/schemas/PortalAllowedIPs' additionalProperties: false required: - allowed_ips UpdatePortalSourceIPRestriction: content: application/json: schema: type: object properties: allowed_ips: $ref: '#/components/schemas/PortalAllowedIPs' additionalProperties: false minProperties: 1 PortalCreateIdentityProviderRequest: 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/PortalCreateIdentityProvider' PortalUpdateIdentityProviderRequest: 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/PortalUpdateIdentityProvider' 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' UpdateCatalogResourceRequest: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateCatalogResource' CreateCatalogResourceMappingRequest: required: true content: application/json: schema: $ref: '#/components/schemas/CreateCatalogResourceMapping' CreateScorecardRequest: required: true content: application/json: schema: $ref: '#/components/schemas/CreateScorecard' UpdateScorecardRequest: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateScorecard' CreateCatalogServiceApiMappingBody: description: Request body schema for creating a new API mapping for catalog service. required: true content: application/json: schema: type: object properties: api_id: description: The ID of the API Entity to map. type: string format: uuid additionalProperties: false required: - api_id 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' x-min-runtime-version: '1.2' 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' x-min-runtime-version: '1.2' 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' CreateEventGatewayListenerPolicyRequest: description: The request schema for creating a listener policy. required: true content: application/json: schema: $ref: '#/components/schemas/EventGatewayListenerPolicyCreate' UpdateEventGatewayListenerPolicyRequest: description: The request schema for updating a listener policy. required: true content: application/json: schema: $ref: '#/components/schemas/EventGatewayListenerPolicyUpdate' PatchEventGatewayPolicyRequest: description: The request schema for patching a policy. content: application/json: schema: $ref: '#/components/schemas/EventGatewayPolicyPatch' PatchEventGatewayListenerPolicyRequest: description: The request schema for patching a listener policy. content: application/json: schema: $ref: '#/components/schemas/EventGatewayListenerPolicyPatch' CreateEventGatewayConsumePolicyRequest: description: The request schema for creating a consume policy. content: application/json: schema: $ref: '#/components/schemas/EventGatewayConsumePolicyCreate' UpdateEventGatewayConsumePolicyRequest: description: The request schema for updating a consume policy. content: application/json: schema: $ref: '#/components/schemas/EventGatewayConsumePolicyUpdate' CreateEventGatewayProducePolicyRequest: description: The request schema for creating a produce policy. content: application/json: schema: $ref: '#/components/schemas/EventGatewayProducePolicyCreate' UpdateEventGatewayProducePolicyRequest: description: The request schema for updating a produce policy. content: application/json: schema: $ref: '#/components/schemas/EventGatewayProducePolicyUpdate' CreateEventGatewayClusterPolicyRequest: description: The request schema for creating a cluster-level policy. content: application/json: schema: $ref: '#/components/schemas/EventGatewayClusterPolicyModify' UpdateEventGatewayClusterPolicyRequest: description: The request schema for updating a cluster-level policy. content: application/json: schema: $ref: '#/components/schemas/EventGatewayClusterPolicyModify' 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 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 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 UpdateEventGatewayPolicyChainRequest: description: The request schema for updating the policy chain. content: application/json: schema: type: object properties: policies: type: array items: $ref: '#/components/schemas/EventGatewayPolicyReference' required: - policies 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 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. required: - status - title - instance title: ServiceUnavailableError ListGroupMemberships: description: A paginated list response for a collection of control plane group memberships. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/CursorPaginatedMetaWithSizeAndTotal' data: description: Array of control planes summary who are a child to this control plane group. type: array items: $ref: '#/components/schemas/ControlPlane' required: - meta - data GetGroupStatus: description: 'Status of a control plane group, including existing conflicts.' content: application/json: schema: type: object properties: item: $ref: '#/components/schemas/GroupStatus' GetGroupMemberStatus: description: Determines the group membership status of a control plane. content: application/json: schema: $ref: '#/components/schemas/GroupMemberStatus' 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 title: description: The Error Response. type: string example: Unauthorized instance: description: The Konnect traceback code. type: string example: 'konnect:trace:952172606039454040' detail: description: Details about the error response. type: string example: You do not have permission to perform this action $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' GetImpersonationSettingsResponse: description: Response for Get Impersonation Settings endpoint content: application/json: schema: type: object properties: enabled: description: The organization has user impersonation enabled. type: boolean example: true title: Get Impersonation Settings Response UpdateImpersonationSettingsResponse: description: Response for Update Impersonation Settings endpoint content: application/json: schema: type: object properties: enabled: description: The organization has user impersonation enabled. type: boolean example: true title: Update Impersonation Settings Response UserSingle: description: A get action response of a single user. content: application/json: schema: $ref: '#/components/schemas/User' UserCollection: 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/User' title: User Collection Response 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' title: Team Collection Response TeamMappingCollection: description: A paginated list response for a collection of team mappings. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/TeamMapping' title: Team Mapping Collection Response TeamGroupMappingCollection: description: A paginated collection of mappings grouped by team_id. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/TeamGroupMapping' title: Team Group Mapping Collection Response IdpTeamGroupMapping: description: A single team group mapping. content: application/json: schema: $ref: '#/components/schemas/IdpTeamGroupMapping' IdpTeamGroupMappingsCollection: description: A paginated collection of IDP team group mappings. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/CursorMeta' data: type: array items: $ref: '#/components/schemas/IdpTeamGroupMapping' AssignedRoleSingle: description: A get action response of a single assigned role. content: application/json: schema: $ref: '#/components/schemas/AssignedRole' AssignedRoleCollection: description: A paginated list response for a collection of assigned roles. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: description: An Array type: array items: $ref: '#/components/schemas/AssignedRole' title: Assigned Role Collection Response 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 oidc_auth_enabled: description: The organization has OIDC disabled. type: boolean example: false saml_auth_enabled: description: The organization has SAML disabled. type: boolean example: false idp_mapping_enabled: description: IdP groups determine the Konnect teams a user has. type: boolean example: true konnect_mapping_enabled: description: A Konnect Identity Admin assigns teams to a user. type: boolean example: 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' PreconditionFailed: description: Precondition Failed content: application/problem+json: schema: description: The error response object. type: object properties: status: description: The HTTP status code. type: integer example: 412 title: description: The error response code. type: string example: Precondition Failed instance: description: The Konnect traceback code. type: string example: 'konnect:trace:1896611024257578096' detail: description: Details about the error response. type: string example: IdP configuration not found title: Precondition Failed Response RateLimited: description: Rate Limited content: application/problem+json: schema: description: The error object type: object properties: status: description: The HTTP response code type: integer example: 429 title: description: The Error response type: string example: Rate Limited instance: description: The Konnect traceback ID. type: string example: 'konnect:trace:3674017986744198214' detail: description: Detailed explanation of the error response. type: string example: Too many requests title: Rate Limited Response 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' TeamMappingResponse: description: A paginated list response for a collection of team mappings. content: application/json: schema: type: object properties: meta: description: Contains pagination data. type: object properties: page: description: The page object. type: object properties: number: description: Page number. type: integer example: 1 size: description: Page size. type: integer example: 9 total: description: Total number of results. type: integer example: 5 data: type: array items: type: object properties: group: description: Group names. type: string example: 111(@&*$)(@*#_@(gfds re gdsf dfg team_ids: description: Team ID's that belong to the specified group. type: array items: type: string example: 3df49db8-39ff-490d-9fe1-251a3361fb13 title: Team Mapping Response Roles: description: 'The predefined, or system managed, roles.' content: application/json: schema: type: object properties: control_planes: type: object additionalProperties: false properties: name: type: string enum: - Control Planes roles: type: object properties: admin: type: object additionalProperties: false properties: name: type: string enum: - Admin description: type: string example: This role grants full write access to all entities within a control plane. enum: - This role grants full write access to all entities within a control plane. required: - name - description certificate_admin: type: object additionalProperties: false properties: name: type: string enum: - Certificate Admin description: type: string example: This role grants full write access to administer certificates. enum: - This role grants full write access to administer certificates. required: - name - description consumer_admin: type: object additionalProperties: false properties: name: type: string enum: - Consumer Admin description: description: This role grants full write access to administer Consumers. Can configure plugins and view plugin partials for Consumers they have access to. Cannot create or modify global plugins or plugins outside their scope. type: string example: This role grants full write access to administer consumers. enum: - This role grants full write access to administer consumers. required: - name - description creator: type: object additionalProperties: false properties: name: type: string enum: - Creator description: type: string example: Creates a new Control Plane in an organization. The creator becomes the owner of the Control Plane they create. enum: - Creates a new Control Plane in an organization. The creator becomes the owner of the Control Plane they create. required: - name - description debug_session_creator: type: object additionalProperties: false properties: name: type: string enum: - Debug Session Creator description: type: string example: This role grants access to create debug sessions. This role also grants read-only access to all entities within a control plane. enum: - This role grants access to create debug sessions. This role also grants read-only access to all entities within a control plane. required: - name - description deployer: type: object additionalProperties: false properties: name: type: string enum: - Deployer description: type: string example: 'This role grants full write access to administer services, routes and plugins necessary to deploy services in Service Hub.' enum: - 'This role grants full write access to administer services, routes and plugins necessary to deploy services in Service Hub.' required: - name - description gateway_service_admin: type: object additionalProperties: false properties: name: type: string enum: - Gateway Service Admin description: description: This role grants full write access to administer Gateway Services. Can configure plugins and view plugin partials for Services they have access to. Cannot create or modify global plugins or plugins outside their scope. type: string example: This role grants full write access to administer gateway services. enum: - This role grants full write access to administer gateway services. required: - name - description plugin_admin: type: object additionalProperties: false properties: name: type: string enum: - Plugin Admin description: description: 'Can configure plugins at any scope (global, Service, Route, or Consumer) within a Control Plane Group. Also has write access to plugin partials.' type: string example: This role grants full write access to administer plugins. enum: - This role grants full write access to administer plugins. required: - name - description route_admin: type: object additionalProperties: false properties: name: type: string enum: - Route Admin description: description: This role grants full write access to administer Routes. Can configure plugins and view plugin partials for Routes they have access to. Cannot create or modify global plugins or plugins outside their scope. type: string example: This role grants full write access to administer routes. enum: - This role grants full write access to administer routes. required: - name - description sni_admin: type: object additionalProperties: false properties: name: type: string enum: - SNI Admin description: type: string example: This role grants full write access to administer SNIs. enum: - This role grants full write access to administer SNIs. required: - name - description upstream_admin: type: object additionalProperties: false properties: name: type: string enum: - Upstream Admin description: type: string example: This role grants full write access to administer upstreams. enum: - This role grants full write access to administer upstreams. required: - name - description viewer: type: object additionalProperties: false properties: name: type: string enum: - Viewer description: description: This role grants read-only access to all the configurations of a Control Plane Group and corresponding Data Plane nodes. Includes read-only access to plugin partials within accessible scopes. type: string example: This role grants read only access to all entities within a control plane. enum: - This role grants read only access to all entities within a control plane. required: - name - description required: - name - roles api_products: type: object additionalProperties: false properties: name: type: string enum: - API Products roles: type: object properties: admin: type: object additionalProperties: false properties: name: type: string enum: - Admin description: type: string example: This role grants full write access to an API product and its versions. enum: - This role grants full write access to an API product and its versions. required: - name - description application_registration: type: object additionalProperties: false properties: name: type: string enum: - Application Registration description: type: string example: This role grants permission to enable and disable application registration on an API product. enum: - This role grants permission to enable and disable application registration on an API product. required: - name - description creator: type: object additionalProperties: false properties: name: type: string enum: - Creator description: type: string example: 'This access is required to create API products. This access is not for creating sub-entities such as versions, API specs, etc.' enum: - 'This access is required to create API products. This access is not for creating sub-entities such as versions, API specs, etc.' required: - name - description deployer: type: object additionalProperties: false properties: name: type: string enum: - Deployer description: type: string example: This role grants permission to deploy and remove an API product from a control plane. enum: - This role grants permission to deploy and remove an API product from a control plane. required: - name - description maintainer: type: object additionalProperties: false properties: name: type: string enum: - Maintainer description: type: string example: This role grants all write permission to manage an API product and to administer plugins. enum: - This role grants all write permission to manage an API product and to administer plugins. required: - name - description plugins_admin: type: object additionalProperties: false properties: name: type: string enum: - Plugins Admin description: type: string example: This role grants full write permission to administer plugins. enum: - This role grants full write permission to administer plugins. required: - name - description publisher: type: object additionalProperties: false properties: name: type: string enum: - Publisher description: type: string example: This role grants permission to publish an API product to one or more portals. enum: - This role grants permission to publish an API product to one or more portals. required: - name - description viewer: type: object additionalProperties: false properties: name: type: string enum: - Viewer description: type: string example: Viewer has read-only access to an API product and its sub-entities. enum: - Viewer has read-only access to an API product and its sub-entities. required: - name - description required: - name - roles audit_logs: type: object additionalProperties: false properties: name: type: string enum: - Audit Logs roles: type: object properties: admin: type: object additionalProperties: false properties: name: type: string enum: - Admin description: type: string example: This role grants full write access to the Audit log configuration. enum: - This role grants full write access to the Audit log configuration. required: - name - description required: - name - roles identity: type: object additionalProperties: false properties: name: type: string enum: - Identity roles: type: object properties: admin: type: object additionalProperties: false properties: name: type: string enum: - Admin description: type: string example: This role grants full write access to the Identity configuration. enum: - This role grants full write access to the Identity configuration. required: - name - description required: - name - roles mesh_control_planes: type: object additionalProperties: false properties: name: type: string enum: - Mesh Control Plane roles: type: object properties: admin: type: object additionalProperties: false properties: name: type: string enum: - Admin description: type: string example: This role grants full write access to the related to Mesh control planes. enum: - This role grants full write access to the related to Mesh control planes. required: - name - description connector: type: object additionalProperties: false properties: name: type: string enum: - Connector description: type: string example: This role grants a mesh zone to connect to the mesh control plane in Konnect. enum: - This role grants a mesh zone to connect to the mesh control plane in Konnect. required: - name - description creator: type: object additionalProperties: false properties: name: type: string enum: - Creator description: type: string example: This role grants access to create new Mesh control planes. enum: - This role grants access to create new Mesh control planes. required: - name - description viewer: type: object additionalProperties: false properties: name: type: string enum: - Viewer description: type: string example: This role grants access to read-only permissions to Mesh control planes. enum: - This role grants access to read-only permissions to Mesh control planes. required: - name - description required: - name - roles dashboards: type: object additionalProperties: false properties: name: type: string enum: - Dashboards roles: type: object properties: admin: type: object additionalProperties: false properties: name: type: string enum: - Admin description: type: string example: 'Allows users to edit, delete, and share a Dashboard in Konnect Analytics.' enum: - 'Allows users to edit, delete, and share a Dashboard in Konnect Analytics.' required: - name - description creator: type: object additionalProperties: false properties: name: type: string enum: - Creator description: type: string example: Allows users to create a new Dashboard in Konnect Analytics. enum: - Allows users to create a new Dashboard in Konnect Analytics. required: - name - description editor: type: object additionalProperties: false properties: name: type: string enum: - Editor description: type: string example: Allows users to edit a Dashboard in Konnect Analytics. enum: - Allows users to edit a Dashboard in Konnect Analytics. required: - name - description viewer: type: object additionalProperties: false properties: name: type: string enum: - Viewer description: type: string example: Allows users to view any Dashboards content in Konnect Analytics. enum: - Allows users to view any Dashboards content in Konnect Analytics. required: - name - description required: - name - roles reports: type: object additionalProperties: false properties: name: type: string enum: - Reports roles: type: object properties: admin: type: object additionalProperties: false properties: name: type: string enum: - Admin description: type: string example: 'Allows users to edit, delete, and share a Report in Konnect Analytics.' enum: - 'Allows users to edit, delete, and share a Report in Konnect Analytics.' required: - name - description creator: type: object additionalProperties: false properties: name: type: string enum: - Creator description: type: string example: Allows users to create a new Report in Konnect Analytics. enum: - Allows users to create a new Report in Konnect Analytics. required: - name - description editor: type: object additionalProperties: false properties: name: type: string enum: - Editor description: type: string example: Allows users to edit a Report in Konnect Analytics. enum: - Allows users to edit a Report in Konnect Analytics. required: - name - description viewer: type: object additionalProperties: false properties: name: type: string enum: - Viewer description: type: string example: Allows users to view a Report in Konnect Analytics. enum: - Allows users to view a Report in Konnect Analytics. required: - name - description required: - name - roles title: Roles Response 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' 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' SystemAccountAccessTokenCollection: description: A paginated list response for a collection of system accounts access tokens. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/SystemAccountAccessToken' title: System Account Access Token Collection Reponse 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 name: description: Name of the system account access token. type: string created_at: description: Timestamp of when the system account access token was created. type: string format: date-time readOnly: true updated_at: description: Timestamp of when the system account access token was last updated. type: string format: date-time readOnly: true expires_at: description: Timestamp of when the system account access token will expire. type: string format: date-time readOnly: 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 token: description: The token of the system account access token. type: string readOnly: true x-sensitive: true x-speakeasy-param-sensitive: 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 MeOrganization: description: Me Organization content: application/json: schema: type: object properties: id: description: UUID of the organization. type: string format: uuid readOnly: true name: description: Name of the organization. type: string owner_id: description: Owner ID of the organization. type: string login_path: description: Path to organization-specific login when single sign on (SSO) is enabled. Blank otherwise. type: string created_at: description: Date the organization was created. type: string format: date-time readOnly: true updated_at: description: Date the organization was last updated. type: string format: date-time readOnly: true state: description: State of the organization type: string enum: - active - inactive - deleting - deleted x-speakeasy-unknown-values: allow retention_period_days: description: The number of days an organization spends inactive before being deleted. type: integer example: id: d99c041a-c7cf-46a2-bf3a-44bb5f75400e name: string owner_id: 1c9c3848-5897-4f2c-beed-df6f3e3adb37 created_at: '2023-01-23T17:22:52.150Z' updated_at: '2023-01-23T17:22:52.150Z' state: active retention_period_days: 90 title: Me Organization 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' IdentityProviders: description: | A collection of identity providers. This response contains a collection of identity providers, which may include both OIDC and SAML identity providers. content: application/json: schema: type: array items: $ref: '#/components/schemas/IdentityProvider' title: Identity Provider Collection Response IdPConfiguration: description: A get action response of the IdP configuration. content: application/json: schema: $ref: '#/components/schemas/IdP' PersonalAccessTokenResponse: description: Response containing details of a personal access token. content: application/json: schema: $ref: '#/components/schemas/PersonalAccessToken' PersonalAccessTokenCreateResponse: description: Response containing details of the created personal access token. content: application/json: schema: $ref: '#/components/schemas/PersonalAccessTokenCreateResponse' PersonalAccessTokenListResponse: description: A list response for a collection of personal access tokens. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PageMeta' data: type: array items: $ref: '#/components/schemas/PersonalAccessToken' additionalProperties: false required: - data responses-Unauthorized: description: Unauthorized content: application/problem+json: schema: $ref: '#/components/schemas/UnauthorizedError' Conflict: description: Conflict content: application/problem+json: schema: $ref: '#/components/schemas/ConflictError' RetrieveCloudGatewaysAvailabilityDocumentResponse: description: Response format for retrieving the cloud gateways availability JSON document. content: application/json: schema: $ref: '#/components/schemas/AvailabilityDocument' ListNetworkConfigurationReferencesResponse: description: A paginated list for a collection of configurations that reference a network. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/NetworkConfigurationReference' required: - meta - data title: ListNetworkConfigurationReferencesResponse ListConfigurationsResponse: description: A paginated list for a collection of configurations. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/ConfigurationManifest' required: - meta - data title: ListConfigurationsResponse 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' PatchPrivateDnsResponse: description: Response format for updating a Private DNS. content: application/json: schema: $ref: '#/components/schemas/PrivateDnsResponse' ListPrivateDnsResponse: description: A paginated list for a collection of Private DNS for a network. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/PrivateDnsResponse' required: - meta - data title: ListPrivateDnsResponse 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' ListTransitGatewaysResponse: description: A paginated list for a collection of transit gateways for a network. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/TransitGatewayResponse' required: - meta - data title: ListTransitGatewaysResponse 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 RetrieveProviderAccountResponse: description: Response format for retrieving a provider account. content: application/json: schema: $ref: '#/components/schemas/ProviderAccount' 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' ListCustomDomainsResponse: description: A paginated list for a collection of custom domains. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/CustomDomain' required: - meta - data title: ListGlobalCustomDomainsResponse RetrieveCustomDomainOnlineStatusResponse: description: Response format for retrieving the CNAME and SSL status of a custom domain. content: application/json: schema: $ref: '#/components/schemas/CustomDomainOnlineStatus' RetrieveResourceQuotaResponse: description: Response format for retrieving a resource quota for an organization. content: application/json: schema: $ref: '#/components/schemas/ResourceQuota' ListResourceQuotasResponse: description: A paginated list for a collection of resource quotas. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/ResourceQuota' required: - meta - data title: ListResourceQuotasResponse ListDefaultResourceQuotasResponse: description: A paginated list for a collection of default resource quotas. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/DefaultResourceQuota' required: - meta - data title: ListDefaultResourceQuotasResponse 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' ListDefaultResourceConfigurationsResponse: description: A paginated list for a collection of default resource configurations. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/DefaultResourceConfiguration' required: - meta - data title: ListDefaultResourceConfigurationsResponse ListResourceConfigurationsResponse: description: A paginated list for a collection of resource configurations. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/ResourceConfiguration' required: - meta - data title: ListResourceConfigurationsResponse RetrieveResourceConfigurationResponse: description: Response format for retrieving a resource configuration for an organization. content: application/json: schema: $ref: '#/components/schemas/ResourceConfiguration' ListAddOnsResponse: description: A paginated list for a collection of add-ons. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/AddOnResponse' required: - meta - data title: ListAddOnsResponse 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' NotificationResponse: description: View a single notification. content: application/json: schema: $ref: '#/components/schemas/Notification' NotificationListResponse: description: A paginated list response for a collection of notifications content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Notification' meta: $ref: '#/components/schemas/ListCursorMeta' additionalProperties: false required: - data - meta UserConfigurationListResponse: description: A paginated list response for all notification events and user subscriptions. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/UserConfiguration' additionalProperties: false required: - data EventSubscriptionListResponse: description: A paginated list response for all subscriptions associated with an event. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/EventSubscriptionResponse' meta: $ref: '#/components/schemas/ListCursorMeta' additionalProperties: false required: - data - meta EventSubscriptionResponse: description: Response containing specific subscription details associated with an event. content: application/json: schema: $ref: '#/components/schemas/EventSubscriptionResponse' CreateDcrProvider: description: A response containing the newly created DCR provider object. content: application/json: schema: $ref: '#/components/schemas/CreateDcrProviderResponse' GetDcrProvider: description: A response containing a single DCR provider object. Sensitive fields will be removed from the response. content: application/json: schema: $ref: '#/components/schemas/DcrProviderResponse' ListDcrProviders: description: A paginated list response for a collection of DCR providers content: application/json: schema: $ref: '#/components/schemas/ListDcrProvidersResponse' VerifyDcrProvider: description: A response containing the result of attempting to verify a DCR provider configuration. content: application/json: schema: $ref: '#/components/schemas/VerifyDcrProviderResponse' 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' ListAppAuthStrategies: description: A paginated list response for a collection of application auth strategies. content: application/json: schema: $ref: '#/components/schemas/ListAppAuthStrategiesResponse' 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 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' ListApiResponse: description: List of APIs content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/ApiResponseSchema' additionalProperties: false required: - data - meta title: ListApiResponse ApiPackageResponse: description: API Package content: application/json: schema: $ref: '#/components/schemas/ApiPackageResponseSchema' ApiPackageOperationResponse: description: API Package Operation content: application/json: schema: $ref: '#/components/schemas/ApiPackageOperationResponseSchema' ListApiPackagesResponse: description: List of API Packages content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/ApiPackageResponseSchema' additionalProperties: false required: - data - meta title: ListApiPackagesResponse ListApiPackagesOperationsResponse: description: List of API Package Operations content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/ApiPackageOperationResponseSchema' additionalProperties: false required: - data - meta title: ListApiPackageOperationsResponse ApiPackageDocumentResponse: description: API Package 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 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 ListApiPackageDocumentResponse: description: List of API Package documents content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ApiDocumentSummaryWithChildren' additionalProperties: false required: - data ListApiDocumentResponse: description: List of API documents content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ApiDocumentSummaryWithChildren' additionalProperties: false required: - data 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 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 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 ListApiSpecResponse: description: List of API specifications (OpenAPI or AsyncAPI) content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: title: API Specification Summary type: object additionalProperties: false properties: id: description: The API specification identifier. type: string format: uuid example: 7710d5c4-d902-410b-992f-18b814155b53 readOnly: true type: $ref: '#/components/schemas/ApiSpecType' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' required: - id - type - created_at - updated_at additionalProperties: false required: - data - meta title: ListApiSpecResponse 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 version: description: The version of the api. type: string example: 1.0.0 spec: type: object additionalProperties: false properties: content: 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"}}}}}}' type: string 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-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 created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - id - version - created_at - updated_at title: API Version ListApiVersionResponse: description: List of API specifications (OpenAPI or AsyncAPI) content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: title: API Version Summary type: object additionalProperties: false readOnly: true x-speakeasy-terraform-ignore: true nullable: false properties: id: description: The API version identifier. type: string format: uuid example: 7710d5c4-d902-410b-992f-18b814155b53 readOnly: 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' required: - id - version - created_at - updated_at additionalProperties: false required: - data - meta title: ListApiSpecResponse 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 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 ListApiPublicationResponse: description: Paginated list of API publications content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/ApiPublicationListItem' additionalProperties: false required: - data - meta title: ListApiPublications ListPublicationResponse: description: Paginated list of publications content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/PublicationListItem' additionalProperties: false required: - data - meta title: ListPublications ApiPackagePublicationResponse: description: An API Package publication in a portal content: application/json: schema: description: An API Package 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 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 Package 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 ListApiImplementationsResponse: description: Paginated list of API implementations content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/ApiImplementationListItem' additionalProperties: false required: - data - meta title: ListApiImplementations ListApiAttributesResponse: description: Paginated list of API attributes content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/ApiAttributeListItem' additionalProperties: false required: - data - meta title: ListApiAttributes ValidateApiSpecSuccessResponse: description: API specification (OpenAPI or AsyncAPI) validation successful content: application/json: schema: $ref: '#/components/schemas/ValidateApiSpecSuccessResponse' ApiOperationResponse: description: An API operation content: application/json: schema: $ref: '#/components/schemas/ApiOperation' ListApiOperationResponse: description: Paginated list of API operations content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/ApiOperation' additionalProperties: false required: - data - meta title: ListApiOperations ApiImageResponse: description: ApiImageResponse content: application/json: schema: $ref: '#/components/schemas/APIImage' ApiImageUnauthorized: description: ApiImageUnauthorized content: application/problem+json: schema: $ref: '#/components/schemas/UnauthorizedError' ApiImageNotFound: description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/NotFoundError' ApiImageForbidden: description: ApiImageForbidden content: application/problem+json: schema: $ref: '#/components/schemas/ForbiddenError' ApiImageConflict: description: Conflict - The image is currently being updated by another request content: application/problem+json: schema: $ref: '#/components/schemas/ConflictError' ApiPackageImageResponse: description: ApiPackageImageResponse content: application/json: schema: $ref: '#/components/schemas/APIPackageImage' ApiPackageImageUnauthorized: description: ApiPackageImageUnauthorized content: application/problem+json: schema: $ref: '#/components/schemas/UnauthorizedError' ApiPackageImageNotFound: description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/NotFoundError' ApiPackageImageForbidden: description: ApiImageForbidden content: application/problem+json: schema: $ref: '#/components/schemas/ForbiddenError' ApiPackageImageConflict: description: Conflict - The image is currently being updated by another request content: application/problem+json: schema: $ref: '#/components/schemas/ConflictError' ApiRegistrationsList: description: Paginated list of registrations for an API. content: application/json: schema: $ref: '#/components/schemas/ApiRegistrationsListResponse' UnsupportedMediaType: description: Unsupported Media Type content: application/problem+json: schema: $ref: '#/components/schemas/UnsupportedMediaTypeError' PortalIdpTeamGroupMapping: description: A team group mapping for an identity provider. content: application/json: schema: $ref: '#/components/schemas/PortalIdpTeamGroupMapping' PortalIdpTeamGroupMappingCollection: description: A paginated collection of team group mappings. content: application/json: schema: $ref: '#/components/schemas/PortalIdpTeamGroupMappingCollectionResponse' PortalTeamGroupMappingCollection: description: A paginated collection of mappings grouped by team ID. content: application/json: schema: $ref: '#/components/schemas/PortalTeamGroupMappingResponse' 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' AssignedPortalRoleCollection: description: A paginated collection of assigned roles. content: application/json: schema: $ref: '#/components/schemas/AssignedPortalRoleCollectionResponse' CreateDeveloperResponse: description: Details about the created developer in a portal. content: application/json: schema: $ref: '#/components/schemas/PortalDeveloper' GetDeveloper: description: Details about a developer in a portal. content: application/json: schema: $ref: '#/components/schemas/PortalDeveloper' UpdateDeveloper: description: Details about the developer being updated. content: application/json: schema: $ref: '#/components/schemas/PortalDeveloper' ListDevelopers: description: A paginated list of developers in a portal. content: application/json: schema: $ref: '#/components/schemas/ListDevelopersResponse' ListPortalTeams: description: A paginated list of teams in a portal. content: application/json: schema: $ref: '#/components/schemas/ListPortalTeamsResponse' ListRoles: description: A set of roles available in portals. content: application/json: schema: $ref: '#/components/schemas/ListRolesResponse' ListBasicDevelopers: description: A paginated list of basic developer information. content: application/json: schema: $ref: '#/components/schemas/ListBasicDevelopersResponse' 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 maxLength: 512 nullable: true 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 nullable: true 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 canonical_domain: description: The canonical domain of the developer portal type: string format: hostname nullable: false readOnly: 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 maxLength: 512 nullable: true 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 nullable: true 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 canonical_domain: description: The canonical domain of the developer portal type: string format: hostname nullable: false readOnly: 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 PortalAssetResponseRaw: description: 'Logo of the portal. Can be either png, jpeg or svg' content: image/jpeg: schema: $ref: '#/components/schemas/PortalImageAssetBlob' image/png: schema: $ref: '#/components/schemas/PortalImageAssetBlob' image/svg+xml: schema: $ref: '#/components/schemas/PortalImageAssetBlob' PortalCustomizationResponse: description: The current customization options for a portal. content: application/json: schema: $ref: '#/components/schemas/PortalCustomizationV3' PortalIntegrationsResponse: description: The current integration configurations for a portal. content: application/json: schema: $ref: '#/components/schemas/PortalIntegrations' DefaultContentResponse: description: Summary of created default content content: application/json: schema: $ref: '#/components/schemas/DefaultContent' PortalPage: description: Details about a page in a portal. content: application/json: schema: $ref: '#/components/schemas/PortalPageResponse' ListPortalPages: description: Tree of custom pages in a portal (nested `children`). Not paginated. content: application/json: schema: $ref: '#/components/schemas/ListPortalPagesResponse' PortalSnippet: description: Details about a snippet in a portal. content: application/json: schema: $ref: '#/components/schemas/PortalSnippetResponse' ListPortalSnippets: description: A paginated list of custom snippets in a portal. content: application/json: schema: $ref: '#/components/schemas/ListPortalSnippetsResponse' ListApplications: description: A paginated list of applications in a portal. content: application/json: schema: $ref: '#/components/schemas/ListApplicationsResponse' GetApplication: description: Details about an application in a portal. content: application/json: schema: $ref: '#/components/schemas/GetApplicationResponse' ListApplicationCredentials: description: A paginated list of credentials for an application. content: application/json: schema: $ref: '#/components/schemas/ListCredentialsResponse' ListApplicationDevelopers: description: A paginated list developers of an application. content: application/json: schema: $ref: '#/components/schemas/ListApplicationDevelopersResponse' ListApplicationRegistrations: description: A paginated list of application registrations. content: application/json: schema: $ref: '#/components/schemas/ListApplicationRegistrationsResponse' GetApplicationRegistration: description: Details about an application registration. content: application/json: schema: $ref: '#/components/schemas/GetApplicationRegistrationResponse' UpdateApplicationRegistration: description: Details about the application registration being updated. content: application/json: schema: $ref: '#/components/schemas/UpdateApplicationRegistrationResponse' 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 PortalAuditLogWebhookStatus: description: Get response for portal audit log webhook status content: application/json: schema: type: object properties: webhook_status: description: |- Current status of a webhook. `active` indicates the webhook is sending or ready to send requests. `inactive` indicates the webhook has been turned off due to failed attempts. type: string example: active enum: - active - inactive x-speakeasy-unknown-values: allow webhook_enabled: description: |- Configured status of a webhook. `enabled` indicates the client will accept requests. `disabled` indicates the client will not accept requests. type: boolean example: true last_attempt_at: description: 'The last time a request was made to the webhook, regardless of outcome.' type: string format: date-time example: '2023-03-21T09:29:14.52Z' last_response_code: description: The last response code received from the webhook. type: integer example: 401 last_response_message: description: The last message received from the webhook. Useful for debugging. type: string example: Unauthenticated PortalAuditLogReplayJob: description: Response from fetching or updating an portal audit log replay job content: application/json: schema: type: object properties: start_at: description: 'The start of a date-time range. Initial value is 0001-01-01T00:00:0Z.' type: string format: date-time example: '2017-07-21T17:32:28Z' end_at: description: 'The end of a date-time range. Initial value is 0001-01-01T00:00:0Z.' type: string format: date-time example: '2017-07-21T17:32:28Z' status: type: string enum: - unconfigured - accepted - pending - running - completed - failed readOnly: true x-speakeasy-unknown-values: allow updated_at: description: 'Timestamp when this job was last updated. Initial value is 0001-01-01T00:00:0Z.' type: string format: date-time readOnly: true PortalReplayJobBadRequest: description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' PortalWebhookBadRequest: description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' PortalReplayJobConflict: description: Conflict content: application/problem+json: schema: $ref: '#/components/schemas/ConflictError' EmailTemplate: description: Successful Retrieval for a portal email template. content: application/json: schema: $ref: '#/components/schemas/EmailTemplate' EmailTemplateVariables: description: Successful response of usable variables for use in portal email templates. content: application/json: schema: $ref: '#/components/schemas/EmailTemplateVariablesList' ListDefaultEmailTemplates: description: A list of the default email templates in a portal. This is a static list that will always be populated. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/DefaultEmailTemplate' additionalProperties: false ListEmailTemplates: description: A list of customized email templates used in a portal. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/EmailTemplate' additionalProperties: false DefaultEmailTemplate: description: Details about a default email template. content: application/json: schema: $ref: '#/components/schemas/DefaultEmailTemplate' PatchEmailTemplateResponse: description: Modifying an email template. content: application/json: schema: $ref: '#/components/schemas/EmailTemplate' PortalEmailConfigResponse: description: Portal email config. content: application/json: schema: $ref: '#/components/schemas/PortalEmailConfig' PortalSourceIPRestrictionPaginatedResponse: description: The portal's IP allow list configuration. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/CursorMetaPage' data: $ref: '#/components/schemas/IPEntries' additionalProperties: false required: - data - meta PortalSourceIPRestriction: description: The portal's IP allow list configuration. content: application/json: schema: $ref: '#/components/schemas/IPEntry' PortalIdentityProviders: description: | A collection of identity providers. This response contains a collection of identity providers, which may include both OIDC and SAML identity providers. content: application/json: schema: type: array items: $ref: '#/components/schemas/PortalIdentityProvider' title: Portal Identity Provider Collection Response PortalIdentityProvider: 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/PortalIdentityProvider' CatalogServiceResponse: description: A response containing a single service object. content: application/json: schema: $ref: '#/components/schemas/CatalogService' ListCatalogServicesResponse: description: A paginated list response for a collection of services. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/CatalogService' additionalProperties: false required: - meta - data ListCatalogIntegrationsResponse: description: A paginated list response for a collection of integrations. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/CatalogIntegration' additionalProperties: false required: - meta - data IntegrationInstanceResponse: description: A response containing a single integration instance object. content: application/json: schema: $ref: '#/components/schemas/IntegrationInstance' ListIntegrationInstancesResponse: description: A paginated list response for a collection of integration instances. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/IntegrationInstance' additionalProperties: false required: - meta - data CatalogResourceMappingResponse: description: A response containing a single catalog resource mapping. content: application/json: schema: $ref: '#/components/schemas/CatalogResourceMapping' ListCatalogResourceMappingsResponse: description: A paginated list response for a collection of catalog resource mappings. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/CatalogResourceMapping' additionalProperties: false required: - meta - data 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' ListCatalogResourcesResponse: description: A paginated list response for a collection of resources. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/CursorMeta' data: type: array items: $ref: '#/components/schemas/CatalogResource' additionalProperties: false required: - meta - data ListCatalogServiceResourcesResponse: description: A paginated list response for a collection of resources mapped to a service. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/CatalogResource' additionalProperties: false required: - meta - data CatalogResourceResponse: description: A response containing a single resource object. content: application/json: schema: $ref: '#/components/schemas/CatalogResource' ListCriteriaTemplatesResponse: description: A paginated list response for a collection of criteria templates. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/CriteriaTemplate' additionalProperties: false required: - meta - data ListScorecardTemplatesResponse: description: A paginated list response for a collection of scorecard templates. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/ScorecardTemplate' additionalProperties: false required: - meta - data ListScorecardsResponse: description: A paginated list response for a collection of scorecards. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/Scorecard' additionalProperties: false required: - meta - data ScorecardResponse: description: A response containing a single scorecard. content: application/json: schema: $ref: '#/components/schemas/ScorecardWithCriteria' ListScorecardCriteriaResponse: description: A paginated list response for a collection of criteria belonging to a scorecard. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/ScorecardCriteriaWithEvaluation' additionalProperties: false required: - meta - data ListCatalogServiceScorecardsResponse: description: A paginated list response for a collection of scorecards targeting a service. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/Scorecard' additionalProperties: false required: - meta - data CatalogServiceScorecardResponse: description: A response containing a scorecard targeting a service. content: application/json: schema: $ref: '#/components/schemas/CatalogServiceScorecard' ListScorecardServicesResponse: description: A paginated list response for a collection of services targeted by a scorecard. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/ScorecardService' additionalProperties: false required: - meta - data ListScorecardCriteriaServicesResponse: description: A paginated list response for a collection of services targeted by a scorecard criteria. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/ScorecardCriteriaService' additionalProperties: false required: - meta - data CatalogServiceApiMappingResponse: description: A response containing a single catalog service API mapping. content: application/json: schema: $ref: '#/components/schemas/CatalogServiceApiMapping' ListCatalogServiceApiMappingsResponse: description: A paginated list response for a collection of catalog service API mappings. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/CatalogServiceApiMapping' additionalProperties: false required: - meta - data EventGatewayNodeStatus: description: The status of an event gateway node. content: application/json: schema: type: object properties: config_applied_at: description: The time the node succeeds in applying the configuration. type: string format: date-time config_version: description: The version number of the configuration applied by the node. type: string example: v1.123 required: - config_applied_at - config_version ListEventGatewayNodeErrorsResponse: description: A list of errors reported by an event gateway node. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/CursorMeta' data: type: array items: $ref: '#/components/schemas/EventGatewayNodeError' additionalProperties: false required: - meta - data ListEventGatewaysResponse: description: A paginated list response for a collection of gateways. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/CursorMeta' data: type: array items: $ref: '#/components/schemas/EventGatewayInfo' additionalProperties: false required: - meta - data title: ListEventGatewaysResponse ListEventGatewayListenersResponse: description: A paginated list response for a collection of Event Gateway listeners. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/CursorMeta' data: type: array items: $ref: '#/components/schemas/EventGatewayListener' ListVirtualClustersResponse: description: A paginated list response for a collection of virtual clusters. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/CursorMeta' data: type: array items: $ref: '#/components/schemas/VirtualCluster' ListBackendClustersResponse: description: A paginated list response for a collection of backend clusters. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/CursorMeta' data: type: array items: $ref: '#/components/schemas/BackendCluster' ListSchemaRegistriesResponse: description: A paginated list response for a collection of schema registries. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/CursorMeta' data: type: array items: $ref: '#/components/schemas/SchemaRegistry' ListTLSTrustBundlesResponse: description: A paginated list response for a collection of TLS trust bundles. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/CursorMeta' data: type: array items: $ref: '#/components/schemas/TLSTrustBundle' ListEventGatewayListenerPoliciesResponse: description: A list response for a collection of policies associated with an Event Gateway listener. content: application/json: schema: type: array items: $ref: '#/components/schemas/EventGatewayListenerPolicy' ListConsumePoliciesResponse: description: | A paginated list response for a collection of consume policies associated with an Event Gateway virtual cluster. content: application/json: schema: type: array items: $ref: '#/components/schemas/EventGatewayPolicy' ListProducePoliciesResponse: description: | A paginated list response for a collection of produce policies associated with an Event Gateway virtual cluster. content: application/json: schema: type: array items: $ref: '#/components/schemas/EventGatewayPolicy' ListClusterPoliciesResponse: description: | A paginated list response for a collection of cluster-level policies associated with an Event Gateway virtual cluster. content: application/json: schema: type: array items: $ref: '#/components/schemas/EventGatewayPolicy' ListEventGatewayNodesResponse: description: A paginated list response for a collection of nodes associated with an Event Gateway. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/CursorMeta' data: type: array items: $ref: '#/components/schemas/GatewayNode' ListEventGatewayDataPlaneCertificatesResponse: description: A paginated list response for a collection of certificates associated with an Event Gateway. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/CursorMeta' data: type: array items: $ref: '#/components/schemas/EventGatewayDataPlaneCertificate' 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' ListEventGatewayStaticKeysResponse: description: A paginated list response for a collection of static keys. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/CursorMeta' data: type: array items: $ref: '#/components/schemas/EventGatewayStaticKey' EventGatewayPolicyChainResponse: description: A response containing the list of policies in order of execution. content: application/json: schema: type: object properties: policies: type: array items: $ref: '#/components/schemas/EventGatewayPolicyReference' required: - policies Gone: description: Gone content: application/problem+json: schema: $ref: '#/components/schemas/GoneError' ListAIGatewaysResponse: description: A paginated list of AI Gateways. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/AIGateway' meta: $ref: '#/components/schemas/PaginatedMeta' additionalProperties: false required: - data - meta title: ListAIGatewaysResponse CreateAIGatewayResponse: description: AI Gateway created successfully. content: application/json: schema: $ref: '#/components/schemas/AIGateway' GetAIGatewayResponse: description: A successful response returning an AI Gateway. content: application/json: schema: $ref: '#/components/schemas/AIGateway' UpdateAIGatewayResponse: description: AI Gateway updated successfully. content: application/json: schema: $ref: '#/components/schemas/AIGateway' CreateAIGatewayModelResponse: description: Model created successfully. content: application/json: schema: $ref: '#/components/schemas/AIGatewayModel' GetAIGatewayModelResponse: description: A successful response returning the AI Gateway Model. content: application/json: schema: $ref: '#/components/schemas/AIGatewayModel' UpdateAIGatewayModelResponse: description: Model updated successfully. content: application/json: schema: $ref: '#/components/schemas/AIGatewayModel' ListAIGatewayModelsResponse: description: A successful response listing AI Gateway Models. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/AIGatewayModel' meta: $ref: '#/components/schemas/CursorMeta' required: - data - meta ListAIGatewayDataPlaneCertificatesResponse: description: Example response content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/AIGatewayDataPlaneClientCertificate' meta: $ref: '#/components/schemas/CursorMeta' additionalProperties: false required: - data - meta CreateAIGatewayDataPlaneCertificateResponse: description: Response body for creating a DataPlane certificate. content: application/json: schema: $ref: '#/components/schemas/AIGatewayDataPlaneClientCertificate' GetAIGatewayDataPlaneCertificateResponse: description: Response body for retrieving a DataPlane certificate. content: application/json: schema: $ref: '#/components/schemas/AIGatewayDataPlaneClientCertificate' ListAIGatewayDataPlaneNodesResponse: description: A successful response listing AI Gateway Data Plane Nodes. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/AIGatewayDataPlaneNode' meta: $ref: '#/components/schemas/CursorMeta' required: - data - meta GetAIGatewayExpectedConfigVersionResponse: description: Response body for retrieving the expected config version of the AI Gateway. content: application/json: schema: $ref: '#/components/schemas/AIGatewayExpectedConfigVersion' GetAIGatewayDataPlaneNodeResponse: description: A successful response containing the AI Gateway Data Plane Node. content: application/json: schema: $ref: '#/components/schemas/AIGatewayDataPlaneNode' ListAIGatewayVaultsResponse: description: A paginated list of AI Gateway Vaults. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/AIGatewayVault' meta: $ref: '#/components/schemas/CursorMeta' required: - data - meta CreateAIGatewayVaultResponse: description: AI Gateway Vault created successfully. content: application/json: schema: $ref: '#/components/schemas/AIGatewayVault' GetAIGatewayVaultResponse: description: A successful response returning an AI Gateway Vault. content: application/json: schema: $ref: '#/components/schemas/AIGatewayVault' UpdateAIGatewayVaultResponse: description: Vault updated successfully. content: application/json: schema: $ref: '#/components/schemas/AIGatewayVault' CreateAIGatewayPolicyResponse: description: Policy created successfully. content: application/json: schema: $ref: '#/components/schemas/AIGatewayPolicy' GetAIGatewayPolicyResponse: description: A successful response returning the AI Gateway Policy. content: application/json: schema: $ref: '#/components/schemas/AIGatewayPolicy' UpdateAIGatewayPolicyResponse: description: Policy updated successfully. content: application/json: schema: $ref: '#/components/schemas/AIGatewayPolicy' ListAIGatewayPoliciesResponse: description: A successful response listing AI Gateway Policies. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/AIGatewayPolicy' meta: $ref: '#/components/schemas/CursorMeta' required: - data - meta ListAIGatewayMCPServersResponse: description: A paginated list of MCP Servers. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/AIGatewayMCPServer' meta: $ref: '#/components/schemas/CursorMeta' required: - data - meta CreateAIGatewayMCPServerResponse: description: MCP Server created successfully. content: application/json: schema: $ref: '#/components/schemas/AIGatewayMCPServer' GetMCPServerResponse: description: A successful response returning an MCP Server. content: application/json: schema: $ref: '#/components/schemas/AIGatewayMCPServer' UpdateAIGatewayMCPServerResponse: description: MCP Server updated successfully. content: application/json: schema: $ref: '#/components/schemas/AIGatewayMCPServer' ListAIGatewayModelProvidersResponse: description: A paginated list of AI Gateway Model Providers. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/AIGatewayModelProvider' meta: $ref: '#/components/schemas/CursorMeta' required: - data - meta ListAIGatewayAgentsResponse: description: A paginated list of AI Agents. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/AIGatewayAgent' meta: $ref: '#/components/schemas/CursorMeta' required: - data - meta CreateAIGatewayAgentResponse: description: AI Agent created successfully. content: application/json: schema: $ref: '#/components/schemas/AIGatewayAgent' GetAIGatewayAgentResponse: description: A successful response returning an AI Gateway Agent. content: application/json: schema: $ref: '#/components/schemas/AIGatewayAgent' UpdateAIGatewayAgentResponse: description: Agent updated successfully. content: application/json: schema: $ref: '#/components/schemas/AIGatewayAgent' ListAIGatewayConsumersResponse: description: A paginated list of AI Gateway Consumers. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/AIGatewayConsumer' meta: $ref: '#/components/schemas/CursorMeta' required: - data - meta CreateAIGatewayConsumerResponse: description: AI Gateway Consumer created successfully. content: application/json: schema: $ref: '#/components/schemas/AIGatewayConsumer' GetAIGatewayConsumerResponse: description: A successful response returning an AI Gateway Consumer. content: application/json: schema: $ref: '#/components/schemas/AIGatewayConsumer' UpdateAIGatewayConsumerResponse: description: Consumer updated successfully. content: application/json: schema: $ref: '#/components/schemas/AIGatewayConsumer' ListAIGatewayConsumerCredentialsResponse: description: A paginated list of AI Gateway Consumer credentials. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/AIGatewayConsumerCredential' meta: $ref: '#/components/schemas/CursorMeta' required: - data - meta CreateAIGatewayConsumerCredentialResponse: description: AI Gateway Consumer credential created successfully. content: application/json: schema: $ref: '#/components/schemas/AIGatewayConsumerCredentialWithKey' GetAIGatewayConsumerCredentialResponse: description: A successful response returning an AI Gateway Consumer credential. content: application/json: schema: $ref: '#/components/schemas/AIGatewayConsumerCredential' ListAIGatewayConsumerGroupsResponse: description: A paginated list of AI Gateway Consumer Groups. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/AIGatewayConsumerGroup' meta: $ref: '#/components/schemas/CursorMeta' required: - data - meta CreateAIGatewayConsumerGroupResponse: description: AI Gateway Consumer Group created successfully. content: application/json: schema: $ref: '#/components/schemas/AIGatewayConsumerGroup' GetAIGatewayConsumerGroupResponse: description: A successful response returning an AI Gateway Consumer Group. content: application/json: schema: $ref: '#/components/schemas/AIGatewayConsumerGroup' UpdateAIGatewayConsumerGroupResponse: description: Consumer Group updated successfully. content: application/json: schema: $ref: '#/components/schemas/AIGatewayConsumerGroup' AddAIGatewayConsumerToGroupResponse: description: Consumer added to consumer group successfully. content: application/json: schema: type: object properties: consumer: $ref: '#/components/schemas/AIGatewayConsumer' consumer_group: $ref: '#/components/schemas/AIGatewayConsumerGroup' required: - consumer - consumer_group ListAIGatewayConfigStoresResponse: description: A paginated list of AI Gateway Config Stores. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/AIGatewayConfigStore' meta: $ref: '#/components/schemas/CursorMeta' required: - data - meta CreateAIGatewayConfigStoreResponse: description: AI Gateway Config Store created successfully. content: application/json: schema: $ref: '#/components/schemas/AIGatewayConfigStore' GetAIGatewayConfigStoreResponse: description: A successful response returning an AI Gateway Config Store. content: application/json: schema: $ref: '#/components/schemas/AIGatewayConfigStore' UpdateAIGatewayConfigStoreResponse: description: Config Store updated successfully. content: application/json: schema: $ref: '#/components/schemas/AIGatewayConfigStore' ListAIGatewayConfigStoreSecretsResponse: description: A paginated list of AI Gateway Config Store Secrets. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/AIGatewayConfigStoreSecret' meta: $ref: '#/components/schemas/CursorMeta' required: - data - meta CreateAIGatewayConfigStoreSecretResponse: description: AI Gateway Config Store Secret created successfully. content: application/json: schema: $ref: '#/components/schemas/AIGatewayConfigStoreSecret' GetAIGatewayConfigStoreSecretResponse: description: A successful response returning an AI Gateway Config Store Secret. content: application/json: schema: $ref: '#/components/schemas/AIGatewayConfigStoreSecret' UpdateAIGatewayConfigStoreSecretResponse: description: Config Store Secret updated successfully. content: application/json: schema: $ref: '#/components/schemas/AIGatewayConfigStoreSecret' CreateAIGatewayModelProviderResponse: description: Model provider created successfully. content: application/json: schema: $ref: '#/components/schemas/AIGatewayModelProvider' GetAIGatewayModelProviderResponse: description: A successful response returning an AI Gateway Model Provider. content: application/json: schema: $ref: '#/components/schemas/AIGatewayModelProvider' UpdateAIGatewayModelProviderResponse: description: Model provider updated successfully. content: application/json: schema: $ref: '#/components/schemas/AIGatewayModelProvider' CreateAIGatewayIdentityProviderResponse: description: Identity Provider created successfully. content: application/json: schema: $ref: '#/components/schemas/AIGatewayIdentityProvider' GetAIGatewayIdentityProviderResponse: description: A successful response returning an AI Gateway Identity Provider. content: application/json: schema: $ref: '#/components/schemas/AIGatewayIdentityProvider' UpdateAIGatewayIdentityProviderResponse: description: Identity provider updated successfully. content: application/json: schema: $ref: '#/components/schemas/AIGatewayIdentityProvider' ListAIGatewayIdentityProvidersResponse: description: A paginated list of AI Gateway Identity Providers. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/AIGatewayIdentityProvider' meta: $ref: '#/components/schemas/CursorMeta' required: - data - meta TooManyRequests: description: Too Many Requests content: application/problem+json: schema: $ref: '#/components/schemas/TooManyRequestsError' MCPServerSignalsResponse: description: The MCP server signals response. content: application/json: schema: $ref: '#/components/schemas/MCPServerSignals' ListMCPServersCPInfoResponse: description: A response to listing MCP servers with CP info. content: application/json: schema: $ref: '#/components/schemas/ListMCPServersCPInfoResponse' MCPServerRuntimeResponse: description: A response containing the MCP server runtime configuration content: application/json: schema: $ref: '#/components/schemas/MCPServerRuntime' DataPlaneClientCertificateResponse: description: Response body for retrieving a dp-client-certificate. content: application/json: schema: type: object properties: item: $ref: '#/components/schemas/DataPlaneClientCertificate' GetExpectedConfigHashResponse: description: Response body for retrieving the expected config hash of the control plane. content: application/json: schema: type: object properties: expected_hash: description: The expected configuration hash. type: string created_at: description: Date the control plane configuration was created. type: integer updated_at: description: Date the control plane configuration was last updated. type: integer required: - expected_hash - created_at - updated_at GetExpectedConfigVersionResponse: description: Response body for retrieving the expected config version of the control plane. content: application/json: schema: type: object properties: expected_config_version: description: The expected configuration version. type: string created_at: description: Date the control plane configuration version was created. type: integer required: - expected_config_version ListDataPlaneCertificatesResponse: description: Example response content: application/json: schema: type: object properties: items: type: array items: $ref: '#/components/schemas/DataPlaneClientCertificate' page: type: object properties: total_count: type: integer list-nodes: description: Example response content: application/json: schema: type: object properties: items: type: array items: type: object properties: id: type: string version: type: string hostname: type: string last_ping: type: integer type: type: string created_at: type: integer updated_at: type: integer config_hash: type: string compatibility_status: type: object properties: state: type: string issues: type: array items: $ref: '#/components/schemas/NodeCompatibilityIssue' page: type: object properties: total_count: type: integer next: type: string list-nodes-eol: description: Example response content: application/json: schema: type: object properties: items: type: array items: type: object properties: node_id: type: string node_version: type: string message: type: string page: type: object properties: total_count: type: integer get-node: description: Example response content: application/json: schema: type: object properties: item: type: object properties: id: type: string version: type: string hostname: type: string last_ping: type: integer type: type: string created_at: type: integer updated_at: type: integer config_hash: type: string compatibility_status: type: object properties: state: type: string issues: type: array items: $ref: '#/components/schemas/NodeCompatibilityIssue' list-plugin-schemas: description: A paginated list response for a collection of custom plugin schemas. content: application/json: schema: type: object properties: items: type: array items: 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 = { } } } } }' name: description: The custom plugin name determined by the custom plugin schema. type: string example: myplugin 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 page: type: object properties: total_count: type: integer 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 properties: lua_schema: description: The custom plugin schema; `jq -Rs '.' schema.lua`. type: string example: 'return { name = \"myplugin\", fields = { { config = { type = \"record\", fields = { } } } } }' name: description: The custom plugin name determined by the custom plugin schema. type: string example: myplugin 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 ListTargets: description: A paginated list response for a collection of targets. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Target' next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' ListConfigStoresResponse: description: List of Config Stores content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/CursorMeta' data: type: array items: $ref: '#/components/schemas/ConfigStore' required: - data - meta title: ListConfigStoresResponse ListConfigStoreSecretsResponse: description: List of Config Store Secrets content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/CursorMeta' data: type: array items: $ref: '#/components/schemas/ConfigStoreSecret' required: - data - meta title: ListConfigStoreSecretsResponse 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' GetPartialSchemaResponse: description: The schema for a partial content: application/json: schema: type: object properties: fields: type: array items: additionalProperties: true type: object GetPluginSchemaResponse: description: The schema for the plugin content: application/json: schema: type: object properties: fields: type: array items: additionalProperties: true type: object HTTP401Error: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/GatewayUnauthorizedError' ValidateEntityResponse: description: Validation result of the request against a schema content: application/json: schema: type: object properties: message: type: string 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: Auth Settings - name: Invites - name: Roles - name: Team Membership - name: Teams - name: Users - name: System Accounts - name: System Accounts - Access Tokens - name: System Accounts - Roles - name: System Accounts - Team Membership - name: Me - name: Authentication - name: Impersonation Settings - name: Personal Access Tokens - 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: Cloud Gateways Resource Quotas description: | Resource Quotas define organization-level limits on the number of Cloud Gateway resources — active networks, data planes, serverless data planes, data plane groups, and provider accounts per cloud provider. Use these endpoints to view the default platform limits and any overrides applied to your organization. - name: Resource Configurations description: | Resource Configurations define organization-wide behavioral settings for Cloud Gateway resources. Use these endpoints to view platform defaults — such as the data plane group idle timeout — and any overrides applied to your organization. - name: Resource Availability description: | Resource Availability is a public, unauthenticated endpoint that describes what Kong Cloud Gateway infrastructure is available to provision. Use it to discover supported cloud providers, regions, gateway versions, and instance type details — all the building blocks you need before creating networks or configuring data plane groups. - name: Notifications description: Operations related to notifications - name: DCR Providers description: | Dynamic Client Registration Providers are configurations representing an external Identity Provider whose clients (i.e. Applications) Konnect will be authorized to manage. For instance, they will be able to perform dynamic client registration (DCR) with the provider. The DCR provider provides credentials to each DCR-enabled application in Konnect that can be used to access Product Versions that the app is registered for. - 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. The optional `principals` property controls application-principal behavior for V3 API Catalog portals and applications. It defaults to disabled when omitted. - name: API - name: API Documentation - name: API Specification - name: API Publication - name: API Image - name: API Implementation - name: API Operations - name: API Attributes - name: API Packages - name: API Package Operations - name: API Package Documentation - name: API Package Image - 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 Developers description: APIs related to Konnect Developer Portal developers. - name: Portal Teams description: APIs related to configuration of Konnect Developer Portal developer teams. - name: Portal Team Membership description: APIs related to Konnect Developer Portal developer team membership. - name: Portal Team Roles description: APIs related to Konnect Developer Portal developer team roles. - name: Portal Integrations description: APIs to configure Konnect Developer Portal integrations. - 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: Applications description: APIs related to Konnect Developer Portal Applications. - name: Application Registrations description: APIs related to Konnect Developer Portal Application Registrations. - name: Portal Emails description: APIs related to Konnect Developer Portal Emails. - name: Portals IP Allow List description: APIs related to Konnect Portal IP Allow List. - 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: Catalog Integrations description: | Integrations are applications, either Konnect-internal or external, which extend the functionality of the Service Catalog. Install and authorize an integration to discover the resources across your organization which support your services. Map relevant resources to your services to provide a rich view of cataloged services. 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 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: Catalog Resources description: | Resources are entities discovered from integration instances and are intended to be mapped to the relevant services in the catalog. Once a resource has been mapped to a service, a rich view of this resource will be displayed when viewing your service. Any resources which you would like to ignore and hide can be archived. Note that archiving a resource will **remove** any mappings it has to services in the catalog. You can create Resources using only the properties required to identify the resource in the third-party system. Additional data will be hydrated if the integration that the Resource is linked to has been provided with authentication credentials. Resources which have not yet been hydrated may still be mapped to a Catalog Service. - name: Catalog Resource Mappings description: | Resource mappings represent the link between a resource and a service. Once a resource is mapped to a service, a rich view of the resource will be presented on the service page. A resource may be mapped to multiple services, but it cannot be mapped to the same service twice. If a resource mapped to a service is later archived, the resource mapping will be deleted. - name: Catalog Service Resources description: | Represents all the resources mapped to a specific service. - name: Catalog Resource Services description: | Represents all the services mapped to a specific resource. - name: Criteria Templates description: | Several criteria templates are provided to help ensure your services adhere to industry best practices. A criteria template is a collection of criteria grouped together to target various categories. Criteria may require a specific type of integration be installed and authorized. For example, criteria which evaluates the operation performance across incident management may require a integration related to incident management to be installed and authorized. Learn more about scorecards by visiting our [documentation](https://developer.konghq.com/service-catalog/scorecards/). - name: Scorecards description: | A scorecard helps you evaluate services based on its criteria. Scorecards help you detect issues, like whether there are services in the catalog that don't have an on-call engineer assigned, or if you have GitHub repositories with stale pull requests that aren't getting reviewed or closed. From the scorecard, you can view details on either a per-service or per-criteria basis. Learn more about scorecards by visiting our [documentation](https://developer.konghq.com/service-catalog/scorecards/). - name: Catalog Service API Mappings description: | Service API mappings represent the link between Service and API entities. Once an API is mapped to a Service, a rich view of the linked APIs will be presented on the APIs tab of the Catalog Service. Similarly, Services mapped to an API will be listed on the API overview page under Catalog. An API may be mapped to multiple services, but it cannot be mapped to the same service twice. If a mapped API is unlinked from a Service, the mapping will be deleted. - 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: Event Gateway Nodes - name: OpenMeter Defaults description: Organization-level default configuration. - name: OpenMeter Product Catalog description: 'Product catalog manages plans, add-ons, and their associations for subscription-based billing.' - name: OpenMeter LLM Cost description: LLM cost database providing normalized pricing data for language models across providers. Prices are synced from multiple external sources and auto-confirmed when they agree. - name: OpenMeter Features description: 'Features represent product capabilities backed by meters, with optional per-unit cost configuration.' - name: OpenMeter Tax description: Tax codes are used to calculate taxes for customers. - name: OpenMeter Billing Settings description: Billing settings manages the billing profiles and invoices for customers. - name: OpenMeter Apps description: 'Apps enable you to extend and customize billing and usage workflows by integrating with external systems and services. Apps can automate and enhance your billing ecosystem by supporting capabilities such as synchronizing usage data with third-party platforms, calculating taxes, generating and delivering invoices, handling payment collection, and other billing-related tasks.' - name: OpenMeter Entitlements description: Entitlements are used to control access to features for customers. - name: OpenMeter Subscriptions description: Subscriptions are used to track usage of your product or service. Subscriptions can be individuals or organizations that can subscribe to plans and have access to features. - name: OpenMeter Customers description: Customers are used to track usage of your product or service. Customers can be individuals or organizations that can subscribe to plans and have access to features. - name: Metering Events description: 'Metering events are used to track usage of your product or service. Events are processed asynchronously by the meters, so they may not be immediately available for querying.' - name: Meters description: 'Meters specify how to aggregate events for billing and analytics purposes. Meters can be configured with multiple aggregation methods and groupings. Multiple meters can be created for the same event type, enabling flexible metering scenarios.' - name: AI Gateways description: API related to the management of Konnect AI Gateway resources. - name: AI Gateway DataPlane Certificates description: API related to the management of AI Gateway DataPlane Certificates. - name: AI Gateway Nodes description: API related to the management of AI Gateway nodes. - name: AI Gateway Config Stores description: API related to the management of AI Gateway Config Stores. - name: AI Gateway Vaults description: API related to the management of AI Gateway vaults for storing secrets. - name: AI Gateway Agents description: AI Agents registered with the AI Gateway. - name: AI Gateway Consumers description: Individual consumers with credentials and group memberships for AI Gateway access control. - name: AI Gateway Consumer Groups description: Consumer groups for applying rate-limiting and access policies to AI Gateway traffic. - name: AI Gateway Identity Providers description: Identity providers for authenticating users and accessing AI Gateway resources. - name: AI Gateway Models description: 'Models that define routing, capabilities, and backend targets for the AI Gateway.' - name: AI Gateway Policies description: 'Policies that control security, rate-limiting, and guardrail behavior for the AI Gateway.' - name: AI Gateway MCP Servers description: MCP Servers that expose tools for AI Gateway integrations. - name: AI Gateway Model Providers description: Model providers that define the backend AI service connections for the AI Gateway. - name: MCP Servers - name: MCP Server Runtime - name: Dashboards - description: DP Nodes name: DP Nodes - 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 - 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: Degraphql_routes - 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 - name: Partial Links - 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 - name: Schemas - 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-input-schemas: - title: Konnect AI Gateway version: 0.5.1 path: src/konnect/definitions/ai-gateways/v1/openapi.yaml - title: Konnect Analytics Dashboards version: 2.0.1 path: src/konnect/definitions/analytics-dashboards/v2/openapi.yaml - title: Konnect API Catalog version: 3.3.0 path: src/konnect/definitions/api-builder/v3/openapi.yaml - title: Konnect Application Auth Strategies version: 2.1.0 path: src/konnect/definitions/application-auth-strategies/v2/openapi.yaml - title: Konnect Cloud Gateways version: 2.0.2 path: src/konnect/definitions/cloud-gateways/v2/openapi.yaml - title: Konnect Control Planes Configuration version: 3.15.0 path: src/konnect/definitions/control-planes-config/v2/openapi.yaml - title: Konnect Control Planes version: 2.0.3 path: src/konnect/definitions/control-planes/v2/openapi.yaml - title: Konnect Control Planes Configuration for Event Gateways version: 1.2.0 path: src/konnect/definitions/houdini-event-gateways/v1/openapi.yaml - title: Konnect Identity version: 3.4.0 path: src/konnect/definitions/identity/v3/openapi.yaml - title: Konnect MCP Servers version: 1.21.0 path: src/konnect/definitions/mcp-servers/v1/openapi.yaml - title: Konnect Metering & Billing version: 1.1.0 path: src/konnect/definitions/metering-and-billing/v3/openapi.yaml - title: Konnect Notification Hub version: 1.0.1 path: src/konnect/definitions/notification-hub/v1/openapi.yaml - title: Portal Management V3 version: 3.9.4 path: src/konnect/definitions/portal-management/v3/openapi.yaml - title: Konnect Service Catalog version: 1.3.2 path: src/konnect/definitions/service-catalog/v1/openapi.yaml