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

Manual replication

Apart from scheduled replication, PowerProtect Data Manager also supports manual replication at the protection policy level, either for all assets or selected assets within one protection policy.

The following API is provided:

POST /api/v2/protection-policies/{id}/protections

Note: Manual backup uses the same API, but with a different payload.

The API request body contains these configuration options:

Option Description
assetIds The list of asset IDs for manual replication. If the asset list is null or empty, manual replication is triggered for all assets within the protection policy.
stages An array of replication stages within the protection policy.
stages.id The ID of the replication stage.
stages.retention The retention time for the copies that are created by the manual replication.

The steps in a typical manual replication workflow include:

Query policy replication stages

To query the replication stages of a given protection policy, use this call:

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

The {id} is the protection policy ID, which is used to trigger the manual replication.

The response of the API call is similiar to this example:

OK (200)
{
  "id": "4a1bc892-d25f-4414-992e-389e7c81d2b9",
  "name": "ad-hoc-sample",
  ...
  "stages": [{
      "id": "4b881666-31c1-3c4b-24ad-7f7d06fe50a4",
      "type": "REPLICATION",
      "sourceStageId": "0ebe6e66-892e-b9fd-51b3-7d40bd8fd7ee",
      ...
    }]
}

The replication stage ID is 4b881666-31c1-3c4b-24ad-7f7d06fe50a4. Its stage type is REPLICATION.

Note: Only replication stages whose source stage is the primary backup stage are valid candidates for manual replication. Replication stages whose source stage is the promotion stage are not valid for manual replication because they do not create new copies.

Query assigned assets

To perform manual replication for specified assets, you need the asset IDs. To retrieve all assets that are assigned to a protection policy, follow this example:

curl --request GET \
  --url 'https://<your-ppdm-server>:8443/api/v2/protection-policies/<policy-id>/asset-assignments' \
  --header 'authorization: Bearer <access-token>'

This example retrieves all the assets that belong to the policy with the ID of <policy-id>.

The query response is similar to this example:

OK (200)

{
  "page": { ... },
  "content": [
    {
      "id": "52a21189-97e0-5a89-96b6-8883bdd427ca",
      "name": "testAsset",
      ...
    },
    ...
  ]
}

From the response, you obtain the asset ID: 52a21189-97e0-5a89-96b6-8883bdd427ca.

Run manual replication for selected assets

Once you have the asset IDs and policy replication stage IDs, you can run the manual replication for those selected assets. A sample request looks like this example:

curl --request POST \
  --'https://<your-ppdm-server>:844/api/v2/protection-policies/<policy_id>/protections' \
  --header 'Authorization: Bearer <access-token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "assetIds": ["52a21189-97e0-5a89-96b6-8883bdd427ca"],
    "stages": [{
        "id": "4b881666-31c1-3c4b-24ad-7f7d06fe50a4",
        "retention": {
          "interval": 14,
          "unit": "DAY"
        }]
    }]
}'

The response is similar to this example:

(202) OK
{
    "results": [{
        "stageId": "4b881666-31c1-3c4b-24ad-7f7d06fe50a4",
        "status": 200,
        "activityId": "0a4a5672-2774-4a9d-b428-6d941df37818"
    }]
}

Run manual replication for all assets

To run a manual replication for all assets within a protection policy, set assetIds to null. A sample request looks like this example:

curl --request POST \
  --url https://<your-ppdm-server>:8443/api/v2/protection-policies/<policy_id>/protections \
  --header 'content-type: application/json' \
  --header 'authorization: Bearer <access-token>' \
  --data '{
    "assetIds": null,
    "stages": [{
        "id": "4b881666-31c1-3c4b-24ad-7f7d06fe50a4",
        "retention": {
          "interval": 14,
          "unit": "DAY"
        }]
    }] 
}'

The response is similar to this example:

(202) OK
{
    "results": [{
        "stageId": "4b881666-31c1-3c4b-24ad-7f7d06fe50a4",
        "status": 200,
        "activityId": "0a4a5672-2774-4a9d-b428-6d941df37818"
    },
    {
        "stageId": "bbdcaaa0-108c-49e4-9be8-86b7f4f69850",
        "status": 200,
        "activityId": "b276c33c-b2e4-4c46-b111-495319918c90"
   }]
}