Kuma API

Kuma's control plane REST API for managing service mesh policies, dataplanes, zones, and configurations. It provides endpoints for inspecting and managing all mesh resources including traffic policies, service discovery, and health checks across Universal and Kubernetes deployments.

OpenAPI Specification

kuma-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Kuma API
  description: Kuma API
  version: v1alpha1
  x-ref-schema-name: DataplaneOverview
security:
  - BasicAuth: []
  - BearerAuth: []
  - {}
paths:
  /:
    get:
      operationId: index
      summary: The index endpoint
      description: The index endpoint, some common metadata
      tags:
        - System
      responses:
        '200':
          $ref: '#/components/responses/IndexResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '500':
          $ref: '#/components/responses/Internal'
  /_resources:
    get:
      operationId: get-resource-type-description
      summary: A list of all resources that exist
      description: Returns a Global Insight object
      tags:
        - System
      responses:
        '200':
          $ref: '#/components/responses/ResourceTypeDescriptionListResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '500':
          $ref: '#/components/responses/Internal'
  /global-insight:
    get:
      operationId: get-global-insight
      description: Returns a Global Insight object
      summary: Get Global Insight
      tags:
        - GlobalInsight
      responses:
        '200':
          $ref: '#/components/responses/GlobalInsightResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '500':
          $ref: '#/components/responses/Internal'
  /meshes/{mesh}/{resourceType}/{resourceName}/_rules:
    get:
      operationId: inspect-dataplanes-rules
      summary: Returns rules matching this dataplane
      description: Returns rules matching this dataplane
      tags:
        - Inspect
      parameters:
        - in: path
          name: mesh
          example: default
          schema:
            type: string
          required: true
          description: The mesh the policy is part of
        - in: path
          name: resourceType
          example: dataplanes
          required: true
          schema:
            type: string
            enum:
              - dataplanes
              - meshgateways
          description: The type of resource (only some resources support rules api)
        - in: path
          name: resourceName
          example: my-dp
          schema:
            type: string
          required: true
          description: The name of the resource
      responses:
        '200':
          $ref: '#/components/responses/InspectRulesResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '500':
          $ref: '#/components/responses/Internal'
  /meshes/{mesh}/dataplanes/{name}/_config:
    get:
      operationId: get-dataplanes-xds-config
      summary: >-
        Get a proxy XDS config on a CP, this endpoint is only available on zone
        CPs.
      description: >-
        Returns the
        [xds](https://www.envoyproxy.io/docs/envoy/latest/api-docs/xds_protocol)
        configuration of the proxy.
      parameters:
        - in: path
          name: mesh
          required: true
          description: The mesh of the DPP to get the diff for.
          schema:
            type: string
        - in: path
          name: name
          required: true
          description: The name of the DPP within the mesh to get the diff for.
          schema:
            type: string
        - in: query
          name: shadow
          description: >
            When computing XDS config the CP take into account policies with
            'kuma.io/effect: shadow' label
          schema:
            type: boolean
            default: false
        - in: query
          name: include
          description: >
            An array of extra fields to include in the response. When
            `include=diff` the server computes a diff in JSONPatch format

            between the current proxy XDS config and the config returned in the
            'xds' field.
          schema:
            type: array
            items:
              type: string
              enum:
                - diff
      responses:
        '200':
          $ref: '#/components/responses/GetDataplaneXDSConfigResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '500':
          $ref: '#/components/responses/Internal'
  /meshes/{mesh}/dataplanes/{name}/_layout:
    get:
      operationId: get-dataplanes-layout
      summary: Get networking layout for this dataplane
      description: >-
        Returns detailed dataplane networking layout with most important
        information on dataplane and list of its inbounds and outbounds
      parameters:
        - in: path
          name: mesh
          required: true
          description: The mesh of the DPP to get the layout for.
          schema:
            type: string
        - in: path
          name: name
          required: true
          description: The name of the DPP within the mesh to get the layout for.
          schema:
            type: string
      responses:
        '200':
          $ref: '#/components/responses/DataplaneNetworkingLayoutResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '500':
          $ref: '#/components/responses/Internal'
  /meshes/{mesh}/dataplanes/{name}/_policies:
    get:
      operationId: get-proxy-policy-conf
      summary: Get proxy policies for this dataplane
      description: >-
        Returns proxy level policy configuration derived from combining all
        proxy policies selecting this dataplane
      parameters:
        - in: path
          name: mesh
          required: true
          description: The mesh of the DPP to get the diff for.
          schema:
            type: string
        - in: path
          name: name
          required: true
          description: The name of the DPP within the mesh to get the diff for.
          schema:
            type: string
      responses:
        '200':
          $ref: '#/components/responses/ProxyPolicyConfResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '500':
          $ref: '#/components/responses/Internal'
  /meshes/{mesh}/dataplanes/{name}/_inbounds/{inbound-kri}/_policies:
    get:
      operationId: get-inbound-policy-conf
      summary: Get policies for this inbound
      description: >-
        Returns inbound policy configuration derived from combining all policies
        selecting this dataplane
      parameters:
        - in: path
          name: mesh
          required: true
          description: The mesh of the DPP to get the policies for.
          schema:
            type: string
        - in: path
          name: name
          required: true
          description: The name of the DPP within the mesh to get the policies for.
          schema:
            type: string
        - in: path
          name: inbound-kri
          required: true
          description: The name of the Inbound from DPP to get the policies for.
          schema:
            type: string
      responses:
        '200':
          $ref: '#/components/responses/InboundPolicyConfResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '500':
          $ref: '#/components/responses/Internal'
  /meshes/{mesh}/dataplanes/{name}/_outbounds/{kri}/_policies:
    get:
      operationId: get-outbound-policy-conf
      summary: Get policies for this outbound
      description: >-
        Returns outbound policy configuration derived from combining all
        policies selecting this dataplane
      parameters:
        - in: path
          name: mesh
          required: true
          description: The mesh of the DPP to get the policies for.
          schema:
            type: string
        - in: path
          name: name
          required: true
          description: The name of the DPP within the mesh to get the policies for.
          schema:
            type: string
        - in: path
          name: kri
          required: true
          description: The KRI of the Outbound to get the policies for.
          schema:
            type: string
      responses:
        '200':
          $ref: '#/components/responses/OutboundPolicyConfResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '500':
          $ref: '#/components/responses/Internal'
  /meshes/{mesh}/dataplanes/{name}/_outbounds/{kri}/_routes:
    get:
      operationId: get-outbound-routes
      summary: Get routes configuration for this outbound
      description: >-
        Returns routes configuration derived from combining all routes on this
        outbound
      parameters:
        - in: path
          name: mesh
          required: true
          description: The mesh of the DPP to get the policies for.
          schema:
            type: string
        - in: path
          name: name
          required: true
          description: The name of the DPP within the mesh to get the policies for.
          schema:
            type: string
        - in: path
          name: kri
          required: true
          description: The KRI of the Outbound to get the routes for.
          schema:
            type: string
      responses:
        '200':
          $ref: '#/components/responses/RoutesListResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '500':
          $ref: '#/components/responses/Internal'
  /meshes/{mesh}/dataplanes/{name}/_outbounds/{outbound-kri}/_routes/{route-kri}/_policies:
    get:
      operationId: get-route-policy-conf
      summary: Get policies for this route
      description: >-
        Returns route policy configuration derived from combining all policies
        selecting this dataplane
      parameters:
        - in: path
          name: mesh
          required: true
          description: The mesh of the DPP to get the policies for.
          schema:
            type: string
        - in: path
          name: name
          required: true
          description: The name of the DPP within the mesh to get the policies for.
          schema:
            type: string
        - in: path
          name: outbound-kri
          required: true
          description: The KRI of the Outbound to get the routes for.
          schema:
            type: string
        - in: path
          name: route-kri
          required: true
          description: The KRI of the Route to get the configuration for.
          schema:
            type: string
      responses:
        '200':
          $ref: '#/components/responses/RoutePolicyConfResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '500':
          $ref: '#/components/responses/Internal'
  /meshes/{mesh}/{policyType}/{policyName}/_resources/dataplanes:
    get:
      operationId: inspect-resources
      summary: Returns resources matched by this policy
      description: >-
        Returns resources matched by this policy. In the case of `targetRef`
        policies we'll match using the top level `targetRef`
      tags:
        - Inspect
      parameters:
        - in: path
          name: mesh
          example: default
          schema:
            type: string
          required: true
          description: The mesh the policy is part of
        - in: path
          name: policyType
          example: meshretries
          schema:
            type: string
          required: true
          description: The type of the policy
        - in: path
          name: policyName
          example: retry-all
          schema:
            type: string
          required: true
          description: The type of the policy
        - in: query
          name: size
          schema:
            type: integer
          required: false
          description: The max number of items to return
        - in: query
          name: offset
          schema:
            type: integer
          required: false
          description: The offset of result
        - in: query
          name: name
          schema:
            type: string
          required: false
          description: A sub string to filter resources by name
      responses:
        '200':
          $ref: '#/components/responses/InspectDataplanesForPolicyResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '500':
          $ref: '#/components/responses/Internal'
  /meshes/{mesh}/meshservices/{name}/_dataplanes:
    get:
      operationId: inspect-meshservices-dataplanes
      summary: Returns dataplanes matched by a MeshService
      description: Returns dataplanes matched by a MeshService
      tags:
        - Inspect
      parameters:
        - in: path
          name: mesh
          example: default
          schema:
            type: string
          required: true
          description: The mesh the service is part of
        - in: path
          name: name
          example: redis
          schema:
            type: string
          required: true
          description: The name of the service
        - in: query
          name: size
          schema:
            type: integer
          required: false
          description: The max number of items to return
        - in: query
          name: offset
          schema:
            type: integer
          required: false
          description: The offset of result
        - in: query
          name: name
          schema:
            type: string
          required: false
          description: A sub string to filter resources by name
      responses:
        '200':
          $ref: '#/components/responses/InspectDataplanesForPolicyResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '500':
          $ref: '#/components/responses/Internal'
  /meshes/{mesh}/{serviceType}/{serviceName}/_hostnames:
    get:
      operationId: inspect-hostnames
      summary: Returns hostnames for service
      description: Returns hostnames for a service
      tags:
        - Inspect
      parameters:
        - in: path
          name: mesh
          example: default
          schema:
            type: string
          required: true
          description: The mesh the service is part of
        - in: path
          name: serviceType
          example: meshservices
          schema:
            type: string
            enum:
              - meshservices
              - meshmultizoneservices
              - meshexternalservices
          required: true
          description: The type of the service
        - in: path
          name: serviceName
          example: redis
          schema:
            type: string
          required: true
          description: The name of the service
      responses:
        '200':
          $ref: '#/components/responses/InspectHostnamesResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/Internal'
  /_kri/{kri}:
    get:
      operationId: getByKri
      summary: Returns a resource by KRI
      tags:
        - KRI
      parameters:
        - in: path
          name: kri
          schema:
            type: string
          required: true
          description: KRI of the resource
      responses:
        '200':
          description: The resource
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/DataplaneItem'
                  - $ref: '#/components/schemas/MeshItem'
                  - $ref: '#/components/schemas/MeshAccessLogItem'
                  - $ref: '#/components/schemas/MeshCircuitBreakerItem'
                  - $ref: '#/components/schemas/MeshFaultInjectionItem'
                  - $ref: '#/components/schemas/MeshGatewayItem'
                  - $ref: '#/components/schemas/MeshHTTPRouteItem'
                  - $ref: '#/components/schemas/MeshHealthCheckItem'
                  - $ref: '#/components/schemas/MeshLoadBalancingStrategyItem'
                  - $ref: '#/components/schemas/MeshMetricItem'
                  - $ref: '#/components/schemas/MeshPassthroughItem'
                  - $ref: '#/components/schemas/MeshProxyPatchItem'
                  - $ref: '#/components/schemas/MeshRateLimitItem'
                  - $ref: '#/components/schemas/MeshRetryItem'
                  - $ref: '#/components/schemas/MeshTCPRouteItem'
                  - $ref: '#/components/schemas/MeshTLSItem'
                  - $ref: '#/components/schemas/MeshTimeoutItem'
                  - $ref: '#/components/schemas/MeshTraceItem'
                  - $ref: '#/components/schemas/MeshTrafficPermissionItem'
                  - $ref: '#/components/schemas/ZoneEgressItem'
                  - $ref: '#/components/schemas/ZoneIngressItem'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
  /meshes/{mesh}/meshaccesslogs/{name}:
    get:
      operationId: getMeshAccessLog
      summary: Returns MeshAccessLog entity
      tags:
        - MeshAccessLog
      parameters:
        - in: path
          name: mesh
          schema:
            type: string
          required: true
          description: name of the mesh
        - in: path
          name: name
          schema:
            type: string
          required: true
          description: name of the MeshAccessLog
      responses:
        '200':
          $ref: '#/components/responses/MeshAccessLogItem'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: putMeshAccessLog
      summary: Creates or Updates MeshAccessLog entity
      tags:
        - MeshAccessLog
      parameters:
        - in: path
          name: mesh
          schema:
            type: string
          required: true
          description: name of the mesh
        - in: path
          name: name
          schema:
            type: string
          required: true
          description: name of the MeshAccessLog
      requestBody:
        description: Put request
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MeshAccessLogItem'
      responses:
        '200':
          $ref: '#/components/responses/MeshAccessLogCreateOrUpdateSuccessResponse'
        '201':
          $ref: '#/components/responses/MeshAccessLogCreateOrUpdateSuccessResponse'
    delete:
      operationId: deleteMeshAccessLog
      summary: Deletes MeshAccessLog entity
      tags:
        - MeshAccessLog
      parameters:
        - in: path
          name: mesh
          schema:
            type: string
          required: true
          description: name of the mesh
        - in: path
          name: name
          schema:
            type: string
          required: true
          description: name of the MeshAccessLog
      responses:
        '200':
          $ref: '#/components/responses/MeshAccessLogDeleteSuccessResponse'
        '404':
          $ref: '#/components/responses/NotFound'
  /meshes/{mesh}/meshaccesslogs:
    get:
      operationId: getMeshAccessLogList
      summary: Returns a list of MeshAccessLog in the mesh.
      tags:
        - MeshAccessLog
      parameters:
        - in: query
          name: offset
          description: offset in the list of entities
          required: false
          schema:
            type: integer
          example: 0
        - in: query
          name: size
          description: the number of items per page
          required: false
          schema:
            type: integer
            default: 100
            maximum: 1000
            minimum: 1
        - in: query
          name: filter
          description: filter by labels when multiple filters are present, they are ANDed
          required: false
          schema:
            type: object
            properties:
              key:
                type: string
              value:
                type: string
          example:
            label.k8s.kuma.io/namespace: my-ns
        - in: path
          name: mesh
          schema:
            type: string
          required: true
          description: name of the mesh
      responses:
        '200':
          $ref: '#/components/responses/MeshAccessLogList'
  /meshes/{mesh}/meshcircuitbreakers/{name}:
    get:
      operationId: getMeshCircuitBreaker
      summary: Returns MeshCircuitBreaker entity
      tags:
        - MeshCircuitBreaker
      parameters:
        - in: path
          name: mesh
          schema:
            type: string
          required: true
          description: name of the mesh
        - in: path
          name: name
          schema:
            type: string
          required: true
          description: name of the MeshCircuitBreaker
      responses:
        '200':
          $ref: '#/components/responses/MeshCircuitBreakerItem'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: putMeshCircuitBreaker
      summary: Creates or Updates MeshCircuitBreaker entity
      tags:
        - MeshCircuitBreaker
      parameters:
        - in: path
          name: mesh
          schema:
            type: string
          required: true
          description: name of the mesh
        - in: path
          name: name
          schema:
            type: string
          required: true
          description: name of the MeshCircuitBreaker
      requestBody:
        description: Put request
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MeshCircuitBreakerItem'
      responses:
        '200':
          $ref: >-
            #/components/responses/MeshCircuitBreakerCreateOrUpdateSuccessResponse
        '201':
          $ref: >-
            #/components/responses/MeshCircuitBreakerCreateOrUpdateSuccessResponse
    delete:
      operationId: deleteMeshCircuitBreaker
      summary: Deletes MeshCircuitBreaker entity
      tags:
        - MeshCircuitBreaker
      parameters:
        - in: path
          name: mesh
          schema:
            type: string
          required: true
          description: name of the mesh
        - in: path
          name: name
          schema:
            type: string
          required: true
          description: name of the MeshCircuitBreaker
      responses:
        '200':
          $ref: '#/components/responses/MeshCircuitBreakerDeleteSuccessResponse'
        '404':
          $ref: '#/components/responses/NotFound'
  /meshes/{mesh}/meshcircuitbreakers:
    get:
      operationId: getMeshCircuitBreakerList
      summary: Returns a list of MeshCircuitBreaker in the mesh.
      tags:
        - MeshCircuitBreaker
      parameters:
        - in: query
          name: offset
          description: offset in the list of entities
          required: false
          schema:
            type: integer
          example: 0
        - in: query
          name: size
          description: the number of items per page
          required: false
          schema:
            type: integer
            default: 100
            maximum: 1000
            minimum: 1
        - in: query
          name: filter
          description: filter by labels when multiple filters are present, they are ANDed
          required: false
          schema:
            type: object
            properties:
              key:
                type: string
              value:
                type: string
          example:
            label.k8s.kuma.io/namespace: my-ns
        - in: path
          name: mesh
          schema:
            type: string
          required: true
          description: name of the mesh
      responses:
        '200':
          $ref: '#/components/responses/MeshCircuitBreakerList'
  /meshes/{mesh}/meshfaultinjections/{name}:
    get:
      operationId: getMeshFaultInjection
      summary: Returns MeshFaultInjection entity
      tags:
        - MeshFaultInjection
      parameters:
        - in: path
          name: mesh
          schema:
            type: string
          required: true
          description: name of the mesh
        - in: path
          name: name
          schema:
            type: string
          required: true
          description: name of the MeshFaultInjection
      responses:
        '200':
          $ref: '#/components/responses/MeshFaultInjectionItem'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: putMeshFaultInjection
      summary: Creates or Updates MeshFaultInjection entity
      tags:
        - MeshFaultInjection
      parameters:
        - in: path
          name: mesh
          schema:
            type: string
          required: true
          description: name of the mesh
        - in: path
          name: name
          schema:
            type: string
          required: true
          description: name of the MeshFaultInjection
      requestBody:
        description: Put request
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MeshFaultInjectionItem'
      responses:
        '200':
          $ref: >-
            #/components/responses/MeshFaultInjectionCreateOrUpdateSuccessResponse
        '201':
          $ref: >-
            #/components/responses/MeshFaultInjectionCreateOrUpdateSuccessResponse
    delete:
      operationId: deleteMeshFaultInjection
      summary: Deletes MeshFaultInjection entity
      tags:
        - MeshFaultInjection
      parameters:
        - in: path
          name: mesh
          schema:
            type: string
          required: true
          description: name of the mesh
        - in: path
          name: name
          schema:
            type: string
          required: true
          description: name of the MeshFaultInjection
      responses:
        '200':
          $ref: '#/components/responses/MeshFaultInjectionDeleteSuccessResponse'
        '404':
          $ref: '#/components/responses/NotFound'
  /meshes/{mesh}/meshfaultinjections:
    get:
      operationId: getMeshFaultInjectionList
      summary: Returns a list of MeshFaultInjection in the mesh.
      tags:
        - MeshFaultInjection
      parameters:
        - in: query
          name: offset
          description: offset in the list of entities
          required: false
          schema:
            type: integer
          example: 0
        - in: query
          name: size
          description: the number of items per page
          required: false
          schema:
            type: integer
            default: 100
            maximum: 1000
            minimum: 1
        - in: query
          name: filter
          description: filter by labels when multiple filters are present, they are ANDed
          required: false
          schema:
            type: object
            properties:
              key:
                type: string
              value:
                type: string
          example:
            label.k8s.kuma.io/namespace: my-ns
        - in: path
          name: mesh
          schema:
            type: string
          required: true
          description: name of the mesh
      responses:
        '200':
          $ref: '#/components/responses/MeshFaultInjectionList'
  /meshes/{mesh}/meshhealthchecks/{name}:
    get:
      operationId: getMeshHealthCheck
      summary: Returns MeshHealthCheck entity
      tags:
        - MeshHealthCheck
      parameters:
        - in: path
          name: mesh
          schema:
            type: string
          required: true
          description: name of the mesh
        - in: path
          name: name
          schema:
            type: string
          required: true
          description: name of the MeshHealthCheck
      responses:
        '200':
          $ref: '#/components/responses/MeshHealthCheckItem'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: putMeshHealthCheck
      summary: Creates or Updates MeshHealthCheck entity
      tags:
        - MeshHealthCheck
      parameters:
        - in: path
          name: mesh
          schema:
            type: string
          required: true
          description: name of the mesh
        - in: path
          name: name
          schema:
            type: string
          required: true
          description: name of the MeshHealthCheck
      requestBody:
        description: Put request
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MeshHealthCheckItem'
      responses:
        '200':
          $ref: '#/components/responses/MeshHealthCheckCreateOrUpdateSuccessResponse'
        '201':
          $ref: '#/components/responses/MeshHealthCheckCreateOrUpdateSuccessResponse'
    delete:
      operationId: deleteMeshHealthCheck
      summary: Deletes MeshHealthCheck entity
      tags:
        - MeshHealthCheck
      parameters:
        - in: path
          name: mesh
          schema:
            type: string
          required: true
          description: name of the mesh
        - in: path
          name: name
          schema:
            type: string
          required: true
          description: name of the MeshHealthCheck
      responses:
        '200':
          $ref: '#/components/responses/MeshHealthCheckDeleteSuccessResponse'
        '404':
          $ref: '#/components/responses/NotFound'
  /meshes/{mesh}/meshhealthchecks:
    get:
      operationId: getMeshHealthCheckList
      summary: Returns a list of MeshHealthCheck in the mesh.
      tags:
        - MeshHealthCheck
      parameters:
        - in: query
          name: offset
          description: offset in the list of entities
          required: false
          schema:
            type: integer
          example: 0
        - in: query
          name: size
          description: the number of items per page
          required: false
          schema:
            type: integer
            default: 100
            maximum: 1000
            minimum: 1
        - in: query
          name: filter
          description: filter by labels when multiple filters are present, they are ANDed
          required: false
          schema:
            type: object
            properties:
              key:
                type: string
              value:
                type: string
          example:
            label.k8s.kuma.io/namespace: my-ns
        - in: path
          name: mesh
          schema:
            type: string
          required: true
          description: name of the mesh
      responses:
        '200':
          $ref: '#/components/responses/MeshHealthCheckList'
  /meshes/{mesh}/meshhttproutes/{name}:
    get:
      operationId: getMeshHTTPRoute
      summary: Returns MeshHTTPRoute entity
      tags:
        - MeshHTTPRoute
      parameters:
        - in: path
          name: mesh
          schema:
            type: string
          required: true
          description: name of the mesh
        - in: path
          name: name
          schema:
            type: string
          required: true
          description: name of the MeshHTTPRoute
      responses:
        '200':
          $ref: '#/components/responses/MeshHTTPRouteItem'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: putMeshHTTPRoute
      summary: Creates or Updates MeshHTTPRoute entity
      tags:
        - MeshHTTPRoute
      parameters:
        - in: path
          name: mesh
          schema:
            type: string
          required: true
          description: name of the mesh
        - in: path
          name: name
          schema:
            type: string
          required: true
          description: name of the MeshHTTPRoute
      requestBody:
        description: Put request
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MeshHTTPRouteItem'
      responses:
        '200':
          $ref: '#/components/responses/MeshHTTPRouteCreateOrUpdateSuccessResponse'
        '201':
          $ref: '#/components/responses/MeshHTTPRouteCreateOrUpdateSuccessResponse'
    delete:
      operationId: deleteMeshHTTPRoute
      summary: Deletes MeshHTTPRoute entity
      tags:
        - MeshHTTPRoute
      parameters:
        - in: path
          name: mesh
          schema:
            type: string
          required: true
          description: name of the mesh
        - in: path
          nam

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