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 API Package Documentation 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: - name: API Package Documentation paths: /v3/api-packages/{packageId}/documents: parameters: - name: packageId in: path description: The UUID API Package identifier required: true schema: type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 x-speakeasy-match: id post: operationId: create-api-package-document summary: Create API Package Document description: 'Publish a new document attached to an API Package. All configuration options may be provided in the frontmatter section of `content`. If you set values in both the `POST` request _and_ in the frontmatter, the values in the `POST` request will take precedence. ' requestBody: $ref: '#/components/requestBodies/CreateApiDocumentRequest' responses: '201': $ref: '#/components/responses/ApiPackageDocumentResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' '409': $ref: '#/components/responses/ApiSlugConflict' '415': $ref: '#/components/responses/UnsupportedMediaType' tags: - API Package Documentation get: operationId: list-api-package-documents summary: List API Package Documents description: Returns a collection of all documents for an API package. parameters: - $ref: '#/components/parameters/ApiDocumentFilters' responses: '200': $ref: '#/components/responses/ListApiPackageDocumentResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Package Documentation /v3/api-packages/{packageId}/documents/{documentId}: parameters: - name: packageId in: path description: The UUID API Package identifier required: true schema: type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 x-speakeasy-match: id - $ref: '#/components/parameters/DocumentId' get: operationId: fetch-api-package-document summary: Get an API Package Document description: Returns a document for the API Package. responses: '200': $ref: '#/components/responses/ApiPackageDocumentResponse' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Package Documentation patch: operationId: update-api-package-document summary: Update API Package Document description: Updates a document for an API Package. requestBody: $ref: '#/components/requestBodies/UpdateApiDocumentRequest' responses: '200': $ref: '#/components/responses/ApiPackageDocumentResponse' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' '409': $ref: '#/components/responses/ApiSlugConflict' '415': $ref: '#/components/responses/UnsupportedMediaType' tags: - API Package Documentation delete: operationId: delete-api-package-document summary: Delete API Package Documentation description: Removes a document from an API Package. responses: '204': description: Document for the API was deleted successfully. '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Package Documentation /v3/api-packages/{packageId}/documents/{documentId}/move: parameters: - name: packageId in: path description: The UUID API Package identifier required: true schema: type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 x-speakeasy-match: id - $ref: '#/components/parameters/DocumentId' post: operationId: move-api-package-document summary: Move API Package Documentation description: 'This api allows the user to move a document within the document tree using the parameters parent_document_id and index. If parent_document_id is not provided, the document will be placed at the top level of the document tree. index represents a zero-indexed document order relative to its siblings under the same parent. For example, if we want to put the document at top level in first position we would send parent_document_id: null and index: 0. This api also supports using a negative index to count backwards from the end of the document list, which means you can put the document in last position by using index: -1.' requestBody: $ref: '#/components/requestBodies/MoveDocumentRequest' responses: '204': description: Document for the API Package was moved successfully. '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' '409': $ref: '#/components/responses/Conflict' tags: - API Package Documentation components: schemas: InvalidParameterMinimumLength: type: object properties: field: type: string example: name readOnly: true rule: description: invalid parameters rules type: string enum: - min_length - min_digits - min_lowercase - min_uppercase - min_symbols - min_items - min nullable: false readOnly: true x-speakeasy-unknown-values: allow minimum: type: integer example: 8 source: type: string example: body reason: type: string example: must have at least 8 characters readOnly: true additionalProperties: false required: - field - reason - rule - minimum ApiDocumentFilterParameters: type: object properties: status: $ref: '#/components/schemas/StringFieldFilter' title: API Document Filter Parameters UpdatedAt: description: An ISO-8601 timestamp representation of entity update date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true ConflictError: allOf: - $ref: '#/components/schemas/BaseError' - type: object properties: status: example: 409 title: example: Conflict type: example: https://httpstatuses.com/409 instance: example: kong:trace:1234567890 detail: example: Conflict InvalidParameterChoiceItem: type: object properties: field: type: string example: name readOnly: true rule: description: invalid parameters rules type: string enum: - enum nullable: false readOnly: true reason: type: string example: is a required field readOnly: true choices: type: array items: {} minItems: 1 nullable: false readOnly: true uniqueItems: true source: type: string example: body additionalProperties: false required: - field - reason - rule - choices InvalidParameterMaximumLength: type: object properties: field: type: string example: name readOnly: true rule: description: invalid parameters rules type: string enum: - max_length - max_items - max nullable: false readOnly: true x-speakeasy-unknown-values: allow maximum: type: integer example: 8 source: type: string example: body reason: type: string example: must not have more than 8 characters readOnly: true additionalProperties: false required: - field - reason - rule - maximum ApiDocumentStatus: description: If `status=published` the document will be visible in your live portal type: string default: unpublished enum: - published - unpublished x-speakeasy-unknown-values: allow ApiDocument: type: object properties: id: $ref: '#/components/schemas/ApiDocumentId' content: $ref: '#/components/schemas/ApiDocumentContent' title: $ref: '#/components/schemas/ApiDocumentTitle' slug: $ref: '#/components/schemas/ApiDocumentSlug' status: $ref: '#/components/schemas/ApiDocumentStatus' parent_document_id: $ref: '#/components/schemas/ApiDocumentParentDocumentId' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false title: API Document ApiDocumentSummaryWithChildren: type: object properties: id: $ref: '#/components/schemas/ApiDocumentId' title: $ref: '#/components/schemas/ApiDocumentTitle' slug: $ref: '#/components/schemas/ApiDocumentSlug' status: $ref: '#/components/schemas/ApiDocumentStatus' parent_document_id: $ref: '#/components/schemas/ApiDocumentParentDocumentId' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' children: type: array items: $ref: '#/components/schemas/ApiDocumentSummaryWithChildren' additionalProperties: false required: - id - title - slug - status - parent_document_id - created_at - updated_at - children title: API Document Summary UnauthorizedError: allOf: - $ref: '#/components/schemas/BaseError' - type: object properties: status: example: 401 title: example: Unauthorized type: example: https://httpstatuses.com/401 instance: example: kong:trace:1234567890 detail: example: Invalid credentials ForbiddenError: allOf: - $ref: '#/components/schemas/BaseError' - type: object properties: status: example: 403 title: example: Forbidden type: example: https://httpstatuses.com/403 instance: example: kong:trace:1234567890 detail: example: Forbidden StringFieldFilter: description: 'Filter using **one** of the following operators: `eq`, `oeq`, `neq`, `contains`, `ocontains`' type: object properties: eq: description: The field exactly matches the provided value. type: string contains: description: The field contains the provided value. type: string ocontains: description: The field contains any of the provided values. type: string oeq: description: The field matches any of the provided values. type: string neq: description: The field does not match the provided value. type: string additionalProperties: false CreatedAt: description: An ISO-8601 timestamp representation of entity creation date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true BaseError: description: standard error type: object properties: status: description: 'The HTTP status code of the error. Useful when passing the response body to child properties in a frontend UI. Must be returned as an integer. ' type: integer readOnly: true title: description: 'A short, human-readable summary of the problem. It should not change between occurences of a problem, except for localization. Should be provided as "Sentence case" for direct use in the UI. ' type: string readOnly: true type: description: The error type. type: string readOnly: true instance: description: 'Used to return the correlation ID back to the user, in the format kong:trace:. This helps us find the relevant logs when a customer reports an issue. ' type: string readOnly: true detail: description: 'A human readable explanation specific to this occurence of the problem. This field may contain request/entity data to help the user understand what went wrong. Enclose variable values in square brackets. Should be provided as "Sentence case" for direct use in the UI. ' type: string readOnly: true required: - status - title - instance - detail title: Error InvalidParameterDependentItem: type: object properties: field: type: string example: name readOnly: true rule: description: invalid parameters rules type: string enum: - dependent_fields nullable: true readOnly: true reason: type: string example: is a required field readOnly: true dependents: type: array items: {} nullable: true readOnly: true uniqueItems: true source: type: string example: body additionalProperties: false required: - field - rule - reason - dependents ApiDocumentContent: description: Raw markdown content to display in your Portal type: string title: API Document Content InvalidRules: description: invalid parameters rules type: string enum: - required - is_array - is_base64 - is_boolean - is_date_time - is_integer - is_null - is_number - is_object - is_string - is_uuid - is_fqdn - is_arn - unknown_property - missing_reference - is_label - matches_regex - invalid - is_supported_network_availability_zone_list - is_supported_network_cidr_block - is_supported_provider_region - type nullable: true readOnly: true x-speakeasy-unknown-values: allow MoveDocumentRequestPayload: description: move document request payload type: object properties: parent_document_id: description: parent document id type: string format: uuid example: dd4e1b98-3629-4dd3-acc0-759a726ffee2 index: description: index of the document in the parent document's children type: integer example: 1 title: Move document InvalidParameters: description: invalid parameters type: array items: oneOf: - $ref: '#/components/schemas/InvalidParameterStandard' - $ref: '#/components/schemas/InvalidParameterMinimumLength' - $ref: '#/components/schemas/InvalidParameterMaximumLength' - $ref: '#/components/schemas/InvalidParameterChoiceItem' - $ref: '#/components/schemas/InvalidParameterDependentItem' minItems: 1 nullable: false uniqueItems: true BadRequestError: allOf: - $ref: '#/components/schemas/BaseError' - type: object required: - invalid_parameters properties: invalid_parameters: $ref: '#/components/schemas/InvalidParameters' ApiDocumentSlug: description: 'The `slug` is used in generated URLs to provide human readable paths. Defaults to `slugify(title)` ' type: string example: api-document pattern: ^[\w-]+$ title: API Document Slug 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 UnsupportedMediaTypeError: allOf: - $ref: '#/components/schemas/BaseError' - type: object properties: status: example: 415 title: example: UnsupportedMediaType type: example: https://httpstatuses.com/415 instance: example: kong:trace:1234567890 detail: example: UnsupportedMediaType ApiDocumentTitle: description: The title of the document. Used to populate the `` tag for the page type: string example: API Document title: API Document Title ApiDocumentParentDocumentId: description: 'API Documents may be rendered as a tree of files. Specify the `id` of another API Document as the `parent_document_id` to add some heirarchy do your documents. ' type: string format: uuid example: null nullable: true title: API Document Parent Document ID NotFoundError: allOf: - $ref: '#/components/schemas/BaseError' - type: object properties: status: example: 404 title: example: Not Found type: example: https://httpstatuses.com/404 instance: example: kong:trace:1234567890 detail: example: Not found ApiDocumentId: description: The API document identifier. type: string format: uuid example: de5c9818-be5c-42e6-b514-e3d4bc30ddeb readOnly: true title: API Document ID requestBodies: UpdateApiDocumentRequest: required: true content: application/json: schema: $ref: '#/components/schemas/ApiDocument' MoveDocumentRequest: required: true description: move document content: application/json: schema: $ref: '#/components/schemas/MoveDocumentRequestPayload' CreateApiDocumentRequest: required: true content: application/json: schema: type: object properties: id: $ref: '#/components/schemas/ApiDocumentId' content: $ref: '#/components/schemas/ApiDocumentContent' title: $ref: '#/components/schemas/ApiDocumentTitle' slug: $ref: '#/components/schemas/ApiDocumentSlug' status: $ref: '#/components/schemas/ApiDocumentStatus' parent_document_id: $ref: '#/components/schemas/ApiDocumentParentDocumentId' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - content title: API Document responses: ApiUnauthorized: description: ApiUnauthorized content: application/problem+json: schema: $ref: '#/components/schemas/UnauthorizedError' Conflict: description: Conflict content: application/problem+json: schema: $ref: '#/components/schemas/ConflictError' ApiNotFound: description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/NotFoundError' ApiForbidden: description: ApiForbidden content: application/problem+json: schema: $ref: '#/components/schemas/ForbiddenError' ListApiPackageDocumentResponse: description: List of API Package documents content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ApiDocumentSummaryWithChildren' additionalProperties: false required: - data ApiSlugConflict: description: Conflict - `slug` property must be unique content: application/problem+json: schema: type: object properties: status: type: number title: type: string type: type: string instance: type: string required: - status - title - instance ApiPackageDocumentResponse: description: API Package document content: application/json: schema: type: object properties: id: $ref: '#/components/schemas/ApiDocumentId' content: $ref: '#/components/schemas/ApiDocumentContent' title: $ref: '#/components/schemas/ApiDocumentTitle' slug: $ref: '#/components/schemas/ApiDocumentSlug' status: $ref: '#/components/schemas/ApiDocumentStatus' parent_document_id: $ref: '#/components/schemas/ApiDocumentParentDocumentId' created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' additionalProperties: false required: - id - parent_document_id - title - slug - status - content - updated_at - created_at title: API Document UnsupportedMediaType: description: Unsupported Media Type content: application/problem+json: schema: $ref: '#/components/schemas/UnsupportedMediaTypeError' parameters: DocumentId: schema: type: string format: uuid example: de5c9818-be5c-42e6-b514-e3d4bc30ddeb name: documentId description: The document identifier related to the API in: path required: true x-speakeasy-match: id ApiDocumentFilters: name: filter description: Filters API Documents in the response. required: false in: query schema: $ref: '#/components/schemas/ApiDocumentFilterParameters' style: deepObject securitySchemes: adminToken: in: header name: Kong-Admin-Token type: apiKey externalDocs: description: Documentation for Kong Gateway and its APIs url: https://developer.konghq.com