naftiko: 1.0.0-alpha2 info: label: elastic.io Platform REST API — Workspaces description: 'elastic.io Platform REST API — Workspaces. 8 operations. Lead operation: Elastic.io List workspaces. Self-contained Naftiko capability covering one Elastic Io business surface.' tags: - Elastic Io - Workspaces 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-workspaces baseUri: https://api.elastic.io/v2 description: elastic.io Platform REST API — Workspaces business capability. Self-contained, no shared references. resources: - name: workspaces path: /workspaces operations: - name: listworkspaces method: GET description: Elastic.io List workspaces outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: filter[contract_id] in: query type: string description: Filter by contract ID - name: createworkspace method: POST description: Elastic.io Create a workspace outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: workspaces-workspace_id path: /workspaces/{workspace_id} operations: - name: getworkspace method: GET description: Elastic.io Get a workspace outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updateworkspace method: PATCH description: Elastic.io Update a workspace outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: deleteworkspace method: DELETE description: Elastic.io Delete a workspace outputRawFormat: json outputParameters: - name: result type: object value: $. - name: workspaces-workspace_id-members path: /workspaces/{workspace_id}/members operations: - name: listworkspacemembers method: GET description: Elastic.io List workspace members outputRawFormat: json outputParameters: - name: result type: object value: $. - name: addworkspacemember method: POST description: Elastic.io Add a workspace member outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: workspaces-workspace_id-members-user_id path: /workspaces/{workspace_id}/members/{user_id} operations: - name: removeworkspacemember method: DELETE description: Elastic.io Remove a workspace member outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: bearer token: '{{env.ELASTIC_IO_API_KEY}}' exposes: - type: rest namespace: platform-workspaces-rest port: 8080 description: REST adapter for elastic.io Platform REST API — Workspaces. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/workspaces name: workspaces description: REST surface for workspaces. operations: - method: GET name: listworkspaces description: Elastic.io List workspaces call: platform-workspaces.listworkspaces with: filter[contract_id]: rest.filter[contract_id] outputParameters: - type: object mapping: $. - method: POST name: createworkspace description: Elastic.io Create a workspace call: platform-workspaces.createworkspace with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/workspaces/{workspace-id} name: workspaces-workspace-id description: REST surface for workspaces-workspace_id. operations: - method: GET name: getworkspace description: Elastic.io Get a workspace call: platform-workspaces.getworkspace outputParameters: - type: object mapping: $. - method: PATCH name: updateworkspace description: Elastic.io Update a workspace call: platform-workspaces.updateworkspace with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteworkspace description: Elastic.io Delete a workspace call: platform-workspaces.deleteworkspace outputParameters: - type: object mapping: $. - path: /v1/workspaces/{workspace-id}/members name: workspaces-workspace-id-members description: REST surface for workspaces-workspace_id-members. operations: - method: GET name: listworkspacemembers description: Elastic.io List workspace members call: platform-workspaces.listworkspacemembers outputParameters: - type: object mapping: $. - method: POST name: addworkspacemember description: Elastic.io Add a workspace member call: platform-workspaces.addworkspacemember with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/workspaces/{workspace-id}/members/{user-id} name: workspaces-workspace-id-members-user-id description: REST surface for workspaces-workspace_id-members-user_id. operations: - method: DELETE name: removeworkspacemember description: Elastic.io Remove a workspace member call: platform-workspaces.removeworkspacemember outputParameters: - type: object mapping: $. - type: mcp namespace: platform-workspaces-mcp port: 9090 transport: http description: MCP adapter for elastic.io Platform REST API — Workspaces. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: elastic-io-list-workspaces description: Elastic.io List workspaces hints: readOnly: true destructive: false idempotent: true call: platform-workspaces.listworkspaces with: filter[contract_id]: tools.filter[contract_id] outputParameters: - type: object mapping: $. - name: elastic-io-create-workspace description: Elastic.io Create a workspace hints: readOnly: false destructive: false idempotent: false call: platform-workspaces.createworkspace with: body: tools.body outputParameters: - type: object mapping: $. - name: elastic-io-get-workspace description: Elastic.io Get a workspace hints: readOnly: true destructive: false idempotent: true call: platform-workspaces.getworkspace outputParameters: - type: object mapping: $. - name: elastic-io-update-workspace description: Elastic.io Update a workspace hints: readOnly: false destructive: false idempotent: true call: platform-workspaces.updateworkspace with: body: tools.body outputParameters: - type: object mapping: $. - name: elastic-io-delete-workspace description: Elastic.io Delete a workspace hints: readOnly: false destructive: true idempotent: true call: platform-workspaces.deleteworkspace outputParameters: - type: object mapping: $. - name: elastic-io-list-workspace-members description: Elastic.io List workspace members hints: readOnly: true destructive: false idempotent: true call: platform-workspaces.listworkspacemembers outputParameters: - type: object mapping: $. - name: elastic-io-add-workspace-member description: Elastic.io Add a workspace member hints: readOnly: false destructive: false idempotent: false call: platform-workspaces.addworkspacemember with: body: tools.body outputParameters: - type: object mapping: $. - name: elastic-io-remove-workspace-member description: Elastic.io Remove a workspace member hints: readOnly: false destructive: true idempotent: true call: platform-workspaces.removeworkspacemember outputParameters: - type: object mapping: $.