Portworx OpenStorageVolume API
The OpenStorageVolume API from Portworx — 13 operation(s) for openstoragevolume.
The OpenStorageVolume API from Portworx — 13 operation(s) for openstoragevolume.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/portworx-openstoragevolume-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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