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: Kong Enterprise Admin ACLs Vaults API
version: 3.14.0
servers:
- description: Default Admin API URL
url: '{protocol}://{hostname}:{port}{path}'
variables:
hostname:
default: localhost
description: Hostname for Kong's Admin API
path:
default: /
description: Base path for Kong's Admin API
port:
default: '8001'
description: Port for Kong's Admin API
protocol:
default: http
description: Protocol for requests to Kong's Admin API
enum:
- http
- https
security:
- adminToken: []
tags:
- 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
paths:
/{workspace}/vaults:
post:
x-speakeasy-entity-operation:
terraform-datasource: null
terraform-resource: Vault#create
operationId: create-vault
summary: Create a new Vault
description: Create a new Vault
parameters:
- $ref: '#/components/parameters/Workspace'
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
/{workspace}/vaults/{VaultIdOrPrefix}:
parameters:
- $ref: '#/components/parameters/VaultIdOrPrefix'
delete:
x-speakeasy-entity-operation:
terraform-datasource: null
terraform-resource: Vault#delete
operationId: delete-vault
summary: Delete a Vault
description: Delete a Vault
parameters:
- $ref: '#/components/parameters/VaultIdOrPrefix'
- $ref: '#/components/parameters/Workspace'
responses:
'204':
description: Successfully deleted Vault or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Vaults
get:
x-speakeasy-entity-operation:
terraform-datasource: null
terraform-resource: Vault#read
operationId: get-vault
summary: Get a Vault
description: Get a Vault using ID or prefix.
parameters:
- $ref: '#/components/parameters/Workspace'
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
put:
x-speakeasy-entity-operation:
terraform-datasource: null
terraform-resource: Vault#update
operationId: upsert-vault
summary: Upsert a Vault
description: Create or Update Vault using ID or prefix.
parameters:
- $ref: '#/components/parameters/Workspace'
requestBody:
description: Description of the Vault
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Vault'
responses:
'200':
description: Successfully upserted Vault
content:
application/json:
schema:
$ref: '#/components/schemas/Vault'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Vaults
/v2/control-planes/{controlPlaneId}/core-entities/vaults:
parameters:
- $ref: '#/components/parameters/controlPlaneId'
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_2'
next:
$ref: '#/components/schemas/PaginationNextResponse'
offset:
$ref: '#/components/schemas/PaginationOffsetResponse'
'401':
$ref: '#/components/responses/HTTP401Error_2'
tags:
- Vaults
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_2'
responses:
'201':
description: Successfully created Vault
content:
application/json:
schema:
$ref: '#/components/schemas/Vault_2'
'401':
$ref: '#/components/responses/HTTP401Error_2'
tags:
- Vaults
/v2/control-planes/{controlPlaneId}/core-entities/vaults/{VaultId}:
parameters:
- $ref: '#/components/parameters/VaultId'
- $ref: '#/components/parameters/controlPlaneId'
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_2'
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_2'
'401':
$ref: '#/components/responses/HTTP401Error_2'
'404':
description: Resource does not exist
tags:
- Vaults
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_2'
responses:
'200':
description: Successfully upserted Vault
content:
application/json:
schema:
$ref: '#/components/schemas/Vault_2'
'401':
$ref: '#/components/responses/HTTP401Error_2'
tags:
- Vaults
components:
responses:
HTTP401Error_2:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/GatewayUnauthorizedError'
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'
parameters:
PaginationSize:
description: Number of resources to be returned.
in: query
name: size
schema:
type: integer
default: 100
maximum: 1000
minimum: 1
Workspace:
description: The name of the workspace
in: path
name: workspace
required: true
schema:
type: string
example: team-payments
default: default
VaultId:
description: ID of the Vault to lookup
example: 9d4d6d19-77c6-428e-a965-9bc9647633e9
in: path
name: VaultId
required: true
schema:
type: string
PaginationOffset:
allowEmptyValue: true
description: Offset from which to return the next set of resources. Use the value of the 'offset' field from the response of a list operation as input here to paginate through all the resources
in: query
name: offset
schema:
type: string
VaultIdOrPrefix:
description: ID or prefix of the Vault to lookup
example: 9d4d6d19-77c6-428e-a965-9bc9647633e9
in: path
name: VaultIdOrPrefix
required: true
schema:
type: string
x-speakeasy-match: id
controlPlaneId:
name: controlPlaneId
in: path
required: true
schema:
type: string
format: uuid
example: 9524ec7d-36d9-465d-a8c5-83a3c9390458
description: The UUID of your control plane. This variable is available in the Konnect manager.
x-speakeasy-param-force-new: true
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
schemas:
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
GatewayUnauthorizedError:
type: object
properties:
message:
type: string
status:
type: integer
required:
- message
- status
PaginationNextResponse:
description: URI to the next page (may be null)
type: string
Vault:
x-speakeasy-entity: Vault
description: Vault entities are used to configure different Vault connectors. Examples of Vaults are Environment Variables, Hashicorp Vault and AWS Secrets Manager. Configuring a Vault allows referencing the secrets with other entities. For example a certificate entity can store a reference to a certificate and key, stored in a vault, instead of storing the certificate and key within the entity. This allows a proper separation of secrets and configuration and prevents secret sprawl.
type: object
properties:
config:
description: The configuration properties for the Vault which can be found on the vaults' documentation page.
type: object
additionalProperties: true
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
Vault_2:
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
securitySchemes:
adminToken:
in: header
name: Kong-Admin-Token
type: apiKey
externalDocs:
description: Documentation for Kong Gateway and its APIs
url: https://developer.konghq.com