Gremlin · Capability
Gremlin API — attacks
Gremlin API — attacks. 14 operations. Lead operation: List all attacks.. Self-contained Naftiko capability covering one Gremlin business surface.
What You Can Do
GET
All
— List all attacks.
/v1/attacks
POST
Createnewattack
— Create a new attack.
/v1/attacks
DELETE
Halt
— Idempotently halt all active attacks
/v1/attacks
GET
Active
— List all active attacks.
/v1/attacks/active
GET
Activepaged
— Return a page of active ad-hoc experiments.
/v1/attacks/active/paged
GET
Completed
— List all completed attacks.
/v1/attacks/completed
GET
Completedpaged
— Return a page of completed ad-hoc experiments.
/v1/attacks/completed/paged
POST
Haltaspost
— Idempotently halt all active attacks. This is a POST version of the DELETE operation.
/v1/attacks/halt
POST
Create
— Legacy Create Attack.
/v1/attacks/new
GET
Allattacksinrange
— List all attacks in a given time range (defaults to all attacks up to now)
/v1/attacks/range
GET
Get
— Get details about an attack.
/v1/attacks/{guid}
DELETE
Halt1
— Idempotently halt the specified active attack.
/v1/attacks/{guid}
PUT
Addannotations
— Add annotations to an attack
/v1/attacks/{guid}/annotations
POST
Haltaspost1
— Idempotently halt the specified active attack.
/v1/attacks/{guid}/halt
MCP Tools
list-all-attacks
List all attacks.
read-only
idempotent
create-new-attack
Create a new attack.
idempotently-halt-all-active-attacks
Idempotently halt all active attacks
idempotent
list-all-active-attacks
List all active attacks.
read-only
idempotent
return-page-active-ad-hoc
Return a page of active ad-hoc experiments.
read-only
idempotent
list-all-completed-attacks
List all completed attacks.
read-only
idempotent
return-page-completed-ad-hoc
Return a page of completed ad-hoc experiments.
read-only
idempotent
idempotently-halt-all-active-attacks-2
Idempotently halt all active attacks. This is a POST version of the DELETE operation.
legacy-create-attack
Legacy Create Attack.
list-all-attacks-given-time
List all attacks in a given time range (defaults to all attacks up to now)
read-only
idempotent
get-details-about-attack
Get details about an attack.
read-only
idempotent
idempotently-halt-specified-active-attack
Idempotently halt the specified active attack.
idempotent
add-annotations-attack
Add annotations to an attack
idempotent
idempotently-halt-specified-active-attack-2
Idempotently halt the specified active attack.
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Gremlin API — attacks
description: 'Gremlin API — attacks. 14 operations. Lead operation: List all attacks.. Self-contained Naftiko capability
covering one Gremlin business surface.'
tags:
- Gremlin
- 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-attacks
baseUri: https://api.gremlin.com/v1
description: Gremlin API — attacks business capability. Self-contained, no shared references.
resources:
- name: attacks
path: /attacks
operations:
- name: all
method: GET
description: List all attacks.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: source
in: query
type: string
description: Filter attacks to either adhoc or scenario.
- name: pageSize
in: query
type: integer
description: This value determines how many results will be returned per call.
- name: teamId
in: query
type: string
description: Required when using company session token.
required: true
- name: createnewattack
method: POST
description: Create a new attack.
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: true
- name: halt
method: DELETE
description: Idempotently halt all active attacks
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: attacks-active
path: /attacks/active
operations:
- name: active
method: GET
description: List all active attacks.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: source
in: query
type: string
description: Filter attacks to either adhoc or scenario.
- name: pageSize
in: query
type: integer
description: This value determines how many results will be returned per call.
- name: teamId
in: query
type: string
description: Required when using company session token.
required: true
- name: attacks-active-paged
path: /attacks/active/paged
operations:
- name: activepaged
method: GET
description: Return a page of active ad-hoc experiments.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: pageSize
in: query
type: integer
description: This value determines how many results will be returned per call.
- name: pageToken
in: query
type: string
description: Pass the pageToken to get the next page of active ad-hoc experiments
- name: teamId
in: query
type: string
description: Required when using company session token.
required: true
- name: attacks-completed
path: /attacks/completed
operations:
- name: completed
method: GET
description: List all completed attacks.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: source
in: query
type: string
description: Filter attacks to either adhoc or scenario.
- name: pageSize
in: query
type: integer
description: This value determines how many results will be returned per call.
- name: teamId
in: query
type: string
description: Required when using company session token.
required: true
- name: attacks-completed-paged
path: /attacks/completed/paged
operations:
- name: completedpaged
method: GET
description: Return a page of completed ad-hoc experiments.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: pageSize
in: query
type: integer
description: This value determines how many results will be returned per call.
- name: pageToken
in: query
type: string
description: Pass the pageToken to get the next page of completed ad-hoc experiments
- name: teamId
in: query
type: string
description: Required when using company session token.
required: true
- name: attacks-halt
path: /attacks/halt
operations:
- name: haltaspost
method: POST
description: Idempotently halt all active attacks. This is a POST version of the DELETE operation.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: attacks-new
path: /attacks/new
operations:
- name: create
method: POST
description: Legacy Create Attack.
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: true
- name: attacks-range
path: /attacks/range
operations:
- name: allattacksinrange
method: GET
description: List all attacks in a given time range (defaults to all attacks up to now)
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: startTime
in: query
type: string
- name: endTime
in: query
type: string
- name: pageSize
in: query
type: integer
description: This value determines how many results will be returned per call.
- name: pageToken
in: query
type: string
- name: teamId
in: query
type: string
description: Required when using company session token.
required: true
- name: attacks-guid
path: /attacks/{guid}
operations:
- name: get
method: GET
description: Get details about an attack.
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: halt1
method: DELETE
description: Idempotently halt the specified active attack.
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: attacks-guid-annotations
path: /attacks/{guid}/annotations
operations:
- name: addannotations
method: PUT
description: Add annotations to an attack
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: body
in: body
type: object
description: Request body (JSON).
required: true
- name: attacks-guid-halt
path: /attacks/{guid}/halt
operations:
- name: haltaspost1
method: POST
description: Idempotently halt the specified active attack.
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: body
in: body
type: object
description: Request body (JSON).
required: false
exposes:
- type: rest
namespace: gremlin-attacks-rest
port: 8080
description: REST adapter for Gremlin API — attacks. One Spectral-compliant resource per consumed operation, prefixed
with /v1.
resources:
- path: /v1/attacks
name: attacks
description: REST surface for attacks.
operations:
- method: GET
name: all
description: List all attacks.
call: gremlin-attacks.all
with:
source: rest.source
pageSize: rest.pageSize
teamId: rest.teamId
outputParameters:
- type: object
mapping: $.
- method: POST
name: createnewattack
description: Create a new attack.
call: gremlin-attacks.createnewattack
with:
teamId: rest.teamId
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: halt
description: Idempotently halt all active attacks
call: gremlin-attacks.halt
outputParameters:
- type: object
mapping: $.
- path: /v1/attacks/active
name: attacks-active
description: REST surface for attacks-active.
operations:
- method: GET
name: active
description: List all active attacks.
call: gremlin-attacks.active
with:
source: rest.source
pageSize: rest.pageSize
teamId: rest.teamId
outputParameters:
- type: object
mapping: $.
- path: /v1/attacks/active/paged
name: attacks-active-paged
description: REST surface for attacks-active-paged.
operations:
- method: GET
name: activepaged
description: Return a page of active ad-hoc experiments.
call: gremlin-attacks.activepaged
with:
pageSize: rest.pageSize
pageToken: rest.pageToken
teamId: rest.teamId
outputParameters:
- type: object
mapping: $.
- path: /v1/attacks/completed
name: attacks-completed
description: REST surface for attacks-completed.
operations:
- method: GET
name: completed
description: List all completed attacks.
call: gremlin-attacks.completed
with:
source: rest.source
pageSize: rest.pageSize
teamId: rest.teamId
outputParameters:
- type: object
mapping: $.
- path: /v1/attacks/completed/paged
name: attacks-completed-paged
description: REST surface for attacks-completed-paged.
operations:
- method: GET
name: completedpaged
description: Return a page of completed ad-hoc experiments.
call: gremlin-attacks.completedpaged
with:
pageSize: rest.pageSize
pageToken: rest.pageToken
teamId: rest.teamId
outputParameters:
- type: object
mapping: $.
- path: /v1/attacks/halt
name: attacks-halt
description: REST surface for attacks-halt.
operations:
- method: POST
name: haltaspost
description: Idempotently halt all active attacks. This is a POST version of the DELETE operation.
call: gremlin-attacks.haltaspost
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/attacks/new
name: attacks-new
description: REST surface for attacks-new.
operations:
- method: POST
name: create
description: Legacy Create Attack.
call: gremlin-attacks.create
with:
teamId: rest.teamId
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/attacks/range
name: attacks-range
description: REST surface for attacks-range.
operations:
- method: GET
name: allattacksinrange
description: List all attacks in a given time range (defaults to all attacks up to now)
call: gremlin-attacks.allattacksinrange
with:
startTime: rest.startTime
endTime: rest.endTime
pageSize: rest.pageSize
pageToken: rest.pageToken
teamId: rest.teamId
outputParameters:
- type: object
mapping: $.
- path: /v1/attacks/{guid}
name: attacks-guid
description: REST surface for attacks-guid.
operations:
- method: GET
name: get
description: Get details about an attack.
call: gremlin-attacks.get
with:
guid: rest.guid
teamId: rest.teamId
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: halt1
description: Idempotently halt the specified active attack.
call: gremlin-attacks.halt1
with:
guid: rest.guid
teamId: rest.teamId
outputParameters:
- type: object
mapping: $.
- path: /v1/attacks/{guid}/annotations
name: attacks-guid-annotations
description: REST surface for attacks-guid-annotations.
operations:
- method: PUT
name: addannotations
description: Add annotations to an attack
call: gremlin-attacks.addannotations
with:
guid: rest.guid
teamId: rest.teamId
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/attacks/{guid}/halt
name: attacks-guid-halt
description: REST surface for attacks-guid-halt.
operations:
- method: POST
name: haltaspost1
description: Idempotently halt the specified active attack.
call: gremlin-attacks.haltaspost1
with:
guid: rest.guid
teamId: rest.teamId
body: rest.body
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: gremlin-attacks-mcp
port: 9090
transport: http
description: MCP adapter for Gremlin API — 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-attacks.all
with:
source: tools.source
pageSize: tools.pageSize
teamId: tools.teamId
outputParameters:
- type: object
mapping: $.
- name: create-new-attack
description: Create a new attack.
hints:
readOnly: false
destructive: false
idempotent: false
call: gremlin-attacks.createnewattack
with:
teamId: tools.teamId
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: idempotently-halt-all-active-attacks
description: Idempotently halt all active attacks
hints:
readOnly: false
destructive: true
idempotent: true
call: gremlin-attacks.halt
outputParameters:
- type: object
mapping: $.
- name: list-all-active-attacks
description: List all active attacks.
hints:
readOnly: true
destructive: false
idempotent: true
call: gremlin-attacks.active
with:
source: tools.source
pageSize: tools.pageSize
teamId: tools.teamId
outputParameters:
- type: object
mapping: $.
- name: return-page-active-ad-hoc
description: Return a page of active ad-hoc experiments.
hints:
readOnly: true
destructive: false
idempotent: true
call: gremlin-attacks.activepaged
with:
pageSize: tools.pageSize
pageToken: tools.pageToken
teamId: tools.teamId
outputParameters:
- type: object
mapping: $.
- name: list-all-completed-attacks
description: List all completed attacks.
hints:
readOnly: true
destructive: false
idempotent: true
call: gremlin-attacks.completed
with:
source: tools.source
pageSize: tools.pageSize
teamId: tools.teamId
outputParameters:
- type: object
mapping: $.
- name: return-page-completed-ad-hoc
description: Return a page of completed ad-hoc experiments.
hints:
readOnly: true
destructive: false
idempotent: true
call: gremlin-attacks.completedpaged
with:
pageSize: tools.pageSize
pageToken: tools.pageToken
teamId: tools.teamId
outputParameters:
- type: object
mapping: $.
- name: idempotently-halt-all-active-attacks-2
description: Idempotently halt all active attacks. This is a POST version of the DELETE operation.
hints:
readOnly: false
destructive: false
idempotent: false
call: gremlin-attacks.haltaspost
with:
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: legacy-create-attack
description: Legacy Create Attack.
hints:
readOnly: false
destructive: false
idempotent: false
call: gremlin-attacks.create
with:
teamId: tools.teamId
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: list-all-attacks-given-time
description: List all attacks in a given time range (defaults to all attacks up to now)
hints:
readOnly: true
destructive: false
idempotent: true
call: gremlin-attacks.allattacksinrange
with:
startTime: tools.startTime
endTime: tools.endTime
pageSize: tools.pageSize
pageToken: tools.pageToken
teamId: tools.teamId
outputParameters:
- type: object
mapping: $.
- name: get-details-about-attack
description: Get details about an attack.
hints:
readOnly: true
destructive: false
idempotent: true
call: gremlin-attacks.get
with:
guid: tools.guid
teamId: tools.teamId
outputParameters:
- type: object
mapping: $.
- name: idempotently-halt-specified-active-attack
description: Idempotently halt the specified active attack.
hints:
readOnly: false
destructive: true
idempotent: true
call: gremlin-attacks.halt1
with:
guid: tools.guid
teamId: tools.teamId
outputParameters:
- type: object
mapping: $.
- name: add-annotations-attack
description: Add annotations to an attack
hints:
readOnly: false
destructive: false
idempotent: true
call: gremlin-attacks.addannotations
with:
guid: tools.guid
teamId: tools.teamId
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: idempotently-halt-specified-active-attack-2
description: Idempotently halt the specified active attack.
hints:
readOnly: false
destructive: false
idempotent: false
call: gremlin-attacks.haltaspost1
with:
guid: tools.guid
teamId: tools.teamId
body: tools.body
outputParameters:
- type: object
mapping: $.