naftiko: 1.0.0-alpha2 info: label: elastic.io Platform REST API — Topics description: 'elastic.io Platform REST API — Topics. 4 operations. Lead operation: Elastic.io List topics. Self-contained Naftiko capability covering one Elastic Io business surface.' tags: - Elastic Io - Topics created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: ELASTIC_IO_API_KEY: ELASTIC_IO_API_KEY capability: consumes: - type: http namespace: platform-topics baseUri: https://api.elastic.io/v2 description: elastic.io Platform REST API — Topics business capability. Self-contained, no shared references. resources: - name: topics path: /topics operations: - name: listtopics method: GET description: Elastic.io List topics outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createtopic method: POST description: Elastic.io Create a topic outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: topics-topic_id path: /topics/{topic_id} operations: - name: gettopic method: GET description: Elastic.io Get a topic outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: topic_id in: path type: string required: true - name: deletetopic method: DELETE description: Elastic.io Delete a topic outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: topic_id in: path type: string required: true authentication: type: bearer token: '{{env.ELASTIC_IO_API_KEY}}' exposes: - type: rest namespace: platform-topics-rest port: 8080 description: REST adapter for elastic.io Platform REST API — Topics. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/topics name: topics description: REST surface for topics. operations: - method: GET name: listtopics description: Elastic.io List topics call: platform-topics.listtopics outputParameters: - type: object mapping: $. - method: POST name: createtopic description: Elastic.io Create a topic call: platform-topics.createtopic with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/topics/{topic-id} name: topics-topic-id description: REST surface for topics-topic_id. operations: - method: GET name: gettopic description: Elastic.io Get a topic call: platform-topics.gettopic with: topic_id: rest.topic_id outputParameters: - type: object mapping: $. - method: DELETE name: deletetopic description: Elastic.io Delete a topic call: platform-topics.deletetopic with: topic_id: rest.topic_id outputParameters: - type: object mapping: $. - type: mcp namespace: platform-topics-mcp port: 9090 transport: http description: MCP adapter for elastic.io Platform REST API — Topics. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: elastic-io-list-topics description: Elastic.io List topics hints: readOnly: true destructive: false idempotent: true call: platform-topics.listtopics outputParameters: - type: object mapping: $. - name: elastic-io-create-topic description: Elastic.io Create a topic hints: readOnly: false destructive: false idempotent: false call: platform-topics.createtopic with: body: tools.body outputParameters: - type: object mapping: $. - name: elastic-io-get-topic description: Elastic.io Get a topic hints: readOnly: true destructive: false idempotent: true call: platform-topics.gettopic with: topic_id: tools.topic_id outputParameters: - type: object mapping: $. - name: elastic-io-delete-topic description: Elastic.io Delete a topic hints: readOnly: false destructive: true idempotent: true call: platform-topics.deletetopic with: topic_id: tools.topic_id outputParameters: - type: object mapping: $.