Kong API Package Documentation API

The API Package Documentation API from Kong — 3 operation(s) for api package documentation.

OpenAPI Specification

kong-api-package-documentation-api-openapi.yml Raw ↑
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:<correlation_id>. 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 `<title>` 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