naftiko: 1.0.0-alpha2 info: label: OpenStorage SDK — OpenStorageNode description: 'OpenStorage SDK — OpenStorageNode. 9 operations. Lead operation: Enumerate returns the ids of all the nodes in the current cluster. Self-contained Naftiko capability covering one Portworx business surface.' tags: - Portworx - OpenStorageNode created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: PORTWORX_API_KEY: PORTWORX_API_KEY capability: consumes: - type: http namespace: portworx-openstoragenode baseUri: '' description: OpenStorage SDK — OpenStorageNode business capability. Self-contained, no shared references. resources: - name: v1-nodes path: /v1/nodes operations: - name: openstoragenodeenumerate method: GET description: Enumerate returns the ids of all the nodes in the current cluster outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v1-nodes-attachments-disable-node_id path: /v1/nodes/attachments/disable/{node_id} operations: - name: openstoragenodecordonattachments method: PUT description: CordonAttachments disables any new volume attachments outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: node_id in: path type: string description: Node ID on which any further volume attachments will be disabled required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-nodes-attachments-drain-node_id path: /v1/nodes/attachments/drain/{node_id} operations: - name: openstoragenodedrainattachments method: PUT description: DrainAttachments creates a task to drain volume attachments outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: node_id in: path type: string description: Id of the node to drain required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-nodes-attachments-enable-node_id path: /v1/nodes/attachments/enable/{node_id} operations: - name: openstoragenodeuncordonattachments method: PUT description: UncordonAttachments re-enables volume attachments outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: node_id in: path type: string description: Node ID on which any further volume attachments will be enabled required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-nodes-bytesused path: /v1/nodes/bytesused operations: - name: openstoragenodevolumebytesusedbynode method: POST description: Returns bytes used of multiple volumes for a give node outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: v1-nodes-filters path: /v1/nodes/filters operations: - name: openstoragenodeenumeratewithfilters method: GET description: EnumerateWithFilters returns all the nodes in the current cluster outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v1-nodes-inspect-node_id path: /v1/nodes/inspect/{node_id} operations: - name: openstoragenodeinspect method: GET description: Inspect returns information about the specified node outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: node_id in: path type: string description: Id of node to inspect required: true - name: v1-nodes-inspectcurrent path: /v1/nodes/inspectcurrent operations: - name: openstoragenodeinspectcurrent method: GET description: InspectCurrent returns information about the storage node outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v1-nodes-usage-node_id path: /v1/nodes/usage/{node_id} operations: - name: openstoragenoderelaxedreclaimpurge method: GET description: Triggers RelaxedReclaim purge for a give node outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: node_id in: path type: string description: Id of the node to trigger the purge required: true authentication: type: bearer token: '{{env.PORTWORX_API_KEY}}' exposes: - type: rest namespace: portworx-openstoragenode-rest port: 8080 description: REST adapter for OpenStorage SDK — OpenStorageNode. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/nodes name: v1-nodes description: REST surface for v1-nodes. operations: - method: GET name: openstoragenodeenumerate description: Enumerate returns the ids of all the nodes in the current cluster call: portworx-openstoragenode.openstoragenodeenumerate outputParameters: - type: object mapping: $. - path: /v1/v1/nodes/attachments/disable/{node-id} name: v1-nodes-attachments-disable-node-id description: REST surface for v1-nodes-attachments-disable-node_id. operations: - method: PUT name: openstoragenodecordonattachments description: CordonAttachments disables any new volume attachments call: portworx-openstoragenode.openstoragenodecordonattachments with: node_id: rest.node_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/nodes/attachments/drain/{node-id} name: v1-nodes-attachments-drain-node-id description: REST surface for v1-nodes-attachments-drain-node_id. operations: - method: PUT name: openstoragenodedrainattachments description: DrainAttachments creates a task to drain volume attachments call: portworx-openstoragenode.openstoragenodedrainattachments with: node_id: rest.node_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/nodes/attachments/enable/{node-id} name: v1-nodes-attachments-enable-node-id description: REST surface for v1-nodes-attachments-enable-node_id. operations: - method: PUT name: openstoragenodeuncordonattachments description: UncordonAttachments re-enables volume attachments call: portworx-openstoragenode.openstoragenodeuncordonattachments with: node_id: rest.node_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/nodes/bytesused name: v1-nodes-bytesused description: REST surface for v1-nodes-bytesused. operations: - method: POST name: openstoragenodevolumebytesusedbynode description: Returns bytes used of multiple volumes for a give node call: portworx-openstoragenode.openstoragenodevolumebytesusedbynode with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/nodes/filters name: v1-nodes-filters description: REST surface for v1-nodes-filters. operations: - method: GET name: openstoragenodeenumeratewithfilters description: EnumerateWithFilters returns all the nodes in the current cluster call: portworx-openstoragenode.openstoragenodeenumeratewithfilters outputParameters: - type: object mapping: $. - path: /v1/v1/nodes/inspect/{node-id} name: v1-nodes-inspect-node-id description: REST surface for v1-nodes-inspect-node_id. operations: - method: GET name: openstoragenodeinspect description: Inspect returns information about the specified node call: portworx-openstoragenode.openstoragenodeinspect with: node_id: rest.node_id outputParameters: - type: object mapping: $. - path: /v1/v1/nodes/inspectcurrent name: v1-nodes-inspectcurrent description: REST surface for v1-nodes-inspectcurrent. operations: - method: GET name: openstoragenodeinspectcurrent description: InspectCurrent returns information about the storage node call: portworx-openstoragenode.openstoragenodeinspectcurrent outputParameters: - type: object mapping: $. - path: /v1/v1/nodes/usage/{node-id} name: v1-nodes-usage-node-id description: REST surface for v1-nodes-usage-node_id. operations: - method: GET name: openstoragenoderelaxedreclaimpurge description: Triggers RelaxedReclaim purge for a give node call: portworx-openstoragenode.openstoragenoderelaxedreclaimpurge with: node_id: rest.node_id outputParameters: - type: object mapping: $. - type: mcp namespace: portworx-openstoragenode-mcp port: 9090 transport: http description: MCP adapter for OpenStorage SDK — OpenStorageNode. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: enumerate-returns-ids-all-nodes description: Enumerate returns the ids of all the nodes in the current cluster hints: readOnly: true destructive: false idempotent: true call: portworx-openstoragenode.openstoragenodeenumerate outputParameters: - type: object mapping: $. - name: cordonattachments-disables-any-new-volume description: CordonAttachments disables any new volume attachments hints: readOnly: false destructive: false idempotent: true call: portworx-openstoragenode.openstoragenodecordonattachments with: node_id: tools.node_id body: tools.body outputParameters: - type: object mapping: $. - name: drainattachments-creates-task-drain-volume description: DrainAttachments creates a task to drain volume attachments hints: readOnly: false destructive: false idempotent: true call: portworx-openstoragenode.openstoragenodedrainattachments with: node_id: tools.node_id body: tools.body outputParameters: - type: object mapping: $. - name: uncordonattachments-re-enables-volume-attachments description: UncordonAttachments re-enables volume attachments hints: readOnly: false destructive: false idempotent: true call: portworx-openstoragenode.openstoragenodeuncordonattachments with: node_id: tools.node_id body: tools.body outputParameters: - type: object mapping: $. - name: returns-bytes-used-multiple-volumes description: Returns bytes used of multiple volumes for a give node hints: readOnly: false destructive: false idempotent: false call: portworx-openstoragenode.openstoragenodevolumebytesusedbynode with: body: tools.body outputParameters: - type: object mapping: $. - name: enumeratewithfilters-returns-all-nodes-current description: EnumerateWithFilters returns all the nodes in the current cluster hints: readOnly: true destructive: false idempotent: true call: portworx-openstoragenode.openstoragenodeenumeratewithfilters outputParameters: - type: object mapping: $. - name: inspect-returns-information-about-specified description: Inspect returns information about the specified node hints: readOnly: true destructive: false idempotent: true call: portworx-openstoragenode.openstoragenodeinspect with: node_id: tools.node_id outputParameters: - type: object mapping: $. - name: inspectcurrent-returns-information-about-storage description: InspectCurrent returns information about the storage node hints: readOnly: true destructive: false idempotent: true call: portworx-openstoragenode.openstoragenodeinspectcurrent outputParameters: - type: object mapping: $. - name: triggers-relaxedreclaim-purge-give-node description: Triggers RelaxedReclaim purge for a give node hints: readOnly: true destructive: false idempotent: true call: portworx-openstoragenode.openstoragenoderelaxedreclaimpurge with: node_id: tools.node_id outputParameters: - type: object mapping: $.