Pure Storage Presets API

Presets are reusable templates that provision resources.

Documentation

Specifications

Code Examples

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-schema/flasharray-rest-api-array-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-schema/flasharray-rest-api-volume-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-schema/flasharray-rest-api-host-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-structure/flasharray-rest-api-array-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-structure/flasharray-rest-api-volume-structure.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-schema/flashblade-rest-api-file-system-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-schema/flashblade-rest-api-bucket-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-schema/flashblade-rest-api-array-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-structure/flashblade-rest-api-file-system-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-structure/flashblade-rest-api-bucket-structure.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-schema/pure1-cloud-api-array-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-schema/pure1-cloud-api-metric-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-schema/pure1-cloud-api-alert-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-structure/pure1-cloud-api-array-structure.json

Other Resources

🔗
SDKs
https://pypi.org/project/py-pure-client/
🔗
SDKs
https://github.com/PureStorage-OpenConnect/PureStorage.Pure1
🔗
SDKs
https://github.com/PureStorage-OpenConnect/powershell-toolkit-3
🔗
SDKs
https://github.com/PureStorage-OpenConnect/rest-client
🔗
Integrations
https://github.com/PureStorage-OpenConnect/terraform-provider-flash
🔗
Integrations
https://github.com/PureStorage-OpenConnect/pure-fa-openmetrics-exporter
🔗
JSONLD
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-ld/pure-storage-flasharray-rest-api-context.jsonld
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/examples/flasharray-rest-api-volume-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/examples/flasharray-rest-api-array-example.json
🔗
SDKs
https://github.com/PureStorage-OpenConnect/flashblade-powershell
🔗
SDKs
https://github.com/purestorage/purity_fb_python_client
🔗
Integrations
https://github.com/PureStorage-OpenConnect/pure-fb-openmetrics-exporter
🔗
Tools
https://github.com/PureStorage-OpenConnect/flashblade-mcp-server
🔗
JSONLD
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-ld/pure-storage-flashblade-rest-api-context.jsonld
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/examples/flashblade-rest-api-file-system-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/examples/flashblade-rest-api-bucket-example.json
🔗
JSONLD
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-ld/pure-storage-pure1-cloud-api-context.jsonld
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/examples/pure1-cloud-api-array-example.json

OpenAPI Specification

pure-storage-presets-api-openapi.yml Raw ↑
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