Portworx · Capability

OpenStorage SDK — OpenStorageVolume

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.

Run with Naftiko PortworxOpenStorageVolume

What You Can Do

POST
Openstoragevolumevolumecatalog — Gets the volume catalog of an attached and mounted volume.
/v1/v1/volume/catalog
GET
Openstoragevolumeenumerate — Enumerate returns a list of volume ids
/v1/v1/volumes
POST
Openstoragevolumecreate — Create creates a volume according to the specification provided
/v1/v1/volumes
POST
Openstoragevolumeclone — Clone creates a new writable volume cloned from an existing volume
/v1/v1/volumes/clone
POST
Openstoragevolumeenumeratewithfilters — Enumerate returns a list of volume ids that match the labels if any are provided.
/v1/v1/volumes/filters
GET
Openstoragevolumeinspect — Inspect returns information about a volume
/v1/v1/volumes/inspect/{volume-id}
POST
Openstoragevolumeinspectwithfilters — Returns information for a list of volumes that match a filter.
/v1/v1/volumes/inspectwithfilters
POST
Openstoragevolumesnapshotscheduleupdate — Sets the snapshot schedules. This information is saved in the VolumeSpec.snapshot_schedule
/v1/v1/volumes/snapshot/schedules/{volume-id}
GET
Openstoragevolumesnapshotenumerate — SnapshotEnumerate returns a list of snapshots for a specific volume
/v1/v1/volumes/snapshots
POST
Openstoragevolumesnapshotcreate — SnapshotCreate creates a snapshot of a volume. This creates an immutable (read-only),
/v1/v1/volumes/snapshots
POST
Openstoragevolumesnapshotenumeratewithfilters — SnapshotEnumerate returns a list of snapshots.
/v1/v1/volumes/snapshots/filters/{volume-id}
POST
Openstoragevolumesnapshotrestore — SnapshotRestore restores a volume to a specified snapshot
/v1/v1/volumes/snapshots/restore
GET
Openstoragevolumestats — Stats returns the statistics for the requested volume
/v1/v1/volumes/stats/{volume-id}
GET
Openstoragevolumecapacityusage — CapacityUsage returns volume/snapshot's capacity usage details
/v1/v1/volumes/usage/{volume-id}
DELETE
Openstoragevolumedelete — Delete deletes the provided volume
/v1/v1/volumes/{volume-id}
PUT
Openstoragevolumeupdate — Update provides a method for manipulating the specification and attributes of a volume.
/v1/v1/volumes/{volume-id}

MCP Tools

gets-volume-catalog-attached-and

Gets the volume catalog of an attached and mounted volume.

enumerate-returns-list-volume-ids

Enumerate returns a list of volume ids

read-only idempotent
create-creates-volume-according-specification

Create creates a volume according to the specification provided

clone-creates-new-writable-volume

Clone creates a new writable volume cloned from an existing volume

enumerate-returns-list-volume-ids-2

Enumerate returns a list of volume ids that match the labels if any are provided.

read-only
inspect-returns-information-about-volume

Inspect returns information about a volume

read-only idempotent
returns-information-list-volumes-that

Returns information for a list of volumes that match a filter.

read-only
sets-snapshot-schedules-this-information

Sets the snapshot schedules. This information is saved in the VolumeSpec.snapshot_schedule

snapshotenumerate-returns-list-snapshots-specific

SnapshotEnumerate returns a list of snapshots for a specific volume

read-only idempotent
snapshotcreate-creates-snapshot-volume-this

SnapshotCreate creates a snapshot of a volume. This creates an immutable (read-only),

snapshotenumerate-returns-list-snapshots

SnapshotEnumerate returns a list of snapshots.

read-only
snapshotrestore-restores-volume-specified-snapshot

SnapshotRestore restores a volume to a specified snapshot

stats-returns-statistics-requested-volume

Stats returns the statistics for the requested volume

read-only idempotent
capacityusage-returns-volume-snapshot-s-capacity

CapacityUsage returns volume/snapshot's capacity usage details

read-only idempotent
delete-deletes-provided-volume

Delete deletes the provided volume

idempotent
update-provides-method-manipulating-specification

Update provides a method for manipulating the specification and attributes of a volume.

idempotent

Capability Spec

portworx-openstoragevolume.yaml Raw ↑
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: $.