VAST Data Protection Policies API
A protection policy is a reusable configuration that defines a schedule for taking snapshots and optionally replicating them to a specified async replication peer or S3 replication peer.
A protection policy is a reusable configuration that defines a schedule for taking snapshots and optionally replicating them to a specified async replication peer or S3 replication peer.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/vastdata-protection-policies-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
description: VAST Management API definition
title: VAST API Swagger Schema Protectionpolicies API
version: '1.0'
security:
- ApiToken: []
tags:
- description: A protection policy is a reusable configuration that defines a schedule for taking snapshots and optionally replicating them to a specified async replication peer or S3 replication peer.
name: Protection Policies
paths:
/protectionpolicies/:
get:
description: This endpoint lists protection policies.
operationId: protectionpolicies_list
parameters:
- in: query
name: page
schema:
type: string
- description: Filter by name of replication peer
in: query
name: target__name
schema:
type: string
- description: Filter by protection policy name
in: query
name: name
schema:
type: string
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/ProtectionPolicy'
title: Protection Policies
type: array
description: protection policy information
summary: Return Protection Policies
tags:
- Protection Policies
post:
description: This endpoint creates a protection policy.
operationId: protectionpolicies_create
requestBody:
content:
application/json:
schema:
properties:
big_catalog:
description: Indicates if Protection Policy will be used for VAST Catalog. There may only be 1 such policy.
type: boolean
clone_type:
description: Specify the type of data protection. CLOUD_REPLICATION is S3 backup. LOCAL means local snapshots without replication.
enum:
- LOCAL
- NATIVE_REPLICATION
- CLOUD_REPLICATION
type: string
x-cli-header: Clone Type
frames:
description: Defines the schedule for snapshot creation and the local and remote retention policies.
example: every 90m start-at 2025-07-27 20:10:35 keep-local 10h keep-remote 30d
items:
type: object
type: array
x-cli-header: Schedule
guid:
description: Do not specify this parameter.
type: string
id:
description: Do not specify this parameter.
type: integer
x-cli-header: ID
indestructible:
description: 'Set to true to protect the protection policy from accidental or malicious deletion with the indestructibility feature. If this setting is enabled, authorized unlocking of the cluster''s indestructibility mechanism is required to do any of the following: modifying the policy, deleting the policy or disabling this setting.'
type: boolean
name:
type: string
x-cli-header: Name
prefix:
description: The prefix for names of snapshots created by the policy
type: string
remote_tenant_guid:
description: remote tenant guid
type: string
target_object_id:
description: ID of the remote peer. Specify ID of a ReplicationTarget (aka S3 replication peer) if clone_type is CLOUD_REPLICATION. Specify the ID of a NativeReplicationRemoteTarget if clone_type is NATIVE_REPLICATION.
type: integer
tenant_id:
description: Tenant ID
type: integer
required:
- name
- prefix
- frames
- clone_type
type: object
x-originalParamName: protectionPolicyCreateParams
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/ProtectionPolicy'
description: ''
summary: Create Protection Policy
tags:
- Protection Policies
/protectionpolicies/{id}/:
delete:
description: This endpoint deletes a protection policy.
operationId: protectionpolicies_delete
parameters:
- description: Protection Policy ID
in: path
name: id
required: true
schema:
type: string
responses:
'204':
description: Deleted
summary: Delete Protection Policy
tags:
- Protection Policies
get:
description: This endpoint returns details of a specified protection policy.
operationId: protectionpolicies_read
parameters:
- description: Protection Policy ID
in: path
name: id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ProtectionPolicy'
description: ''
summary: Return Details of a Protection Policy
tags:
- Protection Policies
patch:
description: This endpoint modifies a protection policy.
operationId: protectionpolicies_partial_update
parameters:
- description: Protection Policy ID
in: path
name: id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
big_catalog:
description: Indicates if Protection Policy will be used for VAST Catalog. There may only be 1 such policy.
type: boolean
clone_type:
description: Specify the type of data protection. CLOUD_REPLICATION is S3 backup. LOCAL means local snapshots without replication.
enum:
- LOCAL
- NATIVE_REPLICATION
- CLOUD_REPLICATION
type: string
x-cli-header: Clone Type
frames:
description: Defines the schedule for snapshot creation and the local and remote retention policies.
example: every 90m start-at 2025-07-27 20:10:35 keep-local 10h keep-remote 30d
items:
type: object
type: array
x-cli-header: Schedules
guid:
description: Do not specify this parameter.
type: string
id:
description: Do not specify this parameter.
type: integer
x-cli-header: ID
indestructible:
description: 'Set to true to protect the protection policy from accidental or malicious deletion with the indestructibility feature. If this setting is enabled, authorized unlocking of the cluster''s indestructibility mechanism is required to do any of the following: modifying the policy, deleting the policy or disabling this setting.'
type: boolean
name:
description: Name
type: string
x-cli-header: Name
prefix:
description: The prefix for names of snapshots created by the policy
type: string
target_object_id:
description: ID of the remote peer. Specify ID of a ReplicationTarget (aka S3 replication peer) if clone_type is CLOUD_REPLICATION. Specify the ID of a NativeReplicationRemoteTarget if clone_type is NATIVE_REPLICATION.
type: integer
type: object
x-originalParamName: protectionPolicyModifyParams
responses:
'200':
description: ''
summary: Modify a Protection Policy
tags:
- Protection Policies
components:
schemas:
RemoteTenant:
properties:
guid:
description: Remote Tenant guid
type: string
name:
description: Remote Tenant name
type: string
type: object
PartialTenantInfo:
properties:
id:
description: Tenant ID
type: integer
name:
description: Tenant Name
type: string
type: object
ProtectionPolicy:
properties:
clone_type:
description: Specify the type of data protection. CLOUD_REPLICATION is S3 backup. LOCAL means local snapshots without replication.
enum:
- LOCAL
- NATIVE_REPLICATION
- CLOUD_REPLICATION
type: string
x-cli-header: Clone Type
created:
type: string
frames:
description: Defines the schedule for snapshot creation and the local and remote retention policies.
example: every 90m start-at 2025-07-27 20:10:35 keep-local 10h keep-remote 30d
items:
$ref: '#/components/schemas/Frame'
type: array
x-cli-header: Schedule
guid:
description: unique identifier
type: string
handle:
type: string
id:
type: integer
x-cli-header: ID
indestructible:
description: 'Protected from accidental or malicious deletion by the indestructibility mechanism. Authorized unlocking of the cluster''s indestructibility mechanism is required to do any of the following: deleting the protection policy, modifying the protection policy, or disabling this setting.'
type: boolean
internal:
type: boolean
is_local:
type: boolean
is_on_schedule:
type: boolean
name:
type: string
x-cli-header: Name
native_replication_remote_target:
type: string
prefix:
description: The prefix of the snapshot that will be created
type: string
x-cli-header: Snapshot Prefix
pretty_schedules:
items:
type: string
type: array
remote_tenant:
$ref: '#/components/schemas/RemoteTenant'
replication_target:
type: string
schedule_miss:
type: integer
state:
description: State of Protection Policy
enum:
- DELETE_PENDING
- working
- delete_pending
type: string
sync_interval:
description: A sync point is a common restore point for all group members. This value guarantees such a sync point exists in this duration. In other words, this is the maximal sync duration gap between other members.
type: integer
target_guid:
type: string
target_name:
description: Target Name
type: string
x-cli-header: Replication Peer
target_object_id:
description: target object id
type: integer
tenant:
$ref: '#/components/schemas/PartialTenantInfo'
tenant_id:
type: integer
title:
type: string
x-cli-header: Name
url:
type: string
required:
- name
- prefix
- frames
- clone_type
type: object
Frame:
properties:
every:
example: 30m
type: string
keep-local:
example: 30m
type: string
keep-remote:
example: 30m
type: string
start-at:
example: '2021-02-03 01:02:03'
type: string
type: object
securitySchemes:
ApiToken:
description: Send current valid API token in an Authorization header with format Api-Token <token>.
in: header
name: ApiToken
type: apiKey
basicAuth:
description: Basic authentication using VMS user name and password
scheme: basic
type: http