naftiko: 1.0.0-alpha2 info: label: OpenStorage SDK — OpenStorageVolume description: 'OpenStorage SDK — OpenStorageVolume. 16 operations. Lead operation: Gets the volume catalog of an attached and mounted volume. Returns the entire tree up to "n" depth (default is all of it) Takes a path that can be used as the new root for the catalog request.. Self-contained Naftiko capability covering one Portworx business surface.' tags: - Portworx - OpenStorageVolume created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: PORTWORX_API_KEY: PORTWORX_API_KEY capability: consumes: - type: http namespace: portworx-openstoragevolume baseUri: '' description: OpenStorage SDK — OpenStorageVolume business capability. Self-contained, no shared references. resources: - name: v1-volume-catalog path: /v1/volume/catalog operations: - name: openstoragevolumevolumecatalog method: POST description: Gets the volume catalog of an attached and mounted volume. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: v1-volumes path: /v1/volumes operations: - name: openstoragevolumeenumerate method: GET description: Enumerate returns a list of volume ids outputRawFormat: json outputParameters: - name: result type: object value: $. - name: openstoragevolumecreate method: POST description: Create creates a volume according to the specification provided outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: v1-volumes-clone path: /v1/volumes/clone operations: - name: openstoragevolumeclone method: POST description: Clone creates a new writable volume cloned from an existing volume outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: v1-volumes-filters path: /v1/volumes/filters operations: - name: openstoragevolumeenumeratewithfilters method: POST description: Enumerate returns a list of volume ids that match the labels if any are provided. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: v1-volumes-inspect-volume_id path: /v1/volumes/inspect/{volume_id} operations: - name: openstoragevolumeinspect method: GET description: Inspect returns information about a volume outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: volume_id in: path type: string description: Id of volume to inspect required: true - name: options.deep in: query type: boolean description: Deep inspection is used to collect more information about - name: v1-volumes-inspectwithfilters path: /v1/volumes/inspectwithfilters operations: - name: openstoragevolumeinspectwithfilters method: POST description: Returns information for a list of volumes that match a filter. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: v1-volumes-snapshot-schedules-volume_id path: /v1/volumes/snapshot/schedules/{volume_id} operations: - name: openstoragevolumesnapshotscheduleupdate method: POST description: Sets the snapshot schedules. This information is saved in the VolumeSpec.snapshot_schedule outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: volume_id in: path type: string description: Id of volume required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-volumes-snapshots path: /v1/volumes/snapshots operations: - name: openstoragevolumesnapshotenumerate method: GET description: SnapshotEnumerate returns a list of snapshots for a specific volume outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: volume_id in: query type: string description: Get the snapshots for this volume id. - name: openstoragevolumesnapshotcreate method: POST description: SnapshotCreate creates a snapshot of a volume. This creates an immutable (read-only), outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: v1-volumes-snapshots-filters-volume_id path: /v1/volumes/snapshots/filters/{volume_id} operations: - name: openstoragevolumesnapshotenumeratewithfilters method: POST description: SnapshotEnumerate returns a list of snapshots. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: volume_id in: path type: string description: (optional) Get the snapshots for this volume id required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-volumes-snapshots-restore path: /v1/volumes/snapshots/restore operations: - name: openstoragevolumesnapshotrestore method: POST description: SnapshotRestore restores a volume to a specified snapshot outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: v1-volumes-stats-volume_id path: /v1/volumes/stats/{volume_id} operations: - name: openstoragevolumestats method: GET description: Stats returns the statistics for the requested volume outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: volume_id in: path type: string description: Id of the volume to get statistics required: true - name: not_cumulative in: query type: boolean description: When set to false the stats are in /proc/diskstats style stats. - name: v1-volumes-usage-volume_id path: /v1/volumes/usage/{volume_id} operations: - name: openstoragevolumecapacityusage method: GET description: CapacityUsage returns volume/snapshot's capacity usage details outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: volume_id in: path type: string description: Id of the snapshot/volume to get capacity usage details required: true - name: v1-volumes-volume_id path: /v1/volumes/{volume_id} operations: - name: openstoragevolumedelete method: DELETE description: Delete deletes the provided volume outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: volume_id in: path type: string description: Id of volume to delete required: true - name: openstoragevolumeupdate method: PUT description: Update provides a method for manipulating the specification and attributes of a volume. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: volume_id in: path type: string description: Id of the volume to update required: true - name: body in: body type: object description: Request body (JSON). required: true authentication: type: bearer token: '{{env.PORTWORX_API_KEY}}' exposes: - type: rest namespace: portworx-openstoragevolume-rest port: 8080 description: REST adapter for OpenStorage SDK — OpenStorageVolume. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/volume/catalog name: v1-volume-catalog description: REST surface for v1-volume-catalog. operations: - method: POST name: openstoragevolumevolumecatalog description: Gets the volume catalog of an attached and mounted volume. call: portworx-openstoragevolume.openstoragevolumevolumecatalog with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/volumes name: v1-volumes description: REST surface for v1-volumes. operations: - method: GET name: openstoragevolumeenumerate description: Enumerate returns a list of volume ids call: portworx-openstoragevolume.openstoragevolumeenumerate outputParameters: - type: object mapping: $. - method: POST name: openstoragevolumecreate description: Create creates a volume according to the specification provided call: portworx-openstoragevolume.openstoragevolumecreate with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/volumes/clone name: v1-volumes-clone description: REST surface for v1-volumes-clone. operations: - method: POST name: openstoragevolumeclone description: Clone creates a new writable volume cloned from an existing volume call: portworx-openstoragevolume.openstoragevolumeclone with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/volumes/filters name: v1-volumes-filters description: REST surface for v1-volumes-filters. operations: - method: POST name: openstoragevolumeenumeratewithfilters description: Enumerate returns a list of volume ids that match the labels if any are provided. call: portworx-openstoragevolume.openstoragevolumeenumeratewithfilters with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/volumes/inspect/{volume-id} name: v1-volumes-inspect-volume-id description: REST surface for v1-volumes-inspect-volume_id. operations: - method: GET name: openstoragevolumeinspect description: Inspect returns information about a volume call: portworx-openstoragevolume.openstoragevolumeinspect with: volume_id: rest.volume_id options.deep: rest.options.deep outputParameters: - type: object mapping: $. - path: /v1/v1/volumes/inspectwithfilters name: v1-volumes-inspectwithfilters description: REST surface for v1-volumes-inspectwithfilters. operations: - method: POST name: openstoragevolumeinspectwithfilters description: Returns information for a list of volumes that match a filter. call: portworx-openstoragevolume.openstoragevolumeinspectwithfilters with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/volumes/snapshot/schedules/{volume-id} name: v1-volumes-snapshot-schedules-volume-id description: REST surface for v1-volumes-snapshot-schedules-volume_id. operations: - method: POST name: openstoragevolumesnapshotscheduleupdate description: Sets the snapshot schedules. This information is saved in the VolumeSpec.snapshot_schedule call: portworx-openstoragevolume.openstoragevolumesnapshotscheduleupdate with: volume_id: rest.volume_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/volumes/snapshots name: v1-volumes-snapshots description: REST surface for v1-volumes-snapshots. operations: - method: GET name: openstoragevolumesnapshotenumerate description: SnapshotEnumerate returns a list of snapshots for a specific volume call: portworx-openstoragevolume.openstoragevolumesnapshotenumerate with: volume_id: rest.volume_id outputParameters: - type: object mapping: $. - method: POST name: openstoragevolumesnapshotcreate description: SnapshotCreate creates a snapshot of a volume. This creates an immutable (read-only), call: portworx-openstoragevolume.openstoragevolumesnapshotcreate with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/volumes/snapshots/filters/{volume-id} name: v1-volumes-snapshots-filters-volume-id description: REST surface for v1-volumes-snapshots-filters-volume_id. operations: - method: POST name: openstoragevolumesnapshotenumeratewithfilters description: SnapshotEnumerate returns a list of snapshots. call: portworx-openstoragevolume.openstoragevolumesnapshotenumeratewithfilters with: volume_id: rest.volume_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/volumes/snapshots/restore name: v1-volumes-snapshots-restore description: REST surface for v1-volumes-snapshots-restore. operations: - method: POST name: openstoragevolumesnapshotrestore description: SnapshotRestore restores a volume to a specified snapshot call: portworx-openstoragevolume.openstoragevolumesnapshotrestore with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/volumes/stats/{volume-id} name: v1-volumes-stats-volume-id description: REST surface for v1-volumes-stats-volume_id. operations: - method: GET name: openstoragevolumestats description: Stats returns the statistics for the requested volume call: portworx-openstoragevolume.openstoragevolumestats with: volume_id: rest.volume_id not_cumulative: rest.not_cumulative outputParameters: - type: object mapping: $. - path: /v1/v1/volumes/usage/{volume-id} name: v1-volumes-usage-volume-id description: REST surface for v1-volumes-usage-volume_id. operations: - method: GET name: openstoragevolumecapacityusage description: CapacityUsage returns volume/snapshot's capacity usage details call: portworx-openstoragevolume.openstoragevolumecapacityusage with: volume_id: rest.volume_id outputParameters: - type: object mapping: $. - path: /v1/v1/volumes/{volume-id} name: v1-volumes-volume-id description: REST surface for v1-volumes-volume_id. operations: - method: DELETE name: openstoragevolumedelete description: Delete deletes the provided volume call: portworx-openstoragevolume.openstoragevolumedelete with: volume_id: rest.volume_id outputParameters: - type: object mapping: $. - method: PUT name: openstoragevolumeupdate description: Update provides a method for manipulating the specification and attributes of a volume. call: portworx-openstoragevolume.openstoragevolumeupdate with: volume_id: rest.volume_id body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: portworx-openstoragevolume-mcp port: 9090 transport: http description: MCP adapter for OpenStorage SDK — OpenStorageVolume. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: gets-volume-catalog-attached-and description: Gets the volume catalog of an attached and mounted volume. hints: readOnly: false destructive: false idempotent: false call: portworx-openstoragevolume.openstoragevolumevolumecatalog with: body: tools.body outputParameters: - type: object mapping: $. - name: enumerate-returns-list-volume-ids description: Enumerate returns a list of volume ids hints: readOnly: true destructive: false idempotent: true call: portworx-openstoragevolume.openstoragevolumeenumerate outputParameters: - type: object mapping: $. - name: create-creates-volume-according-specification description: Create creates a volume according to the specification provided hints: readOnly: false destructive: false idempotent: false call: portworx-openstoragevolume.openstoragevolumecreate with: body: tools.body outputParameters: - type: object mapping: $. - name: clone-creates-new-writable-volume description: Clone creates a new writable volume cloned from an existing volume hints: readOnly: false destructive: false idempotent: false call: portworx-openstoragevolume.openstoragevolumeclone with: body: tools.body outputParameters: - type: object mapping: $. - name: enumerate-returns-list-volume-ids-2 description: Enumerate returns a list of volume ids that match the labels if any are provided. hints: readOnly: true destructive: false idempotent: false call: portworx-openstoragevolume.openstoragevolumeenumeratewithfilters with: body: tools.body outputParameters: - type: object mapping: $. - name: inspect-returns-information-about-volume description: Inspect returns information about a volume hints: readOnly: true destructive: false idempotent: true call: portworx-openstoragevolume.openstoragevolumeinspect with: volume_id: tools.volume_id options.deep: tools.options.deep outputParameters: - type: object mapping: $. - name: returns-information-list-volumes-that description: Returns information for a list of volumes that match a filter. hints: readOnly: true destructive: false idempotent: false call: portworx-openstoragevolume.openstoragevolumeinspectwithfilters with: body: tools.body outputParameters: - type: object mapping: $. - name: sets-snapshot-schedules-this-information description: Sets the snapshot schedules. This information is saved in the VolumeSpec.snapshot_schedule hints: readOnly: false destructive: false idempotent: false call: portworx-openstoragevolume.openstoragevolumesnapshotscheduleupdate with: volume_id: tools.volume_id body: tools.body outputParameters: - type: object mapping: $. - name: snapshotenumerate-returns-list-snapshots-specific description: SnapshotEnumerate returns a list of snapshots for a specific volume hints: readOnly: true destructive: false idempotent: true call: portworx-openstoragevolume.openstoragevolumesnapshotenumerate with: volume_id: tools.volume_id outputParameters: - type: object mapping: $. - name: snapshotcreate-creates-snapshot-volume-this description: SnapshotCreate creates a snapshot of a volume. This creates an immutable (read-only), hints: readOnly: false destructive: false idempotent: false call: portworx-openstoragevolume.openstoragevolumesnapshotcreate with: body: tools.body outputParameters: - type: object mapping: $. - name: snapshotenumerate-returns-list-snapshots description: SnapshotEnumerate returns a list of snapshots. hints: readOnly: true destructive: false idempotent: false call: portworx-openstoragevolume.openstoragevolumesnapshotenumeratewithfilters with: volume_id: tools.volume_id body: tools.body outputParameters: - type: object mapping: $. - name: snapshotrestore-restores-volume-specified-snapshot description: SnapshotRestore restores a volume to a specified snapshot hints: readOnly: false destructive: false idempotent: false call: portworx-openstoragevolume.openstoragevolumesnapshotrestore with: body: tools.body outputParameters: - type: object mapping: $. - name: stats-returns-statistics-requested-volume description: Stats returns the statistics for the requested volume hints: readOnly: true destructive: false idempotent: true call: portworx-openstoragevolume.openstoragevolumestats with: volume_id: tools.volume_id not_cumulative: tools.not_cumulative outputParameters: - type: object mapping: $. - name: capacityusage-returns-volume-snapshot-s-capacity description: CapacityUsage returns volume/snapshot's capacity usage details hints: readOnly: true destructive: false idempotent: true call: portworx-openstoragevolume.openstoragevolumecapacityusage with: volume_id: tools.volume_id outputParameters: - type: object mapping: $. - name: delete-deletes-provided-volume description: Delete deletes the provided volume hints: readOnly: false destructive: true idempotent: true call: portworx-openstoragevolume.openstoragevolumedelete with: volume_id: tools.volume_id outputParameters: - type: object mapping: $. - name: update-provides-method-manipulating-specification description: Update provides a method for manipulating the specification and attributes of a volume. hints: readOnly: false destructive: false idempotent: true call: portworx-openstoragevolume.openstoragevolumeupdate with: volume_id: tools.volume_id body: tools.body outputParameters: - type: object mapping: $.