API Explorer
API Explorer
Getting Started
Release Notes
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 backup

Apart from a scheduled backup, PowerProtect Data Manager also supports manual backups 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

Notes:

The legacy API for manual backup POST /api/v2/protection-policies/{id}/backups is deprecated.

Manual replication 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 backup. If the asset list is null or empty, a manual backup is triggered for all assets within the protection policy.
stages.id The ID of the primary backup stage.
stages.operations.backupType The backup type for the manual backup. The value can be one of SYNTHETIC_FULL, FULL, DIFFERENTIAL, LOG, INCREMENTAL, or CUMULATIVE. Each asset type has its supported backup types. The provided backup type must match the supported backup types.
stages.retention The retention time for the copies that are created by the manual backup.

The steps in a typical manual backup workflow include:

Query policy primary backup stage

To query the primary backup stage of a given protection policy, use this call:

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

The {id} is the protection policy ID that is used to trigger the manual backup.

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": "PROTECTION",
      ...
    }]
}

The primary backup stage ID is 4b881666-31c1-3c4b-24ad-7f7d06fe50a4. Its stage type is PROTECTION.

Query assigned assets

To run a manual backup for specified assets, you need the asset IDs. To retrieve all assets 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 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 backup for selected assets

Once you have the policy primary backup stage ID and asset IDs, you can run the manual backup for those 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": 1,
          "unit": "DAY"
        },
        "operations": [{ 
          "backupType": "FULL"
        }]
    }]
}'

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 backup for all assets

To run a manual backup 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": 1,
          "unit": "DAY"
        },
        "operations": [{ 
          "backupType": "FULL"
        }]
    }] 
}'

The response is similar to this example:

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