Portworx OpenStorageVolume API

The OpenStorageVolume API from Portworx — 13 operation(s) for openstoragevolume.

Operations 16

POST /v1/volume/catalog 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 cata #
GET /v1/volumes Enumerate returns a list of volume ids #
POST /v1/volumes Create creates a volume according to the specification provided #
POST /v1/volumes/clone Clone creates a new writable volume cloned from an existing volume #
POST /v1/volumes/filters Enumerate returns a list of volume ids that match the labels if any are provided. #
GET /v1/volumes/inspect/{volume_id} Inspect returns information about a volume #
POST /v1/volumes/inspectwithfilters Returns information for a list of volumes that match a filter. This call is a helper function like calling `OpenStorageVolume.EnumerateWithFilters` then having it return the conten #
POST /v1/volumes/snapshot/schedules/{volume_id} Sets the snapshot schedules. This information is saved in the VolumeSpec.snapshot_schedule as `policy=,...`. This function will overwrite any policy values in the volume. To #
GET /v1/volumes/snapshots SnapshotEnumerate returns a list of snapshots for a specific volume #
POST /v1/volumes/snapshots SnapshotCreate creates a snapshot of a volume. This creates an immutable (read-only), point-in-time snapshot of a volume. To create a new writable volume from a snapshot, please us #
POST /v1/volumes/snapshots/filters/{volume_id} SnapshotEnumerate returns a list of snapshots. To filter all the snapshots for a specific volume which may no longer exist, specify a volume id. Labels can also be used to filter t #
POST /v1/volumes/snapshots/restore SnapshotRestore restores a volume to a specified snapshot #
GET /v1/volumes/stats/{volume_id} Stats returns the statistics for the requested volume #
GET /v1/volumes/usage/{volume_id} CapacityUsage returns volume/snapshot's capacity usage details #
DELETE /v1/volumes/{volume_id} Delete deletes the provided volume #
PUT /v1/volumes/{volume_id} Update provides a method for manipulating the specification and attributes of a volume. Set can be used to resize a volume, update labels, change replica count, and much more. #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/portworx-openstoragevolume-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

portworx-openstoragevolume-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: OpenStorage SDK OpenStorageAlerts Open Storage Volume API
  version: 0.186.0
servers:
- url: https://libopenstorage.github.io/
  description: Base URL declared by the provider in apis.yml (roadmap#122).
security:
- bearerAuth: []
tags:
- name: OpenStorageVolume
paths:
  /v1/volume/catalog:
    post:
      operationId: OpenStorageVolume_VolumeCatalog
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiSdkVolumeCatalogRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkVolumeCatalogResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: '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.'
      tags:
      - OpenStorageVolume
  /v1/volumes:
    get:
      operationId: OpenStorageVolume_Enumerate
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkVolumeEnumerateResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: Enumerate returns a list of volume ids
      tags:
      - OpenStorageVolume
    post:
      description: "Requires access AccessType.Read when cloning from a parent volume.\n\n##### Example\n{% codetabs name=\"Golang\", type=\"go\" -%}\nid, err := client.Create(context.Background(), &api.SdkVolumeCreateRequest{\n  Name: \"volume-12345-east\",\n  Spec: &api.VolumeSpec {\n    Size: 1234567,\n  },\n})\n{%- language name=\"Python\", type=\"py\" -%}\nen_resp = client.Create(api_pb2.SdkVolumeCreateRequest(\n  name=\"volume-12345-east\",\n  spec=api_pb2.VolumeSpec(size=1234567)))\n{%- endcodetabs %}"
      operationId: OpenStorageVolume_Create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiSdkVolumeCreateRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkVolumeCreateResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: Create creates a volume according to the specification provided
      tags:
      - OpenStorageVolume
  /v1/volumes/clone:
    post:
      description: Requires access AccessType.Read of volume
      operationId: OpenStorageVolume_Clone
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiSdkVolumeCloneRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkVolumeCloneResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: Clone creates a new writable volume cloned from an existing volume
      tags:
      - OpenStorageVolume
  /v1/volumes/filters:
    post:
      operationId: OpenStorageVolume_EnumerateWithFilters
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiSdkVolumeEnumerateWithFiltersRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkVolumeEnumerateWithFiltersResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: Enumerate returns a list of volume ids that match the labels if any are provided.
      tags:
      - OpenStorageVolume
  /v1/volumes/inspect/{volume_id}:
    get:
      description: Requires access AccessType.Read of volume
      operationId: OpenStorageVolume_Inspect
      parameters:
      - description: Id of volume to inspect
        in: path
        name: volume_id
        required: true
        schema:
          type: string
      - description: 'Deep inspection is used to collect more information about

          the volume. Setting this value may delay the request.'
        in: query
        name: options.deep
        required: false
        schema:
          type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkVolumeInspectResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: Inspect returns information about a volume
      tags:
      - OpenStorageVolume
  /v1/volumes/inspectwithfilters:
    post:
      operationId: OpenStorageVolume_InspectWithFilters
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiSdkVolumeInspectWithFiltersRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkVolumeInspectWithFiltersResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: 'Returns information for a list of volumes that match a filter.

        This call is a helper function like calling

        `OpenStorageVolume.EnumerateWithFilters` then having it

        return the contents of each of those volumes

        `OpenStorageVolume.Inspect()`. Take care in using this call

        when requesting large number of volumes because it will

        block until it has all the information requested before

        returning.'
      tags:
      - OpenStorageVolume
  /v1/volumes/snapshot/schedules/{volume_id}:
    post:
      description: Requires access AccessType.Write of volume
      operationId: OpenStorageVolume_SnapshotScheduleUpdate
      parameters:
      - description: Id of volume
        in: path
        name: volume_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiSdkVolumeSnapshotScheduleUpdateRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkVolumeSnapshotScheduleUpdateResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: 'Sets the snapshot schedules. This information is saved in the VolumeSpec.snapshot_schedule

        as `policy=<name>,...`. This function will overwrite any policy values

        in the volume. To delete the policies in the volume send no policies.'
      tags:
      - OpenStorageVolume
  /v1/volumes/snapshots:
    get:
      operationId: OpenStorageVolume_SnapshotEnumerate
      parameters:
      - description: Get the snapshots for this volume id.
        in: query
        name: volume_id
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkVolumeSnapshotEnumerateResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: SnapshotEnumerate returns a list of snapshots for a specific volume
      tags:
      - OpenStorageVolume
    post:
      description: Requires access AccessType.Read of volume
      operationId: OpenStorageVolume_SnapshotCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiSdkVolumeSnapshotCreateRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkVolumeSnapshotCreateResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: 'SnapshotCreate creates a snapshot of a volume. This creates an immutable (read-only),

        point-in-time snapshot of a volume. To create a new writable volume from

        a snapshot, please use OpenStorageVolume.Clone().'
      tags:
      - OpenStorageVolume
  /v1/volumes/snapshots/filters/{volume_id}:
    post:
      operationId: OpenStorageVolume_SnapshotEnumerateWithFilters
      parameters:
      - description: (optional) Get the snapshots for this volume id
        in: path
        name: volume_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiSdkVolumeSnapshotEnumerateWithFiltersRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkVolumeSnapshotEnumerateWithFiltersResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: 'SnapshotEnumerate returns a list of snapshots.

        To filter all the snapshots for a specific volume which may no longer exist,

        specify a volume id.

        Labels can also be used to filter the snapshot list.

        If neither are provided all snapshots will be returned.'
      tags:
      - OpenStorageVolume
  /v1/volumes/snapshots/restore:
    post:
      description: Requires access AccessType.Write of volume
      operationId: OpenStorageVolume_SnapshotRestore
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiSdkVolumeSnapshotRestoreRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkVolumeSnapshotRestoreResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: SnapshotRestore restores a volume to a specified snapshot
      tags:
      - OpenStorageVolume
  /v1/volumes/stats/{volume_id}:
    get:
      description: Requires access AccessType.Read of volume
      operationId: OpenStorageVolume_Stats
      parameters:
      - description: Id of the volume to get statistics
        in: path
        name: volume_id
        required: true
        schema:
          type: string
      - description: 'When set to false the stats are in /proc/diskstats style stats.

          When set to true the stats are stats for a specific duration.'
        in: query
        name: not_cumulative
        required: false
        schema:
          type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkVolumeStatsResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: Stats returns the statistics for the requested volume
      tags:
      - OpenStorageVolume
  /v1/volumes/usage/{volume_id}:
    get:
      description: 'Requires access AccessType.Read of volume


        ##### Error codes:


        * codes.Aborted : Command was aborted and only total_bytes field is valid

        * code.Unimmplemented : Command is not suported this kernel.Only total_bytes

        field is valid;'
      operationId: OpenStorageVolume_CapacityUsage
      parameters:
      - description: Id of the snapshot/volume to get capacity usage details
        in: path
        name: volume_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkVolumeCapacityUsageResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: CapacityUsage returns volume/snapshot's capacity usage details
      tags:
      - OpenStorageVolume
  /v1/volumes/{volume_id}:
    delete:
      description: Requires access AccessType.Admin of volume
      operationId: OpenStorageVolume_Delete
      parameters:
      - description: Id of volume to delete
        in: path
        name: volume_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkVolumeDeleteResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: Delete deletes the provided volume
      tags:
      - OpenStorageVolume
    put:
      description: Requires access AccessType.Write of volume
      operationId: OpenStorageVolume_Update
      parameters:
      - description: Id of the volume to update
        in: path
        name: volume_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiSdkVolumeUpdateRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkVolumeUpdateResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: 'Update provides a method for manipulating the specification and attributes of a volume.

        Set can be used to resize a volume, update labels, change replica count, and much more.'
      tags:
      - OpenStorageVolume
components:
  schemas:
    apiVolume:
      description: Volume represents an abstract storage volume.
      properties:
        attach_info:
          additionalProperties:
            type: string
          description: AttachInfo is a list of name value mappings that provides attach information.
          type: object
        attach_path:
          description: AttachPath is the mounted path in the host namespace.
          items:
            type: string
          type: array
        attach_time:
          description: AttachTime time this device was last attached externally.
          format: date-time
          type: string
        attached_on:
          description: AttachedOn is the node instance identifier for clustered systems.
          type: string
        attached_state:
          $ref: '#/components/schemas/apiAttachState'
        ctime:
          format: date-time
          title: Volume creation time
          type: string
        derived_io_profile:
          $ref: '#/components/schemas/apiIoProfile'
        detach_time:
          description: DetachTime time this device was detached.
          format: date-time
          type: string
        device_path:
          description: DevicePath is the device exported by block device implementations.
          type: string
        error:
          description: Error is the Last recorded error.
          type: string
        format:
          $ref: '#/components/schemas/apiFSType'
        fpConfig:
          $ref: '#/components/schemas/apiFastpathConfig'
        fs_resize_required:
          description: FsResizeRequired if an FS resize is required on the volume.
          type: boolean
        group:
          $ref: '#/components/schemas/apiGroup'
        id:
          description: Self referential volume ID.
          type: string
        in_trashcan:
          title: InTrashcan if the volume is in trashcan
          type: boolean
        last_scan:
          description: LastScan is the time when an integrity check was run.
          format: date-time
          type: string
        last_scan_fix:
          format: date-time
          title: LastScanFix is the time when an integrity check fixed errors in filesystem
          type: string
        last_scan_status:
          $ref: '#/components/schemas/apiFilesystemHealthStatus'
        locator:
          $ref: '#/components/schemas/apiVolumeLocator'
        mount_options:
          $ref: '#/components/schemas/apiMountOptions'
        readonly:
          description: Readonly is true if this volume is to be mounted with readonly access.
          type: boolean
        replica_sets:
          description: ReplicatSets storage for this volumefor clustered storage arrays.
          items:
            $ref: '#/components/schemas/apiReplicaSet'
          type: array
        runtime_state:
          description: 'RuntimeState is a lst of name value mapping of driver specific runtime

            information.'
          items:
            $ref: '#/components/schemas/apiRuntimeStateMap'
          type: array
        secure_device_path:
          description: SecureDevicePath is the device path for an encrypted volume.
          type: string
        sharedv4_mount_options:
          $ref: '#/components/schemas/apiMountOptions'
        source:
          $ref: '#/components/schemas/apiSource'
        spec:
          $ref: '#/components/schemas/apiVolumeSpec'
        state:
          $ref: '#/components/schemas/apiVolumeState'
        status:
          $ref: '#/components/schemas/apiVolumeStatus'
        usage:
          description: Usage is bytes consumed by this volume.
          format: uint64
          type: string
        volume_consumers:
          items:
            $ref: '#/components/schemas/apiVolumeConsumer'
          title: VolumeConsumers are entities that consume this volume
          type: array
      type: object
    apiIoProfile:
      default: IO_PROFILE_SEQUENTIAL
      enum:
      - IO_PROFILE_SEQUENTIAL
      - IO_PROFILE_RANDOM
      - IO_PROFILE_DB
      - IO_PROFILE_DB_REMOTE
      - IO_PROFILE_CMS
      - IO_PROFILE_SYNC_SHARED
      - IO_PROFILE_AUTO
      - IO_PROFILE_NONE
      - IO_PROFILE_JOURNAL
      - IO_PROFILE_AUTO_JOURNAL
      type: string
    Sharedv4ServiceSpecServiceType:
      default: UNSPECIFIED
      description: "Type of sharedv4 service. Values are governed by the different types\nof services supported by container orchestrators such as Kubernetes.\n\n - UNSPECIFIED: Unspecified\n - NODEPORT: Export the sharedv4 service on each Node's IP.\nIn this mode the sharedv4 volume can be accessed from outside the\ncluster using one of the node's IPs.\n - CLUSTERIP: Export the shared4 service on an internal cluster IP.\nIn this mode the sharedv4 volume will only be accessible\nwithin the cluster via this service.\n - LOADBALANCER: Expose the sharedv4 service on cloud provider's load balancer.\nApplicable when running in cloud. In this mode the sharedv4 volume\ncan be accessed from outside the cluster.\n - NONE: Do not use sharedv4 service feature. Use legacy sharedv4 volumes instead."
      enum:
      - UNSPECIFIED
      - NODEPORT
      - CLUSTERIP
      - LOADBALANCER
      - NONE
      type: string
    apiSdkVolumeInspectWithFiltersRequest:
      properties:
        group:
          $ref: '#/components/schemas/apiGroup'
        labels:
          additionalProperties:
            type: string
          title: (optional) Labels to search
          type: object
        name:
          title: (optional) Name to search
          type: string
        options:
          $ref: '#/components/schemas/apiVolumeInspectOptions'
        ownership:
          $ref: '#/components/schemas/apiOwnership'
      title: Defines the request to inspect volumes using a filter
      type: object
    apiSource:
      description: 'Source is a structure that can be given to a volume

        to seed the volume with data.'
      properties:
        parent:
          description: A volume id, if specified will create a clone of the parent.
          type: string
        seed:
          title: 'Seed will seed the volume from the specified URI

            Any additional config for the source comes from the labels in the spec'
          type: string
      type: object
    apiSdkVolumeCreateResponse:
      properties:
        volume_id:
          title: Id of new volume
          type: string
      title: Defines a response to the creation of a volume
      type: object
    ScanPolicyScanTrigger:
      default: SCAN_TRIGGER_NONE
      enum:
      - SCAN_TRIGGER_NONE
      - SCAN_TRIGGER_ON_MOUNT
      - SCAN_TRIGGER_ON_NEXT_MOUNT
      type: string
    apiCapacityUsageInfo:
      description: 'Provides details on exclusive and shared storage used by

        snapshot/volume specifically for copy-on-write(COW) snapshots. Deletion

        of snapshots and overwrite of volume will affect the exclusive storage

        used by the other dependent snaps and parent volume.'
      properties:
        exclusive_bytes:
          description: 'Storage consumed exclusively by this single snapshot. Deletion of this

            snapshot may increase the free storage available by this amount.'
          format: int64
          type: string
        shared_bytes:
          format: int64
          title: Storage consumed by this snapshot that is shared with parent and children
          type: string
        total_bytes:
          format: int64
          title: TotalBytes used by this volume
          type: string
      type: object
    apiCosType:
      default: NONE
      enum:
      - NONE
      - LOW
      - MEDIUM
      - HIGH
      type: string
    OwnershipAccessControl:
      properties:
        collaborators:
          additionalProperties:
            $ref: '#/components/schemas/OwnershipAccessType'
          description: 'Collaborator access to resource gives access to other user.

            Must be the username (unique id) set in the authorization token.

            The owner or the administrator can set this value. Possible values are:

            1. no collaborators: Means no users are given access.

            2. `["*"]`: All users are allowed.

            3. `["username1", "username2"]`: Only certain usernames are allowed. In this example only

            _username1_ and _username2_ are allowed.'
          type: object
        groups:
          additionalProperties:
            $ref: '#/components/schemas/OwnershipAccessType'
          description: 'Group access to resource which must match the group set in the

            authorization token.

            Can be set by the owner or the system administrator only.

            Possible values are:

            1. no groups: Means no groups are given access.

            2. `["*"]`: All groups are allowed.

            3. `["group1", "group2"]`: Only certain groups are allowed. In this example only

            _group1_ and _group2_ are allowed.'
          type: object
        public:
          $ref: '#/components/schemas/OwnershipPublicAccessControl'
      type: object
    apiFastpathProtocol:
      default: FASTPATH_PROTO_UNKNOWN
      enum:
      - FASTPATH_PROTO_UNKNOWN
      - FASTPATH_PROTO_NVMEOF_TCP
      - FASTPATH_PROTO_ISCSI
      - FASTPATH_PROTO_LOCAL
      type: string
    apiScanPolicy:
      description: 'ScanPolicy defines when a filesystem check is triggered and what action to take

        User can specify *one* of the following valid policies

        1. trigger=SCAN_TRIGGER_ON_MOUNT, action=SCAN_ACTION_SCAN_ONLY

        2. trigger=SCAN_TRIGGER_ON_MOUNT, action=SCAN_ACTION_SCAN_REPAIR

        3. trigger=SCAN_TRIGGER_ON_NEXT_MOUNT, action=SCAN_ACTION_SCAN_ONLY

        4. trigger=SCAN_TRIGGER_ON_NEXT_MOUNT, action=SCAN_ACTION_SCAN_REPAIR

        5. trigger=SCAN_TRIGGER_NONE, action=SCAN_ACTION_NONE

        Note: When trigger == SCAN_TRIGGER_ON_NEXT_MOUNT, the associated action is

        performed once on the next mount and the scanpolicy gets reset to

        `trigger=SCAN_TRIGGER_NONE, action=SCAN_ACTION_NONE`, irrespective of the

        output of the action.'
      properties:
        action:
          $ref: '#/components/schemas/ScanPolicyScanAction'
        trigger:
          $ref: '#/components/schemas/ScanPolicyScanTrigger'
      type: object
    apiSdkVolumeDeleteResponse:
      title: Empty response
      type: object
    apiVolumeStatus:
      default: VOLUME_STATUS_NONE
      description: "VolumeStatus represents a health status for a volume.\n\n - VOLUME_STATUS_NOT_PRESENT: Volume is not present\n - VOLUME_STATUS_UP: Volume is healthy\n - VOLUME_STATUS_DOWN: Volume is in fail mode\n - VOLUME_STATUS_DEGRADED: Volume is up but with degraded performance\nIn a RAID group, this may indicate a problem with one or more drives"
      enum:
      - VOLUME_STATUS_NONE
      - VOLUME_STATUS_NOT_PRESENT
      - VOLUME_STATUS_UP
      - VOLUME_STATUS_DOWN
      - VOLUME_STATUS_DEGRADED
      type: string
    apiSdkVolumeSnapshotScheduleUpdateResponse:
      title: Empty response
      type: object
    apiIoStrategy:
      description: IoStrategy defines how I/O should be performed to backing storage media.
      properties:
        async_io:
          description: AsyncIO enables kaio.
          type: boolean
        direct_io:
          title: Enable direct I/O on the backing datastore
          type: boolean
        early_ack:
          description: EarlyAck enables acks for async I/O at the source.
          type: boolean
      type: object
    apiSdkVolumeCatalogResponse:
      properties:
        catalog:
          $ref: '#/components/schemas/apiCatalogResponse'
      title: Response message to get volume catalog
      type: object
    apiSdkVolumeUpdateRequest:
      properties:
        labels:
          additionalProperties:
            type: string
          description: 'Change label values. Some of these values may not be able to be changed.

            New labels will be added to the current volume labels. To delete a label, set the

            value of the label to an empty string.'
          type: object
        spec:
          $ref: '#/components/schemas/apiVolumeSpecUpdate'
        volume_id:
          title: Id of the volume to update
          type: string
      title: This request is used to adjust or set new values in the volume
      type: object
    apiGroup:
      description: 'Group represents VolumeGroup / namespace

        All volumes in the same group share this object.'
      properties:
        id:
          description: Id common identifier across volumes that have the same group.
          type: string
      type: object
    apiFSType:
      default: FS_TYPE_NONE
      enum:
      - FS_TYPE_NONE
      - FS_TYPE_BTRFS
      - FS_TYPE_EXT4
      - FS_TYPE_FUSE
      - FS_TYPE_NFS
      - FS_TYPE_VFS
      - FS_TYPE_XFS
      - FS_TYPE_ZFS
      - FS_TYPE_XFSv2
      type: string
    apiOwnership:
      description: 'Ownership information for resource.

        Administrators are users who belong to the group `*`, meaning, every group.'
      properties:
        acls:
          $ref: '#/components/schemas/OwnershipAccessControl'
        owner:
          description: 'Username of owner.


            The storage system uses the username taken from the security authorization

            token and is saved on this field. Only users with system administration

            can edit this value.'
          type: string
      type: object
    apiSdkVolumeEnumerateResponse:
      properties:
        volume_ids:
          items:
            type: string
          title: List of volumes matching label
          type: array
      title: Defines the response when listing volumes
      type: object
    apiReplicaPlacementSpec:
      properties:
        affected_replicas:
          format: int32
          title: 'AffectedReplicas defines the number of volume replicas affected by this rule. If not provided,

            rule would affect all replicas

            (optional)'
          type: integer
        enforcement:
          $ref: '#/components/schemas/apiEnforcementType'
        match_expressions:
          description: MatchExpressions is a list of label selector requirements. The requirements are ANDed.
          items:
            $ref: '#/components/schemas/apiLabelSelectorRequirement'
          type: array
        topology_key:
          title: 'TopologyKey key for the matching all segments of the cluster topology with the same key

            e.g If the key is failure-domain.beta.kubernetes.io/zone, this should match all nodes with

            the same value for this key (i.e in the same zone)'
          type: string
        weight:
          format: int64
          title: 'Weight defines the weight of the rule which allows to break the tie with other matching rules. A rule with

            higher weight wins over a rule with lower weight.

            (optional)'
          type: string
      type: object
    runtimeError:
      properties:
        code:
          format: int32
          type: integer
        details:
          items:
            $ref: '#/components/schemas/protobufAny'
          type: array
        error:
          type: string
        message:
          type: string
      type: object
    apiSdkVolumeStatsResponse:
      properties:
        stats:
          $ref: '#/components/schemas/apiStats'
      title: Defines a response containing drive statistics
      type: object
    apiVolumePlacementStrategy:
      description: 'VolumePlacementStrategy defines a strategy for placing volumes in the cluster which will be a series of rules

        All the rules specified will be applied for volume placement.

        Rules that have enforcement as "required" are strictly enforced while "preferred" are best effort.

        In situations, where 2 or more rules conflict, the weight of the rules will dictate which wins.'
      properties:
        replica_affinity:
          items:
            $ref: '#/components/schemas/apiReplicaPlacementSpec'
          title: ReplicaAffinity defines affinity rules between replicas within a volume
       

# --- truncated at 32 KB (68 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/portworx/refs/heads/main/openapi/portworx-openstoragevolume-api-openapi.yml