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 Workspaces 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: 'The workspace object describes the workspace entity, which has an ID and a name.
Workspaces provide a way to segment Kong Gateway entities. Entities in a workspace are isolated from those in other workspaces.
'
name: Workspaces
paths:
/workspaces:
post:
x-speakeasy-entity-operation:
terraform-datasource: null
terraform-resource: Workspace#create
operationId: create-workspace
summary: Create a new Workspace
description: Create a new Workspace
requestBody:
description: Description of the new Workspace for creation
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Workspace'
responses:
'201':
description: Successfully created Workspace
content:
application/json:
schema:
$ref: '#/components/schemas/Workspace'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Workspaces
/workspaces/{WorkspaceIdOrName}:
parameters:
- $ref: '#/components/parameters/WorkspaceIdOrName'
delete:
x-speakeasy-entity-operation:
terraform-datasource: null
terraform-resource: Workspace#delete
operationId: delete-workspace
summary: Delete a Workspace
description: Delete a Workspace
parameters:
- $ref: '#/components/parameters/WorkspaceIdOrName'
responses:
'204':
description: Successfully deleted Workspace or the resource didn't exist
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Workspaces
get:
x-speakeasy-entity-operation:
terraform-datasource: null
terraform-resource: Workspace#read
operationId: get-workspace
summary: Get a Workspace
description: Get a Workspace using ID or name.
responses:
'200':
description: Successfully fetched Workspace
content:
application/json:
schema:
$ref: '#/components/schemas/Workspace'
'401':
$ref: '#/components/responses/HTTP401Error'
'404':
description: Resource does not exist
tags:
- Workspaces
put:
x-speakeasy-entity-operation:
terraform-datasource: null
terraform-resource: Workspace#update
operationId: upsert-workspace
summary: Upsert a Workspace
description: Create or Update Workspace using ID or name.
requestBody:
description: Description of the Workspace
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Workspace'
responses:
'200':
description: Successfully upserted Workspace
content:
application/json:
schema:
$ref: '#/components/schemas/Workspace'
'401':
$ref: '#/components/responses/HTTP401Error'
tags:
- Workspaces
components:
schemas:
GatewayUnauthorizedError:
type: object
properties:
message:
type: string
status:
type: integer
required:
- message
- status
Workspace:
x-speakeasy-entity: Workspace
type: object
properties:
comment:
description: A description or additional information about the workspace.
type: string
nullable: true
config:
type: object
nullable: true
properties:
meta:
type: object
additionalProperties:
type: string
portal:
type: boolean
default: false
portal_access_request_email:
type: boolean
portal_application_request_email:
type: boolean
portal_application_status_email:
type: boolean
portal_approved_email:
type: boolean
portal_auth:
type: string
portal_auth_conf:
type: string
portal_auto_approve:
type: boolean
portal_cors_origins:
type: array
items:
type: string
portal_developer_meta_fields:
type: string
default: '[{"label":"Full Name","title":"full_name","validator":{"required":true,"type":"string"}}]'
portal_emails_from:
type: string
portal_emails_reply_to:
type: string
portal_invite_email:
type: boolean
portal_is_legacy:
type: boolean
portal_reset_email:
type: boolean
portal_reset_success_email:
type: boolean
portal_session_conf:
type: string
portal_smtp_admin_emails:
type: array
items:
type: string
portal_token_exp:
type: integer
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
meta:
type: object
nullable: true
properties:
color:
type: string
thumbnail:
type: string
name:
description: A unique string representing a UTF-8 encoded name.
type: string
minLength: 1
updated_at:
description: Unix epoch when the resource was last updated.
type: integer
nullable: true
example:
comment: Example workspace comment
config:
meta: {}
portal: false
portal_access_request_email: true
portal_application_request_email: true
portal_application_status_email: true
portal_approved_email: true
portal_auth: basic
portal_auth_conf: some-auth-config
portal_auto_approve: true
portal_cors_origins:
- https://example.com
- https://another-origin.com
portal_developer_meta_fields: '[{"label":"Full Name","title":"full_name","validator":{"required":true,"type":"string"}}]'
portal_emails_from: admin@example.com
portal_emails_reply_to: support@example.com
portal_invite_email: true
portal_is_legacy: false
portal_reset_email: true
portal_reset_success_email: true
portal_session_conf: some-session-config
portal_smtp_admin_emails:
- admin@example.com
- dev@example.com
portal_token_exp: 3600
created_at: 1706598432
id: b58c7d9d-e54f-444c-b24d-cdfc4159f61e
meta:
color: '#ffcc00'
thumbnail: https://example.com/image.png
name: example-workspace
additionalProperties: false
required:
- name
parameters:
WorkspaceIdOrName:
description: ID or name of the Workspace to lookup
example: ''
in: path
name: WorkspaceIdOrName
required: true
schema:
type: string
x-speakeasy-match: id
responses:
HTTP401Error:
description: Unauthorized
content:
application/json:
examples:
DuplicateApiKey:
summary: Duplicate API key found
value:
message: Duplicate API key found
status: 401
InvalidAuthCred:
summary: Invalid authentication credentials
value:
message: Unauthorized
status: 401
NoAPIKey:
summary: No API key found
value:
message: No API key found in request
status: 401
schema:
$ref: '#/components/schemas/GatewayUnauthorizedError'
securitySchemes:
adminToken:
in: header
name: Kong-Admin-Token
type: apiKey
externalDocs:
description: Documentation for Kong Gateway and its APIs
url: https://developer.konghq.com