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.

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-groups-api-openapi.yml Raw ↑
openapi: 3.0.1
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:
  schemas:
    ProtectionGroupsVolumes:
      allOf:
      - $ref: '#/components/schemas/_context'
      - type: object
        properties:
          group:
            $ref: '#/components/schemas/_reference'
          member:
            $ref: '#/components/schemas/_protectionGroupsVolumesMember'
    ProtectionGroupResponse:
      type: object
      properties:
        items:
          description: 'Displays a list of all items after filtering.

            If applicable, the values are displayed for each name.

            If `total_only=true`, the `items` list will be empty.

            '
          type: array
          items:
            $ref: '#/components/schemas/ProtectionGroup'
    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:
            de

# --- 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