Gremlin · Capability

Gremlin API — kubernetes.attacks

Gremlin API — kubernetes.attacks. 5 operations. Lead operation: List all attacks.. Self-contained Naftiko capability covering one Gremlin business surface.

Run with Naftiko Gremlinkubernetes.attacks

What You Can Do

GET
Attacks — List all attacks.
/v1/kubernetes/attacks
POST
Haltall1 — Halt all active attacks
/v1/kubernetes/attacks/halt
POST
Createattack — Legacy endpoint for creating K8s attacks. Please consider `POST /attacks` endpoint instead
/v1/kubernetes/attacks/new
GET
Attack — Get an attack by it's guid
/v1/kubernetes/attacks/{guid}
POST
Halt2 — Halt an active attack
/v1/kubernetes/attacks/{uid}/halt

MCP Tools

list-all-attacks

List all attacks.

read-only idempotent
halt-all-active-attacks

Halt all active attacks

legacy-endpoint-creating-k8s-attacks

Legacy endpoint for creating K8s attacks. Please consider `POST /attacks` endpoint instead

get-attack-it-s-guid

Get an attack by it's guid

read-only idempotent
halt-active-attack

Halt an active attack

Capability Spec

gremlin-kubernetes-attacks.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Gremlin API — kubernetes.attacks
  description: 'Gremlin API — kubernetes.attacks. 5 operations. Lead operation: List all attacks.. Self-contained Naftiko
    capability covering one Gremlin business surface.'
  tags:
  - Gremlin
  - kubernetes.attacks
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    GREMLIN_API_KEY: GREMLIN_API_KEY
capability:
  consumes:
  - type: http
    namespace: gremlin-kubernetes-attacks
    baseUri: https://api.gremlin.com/v1
    description: Gremlin API — kubernetes.attacks business capability. Self-contained, no shared references.
    resources:
    - name: kubernetes-attacks
      path: /kubernetes/attacks
      operations:
      - name: attacks
        method: GET
        description: List all attacks.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: source
          in: query
          type: string
          description: Filter Kubernetes attacks to either Adhoc or Scenario.
        - name: teamId
          in: query
          type: string
          description: Required when using company session token.
          required: true
    - name: kubernetes-attacks-halt
      path: /kubernetes/attacks/halt
      operations:
      - name: haltall1
        method: POST
        description: Halt all active attacks
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: kubernetes-attacks-new
      path: /kubernetes/attacks/new
      operations:
      - name: createattack
        method: POST
        description: Legacy endpoint for creating K8s attacks. Please consider `POST /attacks` endpoint instead
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: teamId
          in: query
          type: string
          description: Required when using company session token.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: kubernetes-attacks-guid
      path: /kubernetes/attacks/{guid}
      operations:
      - name: attack
        method: GET
        description: Get an attack by it's guid
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: guid
          in: path
          type: string
          description: This value represents the globally unique identifier of the record to fetch.
          required: true
        - name: teamId
          in: query
          type: string
          description: Required when using company session token.
          required: true
    - name: kubernetes-attacks-uid-halt
      path: /kubernetes/attacks/{uid}/halt
      operations:
      - name: halt2
        method: POST
        description: Halt an active attack
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uid
          in: path
          type: string
          required: true
        - name: teamId
          in: query
          type: string
          description: Required when using company session token.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
  exposes:
  - type: rest
    namespace: gremlin-kubernetes-attacks-rest
    port: 8080
    description: REST adapter for Gremlin API — kubernetes.attacks. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/kubernetes/attacks
      name: kubernetes-attacks
      description: REST surface for kubernetes-attacks.
      operations:
      - method: GET
        name: attacks
        description: List all attacks.
        call: gremlin-kubernetes-attacks.attacks
        with:
          source: rest.source
          teamId: rest.teamId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/kubernetes/attacks/halt
      name: kubernetes-attacks-halt
      description: REST surface for kubernetes-attacks-halt.
      operations:
      - method: POST
        name: haltall1
        description: Halt all active attacks
        call: gremlin-kubernetes-attacks.haltall1
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/kubernetes/attacks/new
      name: kubernetes-attacks-new
      description: REST surface for kubernetes-attacks-new.
      operations:
      - method: POST
        name: createattack
        description: Legacy endpoint for creating K8s attacks. Please consider `POST /attacks` endpoint instead
        call: gremlin-kubernetes-attacks.createattack
        with:
          teamId: rest.teamId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/kubernetes/attacks/{guid}
      name: kubernetes-attacks-guid
      description: REST surface for kubernetes-attacks-guid.
      operations:
      - method: GET
        name: attack
        description: Get an attack by it's guid
        call: gremlin-kubernetes-attacks.attack
        with:
          guid: rest.guid
          teamId: rest.teamId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/kubernetes/attacks/{uid}/halt
      name: kubernetes-attacks-uid-halt
      description: REST surface for kubernetes-attacks-uid-halt.
      operations:
      - method: POST
        name: halt2
        description: Halt an active attack
        call: gremlin-kubernetes-attacks.halt2
        with:
          uid: rest.uid
          teamId: rest.teamId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: gremlin-kubernetes-attacks-mcp
    port: 9090
    transport: http
    description: MCP adapter for Gremlin API — kubernetes.attacks. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: list-all-attacks
      description: List all attacks.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: gremlin-kubernetes-attacks.attacks
      with:
        source: tools.source
        teamId: tools.teamId
      outputParameters:
      - type: object
        mapping: $.
    - name: halt-all-active-attacks
      description: Halt all active attacks
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: gremlin-kubernetes-attacks.haltall1
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: legacy-endpoint-creating-k8s-attacks
      description: Legacy endpoint for creating K8s attacks. Please consider `POST /attacks` endpoint instead
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: gremlin-kubernetes-attacks.createattack
      with:
        teamId: tools.teamId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-attack-it-s-guid
      description: Get an attack by it's guid
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: gremlin-kubernetes-attacks.attack
      with:
        guid: tools.guid
        teamId: tools.teamId
      outputParameters:
      - type: object
        mapping: $.
    - name: halt-active-attack
      description: Halt an active attack
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: gremlin-kubernetes-attacks.halt2
      with:
        uid: tools.uid
        teamId: tools.teamId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.