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 Presets 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: Presets
description: 'Presets are reusable templates that provision resources.
'
paths:
/api/2.52/presets/workload:
get:
tags:
- Presets
summary: Pure Storage List Workload Presets
description: 'Displays a list of workload presets.
'
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names_get'
- $ref: '#/components/parameters/Ids'
- $ref: '#/components/parameters/Names'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PresetWorkloadGetResponse'
put:
tags:
- Presets
summary: Pure Storage Update a Workload Preset
description: 'Updates a workload preset by replacing it with the new contents in `preset`.
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/Ids_single'
- $ref: '#/components/parameters/Names_single'
- $ref: '#/components/parameters/Preset_workload_skip_verify_deployable'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PresetWorkload'
required: true
x-codegen-request-body-name: preset
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PresetWorkloadResponse'
x-codegen-request-body-name: preset
post:
tags:
- Presets
summary: Pure Storage Create a Workload Preset
description: 'Creates one workload preset.
'
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Names_single_required'
- $ref: '#/components/parameters/Preset_workload_skip_verify_deployable'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PresetWorkloadPost'
required: true
x-codegen-request-body-name: preset
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PresetWorkloadResponse'
x-codegen-request-body-name: preset
delete:
tags:
- Presets
summary: Pure Storage Delete a Workload Preset
description: 'Deletes a workload preset permanently.
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/Ids_single'
- $ref: '#/components/parameters/Names_single'
responses:
'200':
description: OK
content: {}
patch:
tags:
- Presets
summary: Pure Storage Modify a Workload Preset
description: 'Modifies a workload preset by overriding the fields specified in `preset`.
To rename a workload preset, set name to the new name.
'
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Ids_single'
- $ref: '#/components/parameters/Names_single'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PresetWorkloadPatch'
required: true
x-codegen-request-body-name: preset
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PresetWorkloadResponse'
x-codegen-request-body-name: preset
/api/2.26/presets/workload:
get:
tags:
- Presets
summary: Pure Storage List Workload Presets
description: 'Displays a list of workload presets.
'
parameters:
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names_get'
- $ref: '#/components/parameters/Ids_2'
- $ref: '#/components/parameters/Names'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PresetWorkloadGetResponse_2'
put:
tags:
- Presets
summary: Pure Storage Update a Workload Preset
description: 'Updates a workload preset by replacing it with the new contents in `preset`.
The `ids` or `names` parameter is required, but they cannot be set together.
'
parameters:
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Ids_single'
- $ref: '#/components/parameters/Names_single'
- $ref: '#/components/parameters/Preset_workload_skip_verify_deployable'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PresetWorkload'
required: true
x-codegen-request-body-name: preset
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PresetWorkloadResponse'
x-codegen-request-body-name: preset
post:
tags:
- Presets
summary: Pure Storage Create a Workload Preset
description: 'Creates one workload preset.
'
parameters:
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Names_single_required'
- $ref: '#/components/parameters/Preset_workload_skip_verify_deployable'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PresetWorkloadPost'
required: true
x-codegen-request-body-name: preset
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PresetWorkloadResponse'
x-codegen-request-body-name: preset
delete:
tags:
- Presets
summary: Pure Storage Delete a Workload Preset
description: 'Deletes a workload preset permanently.
The `ids` or `names` parameter is required, but they cannot be set together.
'
parameters:
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Ids_single'
- $ref: '#/components/parameters/Names_single'
responses:
'200':
description: OK
content: {}
patch:
tags:
- Presets
summary: Pure Storage Modify a Workload Preset
description: 'Modifies a workload preset by overriding the fields specified in `preset`.
To rename a workload preset, set name to the new name.
'
parameters:
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Ids_single'
- $ref: '#/components/parameters/Names_single'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PresetWorkloadPatch'
required: true
x-codegen-request-body-name: preset
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PresetWorkloadResponse'
x-codegen-request-body-name: preset
components:
schemas:
_presetWorkloadConstraintsResourceReference:
description: Constraints to apply to resource reference parameters
type: object
required:
- allowed_values
properties:
allowed_values:
description: 'The valid values that can be supplied to the parameter.
At least one value must be specified to configure a `resource_type`.
'
type: array
maxItems: 5
items:
$ref: '#/components/schemas/_presetWorkloadConstraintsResourceReferenceAllowedValues'
default:
description: 'The default value to use if no value is provided.
Must match the `resource_type` set in `allowed_values`.
One of `id` or `name` must be set, but they cannot be set together.
'
title: ReferenceWithType
allOf:
- $ref: '#/components/schemas/_referenceWithType'
_fixedReference_2:
allOf:
- $ref: '#/components/schemas/_fixedReferenceWithoutType'
- 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
_presetWorkloadWorkloadTag:
type: object
required:
- key
- value
properties:
copyable:
description: 'Specifies whether 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: string
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
value:
description: 'Value of the tag. Supports up to 256 Unicode characters. Supports parameterization.
'
type: string
example: staging
_presetWorkloadDirectoryConfigurationMultiProtocol:
type: object
properties:
access_control_style:
description: 'The access control style that is utilized for client actions such as
setting file and directory ACLs.
Possible values include `nfs`, `smb`, `shared`, `independent`, and `mode-bits`.
If `nfs` is specified, then SMB clients will be unable to set permissions
on files and directories.
If `smb` is specified, then NFS clients will be unable to set permissions
on files and directories.
If `shared` is specified, then NFS and SMB clients will both be able
to set permissions on files and directories. Any client will be able to
overwrite the permissions set by another client, regardless of protocol.
If `independent` is specified, then NFS and SMB clients will both be able
to set permissions on files and directories, and can access files and
directories created over any protocol. Permissions set by SMB clients
will not affect NFS clients and vice versa. NFS clients will be restricted
to only using mode bits to set permissions.
If `mode-bits` is specified, then NFS and SMB clients will both be able
to set permissions on files and directories, but only mode bits may be
used to set permissions for NFS clients. When SMB clients set an ACL,
it will be converted to have the same permission granularity as NFS mode
bits.
Supports parameterization.
'
type: string
safeguard_acls:
description: 'If set to "true", prevents NFS clients from erasing a configured ACL when
setting NFS mode bits.
If this is "true", then attempts to set mode bits on a file or directory
will fail if they cannot be combined with the existing ACL set on a file
or directory without erasing the ACL.
Attempts to set mode bits that would not erase an existing ACL will still
succeed and the mode bit changes will be merged with the existing ACL.
This must be "false" when `access_control_style` is set to either
`independent` or `mode-bits`.
Supports parameterization.
'
type: string
_presetWorkloadExportConfigurationSmbShareRule:
type: object
properties:
change:
description: 'The state of the principal''s Change access permission.
Valid values are `allow` and `deny`. When not set, value is `null`.
When allowed, includes all access granted by the Read permission. Users
can also change data within files and add or delete files and folders.
When denied, these operations are explicitly blocked.
If not set for any applicable rule on any applicable policy, acts as an
implicit deny.
If set to `allow`, implicitly sets the Read permission to `allow`. This
is incompatible with explicitly setting any permission to `deny`.
If set to `deny`, implicitly sets the Read permission to `deny`. This is
incompatible with explicitly setting any permission to `allow`.
Defaults to `null`.
Supports parameterization.
'
type: string
full_control:
description: 'The state of the principal''s Full Control access permission.
Valid values are `allow` and `deny`. When not set, value is `null`.
When allowed, includes all access granted by the Change permission. Users
can also change the permissions for files and folders.
When denied, these operations are explicitly blocked.
If not set for any applicable rule on any applicable policy, acts as an
implicit deny.
If set to `allow`, implicitly sets the Change and Read permissions to
`allow`. This is incompatible with explicitly setting any permission to
`deny`.
If set to `deny`, implicitly sets the Change and Read permissions to
`deny`. This is incompatible with explicitly setting any permission to
`allow`.
Defaults to `null`.
Supports parameterization.
'
type: string
principal:
description: 'The user or group who is the subject of this rule, and optionally their
domain. If no domain is provided, it will be derived if possible.
For example, `PURESTORAGE\Administrator`, `samplegroup@PureStorage`, or
`sampleuser`.
Supports parameterization.
'
type: string
read:
description: 'The state of the principal''s Read access permission.
Valid values are `allow` and `deny`.
When allowed, users can view file names, read the data in those files, and
run some programs.
When denied, these operations are explicitly blocked.
When setting to `allow`, cannot explicitly set any permission to `deny`.
When setting to `deny`, cannot explicitly set any permission to `allow`.
Defaults to `allow`.
Supports parameterization.
'
type: string
_presetWorkloadExportConfigurationSmb:
allOf:
- $ref: '#/components/schemas/_presetWorkloadPolicyAction'
- type: object
required:
- name
properties:
name:
$ref: '#/components/schemas/_presetWorkloadConfigurationName'
naming_patterns:
$ref: '#/components/schemas/_namingPatterns'
policy_configuration:
$ref: '#/components/schemas/_presetWorkloadExportConfigurationSmbPolicy'
_presetWorkloadExportConfigurationNfsPolicy:
type: object
properties:
rules:
type: array
items:
$ref: '#/components/schemas/_presetWorkloadExportConfigurationNfsRule'
user_mapping_enabled:
description: 'If set to "true", queries the joined AD/OpenLDAP server to find the user
corresponding to the incoming UID.
If set to "false", users are defined by UID/GID pair.
It supports parameterization.
'
type: string
PresetWorkloadGetResponse:
allOf:
- $ref: '#/components/schemas/PageInfoWithoutTotalItemCountResponse'
- $ref: '#/components/schemas/PresetWorkloadResponse'
- $ref: '#/components/schemas/_errorContextResponse'
PresetWorkloadPatch:
allOf:
- $ref: '#/components/schemas/_newName'
- type: object
_errorContextResponse_2:
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'
_referenceWithType:
allOf:
- $ref: '#/components/schemas/_reference'
- type: object
properties:
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
x-aliases:
- _reference
_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
PresetWorkloadPost:
allOf:
- $ref: '#/components/schemas/_presetWorkloadBase'
- type: object
_presetWorkloadDirectoryConfiguration:
type: object
required:
- name
- path
- placement_configurations
properties:
count:
description: 'The number of directories or file systems to provision.
If greater than one, the name, path, and export name patterns must be unique
within the workload (for example, by including a `workload.configuration.index`).
Supports parameterization.
'
type: string
exports:
description: 'THe file system or directory exports to be created as part of the workload.
A maximum of four exports can be created per file system or directory across
NFS and SMB.
'
type: array
minItems: 1
maxItems: 12
items:
$ref: '#/components/schemas/_presetWorkloadDirectoryConfigurationExports'
multi_protocol:
description: Multi-protocol configuration.
title: PresetWorkloadDirectoryConfigurationMultiProtocol
allOf:
- $ref: '#/components/schemas/_presetWorkloadDirectoryConfigurationMultiProtocol'
name:
$ref: '#/components/schemas/_presetWorkloadConfigurationName'
naming_patterns:
$ref: '#/components/schemas/_namingPatterns'
parent:
description: 'An optional reference to either an existing file system or a directory_configuration
defined within this Preset, under which this directory will be placed.
This cannot be populated when path is "/" as that creates a new file system.
Only one of file_system or directory_configuration can be specified and must
be specified when the path is not "/".
Supports parameterization.
'
title: PresetWorkloadDirectoryConfigurationParent
allOf:
- $ref: '#/components/schemas/_presetWorkloadDirectoryConfigurationParent'
path:
description: 'A directory path.
A path of "/" will create a new file system. Anything other than "/" will create
a directory under a file system specified by `parent`.
'
title: PresetWorkloadDirectoryConfigurationPath
allOf:
- $ref: '#/components/schemas/_presetWorkloadDirectoryConfigurationPath'
placement_configurations:
description: 'The names of the placement configurations with which to associate the file systems
or directories.
'
type: array
minItems: 1
maxItems: 1
items:
type: string
quota_configurations:
description: 'The names of the quota configurations with which to associate the file systems
or directories.
'
type: array
minItems: 1
maxItems: 1
items:
type: string
snapshot_configurations:
description: 'The names of the snapshot configurations to apply to the file systems or directories.
'
type: array
minItems: 1
maxItems: 2
items:
type: string
special_directories:
description: THe special directory configuration.
title: PresetWorkloadDirectoryConfigurationSpecialDirectories
allOf:
- $ref: '#/components/schemas/_presetWorkloadDirectoryConfigurationSpecialDirectories'
_presetWorkloadQosConfiguration:
type: object
required:
- name
properties:
bandwidth_limit:
description: 'The maximum QoS bandwidth limit shared across all volumes in the placement.
Whenever throughput exceeds the bandwidth limit, throttling occurs.
Measured in bytes per second. Between 1MB/s and 512 GB/s, inclusive.
Supports parameterization.
'
type: string
iops_limit:
description: 'The QoS IOPs limit shared across all volumes in the placement.
Between 100 and 100000000, inclusive. Supports parameterization.
'
type: string
name:
$ref: '#/components/schemas/_presetWorkloadConfigurationName'
naming_patterns:
$ref: '#/components/schemas/_namingPatterns'
_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
_presetWorkloadQuotaRule:
type: object
properties:
enforced:
description: 'Defines whether the quota rule is enforced or unenforced.
If the quota rule is enforced and logical space usage exceeds the quota limit,
any modification operations that result in a need for more space are blocked.
If the quota rule is unenforced and logical space usage exceeds the quota limit, notification
emails can be sent. No client operations are blocked when an unenforced limit is exceeded.
If set to "true", the limit is enforced.
Supports parameterization.
'
type: string
quota_limit:
description: 'The logical space limit of the quota assigned by the rule, measured in bytes.
The value cannot be `0`.
It supports parameterization.
'
type: string
_presetWorkloadSnapshotRule:
type: object
required:
- every
- keep_for
properties:
at:
description: 'Specifies the number of milliseconds since midnight at which to take a snapshot.
The `at` value cannot be set if the `every` value is not measured in days.
The `at` value can only be set on the first rule.
It supports parameterization.
'
type: string
client_name:
description: 'The snapshot file client name.
For file directories, a full snapshot name is constructed in the form of
`DIR.CLIENT_NAME.SUFFIX` where `DIR` is the managed directory name, `CLIENT_NAME`
is the snapshot client name, and `SUFFIX` is the snapshot suffix.
The client visible snapshot name is `CLIENT_NAME.SUFFIX`.
'
title: NamingPatterns
allOf:
- $ref: '#/components/schemas/_namingPatterns'
every:
description: 'Specifies the interval between snapshots, in milliseconds.
The `every` value for all rules must be multiples of one another.
It supports parameterization.
'
type: string
keep_for:
description: 'Specifies the period that snapshots are retained before they are eradicated, in milliseconds.
It supports parameterization.
'
type: string
suffix:
description: 'The snapshot suffix name.
For file directories, a full snapshot name is constructed in the form of
`DIR.CLIENT_NAME.SUFFIX` where `DIR` is the managed directory name, `CLIENT_NAME`
is the snapshot client name, and `SUFFIX` is the snapshot suffix.
The client visible snapshot name is `CLIENT_NAME.SUFFIX`.
The `suffix` value can only be set for one rule in the same policy.
The `suffix` value can only be set on a rule with the same `keep_for` value
and `every` value.
The `suffix` value can only be set on the rule with the largest `keep_for` value.
It supports parameterization.
'
type: string
time_zone:
description: 'The time zone to use with the `at` time.
If not specified, defaults to the time zone of the array where the workload is provisioned.
It supports parameterization.
'
type: string
example: America/Los_Angeles
_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
_presetWorkloadVolumeConfiguration:
type: object
required:
- count
- name
- placement_configurations
- provisioned_size
properties:
count:
description: The number of volumes to provision. Supports parameterization.
type: string
name:
$ref: '#/components/schemas/_presetWorkloadConfigurationName'
naming_patterns:
$ref: '#/components/schemas/_namingPatterns'
periodic_replication_configurations:
description: 'The names of the periodic replication configurations to apply to the volumes.
'
type: array
items:
type: string
placement_configurations:
description: 'The names of the placement configurations with which to associate the volumes.
'
type: array
minItems: 1
maxItems: 1
items:
type: string
provisioned_size:
description: 'The virtual size of each volume. Measured in bytes
and must be a multiple of 512. The maximum size is
4503599627370496 (4PB). Supports parameterization.
'
type: string
snapshot_configurations:
description: 'The names of the snapshot configurations to apply to the volumes.
'
type: array
items:
type: string
_presetWorkloadBase:
description: 'Workload presets are reusable templates that provision workloads.
'
type: object
required:
- placement_configurations
- workload_type
properties:
description:
description: 'A brief description of the workload the preset will configure.
Supports up to 1KB of unicode characters.
'
type: string
directory_configurations:
description: 'The file systems and managed directories that will be provisioned by the preset.
'
type: array
minItems: 1
maxItems: 20
items:
$ref: '#/components/schemas/_presetWorkloadDirectoryConfiguration'
export_configurations:
description: 'The NFS, SMB, and SMB share policy configuration specified in file system and directory exports.
'
title: PresetWorkloadExportConfigurations
allOf:
- $ref: '#/components/schemas/_presetWorkloadExportConfigurations'
parameters:
description: The parameters to prompt the user when they deploy workloads from the preset.
type: array
items:
$ref: '#/components/schemas/_presetWorkloadParameter'
periodic_replication_configurations:
description: 'The periodic replication configurations that can be applied to storage resources (such
as volumes) within the preset.
'
type: array
maxItems: 2
items:
$ref: '#/components/schemas/_presetWorkloadPeriodicReplicationConfiguration'
placement_configurations:
description: 'The placement configurations that can be applied to storage resources (such as volumes)
within the preset. All storage resources associated with the same placement will be
colocated on the same array.
'
type: array
minItems: 1
maxItems: 1
items:
$ref: '#/components/schemas/_presetWorkloadPlacementConfiguration'
platform_features:
type: array
minItems: 1
maxItems: 1
items:
$ref: '#/components/schemas/_presetWorkloadPlatformFeatures'
qos_configurations:
description: 'The QoS configurations that can be applied to storage resources (such as volumes) within
the preset.
'
type: array
maxItems: 5
items:
$ref: '#/components/schemas/_presetWorkloadQosConfiguration'
quot
# --- truncated at 32 KB (70 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/openapi/pure-storage-presets-api-openapi.yml