Gremlin disaster-recovery-tests API
Create, get, list, run, and complete disaster recovery tests
Create, get, list, run, and complete disaster recovery tests
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/gremlin-disaster-recovery-tests-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.0.1
info:
title: Gremlin agents disaster-recovery-tests API
description: The API for interacting with the Gremlin Failure-as-a-Service platform
termsOfService: https://www.gremlin.com/terms_of_service_2017_03_24
contact:
name: Gremlin Support
email: support@gremlin.com
license:
name: Gremlin License
url: https://www.gremlin.com/license_2017_03_24
version: '1.0'
servers:
- url: https://api.gremlin.com/v1
description: Gremlin API v1
tags:
- name: disaster-recovery-tests
description: Create, get, list, run, and complete disaster recovery tests
paths:
/disaster-recovery-tests/{identifier}/complete:
post:
tags:
- disaster-recovery-tests
summary: Marks a disaster recovery test for a company as completed, generating a report
description: Requires the privilege [`DISASTER_RECOVERY_TESTS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: completeLargeScaleTest
parameters:
- name: identifier
in: path
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/LargeScaleTestResponse'
'403':
description: 'User requires privilege: DISASTER_RECOVERY_TESTS_WRITE'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- DISASTER_RECOVERY_TESTS_WRITE
/disaster-recovery-tests:
post:
tags:
- disaster-recovery-tests
summary: Creates a disaster recovery test for a company
description: Requires the privilege [`DISASTER_RECOVERY_TESTS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: createLargeScaleTest
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateOrUpdateLargeScaleTestRequest'
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/LargeScaleTestResponse'
'403':
description: 'User requires privilege: DISASTER_RECOVERY_TESTS_WRITE'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- DISASTER_RECOVERY_TESTS_WRITE
/disaster-recovery-tests/{identifier}:
get:
tags:
- disaster-recovery-tests
summary: Gets a disaster recovery test, complete with service details
description: Requires the privilege [`DISASTER_RECOVERY_TESTS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: getLargeScaleTest_1
parameters:
- name: identifier
in: path
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/LargeScaleTestResponse'
'403':
description: 'User requires privilege: DISASTER_RECOVERY_TESTS_READ'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- DISASTER_RECOVERY_TESTS_READ
put:
tags:
- disaster-recovery-tests
summary: Updates a disaster recovery test for a company
description: Requires the privilege [`DISASTER_RECOVERY_TESTS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: updateLargeScaleTest
parameters:
- name: identifier
in: path
required: true
schema:
type: string
requestBody:
content:
'*/*':
schema:
$ref: '#/components/schemas/CreateOrUpdateLargeScaleTestRequest'
responses:
default:
description: default response
content:
application/json: {}
'403':
description: 'User requires privilege: DISASTER_RECOVERY_TESTS_WRITE'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- DISASTER_RECOVERY_TESTS_WRITE
delete:
tags:
- disaster-recovery-tests
summary: Submits a task to delete a disaster recovery test for a company
description: Requires the privilege [`DISASTER_RECOVERY_TESTS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: deleteLargeScaleTest
parameters:
- name: identifier
in: path
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json: {}
'403':
description: 'User requires privilege: DISASTER_RECOVERY_TESTS_WRITE'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- DISASTER_RECOVERY_TESTS_WRITE
/disaster-recovery-tests/active:
get:
tags:
- disaster-recovery-tests
summary: Gets all active disaster recovery tests for a company
description: Requires the privilege [`DISASTER_RECOVERY_TESTS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: getActiveLargeScaleTests
parameters: []
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/GetLargeScaleTestsResponse'
'403':
description: 'User requires privilege: DISASTER_RECOVERY_TESTS_READ'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- DISASTER_RECOVERY_TESTS_READ
/disaster-recovery-tests/draft:
get:
tags:
- disaster-recovery-tests
summary: Gets all draft disaster recovery tests for a company
description: Requires the privilege [`DISASTER_RECOVERY_TESTS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: getDraftLargeScaleTests
parameters: []
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/GetLargeScaleTestsResponse'
'403':
description: 'User requires privilege: DISASTER_RECOVERY_TESTS_READ'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- DISASTER_RECOVERY_TESTS_READ
/disaster-recovery-tests/{identifier}/halt-all:
post:
tags:
- disaster-recovery-tests
summary: Halts all active scenario runs for all services for the disaster recovery test
description: Requires the privilege [`DISASTER_RECOVERY_TESTS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: haltAllServiceRuns
parameters:
- name: identifier
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/HaltRequest'
responses:
default:
description: default response
content:
application/json: {}
'403':
description: 'User requires privilege: DISASTER_RECOVERY_TESTS_WRITE'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- DISASTER_RECOVERY_TESTS_WRITE
/disaster-recovery-tests/{identifier}/run-all:
post:
tags:
- disaster-recovery-tests
summary: Creates scenario runs for all eligible services for the disaster recovery test
description: Requires the privilege [`DISASTER_RECOVERY_TESTS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: runTestForAllServices
parameters:
- name: identifier
in: path
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/RunScenarioTestResponse'
'403':
description: 'User requires privilege: DISASTER_RECOVERY_TESTS_WRITE'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- DISASTER_RECOVERY_TESTS_WRITE
/disaster-recovery-tests/{identifier}/run:
post:
tags:
- disaster-recovery-tests
summary: Creates a scenario run for the specified service as part of the disaster recovery test
description: Requires the privilege [`MINIMUM_TEAM_PRIVILEGES`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: runTestForSingleService
parameters:
- name: identifier
in: path
required: true
schema:
type: string
- name: teamId
in: query
description: Required when using company session token.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RunScenarioTestRequest'
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/ScenarioRunDetails'
'403':
description: 'User requires privilege for target team: MINIMUM_TEAM_PRIVILEGES'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- MINIMUM_TEAM_PRIVILEGES
components:
schemas:
TestSuiteScenario:
required:
- description
- name
- policyCategory
- scenarioToPromote
type: object
properties:
name:
type: string
description:
type: string
policyCategory:
type: string
enum:
- OTHER
- REDUNDANCY
- SCALABILITY
- DEPENDENCIES
- RISKS
- EXTRA_CREDIT
scenarioToPromote:
$ref: '#/components/schemas/ScenarioToPromote'
ResponseBodyEvaluation:
required:
- op
- predicates
type: object
properties:
op:
type: string
description: The operation to logically combine predicates into a success or failure
enum:
- AND
- OR
predicates:
type: array
description: The list of predicates to evaluate against the status check response body
items:
$ref: '#/components/schemas/PredicateObject'
description: The configuration for evaluating the success of a response body
StatusCheckNodeRequest:
type: object
properties:
type:
type: string
discriminator:
propertyName: type
RunScenarioTestRequest:
type: object
properties:
serviceId:
type: string
teamId:
type: string
HaltRequest:
type: object
properties:
reason:
type: string
description: The reason why this halt this requested.
reference:
type: string
description: A reference to why this halt was requested.
HasCompareFunctionObject:
type: object
ServiceRunDetails:
type: object
properties:
teamId:
type: string
teamName:
type: string
serviceId:
type: string
serviceName:
type: string
multiSelectTags:
type: object
additionalProperties:
type: array
items:
type: string
scenarioRunId:
type: string
scenarioRunNumber:
type: integer
format: int64
scenarioRunStage:
type: string
scenarioPassCriteria:
type: string
enum:
- ALL_PASS
- AT_LEAST_ONE_FAILED
scenarioRunStatus:
type: string
scenarioRunStartTime:
type: string
format: date-time
scenarioRunEndTime:
type: string
format: date-time
RunScenarioTestResponse:
type: object
properties:
runDetails:
type: array
items:
$ref: '#/components/schemas/ScenarioRunDetails'
errorsPerService:
type: array
items:
$ref: '#/components/schemas/ServiceScenarioRunError'
EndpointConfiguration:
required:
- url
type: object
properties:
url:
type: string
description: The URL of the status check
format: url
method:
type: string
description: The method type of the status check
enum:
- GET
- POST
- PUT
- PATCH
headers:
type: object
additionalProperties:
type: string
description: Optional request headers to be used when the status check is invoked
description: Optional request headers to be used when the status check is invoked
payload:
type: string
description: Payload for POST type of request
headersArn:
type: string
description: Optional request headers pulled from a remote AWS resource holding JSON-encoded key-values that make up the headers
TeamServiceKey:
type: object
properties:
teamId:
type: string
serviceId:
type: string
ServiceScenarioRunError:
type: object
properties:
teamId:
type: string
serviceId:
type: string
errorType:
type: string
enum:
- HALT_IN_PROGRESS
- RUN_IN_PROGRESS
- INELIGIBLE_SERVICE
- HEALTH_CHECK_IN_ALARM
errorMessage:
type: string
LargeScaleTestResponse:
type: object
properties:
companyId:
type: string
identifier:
type: string
name:
type: string
state:
type: string
enum:
- DRAFT
- ACTIVE
- COMPLETED
reliabilityTestId:
type: string
reliabilityTestName:
type: string
estimatedDuration:
type: integer
format: int64
startDateTime:
type: string
format: date-time
endDateTime:
type: string
format: date-time
latestServiceRuns:
type: array
items:
$ref: '#/components/schemas/ServiceRunDetails'
statusChecks:
type: array
items:
$ref: '#/components/schemas/StatusCheckNode'
scenarioOverrides:
$ref: '#/components/schemas/ScenarioOverrides'
StatusCheckNode:
type: object
allOf:
- $ref: '#/components/schemas/GraphNodeObject'
- type: object
properties:
state:
$ref: '#/components/schemas/State'
name:
type: string
description:
type: string
thirdPartyPresets:
type: string
category:
type: string
enum:
- ERRORS
- LATENCY
- REQUESTS
- UNKNOWN
requestConfiguration:
$ref: '#/components/schemas/StatusCheckNodeRequest'
endpointConfiguration:
$ref: '#/components/schemas/EndpointConfiguration'
rawEndpointConfiguration:
$ref: '#/components/schemas/EndpointConfiguration'
evaluationConfiguration:
$ref: '#/components/schemas/EvaluationConfiguration'
statusCheckId:
type: string
externalIntegrationId:
type: string
statusCheckReferenceId:
type: string
isPrivateNetwork:
type: boolean
isHaltable:
type: boolean
payload:
type: string
isAutoGenerated:
type: boolean
autoGeneratedStatusCheckId:
type: string
resourceIdentifier:
type: string
statusCheckRequest:
$ref: '#/components/schemas/StatusCheckNodeRequest'
intervalSeconds:
type: integer
format: int32
additionalTimeInSecsToRunAfterCompletion:
type: integer
format: int32
ScenarioOverrides:
type: object
properties:
zones:
type: array
items:
type: string
dns:
type: string
failureFlag:
$ref: '#/components/schemas/Selector'
GraphNodeObject:
type: object
properties:
type:
type: string
enum:
- Concurrent
- ContinuousStatusCheck
- StatusCheckNode
- Delay
- InfraAttack
- SynchronousStatusCheck
- Continuous
- FailureFlag
- ExternalAction
- RollbackExternalAction
id:
type: string
state:
type: object
readOnly: true
guid:
type: string
next:
type: string
discriminator:
propertyName: type
StatusCheckInput:
required:
- statusCheck
type: object
properties:
teamId:
type: string
statusCheck:
$ref: '#/components/schemas/StatusCheckNode'
EvaluationConfiguration:
required:
- okStatusCodes
type: object
properties:
okLatencyMaxMs:
type: integer
description: The maximum latency in milliseconds for a successful status check
format: int32
okStatusCodes:
type: array
description: The list of successful response status codes for a successful status check
items:
type: string
description: The list of successful response status codes for a successful status check
responseBodyEvaluation:
$ref: '#/components/schemas/ResponseBodyEvaluation'
description: The configuration for evaluating the success/failure of a status check
ScenarioRunDetails:
type: object
properties:
teamId:
type: string
serviceId:
type: string
runNumber:
type: integer
format: int64
State:
type: object
properties:
lifecycle:
type: string
enum:
- NotStarted
- Active
- HaltRequested
- Successful
- Halted
- Failed
startTime:
type: string
format: date-time
endTime:
type: string
format: date-time
failedReason:
type: string
nodeHaltedByGuid:
type: string
nodeHaltedById:
type: string
readOnly: true
CreateOrUpdateLargeScaleTestRequest:
title: CreateOrUpdateLargeScaleTestRequest.Input
required:
- name
- serviceKeys
- statusChecks
type: object
properties:
identifier:
type: string
companyId:
type: string
name:
type: string
scenario:
$ref: '#/components/schemas/TestSuiteScenario'
reliabilityTestId:
type: string
scenarioOverrides:
$ref: '#/components/schemas/ScenarioOverrides'
statusChecks:
type: array
items:
$ref: '#/components/schemas/StatusCheckInput'
serviceKeys:
type: array
items:
$ref: '#/components/schemas/TeamServiceKey'
description: Create a request to create or update a disaster recovery test for a company
Selector:
required:
- labels
- name
type: object
properties:
name:
type: string
labels:
type: object
additionalProperties:
type: array
description: Label selectors for matching resources
example:
foo:
- bar
- baz
items:
type: string
description: Label selectors for matching resources
example: '{"foo":["bar","baz"]}'
description: Label selectors for matching resources
example:
foo:
- bar
- baz
ScenarioToPromote:
required:
- scenarioId
- scenarioType
type: object
properties:
scenarioId:
type: string
scenarioType:
type: string
enum:
- RECOMMENDED
- SHARED
- GENERAL
teamId:
type: string
PredicateObject:
required:
- jpQuery
- rValue
- type
type: object
properties:
comparator:
$ref: '#/components/schemas/HasCompareFunctionObject'
type:
type: string
description: The type of primitive this predicate operates on
enum:
- String
- Number
- Boolean
jpQuery:
type: string
description: The json path query to run to read from the response body
rValue:
type: object
description: The right hand value of the predicate
description: The list of predicates to evaluate against the status check response body
discriminator:
propertyName: type
GetLargeScaleTestsResponse:
type: object
properties:
disasterRecoveryTests:
type: array
items:
$ref: '#/components/schemas/LargeScaleTestResponse'