openapi: 3.1.0 info: contact: email: support@konghq.com name: Kong Inc url: 'https://konghq.com' description: |- OpenAPI 3.0 spec for Kong Gateway's Admin API. You can learn more about Kong Gateway at [developer.konghq.com](https://developer.konghq.com). Give Kong a star at the [Kong/kong](https://github.com/kong/kong) repository. license: name: Apache 2.0 url: 'https://www.apache.org/licenses/LICENSE-2.0.html' title: Konnect Control Planes Configuration version: 3.15.0 x-oas-source: kong/platform-api@9c7686a9d1631951a45739cfab8ac570b6e0d06f x-oas-source-link: 'https://github.com/Kong/platform-api/commit/9c7686a9d1631951a45739cfab8ac570b6e0d06f' servers: - url: 'https://us.api.konghq.com/v2' description: United-States Production region - url: 'https://eu.api.konghq.com/v2' description: Europe Production region - url: 'https://au.api.konghq.com/v2' description: Australia Production region - url: 'https://me.api.konghq.com/v2' description: Middle-East Production region - url: 'https://in.api.konghq.com/v2' description: India Production region - url: 'https://sg.api.konghq.com/v2' description: Singapore Production region paths: '/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' '/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' '/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: 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 '/control-planes/{controlPlaneId}/dp-client-certificates/{certificateId}': parameters: - $ref: '#/components/parameters/controlPlaneId' - $ref: '#/components/parameters/DataPlaneCertificateId' get: 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: 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: 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 '/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' '/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' '/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/PaginationSize' - $ref: '#/components/parameters/PaginationTagsFilter' 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 '/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: 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 '/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: 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: 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: 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 '/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' '/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: 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' examples: ConfigStoreNameBadRequestExample: $ref: '#/components/examples/ConfigStoreNameBadRequestExample' '401': $ref: '#/components/responses/ConfigStoreUnauthorized' '403': $ref: '#/components/responses/Forbidden' '415': $ref: '#/components/responses/UnsupportedMediaType' tags: - Config Stores '/control-planes/{controlPlaneId}/config-stores/{configStoreId}': parameters: - $ref: '#/components/parameters/controlPlaneId' - $ref: '#/components/parameters/configStoreId' get: 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: 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' examples: ConfigStoreNameBadRequestExample: $ref: '#/components/examples/ConfigStoreNameBadRequestExample' '401': $ref: '#/components/responses/ConfigStoreUnauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/ConfigStoreNotFound' '415': $ref: '#/components/responses/UnsupportedMediaType' tags: - Config Stores delete: 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' examples: DeleteConfigStoreBadRequestExample: $ref: '#/components/examples/DeleteConfigStoreBadRequestExample' '401': $ref: '#/components/responses/ConfigStoreUnauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Config Stores '/control-planes/{controlPlaneId}/config-stores/{configStoreId}/secrets': parameters: - $ref: '#/components/parameters/controlPlaneId' - $ref: '#/components/parameters/configStoreId' post: 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' examples: ConfigStoreSecretBadRequestExample: $ref: '#/components/examples/ConfigStoreSecretBadRequestExample' '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 '/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: 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: 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' examples: ConfigStoreSecretBadRequestExample: $ref: '#/components/examples/ConfigStoreSecretBadRequestExample' '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: 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 '/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' '/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' '/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' '/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' '/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 '/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 '/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 '/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 '/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 '/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 '/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 '/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 '/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: 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 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 '/control-planes/{controlPlaneId}/core-entities/consumer_groups/{ConsumerGroupId}/consumers/{ConsumerId}': 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 - $ref: '#/components/parameters/controlPlaneId' '/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 '/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 '/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 '/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 '/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 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 '/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' '/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 '/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 '/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 '/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 '/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 '/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 '/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 '/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 '/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 '/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 '/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 '/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 '/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 '/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 '/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 '/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 '/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' '/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' '/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' '/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' '/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' '/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' '/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' '/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' '/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' '/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' '/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 '/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 '/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 '/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 '/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 '/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 '/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' '/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' '/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 '/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 '/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' '/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 '/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 '/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 '/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 '/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 '/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 '/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 '/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' '/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' '/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 '/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 '/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 '/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 '/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 '/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 '/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 '/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 '/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 '/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 '/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 '/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 '/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 '/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 '/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 '/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 '/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 '/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 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 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 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 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 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 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. 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 DataPlaneCertificateId: name: certificateId in: path schema: type: string required: true Degraphql_routeId: description: ID of the Degraphql_route to lookup example: '' in: path name: Degraphql_routeId required: true schema: type: string ExpandPartials: description: Expand partials for the plugin. example: true in: query name: expand_partials schema: type: boolean 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 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 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 nodeId: schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a name: nodeId in: path required: true description: Node identifier 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 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 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 RouteId: description: ID of the Route to lookup example: a4326a41-aa12-44e3-93e4-6b6e58bfb9d7 in: path name: RouteId required: true schema: type: string 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 TargetId: description: ID of the Target to lookup example: 5a078780-5d4c-4aae-984a-bdc6f52113d8 in: path name: TargetId required: true schema: type: string 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 VaultId: description: ID of the Vault to lookup example: 9d4d6d19-77c6-428e-a965-9bc9647633e9 in: path name: VaultId required: true schema: type: string schemas: DataPlaneClientCertificate: 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 created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' CreateConfigStoreSecret: type: object properties: key: type: string maxLength: 512 minLength: 1 value: type: string maxLength: 5120 minLength: 1 writeOnly: true x-sensitive: true required: - key - value UpdateConfigStoreSecret: type: object properties: value: type: string maxLength: 5120 minLength: 1 writeOnly: true x-sensitive: true required: - value NodeError: type: object properties: name: type: string error_message: type: string config_hash: type: string code: type: integer source: type: string traceback: type: string additionalProperties: false title: A Node Error 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 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: |- 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 additionalProperties: maxLength: 63 minLength: 1 pattern: '^[a-z0-9A-Z]{1}([a-z0-9A-Z-._]*[a-z0-9A-Z]+)?$' type: string maxProperties: 5 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 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. Consider using a distinct prefix for custom plugins to avoid naming conflicts with new bundled plugins in future Kong releases. type: string schema: description: The schema for the given custom plugin. type: string tags: description: A set of strings representing tags. type: array items: description: A string representing a tag. type: string 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 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 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 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 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 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 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 enum: - embeddings x-terraform-transform-const: true 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 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 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 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 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 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 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 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 enum: - model x-terraform-transform-const: true 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 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 enum: - redis-ce x-terraform-transform-const: true 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 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 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 enum: - redis-ee x-terraform-transform-const: true 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 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 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 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 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 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 enum: - vectordb x-terraform-transform-const: true 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 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 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 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 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 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 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 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 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 x-go-type: types.IntOrString x-go-type-import: path: github.com/kong-konnect/koko-private/internal/server/public/openapi/controlplanesconfig/types name: types protocol: description: The protocol used to communicate with the upstream. type: string default: http enum: - grpc - grpcs - http - https - tcp - tls - tls_passthrough - udp - ws - wss nullable: true read_timeout: description: The timeout in milliseconds between two successive read operations for transmitting a request to the upstream server. type: integer default: 60000 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 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 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 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 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 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 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 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 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 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: type: string 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: type: string 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: 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 invalid_parameters: $ref: '#/components/schemas/InvalidParameters' required: - status - title - instance - detail - invalid_parameters title: Error UnauthorizedError: 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 example: 401 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 example: Unauthorized readOnly: true type: description: The error type. type: string example: 'https://httpstatuses.com/401' 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 example: 'kong:trace:1234567890' 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 example: Invalid credentials readOnly: true required: - status - title - instance - detail title: Error ForbiddenError: 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 example: 403 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 example: Forbidden readOnly: true type: description: The error type. type: string example: 'https://httpstatuses.com/403' 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 example: 'kong:trace:1234567890' 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 example: Forbidden readOnly: true required: - status - title - instance - detail title: Error KonnectCPLegacyUnauthorizedError: description: standard error type: object properties: message: description: | A short summary of the problem. type: string example: Unauthorized readOnly: true title: Error KonnectCPLegacyForbiddenError: description: standard error type: object properties: message: description: | A short summary of the problem. type: string example: Forbidden readOnly: true title: Error KonnectCPLegacyNotFoundError: description: standard error type: object properties: message: description: | A short summary of the problem. type: string example: Not Found readOnly: true title: Error KonnectCPLegacyBadRequestError: description: standard error type: object properties: message: description: | A short summary of the problem. type: string example: Bad Request readOnly: true title: Error KonnectCPLegacyConflictError: description: standard error type: object properties: message: description: | A short summary of the problem. type: string example: Conflict readOnly: true title: Error 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 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 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 UnsupportedMediaTypeError: 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 example: 415 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 example: UnsupportedMediaType readOnly: true type: description: The error type. type: string example: 'https://httpstatuses.com/415' 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 example: 'kong:trace:1234567890' 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 example: UnsupportedMediaType readOnly: true required: - status - title - instance - detail title: Error NotFoundError: 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 example: 404 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 example: Not Found readOnly: true type: description: The error type. type: string example: 'https://httpstatuses.com/404' 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 example: 'kong:trace:1234567890' 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 example: Not found readOnly: true required: - status - title - instance - detail title: Error examples: ConfigStoreExample: value: id: e7a4f6c0-5777-4a37-bcb9-2d37d3b362ee name: Config Store created_at: '2024-01-01T00:00:00.000Z' updated_at: '2024-01-01T00:00:00.000Z' ConfigStoreSecretExample: value: key: ConfigStoreSecretKey created_at: '2024-01-01T00:00:00.000Z' updated_at: '2024-01-01T00:00:00.000Z' CreateConfigStoreRequestExample: summary: Create Config Store Request value: name: Config Store CreateConfigStoreSecretRequestExample: summary: Create Config Store Secret Request value: key: ConfigStoreSecretKey value: ConfigStoreSecretValue ConfigStoreNameBadRequestExample: value: status: 400 title: Invalid Request instance: 'kong:trace:8405749052424858251' detail: Invalid Parameters invalid_parameters: - field: name rule: min_length minimum: 1 reason: name must be longer than or equal to 1 characters ConfigStoreSecretBadRequestExample: value: status: 400 title: Invalid Request instance: 'kong:trace:8405749052424858251' detail: Invalid Parameters invalid_parameters: - field: key rule: min_length minimum: 1 reason: name must be longer than or equal to 1 characters UpdateConfigStoreRequestExample: summary: Update Config Store Request value: name: Config Store with Updated Name UpdateConfigStoreSecretRequestExample: summary: Update Config Store Secret Request value: value: ConfigStoreSecretValue DeleteConfigStoreBadRequestExample: value: status: 400 title: Invalid Request instance: 'kong:trace:1433447772874964729' detail: Invalid Parameters invalid_parameters: - field: force rule: required reason: This Config Store has 4 secrets. These must be individually removed before deletion or the force=true query param can be used to automatically delete associated entities.” source: query UnauthorizedExample: value: status: 401 title: Unauthorized instance: 'kong:trace:8347343766220159418' detail: Unauthorized ForbiddenExample: value: status: 403 title: Forbidden instance: 'kong:trace:2723154947768991354' detail: You do not have permission to perform this action KonnectCPLegacyUnauthorizedExample: value: message: Unauthorized KonnectCPLegacyForbiddenExample: value: message: Forbidden KonnectCPLegacyNotFoundExample: value: message: Not Found KonnectCPLegacyBadRequestExample: value: message: Bad Request KonnectCPLegacyConflictExample: value: message: Conflict UnsupportedMediaTypeExample: value: status: 415 title: Unsupported Media Type instance: 'kong:trace:8347343766220159418' detail: 'This API only supports requests with `Content-Type: application/json`' NotFoundExample: value: status: 404 title: Not Found instance: 'kong:trace:6816496025408232265' detail: Not Found requestBodies: 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 examples: Sample DP Client Certificate: value: cert: "-----BEGIN CERTIFICATE-----\r\n*****\r\n-----END CERTIFICATE-----\r\n" description: Request body for creating a dp-client-certificate. create-plugin-schemas: content: application/json: schema: 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 x-examples: Example 1: lua_schema: 'return { name = \"myplugin\", fields = { { config = { type = \"record\", fields = { } } } } }' CreateConfigStoreRequest: required: true content: application/json: schema: $ref: '#/components/schemas/CreateConfigStore' examples: CreateConfigStoreRequestExample: $ref: '#/components/examples/CreateConfigStoreRequestExample' CreateConfigStoreSecretRequest: required: true content: application/json: schema: $ref: '#/components/schemas/CreateConfigStoreSecret' examples: CreateConfigStoreRequestExample: $ref: '#/components/examples/CreateConfigStoreSecretRequestExample' UpdateConfigStoreRequest: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateConfigStore' examples: UpdateConfigStoreRequestExample: $ref: '#/components/examples/UpdateConfigStoreRequestExample' UpdateConfigStoreSecretRequest: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateConfigStoreSecret' examples: UpdateConfigStoreSecretRequestExample: $ref: '#/components/examples/UpdateConfigStoreSecretRequestExample' responses: 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 config_sync: type: object properties: state: description: 'Config sync state. One of `STATE_UNSPECIFIED`, `STATE_IN_SYNC`, `STATE_PENDING`, or `STATE_RESILIENCY`.' type: string version_id: type: string resiliency: type: object properties: fallback_hash: type: string activated_at: type: integer latest_config_errors: type: array items: $ref: '#/components/schemas/NodeError' 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 config_sync: type: object properties: state: description: 'Config sync state. One of `STATE_UNSPECIFIED`, `STATE_IN_SYNC`, `STATE_PENDING`, or `STATE_RESILIENCY`.' type: string version_id: type: string resiliency: type: object properties: fallback_hash: type: string activated_at: type: integer latest_config_errors: type: array items: $ref: '#/components/schemas/NodeError' 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: 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 examples: Config Stores: value: data: - id: e7a4f6c0-5777-4a37-bcb9-2d37d3b362ee name: Config Store created_at: '2023-01-01T00:00:00.000Z' updated_at: '2023-01-01T00:00:00.000Z' meta: page: size: 1 previous: null next: '/config-stores?page[after]=dXVpZC01' 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 examples: Config Store Secrets: value: data: - key: ConfigStoreSecretKey created_at: '2023-01-01T00:00:00.000Z' updated_at: '2023-01-01T00:00:00.000Z' meta: page: size: 1 previous: null next: '/config-stores/e7a4f6c0-5777-4a37-bcb9-2d37d3b362ee/secrets?page[after]=dXVpZC01' ConfigStoreResponse: description: Config Store content: application/json: schema: $ref: '#/components/schemas/ConfigStore' examples: Create Config Store Response: $ref: '#/components/examples/ConfigStoreExample' ConfigStoreSecretResponse: description: Config Store Secret content: application/json: schema: $ref: '#/components/schemas/ConfigStoreSecret' examples: Create Config Store Secret Response: $ref: '#/components/examples/ConfigStoreSecretExample' ConfigStoreUnauthorized: description: Unauthorized content: application/problem+json: schema: $ref: '#/components/schemas/UnauthorizedError' examples: UnauthorizedExample: $ref: '#/components/examples/UnauthorizedExample' ConfigStoreSecretUnauthorized: description: Unauthorized content: application/problem+json: schema: $ref: '#/components/schemas/UnauthorizedError' examples: UnauthorizedExample: $ref: '#/components/examples/UnauthorizedExample' ConfigStoreNotFound: description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/NotFoundError' examples: NotFoundExample: $ref: '#/components/examples/NotFoundExample' ConfigStoreSecretNotFound: description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/NotFoundError' examples: NotFoundExample: $ref: '#/components/examples/NotFoundExample' 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: examples: DuplicateApiKey: summary: Duplicate API key found value: message: Duplicate API key found status: 401 InvalidAuthCred: summary: Invalid authentication credentials value: message: Unauthorized status: 401 NoAPIKey: summary: No API key found value: message: No API key found in request status: 401 schema: $ref: '#/components/schemas/GatewayUnauthorizedError' ValidateEntityResponse: description: Validation result of the request against a schema content: application/json: schema: type: object properties: message: type: string BadRequest: description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' Unauthorized: description: Unauthorized content: application/problem+json: schema: $ref: '#/components/schemas/UnauthorizedError' examples: UnauthorizedExample: $ref: '#/components/examples/UnauthorizedExample' Forbidden: description: Forbidden content: application/problem+json: schema: $ref: '#/components/schemas/ForbiddenError' examples: UnauthorizedExample: $ref: '#/components/examples/ForbiddenExample' KonnectCPLegacyUnauthorized: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/KonnectCPLegacyUnauthorizedError' examples: UnauthorizedExample: $ref: '#/components/examples/KonnectCPLegacyUnauthorizedExample' KonnectCPLegacyForbidden: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/KonnectCPLegacyForbiddenError' examples: UnauthorizedExample: $ref: '#/components/examples/KonnectCPLegacyForbiddenExample' KonnectCPLegacyNotFound: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/KonnectCPLegacyNotFoundError' examples: UnauthorizedExample: $ref: '#/components/examples/KonnectCPLegacyNotFoundExample' KonnectCPLegacyBadRequest: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/KonnectCPLegacyBadRequestError' examples: UnauthorizedExample: $ref: '#/components/examples/KonnectCPLegacyBadRequestExample' KonnectCPLegacyConflict: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/KonnectCPLegacyConflictError' examples: UnauthorizedExample: $ref: '#/components/examples/KonnectCPLegacyConflictExample' UnsupportedMediaType: description: Unsupported Media Type content: application/problem+json: schema: $ref: '#/components/schemas/UnsupportedMediaTypeError' examples: UnsupportedMediaTypeExample: $ref: '#/components/examples/UnsupportedMediaTypeExample' securitySchemes: konnectAccessToken: type: http scheme: bearer description: The Konnect access token is meant to be used by the Konnect dashboard and the decK CLI to authenticate with. personalAccessToken: type: http scheme: bearer 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. tags: - 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.

Certificates are optionally associated with SNI objects to tie a cert/key pair to one or more hostnames.

If intermediate certificates are required in addition to the main certificate, they should be concatenated together into one string. name: Certificates - description: |- 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/).

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.

The combination of routes and services, and the separation of concerns between them, offers a powerful routing mechanism with which it is possible to define fine-grained entrypoints in Kong Gateway leading to different upstream services of your infrastructure.

Depending on the protocol, one of the following attributes must be set:
- `http`: At least one of `methods`, `hosts`, `headers`, or `paths` - `https`: At least one of `methods`, `hosts`, `headers`, `paths`, or `snis` - `tcp`: At least one of `sources` or `destinations` - `tls`: at least one of `sources`, `destinations`, or `snis` - `tls_passthrough`: set `snis` - `grpc`: At least one of `hosts`, `headers`, or `paths` - `grpcs`: At least one of `hosts`, `headers`, `paths`, or `snis` - `ws`: At least one of `hosts`, `headers`, or `paths` - `wss`: At least one of `hosts`, `headers`, `paths`, or `snis`
A route can't have both `tls` and `tls_passthrough` protocols at same time.

Learn more about the router: - [Configure routes using expressions](https://developer.konghq.com/gateway/routing/expressions/) name: Routes - description: |- An SNI object represents a many-to-one mapping of hostnames to a certificate.

A certificate object can have many hostnames associated with it. When Kong Gateway receives an SSL request, it uses the SNI field in the Client Hello to look up the certificate object based on the SNI associated with the certificate. name: SNIs - 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.

The main attribute of a service is the destination URL for proxying traffic. This URL can be set as a single string or by specifying its protocol, host, port and path individually.

Services are associated to routes, and a single service can have many routes associated with it. Routes are entrypoints in Kong Gateway which define rules to match client requests. Once a route is matched, Kong Gateway proxies the request to its associated service. See the [Route documentation](https://developer.konghq.com/gateway/entities/route/) for a detailed explanation of how Kong proxies traffic.

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.

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).

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.

For example, you could store a certificate and a key in a vault, then reference them from a certificate entity. This way, the certificate and key are not stored in the entity directly and are more secure.

Secrets rotation can be managed using [TTLs](https://developer.konghq.com/gateway/entities/vault/). name: Vaults externalDocs: description: Documentation for Kong Gateway and its APIs url: 'https://developer.konghq.com' security: - konnectAccessToken: [] - personalAccessToken: []