API Explorer
API Explorer
Introduction
What's New
Appliance Management
Application Data Management
Asset Management
Asset Metadata
Authentication and Authorization
Cloud Disaster Recovery
Compliance
Copy Management
Credentials Management
Discovery
File Level Restore
Installation
Inventory Source Management
Kubernetes Data Management
Licenses Management
Location Management
Log Management
Monitoring
Protection Policies
Recovery and Reuse Management
Remote Service
Search Clusters
Secrets Manager
Server Disaster Recovery
Storage Management
Telemetry Setting
Upgrade
User Security Management
Virtual Machine Data Management
Whitelist Management

Create protection policy

This document describes how to create a protection policy to protect your data.

The following APIs are provided:

REST API Description
POST /api/v2/protection-policies Create a protection policy
POST /api/v2/protection-policies/{id}/asset-assignments Add assets to the protection policy
POST /api/v2/protection-policies/{id}/asset-unassignments Delete assets from the protection policy
GET /api/v2/protection-policies Get generated protection policies
GET /api/v2/activities Retrieve a list of activities

Before creating the protection policy, collect results from the following APIs calls:

REST API Description Extracted ID samples
GET /api/v2/assets Retrieve a list of assets, and select a list of IDs from them that you want to add to the protection policy. ["3d43deca-3ff6-4d1a-83ff-5ab5dbb3147c", "235f964b-e2a5-4572-9a34-734b0f4a4ac9"]
GET /api/v2/storage-systems Find a storage system ID for storing the backup. "96ad5064-b558-453c-91f7-c2977ce06308"
GET /api/v2/service-level-agreements Find the Service Level Agreement ID to associate with the protection policy. "7c9559eb-6a01-4754-8dc4-63a48678d09d"

Log in

Use the login API call to retrieve the access token. See the Authentication and authorization for more information.

Add a PowerProtect DD

Add a PowerProtect DD as described in How to add a PowerProtect DD.

Once the PowerProtect DD is added, the following API enables you to get the storage system details.

GET /api/v2/storage-systems?filter=type in ("DATA_DOMAIN_SYSTEM")

The response is similiar to this:

{
  "content": [
      {
        "id": "95e6da67-e661-4c68-a7ff-73f4dd7d35f4",
        "name": "paas-ddve-41.paas.local",
        "type": "DATA_DOMAIN_SYSTEM",
        ...
      }
  ]
}

** id is used as the target PowerProtect DD storageSystemId in the request to create a protection policy.

Add a vCenter

Add a vCenter as described in How to add a vCenter.

Discover assets

Discover assets as described in Discover new assets.

Protection policy schedule

For scheduling options, use HOURLY, DAILY, WEEKLY, MONTHLY frequencies. The following JSON examples illustrate how to create a protection policy schedule.

JSON example to back up every 12 hours (interval + frequency) from UTC time 12:00 (startTime) to 22:00 (startTime + duration PT10H):

"schedule": {
    "frequency": "HOURLY",
    "interval": 12,
    "startTime": "2019-12-05T12:00:00Z",
    "duration": "PT10H"
}

JSON example to back up every day from UTC time 12:00 to 22:00:

"schedule": {
    "frequency": "DAILY",
    "startTime: "2019-12-05T12:00:00Z",
    "duration: "PT10H",
}

JSON example to back up weekly on SUNDAY, MONDAY, TUESDAY, and WEDNESDAY from UTC time 12:00 to 22:00:

"schedule" : {
    "frequency" : "WEEKLY",
    "startTime" : "2019-12-05T12:00:00Z",
    "duration" : "PT10H",
    "weekDays" : [ "SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY" ]
}

JSON example to back up on the first day of every month, from UTC time 12:00 to 22:00:

"schedule" : {
    "frequency" : "MONTHLY",
    "dayOfMonth" : 1,
    "startTime" : "2019-12-05T12:00:00Z",
    "duration" : "PT10H",
}

JSON example to back up on the last day of every month, from UTC time 12:00 to 22:00:

"schedule" : {
    "frequency" : "MONTHLY",
    "genericDay" : "LAST",
    "startTime" : "2019-12-05T12:00:00Z",
    "duration" : "PT10H",
}

JSON example to back up on the first week of every month, from UTC time 12:00 to 22:00:

"schedule" : {
    "frequency" : "MONTHLY",
    "genericDay" : "FIRST",
    "startTime" : "2019-12-05T12:00:00Z",
    "duration" : "PT10H",
    "weekDays" : [ "SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY" ],
}

JSON example to back up on the LAST week of every month, from UTC time 12:00 to 22:00:

"schedule" : {
    "frequency" : "MONTHLY",
    "genericDay" : "LAST",
    "startTime" : "2019-12-05T12:00:00Z",
    "duration" : "PT10H",
    "weekDays" : [ "SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY" ],
}

JSON example to support different schedules for full, differential, and log backups for Oracle, SQL, and SAP HANA databases:

"operations": [
    {
        "type": "FULL",
        "schedule": {
            "frequency": "HOURLY",
            "startTime": "2020-11-27T00:00:00Z",
            "duration": "PT24H",
            "interval": 6
        },
        "backupType": "FULL"
    },
    {
        "type": "LOG",
        "schedule": {
            "frequency": "MINUTELY",
            "startTime": "2020-11-28T07:50:00Z",
            "duration": "PT24H",
            "interval": 10
        },
        "backupType": "LOG"
    }
]

Update protection policy schedule

To update the protection policy schedule, use this call:

PUT /api/v2/protection-policies/{id}

The {id} is the protection policy ID that you obtained from the create protection policy call. In the PUT body, update the “schedule” as the previous section describes.

Assign assets to the protection policy

With the protection policy created, assign assets to it by using this call:

POST /api/v2/protection-policies/{id}/asset-assignments

In this POST example, the {id} is the protection policy ID that you obtained from the create protection policy call. The POST body looks similar to this example:

["3d43deca-3ff6-4d1a-83ff-5ab5dbb3147c", "235f964b-e2a5-4572-9a34-734b0f4a4ac9"]

The array of IDs is what you retrieved from the list assets API call.

Unassign assets to the protection policy

You can unassign assets in the protection policy by using this call:

POST /api/v2/protection-policies/{id}/asset-unassignments

In this POST example, the {id} is the protection policy ID that you obtained from the previous create protection policy call. The POST body looks similar to this example:

["3d43deca-3ff6-4d1a-83ff-5ab5dbb3147c", "235f964b-e2a5-4572-9a34-734b0f4a4ac9"]

The array of IDs is what you retrieved from: GET /api/v2/protection-policies/{id}/asset-assignments

Monitor configurations and protections

To monitor the activities of this protection policy, you can use the following API call:

GET /api/v2/activities

You can use a filter (see the tutorial on filtering the results) to retrieve only the activities that you are interested in.

For example, to get the top level (JOB_GROUP) activities that are associated with the protection actions that are either queued or running:

GET /api/v2/activities?filter=state in ("RUNNING","QUEUED") and protectionPolicy.id eq "917e9315-153e-4e5f-bc49-c322d144ef8e" and classType eq "JOB_GROUP" and category eq "PROTECT"

Next, you can access the JOB/TASK activities based on the returning activity ID (for example, cca0b9e2-b06b-4265-949d-10b79019e60b):

GET /api/v2/activities?filter=parentId eq "cca0b9e2-b06b-4265-949d-10b79019e60b"