Pure Storage Protection Groups API

A protection group defines a set of volumes, hosts, or host groups (called members) that are protected together through snapshots with point-in-time consistency across the member volumes. The members within the protection group have common data protection requirements and the same snapshot, replication, and retention schedules.

Operations 23

GET /api/2.52/protection-groups Pure Storage List Protection Groups
POST /api/2.52/protection-groups Pure Storage Create a Protection Group and Upsert Tags
DELETE /api/2.52/protection-groups Pure Storage Delete a Protection Group
PATCH /api/2.52/protection-groups Pure Storage Modify a Protection Group
GET /api/2.52/protection-groups/hosts Pure Storage List Protection Groups with Host Members
POST /api/2.52/protection-groups/hosts Pure Storage Create an Action to Add a Host to a Protection Group
DELETE /api/2.52/protection-groups/hosts Pure Storage Delete a Host from a Protection Group
GET /api/2.52/protection-groups/host-groups Pure Storage List Protection Groups with Host Group Members
POST /api/2.52/protection-groups/host-groups Pure Storage Creates an Action to Add a Host Group to a Protection Group
DELETE /api/2.52/protection-groups/host-groups Pure Storage Delete a Host Group from a Protection Group
GET /api/2.52/protection-groups/performance/replication Pure Storage List Protection Group Replication Performance Data
GET /api/2.52/protection-groups/performance/replication/by-array Pure Storage List Protection Group Replication Performance Data with Array Details
GET /api/2.52/protection-groups/space Pure Storage List Protection Group Space Information
GET /api/2.52/protection-groups/tags Pure Storage List Tags
DELETE /api/2.52/protection-groups/tags Pure Storage Delete Tags
PUT /api/2.52/protection-groups/tags/batch Pure Storage Update Tags
GET /api/2.52/protection-groups/targets Pure Storage List Protection Groups with Targets
POST /api/2.52/protection-groups/targets Pure Storage Create an Action to Add a Target to a Protection Group
DELETE /api/2.52/protection-groups/targets Pure Storage Delete a Target from a Protection Group
PATCH /api/2.52/protection-groups/targets Pure Storage Modify a Protection Group Target
GET /api/2.52/protection-groups/volumes Pure Storage List Protection Groups with Volume Members
POST /api/2.52/protection-groups/volumes Pure Storage Create a Volume to Add it to a Protection Group
DELETE /api/2.52/protection-groups/volumes Pure Storage Delete a Volume from a Protection Group

Documentation

Specifications

Code Examples

Schemas & Data

📊
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-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
🔗
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

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/pure-storage-protection-groups-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

pure-storage-protection-groups-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: FlashArray REST Active Directory Protection Groups 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 Groups
  description: 'A protection group defines a set of volumes, hosts, or host groups (called members) that are

    protected together through snapshots with point-in-time consistency across the member volumes.

    The members within the protection group have common data protection requirements and the same

    snapshot, replication, and retention schedules.

    '
paths:
  /api/2.52/protection-groups:
    get:
      tags:
      - Protection Groups
      summary: Pure Storage List Protection Groups
      description: 'Displays a list of protection groups,

        including their associated source arrays or pods, replication targets,

        hosts, host groups, and volumes.

        The list includes protection groups that were created on the

        local array or realm to replicate snapshot data to other arrays, pods or

        offload targets, created on a remote array or pod and replicated

        asynchronously to this array or realm, or created inside a pod

        on a remote array or realm and stretched to the local array or realm.

        '
      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/Total_item_count'
      - $ref: '#/components/parameters/Total_only'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectionGroupGetResponse'
        '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/ProtectionGroupGetResponse'
    post:
      tags:
      - Protection Groups
      summary: Pure Storage Create a Protection Group and Upsert Tags
      description: 'Creates a protection group on the local array or realm for asynchronous replication.

        '
      parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/XRequestId'
      - $ref: '#/components/parameters/Context_names'
      - $ref: '#/components/parameters/Names'
      - $ref: '#/components/parameters/Overwrite'
      - $ref: '#/components/parameters/Protection_group_source_ids'
      - $ref: '#/components/parameters/Protection_group_source_names'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProtectionGroupPost'
        required: false
        x-codegen-request-body-name: protection-group
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectionGroupResponse'
      x-codegen-request-body-name: protection-group
    delete:
      tags:
      - Protection Groups
      summary: Pure Storage Delete a Protection Group
      description: 'Deletes a protection group that has been destroyed and is pending eradication.

        Eradicated protection groups cannot be recovered.

        Protection groups are destroyed through the `PATCH` method.

        The `names` parameter is required.

        '
      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 Groups
      summary: Pure Storage Modify a Protection Group
      description: 'Modifies the protection group schedules to generate and replicate

        snapshots to another array, pod or to an external storage system.

        Renames or destroys a protection group.

        '
      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/ProtectionGroup'
        required: true
        x-codegen-request-body-name: protection-group
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectionGroupResponse'
      x-codegen-request-body-name: protection-group
  /api/2.52/protection-groups/hosts:
    get:
      tags:
      - Protection Groups
      summary: Pure Storage List Protection Groups with Host Members
      description: Displays a list of protection groups that have host members.
      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/Group_ids'
      - $ref: '#/components/parameters/Group_names'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Member_names'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Sort'
      - $ref: '#/components/parameters/Total_item_count'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberNoIdMemberGetResponse'
        '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/MemberNoIdMemberGetResponse'
    post:
      tags:
      - Protection Groups
      summary: Pure Storage Create an Action to Add a Host to a Protection Group
      description: 'Creates an action to add a host member to a protection group.

        Members that are already in the protection group are not affected.

        For asynchronous replication, only members of the same type can belong to a protection group.

        The `group_names` parameter represents the name of the protection group, and

        the `member_names` parameter represents the name of the host.

        The `group_names` and `member_names` parameters are required and must be set together.


        '
      parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/XRequestId'
      - $ref: '#/components/parameters/Context_names'
      - $ref: '#/components/parameters/Group_ids'
      - $ref: '#/components/parameters/Group_names'
      - $ref: '#/components/parameters/Member_names'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberNoIdMemberResponse'
    delete:
      tags:
      - Protection Groups
      summary: Pure Storage Delete a Host from a Protection Group
      description: 'Deletes a host member from a protection group.

        After the member has been removed, it is no longer protected by the group.

        Any protection group snapshots that were taken before the member was removed

        will not be affected.

        Removing a member from a protection group does not delete the member from the array or realm,

        and the member can be added back to the protection group at any time.

        The `group_names` parameter represents the name of the protection group, and

        the `member_names` parameter represents the name of the host.

        The `group_names` and `member_names` parameters are required and must be set together.

        '
      parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/XRequestId'
      - $ref: '#/components/parameters/Context_names'
      - $ref: '#/components/parameters/Group_ids'
      - $ref: '#/components/parameters/Group_names'
      - $ref: '#/components/parameters/Member_names'
      responses:
        '200':
          description: OK
          content: {}
  /api/2.52/protection-groups/host-groups:
    get:
      tags:
      - Protection Groups
      summary: Pure Storage List Protection Groups with Host Group Members
      description: Displays a list of protection groups that have host group members.
      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/Group_ids'
      - $ref: '#/components/parameters/Group_names'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Member_names'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Sort'
      - $ref: '#/components/parameters/Total_item_count'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberNoIdMemberGetResponse'
        '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/MemberNoIdMemberGetResponse'
    post:
      tags:
      - Protection Groups
      summary: Pure Storage Creates an Action to Add a Host Group to a Protection Group
      description: 'Creates an action to add a host group member to a protection group.

        Members that are already in the protection group are not affected.

        For asynchronous replication, only members of the same type can belong to a protection group.

        The `group_names` parameter represents the name of the protection group, and

        the `member_names` parameter represents the name of the host group.

        The `group_names` and `member_names` parameters are required and must be set together.

        '
      parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/XRequestId'
      - $ref: '#/components/parameters/Context_names'
      - $ref: '#/components/parameters/Group_ids'
      - $ref: '#/components/parameters/Group_names'
      - $ref: '#/components/parameters/Member_names'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberNoIdMemberResponse'
    delete:
      tags:
      - Protection Groups
      summary: Pure Storage Delete a Host Group from a Protection Group
      description: 'Deletes a host group member from a protection group.

        After the member has been removed, it is no longer protected by the group.

        Protection group snapshots taken before the member was removed will not be affected.

        Removing a member from a protection group does not delete the member from the array

        or realm, and the member can be added back to the protection group at any time.

        The `group_names` parameter represents the name of the protection group, and

        the `member_names` parameter represents the name of the host group.

        The `group_names` and `member_names` parameters are required and must be set together.

        '
      parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/XRequestId'
      - $ref: '#/components/parameters/Context_names'
      - $ref: '#/components/parameters/Group_ids'
      - $ref: '#/components/parameters/Group_names'
      - $ref: '#/components/parameters/Member_names'
      responses:
        '200':
          description: OK
          content: {}
  /api/2.52/protection-groups/performance/replication:
    get:
      tags:
      - Protection Groups
      summary: Pure Storage List Protection Group Replication Performance Data
      description: 'Displays the total number of bytes of replication data transmitted and received per second.

        The data is grouped by protection group.


        '
      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/History_end_time'
      - $ref: '#/components/parameters/Filter'
      - $ref: '#/components/parameters/Ids'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Names'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/History_resolution'
      - $ref: '#/components/parameters/Sort'
      - $ref: '#/components/parameters/History_start_time'
      - $ref: '#/components/parameters/Total_item_count'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectionGroupPerformanceResponse'
        '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/ProtectionGroupPerformanceResponse'
  /api/2.52/protection-groups/performance/replication/by-array:
    get:
      tags:
      - Protection Groups
      summary: Pure Storage List Protection Group Replication Performance Data with Array Details
      description: 'Displays the total number of bytes of replication data transmitted and received per second.

        The data is grouped by protection group and includes the names of the source array and targets

        for each protection group.

        '
      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/History_end_time'
      - $ref: '#/components/parameters/Filter'
      - $ref: '#/components/parameters/Ids'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Names'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/History_resolution'
      - $ref: '#/components/parameters/Sort'
      - $ref: '#/components/parameters/History_start_time'
      - $ref: '#/components/parameters/Total_item_count'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectionGroupPerformanceArrayResponse'
        '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/ProtectionGroupPerformanceArrayResponse'
  /api/2.52/protection-groups/space:
    get:
      tags:
      - Protection Groups
      summary: Pure Storage List Protection Group Space Information
      description: 'Displays provisioned size and physical storage consumption data for each protection group.


        '
      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/Total_item_count'
      - $ref: '#/components/parameters/Total_only'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceSpaceGetResponse'
        '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/ResourceSpaceGetResponse'
  /api/2.52/protection-groups/tags:
    get:
      tags:
      - Protection Groups
      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 Groups
      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-groups/tags/batch:
    put:
      tags:
      - Protection Groups
      summary: Pure Storage Update Tags
      description: Updates 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 one already exists, 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-groups/targets:
    get:
      tags:
      - Protection Groups
      summary: Pure Storage List Protection Groups with Targets
      description: 'Displays a list of protection groups that have target arrays, pods, or offload targets.



        '
      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/Group_ids'
      - $ref: '#/components/parameters/Group_names'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Member_ids'
      - $ref: '#/components/parameters/Member_names'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Sort'
      - $ref: '#/components/parameters/Total_item_count'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectionGroupTargetGetResponse'
        '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/ProtectionGroupTargetGetResponse'
    post:
      tags:
      - Protection Groups
      summary: Pure Storage Create an Action to Add a Target to a Protection Group
      description: 'Creates an action to add an array, pod, or offload target to a protection group.

        The `group_names` parameter represents the name of the protection group.

        The `member_names` parameter represents the name of the array, pod, or offload target

        that is being added to the protection group.

        The `group_names` and `member_names` parameters are required and must be set together.


        '
      parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/XRequestId'
      - $ref: '#/components/parameters/Context_names'
      - $ref: '#/components/parameters/Group_ids'
      - $ref: '#/components/parameters/Group_names'
      - $ref: '#/components/parameters/Member_ids'
      - $ref: '#/components/parameters/Member_names'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectionGroupTargetResponse'
    delete:
      tags:
      - Protection Groups
      summary: Pure Storage Delete a Target from a Protection Group
      description: 'Deletes an array, pod, or offload target from a protection group.

        The `group_names` parameter represents the name of the protection group.

        The `member_names` parameter represents the name of the array, pod, or offload target

        that is being removed from the protection group.

        The `group_names` and `member_names` parameters are required and must be set together.


        '
      parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/XRequestId'
      - $ref: '#/components/parameters/Context_names'
      - $ref: '#/components/parameters/Group_ids'
      - $ref: '#/components/parameters/Group_names'
      - $ref: '#/components/parameters/Member_ids'
      - $ref: '#/components/parameters/Member_names'
      responses:
        '200':
          description: OK
          content: {}
    patch:
      tags:
      - Protection Groups
      summary: Pure Storage Modify a Protection Group Target
      description: 'Modifies the source array or pod to replicate protection group data to the target,

        or disallows the source array or pod from replicating protection group data to the target.

        The `allowed` parameter must be set from the target array or realm.

        The `group_names` parameter represents the name of the protection group.

        The `allowed` and `group_names` parameters are required and must be set together.

        Offload targets do not support the `allowed` parameter.


        '
      parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/XRequestId'
      - $ref: '#/components/parameters/Context_names'
      - $ref: '#/components/parameters/Group_ids'
      - $ref: '#/components/parameters/Group_names'
      - $ref: '#/components/parameters/Member_ids'
      - $ref: '#/components/parameters/Member_names'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TargetProtectionGroupPostPatch'
        required: true
        x-codegen-request-body-name: target
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectionGroupTargetResponse'
      x-codegen-request-body-name: target
  /api/2.52/protection-groups/volumes:
    get:
      tags:
      - Protection Groups
      summary: Pure Storage List Protection Groups with Volume Members
      description: 'Displays a list of protection groups that have volume members.

        '
      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/Pgroup_group_ids'
      - $ref: '#/components/parameters/Group_names'
      - $ref: '#/components/parameters/Include_remote'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Member_destroyed'
      - $ref: '#/components/parameters/Member_ids'
      - $ref: '#/components/parameters/Member_names'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Sort'
      - $ref: '#/components/parameters/Total_item_count'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectionGroupsVolumesGetResponse'
        '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/ProtectionGroupsVolumesGetResponse'
    post:
      tags:
      - Protection Groups
      summary: Pure Storage Create a Volume to Add it to a Protection Group
      description: 'Creates a volume member and adds it to a protection group.

        Members that are already in the protection group are not affected.

        For asynchronous replication, only members of the same type can belong to a protection group.

        The `group_names` parameter represents the name of the protection group, and

        the `member_names` and `member_ids` parameters represent the names or IDs of the volume.

        The `group_names` parameter, and either the `member_names` or `member_ids`

        parameters are required and must be set together.

        '
      parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/XRequestId'
      - $ref: '#/components/parameters/Context_names'
      - $ref: '#/components/parameters/Group_ids'
      - $ref: '#/components/parameters/Group_names'
      - $ref: '#/components/parameters/Member_ids'
      - $ref: '#/components/parameters/Member_names'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectionGroupsVolumesResponse'
    delete:
      tags:
      - Protection Groups
      summary: Pure Storage Delete a Volume from a Protection Group
      description: 'Deletes a volume member from a protection group.

        After the member has been deleted, it is no longer protected by the group.

        Any protection group snapshots that were taken before the member was deleted are not affected.

        Deleting a member from a protection group does not delete the member from the array or realm,

        and the member can be added back to the protection group at any time.

        The `group_names` parameter represents the name of the protection group, and

        the `member_names` and `member_ids` parameters represent the names or IDs of the volume.

        The `group_names` parameter, and either the `member_names` or `member_ids`

        parameters are required and must be set together.

        '
      parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/XRequestId'
      - $ref: '#/components/parameters/Context_names'
      - $ref: '#/components/parameters/Group_ids'
      - $ref: '#/components/parameters/Group_names'
      - $ref: '#/components/parameters/Member_ids'
      - $ref: '#/components/parameters/Member_names'
      responses:
        '200':
          description: OK
          content: {}
components:
  parameters:
    Names:
      name: names
      in: query
      description: 'Performs the operation on the unique names specified.

        Enter multiple names in comma-separated format.

        For example, `name01,name02`.


        If there is not at least one resource that matches

        each of the elements of `names`, then an error is returned,

        except when creating new resources.

        '
      style: form
      explode: false
      schema:
        type: array
        items:
          type: string
    Destroyed:
      name: destroyed
      in: query
      description: 'If set to `true`, lists only destroyed objects that are in the eradication pending state.

        If set to `false`, lists only objects that are not destroyed.

        If not set, lists both objects that are destroyed and those that are not destroyed.


        For destroyed objects, the time remaining is displayed in milliseconds.


        If object name(s) or id(s) are specified, then each object referenced must exist.

        If `destroyed` is set to `true`, then each object referenced must also be destroyed.

        If `destroyed` is set to `false`, then each object referenced must also not be dest

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