Kong Event Gateway Listener Policies API

Policies control how Kafka protocol traffic is modified between the client and the backend cluster. Listener policies are routing policies that pass traffic to the virtual cluster.

Operations 9

GET /v1/event-gateways/{gatewayId}/listeners/{eventGatewayListenerId}/policies List Policies for Listener #
POST /v1/event-gateways/{gatewayId}/listeners/{eventGatewayListenerId}/policies Create Policy for Listener #
GET /v1/event-gateways/{gatewayId}/listeners/{eventGatewayListenerId}/policies/{policyId} Get a Policy for Listener #
PUT /v1/event-gateways/{gatewayId}/listeners/{eventGatewayListenerId}/policies/{policyId} Update Policy for Listener #
PATCH /v1/event-gateways/{gatewayId}/listeners/{eventGatewayListenerId}/policies/{policyId} Partially Update Policy for Listener #
DELETE /v1/event-gateways/{gatewayId}/listeners/{eventGatewayListenerId}/policies/{policyId} Delete Policy for Listener #
POST /v1/event-gateways/{gatewayId}/listeners/{eventGatewayListenerId}/policies/{policyId}/move Move Policy #
GET /v1/event-gateways/{gatewayId}/listeners/{eventGatewayListenerId}/policy-chain Get Policy Chain for Listener #
PUT /v1/event-gateways/{gatewayId}/listeners/{eventGatewayListenerId}/policy-chain Update Policy Chain for Listener #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/kong-event-gateway-listener-policies-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

kong-event-gateway-listener-policies-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Konnect API - Go SDK Event Gateway Listener Policies API
  version: 3.14.0
  description: The Konnect platform API
  contact:
    name: Kong Inc
    url: https://konghq.com
    email: support@konghq.com
  x-extensions-note: "This API uses the `x-expression` vendor extension to indicate that a string property is a DSL expression.\nSupported types:\n\n\n  - `boolean`: An expression evaluates to boolean. For example, `context.topic.name == 'my-topic'`\n  - `string`: A template string expression that evaluates to a string or a literal string value. For example,\n    `${context.topic.name.substring(0, context.topic.name.length-4)}` or `my-literal-value`\n\nAdditionally, `x-sensitive` flag indicates that a field contains sensitive information. When the value\nof the field is provided in plain text, it's encrypted at rest and it's never returned in API responses.\nWhen the value is an expression, the expression itself is stored and returned in API responses.\n\n`x-min-runtime-version` indicates the minimum Event Gateway runtime version required to use a certain policy or\npolicy feature. The runtime version can be configured at the Event Gateway entity level. It must be a string\ncontaining a semantic version in the `MAJOR.MINOR` format, e.g., `\"1.1\"`.\n"
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  x-oas-source: kong/platform-api@
  x-oas-source-link: https://github.com/Kong/platform-api/commit/
servers:
- url: https://global.api.konghq.com
- url: https://us.api.konghq.com
- url: https://eu.api.konghq.com
- url: https://au.api.konghq.com
security:
- personalAccessToken: []
- systemAccountAccessToken: []
- konnectAccessToken: []
- serviceAccessToken: []
tags:
- name: Event Gateway Listener Policies
  description: 'Policies control how Kafka protocol traffic is modified between the client and the backend cluster.


    Listener policies are routing policies that pass traffic to the virtual cluster.

    '
paths:
  /v1/event-gateways/{gatewayId}/listeners/{eventGatewayListenerId}/policies:
    parameters:
    - $ref: '#/components/parameters/gatewayId'
    - $ref: '#/components/parameters/eventGatewayListenerId'
    get:
      operationId: list-event-gateway-listener-policies
      summary: List Policies for Listener
      description: Returns a list of policies associated with the specified Event Gateway listener.
      parameters:
      - $ref: '#/components/parameters/EventGatewayCommonFilter'
      responses:
        '200':
          $ref: '#/components/responses/ListEventGatewayListenerPoliciesResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      tags:
      - Event Gateway Listener Policies
    post:
      x-speakeasy-entity-operation:
        terraform-resource: EventGatewayListenerPolicy#create
        terraform-datasource: null
      operationId: create-event-gateway-listener-policy
      summary: Create Policy for Listener
      description: Creates a new policy associated with the specified Event Gateway listener.
      parameters:
      - $ref: '#/components/parameters/EventGatewayPolicyBefore'
      - $ref: '#/components/parameters/EventGatewayPolicyAfter'
      requestBody:
        $ref: '#/components/requestBodies/CreateEventGatewayListenerPolicyRequest'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventGatewayListenerPolicy'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      tags:
      - Event Gateway Listener Policies
  /v1/event-gateways/{gatewayId}/listeners/{eventGatewayListenerId}/policies/{policyId}:
    parameters:
    - $ref: '#/components/parameters/gatewayId'
    - $ref: '#/components/parameters/eventGatewayListenerId'
    - 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: EventGatewayListenerPolicy#read
        terraform-datasource: null
      operationId: get-event-gateway-listener-policy
      summary: Get a Policy for Listener
      description: Returns information about a specific policy associated with the Event Gateway listener.
      responses:
        '200':
          description: A single policy object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventGatewayListenerPolicy'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - Event Gateway Listener Policies
    put:
      x-speakeasy-entity-operation:
        terraform-resource: EventGatewayListenerPolicy#update
        terraform-datasource: null
      operationId: update-event-gateway-listener-policy
      summary: Update Policy for Listener
      description: Updates an existing policy associated with the specified Event Gateway listener.
      requestBody:
        $ref: '#/components/requestBodies/UpdateEventGatewayListenerPolicyRequest'
      responses:
        '200':
          description: Updated policy object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventGatewayListenerPolicy'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      tags:
      - Event Gateway Listener Policies
    patch:
      operationId: patch-event-gateway-listener-policy
      summary: Partially Update Policy for Listener
      description: Partially updates an existing policy associated with the specified Event Gateway listener.
      requestBody:
        $ref: '#/components/requestBodies/PatchEventGatewayListenerPolicyRequest'
      responses:
        '200':
          description: Updated policy object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventGatewayListenerPolicy'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      tags:
      - Event Gateway Listener Policies
    delete:
      x-speakeasy-entity-operation:
        terraform-resource: EventGatewayListenerPolicy#delete
        terraform-datasource: null
      operationId: delete-event-gateway-listener-policy
      summary: Delete Policy for Listener
      description: Deletes a specific policy associated with the Event Gateway listener.
      responses:
        '204':
          description: No Content
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - Event Gateway Listener Policies
  /v1/event-gateways/{gatewayId}/listeners/{eventGatewayListenerId}/policies/{policyId}/move:
    parameters:
    - $ref: '#/components/parameters/gatewayId'
    - $ref: '#/components/parameters/eventGatewayListenerId'
    - $ref: '#/components/parameters/policyId'
    post:
      operationId: move-event-gateway-listener-policy
      summary: Move Policy
      description: 'Moves the position of a specific policy relative to the chain associated with the Event Gateway listener.

        '
      requestBody:
        required: true
        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 Listener Policies
  /v1/event-gateways/{gatewayId}/listeners/{eventGatewayListenerId}/policy-chain:
    parameters:
    - $ref: '#/components/parameters/gatewayId'
    - $ref: '#/components/parameters/eventGatewayListenerId'
    get:
      operationId: get-event-gateway-listener-policy-chain
      summary: Get Policy Chain for Listener
      description: 'Get the policy chain for a listener composed of all the ids of the policies in order of execution.

        '
      responses:
        '200':
          $ref: '#/components/responses/EventGatewayPolicyChainResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      tags:
      - Event Gateway Listener Policies
    put:
      operationId: update-event-gateway-listener-policy-chain
      summary: Update Policy Chain for Listener
      description: Update the policy chain for a listener by providing an ordered list of 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 Listener Policies
components:
  schemas:
    BadRequestError:
      allOf:
      - $ref: '#/components/schemas/BaseError'
      - type: object
        required:
        - invalid_parameters
        properties:
          invalid_parameters:
            $ref: '#/components/schemas/InvalidParameters'
    EventGatewayTLSListenerPolicyConfigSensitiveDataAware:
      type: object
      properties:
        certificates:
          type: array
          items:
            $ref: '#/components/schemas/TLSCertificateSensitiveDataAware'
          maxItems: 1
          minItems: 1
        versions:
          $ref: '#/components/schemas/TLSVersionRange'
        allow_plaintext:
          description: 'If false, only TLS connections are allowed. If true, both TLS and plaintext connections are allowed.

            '
          type: boolean
          default: false
        client_authentication:
          description: 'Configures mutual TLS (mTLS) client certificate verification. When set, the gateway

            requests or requires clients to present a certificate during the TLS handshake.


            **Requires a minimum runtime version of `1.1`**.'
          type: object
          properties:
            mode:
              description: '* required - Reject TLS connections without a valid client certificate.

                * requested - Request a client certificate during the TLS handshake, but allow connections without one (falls back to other configured authentication methods). If a certificate is presented but cannot be verified, the connection is closed.

                '
              type: string
              enum:
              - required
              - requested
              x-speakeasy-unknown-values: allow
            tls_trust_bundles:
              description: 'TLS trust bundles contain CA certificate bundles used to verify client certificates.

                All bundles are merged into a single trust store; a client certificate is accepted if it

                chains to any trusted CA across all bundles.

                '
              type: array
              items:
                $ref: '#/components/schemas/TLSTrustBundleReference'
              minItems: 1
            principal_mapping:
              description: 'An expression that extracts a principal identifier from a verified client certificate.

                This expression must evaluate to a string.


                **Requires a minimum runtime version of `1.1`**.'
              type: string
              example: '${context.certificate.subject[''CN''] ? context.certificate.subject[''CN''] : context.certificate.sans.uri[0]}'
              x-expression:
                type: string
                fields:
                - name: context.certificate.serialNumber
                  type: string
                  description: The string serial number of the certificate
                - name: context.certificate.subject
                  type: object
                  description: 'A map of the subject distinguished name.


                    A distinguished name as described by RFC 4514 is represented as a map with each key being

                    the attribute type and the value being the attribute value.

                    For example:

                    * `certificate.subject[''CN'']` is the common name

                    * `certificate.subject[''O'']` is the organization

                    '
                - name: context.certificate.issuer
                  type: object
                  description: 'A map of the issuer distinguished name.


                    A distinguished name as described by RFC 4514 is represented as a map with each key being

                    the attribute type and the value being the attribute value.

                    For example:

                    * `certificate.issuer[''CN'']` is the common name

                    * `certificate.issuer[''O'']` is the organization

                    '
                - name: context.certificate.sans.dns
                  type: array
                  items:
                    type: string
                  description: An array of the DNS Subject Alternative Names from the certificate.
                - name: context.certificate.sans.uri
                  type: array
                  items:
                    type: string
                  description: An array of the URI Subject Alternative Names from the certificate.
              x-min-runtime-version: '1.1'
          required:
          - mode
          - tls_trust_bundles
          x-min-runtime-version: '1.1'
      required:
      - certificates
    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
    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
    ForwardToClusterByPortMappingConfig:
      description: 'The configuration to forward request to `destination` and rewrite ports accordingly.

        All broker ids must fit in the range of ports defined in the listener, if it doesn''t the metadata request will

        return an error.


        For example with ports: [9000, "9092-9094", "9100"] and `bootstrap_port: at_start` and brokers with ids

        1, 2, 3, 4 we will map: bootstrap to 9000 broker 1 to 9001, broker 2 to 9002, broker 3 to 9003, and broker 4

        to 9004 and fail the metadata request as these ports are not open.


        However, with the same configuration but with brokers with ids: 92,93,94,100 we will map: bootstrap to 9000,

        broker 92 to 9092, broker 93 to 9093, broker 94 to 9094, and broker 100 to 9100.


        In most cases users should use a single range `["9090-9094"] ` and `bootstrap_port: at_start` and connect with

        `<host>:9090` as bootstrap server. Being able to use multiple ranges is only useful when when dealing with

        gaps in broker ids.


        It is strongly discouraged to use port mapping in production.

        '
      type: object
      properties:
        type:
          type: string
          const: port_mapping
        destination:
          $ref: '#/components/schemas/VirtualClusterReference'
        advertised_host:
          description: Virtual brokers are advertised to clients using this host. Any kind of host supported by kafka can be used. If not defined, it's listen_address. If listen_address is `0.0.0.0` it's the destination IP of the TCP connection.
          type: string
          pattern: ^[a-z0-9](?:[a-z0-9\-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9\-]{0,61}[a-z0-9])?)*$
        bootstrap_port:
          description: 'If set to `at_start`, the first port will be used as a bootstrap port.

            It provides a stable endpoint to use as the bootstrap server for clients, regardless of broker

            IDs in the cluster.


            Additionally, it offsets all ports by one, so for example, if there are 3 brokers (id=1, id=2, id=3)

            then we will use 4 ports: 9092 (bootstrap), 9093 (id=1), 9094 (id=2), 9095 (id=3)

            With `none` we will use 3 ports: 9092 (id=1), 9093 (id=2), 9094 (id=3).

            '
          type: string
          default: at_start
          enum:
          - none
          - at_start
          x-speakeasy-unknown-values: allow
        min_broker_id:
          description: The lowest broker node ID in the cluster.
          type: integer
          default: 0
      additionalProperties: false
      required:
      - type
      - destination
      - advertised_host
    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
    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
    EventGatewayListenerPolicyCreate:
      description: The typed schema of the listener policy to modify it.
      discriminator:
        propertyName: type
        mapping:
          tls_server: '#/components/schemas/EventGatewayTLSListenerPolicy'
          forward_to_virtual_cluster: '#/components/schemas/ForwardToVirtualClusterPolicy'
      oneOf:
      - $ref: '#/components/schemas/EventGatewayTLSListenerPolicy'
      - $ref: '#/components/schemas/ForwardToVirtualClusterPolicy'
    EventGatewayTLSListenerSensitiveDataAwarePolicy:
      description: 'The TLS Server policy defines the certificates and keys used by the gateway server when the client connects

        to the gateway over TLS.


        While it is possible to have multiple TLS policies on a listener, only one can be active at a time.

        '
      type: object
      properties:
        type:
          description: The type name of the policy.
          type: string
          const: tls_server
          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/EventGatewayTLSListenerPolicyConfigSensitiveDataAware'
      required:
      - type
      - config
    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
    GatewaySecret:
      description: 'A sensitive value containing the secret or a reference to a secret as a template string expression.

        If the value is provided as plain text, it is encrypted at rest and omitted from API responses.

        If provided as an expression, the expression itself is stored and returned by the API.

        '
      type: string
      example: ${vault.env['MY_ENV_VAR']}
      minLength: 1
      x-expression:
        type: string
        fields:
        - vault
      x-sensitive: true
    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
    EventGatewayListenerPolicy:
      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'
      required:
      - type
      - id
      - created_at
      - updated_at
      - config
    StringFieldContainsFilter:
      description: Filters on the given string field value by fuzzy match.
      type: object
      properties:
        contains:
          type: string
      additionalProperties: false
      required:
      - contains
      title: StringFieldContainsFilter
    EventGatewayTLSListenerPolicyConfig:
      type: object
      properties:
        certificates:
          type: array
          items:
            $ref: '#/components/schemas/TLSCertificate'
          maxItems: 1
          minItems: 1
        versions:
          $ref: '#/components/schemas/TLSVersionRange'
        allow_plaintext:
          description: 'If false, only TLS connections are allowed. If true, both TLS and plaintext connections are allowed.

            '
          type: boolean
          default: false
        client_authentication:
          description: 'Configures mutual TLS (mTLS) client certificate verification. When set, the gateway

            requests or requires clients to present a certificate during the TLS handshake.


            **Requires a minimum runtime version of `1.1`**.'
          type: object
          properties:
            mode:
              description: '* required - Reject TLS connections without a valid client certificate.

                * requested - Request a client certificate during the TLS handshake, but allow connections without one (falls back to other configured authentication methods). If a certificate is presented but cannot be verified, the connection is closed.

                '
              type: string
              enum:
              - required
              - requested
              x-speakeasy-unknown-values: allow
            tls_trust_bundles:
              description: 'TLS trust bundles contain CA certificate bundles used to verify client certificates.

                All bundles are merged into a single trust store; a client certificate is accepted if it

                chains to any trusted CA across all bundles.

                '
              type: array
              items:
                $ref: '#/components/schemas/TLSTrustBundleReference'
              minItems: 1
            principal_mapping:
              description: 'An expression that extracts a principal identifier from a verified client certificate.

                This expression must evaluate to a string.


                **Requires a minimum runtime version of `1.1`**.'
              type: string
              example: '${context.certificate.subject[''CN''] ? context.certificate.subject[''CN''] : context.certificate.sans.uri[0]}'
              x-expression:
                type: string
                fields:
                - name: context.certificate.serialNumber
                  type: string
                  description: The string serial number of the certificate
                - name: context.certificate.subject
                  type: object
                  description: 'A map of the subject distinguished name.


                    A distinguished name as described by RFC 4514 is represented as a map with each key being

                    the attribute type and the value being the attribute value.

                    For example:

                    * `certificate.subject[''CN'']` is the common name

                    * `certificate.subject[''O'']` is the organization

                    '
                - name: context.certificate.issuer
                  type: object
                  description: 'A map of the issuer distinguished name.


                    A distinguished name as described by RFC 4514 is represented as a map with each key being

                    the attribute type and the value being the attribute value.

                    For example:

                    * `certificate.issuer[''CN'']` is the common name

                    * `certificate.issuer[''O'']` is the organization

                    '
                - name: context.certificate.sans.dns
                  type: array
                  items:
                    type: string
                  description: An array of the DNS Subject Alternative Names from the certificate.
                - name: context.certificate.sans.uri
                  type: array
                  items:
                    type: string
                  description: An array of the URI Subject Alternative Names from the certificate.
              x-min-runtime-version: '1.1'
          required:
          - mode
          - tls_trust_bundles
          x-min-runtime-version: '1.1'
      required:
      - certificates
    TLSTrustBundleReference:
      description: 'A reference to a TLS trust bundle resource.


        Either `id` or `name` must be provided. Following changes to the trust bundle name won''t affect the

        reference, as the system will create the entities relationship by `id`.

        '
      anyOf:
      - $ref: '#/components/schemas/TLSTrustBundleReferenceById'
      - $ref: '#/components/schemas/TLSTrustBundleReferenceByName'
      x-terraform-preferred: '#/components/schemas/TLSTrustBundleReferenceById'
    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
    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
    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
    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
    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
      additionalProp

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