Kong Event Gateway Virtual Cluster Produce Policies API

Produce policies operate on Kafka messages before they are written to the Kafka cluster. Where possible, apply transformations to the data using produce policies rather than consume policies for maximum efficiency.

Operations 9

GET /v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/produce-policies List Produce Policies for Virtual Cluster #
POST /v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/produce-policies Create Produce Policy for Virtual Cluster #
GET /v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/produce-policies/{policyId} Get a Produce Policy for Virtual Cluster #
PUT /v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/produce-policies/{policyId} Update Produce Policy for Virtual Cluster #
PATCH /v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/produce-policies/{policyId} Patch Produce Policy for Virtual Cluster #
DELETE /v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/produce-policies/{policyId} Delete Produce Policy for Virtual Cluster #
POST /v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/produce-policies/{policyId}/move Move Produce Policy #
GET /v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/produce-policy-chain Get Produce Policy Chain for Virtual Cluster #
PUT /v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/produce-policy-chain Update Produce Policy Chain #

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-virtual-cluster-produce-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-virtual-cluster-produce-policies-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Konnect API - Go SDK Event Gateway Virtual Cluster Produce 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 Virtual Cluster Produce Policies
  description: 'Produce policies operate on Kafka messages before they are written to the Kafka cluster.


    Where possible, apply transformations to the data using produce policies rather than consume policies for maximum efficiency.

    '
paths:
  /v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/produce-policies:
    parameters:
    - $ref: '#/components/parameters/gatewayId'
    - $ref: '#/components/parameters/virtualClusterId'
    get:
      operationId: list-event-gateway-virtual-cluster-produce-policies
      summary: List Produce Policies for Virtual Cluster
      description: Returns a list of produce policies associated with the specified Event Gateway virtual cluster.
      parameters:
      - $ref: '#/components/parameters/EventGatewayPolicyListFilter'
      responses:
        '200':
          $ref: '#/components/responses/ListProducePoliciesResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      tags:
      - Event Gateway Virtual Cluster Produce Policies
    post:
      x-speakeasy-entity-operation:
        terraform-resource: EventGatewayVirtualClusterProducePolicy#create
        terraform-datasource: null
      operationId: create-event-gateway-virtual-cluster-produce-policy
      summary: Create Produce Policy for Virtual Cluster
      description: Creates a new produce policy associated with the specified Event Gateway virtual cluster.
      parameters:
      - $ref: '#/components/parameters/EventGatewayPolicyBefore'
      - $ref: '#/components/parameters/EventGatewayPolicyAfter'
      requestBody:
        $ref: '#/components/requestBodies/CreateEventGatewayProducePolicyRequest'
      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 Produce Policies
  /v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/produce-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: EventGatewayVirtualClusterProducePolicy#read
        terraform-datasource: null
      operationId: get-event-gateway-virtual-cluster-produce-policy
      summary: Get a Produce Policy for Virtual Cluster
      description: Returns information about a specific produce policy associated with the Event Gateway virtual cluster.
      responses:
        '200':
          description: A single produce 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 Produce Policies
    put:
      x-speakeasy-entity-operation:
        terraform-resource: EventGatewayVirtualClusterProducePolicy#update
        terraform-datasource: null
      operationId: update-event-gateway-virtual-cluster-produce-policy
      summary: Update Produce Policy for Virtual Cluster
      description: Updates an existing produce policy associated with the specified Event Gateway virtual cluster.
      requestBody:
        $ref: '#/components/requestBodies/UpdateEventGatewayProducePolicyRequest'
      responses:
        '200':
          description: Updated produce 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 Produce Policies
    patch:
      operationId: patch-event-gateway-virtual-cluster-produce-policy
      summary: Patch Produce Policy for Virtual Cluster
      description: Partially updates an existing produce policy associated with the specified Event Gateway virtual cluster.
      requestBody:
        $ref: '#/components/requestBodies/PatchEventGatewayPolicyRequest'
      responses:
        '200':
          description: Updated produce 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 Produce Policies
    delete:
      x-speakeasy-entity-operation:
        terraform-resource: EventGatewayVirtualClusterProducePolicy#delete
        terraform-datasource: null
      operationId: delete-event-gateway-virtual-cluster-produce-policy
      summary: Delete Produce Policy for Virtual Cluster
      description: Deletes a specific produce 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 Produce Policies
  /v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/produce-policies/{policyId}/move:
    parameters:
    - $ref: '#/components/parameters/gatewayId'
    - $ref: '#/components/parameters/virtualClusterId'
    - $ref: '#/components/parameters/policyId'
    post:
      operationId: move-event-gateway-virtual-cluster-produce-policy
      summary: Move Produce Policy
      description: 'Moves the position of a specific produce 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 Produce Policies
  /v1/event-gateways/{gatewayId}/virtual-clusters/{virtualClusterId}/produce-policy-chain:
    parameters:
    - $ref: '#/components/parameters/gatewayId'
    - $ref: '#/components/parameters/virtualClusterId'
    get:
      operationId: get-event-gateway-virtual-cluster-produce-policy-chain
      summary: Get Produce Policy Chain for Virtual Cluster
      description: 'Get the produce policy chain for a virtual cluster composed of all the ids of the produce 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 Produce Policies
    put:
      operationId: update-event-gateway-virtual-cluster-produce-policy-chain
      summary: Update Produce Policy Chain
      description: Update the produce policy chain for a virtual cluster by providing an ordered list of produce 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 Produce Policies
components:
  schemas:
    EventGatewayModifyHeaderSetAction:
      description: An action that sets a header key and value.
      type: object
      properties:
        op:
          type: string
          const: set
        key:
          description: The key of the header to set.
          type: string
        value:
          description: The value of the header to set.
          type: string
      required:
      - op
      - key
      - value
    BadRequestError:
      allOf:
      - $ref: '#/components/schemas/BaseError'
      - type: object
        required:
        - invalid_parameters
        properties:
          invalid_parameters:
            $ref: '#/components/schemas/InvalidParameters'
    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
    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
    EventGatewayProduceSchemaValidationPolicyConfig:
      description: The configuration of the produce schema validation policy.
      discriminator:
        propertyName: type
        mapping:
          confluent_schema_registry: '#/components/schemas/EventGatewayProduceSchemaValidationPolicySchemaRegistryConfig'
          json: '#/components/schemas/EventGatewayProduceSchemaValidationPolicyJsonConfig'
      oneOf:
      - $ref: '#/components/schemas/EventGatewayProduceSchemaValidationPolicySchemaRegistryConfig'
      - $ref: '#/components/schemas/EventGatewayProduceSchemaValidationPolicyJsonConfig'
    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
    EncryptionRecordPart:
      description: '* key - encrypt the record key

        * value - encrypt the record value

        '
      type: string
      enum:
      - key
      - value
      x-speakeasy-unknown-values: allow
    EncryptionFailureMode:
      description: 'Describes how to handle failing encryption or decryption.

        Use `error` if the record should be rejected if encryption or decryption fails.

        Use `passthrough` to ignore encryption or decryption failure and continue proxying the record.

        '
      type: string
      enum:
      - error
      - passthrough
      x-speakeasy-unknown-values: allow
    ProduceValueValidationAction:
      description: "Defines a behavior when record value is not valid.\n* reject - rejects a batch for topic partition. Only available for produce.\n* mark - marks a record with kong/server header and client ID value\n\n\n  to help to identify the clients violating schema.\n"
      type: string
      enum:
      - reject
      - mark
      x-speakeasy-unknown-values: allow
    EventGatewayParsedRecordEncryptFieldsPolicy:
      description: 'Encrypts fields of parsed Kafka records using AES_256_GCM. Keys are therefore 256 bits long.


        Note this policy can only be used as a child of a `EventGatewayProduceSchemaValidationPolicy` policy.

        '
      type: object
      properties:
        type:
          description: The type name of the policy.
          type: string
          const: encrypt_fields
          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/EventGatewayParsedRecordEncryptFieldsConfig'
        condition:
          description: 'A string containing the boolean expression that determines whether the policy is applied.


            When the policy is applied as a child policy of schema_validation, the expression can also reference

            `record.value` fields.

            '
          type: string
          example: record.value.content.foo.bar == "a-value"
          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.

                '
            - name: context.topic.name
              type: string
              description: The name of the topic.
            - name: record.headers
              type: object
              description: An associative array of header key value pairs.
            - name: record.value.validated
              type: boolean
              description: Indicates whether the record value was successfully validated.
            - name: record.value.content
              type: object
              description: The content of the record value.
      required:
      - type
      - config
      title: Encrypt Parsed Record
    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
    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
    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
    EventGatewayModifyHeadersPolicy:
      description: A policy that modifies headers for requests.
      type: object
      properties:
        type:
          description: The type name of the policy.
          type: string
          const: modify_headers
          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 modify headers policy.
          type: object
          properties:
            actions:
              description: Actions are run in sequential order and act on individual headers.
              type: array
              items:
                $ref: '#/components/schemas/EventGatewayModifyHeaderAction'
              minItems: 1
        condition:
          description: 'A string containing the boolean expression that determines whether the policy is applied.


            When the policy is applied as a child policy of schema_validation, the expression can also reference

            `record.value` fields.

            '
          type: string
          example: record.value.content.foo.bar == "a-value"
          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.

                '
            - name: context.topic.name
              type: string
              description: The name of the topic.
            - name: record.headers
              type: object
              description: An associative array of header key value pairs.
            - name: record.value.validated
              type: boolean
              description: Indicates whether the record value was successfully validated.
            - name: record.value.content
              type: object
              description: The content of the record value.
      required:
      - type
      - config
      title: Modify Headers
    EventGatewayModifyHeaderRemoveAction:
      description: An action that removes a header by key.
      type: object
      properties:
        op:
          type: string
          const: remove
        key:
          description: The key of the header to remove.
          type: string
      required:
      - op
      - key
    EncryptionKeyStaticReference:
      description: 'A static encryption key reference, either by ID or by value.

        '
      anyOf:
      - $ref: '#/components/schemas/EncryptionKeyStaticReferenceById'
      - $ref: '#/components/schemas/EncryptionKeyStaticReferenceByName'
      x-terraform-preferred: '#/components/schemas/EncryptionKeyStaticReferenceById'
    EventGatewayProduceSchemaValidationPolicyJsonConfig:
      description: The configuration of the produce schema validation policy when using JSON parsing without schema.
      type: object
      properties:
        schema_registry:
          $ref: '#/components/schemas/SchemaRegistryReference'
        key_validation_action:
          $ref: '#/components/schemas/ProduceKeyValidationAction'
        value_validation_action:
          $ref: '#/components/schemas/ProduceValueValidationAction'
        type:
          type: string
          const: json
      required:
      - type
    EventGatewayProduceSchemaValidationPolicy:
      description: A policy that validates produce messages against a schema registry.
      type: object
      properties:
        type:
          description: The type name of the policy.
          type: string
          const: schema_validation
          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/EventGatewayProduceSchemaValidationPolicyConfig'
        condition:
          description: A string containing the boolean expression that determines whether the policy is applied.
          type: string
          example: context.topic.name.endsWith("my_suffix") && record.headers["x-flag"] == "a-value"
          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.

                '
            - name: context.topic.name
              type: string
              description: The name of the topic.
            - name: record.headers
              type: object
              description: An associative array of header key value pairs.
      required:
      - type
      - config
      title: Schema Validation
    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
    EncryptionKeyAWS:
      description: 'The AWS KMS key to use for encryption.

        '
      type: object
      properties:
        type:
          type: string
          const: aws
        arn:
          description: The AWS KMS key ARN.
          type: string
          maxLength: 2048
          minLength: 10
          pattern: ^arn:aws:kms:.+
      example:
        type: aws
        arn: arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
      required:
      - type
      - arn
    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
    EventGatewayProducePolicyUpdate:
      description: The typed schema of the produce policy to modify it.
      discriminator:
        propertyName: type
        mapping:
          modify_headers: '#/components/schemas/EventGatewayModifyHeadersPolicy'
          schema_validation: '#/components/schemas/EventGatewayProduceSchemaValidationPolicy'
          encrypt: '#/components/schemas/EventGatewayEncryptPolicy'
          encrypt_fields: '#/components/schemas/EventGatewayParsedRecordEncryptFieldsPolicy'
      oneOf:
      - $ref: '#/components/schemas/EventGatewayProduceSchemaValidationPolicy'
      - $ref: '#/components/schemas/EventGatewayModifyHeadersPolicy'
      - $ref: '#/components/schemas/EventGatewayEncryptPolicy'
      - $ref: '#/components/schemas/EventGatewayParsedRecordEncryptFieldsPolicy'
    EventGatewayParsedRecordEncryptFieldsConfig:
      description: The configuration of the encrypt parsed record policy.
      type: object
      properties:
        failure_mode:
          $ref: '#/components/schemas/ProduceFailureMode'
        encrypt_fields:
          description: Selects which fields to encrypt and with what keys.
          type: array
          items:
            $ref: '#/components/schemas/EventGatewayParsedRecordEncryptionSelector'
          minItems: 1
      required:
      - failure_mode
      - encrypt_fields
    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'
    EncryptionKeyStaticReferenceById:
      description: A static encryption key reference by ID.
      type: object
      properties:
        id:
          description: The ID of the static key defined in the key source.
          type: string
          format: uuid
          minLength: 1
      required:
      - id
    EventGatewayParsedRecordEncryptFieldsPolicyCreate:
      description: 'Encrypts fields of parsed Kafka records using AES_256_GCM. Keys are therefore 256 bits long.


        Note this policy can only be used as a child of a `EventGatewayProduceSchemaValidationPolicy` policy.

        '
      type: object
      properties:
        type:
          description: The type name of the policy.
          type: string
          const: encrypt_fields
          maxLength: 255
      

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