Kuma MeshFaultInjection API

The MeshFaultInjection API from Kuma — 2 operation(s) for meshfaultinjection.

OpenAPI Specification

kuma-meshfaultinjection-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Kuma Dataplane MeshFaultInjection API
  description: Kuma API
  version: v1alpha1
  x-ref-schema-name: DataplaneOverview
security:
- BasicAuth: []
- BearerAuth: []
- {}
tags:
- name: MeshFaultInjection
paths:
  /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'
components:
  responses:
    NotFound:
      description: Not Found
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/NotFoundError'
    MeshFaultInjectionList:
      description: List
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                items:
                  $ref: '#/components/schemas/MeshFaultInjectionItem'
              total:
                type: number
                description: The total number of entities
              next:
                type: string
                description: URL to the next page
    MeshFaultInjectionItem:
      description: Successful response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/MeshFaultInjectionItem'
    MeshFaultInjectionDeleteSuccessResponse:
      description: Successful response
      content:
        application/json:
          schema:
            type: object
    MeshFaultInjectionCreateOrUpdateSuccessResponse:
      description: Successful response
      content:
        application/json:
          schema:
            type: object
            properties:
              warnings:
                type: array
                readOnly: true
                description: 'warnings is a list of warning messages to return to the requesting Kuma API clients.

                  Warning messages describe a problem the client making the API request should correct or be aware of.

                  '
                items:
                  type: string
  schemas:
    NotFoundError:
      allOf:
      - $ref: '#/components/schemas/Error'
      - type: object
        properties:
          status:
            type: integer
            enum:
            - 404
            example: 404
            description: 'The HTTP status code for NotFoundError MUST be 404.

              '
          title:
            type: string
            example: Not Found
          type:
            type: string
            example: https://httpstatuses.com/404
          detail:
            type: string
            example: The requested resource was not found
    InvalidParameters:
      type: object
      title: Invalid Parameters
      required:
      - field
      - reason
      - source
      properties:
        field:
          type: string
          description: The name of the field that caused the error.
        reason:
          type: string
          description: 'A short, human-readable description of the problem.

            _Should_ be provided as "Sentence case" for direct use in a UI.

            '
        rule:
          type: string
          description: 'May be provided as a hint to the user to help understand the type of failure.

            Additional guidance may be provided in additional fields, i.e. `choices`.

            '
        choices:
          type: array
          description: 'Optional field to provide a list of valid choices for the field that caused the error.

            '
          items:
            type: string
        source:
          type: string
          description: 'The location of the field that caused the error.

            '
          enum:
          - body
          - query
          - header
          - path
    MeshFaultInjectionItem:
      type: object
      description: MeshFaultInjection allows you to test the resiliency of your services by injecting faults like delays, connection aborts, and response bandwidth limits into the traffic. This is useful for chaos testing and validating that your applications handle failures gracefully.
      required:
      - type
      - name
      - spec
      properties:
        type:
          description: the type of the resource
          type: string
          enum:
          - MeshFaultInjection
        mesh:
          description: Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources.
          type: string
          default: default
        kri:
          description: A unique identifier for this resource instance used by internal tooling and integrations. Typically derived from resource attributes and may be used for cross-references or indexing
          type: string
          readOnly: true
          example: kri_mfi_default_zone-east_kuma-demo_mypolicy1_
        name:
          description: Name of the Kuma resource
          type: string
        labels:
          additionalProperties:
            type: string
          description: The labels to help identity resources
          type: object
        spec:
          description: Spec is the specification of the Kuma MeshFaultInjection resource.
          properties:
            from:
              description: From list makes a match between clients and corresponding configurations
              items:
                properties:
                  default:
                    description: 'Default is a configuration specific to the group of destinations referenced in

                      ''targetRef'''
                    properties:
                      http:
                        description: Http allows to define list of Http faults between dataplanes.
                        items:
                          description: FaultInjection defines the configuration of faults between dataplanes.
                          properties:
                            abort:
                              description: 'Abort defines a configuration of not delivering requests to destination

                                service and replacing the responses from destination dataplane by

                                predefined status code'
                              properties:
                                httpStatus:
                                  description: HTTP status code which will be returned to source side
                                  format: int32
                                  type: integer
                                percentage:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Percentage of requests on which abort will be injected, has to be

                                    either int or decimal represented as string.'
                                  x-kubernetes-int-or-string: true
                              required:
                              - httpStatus
                              - percentage
                              type: object
                            delay:
                              description: Delay defines configuration of delaying a response from a destination
                              properties:
                                percentage:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Percentage of requests on which delay will be injected, has to be

                                    either int or decimal represented as string.'
                                  x-kubernetes-int-or-string: true
                                value:
                                  description: The duration during which the response will be delayed
                                  type: string
                              required:
                              - percentage
                              - value
                              type: object
                            responseBandwidth:
                              description: 'ResponseBandwidth defines a configuration to limit the speed of

                                responding to the requests'
                              properties:
                                limit:
                                  description: 'Limit is represented by value measure in Gbps, Mbps, kbps, e.g.

                                    10kbps'
                                  type: string
                                percentage:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Percentage of requests on which response bandwidth limit will be

                                    either int or decimal represented as string.'
                                  x-kubernetes-int-or-string: true
                              required:
                              - limit
                              - percentage
                              type: object
                          type: object
                        type: array
                    type: object
                  targetRef:
                    description: 'TargetRef is a reference to the resource that represents a group of

                      destinations.'
                    properties:
                      kind:
                        description: Kind of the referenced resource
                        enum:
                        - Mesh
                        - MeshSubset
                        - MeshGateway
                        - MeshService
                        - MeshExternalService
                        - MeshMultiZoneService
                        - MeshServiceSubset
                        - MeshHTTPRoute
                        - Dataplane
                        type: string
                      labels:
                        additionalProperties:
                          type: string
                        description: 'Labels are used to select group of MeshServices that match labels. Either Labels or

                          Name and Namespace can be used.'
                        type: object
                      mesh:
                        description: Mesh is reserved for future use to identify cross mesh resources.
                        type: string
                      name:
                        description: 'Name of the referenced resource. Can only be used with kinds: `MeshService`,

                          `MeshServiceSubset` and `MeshGatewayRoute`'
                        type: string
                      namespace:
                        description: 'Namespace specifies the namespace of target resource. If empty only resources in policy namespace

                          will be targeted.'
                        type: string
                      proxyTypes:
                        description: 'ProxyTypes specifies the data plane types that are subject to the policy. When not specified,

                          all data plane types are targeted by the policy.'
                        items:
                          enum:
                          - Sidecar
                          - Gateway
                          type: string
                        type: array
                      sectionName:
                        description: 'SectionName is used to target specific section of resource.

                          For example, you can target port from MeshService.ports[] by its name. Only traffic to this port will be affected.'
                        type: string
                      tags:
                        additionalProperties:
                          type: string
                        description: 'Tags used to select a subset of proxies by tags. Can only be used with kinds

                          `MeshSubset` and `MeshServiceSubset`'
                        type: object
                    required:
                    - kind
                    type: object
                required:
                - targetRef
                type: object
              type: array
            rules:
              description: Rules defines inbound fault injection configuration
              items:
                properties:
                  default:
                    description: Default defines fault configuration
                    properties:
                      http:
                        description: Http allows to define list of Http faults between dataplanes.
                        items:
                          description: FaultInjection defines the configuration of faults between dataplanes.
                          properties:
                            abort:
                              description: 'Abort defines a configuration of not delivering requests to destination

                                service and replacing the responses from destination dataplane by

                                predefined status code'
                              properties:
                                httpStatus:
                                  description: HTTP status code which will be returned to source side
                                  format: int32
                                  type: integer
                                percentage:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Percentage of requests on which abort will be injected, has to be

                                    either int or decimal represented as string.'
                                  x-kubernetes-int-or-string: true
                              required:
                              - httpStatus
                              - percentage
                              type: object
                            delay:
                              description: Delay defines configuration of delaying a response from a destination
                              properties:
                                percentage:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Percentage of requests on which delay will be injected, has to be

                                    either int or decimal represented as string.'
                                  x-kubernetes-int-or-string: true
                                value:
                                  description: The duration during which the response will be delayed
                                  type: string
                              required:
                              - percentage
                              - value
                              type: object
                            responseBandwidth:
                              description: 'ResponseBandwidth defines a configuration to limit the speed of

                                responding to the requests'
                              properties:
                                limit:
                                  description: 'Limit is represented by value measure in Gbps, Mbps, kbps, e.g.

                                    10kbps'
                                  type: string
                                percentage:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Percentage of requests on which response bandwidth limit will be

                                    either int or decimal represented as string.'
                                  x-kubernetes-int-or-string: true
                              required:
                              - limit
                              - percentage
                              type: object
                          type: object
                        type: array
                    type: object
                  matches:
                    description: Matches defines list of matches for which fault injection will be applied
                    items:
                      properties:
                        spiffeID:
                          description: SpiffeID defines a matcher configuration for SpiffeID matching
                          properties:
                            type:
                              description: Type defines how to match incoming traffic by SpiffeID. `Exact` or `Prefix` are allowed.
                              enum:
                              - Exact
                              - Prefix
                              type: string
                            value:
                              description: Value is SpiffeId of a client that needs to match for the configuration to be applied
                              type: string
                          required:
                          - type
                          - value
                          type: object
                      type: object
                    type: array
                required:
                - default
                type: object
              type: array
            targetRef:
              description: 'TargetRef is a reference to the resource the policy takes an effect on.

                The resource could be either a real store object or virtual resource

                defined inplace.'
              properties:
                kind:
                  description: Kind of the referenced resource
                  enum:
                  - Mesh
                  - MeshSubset
                  - MeshGateway
                  - MeshService
                  - MeshExternalService
                  - MeshMultiZoneService
                  - MeshServiceSubset
                  - MeshHTTPRoute
                  - Dataplane
                  type: string
                labels:
                  additionalProperties:
                    type: string
                  description: 'Labels are used to select group of MeshServices that match labels. Either Labels or

                    Name and Namespace can be used.'
                  type: object
                mesh:
                  description: Mesh is reserved for future use to identify cross mesh resources.
                  type: string
                name:
                  description: 'Name of the referenced resource. Can only be used with kinds: `MeshService`,

                    `MeshServiceSubset` and `MeshGatewayRoute`'
                  type: string
                namespace:
                  description: 'Namespace specifies the namespace of target resource. If empty only resources in policy namespace

                    will be targeted.'
                  type: string
                proxyTypes:
                  description: 'ProxyTypes specifies the data plane types that are subject to the policy. When not specified,

                    all data plane types are targeted by the policy.'
                  items:
                    enum:
                    - Sidecar
                    - Gateway
                    type: string
                  type: array
                sectionName:
                  description: 'SectionName is used to target specific section of resource.

                    For example, you can target port from MeshService.ports[] by its name. Only traffic to this port will be affected.'
                  type: string
                tags:
                  additionalProperties:
                    type: string
                  description: 'Tags used to select a subset of proxies by tags. Can only be used with kinds

                    `MeshSubset` and `MeshServiceSubset`'
                  type: object
              required:
              - kind
              type: object
            to:
              description: To list makes a match between clients and corresponding configurations
              items:
                properties:
                  default:
                    description: 'Default is a configuration specific to the group of destinations referenced in

                      ''targetRef'''
                    properties:
                      http:
                        description: Http allows to define list of Http faults between dataplanes.
                        items:
                          description: FaultInjection defines the configuration of faults between dataplanes.
                          properties:
                            abort:
                              description: 'Abort defines a configuration of not delivering requests to destination

                                service and replacing the responses from destination dataplane by

                                predefined status code'
                              properties:
                                httpStatus:
                                  description: HTTP status code which will be returned to source side
                                  format: int32
                                  type: integer
                                percentage:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Percentage of requests on which abort will be injected, has to be

                                    either int or decimal represented as string.'
                                  x-kubernetes-int-or-string: true
                              required:
                              - httpStatus
                              - percentage
                              type: object
                            delay:
                              description: Delay defines configuration of delaying a response from a destination
                              properties:
                                percentage:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Percentage of requests on which delay will be injected, has to be

                                    either int or decimal represented as string.'
                                  x-kubernetes-int-or-string: true
                                value:
                                  description: The duration during which the response will be delayed
                                  type: string
                              required:
                              - percentage
                              - value
                              type: object
                            responseBandwidth:
                              description: 'ResponseBandwidth defines a configuration to limit the speed of

                                responding to the requests'
                              properties:
                                limit:
                                  description: 'Limit is represented by value measure in Gbps, Mbps, kbps, e.g.

                                    10kbps'
                                  type: string
                                percentage:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Percentage of requests on which response bandwidth limit will be

                                    either int or decimal represented as string.'
                                  x-kubernetes-int-or-string: true
                              required:
                              - limit
                              - percentage
                              type: object
                          type: object
                        type: array
                    type: object
                  targetRef:
                    description: 'TargetRef is a reference to the resource that represents a group of

                      destinations.'
                    properties:
                      kind:
                        description: Kind of the referenced resource
                        enum:
                        - Mesh
                        - MeshSubset
                        - MeshGateway
                        - MeshService
                        - MeshExternalService
                        - MeshMultiZoneService
                        - MeshServiceSubset
                        - MeshHTTPRoute
                        - Dataplane
                        type: string
                      labels:
                        additionalProperties:
                          type: string
                        description: 'Labels are used to select group of MeshServices that match labels. Either Labels or

                          Name and Namespace can be used.'
                        type: object
                      mesh:
                        description: Mesh is reserved for future use to identify cross mesh resources.
                        type: string
                      name:
                        description: 'Name of the referenced resource. Can only be used with kinds: `MeshService`,

                          `MeshServiceSubset` and `MeshGatewayRoute`'
                        type: string
                      namespace:
                        description: 'Namespace specifies the namespace of target resource. If empty only resources in policy namespace

                          will be targeted.'
                        type: string
                      proxyTypes:
                        description: 'ProxyTypes specifies the data plane types that are subject to the policy. When not specified,

                          all data plane types are targeted by the policy.'
                        items:
                          enum:
                          - Sidecar
                          - Gateway
                          type: string
                        type: array
                      sectionName:
                        description: 'SectionName is used to target specific section of resource.

                          For example, you can target port from MeshService.ports[] by its name. Only traffic to this port will be affected.'
                        type: string
                      tags:
                        additionalProperties:
                          type: string
                        description: 'Tags used to select a subset of proxies by tags. Can only be used with kinds

                          `MeshSubset` and `MeshServiceSubset`'
                        type: object
                    required:
                    - kind
                    type: object
                required:
                - targetRef
                type: object
              type: array
          type: object
        creationTime:
          readOnly: true
          type: string
          description: Time at which the resource was created
          format: date-time
          example: '0001-01-01T00:00:00Z'
        modificationTime:
          readOnly: true
          type: string
          description: Time at which the resource was updated
          format: date-time
          example: '0001-01-01T00:00:00Z'
    Error:
      type: object
      title: Error
      description: 'Standard error. Follows the [AIP #193 - Errors](https://kong-aip.netlify.app/aip/193/) specification.

        '
      x-examples:
        Example 1:
          status: 404
          title: Not Found
          type: https://kongapi.info/konnect/not-found
          instance: portal:trace:2287285207635123011
          detail: The requested document was not found
      required:
      - status
      - title
      - instance
      - type
      - detail
      properties:
        status:
          type: integer
          description: The HTTP status code.
          example: 404
        title:
          type: string
          description: 'A short, human-readable summary of the problem.

            It **should not** change between occurrences of a problem, except for localization.

            Should be provided as "Sentence case" for potential direct use in a UI

            '
          example: Not Found
        type:
          type: string
          description: 'A unique identifier for this error. When dereferenced it must provide human-readable documentation for the problem.

            '
          example: Not Found
        instance:
          type: string
          example: portal:trace:2287285207635123011
          description: 'Used to return the correlation ID back to the user, in the format `<app>:trace:<correlation_id>`.

            '
        detail:
          type: string
          example: The requested team was not found
          description: 'A human readable explanation specific to this occurrence 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 pro

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