Kong Event Gateway Virtual Cluster Policies API

Policies control how Kafka protocol traffic is modified between the client and the backend cluster. Cluster policies are transformation and validation policies that can be applied to Kafka messages.

OpenAPI Specification

kong-event-gateway-virtual-cluster-policies-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 Event Gateway Virtual Cluster Policies 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: Event Gateway Virtual Cluster Policies
  description: 'Policies control how Kafka protocol traffic is modified between the client and the backend cluster.


    Cluster policies are transformation and validation policies that can be applied to Kafka messages.

    '
paths:
  /v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/cluster-policies:
    parameters:
    - $ref: '#/components/parameters/gatewayId'
    - $ref: '#/components/parameters/virtualClusterId'
    get:
      operationId: list-event-gateway-virtual-cluster-cluster-level-policies
      summary: List Cluster Policies for Virtual Cluster
      description: Returns a list of cluster-level policies associated with the virtual cluster.
      parameters:
      - $ref: '#/components/parameters/EventGatewayPolicyListFilter'
      responses:
        '200':
          $ref: '#/components/responses/ListClusterPoliciesResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      tags:
      - Event Gateway Virtual Cluster Policies
    post:
      x-speakeasy-entity-operation:
        terraform-resource: EventGatewayVirtualClusterClusterPolicy#create
        terraform-datasource: null
      operationId: create-event-gateway-virtual-cluster-cluster-level-policy
      summary: Create Cluster Policy for Virtual Cluster
      description: Creates a new cluster-level policy associated with the specified Event Gateway virtual cluster.
      parameters:
      - $ref: '#/components/parameters/EventGatewayPolicyBefore'
      - $ref: '#/components/parameters/EventGatewayPolicyAfter'
      requestBody:
        $ref: '#/components/requestBodies/CreateEventGatewayClusterPolicyRequest'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventGatewayPolicy'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      tags:
      - Event Gateway Virtual Cluster Policies
  /v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/cluster-policies/{policyId}:
    parameters:
    - $ref: '#/components/parameters/gatewayId'
    - $ref: '#/components/parameters/virtualClusterId'
    - name: policyId
      in: path
      description: The UUID of the policy.
      required: true
      schema:
        type: string
        format: uuid
        example: 9524ec7d-36d9-465d-a8c5-83a3c9390458
      x-speakeasy-match: id
    get:
      x-speakeasy-entity-operation:
        terraform-resource: EventGatewayVirtualClusterClusterPolicy#read
        terraform-datasource: null
      operationId: get-event-gateway-virtual-cluster-cluster-level-policy
      summary: Get a Cluster Policy for Virtual Cluster
      description: Returns information about a specific cluster-level policy associated with the Event Gateway virtual cluster.
      responses:
        '200':
          description: A single cluster-level policy object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventGatewayPolicy'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - Event Gateway Virtual Cluster Policies
    put:
      x-speakeasy-entity-operation:
        terraform-resource: EventGatewayVirtualClusterClusterPolicy#update
        terraform-datasource: null
      operationId: update-event-gateway-virtual-cluster-cluster-level-policy
      summary: Update Cluster Policy for Virtual Cluster
      description: Updates an existing cluster-level policy associated with the specified Event Gateway virtual cluster.
      requestBody:
        $ref: '#/components/requestBodies/UpdateEventGatewayClusterPolicyRequest'
      responses:
        '200':
          description: Updated cluster-level policy object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventGatewayPolicy'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      tags:
      - Event Gateway Virtual Cluster Policies
    patch:
      operationId: patch-event-gateway-virtual-cluster-cluster-level-policy
      summary: Patch Cluster Policy for Virtual Cluster
      description: Partially updates an existing cluster-level policy associated with the specified Event Gateway virtual cluster.
      requestBody:
        $ref: '#/components/requestBodies/PatchEventGatewayPolicyRequest'
      responses:
        '200':
          description: Updated cluster-level policy object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventGatewayPolicy'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      tags:
      - Event Gateway Virtual Cluster Policies
    delete:
      x-speakeasy-entity-operation:
        terraform-resource: EventGatewayVirtualClusterClusterPolicy#delete
        terraform-datasource: null
      operationId: delete-event-gateway-virtual-cluster-cluster-level-policy
      summary: Delete Cluster Policy for Virtual Cluster
      description: Deletes a specific cluster-level policy associated with the Event Gateway virtual cluster.
      responses:
        '204':
          description: No Content
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - Event Gateway Virtual Cluster Policies
  /v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/cluster-policies/{policyId}/move:
    parameters:
    - $ref: '#/components/parameters/gatewayId'
    - $ref: '#/components/parameters/virtualClusterId'
    - $ref: '#/components/parameters/policyId'
    post:
      operationId: move-event-gateway-virtual-cluster-cluster-level-policy
      summary: Move Cluster Policy
      description: 'Moves the position of a specific cluster-level policy relative to the chain associated with the Event Gateway virtual

        cluster.

        If a policy is defined under a parent policy, it moves the position relative to the sibling policies under the

        same parent.

        '
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MoveEventGatewayPolicy'
      responses:
        '204':
          description: No Content
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      tags:
      - Event Gateway Virtual Cluster Policies
  /v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/cluster-policy-chain:
    parameters:
    - $ref: '#/components/parameters/gatewayId'
    - $ref: '#/components/parameters/virtualClusterId'
    get:
      operationId: get-event-gateway-virtual-cluster-cluster-level-policy-chain
      summary: Get Cluster Policy Chain for Virtual Cluster
      description: 'Get the cluster-level policy chain for a virtual cluster composed of all the ids of the cluster-level policies in order of execution.

        '
      responses:
        '200':
          $ref: '#/components/responses/EventGatewayPolicyChainResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      tags:
      - Event Gateway Virtual Cluster Policies
    put:
      operationId: update-event-gateway-virtual-cluster-cluster-level-policy-chain
      summary: Update Cluster Policy Chain
      description: Update the cluster-level policy chain for a virtual cluster by providing an ordered list of cluster-level policy ids.
      requestBody:
        $ref: '#/components/requestBodies/UpdateEventGatewayPolicyChainRequest'
      responses:
        '200':
          $ref: '#/components/responses/EventGatewayPolicyChainResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      tags:
      - Event Gateway Virtual Cluster Policies
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
    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
    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
    EventGatewayACLRuleResourceNamesStaticArray:
      description: A static list of resource name globs to match against resources when applying an ACL policy.
      type: array
      items:
        $ref: '#/components/schemas/EventGatewayACLResourceName'
      example:
      - match: orders-*
      - match: payments-*
      maxItems: 50
    EventGatewayPolicyPatch:
      description: The schema of the policy to patch it.
      properties:
        name:
          description: A unique user-defined name of the policy.
          type: string
          maxLength: 255
          minLength: 1
          nullable: true
          pattern: ^[\p{L}\p{N}][\p{L}\p{N} _\-\.']*[\p{L}\p{N}]$
        description:
          description: A human-readable description of the policy.
          type: string
          maxLength: 512
          nullable: true
        enabled:
          description: Whether the policy is enabled.
          type: boolean
        condition:
          description: A string containing the boolean expression that determines whether the policy is applied.
          type: string
          example: context.topic.name.endsWith('my_suffix')
          maxLength: 1000
          nullable: true
          x-expression:
            type: boolean
        labels:
          $ref: '#/components/schemas/Labels'
    Labels:
      description: "Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. \n\nKeys must be of length 1-63 characters, and cannot start with \"kong\", \"konnect\", \"mesh\", \"kic\", or \"_\".\n"
      type: object
      example:
        env: test
      additionalProperties:
        type: string
        pattern: ^[a-z0-9A-Z]{1}([a-z0-9A-Z-._]*[a-z0-9A-Z]+)?$
        minLength: 1
        maxLength: 63
      maxProperties: 50
      title: Labels
    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
    EventGatewayPolicyReference:
      description: The unique identifier of the policy.
      type: string
      format: uuid
    EventGatewayACLRule:
      description: A Kafka ACL rule to apply to virtual cluster traffic
      type: object
      properties:
        resource_type:
          description: This rule applies to access only for type of resource
          type: string
          enum:
          - topic
          - group
          - transactional_id
          - cluster
          x-speakeasy-unknown-values: allow
        action:
          description: How to handle the request if the rule matches
          type: string
          enum:
          - allow
          - deny
          x-speakeasy-unknown-values: allow
        operations:
          description: Types of Kafka operations to match against. Note that not every operation can apply to every resource type.
          type: array
          items:
            $ref: '#/components/schemas/EventGatewayACLOperation'
        resource_names:
          description: If any of these entries match, the resource name matches for this rule. A maximum of 50 entries are allowed.
          oneOf:
          - $ref: '#/components/schemas/EventGatewayACLRuleResourceNamesStaticArray'
          - $ref: '#/components/schemas/EventGatewayACLRuleResourceNamesDynamicArray'
      required:
      - resource_type
      - action
      - operations
      - resource_names
    EventGatewayACLOperation:
      description: An Event Gateway operation to match against in an ACL rule.
      type: object
      properties:
        name:
          type: string
          enum:
          - all
          - alter
          - alter_configs
          - create
          - delete
          - describe
          - describe_configs
          - idempotent_write
          - read
          - write
          x-speakeasy-unknown-values: allow
      required:
      - name
    EventGatewayACLRuleResourceNamesDynamicArray:
      description: 'This expression should evaluate to an array of glob patterns,

        equivalent to the `match` values in the static array form of `resource_names`.


        **Requires a minimum runtime version of `1.1`**.'
      type: string
      example: context.auth.token.claims["topics"]
      x-expression:
        type: array
        items:
          type: string
        fields:
        - name: context.auth.principal.name
          type: string
          description: Name of authenticated principal. Username in case of PLAIN/SCRAM, `sub` claim in case of OAUTHBEARER.
        - name: context.auth.type
          type: string
          description: 'The matched authentication type from a virtual cluster: anonymous, sasl_plain, sasl_scram_sha256, sasl_scram_sha512, sasl_oauth_bearer.

            '
        - name: context.auth.token.claims
          type: object
          description: All claims from the JWT token. Only populated for sasl_oauth_bearer authentication. Claims can be strings, numbers, booleans, arrays or nested JSON objects.
      x-min-runtime-version: '1.1'
    EventGatewayPolicy:
      description: A policy associated with an Event Gateway.
      type: object
      properties:
        type:
          description: The type name of the policy.
          type: string
          maxLength: 255
          minLength: 1
        name:
          description: A unique user-defined name of the policy.
          type: string
          maxLength: 255
          x-unicode-pattern: ^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+']*[\p{L}\p{N}]$
        description:
          description: A human-readable description of the policy.
          type: string
          default: ''
          maxLength: 512
        enabled:
          description: Whether the policy is enabled.
          type: boolean
          default: true
        labels:
          $ref: '#/components/schemas/Labels'
        id:
          description: The unique identifier of the policy.
          type: string
          format: uuid
        config:
          description: The configuration of the policy.
          type: object
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        parent_policy_id:
          description: The unique identifier of the parent policy, if any.
          type: string
          format: uuid
          nullable: true
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
        condition:
          description: A string containing the boolean expression that determines whether the policy is applied.
          type: string
          default: ''
          maxLength: 1000
          x-expression:
            type: boolean
            fields: []
      required:
      - type
      - id
      - created_at
      - updated_at
    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
    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
    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'
    EventGatewayACLResourceName:
      description: An Event Gateway resource name to match against in an ACL rule.
      type: object
      properties:
        match:
          description: 'Currently supported are exact matches and globs.

            All `*` characters are interpreted as globs, i.e. they match zero or more of any character.

            '
          type: string
          format: glob
      required:
      - match
    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
    EventGatewayClusterPolicyModify:
      description: The typed schema of the cluster policy to modify it.
      discriminator:
        propertyName: type
        mapping:
          acls: '#/components/schemas/EventGatewayACLsPolicy'
      oneOf:
      - $ref: '#/components/schemas/EventGatewayACLsPolicy'
    EventGatewayACLsPolicy:
      description: Apply Kafka ACLs to virtual cluster traffic.
      type: object
      properties:
        type:
          description: The type name of the policy.
          type: string
          const: acls
          maxLength: 255
          minLength: 1
        name:
          description: A unique user-defined name of the policy.
          type: string
          maxLength: 255
          x-unicode-pattern: ^[\p{L}\p{N}][\p{L}\p{N} _\-\.:/+']*[\p{L}\p{N}]$
        description:
          description: A human-readable description of the policy.
          type: string
          default: ''
          maxLength: 512
        enabled:
          description: Whether the policy is enabled.
          type: boolean
          default: true
        labels:
          $ref: '#/components/schemas/Labels'
        config:
          description: The configuration of the policy.
          type: object
          $ref: '#/components/schemas/EventGatewayACLPolicyConfig'
        condition:
          description: A string containing the boolean expression that determines whether the policy is applied.
          type: string
          example: context.auth.principal.name == "this-user"
          default: ''
          maxLength: 1000
          x-expression:
            type: boolean
            fields:
            - name: context.auth.principal.name
              type: string
              description: Name of authenticated principal. Username in case of PLAIN/SCRAM, `sub` claim in case of OAUTHBEARER.
            - name: context.auth.type
              type: string
              description: 'The matched authentication type from a virtual cluster: anonymous, sasl_plain, sasl_scram_sha256, sasl_scram_sha512, sasl_oauth_bearer.

                '
      required:
      - type
      - config
      title: ACL
    EventGatewayACLPolicyConfig:
      description: Apply ACLs to virtual cluster traffic.
      type: object
      properties:
        rules:
          description: Every ACL rule in this list applies independently.
          type: array
          items:
            $ref: '#/components/schemas/EventGatewayACLRule'
          minItems: 1
      required:
      - rules
    MoveEventGatewayPolicy:
      description: Defines the position of a policy relative to the policy chain.
      type: object
      properties:
        index:
          description: The position of the policy relative to the policy chain.
          type: integer
          example: 2
          minimum: 0
      required:
      - index
    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
  responses:
    EventGatewayPolicyChainResponse:
      description: A response containing the list of policies in order of execution.
      content:
        application/json:
          schema:
            type: object
            properties:
              policies:
                type: array
                items:
                  $ref: '#/components/schemas/EventGatewayPolicyReference'
            required:
            - policies
    BadRequest:
      description: Bad Request
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/BadRequestError'
    NotFound:
      description: Not Found
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/NotFoundError'
    Forbidden:
      description: Forbidden
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ForbiddenError'
    Unauthorized:
      description: Unauthorized
      content:
        application/problem+json:
          schema:
            description: The error response object.
            type: object
            properties:
              status:
                description: The HTTP status code.
                type: integer
                example: 403
              title:
                description: The Error Response.
                type: string
                example: Unauthorized
              instance:
                description: The Konnect traceback code.
                type: string
                example: konnect:trace:952172606039454040
              detail:
                description: Details about the error response.
                type: string
                example: You do not have permission to perform this action
            $ref: '#/components/schemas/UnauthorizedError'
            title: Unauthorized Response
    ListClusterPoliciesResponse:
      description: 'A paginated list response for a collection of cluster-level policies associated with an Event Gateway virtual

        cluster.

        '
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/EventGatewayPolicy'
  parameters:
    EventGatewayPolicyBefore:
      schema:
        type: string
        format: uuid
      in: query
      name: before
      x-speakeasy-terraform-ignore: true
      description: 'Determines the id of the existing policy the new policy should be inserted before. Either ''before'' or ''after'' can be provided, when both are omitted the new policy is added to the end of the chain. When both are provided, the request fails with a 400 Bad Request.

        '
      required: false
    gatewayId:
      name: gatewayId
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: 9524ec7d-36d9-465d-a8c5-83a3c9390458
      description: The UUID of your Gateway.
    EventGatewayPolicyListFilter:
      schema:
        type: object
        properties:
          parent_policy_id:
            description: The ID of the parent policy.
            type: string
      in: query
      name: filter
      description: Filter policies returned in the response.
      required: false
      style: deepObject
    policyId:
      name: policyId
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: 9524ec7d-36d9-465d-a8c5-83a3c9390458
      description: The UUID of the policy.
    EventGatewayPolicyAfter:
      schema:
        type: string
        format: uuid
      in: query
      name: after
      x-speakeasy-terraform-ignore: true
      description: 'Determines the id of the existing policy the new policy should be inserted after. Either ''before'' or ''after'' can be provided, when both are omitted the new policy is added to the end of the chain. When both are provided, the request fails with a 400 Bad Request.

        '
      required: false
    virtualClusterId:
      schema:
        type: string
        format: uuid
      name: virtualClusterId
      in: path
      required: true
      description: The ID of the Virtual Cluster.
  requestBodies:
    PatchEventGatewayPolicyRequest:
      description: The request schema for patching a policy.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/EventGatewayPolicyPatch'
    UpdateEventGatewayClusterPolicyRequest:
      description: The request schema for updating a cluster-level policy.
      content:
        application/json:
          schema:
      

# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kong/refs/heads/main/openapi/kong-event-gateway-virtual-cluster-policies-api-openapi.yml