openapi: 3.0.1
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:
_namingPatterns:
type: array
description: 'The naming patterns that are applied to the storage resources that are provisioned by the workload
for this configuration.
'
minItems: 1
maxItems: 1
items:
$ref: '#/components/schemas/_namingPattern'
_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
_presetWorkloadPeriodicReplicationConfiguration:
type: object
required:
- name
- remote_targets
- rules
properties:
name:
$ref: '#/components/schemas/_presetWorkloadConfigurationName'
naming_patterns:
$ref: '#/components/schemas/_namingPatterns'
remote_targets:
description: The remote targets to which snapshots may be replicated.
type: array
minItems: 1
maxItems: 1
items:
description: 'A remote target to which snapshots may be replicated.
Supports parameterization.
'
title: ReferenceWithType
allOf:
- $ref: '#/components/schemas/_referenceWithType'
rules:
description: Rules describe the frequency and retention of snapshots taken by the configuration.
type: array
minItems: 1
maxItems: 2
items:
$ref: '#/components/schemas/_presetWorkloadSnapshotRule'
_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: FixedReference
allOf:
- $ref: '#/components/schemas/_fixedReference_2'
message:
description: A description of the error which occurred.
type: string
example: Resource does not exist.
_presetWorkloadParameter:
type: object
required:
- name
- type
properties:
constraints:
$ref: '#/components/schemas/_presetWorkloadConstraints'
metadata:
$ref: '#/components/schemas/_presetWorkloadMetadata'
name:
description: 'The name of the parameter, by which other fields in the preset can reference it.
Name must be unique across all parameters in the preset.
'
type: string
example: billing-id
type:
description: 'The type of the parameter. Valid values include `string`, `integer`, `boolean` and
`resource_reference`.
String parameters can be used to collect metadata about workloads deployed from the preset,
such as the environment to which they are deployed (e.g., production, development, etc.) or
the billing account to which they belong for charge back and show back purposes.
Integer and boolean parameters can be used to configure specific fields in the preset, such as
the number or size of volumes to provision.
Resource reference parameters can be used to collect references to other objects, such as
storage classes or remote arrays.'
type: string
_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'
_presetWorkloadPlatformFeatures:
type: string
description: 'The collection of platform specific features that can be used in this Preset.
Valid values include `fa_block`, `fa_file`, and `fb_file`.
If `fa_block` is specified, the preset is used to create volumes on Purity//FA appliances.
If `fa_file` is specified, the preset is used to create file systems or directories on
Purity//FA appliances.
If `fb_file` is specified, the preset is used to create file systems on Purity//FB appliances.
Various configuration such as snapshot configuration or export configuration features are
subject to the specified platform feature set.
Defaults to `fa_block`.
'
_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'
_presetWorkloadDirectoryConfigurationPath:
type: object
properties:
naming_patterns:
description: 'The naming pattern for the directory path.
'
type: array
minItems: 1
maxItems: 1
items:
$ref: '#/components/schemas/_namingPattern'
PageInfoWithoutTotalItemCountResponse:
type: object
properties:
continuation_token:
description: 'Continuation token that can be provided in the `continuation_token`
query parameter to get the next page of data.
If you use the continuation token to page through data you
are guaranteed to get all items exactly once regardless of
how items are modified. If an item is added or deleted during
the pagination, then it may or may not be returned.
The continuation token is generated if the limit is less
than the remaining number of items, and the default sort is used
(no sort is specified).
'
type: string
more_items_remaining:
description: 'Displays a value of `true` if subsequent items can be retrieved.
'
type: boolean
example: false
_presetWorkloadQuotaConfiguration:
allOf:
- $ref: '#/components/schemas/_presetWorkloadPolicyAction'
- type: object
required:
- name
- rules
properties:
name:
$ref: '#/components/schemas/_presetWorkloadConfigurationName'
naming_patterns:
$ref: '#/components/schemas/_namingPatterns'
rules:
description: Rules describe the desired quota limit and enforcement.
type: array
minItems: 1
maxItems: 1
items:
$ref: '#/components/schemas/_presetWorkloadQuotaRule'
_presetWorkloadExportConfigurationSmbPolicy:
type: object
properties:
access_based_enumeration_enabled:
description: 'The flag enabling access-based enumeration on the policy. When enabled, files and folders
within attached exports are hidden from users without view permissions.
The default is `false`.
It supports parameterization.
'
type: string
continuous_availability_enabled:
description: 'The flag indicating if continuous availability is enabled on the policy. When enabled, file
shares remain accessible during disruptive events, such as temporary network outages,
controller upgrades, or failovers.
The default is `true`.
It supports parameterization.
'
type: string
rules:
type: array
items:
$ref: '#/components/schemas/_presetWorkloadExportConfigurationSmbRule'
_newName:
type: object
properties:
name:
description: The new name for the resource.
type: string
_presetWorkloadConfigurationName:
type: string
description: 'The name of the configuration object, used by other configuration objects in the preset to
reference it. The name must be unique across all configuration objects in the preset.
'
_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
_presetWorkloadExportConfigurationSmbShare:
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/_presetWorkloadExportConfigurationSmbSharePolicy'
_presetWorkloadConstraintsInteger:
description: Constraints to apply to integer parameters.
type: object
properties:
allowed_values:
description: 'The valid values that can be supplied to the parameter.
A parameter that collects the number of volumes to provision might, for example, limit
the allowed values to a few fixed options. Supports up to five values.
'
type: array
items:
type: integer
format: int64
default:
description: 'The default value to use if no value is provided.
Must be present in `allowed_values`, if set.
Must comply with `minimum`, if set.
Must comply with `maximum`, if set.
'
type: integer
format: int64
maximum:
description: The maximum acceptable value, inclusive.
type: integer
format: int64
minimum:
description: The minimum acceptable value, inclusive.
type: integer
format: int64
_namingPattern:
type: object
required:
- template
properties:
template:
description: 'A naming template is a string that defines a naming pattern using a combination of tokens (or chips),
which include both static text and dynamic placeholders. Each token contributes to the final name when
the template is applied. Dynamic tokens serve as placeholders that resolve to specific values, such as
user-defined parameters or system-generated values. They can also support transformation functions to
modify their inputs, including nesting where the output of one function is passed to another. The
resulting string is a concatenation of all tokens - both static and dynamic - forming the final
resource name.
If a user does not specify a naming template, a default naming pattern is automatically applied to the
resource.
For resources that are unique to the workload (e.g. volumes), the default naming pattern is
a combination of the workload name and workload configuration name separated by a hyphen.
For resources that are reused across workloads (e.g. `create_or_reuse` policies), the default naming
pattern is a combination of the preset name and the workload configuration name separated by a hyphen.
If the resource supports a `count` in the preset configuration (e.g. volumes), the name is appended
with a four digit (left-padded) index that starts at `"0001"`, also separated by a hyphen.
'
type: string
_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
_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
PresetWorkloadResponse:
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/PresetWorkload'
_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
_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'
_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
_presetWorkloadDirectoryConfigurationName:
type: object
properties:
name:
description: 'The name of the `directory_configuration` within the preset.
'
type: string
_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
_presetWorkloadPolicyAction:
type: object
properties:
policy_action:
description: 'A directive for how to manage policies as part of workload creation.
Valid values include `always_create` and `create_or_reuse`.
If set to `always_create`, then creation of a workload will require creation of
policies specified in the preset. If a policy with a matching name already exists,
workload creation will fail. Otherwise, a policy will be created that is exclusive
to this workload.
If set to `create_or_reuse`, when a workload is created, an existing policy with a
matching name is searched for in order to reuse. If an existing policy is found -
and there are rules specified in the preset - all preset rules must match the rules
in the policy for it to be reused, otherwise workload creation will fail. If there
is no policy found with a matching name, a new policy will be created. This new
policy will not be exclusive to the workload and may be reused by other workloads.
The default is `create_or_reuse`.
Supports parameterization.
'
type: string
PresetWorkload:
allOf:
- $ref: '#/components/schemas/_resource'
- $ref: '#/components/schemas/_context'
- $ref: '#/components/schemas/_presetWorkloadBase'
PresetWorkloadGetResponse_2:
allOf:
- $ref: '#/components/schemas/PageInfo'
- $ref: '#/components/schemas/PresetWorkloadResponse'
- $ref: '#/components/schemas/_errorContextResponse_2'
_presetWorkloadConstraints:
description: Constraints to apply to the parameter.
type: object
properties:
boolean:
$ref: '#/components/schemas/_presetWorkloadConstraintsBoolean'
integer:
$ref: '#/components/schemas/_presetWorkloadConstraintsInteger'
resource_reference:
$ref: '#/components/schemas/_presetWorkloadConstraintsResourceReference'
string:
$ref: '#/components/schemas/_presetWorkloadConstraintsString'
_presetWorkloadConstraintsString:
description: Constraints to apply to string parameters.
type: object
properties:
allowed_values:
description: 'The valid values that can be supplied to the parameter.
A parameter that collects the name of the environment to which a workload will deploy
might, for example, limit the allowed values to `production`, `testing` and
`development`. Supports up to five values, with up to 64 unicode characters per value.
'
type: array
items:
type: string
default:
description: 'The default value to use if no value is provided.
Must be present in `allowed_values`, if `allowed_values` is set.
Supports up to 64 unicode characters.
'
type: string
_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
_presetWorkloadSnapshotConfiguration:
allOf:
- $ref: '#/components/schemas/_presetWorkloadPolicyAction'
- type: object
required:
- name
- rules
properties:
name:
$ref: '#/components/schemas/_presetWorkloadConfigurationName'
naming_patterns:
$ref: '#/components/schemas/_namingPatterns'
rules:
description: The rules defining the frequency and retention of snapshots
# --- 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