Kong Add-Ons API

The Add-Ons API from Kong — 2 operation(s) for add-ons.

OpenAPI Specification

kong-add-ons-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 Add-Ons 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: Add-Ons
paths:
  /v2/cloud-gateways/add-ons:
    post:
      x-speakeasy-entity-operation:
        terraform-resource: CloudGatewayAddon#create
      operationId: create-add-on
      summary: Create Add-On
      description: 'Creates a new add-on. Specific add-on types (e.g., managed cache)

        are defined by the sub-kind configuration.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAddOnRequest'
      responses:
        '201':
          $ref: '#/components/responses/CreateAddOnResponse'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
        '409':
          description: Conflict
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ConflictError'
      servers:
      - url: https://global.api.konghq.com/
      tags:
      - Add-Ons
      x-speakeasy-group: CloudGateways
    get:
      operationId: list-add-ons
      summary: List Add-Ons
      description: 'Returns a paginated collection of add-ons for an organization.

        '
      parameters:
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/PageNumber'
      - $ref: '#/components/parameters/AddOnsFilter'
      responses:
        '200':
          $ref: '#/components/responses/ListAddOnsResponse'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
      servers:
      - url: https://global.api.konghq.com/
      tags:
      - Add-Ons
      x-speakeasy-group: CloudGateways
  /v2/cloud-gateways/add-ons/{addOnId}:
    get:
      x-speakeasy-entity-operation:
        terraform-resource: CloudGatewayAddon#read
      operationId: get-add-on
      summary: Get Add-On
      description: Retrieves an add-on by ID.
      parameters:
      - $ref: '#/components/parameters/AddOnId'
      responses:
        '200':
          $ref: '#/components/responses/RetrieveAddOnResponse'
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
      servers:
      - url: https://global.api.konghq.com/
      tags:
      - Add-Ons
      x-speakeasy-group: CloudGateways
    delete:
      x-speakeasy-entity-operation:
        terraform-resource: CloudGatewayAddon#delete
        terraform-datasource: null
      operationId: delete-add-on
      summary: Delete Add-On
      description: 'Deletes an add-on by ID. The request will be rejected if the managed cache partial is still in use by some plugins.

        '
      parameters:
      - $ref: '#/components/parameters/AddOnId'
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
      servers:
      - url: https://global.api.konghq.com/
      tags:
      - Add-Ons
      x-speakeasy-group: CloudGateways
    patch:
      x-speakeasy-entity-operation:
        terraform-resource: CloudGatewayAddon#update
        terraform-datasource: null
      operationId: update-add-on
      summary: Update Add-On
      description: Updates the configuration of an existing add-on.
      parameters:
      - $ref: '#/components/parameters/AddOnId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAddOnRequest'
      responses:
        '200':
          $ref: '#/components/responses/UpdateAddOnResponse'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
      servers:
      - url: https://global.api.konghq.com/
      tags:
      - Add-Ons
      x-speakeasy-group: CloudGateways
components:
  schemas:
    AddOnStateFieldEqualsFilter:
      description: Filter add-on state by exact match.
      oneOf:
      - $ref: '#/components/schemas/AddOnState'
      - $ref: '#/components/schemas/AddOnStateFieldEqualsComparison'
      title: AddOnStateFieldEqualsFilter
    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
    ControlPlaneGeo:
      description: Set of control-plane geos supported for deploying cloud-gateways configurations.
      type: string
      enum:
      - us
      - eu
      - au
      - me
      - in
      - sg
      title: Control-Plane Geo
      x-speakeasy-unknown-values: allow
    ManagedCacheCapacityConfig:
      description: Configuration for managed cache capacity and performance characteristics.
      type: object
      oneOf:
      - $ref: '#/components/schemas/TieredCapacityConfig'
      title: ManagedCacheCapacityConfig
    AddOnConfigKind:
      description: Type of add-on config.
      type: string
      enum:
      - managed-cache.v0
      title: Add-On Config Kind
    UpdateAddOnRequest:
      description: Request body for updating an add-on.
      type: object
      properties:
        config:
          $ref: '#/components/schemas/UpdateAddOnConfig'
      additionalProperties: false
      required:
      - config
      title: UpdateAddOnRequest
    ControlPlaneGeoFieldEqualsFilter:
      description: Filter a control-plane geo by exact match.
      oneOf:
      - $ref: '#/components/schemas/ControlPlaneGeo'
      - type: object
        title: ControlPlaneGeoFieldEqualsComparison
        properties:
          eq:
            $ref: '#/components/schemas/ControlPlaneGeo'
        required:
        - eq
      title: ControlPlaneGeoFieldEqualsFilter
    AddOnConfigKindFieldFilter:
      description: Filter for add-on config kind field.
      oneOf:
      - $ref: '#/components/schemas/AddOnConfigKindFieldEqualsFilter'
      - $ref: '#/components/schemas/AddOnConfigKindFieldNotEqualsFilter'
      - $ref: '#/components/schemas/AddOnConfigKindFieldOrEqualityFilter'
      title: Add-On Config Kind Field Filter
    CreateManagedCacheAddOnConfig:
      description: Configuration for creating a managed cache add-on.
      type: object
      properties:
        kind:
          description: Type of add-on configuration.
          type: string
          const: managed-cache.v0
        capacity_config:
          $ref: '#/components/schemas/ManagedCacheCapacityConfig'
      additionalProperties: false
      required:
      - kind
      - capacity_config
      title: CreateManagedCacheAddOnConfig
      x-speakeasy-name-override: managed_cache
    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
    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
    UpdateManagedCacheAddOnConfig:
      description: Configuration for updating a managed cache add-on.
      type: object
      properties:
        kind:
          description: Type of add-on configuration.
          type: string
          const: managed-cache.v0
        capacity_config:
          $ref: '#/components/schemas/ManagedCacheCapacityConfig'
      additionalProperties: false
      required:
      - kind
      - capacity_config
      title: UpdateManagedCacheAddOnConfig
      x-speakeasy-name-override: managed_cache
    AddOnState:
      description: 'The current state of the add-on. Possible values:

        - `initializing` - The add-on is in the process of being initialized/updated.

        - `ready` - The add-on is fully operational.

        - `terminating` - The add-on is in the process of being deleted.

        '
      type: string
      enum:
      - initializing
      - ready
      - terminating
      readOnly: true
      title: Add-On State
      x-speakeasy-unknown-values: allow
    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
    CreateAddOnConfig:
      description: Configuration for creating different types of add-ons.
      type: object
      oneOf:
      - $ref: '#/components/schemas/CreateManagedCacheAddOnConfig'
      title: CreateAddOnConfig
    AddOnsFilterParameters:
      description: Filter parameters for add-ons list operation.
      type: object
      properties:
        name:
          $ref: '#/components/schemas/CloudGatewaysStringFieldFilterOverride'
        state:
          $ref: '#/components/schemas/AddOnStateFieldFilter'
        config.kind:
          $ref: '#/components/schemas/AddOnConfigKindFieldFilter'
        owner.control_plane_id:
          $ref: '#/components/schemas/UuidFieldFilter'
        owner.control_plane_geo:
          $ref: '#/components/schemas/ControlPlaneGeoFieldFilter'
        owner.control_plane_group_id:
          $ref: '#/components/schemas/UuidFieldFilter'
        owner.control_plane_group_geo:
          $ref: '#/components/schemas/ControlPlaneGeoFieldFilter'
      additionalProperties: false
      title: Add-Ons Filter Parameters
    AddOnName:
      description: Unique human-readable name of the add-on.
      type: string
      example: my-add-on
      maxLength: 70
      minLength: 1
      title: AddOnName
    UuidFieldFilter:
      description: 'Filter using **one** of the following operators: `eq`, `oeq`, `neq`'
      type: object
      properties:
        eq:
          description: The field exactly matches the provided value.
          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
    AddOnStateFieldOrEqualityFilter:
      description: 'Filter add-on state by determining if the value is equal to any in a set of values, where the set is a comma-delimited list.

        '
      type: object
      properties:
        oeq:
          type: string
      additionalProperties: false
      required:
      - oeq
      title: AddOnStateFieldOrEqualityFilter
    AddOnConfigKindFieldEqualsFilter:
      description: Filter add-on config kind by exact match.
      oneOf:
      - $ref: '#/components/schemas/AddOnConfigKind'
      - $ref: '#/components/schemas/AddOnConfigKindFieldEqualsComparison'
      title: Add-On Config Kind Field Equals Filter
    CloudGatewaysStringFieldFilterOverride:
      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
        neq:
          description: The field does not match the provided value.
          type: string
        oeq:
          description: The field matches any of the provided values.
          type: string
        ocontains:
          description: The field contains any of the provided values.
          type: string
      additionalProperties: false
    ManagedCacheAddOnConfigResponse:
      description: Configuration for managed cache add-on.
      type: object
      properties:
        kind:
          description: Type of add-on configuration.
          type: string
          const: managed-cache.v0
        capacity_config:
          $ref: '#/components/schemas/ManagedCacheCapacityConfig'
        data_plane_groups:
          description: List of data-plane groups where the managed cache is deployed.
          type: array
          items:
            $ref: '#/components/schemas/ManagedCacheAddOnDataPlaneGroup'
        state_metadata:
          description: 'Metadata describing the state of the managed cache add-on.

            '
          type: object
          additionalProperties: false
          properties:
            cache_config_id:
              description: Reference to cache configuration for this add-on.
              type: string
              format: uuid
              example: edaf40f9-9fb0-4ffe-bb74-4e763a6bd471
            cache_server_name:
              description: Env vault path to cache server name.
              type: string
              example: '{vault://env/ADDON_MANAGED_CACHE_SERVER_NAME}'
            cache_host:
              description: Env vault path to cache hostname.
              type: string
              example: '{vault://env/ADDON_MANAGED_CACHE_HOST}'
            cache_port:
              description: Env vault path to cache port.
              type: string
              example: '{vault://env/ADDON_MANAGED_CACHE_PORT}'
            cache_username:
              description: Env vault path to cache username.
              type: string
              example: '{vault://env/ADDON_MANAGED_CACHE_USERNAME}'
            cloud_authentication:
              description: 'Metadata describing the cloud authentication details for managed cache add-on.

                '
              type: object
              additionalProperties: false
              properties:
                auth_provider:
                  description: Env vault path to cache auth provider.
                  type: string
                  example: '{vault://env/ADDON_MANAGED_CACHE_AUTH_PROVIDER}'
                aws_cache_name:
                  description: Env vault path to aws cache name.
                  type: string
                  example: '{vault://env/ADDON_MANAGED_CACHE_AWS_CACHE_NAME}'
                aws_region:
                  description: Env vault path to aws region.
                  type: string
                  example: '{vault://env/ADDON_MANAGED_CACHE_AWS_REGION}'
                aws_assume_role_arn:
                  description: Env vault path to aws assume role arn.
                  type: string
                  example: '{vault://env/ADDON_MANAGED_CACHE_AWS_ASSUME_ROLE_ARN}'
                azure_tenant_id:
                  description: Env vault path to azure tenant id.
                  type: string
                  example: '{vault://env/ADDON_MANAGED_CACHE_AZURE_TENANT_ID}'
      additionalProperties: false
      required:
      - kind
      - capacity_config
      - data_plane_groups
      - state_metadata
      title: ManagedCacheAddOnConfigResponse
    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
    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
    TieredCapacityConfig:
      description: Capacity tiers with pre-configured size and performance characteristics.
      type: object
      properties:
        kind:
          description: Type of capacity configuration.
          type: string
          const: tiered
        tier:
          description: 'Capacity tier that determines both cache size and performance characteristics:

            - micro: ~0.5 GiB capacity

            - small: ~1 GiB capacity

            - medium: ~3 GiB capacity

            - large: ~6 GiB capacity

            - xlarge: ~12 GiB capacity

            - 2xlarge: ~25 GiB capacity

            - 4xlarge: ~52 GiB capacity

            - 8xlarge: ~100 GiB capacity

            - 12xlarge: ~150 GiB capacity

            - 16xlarge: ~200 GiB capacity

            - 24xlarge: ~300 GiB capacity

            '
          type: string
          enum:
          - micro
          - small
          - medium
          - large
          - xlarge
          - 2xlarge
          - 4xlarge
          - 8xlarge
          - 12xlarge
          - 16xlarge
          - 24xlarge
          x-speakeasy-unknown-values: allow
      example:
        kind: tiered
        tier: small
      additionalProperties: false
      required:
      - kind
      - tier
      title: TieredCapacityConfig
      x-speakeasy-name-override: Tiered
    AddOnOwner:
      description: Owner for the add-on.
      type: object
      oneOf:
      - $ref: '#/components/schemas/ControlPlaneAddOnOwner'
      - $ref: '#/components/schemas/ControlPlaneGroupAddOnOwner'
      title: AddOnOwner
    ControlPlaneAddOnOwner:
      description: Control Plane is the owner for the add-on.
      type: object
      properties:
        kind:
          description: Type of owner for the add-on.
          type: string
          const: control-plane
        control_plane_id:
          description: ID of the control-plane that owns this add-on.
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        control_plane_geo:
          $ref: '#/components/schemas/ControlPlaneGeo'
      additionalProperties: false
      required:
      - kind
      - control_plane_id
      - control_plane_geo
      title: ControlPlaneAddOnOwner
    AddOnStateFieldEqualsComparison:
      type: object
      properties:
        eq:
          $ref: '#/components/schemas/AddOnState'
      additionalProperties: false
      required:
      - eq
      title: AddOnStateFieldEqualsComparison
    AddOnConfigResponse:
      description: Configuration object for different types of add-ons.
      type: object
      oneOf:
      - $ref: '#/components/schemas/ManagedCacheAddOnConfigResponse'
      title: AddOnConfigResponse
    PaginatedMeta:
      description: returns the pagination information
      type: object
      properties:
        page:
          $ref: '#/components/schemas/PageMeta'
      required:
      - page
      title: PaginatedMeta
      x-speakeasy-terraform-ignore: true
    ProviderName:
      description: Name of cloud provider.
      type: string
      example: aws
      enum:
      - aws
      - azure
      - gcp
      title: Provider Name
      x-speakeasy-unknown-values: allow
    CreateAddOnRequest:
      description: Request schema for creating an add-on.
      type: object
      properties:
        name:
          $ref: '#/components/schemas/AddOnName'
        owner:
          $ref: '#/components/schemas/AddOnOwner'
        config:
          $ref: '#/components/schemas/CreateAddOnConfig'
      additionalProperties: false
      required:
      - name
      - owner
      - config
      title: CreateAddOnRequest
    AddOnConfigKindFieldNotEqualsFilter:
      description: Filter add-on config kind by inequality match.
      type: object
      properties:
        neq:
          $ref: '#/components/schemas/AddOnConfigKind'
      additionalProperties: false
      required:
      - neq
      title: Add-On Config Kind Field Not Equals Filter
    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
    ControlPlaneGeoFieldFilter:
      oneOf:
      - $ref: '#/components/schemas/ControlPlaneGeoFieldEqualsFilter'
      - $ref: '#/components/schemas/ControlPlaneGeoFieldNotEqualsFilter'
      - $ref: '#/components/schemas/ControlPlaneGeoFieldOrEqualityFilter'
      title: ControlPlaneGeoFieldFilter
    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
    ControlPlaneGeoFieldOrEqualityFilter:
      description: 'Filter a control-plane geo by determining if the value is equal to any in a set of values, where the set is a

        comma-delimited list.

        '
      type: object
      properties:
        oeq:
          type: string
      required:
      - oeq
      title: ControlPlaneGeoFieldOrEqualityFilter
    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'
    ManagedCacheAddOnDataPlaneGroup:
      description: Object that describes a data-plane group where managed cache add-on is deployed.
      type: object
      properties:
        id:
          description: ID of the data-plane group.
          type: string
          format: uuid
          example: 1150820b-c69f-4a2a-b9be-bbcdbc5cd618
        cloud_gateway_network_id:
          description: Network ID this data-plane group is attached to.
          type: string
          format: uuid
          example: 36ae63d3-efd1-4bec-b246-62aa5d3f5695
        provider:
          $ref: '#/components/schemas/ProviderName'
        region:
          description: Region of cloud provider the data-plane group is deployed to.
          type: string
          example: us-east-1
        state:
          description: 'The current state of the managed cache add-on in the data-plane group. Possible values:

            - `initializing` - The add-on is in the process of being initialized/updated and is setting up necessary resources for this data-plane group.

            - `ready` - The add-on is fully operational for this data-plane group.

            - `error` - The add-on is in an error state, and is not operational for this data-plane group.

            - `terminating` - The add-on is in the process of being deleted for this data-plane group.

            '
          type: string
          enum:
          - initializing
          - ready
          - error
          - terminating
          readOnly: true
          x-speakeasy-unknown-values: allow
        state_metadata:
          description: 'Metadata describing the state of the managed cache add-on in the data-plane group.

            '
          type: object
          additionalProperties: false
          properties:
            error_reason:
              description: 'Reason why the managed cache add-on may be in an error state, reported from backing infrastructure.

                '
              type: string
              example: 'Failed to create managed cache add-on due to invalid configuration.

                '
      additionalProperties: false
      required:
      - id
      - cloud_gateway_network_id
      - provider
      - region
      - state
      - state_metadata
      title: ManagedCacheAddOnDataPlaneGroup
    UpdateAddOnConfig:
      description: Configuration for updating different types of add-ons.
      type: object
      oneOf:
      - $ref: '#/components/schemas/UpdateManagedCacheAddOnConfig'
      title: UpdateAddOnConfig
    ControlPlaneGroupAddOnOwner:
      description: Control Plane Group is the owner for the add-on.
      type: object
      properties:
        kind:
          description: Type of owner for the add-on.
          type: string
          const: control-plane-group
        control_plane_group_id:
          description: ID of the control-plane group that owns this add-on.
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        control_plane_group_geo:
          $ref: '#/compon

# --- truncated at 32 KB (38 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kong/refs/heads/main/openapi/kong-add-ons-api-openapi.yml