Pure Storage · Schema

ProtectionGroup

ProtectionGroup schema from FlashArray REST API

StorageData StorageFlash StorageEnterprise StorageCloud StorageObject StorageFile StorageBlock StorageKubernetes StorageInfrastructure

Properties

Name Type Description
context object The context in which the operation was performed. Valid values include a reference to any array which is a member of the same fleet or to the fleet itself. Other parameters provided with the request,
id string A globally unique, system-generated ID. The ID cannot be modified and cannot refer to another resource.
name string A user-specified name. The name must be locally unique and can be changed.
destroyed boolean Has this protection group been destroyed? To destroy a protection group, patch to `true`. To recover a destroyed protection group, patch to `false`. If not specified, defaults to `false`.
eradication_config object The configuration of the eradication feature.
host_count integer Number of hosts in this protection group.
host_group_count integer Number of host groups in this protection group.
is_local boolean If set to `true`, the protection group belongs to the local array. If set to `false`, the protection group belongs to the remote array.
pod object The pod in which the protection group resides.
replication_schedule object The schedule settings for asynchronous replication.
retention_lock string The valid values are `ratcheted` and `unlocked`. The default value for a newly created protection group is `unlocked`. Set `retention_lock` to `ratcheted` to enable SafeMode restrictions on the protec
snapshot_schedule object The schedule settings for protection group snapshots.
source object The array or pod on which the protection group was created.
source_retention object The retention policy for the source array of the protection group.
space object Displays provisioned size and physical storage consumption data for each protection group.
target_count integer The number of targets to where this protection group replicates.
target_retention object The retention policy for the target(s) of the protection group.
time_remaining integer The amount of time left until the destroyed protection group is permanently eradicated. Measured in milliseconds. Before the `time_remaining` period has elapsed, the destroyed protection group can be
volume_count integer The number of volumes in the protection group.
workload object The reference to the workload managing the resource. The `name` and `configuration` values may display as the string `(unknown)` briefly following a failover.
View JSON Schema on GitHub

JSON Schema

flasharray-rest-api-protection-group-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "ProtectionGroup",
  "description": "ProtectionGroup schema from FlashArray REST API",
  "$id": "https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-schema/flasharray-rest-api-protection-group-schema.json",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "context": {
          "description": "The context in which the operation was performed.\n\nValid values include a reference to any array which is a member of the same fleet\nor to the fleet itself.\n\nOther parameters provided with the request, such as names of volumes or snapshots,\nare resolved relative to the provided `context`.\n",
          "readOnly": true,
          "title": "FixedReferenceWithType",
          "allOf": [
            {
              "$ref": "#/components/schemas/_fixedReferenceWithType"
            }
          ]
        }
      }
    },
    {
      "description": "An ordinary (as opposed to built-in) resource that can be created, named,\nrenamed or deleted by the user. This might be a virtual resource (e.g., a\nfile system), or correspond to something in the environment, like a host or a\nserver.\n",
      "type": "object",
      "properties": {
        "id": {
          "description": "A globally unique, system-generated ID.\nThe ID cannot be modified and cannot refer to another resource.\n",
          "type": "string",
          "readOnly": true
        },
        "name": {
          "description": "A user-specified name.\nThe name must be locally unique and can be changed.\n",
          "type": "string"
        }
      }
    },
    {
      "description": "A protection group defines a set of either volumes, hosts, or host groups\n(called members) that are protected together through snapshots with\npoint-in-time consistency across the member volumes. The members within the\nprotection group have common data protection requirements and share the\nsame snapshot, replication, and retention schedules.\n",
      "type": "object",
      "properties": {
        "destroyed": {
          "description": "Has this protection group been destroyed?\nTo destroy a protection group, patch to `true`.\nTo recover a destroyed protection group, patch to `false`.\nIf not specified, defaults to `false`.\n",
          "type": "boolean"
        },
        "eradication_config": {
          "description": "The configuration of the eradication feature.",
          "type": "object",
          "properties": {
            "manual_eradication": {
              "description": "Manual eradication status of objects like protection group and\nprotection group snapshots.\nIf manual_eradication is `disabled`, you cannot eradicate objects.\nValues include `disabled` and `enabled`.\n",
              "type": "string",
              "readOnly": true,
              "example": "enabled"
            }
          },
          "x-readOnly": true
        },
        "host_count": {
          "description": "Number of hosts in this protection group.",
          "type": "integer",
          "format": "int64",
          "readOnly": true,
          "example": 3
        },
        "host_group_count": {
          "description": "Number of host groups in this protection group.",
          "type": "integer",
          "format": "int64",
          "readOnly": true,
          "example": 3
        },
        "is_local": {
          "description": "If set to `true`, the protection group belongs to the local array.\nIf set to `false`, the protection group belongs to the remote array.\n",
          "type": "boolean",
          "readOnly": true
        },
        "pod": {
          "description": "The pod in which the protection group resides.",
          "title": "FixedReference",
          "allOf": [
            {
              "$ref": "#/components/schemas/_fixedReference"
            }
          ]
        },
        "replication_schedule": {
          "description": "The schedule settings for asynchronous replication.",
          "title": "Replication_schedule",
          "allOf": [
            {
              "$ref": "#/components/schemas/_replication_schedule"
            }
          ]
        },
        "retention_lock": {
          "description": "The valid values are `ratcheted` and `unlocked`.\nThe default value for a newly created protection group is `unlocked`.\nSet `retention_lock` to `ratcheted` to enable SafeMode restrictions on the protection group.\nContact Pure Technical Services to change `retention_lock` to `unlocked`.\n",
          "type": "string",
          "example": "unlocked"
        },
        "snapshot_schedule": {
          "description": "The schedule settings for protection group snapshots.",
          "title": "Snapshot_schedule",
          "allOf": [
            {
              "$ref": "#/components/schemas/_snapshot_schedule"
            }
          ]
        },
        "source": {
          "description": "The array or pod on which the protection group was created.",
          "title": "FixedReference",
          "allOf": [
            {
              "$ref": "#/components/schemas/_fixedReference"
            }
          ]
        },
        "source_retention": {
          "description": "The retention policy for the source array of the protection group.\n",
          "title": "RetentionPolicy",
          "allOf": [
            {
              "$ref": "#/components/schemas/_retentionPolicy"
            }
          ]
        },
        "space": {
          "description": "Displays provisioned size and physical storage consumption data\nfor each protection group.\n",
          "title": "Space",
          "allOf": [
            {
              "$ref": "#/components/schemas/_space"
            }
          ]
        },
        "target_count": {
          "description": "The number of targets to where this protection group replicates.",
          "type": "integer",
          "format": "int64",
          "readOnly": true,
          "example": 3
        },
        "target_retention": {
          "description": "The retention policy for the target(s) of the protection group.\n",
          "title": "RetentionPolicy",
          "allOf": [
            {
              "$ref": "#/components/schemas/_retentionPolicy"
            }
          ]
        },
        "time_remaining": {
          "description": "The amount of time left until the destroyed protection group is permanently eradicated.\nMeasured in milliseconds.\nBefore the `time_remaining` period has elapsed, the destroyed protection group\ncan be recovered by setting `destroyed=false`.\n",
          "type": "integer",
          "format": "int64",
          "readOnly": true
        },
        "volume_count": {
          "description": "The number of volumes in the protection group.",
          "type": "integer",
          "format": "int64",
          "readOnly": true,
          "example": 3
        },
        "workload": {
          "description": "The reference to the workload managing the resource. The `name` and `configuration` values\nmay display as the string `(unknown)` briefly following a failover.\n",
          "allOf": [
            {
              "$ref": "#/components/schemas/_fixedReferenceWithType"
            },
            {
              "type": "object",
              "properties": {
                "configuration": {
                  "description": "The name of the preset configuration object.\n",
                  "type": "string",
                  "readOnly": true
                }
              }
            }
          ]
        }
      }
    }
  ]
}

Work with this as data

Every JSON Schema 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 schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • 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 JSON Schema
curl "https://apis.io/api/v1/json-schemas/flasharray-rest-api-protection-group"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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.