naftiko: 1.0.0-alpha2 info: label: Gremlin API — external-integrations description: 'Gremlin API — external-integrations. 10 operations. Lead operation: Get external integrations by type.. Self-contained Naftiko capability covering one Gremlin business surface.' tags: - Gremlin - external-integrations created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GREMLIN_API_KEY: GREMLIN_API_KEY capability: consumes: - type: http namespace: gremlin-external-integrations baseUri: https://api.gremlin.com/v1 description: Gremlin API — external-integrations business capability. Self-contained, no shared references. resources: - name: external-integrations path: /external-integrations operations: - name: get4 method: GET description: Get external integrations by type. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: type in: query type: string required: true - name: teamId in: query type: string description: Required when using company session token. required: true - name: revoke method: DELETE description: Delete an external integration. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: type in: query type: string required: true - name: teamId in: query type: string description: Required when using company session token. required: true - name: external-integrations-load-generator path: /external-integrations/load-generator operations: - name: getloadgeneratorintegrations method: GET description: Get team integrations that are compatible with Load Generators. 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: updateloadgeneratorintegration method: PUT description: Update a team integration that is compatible with Load Generators. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: type in: query type: string required: true - name: name in: query 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: true - name: createloadgeneratorintegration method: POST description: Create new team integration that is compatible with Load Generators. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: type in: query 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: true - name: removeloadgeneratorintegration method: DELETE description: Remove a team integration that is compatible with Load Generators. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: type in: query type: string required: true - name: name in: query type: string required: true - name: teamId in: query type: string description: Required when using company session token. required: true - name: external-integrations-status-check path: /external-integrations/status-check operations: - name: getstatuscheckintegrations method: GET description: Get team integrations that are compatible with Health Checks. 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: updatestatuscheckintegration method: PUT description: Update a team integration that is compatible with Health Checks. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: type in: query type: string - name: observabilityToolType in: query type: string - name: domain in: query type: string - name: name in: query 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: true - name: createstatuscheckintegration method: POST description: Create new team integration that is compatible with Health Checks. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: type in: query type: string - name: observabilityToolType in: query type: string - name: domain in: query type: string - 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: removestatuscheckintegration method: DELETE description: Remove a team integration that is compatible with Health Checks. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: type in: query type: string - name: observabilityToolType in: query type: string - name: domain in: query type: string - name: name in: query type: string required: true - name: teamId in: query type: string description: Required when using company session token. required: true exposes: - type: rest namespace: gremlin-external-integrations-rest port: 8080 description: REST adapter for Gremlin API — external-integrations. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/external-integrations name: external-integrations description: REST surface for external-integrations. operations: - method: GET name: get4 description: Get external integrations by type. call: gremlin-external-integrations.get4 with: type: rest.type teamId: rest.teamId outputParameters: - type: object mapping: $. - method: DELETE name: revoke description: Delete an external integration. call: gremlin-external-integrations.revoke with: type: rest.type teamId: rest.teamId outputParameters: - type: object mapping: $. - path: /v1/external-integrations/load-generator name: external-integrations-load-generator description: REST surface for external-integrations-load-generator. operations: - method: GET name: getloadgeneratorintegrations description: Get team integrations that are compatible with Load Generators. call: gremlin-external-integrations.getloadgeneratorintegrations with: teamId: rest.teamId outputParameters: - type: object mapping: $. - method: PUT name: updateloadgeneratorintegration description: Update a team integration that is compatible with Load Generators. call: gremlin-external-integrations.updateloadgeneratorintegration with: type: rest.type name: rest.name teamId: rest.teamId body: rest.body outputParameters: - type: object mapping: $. - method: POST name: createloadgeneratorintegration description: Create new team integration that is compatible with Load Generators. call: gremlin-external-integrations.createloadgeneratorintegration with: type: rest.type teamId: rest.teamId body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: removeloadgeneratorintegration description: Remove a team integration that is compatible with Load Generators. call: gremlin-external-integrations.removeloadgeneratorintegration with: type: rest.type name: rest.name teamId: rest.teamId outputParameters: - type: object mapping: $. - path: /v1/external-integrations/status-check name: external-integrations-status-check description: REST surface for external-integrations-status-check. operations: - method: GET name: getstatuscheckintegrations description: Get team integrations that are compatible with Health Checks. call: gremlin-external-integrations.getstatuscheckintegrations with: teamId: rest.teamId outputParameters: - type: object mapping: $. - method: PUT name: updatestatuscheckintegration description: Update a team integration that is compatible with Health Checks. call: gremlin-external-integrations.updatestatuscheckintegration with: type: rest.type observabilityToolType: rest.observabilityToolType domain: rest.domain name: rest.name teamId: rest.teamId body: rest.body outputParameters: - type: object mapping: $. - method: POST name: createstatuscheckintegration description: Create new team integration that is compatible with Health Checks. call: gremlin-external-integrations.createstatuscheckintegration with: type: rest.type observabilityToolType: rest.observabilityToolType domain: rest.domain teamId: rest.teamId body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: removestatuscheckintegration description: Remove a team integration that is compatible with Health Checks. call: gremlin-external-integrations.removestatuscheckintegration with: type: rest.type observabilityToolType: rest.observabilityToolType domain: rest.domain name: rest.name teamId: rest.teamId outputParameters: - type: object mapping: $. - type: mcp namespace: gremlin-external-integrations-mcp port: 9090 transport: http description: MCP adapter for Gremlin API — external-integrations. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-external-integrations-type description: Get external integrations by type. hints: readOnly: true destructive: false idempotent: true call: gremlin-external-integrations.get4 with: type: tools.type teamId: tools.teamId outputParameters: - type: object mapping: $. - name: delete-external-integration description: Delete an external integration. hints: readOnly: false destructive: true idempotent: true call: gremlin-external-integrations.revoke with: type: tools.type teamId: tools.teamId outputParameters: - type: object mapping: $. - name: get-team-integrations-that-are description: Get team integrations that are compatible with Load Generators. hints: readOnly: true destructive: false idempotent: true call: gremlin-external-integrations.getloadgeneratorintegrations with: teamId: tools.teamId outputParameters: - type: object mapping: $. - name: update-team-integration-that-is description: Update a team integration that is compatible with Load Generators. hints: readOnly: false destructive: false idempotent: true call: gremlin-external-integrations.updateloadgeneratorintegration with: type: tools.type name: tools.name teamId: tools.teamId body: tools.body outputParameters: - type: object mapping: $. - name: create-new-team-integration-that description: Create new team integration that is compatible with Load Generators. hints: readOnly: false destructive: false idempotent: false call: gremlin-external-integrations.createloadgeneratorintegration with: type: tools.type teamId: tools.teamId body: tools.body outputParameters: - type: object mapping: $. - name: remove-team-integration-that-is description: Remove a team integration that is compatible with Load Generators. hints: readOnly: false destructive: true idempotent: true call: gremlin-external-integrations.removeloadgeneratorintegration with: type: tools.type name: tools.name teamId: tools.teamId outputParameters: - type: object mapping: $. - name: get-team-integrations-that-are-2 description: Get team integrations that are compatible with Health Checks. hints: readOnly: true destructive: false idempotent: true call: gremlin-external-integrations.getstatuscheckintegrations with: teamId: tools.teamId outputParameters: - type: object mapping: $. - name: update-team-integration-that-is-2 description: Update a team integration that is compatible with Health Checks. hints: readOnly: false destructive: false idempotent: true call: gremlin-external-integrations.updatestatuscheckintegration with: type: tools.type observabilityToolType: tools.observabilityToolType domain: tools.domain name: tools.name teamId: tools.teamId body: tools.body outputParameters: - type: object mapping: $. - name: create-new-team-integration-that-2 description: Create new team integration that is compatible with Health Checks. hints: readOnly: false destructive: false idempotent: false call: gremlin-external-integrations.createstatuscheckintegration with: type: tools.type observabilityToolType: tools.observabilityToolType domain: tools.domain teamId: tools.teamId body: tools.body outputParameters: - type: object mapping: $. - name: remove-team-integration-that-is-2 description: Remove a team integration that is compatible with Health Checks. hints: readOnly: false destructive: true idempotent: true call: gremlin-external-integrations.removestatuscheckintegration with: type: tools.type observabilityToolType: tools.observabilityToolType domain: tools.domain name: tools.name teamId: tools.teamId outputParameters: - type: object mapping: $.