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.
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 |
||
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
36/StoppingFotFailure
|
|
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 |
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):
|
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):
|
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 |
|
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 |
|
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 |
|
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):
|
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 |
|
No for Hyper-V and vSphere Yes for Managed Service Providers |
False | |||||||||
ReverseProtection |
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 |
|
No | False | |||||||||
ContinueOnPreScriptFailure |
|
No | False |
Move Commit Operation
https://zvm_ip:port/v1/vpgs/{protectionGroupIdentifier}/moveCommit:
Parameter | Description | Mandatory | Default | ||||||
ReverseProtection |
|
No | As set at "move" request | ||||||
KeepSourceVms |
|
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.