naftiko: 1.0.0-alpha2 info: label: Gremlin API — apikeys description: 'Gremlin API — apikeys. 7 operations. Lead operation: List all API Keys. Self-contained Naftiko capability covering one Gremlin business surface.' tags: - Gremlin - apikeys created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GREMLIN_API_KEY: GREMLIN_API_KEY capability: consumes: - type: http namespace: gremlin-apikeys baseUri: https://api.gremlin.com/v1 description: Gremlin API — apikeys business capability. Self-contained, no shared references. resources: - name: apikeys path: /apikeys operations: - name: listall method: GET description: List all API Keys outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createnew method: POST description: Create a new API Key outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: apikeys-active path: /apikeys/active operations: - name: listactive method: GET description: List active API Keys outputRawFormat: json outputParameters: - name: result type: object value: $. - name: apikeys-all-for-company path: /apikeys/all-for-company operations: - name: listallforcompany method: GET description: List all API Keys for company outputRawFormat: json outputParameters: - name: result type: object value: $. - name: apikeys-identifier path: /apikeys/{identifier} operations: - name: revoke3 method: DELETE description: Revoke an existing API Key outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: identifier in: path type: string required: true - name: apikeys-identifier-activate path: /apikeys/{identifier}/activate operations: - name: activate2 method: PUT description: Un-Revoke an existing API Key outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: identifier in: path type: string required: true - name: apikeys-identifier-expiration path: /apikeys/{identifier}/expiration operations: - name: expiration method: PUT description: Set a new expiration on key outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: identifier in: path type: string required: true - name: expiresAt in: query type: string exposes: - type: rest namespace: gremlin-apikeys-rest port: 8080 description: REST adapter for Gremlin API — apikeys. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/apikeys name: apikeys description: REST surface for apikeys. operations: - method: GET name: listall description: List all API Keys call: gremlin-apikeys.listall outputParameters: - type: object mapping: $. - method: POST name: createnew description: Create a new API Key call: gremlin-apikeys.createnew with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/apikeys/active name: apikeys-active description: REST surface for apikeys-active. operations: - method: GET name: listactive description: List active API Keys call: gremlin-apikeys.listactive outputParameters: - type: object mapping: $. - path: /v1/apikeys/all-for-company name: apikeys-all-for-company description: REST surface for apikeys-all-for-company. operations: - method: GET name: listallforcompany description: List all API Keys for company call: gremlin-apikeys.listallforcompany outputParameters: - type: object mapping: $. - path: /v1/apikeys/{identifier} name: apikeys-identifier description: REST surface for apikeys-identifier. operations: - method: DELETE name: revoke3 description: Revoke an existing API Key call: gremlin-apikeys.revoke3 with: identifier: rest.identifier outputParameters: - type: object mapping: $. - path: /v1/apikeys/{identifier}/activate name: apikeys-identifier-activate description: REST surface for apikeys-identifier-activate. operations: - method: PUT name: activate2 description: Un-Revoke an existing API Key call: gremlin-apikeys.activate2 with: identifier: rest.identifier outputParameters: - type: object mapping: $. - path: /v1/apikeys/{identifier}/expiration name: apikeys-identifier-expiration description: REST surface for apikeys-identifier-expiration. operations: - method: PUT name: expiration description: Set a new expiration on key call: gremlin-apikeys.expiration with: identifier: rest.identifier expiresAt: rest.expiresAt outputParameters: - type: object mapping: $. - type: mcp namespace: gremlin-apikeys-mcp port: 9090 transport: http description: MCP adapter for Gremlin API — apikeys. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-all-api-keys description: List all API Keys hints: readOnly: true destructive: false idempotent: true call: gremlin-apikeys.listall outputParameters: - type: object mapping: $. - name: create-new-api-key description: Create a new API Key hints: readOnly: false destructive: false idempotent: false call: gremlin-apikeys.createnew with: body: tools.body outputParameters: - type: object mapping: $. - name: list-active-api-keys description: List active API Keys hints: readOnly: true destructive: false idempotent: true call: gremlin-apikeys.listactive outputParameters: - type: object mapping: $. - name: list-all-api-keys-company description: List all API Keys for company hints: readOnly: true destructive: false idempotent: true call: gremlin-apikeys.listallforcompany outputParameters: - type: object mapping: $. - name: revoke-existing-api-key description: Revoke an existing API Key hints: readOnly: false destructive: true idempotent: true call: gremlin-apikeys.revoke3 with: identifier: tools.identifier outputParameters: - type: object mapping: $. - name: un-revoke-existing-api-key description: Un-Revoke an existing API Key hints: readOnly: false destructive: false idempotent: true call: gremlin-apikeys.activate2 with: identifier: tools.identifier outputParameters: - type: object mapping: $. - name: set-new-expiration-key description: Set a new expiration on key hints: readOnly: false destructive: false idempotent: true call: gremlin-apikeys.expiration with: identifier: tools.identifier expiresAt: tools.expiresAt outputParameters: - type: object mapping: $.