VPGs API

Important:  This document is being phased out and does not contain up-to-date information. For updated API documentation for Zerto versions 9.5 and later, see ZVM REST API - Swagger.

You can also access Swagger from the ZVM: click the menu button () on the top right and select APIs or navigate to https://<ZVM IP>:9669/swagger/index.html in a Windows ZVM or https://<ZVM IP>/management/api/swagger/index.html in ZVM Appliance.

/v1/vpgs returns information about VPGs or creates or performs actions on a specific VPG.

HTTP Methods

Security

See Also

Format

The following APIs are available:

VPGs: GET
VPGs: POST
VPGs: DELETE
Purpose Method URL
Information for all VPGs GET https://zvm_ip:port/v1/vpgs
Information for one VPG GET https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}
Checkpoints for a VPG GET https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/checkpoints
Checkpoints Summary for a VPG GET Deprecated
Checkpoints Statistics for a VPG GET https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/checkpoints/stats
Valid values for VPG entities GET https://zvm_ip:port/v1/vpgs/entitytypes
Valid values for failover commit policies GET https://zvm_ip:port/v1/vpgs/failovercommitpolicies
Valid values for failover shutdown policies GET https://zvm_ip:port/v1/vpgs/failovershutdownpolicies
Valid values for VPG priorities GET https://zvm_ip:port/v1/vpgs/priorities
Valid values for failover retention policies GET https://zvm_ip:port/v1/vpgs/retentionpolicies
Valid values for VPG statuses GET https://zvm_ip:port/v1/vpgs/statuses
Valid values for VPG substatuses GET https://zvm_ip:port/v1/vpgs/substatuses
Create a VPG POST https://zvm_ip:port/v1/vpgs
Deprecated. See VPG Settings: POST
Insert a tagged checkpoint POST https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/Checkpoints
Clone a VPG POST https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/CloneStart
Abort a VPG clone POST https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/CloneAbort
Failover a VPG POST https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/Failover
Commit a VPG failover POST https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/FailoverCommit
Rollback a VPG failover POST https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/FailoverRollback
Test a VPG POST https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/FailoverTest
Stop a VPG test POST https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/FailoverTestStop
Force synchronize a VPG POST https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/forcesync
Move Operation POST https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/move
Rollback Move VPG POST https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/moveRollback
Commit Move VPG POST https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/moveCommit
Pause VPG protection POST https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/pause
Resume VPG protection POST https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/resume
Delete a VPG DELETE https://zvm_ip:port/v1/vpgs/{VpgIdentifier}

HTTP Methods

GET, POST, DELETE

Security

The API is exposed over HTTPS. Client code must use the x-zerto-session HTTP authorization header.

See Also

Starting a session: Session: POST

View the results of the create VPG operation: Events API

Return the datastore identifier: Datastores

Return the resource pool identifier: VMware only: Resource Pools

Return the source and target site identifiers: Virtualization sites

Return the vCenter vApp identifier to protect: Unprotected VMs

vCD APIs: Managing vCD APIs

Return the list of unprotected virtual machine identifiers: Unprotected VMs

Retrieve details of the task being performed: Tasks API

Manage a VPG: VPG Management API :

Format

Json, XML

VPGs: GET

Returns information about VPGs.

URL
All VPGs https://zvm_ip:port/v1/vpgs
Filtered VPGs https://zvm_ip:port/v1/vpgs?name={NAME}&status={STATUS}&substatus={SUBSTATUS}&protectedSiteType={PROTECTEDSITETYPE}&recoverySiteType={RECOVERYSITETYPE}&protectedSiteIdentifier={PROTECTEDSITEIDENTIFIER}&recoverySiteIdentifier={RECOVERYSITEIDENTIFIER}&organizationName={ORGNAME}&zorgIdentifier={ZORGIDENTIFIER}&priority={PRIORITY}&serviceProfileIdentifier={SERVICEPROFILEIDENTIFIER}
Single VPG https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}
VPG Checkpoints https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/checkpoints?startDate={STARTDATE}&endDate={ENDDATE}
VPG Checkpoints summary Deprecated
VPG Checkpoints stats https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/checkpoints/stats
Valid VPG entities https://zvm_ip:port/v1/vpgs/entitytypes
Valid failover commit policies https://zvm_ip:port/v1/vpgs/failovercommitpolicies
Valid failover shutdown policies https://zvm_ip:port/v1/vpgs/failovershutdownpolicies
Valid VPG priorities https://zvm_ip:port/v1/vpgs/priorities
Valid failover retention policies https://zvm_ip:port/v1/vpgs/retentionpolicies
Valid VPG statuses https://zvm_ip:port/v1/vpgs/statuses
Valid VPG substatuses https://zvm_ip:port/v1/vpgs/substatuses

Where:

Filters for: All VPGs
zvm_ip The IP address of the Zerto Virtual Manager where the API is run.
port The port to access the Zerto Virtual Manager. The default port is 9669.
protectionGroupIdentifier The identifier of the VPG for which information is retrieved.
Filters Filters are optional and any combination of filters is valid. When no filter is specified, all VPGs are returned. Filters are not case-sensitive.
 
Filter
Description
  name The name of the VPG.
  status The status of the VPG. Possible values are:

0 or Initializing– The VPG is being initialized. This includes when a VPG is created, and during the initial sync between sites.
1 or MeetingSLA: The VPG is meeting the SLA specification.
2 or NotMeetingSLA: The VPG is not meeting the SLA specification for both the journal history and RPO SLA settings.
3 or RpoNotMeetingSLA: The VPG is not meeting the SLA specification for the RPO SLA setting.
4 or HistoryNotMeetingSLA: The VPG is not meeting the SLA specification for the journal history.
5 or FailingOver: The VPG is in a Failover operation.
6 or Moving: The VPG is in a Move operation.
7 or Deleting: The VPG is being deleted.
8 or Recovered: The VPG has been recovered.
  SubStatus The substatus of the VPG, for example the VPG is in a bitmap sync. For the description of substatuses, refer to the Zerto Virtual Manager Administration Guide. Possible values are

0 or None
1 or InitialSync
2 or Creating
3 or VolumeInitialSync
4 or Sync
5 or RecoveryPossible
6 or DeltaSync
7 or NeedsConfiguration
8 or Error
9 or EmptyProtectionGroup
    10 or DisconnectedFromPeerNoRecoveryPoints
11 or FullSync
12 or VolumeDeltaSync
13 or VolumeFullSync
14 or FailingOverCommitting
15 or FailingOverBeforeCommit
16 or FailingOverRollingBack
17 or Promoting
18 or MovingCommitting
19 or MovingBeforeCommit
    20 or MovingRollingBack
21 or Deleting
22 or PendingRemove
23 or BitmapSync
24 or DisconnectedFromPeer
25 or ReplicationPausedUserInitiated
26 or ReplicationPausedSystemInitiated
27 or RecoveryStoragePolicyError
29 or RollingBack
    30 or RecoveryStorageError
31 or JournalStorageError
32 or VmNotProtectedError
33 or JournalOrRecoveryMissingError
34 or AddedVmsInInitialSync
35 or ReplicationPausedForMissingVolume

36 or StoppingFotFailure
37 or RollingBackFailOverLiveFailure
38 or RollingBackMoveFailure
39 or SplittingCommitting
40 or PreparePreseed

  protectedSiteType The protected site environment. This filter behaves in the same way as the sourceType filter. Possible values are:

0 or VCVpg: The VPG is protecting virtual machines in a VMware vCenter Server.
1 or VCvApp: Deprecated. See VCDvApp.
2 or VCDvApp: The VPG is protecting a VMware vCloud Director vApp.
3 or PublicCloud: Not applicable.
4 or HyperV: The VPG is protecting virtual machines in Microsoft Hyper-V.
  recoverySiteType The recovery site environment. This filter behaves in the same way as the targetType filter. Possible values are:

0 or VCVpg: The VPG is recovering virtual machines to a VMware vCenter Server.
1 or VCvApp: Deprecated. See VCDvApp.
2 or VCDvApp: The VPG is recovering virtual machines to a VMware vCloud Director vApp.
3 or PublicCloud: The VPG is recovering virtual machines to a Public Cloud.
4 or HyperV: The VPG is recovering virtual machines to Microsoft Hyper-V.
  protectedSiteIdentifier The identifier of the protected site where the VPG virtual machines are protected.
  recoverySiteIdentifier The identifier of the recovery site where the VPG virtual machines are recovered.
  sourceSite Deprecated. See protectedSiteIdentifier.
  targetSite Deprecated. See recoverySiteIdentifier.
  sourceType Deprecated. See protectedSiteType.
  targetType Deprecated. See recoverySiteType.
  organizationName The ZORG for this VPG.
  zorgIdentifier The internal identifier for the ZORG.
  priority The VPG priority. Possible values are:

0 or Low: The VPG has a low priority for transferring data.
1 or Medium: The VPG has a medium priority for transferring data.
2 or High: The VPG has a high priority for transferring data.
  serviceProfileIdentifier The identifier of the service profile to use for the VPG when a Zerto Cloud Manager is used.
  backupEnabled

(deprecated)

True: The VPG is defined for both disaster recovery and for long term recovery via offsite backup.
False: The VPG is defined for disaster recovery only.

 

Filters for: Checkpoints
zvm_ip The IP address of the Zerto Virtual Manager where the API is run.
port The port to access the Zerto Virtual Manager. The default port is 9669.
protectionGroupIdentifier The identifier of the VPG for which information is retrieved.
Filters Filters are optional and any combination of filters is valid. When no filter is specified, all VPGs are returned. Filters are not case-sensitive.
 
Filter
Description
  startDate The start date of the checkpoint.
  endDate The end date of the checkpoint.
Request Body Using Json Format

The request body is empty.

Response In Json Format

The following is an example response Json body for https://zvm_ip:port/v1/vpgs and, without the array statement, for https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}.

[{
  "ActiveProcessesApi": {
    "RunningFailOverTestApi": {
      "Stage": "String content"
    }
  },
  "ActualRPO": 2147483647,
  "BackupEnabled": Boolean,
  "Entities": {
    "Protected":0,
    "Recovery":0,
    "Source": 0,
    "Target": 0
  },
  "FailSafeHistory": {
    "ActualFailSafeHistory":240,
    "ConfiguredFailSafeHistory": 240,
    "FailSafeDescription": ""
  },
  "HistoryStatusApi": {
    "ActualHistoryInMinutes": 1440,
    "ConfiguredHistoryInMinutes": 1440,
    "EarliestCheckpoint": {
      "CheckpointId": "203456",
      "Tag":null,
      "TimeStamp":"/Date(1474877983000)/",
  "IOPS": 2147483647,
  "LastTest": "/Date(928142400000+0300)/",
  "Link": {
    "href": "String content",
    "identifier": "String content",
    "rel": "String content",
    "type": "String content"
  },
  "Link__x007B_0_x007D_": {
    "href": "String content",
    "rel": "String content",
    "type": "String content"
  },
  "OrganizationName": "String content",
  "Priority": 0,
  "ProgressPercentage": 1.26743233E+15,
  "ProtectedSite": {
    "href": "String content",
    "identifier": "String content",
    "rel": "String content",
    "type": "String content"
  },
  "ProvisionedStorageInMB": 2147483647,
  "RecoverySite": {
    "href": "String content",
    "identifier": "String content",
    "rel": "String content",
    "type": "String content"
  },
  "ServiceProfile": {
    "href": "String content",
    "identifier": "String content",
    "rel": "String content",
    "type": "String content"
  },
  "ServiceProfileIdentifier": "String content",
  "ServiceProfileName": "String content",
  "SourceSite": "String content",
  "Status": 0,
  "SubStatus": 0,
  "TargetSite": "String content",
  "ThroughputInMB": 1.26743233E+15,
  "UsedStorageInMB": 2147483647,
  "VmsCount": 2147483647
  "VpgIdentifier": "String content"
  "VpgName": "String content",
  "Zorg": {
    "href": "String content",
    "identifier": "String content",
    "rel": "String content",
    "type": "String content"
  }
}]

The following is an example response Json body for https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/checkpoints?startDate={STARTDATE}&endDate={ENDDATE}.

[{
  "CheckpointId": "String content",
  "Tag": "String content",
  "TimeStamp": "\/Date(928142400000+0300)\/"
}]

The following is an example response Json body for https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/checkpoints/stats.

[{
  "Earliest": {
    "CheckpointId": "String content",
    "Tag": "String content",
    "TimeStamp": "\/Date(1479047837000)\/"
  },
  "Latest": {
    "CheckpointId": "String content",
    "Tag": "String content",
    "TimeStamp": "\/Date(1479047837000)\/"
  }]

The following is an example response Json body for https://zvm_ip:port/v1/vpgs/entitytypes.
https://zvm_ip:port/v1/vpgs/failovercommitpolicies,
https://zvm_ip:port/v1/vpgs/failovershutdownpolicies,
https://zvm_ip:port/v1/vpgs/priorities,
https://zvm_ip:port/v1/vpgs/retentionpolicies,
https://zvm_ip:port/v1/vpgs/statuses, and for
https://zvm_ip:port/v1/vpgs/substatuses.

["String content"]

XML Response Format

For the XML response format, see VPGs API GET Method Response Formats.

Response Values
VPGs

Response values for https://zvm_ip:port/v1/vpgs and for https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}.

Parameter Description
ActiveProcessApi The current stage of an operation being performed on the VPG.

RunningFailoverTestApi

The operation being performed.

Stage

The stage of the running operation:

InTest: The VPG is in a failover test operation.
Starting: The VPG virtual machines in the recovery site are being initialized for a failover test.
Stopping: The recovery site is being cleaned up after a failover test of the VPG.
ActualRPO The time since the last checkpoint was written to the journal in seconds. This should be less than the Target RPO Alert value specified for the VPG. A value of -1 means that the RPO has not been calculated.
BackupEnabled (deprecated) True: The VPG is defined for both disaster recovery and for long term recovery via offsite backup.
False: The VPG is defined for disaster recovery only.
ConfiguredRpoSeconds  
Entities The source type and target types where the VPG is protected and recovered.
The protected site environment. This parameter behaves in the same way as the Source parameter. Possible values are (Json/XML):

0/VCVpg: The VPG is protecting virtual machines in a VMware vCenter Server.
1/VCvApp: Deprecated. See VCDvApp.
2/VCDvApp: The VPG is protecting a VMware vCloud Director vApp.
3/PublicCloud: Not applicable.
4/HyperV: The VPG is protecting virtual machines in Microsoft Hyper-V.
The recovery site environment. This parameter behaves in the same way as the Target parameter. Possible values are (Json/XML):

0/VCVpg: The VPG is recovering virtual machines in a VMware vCenter Server.
1/VCvApp: Deprecated. See VCDvApp.
2/VCDvApp: The VPG is recovering a VMware vCloud Director vApp.
3/PublicCloud: The VPG is recovering virtual machines to a Public Cloud.
4/HyperV: The VPG is recovering virtual machines in Microsoft Hyper-V.

Source

Deprecated. See Protected.

Target

Deprecated. See Recovery.
FailSafeHistory Details of the journal’s healthy hours history.

ActualFailSafeHistory

The actual number of hours in a journal that were marked as healthy, in minutes.

ConfiguredFailSafeHistory

The configured number of hours that have been marked as healthy, in minutes. The default is 4 hours.

FailSafeDescription

 
HistoryStatusApi Details of the journal’s history.

ActualHistoryInMinutes

The actual journal history, in minutes.

ConfiguredHistoryInMinutes

The configured journal history, in minutes. The default value is 4 hours.

EarliestCheckpoint

The earliest checkpoint in a journal.

CheckpointId

The identifier of the checkpoint of the VPG.

Tag

The tag when the checkpoint was added manually.

TimeStamp

The date and time the checkpoint was written to the journal. The value can be converted to an understandable date using code similar to the following:

var date = new Date(jsonDate);

or code similar to the Perl code example, jsonDateToString($), in Managing vCD APIs.
IOPS The IO per second between all the applications running on the virtual machines in the VPG and the VRAs that sends a copy to the remote site for replication.
LastTest The date the last failover test occurred. The value can be converted to an understandable date using code similar to the following:

var date = new Date(jsonDate);

or code similar to the Perl code example, jsonDateToString($), in Managing vCD APIs
Link The link details.

href

The URL used.

identifier

The VPG identifier.

rel

The next path level of the API relative to the current path.

type

The API interface service.
Link The link details.

href

The URL used.

rel

The next path level of the API relative to the current path.

type

The API interface service.
OrganizationName The name of the organization set up in the Zerto Cloud Manager that uses a Managed Service Provider for recovery.
Priority The priority specified for the VPG. Possible values are (Json/XML):

0/Low: The VPG has a low priority for transferring data.
1/Medium: The VPG has a medium priority for transferring data.
2/High: The VPG has a high priority for transferring data.
ProgressPercentage The percentage of an operation completed on the VPG, such as a bitmap sync or updating the VPG.
ProtectedSite The protected site details.

href

The URL used.
The site identifier.

rel

The next path level of the API relative to the current path.

type

The API interface service.
ProvisionedStorageInMB The storage provisioned for the virtual machine in the recovery site.
RecoverySite The recovery site details.

href

The URL used.
The site identifier.

rel

The next path level of the API relative to the current path.

type

The type of site. Possible options are:

LocalSiteApi
PeerSiteApi
ServiceProfile The service profile details.

href

The URL used.

identifier

The service profile identifier.

rel

The next path level of the API relative to the current path.

type

The API interface service.
ServiceProfileIdentifier The identifier of the service profile to use for the VPG when a Zerto Cloud Manager is used.
ServiceProfileName The service profile name.
SourceSite Deprecated. See ProtectedSite > identifier.
Status The status of the VPG that contains the virtual machine. Possible values are (Json/XML):

0/Initializing– The VPG is being initialized. This includes when a VPG is created, and during the initial sync between sites.
1/MeetingSLA: The VPG is meeting the SLA specification.
2/NotMeetingSLA: The VPG is not meeting the SLA specification for both the journal history and RPO SLA settings, for example during a delta sync or when there is an error.
3/RpoNotMeetingSLA: The VPG is not meeting the SLA specification for the RPO SLA setting.
4/HistoryNotMeetingSLA: The VPG is not meeting the SLA specification for the journal history.
5/FailingOver: The VPG is in a Failover operation.
6/Moving: The VPG is in a Move operation.
7/Deleting: The VPG is being deleted.
8/Recovered: The VPG is recovered.
SubStatus The substatus of the VPG that contains the virtual machine, for example the VPG is in a bitmap sync. For the description of substatuses, refer to the Zerto Virtual Manager Administration Guide. Possible values are (Json/XML):

0/None
1/InitialSync
2/Creating
3/VolumeInitialSync
4/Sync
5/RecoveryPossible
6/DeltaSync
7/NeedsConfiguration
8/Error
9/EmptyProtectionGroup
  10/DisconnectedFromPeerNoRecoveryPoints
11/FullSync
12/VolumeDeltaSync
13/VolumeFullSync
14/FailingOverCommitting
15/FailingOverBeforeCommit
16/FailingOverRollingBack
17/Promoting
18/MovingCommitting
19/MovingBeforeCommit
  20/MovingRollingBack
21/Deleting
22/PendingRemove
23/BitmapSync
24/DisconnectedFromPeer
25/ReplicationPausedUserInitiated
26/ReplicationPausedSystemInitiated
27/RecoveryStoragePolicyError
29/RollingBack
 

30/RecoveryStorageError
31/JournalStorageError
32/VmNotProtectedError
33/JournalOrRecoveryMissingError
34/AddedVmsInInitialSync
35/ReplicationPausedForMissingVolume

36/StoppingFotFailure
37/RollingBackFailOverLiveFailure
38/RollingBackMoveFailure
39/SplittingCommitting
40/PreparePreseed

TargetSite Deprecated. See RecoverySite > identifier.
ThroughputInMb The MBs for all the applications running on the virtual machines being protected in the VPG.
UsedStorageInMB The storage used by the virtual machines in the VPG at the recovery site.
VmsCount The number of virtual machines protected in the VPG.
VpgIdentifier The internal VPG identifier.
VpgName The VPG name.
Zorg The ZORG details.

href

The URL used.

identifier

The ZORG identifier.

rel

The next path level of the API relative to the current path.

type

The API interface service.
Checkpoints

Response values for https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/checkpoints?startDate={STARTDATE}&endDate={ENDDATE}.

Parameter Description
checkpointId The identifier of the checkpoint.
Tag The tag when the checkpoint was added manually.
Timestamp The date and time the checkpoint was written to the journal. The value can be converted to an understandable date using code similar to the following:

var date = new Date(jsonDate);

or code similar to the Perl code example, jsonDateToString($), in Managing vCD APIs.
Checkpoints stats

Response values for https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/checkpoints/stats.

Parameter Description
Earliest Information related to the first checkpoint of a specific VPG in the recovery site.

CheckpointId

The identifier of the first checkpoint.

Tag

The tag when the checkpoint was added.

TimeStamp

The date and time the checkpoint was written to the journal. The value can be converted to an understandable date using code similar to the following:

var date = new Date(jsonDate);

or code similar to the Perl code example, jsonDateToString($), in Managing vCD APIs.
LastCheckpoint Information related to the last checkpoint of a specific VPG in the recovery site

CheckpointId

The identifier of the last checkpoint.

Tag

The tag when the checkpoint was added.

TimeStamp

The date and time the checkpoint was written to the journal. The value can be converted to an understandable date using code similar to the following:

var date = new Date(jsonDate);

or code similar to the Perl code example, jsonDateToString($), in Managing vCD APIs.
Entity types

Response values for https://zvm_ip:port/v1/vpgs/entitytypes.

Response: Description
Possible entity types: the type of site for the VPG:

VCVpg: The VPG is recovering virtual machines in a VMware vCenter Server.
VCvApp: Deprecated. See VCDvApp
VCDvApp: The VPG is recovering a VMware vCloud Director vApp.
PublicCloud: The VPG is recovering virtual machines in Amazon Web Services (AWS).
HyperV: The VPG is recovering virtual machines in Microsoft Hyper-V.
Failover commit policies

Response values for https://zvm_ip:port/v1/vpgs/failovercommitpolicies.

Response: Description
Possible policies used for a failover:

Rollback: After the seconds specified in the TimeToWaitBeforeShutdownInSec setting have elapsed, the failover is rolled back.
Commit: After the seconds specified in the TimeToWaitBeforeShutdownInSec setting have elapsed, the failover continues, committing the virtual machines in the recovery site.
None: The virtual machines in the VPG being failed over remain in the Before Commit state until either they are committed with Commit a failover or rolled back with Roll back a failover.
Failover shutdown policies

Response values for https://zvm_ip:port/v1/vpgs/failovershutdownpolicies.

Response: Description
Possible shutdown polices when failing over a VPG:

None: The protected virtual machines are not shut down before the failover begins.
Shutdown: If VMware Tools or Microsoft Integration Services are available, the virtual machines are shut down gracefully. Otherwise, the failover operation fails.
ForceShutdown: The virtual machines are forcibly shut down even if they cannot be gracefully shut down.
Priorities

Response values for https://zvm_ip:port/v1/vpgs/priorities.

Response: Description
Possible VPG priorities:

Low: The VPG has a low priority for transferring data.
Medium: The VPG has a medium priority for transferring data.
High: The VPG has a high priority for transferring data.
Retention policies

Response values for https://zvm_ip:port/v1/vpgs/retentionpolicies.

Response: Description
Possible VPG retention policies:

StandardDR: The VPG is defined for disaster recovery and not for additional long term recovery via offsite backup.
ExtendedDR: The VPG is defined for both disaster recovery and for additional long term recovery via offsite backup.
Statuses

Response values for https://zvm_ip:port/v1/vpgs/statuses.

Response: Description
Possible statuses of a VPG:

Initializing– The VPG is being initialized. This includes when a VPG is created, and during the initial sync between sites.
MeetingSLA: The VPG is meeting the SLA specification.
NotMeetingSLA: The VPG is not meeting the SLA specification for both the journal history and RPO SLA settings, for example during a delta sync or when there is an error.
RpoNotMeetingSLA: The VPG is not meeting the SLA specification for the RPO SLA setting.
HistoryNotMeetingSLA: The VPG is not meeting the SLA specification for the journal history.
FailingOver: The VPG is in a Failover operation.
Moving: The VPG is in a Move operation.
Deleting: The VPG is being deleted.
Recovered: The VPG is recovered.
Substatuses

Response values for https://zvm_ip:port/v1/vpgs/substatuses.

Response: Description
Possible substatus of a VPG:

None
InitialSync
Creating
VolumeInitialSync
Sync
RecoveryPossible
DeltaSync
NeedsConfiguration
Error
EmptyProtectionGroup
DisconnectedFromPeerNoRecoveryPoints
FullSync
VolumeDeltaSync
VolumeFullSync
FailingOverCommitting
FailingOverBeforeCommit
FailingOverRollingBack
Promoting
MovingCommitting
MovingBeforeCommit
MovingRollingBack
Deleting
PendingRemove
BitmapSync
DisconnectedFromPeer
ReplicationPausedUserInitiated
ReplicationPausedSystemInitiated
RecoveryStoragePolicyError
RollingBack
RecoveryStorageError
JournalStorageError
VmNotProtectedError
JournalOrRecoveryMissingError
AddedVmsInInitialSync
ReplicationPausedForMissingVolume

StoppingFotFailure
RollingBackFailOverLiveFailure
RollingBackMoveFailure
SplittingCommitting
PreparePreseed

VPGs: POST

Creates a VPG or performs actions on a specific VPG.

URL
Create VPG Deprecated
Insert a tagged checkpoint https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/Checkpoints
Clone VPG https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/CloneStart
Abort VPG clone https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/CloneAbort
Failover VPG https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/Failover
Commit VPG failover https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/FailoverCommit
Rollback VPG failover https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/FailoverRollback
Test VPG https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/failoverTest
Stop VPG test https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/failoverTestStop
Force synchronize a VPG https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/forcesync
Move VPG https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/move
Rollback Move VPG https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/moveRollback
Commit Move VPG https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/moveCommit
Pause VPG protection https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/pause
Resume VPG protection https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/resume

Where:

zvm_ip The IP address of the Zerto Virtual Manager where the API is run.
port The port to access the Zerto Virtual Manager. The default port is 9669.
protectionGroupIdentifier The identifier of the VPG for which an action is executed, such as a clone, failover or failover test.
Request Body Using Json Format

The following is an example of a request body in Json format for https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/Checkpoints.

{
  "checkpointName": "String content"
}

The following is an example of a request body in Json format for https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/CloneStart.

{
  "CheckpointId": "String content"
  "DatastoreIdentifier": "String content"
  "VmIdentifiers":
  [
  "string content"
  ]
}

The following is an example of a request body in Json format for https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/Failover.

{
  "CheckpointId": "String content",
  "CommitPolicy":1,
  "ShutdownPolicy":0,
  "TimeToWaitBeforeShutdownInSec":2147483647
  "IsReverseProtection": Boolean
  "VmIdentifiers":
  [
  "string content"
  ]
}

The following is an example of a request body in Json format for https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/FailoverCommit.

{
  "IsReverseProtection": Boolean
}

The following is an example of a request body in Json format for https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/FailoverTest.

{
  "CheckpointId": "String content"
  "VmIdentifiers":
  [
  "string content"
  ]
}

The following is an example of a request body in Json format for https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/FailoverTestStop.

{
  "FailoverTestSuccess": Boolean,
  "FailoverTestSummary": "String content"
}

The following is an example of a request body in Json format for https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/move.

{
  "CommitPolicy": "String content",
  "CommitPolicyTimeout": 2,
  "ForceShutdown": Boolean,
  "ReverseProtection": Boolean,
  "KeepSourceVms": Boolean,
  "ContinueOnPreScriptFailure": Boolean
}

The following is an example of a request body in Json format for https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/moveCommit.

{
  "ReverseProtection": Boolean,
  "KeepSourceVms": Boolean
}

The request body for the following VPG POST APIs is empty:

https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/FailoverRollback

https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/failoverTest

https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/failoverTestStop

https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/forcesync

https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/moveRollback

https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/pause

https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/resume

XML Request Format

For the XML request format, see VPGs API POST Method Request and Response Formats.

Request Values
Insert Checkpoint

Request values for https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/checkpoints.

Parameter Description Mandatory Default
CheckpointName The name of the tagged checkpoint. Yes -

Note: It is not possible to insert a tagged checkpoint if the protected site is either Azure or AWS.

Clone a VPG

Request values for https://zvm_ip:port/v1/vpgs/{VpgIdentifier}/CloneStart.

Parameter Description Mandatory Default
CheckpointId The identifier of the checkpoint to use for cloning. No The latest checkpoint.
DatastoreIdentifier The identifier of the datastore on which the cloned virtual machines are created. Specifying a datastore when the recovery site is vCD or Public cloud is not allowed. No The datastore (vSphere) or storage (Hyper-V) with the most free space.
VmIdentifiers The name of the virtual machine/s selected for cloning. No  
Aborting a Clone

Request body for https://zvm_ip:port/v1/vpgs/{VpgIdentifier}/CloneAbort is empty.

Failover a VPG

Request values for https://zvm_ip:port/v1/vpgs/{VpgIdentifier}/failover.

Parameter Description Mandatory Default
CheckpointId The identifier of the checkpoint to use for failover. No The latest checkpoint
CommitPolicy The policy to use after the failover enters a Before Commit state.

Possible values are (Json/XML):
Rollback or 0: After the seconds specified in the TimeToWaitBeforeShutdownInSec setting have elapsed, the failover is rolled back.
Commit or 1: After the seconds specified in the TimeToWaitBeforeShutdownInSec setting have elapsed, the failover continues, committing the virtual machines in the recovery site.
None or 2: The virtual machines in the VPG being failed over remain in the Before Commit state until either they are committed with Commit a failover, or rolled back with Roll back a failover.
No Rollback
ShutdownPolicy The shutdown policy to apply to the virtual machines on the protected site that are being failed over.

Possible values are (Json/XML):
0: The protected virtual machines are not touched before starting the failover. This assumes that you do not have access to the protected virtual machines.
1: If the protected virtual machines have VMware Tools or Microsoft Integration Services available, the virtual machines are gracefully shut down, otherwise the failover operation fails. This is similar to performing a Move operation to a specified checkpoint.
2: The protected virtual machines are forcibly shut down before starting the failover. If the protected virtual machines have VMware Tools or Microsoft Integration Services available, the procedure waits five minutes for the virtual machines to be gracefully shut down before forcibly powering them off. This is similar to performing a Move operation to a specified checkpoint.
No  
TimeToWaitBeforeShutdownInSec The amount of time in seconds the failover waits in a Before Commit state to enable checking that the failover is as required before performing the commit policy setting. The commit policy setting can either be commit or rollback. No  
IsReverseProtection
1 or True: Enable reverse protection. The virtual machines are recovered on the recovery site and then protected using the default reverse protection settings.
0 or False: Do not enable reverse protection. The VPG definition is kept with the status Needs Configuration and the reverse settings in the VPG definition are not set.
No False
VmIdentifiers The name of the virtual machine/s selected for failover. No  
Commit a failover

Request body for https://zvm_ip:port/v1/vpgs/{VpgIdentifier}/FailoverCommit.

Parameter Description Mandatory Default
IsReverseProtection
1 or True: Enable reverse protection. The virtual machines are recovered on the recovery site and then protected using the default reverse protection settings.
0 or False: Do not enable reverse protection. The VPG definition is kept with the status Needs Configuration and the reverse settings in the VPG definition are not set.
No False

Note: Attempting to commit a failover during the initial stage, before it is ready to commit or roll back, throws an exception.

Roll back a failover

Request body for https://zvm_ip:port/v1/vpgs/{VpgIdentifier}/FailoverRollback is empty.

Note: Attempting to rollback a failover during the initial stage, before it is ready to commit or roll back, throws an exception.

Test a failover

Request values for https://zvm_ip:port/v1/vpgs/{VpgIdentifier}/FailoverTest.

Parameter Description Mandatory Default
checkpointId Deprecated. See CheckpointId. Irrelevant
CheckpointId The identifier of the checkpoint to use for testing. No Latest checkpoint
VmIdentifiers The name of the virtual machine/s selected for testing. No  
Stopping a failover test

Request values for https://zvm_ip:port/v1/vpgs/{VpgIdentifier}/FailoverTestStop.

Parameter Description Mandatory Default
FailoverTestSuccess
True: The test was successful.
False: The test was not successful.
No True
FailoverTestSummary Free text describing the test. No N/A
Move VPG Operation

https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/move:

Parameter Description Mandatory Default
CommitPolicy The policy to use after the move enters a Before Commit state. Possible values are (Json/XML):
Rollback or 0: The Move is rolled back after the seconds specified in the setting, commitPolicyTimeout, elapse.
Commit or 1: The Move resumes committing the virtual machines in the recovery site after the seconds specified in the setting, commitPolicyTimeout, elapse.
None or 2: The virtual machines in the VPG being moved remain in the Before Commit state until either they are committed with Commit a Move or rolled back with the Rollback a Move.
No Site settings default commit policy
CommitPolicyTimeout The amount of time, in seconds, the Move is in a "Before Commit" state, before performing the commitPolicy setting. No Site settings default commit policy.
ForceShutdown
0 or False: If a utility (VMware Tools) is installed on the protected virtual machines, the procedure waits five minutes for the virtual machines to be gracefully shut down before forcibly powering them off.
1 or True: To force a shutdown of the virtual machines.
No for Hyper-V and vSphere

Yes for Managed Service Providers
False
ReverseProtection
0 or False: Do not enable reverse protection. The VPG definition is kept with the status Needs Configuration and the reverse settings in the VPG definition are not set.
1 or True: Enable reverse protection. The virtual machines are recovered on the recovery site and then protected using the default reverse protection settings.

Note: If ReverseProtection is set to True, the KeepSourceVMs should be ignored because the virtual disks of the VMs are used for replication and cannot have VMs attached.

No True
KeepSourceVms
0 or False: Remove the protected virtual machines from the protected site.
1 or True: Prevent the protected virtual machines from being deleted in the protected site.
No False
ContinueOnPreScriptFailure
0 or False: Do not continue the Move operation in case of failure of script executing prior the operation.
1 or True: Continue the Move operation in case of failure of script executing prior the operation.
No False
Move Commit Operation

https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/moveCommit:

Parameter Description Mandatory Default
ReverseProtection
0 or False: Do not enable reverse protection. The VPG definition is kept with the status Needs Configuration and the reverse settings in the VPG definition are not set.
1 or True: Enable reverse protection. The virtual machines are recovered on the recovery site and then protected using the default reverse protection settings.
No As set at "move" request
KeepSourceVms
0 or False: Remove virtual machines from the inventory.
1 or True: Prevent the protected virtual machines from being deleted in the protected site.
No False
Force synchronize a VPG

Request body for https://zvm_ip:port/v1/vpgs/{VpgIdentifier}/forcesync is empty.

Pause VPG protection

Request body for https://zvm_ip:port/v1/vpgs/{VpgIdentifier}/pause is empty.

Resume VPG protection

Request body for https://zvm_ip:port/v1/vpgs/{VpgIdentifier}/resume is empty.

Response In Json Format

The following is an example response Json body for:

https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/checkpoints,

https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/Failover,

https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/FailoverCommit,

https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/FailoverRollback,

https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/FailoverTest,

https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/FailoverTestStop,

https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/forcesync,

https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/move,

https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/moveCommit,

https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/moveRollback,

https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/pause, and for

https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/resume.

{
  "TaskIdentifier": "String content"
}

Response Values
Parameter Description
TaskIdentifier The identifier of the task. The task identifier can be used with the Tasks API to monitor the action.
XML Response Format

For the XML response format, see VPGs API POST Method Request and Response Formats.

Response Values
Parameter Description
TaskIdentifier The identifier of the task. The task identifier can be used with the Tasks API to monitor the action.

VPGs: DELETE

Delete a specified VPG, keeping the target disks to use for preseeding if the virtual machines are reprotected.

URL
Delete VPG https://zvm_ip:port/v1/vpgs/{VpgIdentifier}

Where:

zvm_ip The IP address of the Zerto Virtual Manager where the API is run.
port The port to access the Zerto Virtual Manager. The default port is 9669.
VpgIdentifier The identifier of the VPG to be deleted.
Request Body Using Json Format

The following is an example of a request body in Json format for https://zvm_ip:port/v1/vpgs/{VpgIdentifier}.

{
  "Force": Boolean,
  "KeepRecoveryVolumes": Boolean
}

XML Request Format

For the XML response format, see VPGs API DELETE Method Request and Response Formats.

Request Values

Request values for https://zvm_ip:port/v1/vpgs/{VpgIdentifier}.

Parameter Description Mandatory Default
Force True: Force deletion of the VPG.
False: Do not force deletion of the VPG.
No False
KeepRecoveryVolumes True: Keep the recovery volumes. If the virtual machines in the deleted VPG are reprotected, these volumes can be used as preseeded volumes to speed up the initial synchronization of the new VPG.
False: Do not keep the recovery volumes.
No  
Response In Json Format

The following is an example response Json body for https://zvm_ip:port/v1/vpgs/{VpgIdentifier}.

"String content"

Response Values

The response value is the task identifier which can be used with the Tasks API to monitor the delete action.

XML Response Format

For the XML response format, see VPGs API DELETE Method Request and Response Formats.

PowerShell Scripts

For complete PowerShell Scripts, see Examples.