openapi: 3.0.1
info:
title: FlashArray REST Active Directory Volume Groups API
version: '2.52'
description: 'Active Directory configuration authenticates users for NFS using Kerberos or SMB using Kerberos
or New Technology LAN Manager (NTLM). Active Directory is also used to authorize users by
mapping identities across the NFS and SMB protocols by using LDAP queries.
'
servers:
- url: /
tags:
- name: Volume Groups
description: 'Volume groups organize volumes into logical groupings. If virtual volumes are configured, each
volume group on the FlashArray array represents its associated virtual machine, and inside each
of those volumes groups are the FlashArray volumes that are assigned to the virtual machine.
Volume groups that are associated with virtual machines have names that begin with `vvol-` and
end with the virtual machine name.
'
paths:
/api/2.52/volume-groups:
get:
tags:
- Volume Groups
summary: Pure Storage List Volume Groups
description: 'Displays a list of volume groups, including those pending eradication.
'
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Allow_errors'
- $ref: '#/components/parameters/Context_names_get'
- $ref: '#/components/parameters/Continuation_token'
- $ref: '#/components/parameters/Destroyed'
- $ref: '#/components/parameters/Filter'
- $ref: '#/components/parameters/Ids'
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Names'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Sort'
- $ref: '#/components/parameters/Total_item_count'
- $ref: '#/components/parameters/Total_only'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/VolumeGroupGetResponse'
'207':
description: 'Partial success. Some resources were returned, but there
were also errors possibly preventing some resources from
being returned.
'
content:
application/json:
schema:
$ref: '#/components/schemas/VolumeGroupGetResponse'
post:
tags:
- Volume Groups
summary: Pure Storage Create a Volume Group and Upsert Tags.
description: 'Creates a volume group. The volume group itself does not contain any meaningful
content; instead, it acts as a container that is used to organize volumes.
Once a volume group has been created, volumes can be created inside the volume group or moved
into and out of the volume group.
'
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Names'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/VolumeGroupPost'
required: true
x-codegen-request-body-name: volume-group
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/VolumeGroupResponse'
x-codegen-request-body-name: volume-group
delete:
tags:
- Volume Groups
summary: Pure Storage Delete a Volume Group
description: 'Deletes a volume group that has been destroyed and is pending eradication.
Eradicated volume groups cannot be recovered.
Volume groups are destroyed through the PATCH method.
The `ids` or `names` parameter is required, but they cannot be set together.
'
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Eradicate_contents'
- $ref: '#/components/parameters/Ids'
- $ref: '#/components/parameters/Names'
responses:
'200':
description: OK
content: {}
patch:
tags:
- Volume Groups
summary: Pure Storage Modify a Volume Group
description: 'Modifies a volume group. You can rename, destroy, recover, or set QoS limits for a volume group.
To rename a volume group, set `name` to the new name.
To destroy a volume group, set `destroyed=true`.
To recover a volume group that has been destroyed and is pending eradication, set
`destroyed=false`.
Sets the bandwidth and IOPS limits of a volume group through the respective `bandwidth_limit`
and `iops_limit` parameter. The `ids` or `names` parameter is required, but they cannot be set
together.
Sets the priority adjustment for a volume group using the `priority_adjustment_operator` and
`priority_adjustment_value` fields.
'
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Destroy_contents'
- $ref: '#/components/parameters/Ids'
- $ref: '#/components/parameters/Names'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/VolumeGroupPatch'
required: true
x-codegen-request-body-name: volume-group
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/VolumeGroupResponse'
x-codegen-request-body-name: volume-group
/api/2.52/volume-groups/performance:
get:
tags:
- Volume Groups
summary: Pure Storage List Volume Group Performance Data
description: 'Displays real-time and historical performance data, real-time latency data, and average I/O
sizes for each volume group and and as a total of all volume groups across the entire array.
'
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Allow_errors'
- $ref: '#/components/parameters/Context_names_get'
- $ref: '#/components/parameters/Continuation_token'
- $ref: '#/components/parameters/Destroyed'
- $ref: '#/components/parameters/History_end_time'
- $ref: '#/components/parameters/Filter'
- $ref: '#/components/parameters/Ids'
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Names'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/History_resolution'
- $ref: '#/components/parameters/Sort'
- $ref: '#/components/parameters/History_start_time'
- $ref: '#/components/parameters/Total_item_count'
- $ref: '#/components/parameters/Total_only'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ResourcePerformanceGetResponse'
'207':
description: 'Partial success. Some resources were returned, but there
were also errors possibly preventing some resources from
being returned.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ResourcePerformanceGetResponse'
/api/2.52/volume-groups/qos:
get:
tags:
- Volume Groups
summary: Pure Storage List Volume Group QoS Config
description: 'Displays real-time and historical QoS configuration data for each volume group.
'
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Allow_errors'
- $ref: '#/components/parameters/Context_names_get'
- $ref: '#/components/parameters/Continuation_token'
- $ref: '#/components/parameters/Destroyed'
- $ref: '#/components/parameters/History_end_time'
- $ref: '#/components/parameters/Filter'
- $ref: '#/components/parameters/Ids'
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Names'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/History_resolution'
- $ref: '#/components/parameters/Sort'
- $ref: '#/components/parameters/History_start_time'
- $ref: '#/components/parameters/Total_item_count'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/VolumeGroupQosGetResponse'
'207':
description: 'Partial success. Some resources were returned, but there
were also errors possibly preventing some resources from
being returned.
'
content:
application/json:
schema:
$ref: '#/components/schemas/VolumeGroupQosGetResponse'
/api/2.52/volume-groups/space:
get:
tags:
- Volume Groups
summary: Pure Storage List Volume Group Space Information
description: 'Displays the provisioned size and physical storage consumption data
for each volume group.
'
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Allow_errors'
- $ref: '#/components/parameters/Context_names_get'
- $ref: '#/components/parameters/Continuation_token'
- $ref: '#/components/parameters/Destroyed'
- $ref: '#/components/parameters/History_end_time'
- $ref: '#/components/parameters/Filter'
- $ref: '#/components/parameters/Ids'
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Names'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/History_resolution'
- $ref: '#/components/parameters/Sort'
- $ref: '#/components/parameters/History_start_time'
- $ref: '#/components/parameters/Total_item_count'
- $ref: '#/components/parameters/Total_only'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceSpaceGetResponse'
'207':
description: 'Partial success. Some resources were returned, but there
were also errors possibly preventing some resources from
being returned.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceSpaceGetResponse'
/api/2.52/volume-groups/volumes:
get:
tags:
- Volume Groups
summary: Pure Storage List Volume Groups with Volumes
description: Displays a list of volume groups that contain volumes.
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Allow_errors'
- $ref: '#/components/parameters/Context_names_get'
- $ref: '#/components/parameters/Continuation_token'
- $ref: '#/components/parameters/Filter'
- $ref: '#/components/parameters/Group_ids'
- $ref: '#/components/parameters/Group_names'
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Member_ids'
- $ref: '#/components/parameters/Member_names'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Sort'
- $ref: '#/components/parameters/Total_item_count'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/MemberGetResponse'
'207':
description: 'Partial success. Some resources were returned, but there
were also errors possibly preventing some resources from
being returned.
'
content:
application/json:
schema:
$ref: '#/components/schemas/MemberGetResponse'
/api/2.52/volume-groups/tags:
get:
tags:
- Volume Groups
summary: Pure Storage List Tags
description: Displays the list of tags.
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Allow_errors'
- $ref: '#/components/parameters/Context_names_get'
- $ref: '#/components/parameters/Continuation_token'
- $ref: '#/components/parameters/Filter'
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Namespaces'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Resource_destroyed'
- $ref: '#/components/parameters/Resource_ids'
- $ref: '#/components/parameters/Resource_names'
- $ref: '#/components/parameters/Sort'
- $ref: '#/components/parameters/Total_item_count'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/TagGetResponse'
'207':
description: 'Partial success. Some resources were returned, but there
were also errors possibly preventing some resources from
being returned.
'
content:
application/json:
schema:
$ref: '#/components/schemas/TagGetResponse'
delete:
tags:
- Volume Groups
summary: Pure Storage Delete Tags
description: Deletes specified tags.
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Keys'
- $ref: '#/components/parameters/Namespaces_delete'
- $ref: '#/components/parameters/Resource_ids'
- $ref: '#/components/parameters/Resource_names'
responses:
'200':
description: OK
content: {}
/api/2.52/volume-groups/tags/batch:
put:
tags:
- Volume Groups
summary: Pure Storage Update Tags
description: Updates tags for all specified objects.
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Resource_ids'
- $ref: '#/components/parameters/Resource_names'
requestBody:
description: A list of tags to be created or, if one already exists, updated.
content:
application/json:
schema:
maxItems: 30
minItems: 1
uniqueItems: true
type: array
items:
$ref: '#/components/schemas/TagBatch'
required: true
x-codegen-request-body-name: tag
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/TagResponse'
x-codegen-request-body-name: tag
components:
schemas:
TagGetResponse:
allOf:
- $ref: '#/components/schemas/PageInfo'
- $ref: '#/components/schemas/TagResponse'
- $ref: '#/components/schemas/_errorContextResponse'
_errorContextResponse:
type: object
properties:
errors:
description: The list of errors encountered when attempting to perform an operation.
type: array
readOnly: true
items:
$ref: '#/components/schemas/_errorcontextresponseErrors'
MemberResponse:
type: object
properties:
items:
description: 'Displays a list of all items after filtering.
The values are displayed for each name where meaningful.
If `total_only=true`, the `items` list will be empty.
'
type: array
items:
$ref: '#/components/schemas/Member'
Member:
allOf:
- $ref: '#/components/schemas/_context'
- type: object
properties:
group:
$ref: '#/components/schemas/_reference'
member:
$ref: '#/components/schemas/_reference'
VolumeGroupGetResponse:
allOf:
- $ref: '#/components/schemas/PageInfo'
- $ref: '#/components/schemas/VolumeGroupResponse'
- $ref: '#/components/schemas/_errorContextResponse'
- type: object
properties:
total:
description: 'The aggregate value of all items after filtering.
Where meaningful, the average value is displayed instead.
If applicable, the values are displayed for each field.
'
type: array
items:
$ref: '#/components/schemas/VolumeGroup'
_resource:
description: 'An ordinary (as opposed to built-in) resource that can be created, named,
renamed or deleted by the user. This might be a virtual resource (e.g., a
file system), or correspond to something in the environment, like a host or a
server.
'
type: object
properties:
id:
description: 'A globally unique, system-generated ID.
The ID cannot be modified and cannot refer to another resource.
'
type: string
readOnly: true
name:
description: 'A user-specified name.
The name must be locally unique and can be changed.
'
type: string
_reference:
type: object
properties:
id:
description: 'A globally unique, system-generated ID.
The ID cannot be modified.
'
type: string
name:
description: 'The resource name, such as volume name, pod name,
snapshot name, and so on.
'
type: string
x-aliases:
- _referenceWithoutType
TagBatch:
type: object
properties:
copyable:
description: 'Specifies whether or not to include the tag when copying the parent resource.
If set to `true`, the tag is included in resource copying.
If set to `false`, the tag is not included.
If not specified, defaults to `true`.
'
type: boolean
example: true
key:
description: 'Key of the tag. Supports up to 64 Unicode characters.
'
type: string
example: environment
namespace:
description: 'Optional namespace of the tag.
Namespace identifies the category of the tag. Omitting the namespace
defaults to the namespace `default`. The `pure*` namespaces are
reserved for plugins and integration partners. It is recommended
that customers avoid using reserved namespaces.
'
type: string
example: default
resource:
description: 'A reference to the parent object.
'
title: Reference
allOf:
- $ref: '#/components/schemas/_reference'
value:
description: 'Value of the tag. Supports up to 256 Unicode characters.
'
type: string
example: staging
_containerQosCeilings:
type: object
properties:
bandwidth_limit:
description: 'The maximum QoS bandwidth limit for the container.
Whenever throughput exceeds the bandwidth limit, throttling occurs.
Measured in bytes per second. Maximum limit is 512 GB/s.
'
title: Qos_bw_limit_type
allOf:
- $ref: '#/components/schemas/_qos_bw_limit_type'
iops_limit:
description: 'The QoS IOPs limit for the container.
'
title: Qos_iops_limit_type
allOf:
- $ref: '#/components/schemas/_qos_iops_limit_type'
_errorcontextresponseErrors:
type: object
properties:
context:
description: 'Contains information relating to the cause of this error,
or the name of the object that was being processed when the error was encountered.
This may be `null` for more general errors.
'
type: string
location_context:
description: 'Contains information relating to the context in which the request was executing
when the error occurred.
For example, this may be the name of an array in the same fleet.
This may be `null` for more general errors, or if no explicit `context` parameter
was provided with the request.
'
title: FixedReferenceWithType
allOf:
- $ref: '#/components/schemas/_fixedReferenceWithType'
message:
description: A description of the error which occurred.
type: string
example: Resource does not exist.
x-aliases:
- _errorContextResponseErrors
TagResponse:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Tag'
ResourcePerformanceGetResponse:
allOf:
- $ref: '#/components/schemas/PageInfo'
- $ref: '#/components/schemas/_errorContextResponse'
- type: object
properties:
items:
description: 'Performance data.
If `total_only=true`, the `items` list will be empty.
'
type: array
items:
$ref: '#/components/schemas/ResourcePerformance'
total:
description: 'The aggregate value of all items after filtering.
Where it makes more sense, the average value is displayed instead.
The values are displayed for each field where meaningful.
'
type: array
items:
$ref: '#/components/schemas/ResourcePerformance'
_qos_bw_limit_type:
type: integer
format: int64
minimum: 1048576
maximum: 549755813888
Tag:
allOf:
- $ref: '#/components/schemas/_context'
- type: object
properties:
copyable:
description: 'Specifies whether or not to include the tag when copying the parent resource.
If set to `true`, the tag is included in resource copying.
If set to `false`, the tag is not included.
If not specified, defaults to `true`.
'
type: boolean
example: true
key:
description: 'Key of the tag. Supports up to 64 Unicode characters.
'
type: string
example: environment
namespace:
description: 'Optional namespace of the tag.
Namespace identifies the category of the tag. Omitting the namespace
defaults to the namespace `default`. The `pure*` namespaces are
reserved for plugins and integration partners. It is recommended
that customers avoid using reserved namespaces.
'
type: string
example: default
resource:
$ref: '#/components/schemas/_fixedReference'
value:
description: 'Value of the tag. Supports up to 256 Unicode characters.
'
type: string
example: staging
_performance_others:
type: object
properties:
mirrored_others_per_sec:
description: The number of mirrored other requests processed per second.
type: integer
format: int64
minimum: 0
readOnly: true
others_per_sec:
description: The number of other requests processed per second.
type: integer
format: int64
minimum: 0
readOnly: true
usec_per_mirrored_other_op:
description: 'The average time it takes the array to process a mirrored I/O other request, measured in
microseconds.
'
type: integer
format: int64
minimum: 0
readOnly: true
usec_per_other_op:
description: 'The average time it takes the array to process an I/O other request, measured in
microseconds.
'
type: integer
format: int64
minimum: 0
readOnly: true
x-readOnly: true
QosMetricsCeilings:
allOf:
- $ref: '#/components/schemas/_builtIn'
- $ref: '#/components/schemas/_containerQosCeilings'
- $ref: '#/components/schemas/_context'
- type: object
properties:
time:
description: 'The timestamp of when the data was taken, measured in milliseconds since the UNIX epoch.
'
type: integer
format: int64
readOnly: true
x-readOnly: true
_fixedReferenceWithType:
allOf:
- $ref: '#/components/schemas/_fixedReference'
- type: object
properties:
resource_type:
description: 'Type of the object (full name of the endpoint).
Valid values are the unique part of the resource''s REST endpoint.
For example, a reference to a file system would have a
`resource_type` of `file-systems`.
'
type: string
readOnly: true
x-aliases:
- _fixedReference
VolumeGroup:
allOf:
- $ref: '#/components/schemas/_context'
- $ref: '#/components/schemas/_resource'
- description: 'Volume groups organize FlashArray volumes into logical groupings.
'
type: object
properties:
destroyed:
description: 'Returns a value of `true` if the volume group has been destroyed and is pending eradication.
Before the `time_remaining` period has elapsed, the destroyed volume group can be recovered
by setting `destroyed=false`.
After the `time_remaining` period has elapsed, the volume group is permanently eradicated
and cannot be recovered.
'
type: boolean
pod:
description: 'A reference to the pod.
'
title: Reference
allOf:
- $ref: '#/components/schemas/_reference'
priority_adjustment:
$ref: '#/components/schemas/_priorityAdjustment'
qos:
$ref: '#/components/schemas/_qos'
space:
title: Space
allOf:
- $ref: '#/components/schemas/_space'
time_remaining:
description: 'The amount of time left until the destroyed volume group is permanently eradicated, measured
in milliseconds.
'
type: integer
format: int64
readOnly: true
volume_count:
description: The number of volumes in the volume group.
type: integer
format: int64
readOnly: true
example: 3
workload:
$ref: '#/components/schemas/_workloadConfigurationFixedReference'
VolumeGroupPatch:
allOf:
- $ref: '#/components/schemas/_resource'
- description: 'Volume groups organize FlashArray volumes into logical groupings.
'
type: object
properties:
destroyed:
description: 'Returns a value of `true` if the volume group has been destroyed and is pending eradication.
Before the `time_remaining` period has elapsed, the destroyed volume group can be recovered
by setting `destroyed=false`.
After the `time_remaining` period has elapsed, the volume group is permanently eradicated
and cannot be recovered.
'
type: boolean
priority_adjustment:
$ref: '#/components/schemas/_priorityAdjustment'
qos:
$ref: '#/components/schemas/_qos_patch'
space:
title: Space
allOf:
- $ref: '#/components/schemas/_space'
VolumeGroupPost:
allOf:
- $ref: '#/components/schemas/_builtIn'
- $ref: '#/components/schemas/_resource'
- description: 'Volume groups organize FlashArray volumes into logical groupings.
'
type: object
properties:
destroyed:
description: 'If set to `true`, destroys a volume group.
If set to `false`, recovers a destroyed volume group. If not specified, defaults to `false`.
'
type: boolean
readOnly: true
priority_adjustment:
$ref: '#/components/schemas/_priorityAdjustment'
qos:
$ref: '#/components/schemas/_qos'
space:
title: Space
allOf:
- $ref: '#/components/schemas/_space'
tags:
description: 'The list of tags to be upserted with the object.
'
type: array
items:
$ref: '#/components/schemas/Tag'
time_remaining:
description: 'The amount of time left until the destroyed volume group is permanently eradicated,
measured in milliseconds.
'
type: integer
format: int64
readOnly: true
volume_count:
description: 'The number of volumes in the volume group.
'
type: integer
format: int64
readOnly: true
example: 3
MemberGetResponse:
allOf:
- $ref: '#/components/schemas/PageInfo'
- $ref: '#/components/schemas/MemberResponse'
- $ref: '#/components/schemas/_errorContextResponse'
_builtIn:
description: 'A built-in resource. Many are singletons predefined by Purity (e.g., support
settings). Some correspond to a piece of software, like an app, or hardware,
like a controller. Others are created by the system in response to some event
(e.g., alerts, audit records).
Typically, a user can''t create, delete or rename a built-in resource. A few
can be created or deleted, but not renamed because the names are meaningful
to Purity (e.g., VIFs).
'
type: object
properties:
id:
description: 'A globally unique, system-generated ID.
The ID cannot be modified and cannot refer to another resource.
'
type: string
readOnly: true
name:
description: 'A locally unique, system-generated name. The name cannot be modified.
'
type: string
readOnly: true
_space:
type: object
properties:
data_reduction:
description: 'The ratio of mapped sectors within a volume versus
the amount of physical space the data occupies after data compression and deduplication.
The data reduction ratio does not include thin provisioning savings.
For example, a data reduction ratio of 5:1 means that
for every 5 MB the host writes to the array, 1 MB is stored on the array''s flash modules.
'
type: number
format: float
readOnly: true
footprint:
description: 'The maximum amount of physical space the container consumes on an array,
ignoring any data shared outside the container, measured in bytes.
On Evergreen//One arrays, this is the maximum amount of effective used space.
The footprint metric is mostly used for capacity planning.
This field will be null in non-container contexts.
'
type: integer
format: int64
mi
# --- truncated at 32 KB (70 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/openapi/pure-storage-volume-groups-api-openapi.yml