Portworx OpenStorageWatch API

The OpenStorageWatch API from Portworx — 1 operation(s) for openstoragewatch.

Operations 1

POST /v1/watch Watch on resources managed by the driver and receive them as a stream of events. #

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-openstoragewatch-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-openstoragewatch-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: OpenStorage SDK OpenStorageAlerts Open Storage Watch 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: OpenStorageWatch
paths:
  /v1/watch:
    post:
      description: Requires access AccessType.Read
      operationId: OpenStorageWatch_Watch
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiSdkWatchRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  error:
                    $ref: '#/components/schemas/runtimeStreamError'
                  result:
                    $ref: '#/components/schemas/apiSdkWatchResponse'
                title: Stream result of apiSdkWatchResponse
                type: object
          description: A successful response.(streaming responses)
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: Watch on resources managed by the driver and receive them as a stream of events.
      tags:
      - OpenStorageWatch
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
    apiPureFileSpec:
      properties:
        export_rules:
          type: string
        full_vol_name:
          type: string
        nfs_endpoint:
          type: string
      title: PureFileSpec is the spec for proxying a volume on pure_file backends
      type: object
    protobufAny:
      properties:
        type_url:
          type: string
        value:
          format: byte
          type: string
      type: object
    apiSdkWatchResponse:
      properties:
        volume_event:
          $ref: '#/components/schemas/apiSdkVolumeWatchResponse'
      title: Defines the response to watch an openstorage event. An event can be a volume, a node, a disk, etc
      type: object
    apiTopologyRequirement:
      properties:
        labels:
          additionalProperties:
            type: string
          title: Key-value pairs defining the required topology for a volume
          type: object
      title: TopologyRequirement defines the topology requirement for a volume
      type: object
    runtimeStreamError:
      properties:
        details:
          items:
            $ref: '#/components/schemas/protobufAny'
          type: array
        grpc_code:
          format: int32
          type: integer
        http_code:
          format: int32
          type: integer
        http_status:
          type: string
        message:
          type: string
      type: object
    apiIoThrottle:
      properties:
        read_bw_mbytes:
          format: int64
          type: integer
        read_iops:
          format: int64
          type: integer
        write_bw_mbytes:
          format: int64
          type: integer
        write_iops:
          format: int64
          type: integer
      title: 'IoThrottle defines IO throttle limits for a volume

        read_iops : maximum read iops this volume is allowed

        write_iops : maximum write iops this volume is allowed

        read_bw_mbytes  : maximum read bandwidth this volume is allowed in MegaBytes

        write_bw_mbytes : maximum write bandwidth this volume is allowed in MegaBytes'
      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
    apiReplicaSet:
      properties:
        id:
          format: int64
          title: ID is the unique ID of this replica set
          type: integer
        nodes:
          items:
            type: string
          type: array
        pool_uuids:
          items:
            type: string
          title: Unique IDs of the storage pools for this replica set
          type: array
      title: 'ReplicaSet set of machine IDs (nodes) to which part of this volume is erasure

        coded - for clustered storage arrays'
      type: object
    apiRuntimeStateMap:
      description: 'RuntimeStateMap is a list of name value mapping of driver specific runtime

        information.'
      properties:
        runtime_state:
          additionalProperties:
            type: string
          type: object
      type: object
    apiNFSProxySpec:
      description: NFSProxySpec is the spec for proxying an NFS share.
      properties:
        export_path:
          title: ExportPath is the NFS export path on the NFS server
          type: string
        sub_path:
          description: SubPath is the sub-directory from an NFS share that should be reflected.
          type: string
      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
    apiVolumeState:
      default: VOLUME_STATE_NONE
      description: "VolumeState represents the state of a volume.\n\n - VOLUME_STATE_PENDING: Volume is transitioning to new state\n - VOLUME_STATE_AVAILABLE: Volume is ready to be assigned to a container\n - VOLUME_STATE_ATTACHED: Volume is attached to container\n - VOLUME_STATE_DETACHED: Volume is detached but associated with a container\n - VOLUME_STATE_DETATCHING: Volume detach is in progress\n - VOLUME_STATE_ERROR: Volume is in error state\n - VOLUME_STATE_DELETED: Volume is deleted, it will remain in this state\nwhile resources are asynchronously reclaimed\n - VOLUME_STATE_TRY_DETACHING: Volume is trying to be detached\n - VOLUME_STATE_RESTORE: Volume is undergoing restore"
      enum:
      - VOLUME_STATE_NONE
      - VOLUME_STATE_PENDING
      - VOLUME_STATE_AVAILABLE
      - VOLUME_STATE_ATTACHED
      - VOLUME_STATE_DETACHED
      - VOLUME_STATE_DETATCHING
      - VOLUME_STATE_ERROR
      - VOLUME_STATE_DELETED
      - VOLUME_STATE_TRY_DETACHING
      - VOLUME_STATE_RESTORE
      type: string
    apiProxyProtocol:
      default: PROXY_PROTOCOL_INVALID
      description: "ProxyProtocol defines the protocol used for proxy.\n\n - PROXY_PROTOCOL_INVALID: Invalid uninitialized value\n - PROXY_PROTOCOL_NFS: NFS indicates that the external data source is NFS and the volume\nwill be reflected over NFS protocol\n - PROXY_PROTOCOL_S3: S3 indicates that the external data source is an object store.\n - PROXY_PROTOCOL_PXD: PXD indicates that the external data source is a Portworx block volume.\n - PROXY_PROTOCOL_PURE_BLOCK: PURE_BLOCK indicates that the external data source is a pure_block volume.\n - PROXY_PROTOCOL_PURE_FILE: PURE_FILE indicates that the external data source is a pure_file volume."
      enum:
      - PROXY_PROTOCOL_INVALID
      - PROXY_PROTOCOL_NFS
      - PROXY_PROTOCOL_S3
      - PROXY_PROTOCOL_PXD
      - PROXY_PROTOCOL_PURE_BLOCK
      - PROXY_PROTOCOL_PURE_FILE
      type: string
    apiVolumeConsumer:
      properties:
        name:
          title: Name is the name of the volume consumer
          type: string
        namespace:
          title: Namespace is the namespace of the volume consumer
          type: string
        node_id:
          description: "NodeID is the identifier of the node on which the consumer is running. This\nidentifier would be from the perspective of the container runtime or\norchestrator under which the volume consumer resides. For example, NodeID\n can be name of a minion in Kubernetes."
          type: string
        owner_name:
          title: OwnerName is the name of the entity who owns this volume consumer
          type: string
        owner_type:
          description: 'OwnerType is the type of the entity who owns this volume consumer. The type would

            be from the perspective of the container runtime or the orchestrator under which

            the volume consumer resides. For e.g OwnerType can be a Deployment in Kubernetes.'
          type: string
        type:
          title: Type is the type of the consumer. E.g a Kubernetes pod
          type: string
      title: 'VolumeConsumer identifies a consumer for a Volume. An example of a VolumeConsumer

        would be a Pod in Kubernetes who has mounted the PersistentVolumeClaim for the

        Volume'
      type: object
    apiVolumeLocator:
      description: 'VolumeLocator is a structure that is attached to a volume

        and is used to carry opaque metadata.'
      properties:
        group:
          $ref: '#/components/schemas/apiGroup'
        name:
          title: User friendly identifier
          type: string
        ownership:
          $ref: '#/components/schemas/apiOwnership'
        volume_ids:
          items:
            type: string
          title: Volume Ids to match
          type: array
        volume_labels:
          additionalProperties:
            type: string
          title: A set of name-value pairs that acts as search filters
          type: object
      type: object
    ScanPolicyScanTrigger:
      default: SCAN_TRIGGER_NONE
      enum:
      - SCAN_TRIGGER_NONE
      - SCAN_TRIGGER_ON_MOUNT
      - SCAN_TRIGGER_ON_NEXT_MOUNT
      type: string
    apiSharedv4Spec:
      properties:
        failover_strategy:
          $ref: '#/components/schemas/apiSharedv4FailoverStrategyValue'
      title: Sharedv4Spec specifies common properties of sharedv4 and sharedv4 service volumes
      type: object
    apiSdkWatchRequest:
      properties:
        volume_event:
          $ref: '#/components/schemas/apiSdkVolumeWatchRequest'
      title: Defines the request to watch an openstorage event. An event can be a volume, a node, a disk, etc
      type: object
    apiXattrValue:
      default: UNSPECIFIED
      enum:
      - UNSPECIFIED
      - COW_ON_DEMAND
      title: "- UNSPECIFIED: Value is uninitialized or unknown\n - COW_ON_DEMAND: Enable on-demand copy-on-write on the volume"
      type: string
    apiAttachState:
      default: ATTACH_STATE_EXTERNAL
      enum:
      - ATTACH_STATE_EXTERNAL
      - ATTACH_STATE_INTERNAL
      - ATTACH_STATE_INTERNAL_SWITCH
      title: "- ATTACH_STATE_EXTERNAL: Attached and available externally\n - ATTACH_STATE_INTERNAL: Attached but only available internally\n - ATTACH_STATE_INTERNAL_SWITCH: Switching from External to Internal"
      type: string
    apiNearSyncReplicationStrategy:
      default: NEAR_SYNC_STRATEGY_NONE
      enum:
      - NEAR_SYNC_STRATEGY_NONE
      - NEAR_SYNC_STRATEGY_AGGRESSIVE
      - NEAR_SYNC_STRATEGY_OPTIMIZED
      type: string
    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
    OwnershipAccessType:
      default: Read
      description: "Access types can be set by owner to have different levels of access to\na resource.\n\nIt is up to the resource to interpret what the types mean and are\nused for.\n\n - Read: Read access only and cannot affect the resource.\n - Write: Write access and can affect the resource.\nThis type automatically provides Read access also.\n - Admin: Administrator access.\nThis type automatically provides Read and Write access also."
      enum:
      - Read
      - Write
      - Admin
      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
    apiFastpathProtocol:
      default: FASTPATH_PROTO_UNKNOWN
      enum:
      - FASTPATH_PROTO_UNKNOWN
      - FASTPATH_PROTO_NVMEOF_TCP
      - FASTPATH_PROTO_ISCSI
      - FASTPATH_PROTO_LOCAL
      type: string
    apiS3ProxySpec:
      description: S3ProxySpec is the spec for proxying an external object store.
      properties:
        bucket_name:
          title: BucketName is the name of the bucket from the object store
          type: string
      type: object
    apiSharedv4FailoverStrategyValue:
      default: UNSPECIFIED
      description: " - UNSPECIFIED: Unspecified\n - AGGRESSIVE: Fail over to the new NFS server quickly. This is appropriate for\nthe apps with sharedv4 service volumes. It can also be used\nfor the apps with sharedv4 volumes when such apps are able\nto restart quickly.\n - NORMAL: Give the old NFS server more time to come back up before\ntriggering the failover. This is appropriate for the apps\nwith sharedv4 volumes (non-service)."
      enum:
      - UNSPECIFIED
      - AGGRESSIVE
      - NORMAL
      type: string
    apiFastpathConfig:
      properties:
        coord_uuid:
          title: fastpath coordinator node uuid to enhance reporting
          type: string
        dirty:
          title: Dirty flag on volume - was attached in userspace
          type: boolean
        force_failover:
          title: fastpath force failover, disable auto promote to fastpath
          type: boolean
        promote:
          title: Fastpath temporary promotion during attach
          type: boolean
        replicas:
          items:
            $ref: '#/components/schemas/apiFastpathReplState'
          title: Fastpath replica state for each replica in replica set
          type: array
        setup_on:
          format: int32
          title: fastpath setup on this node
          type: integer
        status:
          $ref: '#/components/schemas/apiFastpathStatus'
        verbose:
          title: Verbose contains detailed info on fastpath status
          type: string
      title: FastpathConfig part of volume
      type: object
    OwnershipPublicAccessControl:
      properties:
        type:
          $ref: '#/components/schemas/OwnershipAccessType'
      title: PublicAccessControl allows assigning public ownership
      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
    apiLabelSelectorRequirement:
      description: 'LabelSelectorRequirement is a selector that contains values, a key, and an operator that

        relates the key and values.'
      properties:
        key:
          description: Key is the label key that the selector applies to.
          type: string
        operator:
          $ref: '#/components/schemas/LabelSelectorRequirementOperator'
        values:
          description: 'Values is an array of string values. If the operator is In or NotIn,

            the values array must be non-empty. If the operator is Exists or DoesNotExist,

            the values array must be empty. This array is replaced during a strategic

            merge patch.'
          items:
            type: string
          type: array
      type: object
    apiExportSpec:
      description: ExportSpec defines how the volume is exported..
      properties:
        export_options:
          description: ExportOptions options exporting the volume.
          type: string
        export_protocol:
          $ref: '#/components/schemas/apiExportProtocol'
      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
    apiFastpathReplState:
      properties:
        acl:
          type: boolean
        block:
          type: boolean
        dev_id:
          format: uint64
          type: string
        devpath:
          type: string
        exported:
          type: boolean
        exported_device:
          title: target info
          type: string
        imported:
          title: initiator info
          type: boolean
        node_id:
          format: int64
          type: integer
        node_uuid:
          title: node_uuid added to enhance UI reporting
          type: string
        protocol:
          $ref: '#/components/schemas/apiFastpathProtocol'
        target:
          type: string
      type: object
    apiSdkVolumeWatchRequest:
      properties:
        labels:
          additionalProperties:
            type: string
          title: labels to filter out the volumes to watch on
          type: object
      title: 'Defines the request to watch an openstorage volume event for the given label

        if the label is empty, it returns all the volume events'
      type: object
    LabelSelectorRequirementOperator:
      default: In
      description: "- In: In means the value for 'key' should be in one of the given value(s)\n - NotIn: NotIn means the value for 'key' should NOT be in one of the given value(s)\n - Exists: Exists means the 'key' should just exist regardless of the value\n - DoesNotExist: DoesNotExist means the 'key' should NOT exist\n - Gt: Gt means the 'key' should be greater than the value(s)\n - Lt: Lt means the 'key' should be less than the value(s)"
      enum:
      - In
      - NotIn
      - Exists
      - DoesNotExist
      - Gt
      - Lt
      title: This defines operator types used in a label matching rule
      type: string
    apiExportProtocol:
      default: INVALID
      description: "ExportProtocol defines how the device is exported..\n\n - INVALID: Invalid uninitialized value\n - PXD: PXD the volume is exported over Portworx block interface.\n - ISCSI: ISCSI the volume is exported over ISCSI.\n - NFS: NFS the volume is exported over NFS.\n - CUSTOM: Custom the volume is exported over custom interface."
      enum:
      - INVALID
      - PXD
      - ISCSI
      - NFS
      - CUSTOM
      type: string
    apiProxySpec:
      description: ProxySpec defines how this volume will reflect an external data source.
      properties:
        endpoint:
          description: 'Endpoint is the external endpoint which can be used for accessing the

            external data source.'
          type: string
        nfs_spec:
          $ref: '#/components/schemas/apiNFSProxySpec'
        proxy_protocol:
          $ref: '#/components/schemas/apiProxyProtocol'
        pure_block_spec:
          $ref: '#/components/schemas/apiPureBlockSpec'
        pure_file_spec:
          $ref: '#/components/schemas/apiPureFileSpec'
        pxd_spec:
          $ref: '#/components/schemas/apiPXDProxySpec'
        s3_spec:
          $ref: '#/components/schemas/apiS3ProxySpec'
      type: object
    apiVolumeSpec:
      description: VolumeSpec has the properties needed to create a volume.
      properties:
        aggregation_level:
          description: Aggregation level Specifies the number of parts the volume can be aggregated from.
          format: int64
          type: integer
        auto_fstrim:
          title: Autofstrim indicates that fstrim would be run on this volume automatically, without user intervention
          type: boolean
        block_size:
          description: BlockSize for the filesystem.
          format: int64
          type: string
        cascaded:
          description: Cascaded is true if this volume can be populated on any node from an external source.
          type: boolean
        checksum_clone_id:
          title: clone created to trigger checksum verification
          type: string
        checksummed:
          title: Checksummed indicates if volumed data is checksummed to provide data integrity
          type: boolean
        compressed:
          description: Compressed is true if this volume is to be compressed.
          type: boolean
        cos:
          $ref: '#/components/schemas/apiCosType'
        dedupe:
          description: Dedupe specifies if the volume data is to be de-duplicated.
          type: boolean
        encrypted:
          description: Encrypted is true if this volume will be cryptographically secured.
          type: boolean
        ephemeral:
          title: Ephemeral storage
          type: boolean
        export_spec:
          $ref: '#/components/schemas/apiExportSpec'
        fa_create_options:
          description: Filesystem create options to be honored.
          type: string
        force_unsupported_fs_type:
          description: 'Use to force a file system type which is not recommended.

            The driver may still refuse to use the file system type.'
          type: boolean
        format:
          $ref: '#/components/schemas/apiFSType'
        fp_preference:
          title: fastpath extensions
          type: boolean
        group:
          $ref: '#/components/schemas/apiGroup'
        group_enforced:
          description: GroupEnforced is true if consistency group creation is enforced.
          type: boolean
        ha_level:
          description: HaLevel specifies the number of copies of data.
          format: int64
          type: string
        io_profile:
          $ref: '#/components/schemas/apiIoProfile'
        io_strategy:
          $ref: '#/components/schemas/apiIoStrategy'
        io_throttle:
          $ref: '#/components/schemas/apiIoThrottle'
        journal:
          description: Journal is true if data for the volume goes into the journal.
          type: boolean
        mount_options:
          $ref: '#/components/schemas/apiMountOptions'
        near_sync:
          title: NearSync specifies the volume has a near-sync replica
          type: boolean
        near_sync_replication_strategy:
          $ref: '#/components/schemas/apiNearSyncReplicationStrategy'
        nodiscard:
          description: 'Nodiscard specifies if the volume will be mounted with discard support disabled.

            i.e. FS will not release allocated blocks back to the backing storage pool.'
          type: boolean
        number_of_chunks:
          format: int64
          title: NumberOfChunks indicates how many chunks must be created, 0 and 1 both mean 1
          type: integer
        ownership:
          $ref: '#/components/schemas/apiOwnership'
        passphrase:
          title: Passphrase for an encrypted volume
          type: string
        placement_strategy:
          $ref: '#/components/schemas/apiVolumePlacementStrategy'
        proxy_spec:
          $ref: '#/components/schemas/apiProxySpec'
        proxy_write:
          title: Proxy_write if true, per volume proxy write replication enabled
          type: boolean
        queue_depth:
          format: int64
          title: QueueDepth defines the desired block device queue depth
          type: integer
        readahead:
          title: Enable readahead for the volume
          type: boolean
        replica_set:
          $ref: '#/components/schemas/apiReplicaSet'
        scale:
          description: Scale allows autocreation of volumes.
          format: int64
          type: integer
        scan_policy:
          $ref: '#/components/schemas/apiScanPolicy'
        shared:
          description: Shared is true if this volume can be concurrently accessed by multiple users.
          type: boolean
        sharedv4:
          description: Sharedv4 is true if this volume can be accessed via sharedv4.
          type: boolean
        sharedv4_mount_options:
          $ref: '#/components/schemas/apiMountOptions'
        sharedv4_service_spec:
          $ref: '#/components/schemas/apiSharedv4ServiceSpec'
        sharedv4_spec:
          $ref: '#/components/schemas/apiSharedv4Spec'
        size:
          format: uint64
          title: Size specifies the thin provisioned volume size in bytes
          type: string
        snapshot_interval:
          format: int64
          title: SnapshotInterval in minutes, set to 0 to disable snapshots
          type: integer
        snapshot_schedule:
          description: SnapshotSchedule a well known string that specifies when snapshots should be taken.
          type: string
        sticky:
          description: Sticky volumes cannot be deleted until the flag is removed.
          type: boolean
        storage_policy:
          title: StoragePolicy if applied/specified while creating volume
          type: string
        topology_requirement:
          $ref: '#/components/schemas/apiTopologyRequirement'
        volume_labels:
          additionalProperties:
            type: string
          title: (deprecated, do not use) VolumeLabels configuration labels
          type: object
        winshare:
          description: winshare is true if this volume can be accessed from windows pods.
          type: boolean
        xattr:
          $ref: '#/components/schemas/apiXattrValue'
      type: object
    apiMountOptions:
      description

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