Pure Storage Protection Group Snapshots API

Protection group snapshots capture the content of all volumes on the source array for the specified protection group at a single point in time.

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-protection-group-snapshots-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: FlashArray REST Active Directory Protection Group Snapshots API
  version: '2.52'
  description: 'Active Directory configuration authenticates users for NFS using Kerberos or SMB using Kerberos

    or New Technology LAN Manager (NTLM). Active Directory is also used to authorize users by

    mapping identities across the NFS and SMB protocols by using LDAP queries.

    '
servers:
- url: /
tags:
- name: Protection Group Snapshots
  description: 'Protection group snapshots capture the content of all volumes on the source array for the

    specified protection group at a single point in time.

    '
paths:
  /api/2.52/protection-group-snapshots:
    get:
      tags:
      - Protection Group Snapshots
      summary: Pure Storage List Protection Group Snapshots
      description: 'Displays a list of protection group snapshots, including those pending eradication.

        '
      parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/XRequestId'
      - $ref: '#/components/parameters/Allow_errors'
      - $ref: '#/components/parameters/Context_names_get'
      - $ref: '#/components/parameters/Continuation_token'
      - $ref: '#/components/parameters/Destroyed'
      - $ref: '#/components/parameters/Filter'
      - $ref: '#/components/parameters/Ids'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Names'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Sort'
      - $ref: '#/components/parameters/Source_ids'
      - $ref: '#/components/parameters/Source_names'
      - $ref: '#/components/parameters/Total_item_count'
      - $ref: '#/components/parameters/Total_only'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectionGroupSnapshotGetResponse'
        '207':
          description: 'Partial success. Some resources were returned, but there

            were also errors possibly preventing some resources from

            being returned.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectionGroupSnapshotGetResponse'
    post:
      tags:
      - Protection Group Snapshots
      summary: Pure Storage Create a Protection Group Snapshot and Create Tags.
      description: 'Creates a point-in-time snapshot of the contents of a protection group.

        The `source_ids` or `source_names` parameter is required, but they cannot be set together.

        '
      parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/XRequestId'
      - $ref: '#/components/parameters/Allow_throttle_snapshot'
      - $ref: '#/components/parameters/Apply_retention'
      - $ref: '#/components/parameters/Context_names'
      - $ref: '#/components/parameters/For_replication'
      - $ref: '#/components/parameters/Replicate'
      - $ref: '#/components/parameters/Replicate_now'
      - $ref: '#/components/parameters/Source_ids'
      - $ref: '#/components/parameters/Source_names'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProtectionGroupSnapshotPost'
        required: false
        x-codegen-request-body-name: protection-group-snapshot
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectionGroupSnapshotResponse'
      x-codegen-request-body-name: protection-group-snapshot
    delete:
      tags:
      - Protection Group Snapshots
      summary: Pure Storage Delete a Protection Group Snapshot
      description: 'Deletes a protection group snapshot that has been destroyed and is pending eradication.

        Eradicating a protection group snapshot eradicates all of its protection group snapshots

        and cannot be recovered.

        Protection group snapshots are destroyed through the `PATCH` method.

        The `names` or `ids` parameter is required, but they cannot be set together.

        '
      parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/XRequestId'
      - $ref: '#/components/parameters/Context_names'
      - $ref: '#/components/parameters/Ids'
      - $ref: '#/components/parameters/Names'
      responses:
        '200':
          description: OK
          content: {}
    patch:
      tags:
      - Protection Group Snapshots
      summary: Pure Storage Modify a Protection Group Snapshot
      description: 'Modifies a protection group snapshot so that it can be destroyed.

        To destroy a volume, set `destroyed=true`.

        To recover a volume that has been destroyed and is pending eradication, set `destroyed=false`.

        The `names` or `ids` parameter is required, but they cannot be set together.

        '
      parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/XRequestId'
      - $ref: '#/components/parameters/Context_names'
      - $ref: '#/components/parameters/Ids'
      - $ref: '#/components/parameters/Names'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProtectionGroupSnapshotPatch'
        required: true
        x-codegen-request-body-name: protection-group-snapshot
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectionGroupSnapshotResponse'
      x-codegen-request-body-name: protection-group-snapshot
  /api/2.52/protection-group-snapshots/replica:
    post:
      tags:
      - Protection Group Snapshots
      summary: Pure Storage Create an Action to Send Protection Group Snapshots
      description: 'Creates an action to send protection group snapshots to protection pgroup targets.

        When the `on` option is used, only specified targets will recieve the

        protection group snapshots.


        '
      parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/XRequestId'
      - $ref: '#/components/parameters/Context_names'
      - $ref: '#/components/parameters/Convert_source_to_baseline'
      - $ref: '#/components/parameters/Ids'
      - $ref: '#/components/parameters/Names'
      - $ref: '#/components/parameters/On_as_target'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectionGroupSnapshotReplicaResponse'
  /api/2.52/protection-group-snapshots/tags:
    get:
      tags:
      - Protection Group Snapshots
      summary: Pure Storage List Tags
      description: 'Displays the list of tags.

        '
      parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/XRequestId'
      - $ref: '#/components/parameters/Allow_errors'
      - $ref: '#/components/parameters/Context_names_get'
      - $ref: '#/components/parameters/Continuation_token'
      - $ref: '#/components/parameters/Filter'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Namespaces'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Resource_destroyed'
      - $ref: '#/components/parameters/Resource_ids'
      - $ref: '#/components/parameters/Resource_names'
      - $ref: '#/components/parameters/Sort'
      - $ref: '#/components/parameters/Total_item_count'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TagGetResponse'
        '207':
          description: 'Partial success. Some resources were returned, but there

            were also errors possibly preventing some resources from

            being returned.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TagGetResponse'
    delete:
      tags:
      - Protection Group Snapshots
      summary: Pure Storage Delete Tags
      description: 'Deletes specified tags.

        '
      parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/XRequestId'
      - $ref: '#/components/parameters/Context_names'
      - $ref: '#/components/parameters/Keys'
      - $ref: '#/components/parameters/Namespaces_delete'
      - $ref: '#/components/parameters/Resource_ids'
      - $ref: '#/components/parameters/Resource_names'
      responses:
        '200':
          description: OK
          content: {}
  /api/2.52/protection-group-snapshots/tags/batch:
    put:
      tags:
      - Protection Group Snapshots
      summary: Pure Storage Update Tags
      description: 'Updates or creates tags for all specified objects.

        '
      parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/XRequestId'
      - $ref: '#/components/parameters/Context_names'
      - $ref: '#/components/parameters/Resource_ids'
      - $ref: '#/components/parameters/Resource_names'
      requestBody:
        description: A list of tags to be created or, if already existing, updated.
        content:
          application/json:
            schema:
              maxItems: 30
              minItems: 1
              uniqueItems: true
              type: array
              items:
                $ref: '#/components/schemas/TagBatch'
        required: true
        x-codegen-request-body-name: tag
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TagResponse'
      x-codegen-request-body-name: tag
  /api/2.52/protection-group-snapshots/test:
    post:
      tags:
      - Protection Group Snapshots
      summary: Pure Storage Create an Attempt to Take Protection Group Snapshot
      description: 'Creates an attempt to take the protection group snapshot, without

        actually taking it, to test if the snapshot can be successfully taken.

        '
      parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/XRequestId'
      - $ref: '#/components/parameters/Allow_throttle_snapshot'
      - $ref: '#/components/parameters/Apply_retention'
      - $ref: '#/components/parameters/Context_names'
      - $ref: '#/components/parameters/For_replication'
      - $ref: '#/components/parameters/Replicate'
      - $ref: '#/components/parameters/Replicate_now'
      - $ref: '#/components/parameters/Source_ids'
      - $ref: '#/components/parameters/Source_names'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProtectionGroupSnapshotPost'
        required: false
        x-codegen-request-body-name: protection-group-snapshot
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestResultWithResourceWithIdPostResponse'
      x-codegen-request-body-name: protection-group-snapshot
  /api/2.52/protection-group-snapshots/transfer:
    get:
      tags:
      - Protection Group Snapshots
      summary: Pure Storage List Protection Group Snapshots with Transfer Statistics
      description: 'Displays a list of protection group snapshots and corresponding transfer statistics.

        '
      parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/XRequestId'
      - $ref: '#/components/parameters/Allow_errors'
      - $ref: '#/components/parameters/Context_names_get'
      - $ref: '#/components/parameters/Continuation_token'
      - $ref: '#/components/parameters/Destroyed'
      - $ref: '#/components/parameters/Filter'
      - $ref: '#/components/parameters/Ids'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Names'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Sort'
      - $ref: '#/components/parameters/Source_ids'
      - $ref: '#/components/parameters/Source_names'
      - $ref: '#/components/parameters/Total_item_count'
      - $ref: '#/components/parameters/Total_only'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectionGroupSnapshotTransferGetResponse'
        '207':
          description: 'Partial success. Some resources were returned, but there

            were also errors possibly preventing some resources from

            being returned.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectionGroupSnapshotTransferGetResponse'
  /api/1.5/protection-group-snapshots:
    get:
      tags:
      - Protection Group Snapshots
      summary: Pure Storage Get Protection Group Snapshots
      description: 'Retrieves information about snapshots of protection groups

        '
      parameters:
      - $ref: '#/components/parameters/Authorization_2'
      - $ref: '#/components/parameters/XRequestId'
      - $ref: '#/components/parameters/Continuation_token_2'
      - $ref: '#/components/parameters/Filter_2'
      - $ref: '#/components/parameters/Ids_2'
      - $ref: '#/components/parameters/Limit_2'
      - $ref: '#/components/parameters/Names_2'
      - $ref: '#/components/parameters/Offset_2'
      - $ref: '#/components/parameters/Sort_2'
      - $ref: '#/components/parameters/Source_ids_2'
      - $ref: '#/components/parameters/Source_names_2'
      responses:
        '200':
          description: OK
          headers:
            X-Request-ID:
              description: Supplied by client during request or generated by server.
              schema:
                type: string
            X-RateLimit-Remaining-second:
              description: 'The number of requests remaining for the organization in that second.

                '
              schema:
                type: integer
            X-RateLimit-Remaining-minute:
              description: 'The number of requests remaining for the organization in that minute.

                '
              schema:
                type: integer
            X-RateLimit-Limit-second:
              description: The number of requests available per second.
              schema:
                type: integer
            X-RateLimit-Limit-minute:
              description: The number of requests available per minute.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectionGroupSnapshotGetResponse_2'
        '400':
          $ref: '#/components/responses/Error400'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '429':
          $ref: '#/components/responses/Error429'
        '500':
          $ref: '#/components/responses/Error500'
  /api/1.5/protection-group-snapshots/transfer:
    get:
      tags:
      - Protection Group Snapshots
      summary: Pure Storage Get Protection Group Snapshots with Transfer Statistics
      description: 'Retrieves information about snapshots of protection groups

        '
      parameters:
      - $ref: '#/components/parameters/Authorization_2'
      - $ref: '#/components/parameters/XRequestId'
      - $ref: '#/components/parameters/Continuation_token_2'
      - $ref: '#/components/parameters/Filter_2'
      - $ref: '#/components/parameters/Ids_2'
      - $ref: '#/components/parameters/Limit_2'
      - $ref: '#/components/parameters/Names_2'
      - $ref: '#/components/parameters/Offset_2'
      - $ref: '#/components/parameters/Sort_2'
      - $ref: '#/components/parameters/Source_ids_2'
      - $ref: '#/components/parameters/Source_names_2'
      responses:
        '200':
          description: OK
          headers:
            X-Request-ID:
              description: Supplied by client during request or generated by server.
              schema:
                type: string
            X-RateLimit-Remaining-second:
              description: 'The number of requests remaining for the organization in that second.

                '
              schema:
                type: integer
            X-RateLimit-Remaining-minute:
              description: 'The number of requests remaining for the organization in that minute.

                '
              schema:
                type: integer
            X-RateLimit-Limit-second:
              description: The number of requests available per second.
              schema:
                type: integer
            X-RateLimit-Limit-minute:
              description: The number of requests available per minute.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectionGroupSnapshotTransferGetResponse_2'
        '400':
          $ref: '#/components/responses/Error400'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '429':
          $ref: '#/components/responses/Error429'
        '500':
          $ref: '#/components/responses/Error500'
components:
  schemas:
    _timeAware:
      type: object
      properties:
        _as_of:
          description: The freshness of the data (timestamp in millis since epoch).
          type: integer
          format: int64
          readOnly: true
          example: 1502729489760
    ErrorNoContext:
      type: object
      properties:
        message:
          type: string
          example: Something was wrong
    Tag:
      allOf:
      - $ref: '#/components/schemas/_context'
      - type: object
        properties:
          copyable:
            description: 'Specifies whether or not to include the tag when copying the parent resource.

              If set to `true`, the tag is included in resource copying.

              If set to `false`, the tag is not included.

              If not specified, defaults to `true`.

              '
            type: boolean
            example: true
          key:
            description: 'Key of the tag. Supports up to 64 Unicode characters.

              '
            type: string
            example: environment
          namespace:
            description: 'Optional namespace of the tag.

              Namespace identifies the category of the tag. Omitting the namespace

              defaults to the namespace `default`. The `pure*` namespaces are

              reserved for plugins and integration partners. It is recommended

              that customers avoid using reserved namespaces.

              '
            type: string
            example: default
          resource:
            $ref: '#/components/schemas/_fixedReference'
          value:
            description: 'Value of the tag. Supports up to 256 Unicode characters.

              '
            type: string
            example: staging
    ProtectionGroupSnapshotResponse:
      type: object
      properties:
        items:
          description: 'Displays a list of all items after filtering.

            If applicable, the values are displayed for each name.

            '
          type: array
          items:
            $ref: '#/components/schemas/ProtectionGroupSnapshot'
    _builtIn:
      description: 'A built-in resource. Many are singletons predefined by Purity (e.g., support

        settings). Some correspond to a piece of software, like an app, or hardware,

        like a controller. Others are created by the system in response to some event

        (e.g., alerts, audit records).


        Typically, a user can''t create, delete or rename a built-in resource. A few

        can be created or deleted, but not renamed because the names are meaningful

        to Purity (e.g., VIFs).

        '
      type: object
      properties:
        id:
          description: 'A globally unique, system-generated ID.

            The ID cannot be modified and cannot refer to another resource.

            '
          type: string
          readOnly: true
        name:
          description: 'A locally unique, system-generated name. The name cannot be modified.

            '
          type: string
          readOnly: true
    ProtectionGroupSnapshotTransferGetResponse_2:
      allOf:
      - $ref: '#/components/schemas/PageInfo_2'
      - $ref: '#/components/schemas/ProtectionGroupSnapshotTransferResponse_2'
    ProtectionGroupSnapshot:
      allOf:
      - $ref: '#/components/schemas/_resourceNoId'
      - $ref: '#/components/schemas/_resource'
      - $ref: '#/components/schemas/_context'
      - description: 'A protection group snapshot is a collection of point-in-time consistent

          volume snapshots, for volumes associated with the protection group when the

          snapshot was taken.

          '
        type: object
        properties:
          created:
            description: 'The snapshot creation time of the original snapshot source.

              Measured in milliseconds since the UNIX epoch.

              '
            type: integer
            format: int64
            readOnly: true
            example: 1503520993
          destroyed:
            description: 'Returns a value of `true` if the protection group snapshot

              has been destroyed and is pending eradication.

              The `time_remaining` value displays the amount of time left

              until the destroyed snapshot is permanently eradicated.

              Before the `time_remaining` period has elapsed,

              the destroyed snapshot can be recovered

              by setting `destroyed=false`.

              Once the `time_remaining` period has elapsed,

              the snapshot is permanently eradicated and can no longer be recovered.

              '
            type: boolean
          eradication_config:
            $ref: '#/components/schemas/ProtectionGroupEradicationConfig'
          pod:
            description: The pod in which the protection group of the protection group snapshot resides.
            title: FixedReference
            allOf:
            - $ref: '#/components/schemas/_fixedReference'
          source:
            description: 'The original protection group from which this snapshot was taken.

              For a replicated protection group snapshot being viewed on the

              target side, the `source` is the replica protection group.

              '
            title: FixedReference
            allOf:
            - $ref: '#/components/schemas/_fixedReference'
          space:
            description: 'Displays provisioned size and physical storage consumption data

              for each protection group.

              '
            title: Space
            allOf:
            - $ref: '#/components/schemas/_space'
          suffix:
            description: 'The name suffix appended to the protection group name

              to make up the full protection group snapshot name

              in the form `PGROUP.SUFFIX`.

              If `suffix` is not specified,

              the protection group name is in the form `PGROUP.NNN`,

              where `NNN` is a unique monotonically increasing number.

              If multiple protection group snapshots are created at a time,

              the suffix name is appended to those snapshots.

              '
            type: string
          time_remaining:
            description: 'The amount of time left until the destroyed snapshot is permanently eradicated.

              Measured in milliseconds.

              Before the `time_remaining` period has elapsed, the destroyed snapshot can be recovered

              by setting `destroyed=false`.

              '
            type: integer
            format: int64
            readOnly: true
    _builtInAsOf:
      description: 'A built-in resource. Many are singletons predefined by Purity (e.g., support

        settings). Some correspond to a piece of software, like an app, or hardware,

        like a controller. Others are created by the system in response to some event

        (e.g., alerts, audit records).


        Typically, a user can''t create, delete or rename a built-in resource. A few

        can be created or deleted, but not renamed because the names are meaningful

        to Purity (e.g., VIFs).


        '
      allOf:
      - $ref: '#/components/schemas/_timeAware'
      - type: object
        properties:
          id:
            description: A non-modifiable, globally unique ID chosen by the system.
            type: string
            readOnly: true
            example: 01c2889a-4124-49ff-8cbd-c33405ede123
          name:
            description: A non-modifiable, locally unique name chosen by the system.
            type: string
            readOnly: true
            example: example_name
    ProtectionGroupSnapshotResponse_2:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/ProtectionGroupSnapshot_2'
    _space:
      type: object
      properties:
        data_reduction:
          description: 'The ratio of mapped sectors within a volume versus

            the amount of physical space the data occupies after data compression and deduplication.

            The data reduction ratio does not include thin provisioning savings.

            For example, a data reduction ratio of 5:1 means that

            for every 5 MB the host writes to the array, 1 MB is stored on the array''s flash modules.

            '
          type: number
          format: float
          readOnly: true
        footprint:
          description: 'The maximum amount of physical space the container consumes on an array,

            ignoring any data shared outside the container, measured in bytes.

            On Evergreen//One arrays, this is the maximum amount of effective used space.

            The footprint metric is mostly used for capacity planning.

            This field will be null in non-container contexts.

            '
          type: integer
          format: int64
          minimum: 0
          readOnly: true
        shared:
          description: 'The physical space occupied by deduplicated data, meaning that the space is shared with other

            volumes and snapshots as a result of data deduplication.

            Measured in bytes.

            On Evergreen//One arrays, this is the effective space contributed by data that is not unique

            to a specific volume, managed directory, or snapshot, measured in bytes.

            '
          type: integer
          format: int64
          minimum: 0
          readOnly: true
          example: 111863360624
        snapshots:
          description: 'The physical space occupied by data unique to one or more snapshots.

            Measured in bytes.

            On Evergreen//One arrays, this is the effective space contributed by data unique to one or

            more snapshots, measured in bytes.

            '
          type: integer
          format: int64
          minimum: 0
          readOnly: true
        system:
          description: 'The physical space occupied by internal array metadata. Measured in bytes.

            '
          type: integer
          format: int64
          minimum: 0
          readOnly: true
        thin_provisioning:
          description: 'The percentage of volume sectors that do not contain host-written data

            because the hosts have not written data to them or the sectors have been explicitly trimmed.

            '
          type: number
          format: float
          minimum: 0
          maximum: 1
          readOnly: true
        total_physical:
          description: 'This field has been deprecated.

            Use the `total_used` field, as it contains the same information.

            '
          type: integer
          format: int64
          minimum: 0
          readOnly: true
        total_provisioned:
          description: 'The provisioned size of a volume for a single volume, host or host group,

            protocol endpoint, managed directory, and containers can be infinite or measured in bytes.

            Infinite is represented by `null`.

            The provisioned size for a host or host group, includes all volumes

            that are connected to the resource.

            The provisioned size for a protocol endpoint is `null`.

            The provisioned size for a managed directory is the quota limit if it

            or its parent has a managed directory configured, otherwise it defaults to `null`.

            The provisioned size for a container is the sum of the total_provisioned

            of the object it contains, capped by the container''s quota limit

            (or the container''s used_provisioned if current usage is above the quota limit), if any.

            Provisioned size represents the storage capacity reported to hosts.

            '
          type: integer
          format: int64
          minimum: 0
          readOnly: true
          example: 19937690345472
        total_reduction:
          description: 'The ratio of provisioned sectors within a volume versus

            the amount of physical space the data occupies

            after reduction via data compression and deduplication

            and with thin provisioning savings.

            Total reduction is data reduction with thin provisioning savings.

            For example, a total reduction ratio of 10:1 means that

            for every 10 MB of provisioned space,

            1 MB is stored on the array''s flash modules.


            '
          type: number
          format: float
          readOnly: true
        total_used:
          description: 'The total space contributed by customer data, measured in bytes.

            '
          type: integer
          format: int64
          minimum: 0
          readOnly: true
        unique:
          description: 'The unique physical space occupied by customer data.

            Unique physical space does not include shared space, snapshots, and internal array metadata.

            Measured in bytes.

            On Evergreen//One arrays, this is the effective space contributed by unique customer data,

            measured in bytes.

            Unique data does not include shared space, snapshots, and internal array metadata.

            '
          type: integer
          format: int64
          minimum: 0
          readOnly: true
        used_provisioned:
          description: 'The amount of logical space a container has consumed,

            compared against the quota limit if the container has one configured.

            Used provisioned does not include destroyed objects inside the container.

            Used provisioned can include destroyed objects for a destroyed container

            and represents how much logical space it would take to recover the container.

            '
          type: integer
          format: int64
          minimum: 0
          readOnly: true
          example: 19937690345472
        virtual:
          description: 'The amount of logically written data that a volume or a snapshot references.

            Measured in bytes.

            '
          type: integer
          format: int64
          minimum: 0
          readOnly: true
    ProtectionGroupSnapshotPatch:
      allOf:
      - $ref: '#/components/schemas/ProtectionGroupSnapshot'
      - type: object
        properties:
          suffix:
            type: string
            readOnly: true
    ProtectionGroupEradicationConfig:
      description: The configuration of the eradication feature.
      type: object
      properties:
        manual_eradication:
          description: 'Manual eradication status of objects like protection group and

            protection group snapshots.

            If manual_eradication is `disabled`, you cannot eradicate o

# --- truncated at 32 KB (71 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/openapi/pure-storage-protection-group-snapshots-api-openapi.yml