openapi: 3.0.1
info:
title: FlashArray REST Active Directory Protection Group Snapshots 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: Protection Group Snapshots
description: 'Protection group snapshots capture the content of all volumes on the source array for the
specified protection group at a single point in time.
'
paths:
/api/2.52/protection-group-snapshots:
get:
tags:
- Protection Group Snapshots
summary: Pure Storage List Protection Group Snapshots
description: 'Displays a list of protection group snapshots, 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/Source_ids'
- $ref: '#/components/parameters/Source_names'
- $ref: '#/components/parameters/Total_item_count'
- $ref: '#/components/parameters/Total_only'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ProtectionGroupSnapshotGetResponse'
'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/ProtectionGroupSnapshotGetResponse'
post:
tags:
- Protection Group Snapshots
summary: Pure Storage Create a Protection Group Snapshot and Create Tags.
description: 'Creates a point-in-time snapshot of the contents of a protection group.
The `source_ids` or `source_names` parameter is required, but they cannot be set together.
'
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Allow_throttle_snapshot'
- $ref: '#/components/parameters/Apply_retention'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/For_replication'
- $ref: '#/components/parameters/Replicate'
- $ref: '#/components/parameters/Replicate_now'
- $ref: '#/components/parameters/Source_ids'
- $ref: '#/components/parameters/Source_names'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ProtectionGroupSnapshotPost'
required: false
x-codegen-request-body-name: protection-group-snapshot
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ProtectionGroupSnapshotResponse'
x-codegen-request-body-name: protection-group-snapshot
delete:
tags:
- Protection Group Snapshots
summary: Pure Storage Delete a Protection Group Snapshot
description: 'Deletes a protection group snapshot that has been destroyed and is pending eradication.
Eradicating a protection group snapshot eradicates all of its protection group snapshots
and cannot be recovered.
Protection group snapshots are destroyed through the `PATCH` method.
The `names` or `ids` 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/Ids'
- $ref: '#/components/parameters/Names'
responses:
'200':
description: OK
content: {}
patch:
tags:
- Protection Group Snapshots
summary: Pure Storage Modify a Protection Group Snapshot
description: 'Modifies a protection group snapshot so that it can be destroyed.
To destroy a volume, set `destroyed=true`.
To recover a volume that has been destroyed and is pending eradication, set `destroyed=false`.
The `names` or `ids` 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/Ids'
- $ref: '#/components/parameters/Names'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ProtectionGroupSnapshotPatch'
required: true
x-codegen-request-body-name: protection-group-snapshot
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ProtectionGroupSnapshotResponse'
x-codegen-request-body-name: protection-group-snapshot
/api/2.52/protection-group-snapshots/replica:
post:
tags:
- Protection Group Snapshots
summary: Pure Storage Create an Action to Send Protection Group Snapshots
description: 'Creates an action to send protection group snapshots to protection pgroup targets.
When the `on` option is used, only specified targets will recieve the
protection group snapshots.
'
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Convert_source_to_baseline'
- $ref: '#/components/parameters/Ids'
- $ref: '#/components/parameters/Names'
- $ref: '#/components/parameters/On_as_target'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ProtectionGroupSnapshotReplicaResponse'
/api/2.52/protection-group-snapshots/tags:
get:
tags:
- Protection Group Snapshots
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:
- Protection Group Snapshots
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/protection-group-snapshots/tags/batch:
put:
tags:
- Protection Group Snapshots
summary: Pure Storage Update Tags
description: 'Updates or creates 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 already existing, 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
/api/2.52/protection-group-snapshots/test:
post:
tags:
- Protection Group Snapshots
summary: Pure Storage Create an Attempt to Take Protection Group Snapshot
description: 'Creates an attempt to take the protection group snapshot, without
actually taking it, to test if the snapshot can be successfully taken.
'
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Allow_throttle_snapshot'
- $ref: '#/components/parameters/Apply_retention'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/For_replication'
- $ref: '#/components/parameters/Replicate'
- $ref: '#/components/parameters/Replicate_now'
- $ref: '#/components/parameters/Source_ids'
- $ref: '#/components/parameters/Source_names'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ProtectionGroupSnapshotPost'
required: false
x-codegen-request-body-name: protection-group-snapshot
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/TestResultWithResourceWithIdPostResponse'
x-codegen-request-body-name: protection-group-snapshot
/api/2.52/protection-group-snapshots/transfer:
get:
tags:
- Protection Group Snapshots
summary: Pure Storage List Protection Group Snapshots with Transfer Statistics
description: 'Displays a list of protection group snapshots and corresponding transfer statistics.
'
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/Source_ids'
- $ref: '#/components/parameters/Source_names'
- $ref: '#/components/parameters/Total_item_count'
- $ref: '#/components/parameters/Total_only'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ProtectionGroupSnapshotTransferGetResponse'
'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/ProtectionGroupSnapshotTransferGetResponse'
/api/1.5/protection-group-snapshots:
get:
tags:
- Protection Group Snapshots
summary: Pure Storage Get Protection Group Snapshots
description: 'Retrieves information about snapshots of protection groups
'
parameters:
- $ref: '#/components/parameters/Authorization_2'
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Continuation_token_2'
- $ref: '#/components/parameters/Filter_2'
- $ref: '#/components/parameters/Ids_2'
- $ref: '#/components/parameters/Limit_2'
- $ref: '#/components/parameters/Names_2'
- $ref: '#/components/parameters/Offset_2'
- $ref: '#/components/parameters/Sort_2'
- $ref: '#/components/parameters/Source_ids_2'
- $ref: '#/components/parameters/Source_names_2'
responses:
'200':
description: OK
headers:
X-Request-ID:
description: Supplied by client during request or generated by server.
schema:
type: string
X-RateLimit-Remaining-second:
description: 'The number of requests remaining for the organization in that second.
'
schema:
type: integer
X-RateLimit-Remaining-minute:
description: 'The number of requests remaining for the organization in that minute.
'
schema:
type: integer
X-RateLimit-Limit-second:
description: The number of requests available per second.
schema:
type: integer
X-RateLimit-Limit-minute:
description: The number of requests available per minute.
schema:
type: integer
content:
application/json:
schema:
$ref: '#/components/schemas/ProtectionGroupSnapshotGetResponse_2'
'400':
$ref: '#/components/responses/Error400'
'403':
$ref: '#/components/responses/Error403'
'404':
$ref: '#/components/responses/Error404'
'429':
$ref: '#/components/responses/Error429'
'500':
$ref: '#/components/responses/Error500'
/api/1.5/protection-group-snapshots/transfer:
get:
tags:
- Protection Group Snapshots
summary: Pure Storage Get Protection Group Snapshots with Transfer Statistics
description: 'Retrieves information about snapshots of protection groups
'
parameters:
- $ref: '#/components/parameters/Authorization_2'
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Continuation_token_2'
- $ref: '#/components/parameters/Filter_2'
- $ref: '#/components/parameters/Ids_2'
- $ref: '#/components/parameters/Limit_2'
- $ref: '#/components/parameters/Names_2'
- $ref: '#/components/parameters/Offset_2'
- $ref: '#/components/parameters/Sort_2'
- $ref: '#/components/parameters/Source_ids_2'
- $ref: '#/components/parameters/Source_names_2'
responses:
'200':
description: OK
headers:
X-Request-ID:
description: Supplied by client during request or generated by server.
schema:
type: string
X-RateLimit-Remaining-second:
description: 'The number of requests remaining for the organization in that second.
'
schema:
type: integer
X-RateLimit-Remaining-minute:
description: 'The number of requests remaining for the organization in that minute.
'
schema:
type: integer
X-RateLimit-Limit-second:
description: The number of requests available per second.
schema:
type: integer
X-RateLimit-Limit-minute:
description: The number of requests available per minute.
schema:
type: integer
content:
application/json:
schema:
$ref: '#/components/schemas/ProtectionGroupSnapshotTransferGetResponse_2'
'400':
$ref: '#/components/responses/Error400'
'403':
$ref: '#/components/responses/Error403'
'404':
$ref: '#/components/responses/Error404'
'429':
$ref: '#/components/responses/Error429'
'500':
$ref: '#/components/responses/Error500'
components:
schemas:
_timeAware:
type: object
properties:
_as_of:
description: The freshness of the data (timestamp in millis since epoch).
type: integer
format: int64
readOnly: true
example: 1502729489760
ErrorNoContext:
type: object
properties:
message:
type: string
example: Something was wrong
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
ProtectionGroupSnapshotResponse:
type: object
properties:
items:
description: 'Displays a list of all items after filtering.
If applicable, the values are displayed for each name.
'
type: array
items:
$ref: '#/components/schemas/ProtectionGroupSnapshot'
_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
ProtectionGroupSnapshotTransferGetResponse_2:
allOf:
- $ref: '#/components/schemas/PageInfo_2'
- $ref: '#/components/schemas/ProtectionGroupSnapshotTransferResponse_2'
ProtectionGroupSnapshot:
allOf:
- $ref: '#/components/schemas/_resourceNoId'
- $ref: '#/components/schemas/_resource'
- $ref: '#/components/schemas/_context'
- description: 'A protection group snapshot is a collection of point-in-time consistent
volume snapshots, for volumes associated with the protection group when the
snapshot was taken.
'
type: object
properties:
created:
description: 'The snapshot creation time of the original snapshot source.
Measured in milliseconds since the UNIX epoch.
'
type: integer
format: int64
readOnly: true
example: 1503520993
destroyed:
description: 'Returns a value of `true` if the protection group snapshot
has been destroyed and is pending eradication.
The `time_remaining` value displays the amount of time left
until the destroyed snapshot is permanently eradicated.
Before the `time_remaining` period has elapsed,
the destroyed snapshot can be recovered
by setting `destroyed=false`.
Once the `time_remaining` period has elapsed,
the snapshot is permanently eradicated and can no longer be recovered.
'
type: boolean
eradication_config:
$ref: '#/components/schemas/ProtectionGroupEradicationConfig'
pod:
description: The pod in which the protection group of the protection group snapshot resides.
title: FixedReference
allOf:
- $ref: '#/components/schemas/_fixedReference'
source:
description: 'The original protection group from which this snapshot was taken.
For a replicated protection group snapshot being viewed on the
target side, the `source` is the replica protection group.
'
title: FixedReference
allOf:
- $ref: '#/components/schemas/_fixedReference'
space:
description: 'Displays provisioned size and physical storage consumption data
for each protection group.
'
title: Space
allOf:
- $ref: '#/components/schemas/_space'
suffix:
description: 'The name suffix appended to the protection group name
to make up the full protection group snapshot name
in the form `PGROUP.SUFFIX`.
If `suffix` is not specified,
the protection group name is in the form `PGROUP.NNN`,
where `NNN` is a unique monotonically increasing number.
If multiple protection group snapshots are created at a time,
the suffix name is appended to those snapshots.
'
type: string
time_remaining:
description: 'The amount of time left until the destroyed snapshot is permanently eradicated.
Measured in milliseconds.
Before the `time_remaining` period has elapsed, the destroyed snapshot can be recovered
by setting `destroyed=false`.
'
type: integer
format: int64
readOnly: true
_builtInAsOf:
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).
'
allOf:
- $ref: '#/components/schemas/_timeAware'
- type: object
properties:
id:
description: A non-modifiable, globally unique ID chosen by the system.
type: string
readOnly: true
example: 01c2889a-4124-49ff-8cbd-c33405ede123
name:
description: A non-modifiable, locally unique name chosen by the system.
type: string
readOnly: true
example: example_name
ProtectionGroupSnapshotResponse_2:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/ProtectionGroupSnapshot_2'
_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
minimum: 0
readOnly: true
shared:
description: 'The physical space occupied by deduplicated data, meaning that the space is shared with other
volumes and snapshots as a result of data deduplication.
Measured in bytes.
On Evergreen//One arrays, this is the effective space contributed by data that is not unique
to a specific volume, managed directory, or snapshot, measured in bytes.
'
type: integer
format: int64
minimum: 0
readOnly: true
example: 111863360624
snapshots:
description: 'The physical space occupied by data unique to one or more snapshots.
Measured in bytes.
On Evergreen//One arrays, this is the effective space contributed by data unique to one or
more snapshots, measured in bytes.
'
type: integer
format: int64
minimum: 0
readOnly: true
system:
description: 'The physical space occupied by internal array metadata. Measured in bytes.
'
type: integer
format: int64
minimum: 0
readOnly: true
thin_provisioning:
description: 'The percentage of volume sectors that do not contain host-written data
because the hosts have not written data to them or the sectors have been explicitly trimmed.
'
type: number
format: float
minimum: 0
maximum: 1
readOnly: true
total_physical:
description: 'This field has been deprecated.
Use the `total_used` field, as it contains the same information.
'
type: integer
format: int64
minimum: 0
readOnly: true
total_provisioned:
description: 'The provisioned size of a volume for a single volume, host or host group,
protocol endpoint, managed directory, and containers can be infinite or measured in bytes.
Infinite is represented by `null`.
The provisioned size for a host or host group, includes all volumes
that are connected to the resource.
The provisioned size for a protocol endpoint is `null`.
The provisioned size for a managed directory is the quota limit if it
or its parent has a managed directory configured, otherwise it defaults to `null`.
The provisioned size for a container is the sum of the total_provisioned
of the object it contains, capped by the container''s quota limit
(or the container''s used_provisioned if current usage is above the quota limit), if any.
Provisioned size represents the storage capacity reported to hosts.
'
type: integer
format: int64
minimum: 0
readOnly: true
example: 19937690345472
total_reduction:
description: 'The ratio of provisioned sectors within a volume versus
the amount of physical space the data occupies
after reduction via data compression and deduplication
and with thin provisioning savings.
Total reduction is data reduction with thin provisioning savings.
For example, a total reduction ratio of 10:1 means that
for every 10 MB of provisioned space,
1 MB is stored on the array''s flash modules.
'
type: number
format: float
readOnly: true
total_used:
description: 'The total space contributed by customer data, measured in bytes.
'
type: integer
format: int64
minimum: 0
readOnly: true
unique:
description: 'The unique physical space occupied by customer data.
Unique physical space does not include shared space, snapshots, and internal array metadata.
Measured in bytes.
On Evergreen//One arrays, this is the effective space contributed by unique customer data,
measured in bytes.
Unique data does not include shared space, snapshots, and internal array metadata.
'
type: integer
format: int64
minimum: 0
readOnly: true
used_provisioned:
description: 'The amount of logical space a container has consumed,
compared against the quota limit if the container has one configured.
Used provisioned does not include destroyed objects inside the container.
Used provisioned can include destroyed objects for a destroyed container
and represents how much logical space it would take to recover the container.
'
type: integer
format: int64
minimum: 0
readOnly: true
example: 19937690345472
virtual:
description: 'The amount of logically written data that a volume or a snapshot references.
Measured in bytes.
'
type: integer
format: int64
minimum: 0
readOnly: true
ProtectionGroupSnapshotPatch:
allOf:
- $ref: '#/components/schemas/ProtectionGroupSnapshot'
- type: object
properties:
suffix:
type: string
readOnly: true
ProtectionGroupEradicationConfig:
description: The configuration of the eradication feature.
type: object
properties:
manual_eradication:
description: 'Manual eradication status of objects like protection group and
protection group snapshots.
If manual_eradication is `disabled`, you cannot eradicate o
# --- truncated at 32 KB (71 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/openapi/pure-storage-protection-group-snapshots-api-openapi.yml