naftiko: 1.0.0-alpha2 info: label: Gremlin API — disaster-recovery-tests description: 'Gremlin API — disaster-recovery-tests. 10 operations. Lead operation: Creates a disaster recovery test for a company. Self-contained Naftiko capability covering one Gremlin business surface.' tags: - Gremlin - disaster-recovery-tests created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GREMLIN_API_KEY: GREMLIN_API_KEY capability: consumes: - type: http namespace: gremlin-disaster-recovery-tests baseUri: https://api.gremlin.com/v1 description: Gremlin API — disaster-recovery-tests business capability. Self-contained, no shared references. resources: - name: disaster-recovery-tests path: /disaster-recovery-tests operations: - name: createlargescaletest method: POST description: Creates a disaster recovery test for a company outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: disaster-recovery-tests-active path: /disaster-recovery-tests/active operations: - name: getactivelargescaletests method: GET description: Gets all active disaster recovery tests for a company outputRawFormat: json outputParameters: - name: result type: object value: $. - name: disaster-recovery-tests-draft path: /disaster-recovery-tests/draft operations: - name: getdraftlargescaletests method: GET description: Gets all draft disaster recovery tests for a company outputRawFormat: json outputParameters: - name: result type: object value: $. - name: disaster-recovery-tests-identifier path: /disaster-recovery-tests/{identifier} operations: - name: getlargescaletest1 method: GET description: Gets a disaster recovery test, complete with service details outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: identifier in: path type: string required: true - name: updatelargescaletest method: PUT description: Updates a disaster recovery test for a company outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: identifier in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: false - name: deletelargescaletest method: DELETE description: Submits a task to delete a disaster recovery test for a company outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: identifier in: path type: string required: true - name: disaster-recovery-tests-identifier-complete path: /disaster-recovery-tests/{identifier}/complete operations: - name: completelargescaletest method: POST description: Marks a disaster recovery test for a company as completed, generating a report outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: identifier in: path type: string required: true - name: disaster-recovery-tests-identifier-halt-all path: /disaster-recovery-tests/{identifier}/halt-all operations: - name: haltallserviceruns method: POST description: Halts all active scenario runs for all services for the disaster recovery test outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: identifier in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: false - name: disaster-recovery-tests-identifier-run path: /disaster-recovery-tests/{identifier}/run operations: - name: runtestforsingleservice method: POST description: Creates a scenario run for the specified service as part of the disaster recovery test outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: identifier 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 - name: disaster-recovery-tests-identifier-run-all path: /disaster-recovery-tests/{identifier}/run-all operations: - name: runtestforallservices method: POST description: Creates scenario runs for all eligible services for the disaster recovery test outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: identifier in: path type: string required: true exposes: - type: rest namespace: gremlin-disaster-recovery-tests-rest port: 8080 description: REST adapter for Gremlin API — disaster-recovery-tests. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/disaster-recovery-tests name: disaster-recovery-tests description: REST surface for disaster-recovery-tests. operations: - method: POST name: createlargescaletest description: Creates a disaster recovery test for a company call: gremlin-disaster-recovery-tests.createlargescaletest with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/disaster-recovery-tests/active name: disaster-recovery-tests-active description: REST surface for disaster-recovery-tests-active. operations: - method: GET name: getactivelargescaletests description: Gets all active disaster recovery tests for a company call: gremlin-disaster-recovery-tests.getactivelargescaletests outputParameters: - type: object mapping: $. - path: /v1/disaster-recovery-tests/draft name: disaster-recovery-tests-draft description: REST surface for disaster-recovery-tests-draft. operations: - method: GET name: getdraftlargescaletests description: Gets all draft disaster recovery tests for a company call: gremlin-disaster-recovery-tests.getdraftlargescaletests outputParameters: - type: object mapping: $. - path: /v1/disaster-recovery-tests/{identifier} name: disaster-recovery-tests-identifier description: REST surface for disaster-recovery-tests-identifier. operations: - method: GET name: getlargescaletest1 description: Gets a disaster recovery test, complete with service details call: gremlin-disaster-recovery-tests.getlargescaletest1 with: identifier: rest.identifier outputParameters: - type: object mapping: $. - method: PUT name: updatelargescaletest description: Updates a disaster recovery test for a company call: gremlin-disaster-recovery-tests.updatelargescaletest with: identifier: rest.identifier body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletelargescaletest description: Submits a task to delete a disaster recovery test for a company call: gremlin-disaster-recovery-tests.deletelargescaletest with: identifier: rest.identifier outputParameters: - type: object mapping: $. - path: /v1/disaster-recovery-tests/{identifier}/complete name: disaster-recovery-tests-identifier-complete description: REST surface for disaster-recovery-tests-identifier-complete. operations: - method: POST name: completelargescaletest description: Marks a disaster recovery test for a company as completed, generating a report call: gremlin-disaster-recovery-tests.completelargescaletest with: identifier: rest.identifier outputParameters: - type: object mapping: $. - path: /v1/disaster-recovery-tests/{identifier}/halt-all name: disaster-recovery-tests-identifier-halt-all description: REST surface for disaster-recovery-tests-identifier-halt-all. operations: - method: POST name: haltallserviceruns description: Halts all active scenario runs for all services for the disaster recovery test call: gremlin-disaster-recovery-tests.haltallserviceruns with: identifier: rest.identifier body: rest.body outputParameters: - type: object mapping: $. - path: /v1/disaster-recovery-tests/{identifier}/run name: disaster-recovery-tests-identifier-run description: REST surface for disaster-recovery-tests-identifier-run. operations: - method: POST name: runtestforsingleservice description: Creates a scenario run for the specified service as part of the disaster recovery test call: gremlin-disaster-recovery-tests.runtestforsingleservice with: identifier: rest.identifier teamId: rest.teamId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/disaster-recovery-tests/{identifier}/run-all name: disaster-recovery-tests-identifier-run-all description: REST surface for disaster-recovery-tests-identifier-run-all. operations: - method: POST name: runtestforallservices description: Creates scenario runs for all eligible services for the disaster recovery test call: gremlin-disaster-recovery-tests.runtestforallservices with: identifier: rest.identifier outputParameters: - type: object mapping: $. - type: mcp namespace: gremlin-disaster-recovery-tests-mcp port: 9090 transport: http description: MCP adapter for Gremlin API — disaster-recovery-tests. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: creates-disaster-recovery-test-company description: Creates a disaster recovery test for a company hints: readOnly: true destructive: false idempotent: false call: gremlin-disaster-recovery-tests.createlargescaletest with: body: tools.body outputParameters: - type: object mapping: $. - name: gets-all-active-disaster-recovery description: Gets all active disaster recovery tests for a company hints: readOnly: true destructive: false idempotent: true call: gremlin-disaster-recovery-tests.getactivelargescaletests outputParameters: - type: object mapping: $. - name: gets-all-draft-disaster-recovery description: Gets all draft disaster recovery tests for a company hints: readOnly: true destructive: false idempotent: true call: gremlin-disaster-recovery-tests.getdraftlargescaletests outputParameters: - type: object mapping: $. - name: gets-disaster-recovery-test-complete description: Gets a disaster recovery test, complete with service details hints: readOnly: true destructive: false idempotent: true call: gremlin-disaster-recovery-tests.getlargescaletest1 with: identifier: tools.identifier outputParameters: - type: object mapping: $. - name: updates-disaster-recovery-test-company description: Updates a disaster recovery test for a company hints: readOnly: false destructive: false idempotent: true call: gremlin-disaster-recovery-tests.updatelargescaletest with: identifier: tools.identifier body: tools.body outputParameters: - type: object mapping: $. - name: submits-task-delete-disaster-recovery description: Submits a task to delete a disaster recovery test for a company hints: readOnly: false destructive: true idempotent: true call: gremlin-disaster-recovery-tests.deletelargescaletest with: identifier: tools.identifier outputParameters: - type: object mapping: $. - name: marks-disaster-recovery-test-company description: Marks a disaster recovery test for a company as completed, generating a report hints: readOnly: true destructive: false idempotent: false call: gremlin-disaster-recovery-tests.completelargescaletest with: identifier: tools.identifier outputParameters: - type: object mapping: $. - name: halts-all-active-scenario-runs description: Halts all active scenario runs for all services for the disaster recovery test hints: readOnly: false destructive: false idempotent: false call: gremlin-disaster-recovery-tests.haltallserviceruns with: identifier: tools.identifier body: tools.body outputParameters: - type: object mapping: $. - name: creates-scenario-run-specified-service description: Creates a scenario run for the specified service as part of the disaster recovery test hints: readOnly: false destructive: false idempotent: false call: gremlin-disaster-recovery-tests.runtestforsingleservice with: identifier: tools.identifier teamId: tools.teamId body: tools.body outputParameters: - type: object mapping: $. - name: creates-scenario-runs-all-eligible description: Creates scenario runs for all eligible services for the disaster recovery test hints: readOnly: false destructive: false idempotent: false call: gremlin-disaster-recovery-tests.runtestforallservices with: identifier: tools.identifier outputParameters: - type: object mapping: $.