Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: FlashArray REST Active Directory Policies - Snapshot 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: Policies - Snapshot
description: A snapshot policy manages the creation file system snapshots or it can applied to file system and object replication links for replication. These policies provide the user a way to control the frequency of creating snapshots and objects, and the retention time for each copy. A snapshot policy can be applied to one or more file systems, objects, or replication links.
paths:
/api/2.26/policies:
get:
tags:
- Policies - Snapshot
summary: Pure Storage GET Policies
description: Display snapshot scheduling policies and their attributes.
parameters:
- $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/Ids'
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Names'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Sort'
- $ref: '#/components/parameters/Workload_ids'
- $ref: '#/components/parameters/Workload_names'
responses:
'200':
description: OK
headers:
X-Request-ID:
description: Supplied by client during request or generated by server.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/PolicyGetResponse'
'207':
description: 'Partial success. Some resources were returned, but there
were also errors possibly preventing some resources from
being returned.
'
headers:
X-Request-ID:
description: Supplied by client during request or generated by server.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/PolicyGetResponse'
post:
tags:
- Policies - Snapshot
summary: Pure Storage POST Policies
description: Create a new snapshot scheduling policy with rule attributes to capture file system snapshots for a set period of time and frequency, as well as how long snapshots are retained before being destroyed and eradicated.
parameters:
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Names_required'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PolicyPost'
required: false
x-codegen-request-body-name: policy
responses:
'200':
description: OK
headers:
X-Request-ID:
description: Supplied by client during request or generated by server.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/PolicyResponse'
x-codegen-request-body-name: policy
delete:
tags:
- Policies - Snapshot
summary: Pure Storage DELETE Policies
description: Delete one or more snapshot scheduling policies.
parameters:
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Ids'
- $ref: '#/components/parameters/Names'
responses:
'200':
description: OK
headers:
X-Request-ID:
description: Supplied by client during request or generated by server.
schema:
type: string
content: {}
patch:
tags:
- Policies - Snapshot
summary: Pure Storage PATCH Policies
description: Modify a snapshot scheduling policy's attributes for when and how often snapshots are created and how long they are retained.
parameters:
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Destroy_snapshots'
- $ref: '#/components/parameters/Ids'
- $ref: '#/components/parameters/Names'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SnapshotPolicyPatch'
required: true
x-codegen-request-body-name: policy
responses:
'200':
description: OK
headers:
X-Request-ID:
description: Supplied by client during request or generated by server.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/PolicyResponse'
x-codegen-request-body-name: policy
/api/2.26/policies/file-systems:
get:
tags:
- Policies - Snapshot
summary: Pure Storage GET Policies/file-systems
description: 'List file systems mapped to a snapshot scheduling policy.
Note: if more than 150,000 items would be returned in the response, an error will be thrown
and query parameters must be used to limit the items queried.
'
parameters:
- $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/Member_ids'
- $ref: '#/components/parameters/Member_names'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Policy_ids'
- $ref: '#/components/parameters/Policy_names'
- $ref: '#/components/parameters/Sort'
responses:
'200':
description: OK
headers:
X-Request-ID:
description: Supplied by client during request or generated by server.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/PolicyMemberContextGetResponse'
'207':
description: 'Partial success. Some resources were returned, but there
were also errors possibly preventing some resources from
being returned.
'
headers:
X-Request-ID:
description: Supplied by client during request or generated by server.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/PolicyMemberContextGetResponse'
post:
tags:
- Policies - Snapshot
summary: Pure Storage POST Policies/file-systems
description: Map a file system to a snapshot scheduling policy.
parameters:
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Member_ids'
- $ref: '#/components/parameters/Member_names'
- $ref: '#/components/parameters/Policy_ids'
- $ref: '#/components/parameters/Policy_names'
responses:
'200':
description: OK
headers:
X-Request-ID:
description: Supplied by client during request or generated by server.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/PolicyMemberContextResponse'
delete:
tags:
- Policies - Snapshot
summary: Pure Storage DELETE Policies/file-systems
description: Remove the snapshot scheduling policy mapped to a file system.
parameters:
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Member_ids'
- $ref: '#/components/parameters/Member_names'
- $ref: '#/components/parameters/Policy_ids'
- $ref: '#/components/parameters/Policy_names'
responses:
'200':
description: OK
headers:
X-Request-ID:
description: Supplied by client during request or generated by server.
schema:
type: string
content: {}
/api/2.26/policies/file-system-snapshots:
get:
tags:
- Policies - Snapshot
summary: Pure Storage GET Policies/file-system-snapshots
description: 'List file system snapshots mapped to a snapshot scheduling policy.
Note: if more than 150,000 items would be returned in the response, an error will be thrown
and query parameters must be used to limit the items queried.
'
parameters:
- $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/Member_ids'
- $ref: '#/components/parameters/Member_names'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Policy_ids'
- $ref: '#/components/parameters/Policy_names'
- $ref: '#/components/parameters/Sort'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PolicyFileSystemSnapshotGetResponse'
'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/PolicyFileSystemSnapshotGetResponse'
delete:
tags:
- Policies - Snapshot
summary: Pure Storage DELETE Policies/file-system-snapshots
description: Remove the snapshot scheduling policy mapped to a file system.
parameters:
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Member_ids'
- $ref: '#/components/parameters/Member_names'
- $ref: '#/components/parameters/Policy_ids'
- $ref: '#/components/parameters/Policy_names'
responses:
'200':
description: OK
content: {}
/api/2.26/policies/members:
get:
tags:
- Policies - Snapshot
summary: Pure Storage GET Policies/members
description: 'List snapshot scheduling policies mapped to file systems, snapshots, and file system replica links.
Note: if more than 150,000 items would be returned in the response, an error will be thrown
and query parameters must be used to limit the items queried.
'
parameters:
- $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/Local_file_system_ids'
- $ref: '#/components/parameters/Local_file_system_names'
- $ref: '#/components/parameters/Member_ids'
- $ref: '#/components/parameters/Member_names'
- $ref: '#/components/parameters/Member_types'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Policy_ids'
- $ref: '#/components/parameters/Policy_names'
- $ref: '#/components/parameters/Remote_file_system_ids'
- $ref: '#/components/parameters/Remote_file_system_names'
- $ref: '#/components/parameters/Remote_ids'
- $ref: '#/components/parameters/Remote_names'
- $ref: '#/components/parameters/Sort'
responses:
'200':
description: OK
headers:
X-Request-ID:
description: Supplied by client during request or generated by server.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/PolicyMemberWithRemoteGetResponse'
'207':
description: 'Partial success. Some resources were returned, but there
were also errors possibly preventing some resources from
being returned.
'
headers:
X-Request-ID:
description: Supplied by client during request or generated by server.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/PolicyMemberWithRemoteGetResponse'
/api/2.26/policies/file-system-replica-links:
get:
tags:
- Policies - Snapshot
summary: Pure Storage GET Policies/file-system-replica-links
description: 'List snapshot scheduling policies for file system replica links.
Note: if more than 150,000 items would be returned in the response, an error will be thrown
and query parameters must be used to limit the items queried.
'
parameters:
- $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/Local_file_system_ids'
- $ref: '#/components/parameters/Local_file_system_names'
- $ref: '#/components/parameters/Member_ids'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Policy_ids'
- $ref: '#/components/parameters/Policy_names'
- $ref: '#/components/parameters/Remote_file_system_ids'
- $ref: '#/components/parameters/Remote_file_system_names'
- $ref: '#/components/parameters/Remote_ids'
- $ref: '#/components/parameters/Remote_names'
- $ref: '#/components/parameters/Sort'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PolicyMemberWithRemoteGetResponse'
'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/PolicyMemberWithRemoteGetResponse'
post:
tags:
- Policies - Snapshot
summary: Pure Storage POST Policies/file-system-replica-links
description: Add a snapshot scheduling policy to a file system replica link.
parameters:
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Local_file_system_ids'
- $ref: '#/components/parameters/Local_file_system_names'
- $ref: '#/components/parameters/Member_ids'
- $ref: '#/components/parameters/Policy_ids'
- $ref: '#/components/parameters/Policy_names'
- $ref: '#/components/parameters/Remote_ids'
- $ref: '#/components/parameters/Remote_names'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PolicyMemberWithRemoteResponse'
delete:
tags:
- Policies - Snapshot
summary: Pure Storage DELETE Policies/file-system-replica-links
description: Remove a snapshot scheduling policy mapped to a file system replica link.
parameters:
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Local_file_system_ids'
- $ref: '#/components/parameters/Local_file_system_names'
- $ref: '#/components/parameters/Member_ids'
- $ref: '#/components/parameters/Policy_ids'
- $ref: '#/components/parameters/Policy_names'
- $ref: '#/components/parameters/Remote_ids'
- $ref: '#/components/parameters/Remote_names'
responses:
'200':
description: OK
content: {}
components:
parameters:
Remote_file_system_names:
name: remote_file_system_names
in: query
description: 'A comma-separated list of remote file system names. If there is not at
least one resource that matches each of the elements, then an error is
returned. This cannot be provided together with the `remote_file_system_ids`
query parameter.
'
style: form
explode: false
schema:
type: array
items:
type: string
Context_names_get:
name: context_names
in: query
description: 'Performs the operation on the unique contexts specified.
If specified, each context name must be the name of an array in the same fleet or
the name of the fleet itself.
If not specified, the context will default to the array that received this request.
Other parameters provided with the request, such as names of volumes or snapshots,
are resolved relative to the provided `context`.
Enter multiple names in comma-separated format.
For example, `name01,name02`.
'
style: form
explode: false
schema:
type: array
items:
type: string
Names:
name: names
in: query
description: 'Performs the operation on the unique names specified.
Enter multiple names in comma-separated format.
For example, `name01,name02`.
If there is not at least one resource that matches
each of the elements of `names`, then an error is returned,
except when creating new resources.
'
style: form
explode: false
schema:
type: array
items:
type: string
Allow_errors:
name: allow_errors
in: query
description: 'If set to `true`, the API will allow the operation to continue even if there are errors.
Any errors will be returned in the `errors` field of the response.
If set to `false`, the operation will fail if there are any errors.
'
schema:
type: boolean
default: false
Offset:
name: offset
in: query
description: 'The offset of the first resource to return from a collection.
'
schema:
type: integer
format: int32
minimum: 0
example: 10
Remote_ids:
name: remote_ids
in: query
description: 'A comma-separated list of remote array IDs. If, after filtering, there is not at least one
resource that matches each of the elements, then an error is returned. This cannot be provided
together with the `remote_names` query parameter.
'
style: form
explode: false
schema:
type: array
items:
type: string
Policy_names:
name: policy_names
in: query
description: 'A comma-separated list of policy names.
'
style: form
explode: false
schema:
type: array
items:
type: string
Ids:
name: ids
in: query
description: 'A comma-separated list of resource IDs.
If after filtering, there is not at least one resource that matches
each of the elements of `ids`, then an error is returned.
This cannot be provided together with the `name` or `names` query parameters.
'
style: form
explode: false
schema:
type: array
items:
type: string
Continuation_token:
name: continuation_token
in: query
description: 'A token used to retrieve the next page of data
with some consistency guaranteed.
The token is a Base64 encoded value.
Set `continuation_token` to the system-generated token taken from the `x-next-token`
header field of the response.
A query has reached its last page when the response does not include a token.
Pagination requires the `limit` and `continuation_token`
query parameters.
'
schema:
type: string
Policy_ids:
name: policy_ids
in: query
description: 'A comma-separated list of policy IDs.
If after filtering, there is not at least one resource that matches
each of the elements of `policy_ids`, then an error is returned.
This cannot be provided together with the `policy_names` query parameter.
'
style: form
explode: false
schema:
type: array
items:
type: string
Names_required:
name: names
in: query
description: 'A comma-separated list of resource names.
'
required: true
style: form
explode: false
schema:
type: array
items:
type: string
Destroy_snapshots:
name: destroy_snapshots
in: query
description: 'This parameter must be set to `true` in order to modify a policy such
that local or remote snapshots would be destroyed.
'
schema:
type: boolean
Workload_ids:
name: workload_ids
in: query
description: 'A comma-separated list of workload IDs. If, after filtering, there is not at least one
resource that matches each of the elements, then an error is returned. This cannot be provided
together with the `workload_names` query parameter.
'
style: form
explode: false
schema:
type: array
items:
type: string
Context_names:
name: context_names
in: query
description: 'Performs the operation on the context specified.
If specified, the context names must be an array of size 1, and the single element
must be the name of an array in the same fleet or the name of the fleet itself. If
not specified, the context will default to the array that received this request.
Other parameters provided with the request, such as names of volumes or snapshots,
are resolved relative to the provided `context`.
'
style: form
explode: false
schema:
type: array
items:
type: string
Workload_names:
name: workload_names
in: query
description: 'A comma-separated list of workload names. If, after filtering, there is not at least one
resource that matches each of the elements, then an error is returned. This cannot be provided
together with the `workload_ids` query parameter.
'
style: form
explode: false
schema:
type: array
items:
type: string
Remote_file_system_ids:
name: remote_file_system_ids
in: query
description: 'A comma-separated list of remote file system IDs. If there is not at
least one resource that matches each of the elements, then an error is
returned. This cannot be provided together with the `remote_file_system_names`
query parameter.
'
style: form
explode: false
schema:
type: array
items:
type: string
Filter:
name: filter
in: query
description: 'Narrows down the results to only the response objects
that satisfy the filter criteria.
'
schema:
type: string
Member_ids:
name: member_ids
in: query
description: 'A comma-separated list of member IDs.
If after filtering, there is not at least one resource that matches
each of the elements of `member_ids`, then an error is returned.
This cannot be provided together with the `member_names` query parameter.
'
style: form
explode: false
schema:
type: array
items:
type: string
Member_names:
name: member_names
in: query
description: 'A comma-separated list of member names.
'
style: form
explode: false
schema:
type: array
items:
type: string
Member_types:
name: member_types
in: query
description: 'A comma-separated list of member types. Valid values include `file-systems`,
`file-system-snapshots`, `file-system-replica-links`, `object-store-users`,
and `object-store-accounts`. Different endpoints may accept different subsets
of these values.
'
style: form
explode: false
schema:
type: array
items:
type: string
Local_file_system_ids:
name: local_file_system_ids
in: query
description: 'A comma-separated list of local file system IDs. If after filtering,
there is not at least one resource that matches each of the elements,
then an error is returned. This cannot be provided together with the
`local_file_system_names` query parameter.
'
style: form
explode: false
schema:
type: array
items:
type: string
Remote_names:
name: remote_names
in: query
description: 'A comma-separated list of remote array names. If, after filtering, there is not at least one
resource that matches each of the elements, then an error is returned. This cannot be provided
together with the `remote_ids` query parameter.
'
style: form
explode: false
schema:
type: array
items:
type: string
Local_file_system_names:
name: local_file_system_names
in: query
description: 'A comma-separated list of local file system names. If there is not
at least one resource that matches each of the elements, then an error
is returned. This cannot be provided together with `local_file_system_ids`
query parameter.
'
style: form
explode: false
schema:
type: array
items:
type: string
Limit:
name: limit
in: query
description: 'Limits the size of the response to the specified number of objects on each page.
To return the total number of resources, set `limit=0`.
The total number of resources is returned as a `total_item_count` value.
If the page size requested is larger than the system maximum limit,
the server returns the maximum limit, disregarding the requested page size.
'
schema:
type: integer
format: int32
minimum: 0
example: 10
XRequestId:
name: X-Request-ID
in: header
description: 'Supplied by client during request or generated by server.
'
schema:
type: string
Sort:
name: sort
in: query
description: 'Sort the response by the specified fields (in descending order if ''-''
is appended to the field name).
NOTE: If you provide a sort you will not get a `continuation_token` in
the response.
'
style: form
explode: false
schema:
type: array
items:
pattern: ^[a-z]+(_[a-z]+)*-?
type: string
schemas:
PolicyFileSystemSnapshotResponse:
type: object
properties:
items:
description: A list of members for policies.
type: array
items:
$ref: '#/components/schemas/PolicyFileSystemSnapshot'
PolicyMemberWithRemote:
allOf:
- $ref: '#/components/schemas/_context'
- $ref: '#/components/schemas/PolicyFileSystemSnapshot'
- type: object
properties:
link:
description: 'Only populated if the `member` is a file system replica link. Contains additional
information about the link.
'
title: MemberLink
allOf:
- $ref: '#/components/schemas/_memberLink'
PolicyFileSystemSnapshot:
allOf:
- $ref: '#/components/schemas/PolicyMember'
- $ref: '#/components/schemas/_context'
- type: object
properties:
policy:
description: Reference to the policy. Location can be array or realm.
title: LocationReference
allOf:
- $ref: '#/components/schemas/_locationReference'
PolicyPost:
allOf:
- $ref: '#/components/schemas/PolicyBase'
- type: object
properties:
retention_lock:
description: 'If retention lock is locked, then the the policy can not be removed
from the associated file systems and the rules may not be changed.
Valid values are `locked` and `unlocked`.
Contact Pure Technical Services to change `locked` to `unlocked`.
'
type: string
readOnly: true
rules:
type: array
items:
$ref: '#/components/schemas/_policy_rule'
_fixedReferenceWithoutType:
type: object
properties:
id:
description: 'A globally unique, system-generated ID.
The ID cannot be modified.
'
type: string
readOnly: true
name:
description: 'The resource name, such as volume name, file system name,
snapshot name, and so on.
'
type: string
readOnly: true
x-readOnly: true
PolicyMemberWithRemoteResponse:
allOf:
- $ref: '#/components/schemas/_context'
- type: object
properties:
items:
description: A list of members for policies.
type: array
items:
$ref: '#/components/schemas/PolicyMemberWithRemote'
_realmsReference:
type: object
properties:
realms:
description: 'Reference to the realms this resource belongs to.
The value is set to empty array when the resource
lives outside of a realm.
'
type: array
readOnly: true
items:
$ref: '#/components/schemas/_fixedReference'
_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
resource_type:
description: 'Type of the object (full name of the endpoint).
Valid values are `hosts`, `host-groups`, `network-interfaces`, `pods`,
`ports`, `pod-replica-links`, `subnets`, `volumes`, `volume-snapshots`,
`volume-groups`, `directories`, `policies/nfs`, `policies/smb`, and
`policies/snapshot`, etc.
'
type: string
readOnly: true
x-aliases:
- _referenceWithFixedType
Policy:
allOf:
- $ref: '#/components/schemas/PolicyBase'
- $ref: '#/components/schemas/_context'
- type: object
properties:
retention_lock:
description: 'If retention lock is locked, then the the policy can not be removed
from the associated file systems and the rules may not be changed.
# --- truncated at 32 KB (44 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/openapi/pure-storage-policies-snapshot-api-openapi.yml