# Private Cloud › Managed VMware › Managed VMware vSphere › Backup & Replication › Zerto API

> Part of the OVHcloud developer hub. Index of every page and section: https://developers.eu.ovhcloud.com/llms.txt
> The Private Cloud product's sections: https://developers.eu.ovhcloud.com/reference/private-cloud/llms.txt
> Everything in one file: https://developers.eu.ovhcloud.com/llms-full.txt

> 24 operations of the OVHcloud API. Calls carry `authorization: Bearer $OVH_TOKEN`; the EU host is shown, Canada and the United States answer on api.ca.ovhcloud.com and api.us.ovhcloud.com.

Page: https://developers.eu.ovhcloud.com/reference/private-cloud/managed-vmware/managed-vmware-vsphere/backup-replication/zerto/

OpenAPI v1: https://api.eu.ovhcloud.com/1.0/__schemas/developer-hub-navigation/private-cloud/managed-vmware/managed-vmware-vsphere/backup-replication/zerto.json?format=openapi3
OpenAPI v2: https://api.eu.ovhcloud.com/v2/__schemas/developer-hub-navigation/private-cloud/managed-vmware/managed-vmware-vsphere/backup-replication/zerto.json?format=openapi3

## Operations

- `POST /dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/disable` — Disable Zerto disaster recovery between two VMware on OVHcloud infrastructures
- `POST /dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/enable` — Enable Zerto disaster recovery between two VMware on OVHcloud infrastructures
- `POST /dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/endMigration` — Unlink migration source virtual datacenter from Zerto disaster recovery
- `POST /dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/endpointPublicIp` — Change the IP address used by Zerto disaster recovery endpoint for public network access
- `GET /dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/remoteSites` — List Zerto disaster recovery remote sites
- `POST /dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/remoteSites` — Create Zerto disaster recovery remote site on VPN endpoint
- `DELETE /dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/remoteSites` — Remove Zerto disaster recovery remote site
- `POST /dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/requestHealthCheck` — Run Zerto disaster recovery health check task
- `POST /dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/startMigration` — Link migration target virtual datacenter to Zerto disaster recovery
- `GET /dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/status` — Get Zerto disaster recovery option status
- `GET /dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/usageReport` — List Zerto disaster recovery protected virtual machines
- `GET /dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/vraResources` — Lists all Zerto VRAs along with their allocated CPU and RAM resources
- `POST /dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/vraResources` — Updates the CPU and RAM resources allocated to a specified Zerto VRA
- `POST /dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/configureVpn` — Configure VPN for Zerto disaster recovery between VMware on OVHcloud infrastructure and onsite infrastructure
- `GET /dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/defaultLocalVraNetwork` — Get Zerto disaster recovery default suggested local VRA subnet
- `POST /dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/disable` — Disable Zerto disaster recovery between VMware on OVHcloud infrastructure and onsite infrastructure
- `POST /dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/enable` — Enable Zerto disaster recovery between VMware on OVHcloud infrastructure and onsite infrastructure
- `POST /dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/endpointPublicIp` — Change the IP address used by Zerto disaster recovery endpoint for public network access
- `GET /dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/remoteSites` — List Zerto disaster recovery remote sites
- `POST /dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/remoteSites` — Create Zerto disaster recovery remote site on VPN endpoint
- `DELETE /dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/remoteSites` — Remove Zerto disaster recovery remote site
- `POST /dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/requestPairingToken` — Request Zerto disaster recovery pairing token for onsite infrastructure
- `GET /dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/vraResources` — Lists all Zerto VRAs along with their allocated CPU and RAM resources
- `POST /dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/vraResources` — Updates the CPU and RAM resources allocated to a specified Zerto VRA

## Disable Zerto disaster recovery between two VMware on OVHcloud infrastructures

`POST /1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/disable`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/managed-vmware/managed-vmware-vsphere/backup-replication/zerto/#post-dedicatedcloud-servicename-datacenter-datacenterid-disasterrecovery-zerto-disable

**Status:** Stable production version  
**IAM actions:** `pccVMware:apiovh:datacenter/disasterRecovery/zerto/disable`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `datacenterId` | path | integer | yes | Id of the Datacenter |
| `serviceName` | path | string | yes | Domain of the service |

### Request body (required)

Type: `object`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `secondaryDatacenterId` | integer | yes | Your secondary datacenter id |
| `secondaryServiceName` | string | yes | Your secondary dedicatedCloud |

```json
{
  "secondaryDatacenterId": 0,
  "secondaryServiceName": "string"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicatedCloud.Task | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdBy` | string | read-only | Creator of the task |
| `createdFrom` | string | read-only | Origin of the task |
| `datacenterId` | integer | read-only | datacenterId of the associated dedicatedCloud.Datacenter object |
| `description` | string | read-only | Current progress description |
| `endDate` | string (date-time) | read-only | Task end date |
| `executionDate` | string (date-time) | read-only | Task execution date |
| `filerId` | integer | read-only | filerId of the associated dedicatedCloud.Filer object |
| `hostId` | integer | read-only | hostId of the associated dedicatedCloud.Host object |
| `lastModificationDate` | string (date-time) | read-only | Task last modification date |
| `maintenanceDateFrom` | string (date-time) | read-only | Maintenance task min allowed execution date |
| `maintenanceDateTo` | string (date-time) | read-only | Maintenance task max allowed execution date |
| `name` | string | read-only | Task name |
| `network` | string | read-only | network of the associated dedicatedCloud.Ip object |
| `networkAccessId` | integer | read-only | networkAccessId of the associated dedicatedCloud.AllowedNetwork object |
| `orderId` | integer | read-only | orderId of the associated billing.Order object |
| `parentTaskId` | integer | read-only | taskId of the parent dedicatedCloud.Task object |
| `progress` | integer | read-only | Current progress |
| `state` | dedicatedCloud.TaskStateEnum | read-only | Current Task state — one of `canceled`, `doing`, `done`, `error`, `fixing`, `toCancel`, `toCreate`, `todo`, `unknown`, `waitingForChilds`, `waitingTodo` |
| `taskId` | integer | read-only | Task id |
| `type` | string | read-only | Task type |
| `userId` | integer | read-only | userId of the associated dedicatedCloud.User object |
| `vlanId` | integer | read-only | vlanId of the parent dedicatedCloud.Vlan object |

```json
{
  "createdBy": "string",
  "createdFrom": "string",
  "datacenterId": 0,
  "description": "string",
  "endDate": "2024-01-01T12:00:00Z",
  "executionDate": "2024-01-01T12:00:00Z",
  "filerId": 0,
  "hostId": 0,
  "lastModificationDate": "2024-01-01T12:00:00Z",
  "maintenanceDateFrom": "2024-01-01T12:00:00Z",
  "maintenanceDateTo": "2024-01-01T12:00:00Z",
  "name": "string",
  "network": "string",
  "networkAccessId": 0,
  "orderId": 0,
  "parentTaskId": 0,
  "progress": 0,
  "state": "canceled",
  "taskId": 0,
  "type": "string",
  "userId": 0,
  "vlanId": 0
}
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/disable" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/disable",
	secondaryDatacenterId = None, # Your secondary datacenter id (type: long)
	secondaryServiceName = None, # Your secondary dedicatedCloud (type: string)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/disable", array(
	secondaryDatacenterId => null, // Your secondary datacenter id (type: long)
	secondaryServiceName => null, // Your secondary dedicatedCloud (type: string)
));

print_r($result);
?>
```

## Enable Zerto disaster recovery between two VMware on OVHcloud infrastructures

`POST /1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/enable`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/managed-vmware/managed-vmware-vsphere/backup-replication/zerto/#post-dedicatedcloud-servicename-datacenter-datacenterid-disasterrecovery-zerto-enable

**Status:** Deprecated, will be removed  
**Deprecated** since 2019-06-01, removed on 2019-07-01; use `/order/cart/{cartId}/privateCloud` instead.  
**IAM actions:** `pccVMware:apiovh:datacenter/disasterRecovery/zerto/enable`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `datacenterId` | path | integer | yes | Id of the Datacenter |
| `serviceName` | path | string | yes | Domain of the service |

### Request body (required)

Type: `object`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `primaryEndpointIp` | ip | yes | Your primary OVH VMware on OVHcloud public IP for the secured replication data tunnel endpoint |
| `secondaryDatacenterId` | integer | yes | Your secondary datacenter id |
| `secondaryEndpointIp` | ip | yes | Your secondary OVH VMware on OVHcloud public IP for the secured replication data tunnel endpoint |
| `secondaryServiceName` | string | yes | Your secondary OVH VMware on OVHcloud |

```json
{
  "primaryEndpointIp": "192.0.2.0",
  "secondaryDatacenterId": 0,
  "secondaryEndpointIp": "192.0.2.0",
  "secondaryServiceName": "string"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicatedCloud.Task | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdBy` | string | read-only | Creator of the task |
| `createdFrom` | string | read-only | Origin of the task |
| `datacenterId` | integer | read-only | datacenterId of the associated dedicatedCloud.Datacenter object |
| `description` | string | read-only | Current progress description |
| `endDate` | string (date-time) | read-only | Task end date |
| `executionDate` | string (date-time) | read-only | Task execution date |
| `filerId` | integer | read-only | filerId of the associated dedicatedCloud.Filer object |
| `hostId` | integer | read-only | hostId of the associated dedicatedCloud.Host object |
| `lastModificationDate` | string (date-time) | read-only | Task last modification date |
| `maintenanceDateFrom` | string (date-time) | read-only | Maintenance task min allowed execution date |
| `maintenanceDateTo` | string (date-time) | read-only | Maintenance task max allowed execution date |
| `name` | string | read-only | Task name |
| `network` | string | read-only | network of the associated dedicatedCloud.Ip object |
| `networkAccessId` | integer | read-only | networkAccessId of the associated dedicatedCloud.AllowedNetwork object |
| `orderId` | integer | read-only | orderId of the associated billing.Order object |
| `parentTaskId` | integer | read-only | taskId of the parent dedicatedCloud.Task object |
| `progress` | integer | read-only | Current progress |
| `state` | dedicatedCloud.TaskStateEnum | read-only | Current Task state — one of `canceled`, `doing`, `done`, `error`, `fixing`, `toCancel`, `toCreate`, `todo`, `unknown`, `waitingForChilds`, `waitingTodo` |
| `taskId` | integer | read-only | Task id |
| `type` | string | read-only | Task type |
| `userId` | integer | read-only | userId of the associated dedicatedCloud.User object |
| `vlanId` | integer | read-only | vlanId of the parent dedicatedCloud.Vlan object |

```json
{
  "createdBy": "string",
  "createdFrom": "string",
  "datacenterId": 0,
  "description": "string",
  "endDate": "2024-01-01T12:00:00Z",
  "executionDate": "2024-01-01T12:00:00Z",
  "filerId": 0,
  "hostId": 0,
  "lastModificationDate": "2024-01-01T12:00:00Z",
  "maintenanceDateFrom": "2024-01-01T12:00:00Z",
  "maintenanceDateTo": "2024-01-01T12:00:00Z",
  "name": "string",
  "network": "string",
  "networkAccessId": 0,
  "orderId": 0,
  "parentTaskId": 0,
  "progress": 0,
  "state": "canceled",
  "taskId": 0,
  "type": "string",
  "userId": 0,
  "vlanId": 0
}
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/enable" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/enable",
	primaryEndpointIp = None, # Your primary OVH VMware on OVHcloud public IP for the secured replication data tunnel endpoint (type: ip)
	secondaryDatacenterId = None, # Your secondary datacenter id (type: long)
	secondaryEndpointIp = None, # Your secondary OVH VMware on OVHcloud public IP for the secured replication data tunnel endpoint (type: ip)
	secondaryServiceName = None, # Your secondary OVH VMware on OVHcloud (type: string)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/enable", array(
	primaryEndpointIp => null, // Your primary OVH VMware on OVHcloud public IP for the secured replication data tunnel endpoint (type: ip)
	secondaryDatacenterId => null, // Your secondary datacenter id (type: long)
	secondaryEndpointIp => null, // Your secondary OVH VMware on OVHcloud public IP for the secured replication data tunnel endpoint (type: ip)
	secondaryServiceName => null, // Your secondary OVH VMware on OVHcloud (type: string)
));

print_r($result);
?>
```

## Unlink migration source virtual datacenter from Zerto disaster recovery

`POST /1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/endMigration`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/managed-vmware/managed-vmware-vsphere/backup-replication/zerto/#post-dedicatedcloud-servicename-datacenter-datacenterid-disasterrecovery-zerto-endmigration

**Status:** Stable production version  
**IAM actions:** `pccVMware:apiovh:datacenter/disasterRecovery/zerto/endMigration`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `datacenterId` | path | integer | yes | Id of the Datacenter |
| `serviceName` | path | string | yes | Domain of the service |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicatedCloud.Task | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdBy` | string | read-only | Creator of the task |
| `createdFrom` | string | read-only | Origin of the task |
| `datacenterId` | integer | read-only | datacenterId of the associated dedicatedCloud.Datacenter object |
| `description` | string | read-only | Current progress description |
| `endDate` | string (date-time) | read-only | Task end date |
| `executionDate` | string (date-time) | read-only | Task execution date |
| `filerId` | integer | read-only | filerId of the associated dedicatedCloud.Filer object |
| `hostId` | integer | read-only | hostId of the associated dedicatedCloud.Host object |
| `lastModificationDate` | string (date-time) | read-only | Task last modification date |
| `maintenanceDateFrom` | string (date-time) | read-only | Maintenance task min allowed execution date |
| `maintenanceDateTo` | string (date-time) | read-only | Maintenance task max allowed execution date |
| `name` | string | read-only | Task name |
| `network` | string | read-only | network of the associated dedicatedCloud.Ip object |
| `networkAccessId` | integer | read-only | networkAccessId of the associated dedicatedCloud.AllowedNetwork object |
| `orderId` | integer | read-only | orderId of the associated billing.Order object |
| `parentTaskId` | integer | read-only | taskId of the parent dedicatedCloud.Task object |
| `progress` | integer | read-only | Current progress |
| `state` | dedicatedCloud.TaskStateEnum | read-only | Current Task state — one of `canceled`, `doing`, `done`, `error`, `fixing`, `toCancel`, `toCreate`, `todo`, `unknown`, `waitingForChilds`, `waitingTodo` |
| `taskId` | integer | read-only | Task id |
| `type` | string | read-only | Task type |
| `userId` | integer | read-only | userId of the associated dedicatedCloud.User object |
| `vlanId` | integer | read-only | vlanId of the parent dedicatedCloud.Vlan object |

```json
{
  "createdBy": "string",
  "createdFrom": "string",
  "datacenterId": 0,
  "description": "string",
  "endDate": "2024-01-01T12:00:00Z",
  "executionDate": "2024-01-01T12:00:00Z",
  "filerId": 0,
  "hostId": 0,
  "lastModificationDate": "2024-01-01T12:00:00Z",
  "maintenanceDateFrom": "2024-01-01T12:00:00Z",
  "maintenanceDateTo": "2024-01-01T12:00:00Z",
  "name": "string",
  "network": "string",
  "networkAccessId": 0,
  "orderId": 0,
  "parentTaskId": 0,
  "progress": 0,
  "state": "canceled",
  "taskId": 0,
  "type": "string",
  "userId": 0,
  "vlanId": 0
}
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/endMigration" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/endMigration")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/endMigration");

print_r($result);
?>
```

## Change the IP address used by Zerto disaster recovery endpoint for public network access

`POST /1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/endpointPublicIp`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/managed-vmware/managed-vmware-vsphere/backup-replication/zerto/#post-dedicatedcloud-servicename-datacenter-datacenterid-disasterrecovery-zerto-endpointpublicip

**Status:** Stable production version  
**IAM actions:** `pccVMware:apiovh:datacenter/disasterRecovery/zerto/endpointPublicIp`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `datacenterId` | path | integer | yes | Id of the Datacenter |
| `serviceName` | path | string | yes | Domain of the service |

### Request body (required)

Type: `object`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `newEndpointPublicIp` | ip | yes | Your new public IP for the secured replication data tunnel endpoint |

```json
{
  "newEndpointPublicIp": "192.0.2.0"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicatedCloud.Task | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdBy` | string | read-only | Creator of the task |
| `createdFrom` | string | read-only | Origin of the task |
| `datacenterId` | integer | read-only | datacenterId of the associated dedicatedCloud.Datacenter object |
| `description` | string | read-only | Current progress description |
| `endDate` | string (date-time) | read-only | Task end date |
| `executionDate` | string (date-time) | read-only | Task execution date |
| `filerId` | integer | read-only | filerId of the associated dedicatedCloud.Filer object |
| `hostId` | integer | read-only | hostId of the associated dedicatedCloud.Host object |
| `lastModificationDate` | string (date-time) | read-only | Task last modification date |
| `maintenanceDateFrom` | string (date-time) | read-only | Maintenance task min allowed execution date |
| `maintenanceDateTo` | string (date-time) | read-only | Maintenance task max allowed execution date |
| `name` | string | read-only | Task name |
| `network` | string | read-only | network of the associated dedicatedCloud.Ip object |
| `networkAccessId` | integer | read-only | networkAccessId of the associated dedicatedCloud.AllowedNetwork object |
| `orderId` | integer | read-only | orderId of the associated billing.Order object |
| `parentTaskId` | integer | read-only | taskId of the parent dedicatedCloud.Task object |
| `progress` | integer | read-only | Current progress |
| `state` | dedicatedCloud.TaskStateEnum | read-only | Current Task state — one of `canceled`, `doing`, `done`, `error`, `fixing`, `toCancel`, `toCreate`, `todo`, `unknown`, `waitingForChilds`, `waitingTodo` |
| `taskId` | integer | read-only | Task id |
| `type` | string | read-only | Task type |
| `userId` | integer | read-only | userId of the associated dedicatedCloud.User object |
| `vlanId` | integer | read-only | vlanId of the parent dedicatedCloud.Vlan object |

```json
{
  "createdBy": "string",
  "createdFrom": "string",
  "datacenterId": 0,
  "description": "string",
  "endDate": "2024-01-01T12:00:00Z",
  "executionDate": "2024-01-01T12:00:00Z",
  "filerId": 0,
  "hostId": 0,
  "lastModificationDate": "2024-01-01T12:00:00Z",
  "maintenanceDateFrom": "2024-01-01T12:00:00Z",
  "maintenanceDateTo": "2024-01-01T12:00:00Z",
  "name": "string",
  "network": "string",
  "networkAccessId": 0,
  "orderId": 0,
  "parentTaskId": 0,
  "progress": 0,
  "state": "canceled",
  "taskId": 0,
  "type": "string",
  "userId": 0,
  "vlanId": 0
}
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/endpointPublicIp" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: ip
result = client.post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/endpointPublicIp",
	newEndpointPublicIp = None, # Your new public IP for the secured replication data tunnel endpoint (type: ip)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: ip
$result = $ovh->post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/endpointPublicIp", array(
	newEndpointPublicIp => null, // Your new public IP for the secured replication data tunnel endpoint (type: ip)
));

print_r($result);
?>
```

## List Zerto disaster recovery remote sites

`GET /1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/remoteSites`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/managed-vmware/managed-vmware-vsphere/backup-replication/zerto/#get-dedicatedcloud-servicename-datacenter-datacenterid-disasterrecovery-zerto-remotesites

**Status:** Stable production version  
**IAM actions:** `pccVMware:apiovh:datacenter/disasterRecovery/zerto/remoteSites/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `datacenterId` | path | integer | yes | Id of the Datacenter |
| `serviceName` | path | string | yes | Domain of the service |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicatedCloud.disasterRecovery.ZertoRemoteVra[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | integer |  | ID of the remote Vra Network |
| `label` | string |  | Name given to this network |
| `remoteEndpointPublicIp` | ip |  | Your onsite endpoint public IP for the secured replication data tunnel |
| `remoteVraNetwork` | ipBlock |  | Internal zerto subnet of your onsite infrastructure (ip/cidr) |
| `remoteZvmInternalIp` | ip |  | Internal ZVM ip on your onsite infrastructure local network |
| `state` | dedicatedCloud.optionAccessNetwork.StateEnum |  | Current state of your current Zerto remote site — one of `creating`, `deleting`, `delivered`, `error`, `toCreate`, `toDelete`, `toUpdate`, `unknown`, `updating` |

```json
[
  {
    "id": 0,
    "label": "string",
    "remoteEndpointPublicIp": "192.0.2.0",
    "remoteVraNetwork": "192.0.2.0/24",
    "remoteZvmInternalIp": "192.0.2.0",
    "state": "creating"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/remoteSites" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/remoteSites")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/remoteSites");

print_r($result);
?>
```

## Create Zerto disaster recovery remote site on VPN endpoint

`POST /1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/remoteSites`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/managed-vmware/managed-vmware-vsphere/backup-replication/zerto/#post-dedicatedcloud-servicename-datacenter-datacenterid-disasterrecovery-zerto-remotesites

**Status:** Stable production version  
**IAM actions:** `pccVMware:apiovh:datacenter/disasterRecovery/zerto/remoteSites/create`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `datacenterId` | path | integer | yes | Id of the Datacenter |
| `serviceName` | path | string | yes | Domain of the service |

### Request body (required)

Type: `object`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `label` | string | yes | The name for this connection |
| `preSharedKey` | string (password) | yes | Pre-Shared Key to secure data transfer between both sites |
| `remoteEndpointPublicIp` | ipv4 | yes | Your onsite endpoint public IP for the secured replication data tunnel |
| `remoteVraNetwork` | ipv4Block | yes | Internal zerto subnet of your onsite infrastructure (ip/cidr) |
| `remoteZvmInternalIp` | ipv4 | yes | Internal ZVM ip of your onsite infrastructure |

```json
{
  "label": "string",
  "preSharedKey": "string",
  "remoteEndpointPublicIp": "192.0.2.0",
  "remoteVraNetwork": "192.0.2.0/24",
  "remoteZvmInternalIp": "192.0.2.0"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicatedCloud.Task | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdBy` | string | read-only | Creator of the task |
| `createdFrom` | string | read-only | Origin of the task |
| `datacenterId` | integer | read-only | datacenterId of the associated dedicatedCloud.Datacenter object |
| `description` | string | read-only | Current progress description |
| `endDate` | string (date-time) | read-only | Task end date |
| `executionDate` | string (date-time) | read-only | Task execution date |
| `filerId` | integer | read-only | filerId of the associated dedicatedCloud.Filer object |
| `hostId` | integer | read-only | hostId of the associated dedicatedCloud.Host object |
| `lastModificationDate` | string (date-time) | read-only | Task last modification date |
| `maintenanceDateFrom` | string (date-time) | read-only | Maintenance task min allowed execution date |
| `maintenanceDateTo` | string (date-time) | read-only | Maintenance task max allowed execution date |
| `name` | string | read-only | Task name |
| `network` | string | read-only | network of the associated dedicatedCloud.Ip object |
| `networkAccessId` | integer | read-only | networkAccessId of the associated dedicatedCloud.AllowedNetwork object |
| `orderId` | integer | read-only | orderId of the associated billing.Order object |
| `parentTaskId` | integer | read-only | taskId of the parent dedicatedCloud.Task object |
| `progress` | integer | read-only | Current progress |
| `state` | dedicatedCloud.TaskStateEnum | read-only | Current Task state — one of `canceled`, `doing`, `done`, `error`, `fixing`, `toCancel`, `toCreate`, `todo`, `unknown`, `waitingForChilds`, `waitingTodo` |
| `taskId` | integer | read-only | Task id |
| `type` | string | read-only | Task type |
| `userId` | integer | read-only | userId of the associated dedicatedCloud.User object |
| `vlanId` | integer | read-only | vlanId of the parent dedicatedCloud.Vlan object |

```json
{
  "createdBy": "string",
  "createdFrom": "string",
  "datacenterId": 0,
  "description": "string",
  "endDate": "2024-01-01T12:00:00Z",
  "executionDate": "2024-01-01T12:00:00Z",
  "filerId": 0,
  "hostId": 0,
  "lastModificationDate": "2024-01-01T12:00:00Z",
  "maintenanceDateFrom": "2024-01-01T12:00:00Z",
  "maintenanceDateTo": "2024-01-01T12:00:00Z",
  "name": "string",
  "network": "string",
  "networkAccessId": 0,
  "orderId": 0,
  "parentTaskId": 0,
  "progress": 0,
  "state": "canceled",
  "taskId": 0,
  "type": "string",
  "userId": 0,
  "vlanId": 0
}
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/remoteSites" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: ipv4
result = client.post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/remoteSites",
	label = None, # The name for this connection (type: string)
	preSharedKey = None, # Pre-Shared Key to secure data transfer between both sites (type: password)
	remoteEndpointPublicIp = None, # Your onsite endpoint public IP for the secured replication data tunnel (type: ipv4)
	remoteVraNetwork = None, # Internal zerto subnet of your onsite infrastructure (ip/cidr) (type: ipv4Block)
	remoteZvmInternalIp = None, # Internal ZVM ip of your onsite infrastructure (type: ipv4)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: ipv4
$result = $ovh->post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/remoteSites", array(
	label => null, // The name for this connection (type: string)
	preSharedKey => null, // Pre-Shared Key to secure data transfer between both sites (type: password)
	remoteEndpointPublicIp => null, // Your onsite endpoint public IP for the secured replication data tunnel (type: ipv4)
	remoteVraNetwork => null, // Internal zerto subnet of your onsite infrastructure (ip/cidr) (type: ipv4Block)
	remoteZvmInternalIp => null, // Internal ZVM ip of your onsite infrastructure (type: ipv4)
));

print_r($result);
?>
```

## Remove Zerto disaster recovery remote site

`DELETE /1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/remoteSites`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/managed-vmware/managed-vmware-vsphere/backup-replication/zerto/#delete-dedicatedcloud-servicename-datacenter-datacenterid-disasterrecovery-zerto-remotesites

**Status:** Stable production version  
**IAM actions:** `pccVMware:apiovh:datacenter/disasterRecovery/zerto/remoteSites/delete`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `datacenterId` | path | integer | yes | Id of the Datacenter |
| `id` | query | integer | yes | The id number of the network to remove (as returned by a GET call) |
| `serviceName` | path | string | yes | Domain of the service |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicatedCloud.Task | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdBy` | string | read-only | Creator of the task |
| `createdFrom` | string | read-only | Origin of the task |
| `datacenterId` | integer | read-only | datacenterId of the associated dedicatedCloud.Datacenter object |
| `description` | string | read-only | Current progress description |
| `endDate` | string (date-time) | read-only | Task end date |
| `executionDate` | string (date-time) | read-only | Task execution date |
| `filerId` | integer | read-only | filerId of the associated dedicatedCloud.Filer object |
| `hostId` | integer | read-only | hostId of the associated dedicatedCloud.Host object |
| `lastModificationDate` | string (date-time) | read-only | Task last modification date |
| `maintenanceDateFrom` | string (date-time) | read-only | Maintenance task min allowed execution date |
| `maintenanceDateTo` | string (date-time) | read-only | Maintenance task max allowed execution date |
| `name` | string | read-only | Task name |
| `network` | string | read-only | network of the associated dedicatedCloud.Ip object |
| `networkAccessId` | integer | read-only | networkAccessId of the associated dedicatedCloud.AllowedNetwork object |
| `orderId` | integer | read-only | orderId of the associated billing.Order object |
| `parentTaskId` | integer | read-only | taskId of the parent dedicatedCloud.Task object |
| `progress` | integer | read-only | Current progress |
| `state` | dedicatedCloud.TaskStateEnum | read-only | Current Task state — one of `canceled`, `doing`, `done`, `error`, `fixing`, `toCancel`, `toCreate`, `todo`, `unknown`, `waitingForChilds`, `waitingTodo` |
| `taskId` | integer | read-only | Task id |
| `type` | string | read-only | Task type |
| `userId` | integer | read-only | userId of the associated dedicatedCloud.User object |
| `vlanId` | integer | read-only | vlanId of the parent dedicatedCloud.Vlan object |

```json
{
  "createdBy": "string",
  "createdFrom": "string",
  "datacenterId": 0,
  "description": "string",
  "endDate": "2024-01-01T12:00:00Z",
  "executionDate": "2024-01-01T12:00:00Z",
  "filerId": 0,
  "hostId": 0,
  "lastModificationDate": "2024-01-01T12:00:00Z",
  "maintenanceDateFrom": "2024-01-01T12:00:00Z",
  "maintenanceDateTo": "2024-01-01T12:00:00Z",
  "name": "string",
  "network": "string",
  "networkAccessId": 0,
  "orderId": 0,
  "parentTaskId": 0,
  "progress": 0,
  "state": "canceled",
  "taskId": 0,
  "type": "string",
  "userId": 0,
  "vlanId": 0
}
```

### Example

```bash
curl -X DELETE \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/remoteSites" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.delete("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/remoteSites")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->delete("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/remoteSites");

print_r($result);
?>
```

## Run Zerto disaster recovery health check task

`POST /1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/requestHealthCheck`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/managed-vmware/managed-vmware-vsphere/backup-replication/zerto/#post-dedicatedcloud-servicename-datacenter-datacenterid-disasterrecovery-zerto-requesthealthcheck

**Status:** Stable production version  
**IAM actions:** `pccVMware:apiovh:datacenter/disasterRecovery/zerto/requestHealthCheck`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `datacenterId` | path | integer | yes | Id of the Datacenter |
| `serviceName` | path | string | yes | Domain of the service |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicatedCloud.Task | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdBy` | string | read-only | Creator of the task |
| `createdFrom` | string | read-only | Origin of the task |
| `datacenterId` | integer | read-only | datacenterId of the associated dedicatedCloud.Datacenter object |
| `description` | string | read-only | Current progress description |
| `endDate` | string (date-time) | read-only | Task end date |
| `executionDate` | string (date-time) | read-only | Task execution date |
| `filerId` | integer | read-only | filerId of the associated dedicatedCloud.Filer object |
| `hostId` | integer | read-only | hostId of the associated dedicatedCloud.Host object |
| `lastModificationDate` | string (date-time) | read-only | Task last modification date |
| `maintenanceDateFrom` | string (date-time) | read-only | Maintenance task min allowed execution date |
| `maintenanceDateTo` | string (date-time) | read-only | Maintenance task max allowed execution date |
| `name` | string | read-only | Task name |
| `network` | string | read-only | network of the associated dedicatedCloud.Ip object |
| `networkAccessId` | integer | read-only | networkAccessId of the associated dedicatedCloud.AllowedNetwork object |
| `orderId` | integer | read-only | orderId of the associated billing.Order object |
| `parentTaskId` | integer | read-only | taskId of the parent dedicatedCloud.Task object |
| `progress` | integer | read-only | Current progress |
| `state` | dedicatedCloud.TaskStateEnum | read-only | Current Task state — one of `canceled`, `doing`, `done`, `error`, `fixing`, `toCancel`, `toCreate`, `todo`, `unknown`, `waitingForChilds`, `waitingTodo` |
| `taskId` | integer | read-only | Task id |
| `type` | string | read-only | Task type |
| `userId` | integer | read-only | userId of the associated dedicatedCloud.User object |
| `vlanId` | integer | read-only | vlanId of the parent dedicatedCloud.Vlan object |

```json
{
  "createdBy": "string",
  "createdFrom": "string",
  "datacenterId": 0,
  "description": "string",
  "endDate": "2024-01-01T12:00:00Z",
  "executionDate": "2024-01-01T12:00:00Z",
  "filerId": 0,
  "hostId": 0,
  "lastModificationDate": "2024-01-01T12:00:00Z",
  "maintenanceDateFrom": "2024-01-01T12:00:00Z",
  "maintenanceDateTo": "2024-01-01T12:00:00Z",
  "name": "string",
  "network": "string",
  "networkAccessId": 0,
  "orderId": 0,
  "parentTaskId": 0,
  "progress": 0,
  "state": "canceled",
  "taskId": 0,
  "type": "string",
  "userId": 0,
  "vlanId": 0
}
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/requestHealthCheck" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/requestHealthCheck")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/requestHealthCheck");

print_r($result);
?>
```

## Link migration target virtual datacenter to Zerto disaster recovery

`POST /1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/startMigration`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/managed-vmware/managed-vmware-vsphere/backup-replication/zerto/#post-dedicatedcloud-servicename-datacenter-datacenterid-disasterrecovery-zerto-startmigration

**Status:** Stable production version  
**IAM actions:** `pccVMware:apiovh:datacenter/disasterRecovery/zerto/startMigration`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `datacenterId` | path | integer | yes | Id of the Datacenter |
| `serviceName` | path | string | yes | Domain of the service |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicatedCloud.Task | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdBy` | string | read-only | Creator of the task |
| `createdFrom` | string | read-only | Origin of the task |
| `datacenterId` | integer | read-only | datacenterId of the associated dedicatedCloud.Datacenter object |
| `description` | string | read-only | Current progress description |
| `endDate` | string (date-time) | read-only | Task end date |
| `executionDate` | string (date-time) | read-only | Task execution date |
| `filerId` | integer | read-only | filerId of the associated dedicatedCloud.Filer object |
| `hostId` | integer | read-only | hostId of the associated dedicatedCloud.Host object |
| `lastModificationDate` | string (date-time) | read-only | Task last modification date |
| `maintenanceDateFrom` | string (date-time) | read-only | Maintenance task min allowed execution date |
| `maintenanceDateTo` | string (date-time) | read-only | Maintenance task max allowed execution date |
| `name` | string | read-only | Task name |
| `network` | string | read-only | network of the associated dedicatedCloud.Ip object |
| `networkAccessId` | integer | read-only | networkAccessId of the associated dedicatedCloud.AllowedNetwork object |
| `orderId` | integer | read-only | orderId of the associated billing.Order object |
| `parentTaskId` | integer | read-only | taskId of the parent dedicatedCloud.Task object |
| `progress` | integer | read-only | Current progress |
| `state` | dedicatedCloud.TaskStateEnum | read-only | Current Task state — one of `canceled`, `doing`, `done`, `error`, `fixing`, `toCancel`, `toCreate`, `todo`, `unknown`, `waitingForChilds`, `waitingTodo` |
| `taskId` | integer | read-only | Task id |
| `type` | string | read-only | Task type |
| `userId` | integer | read-only | userId of the associated dedicatedCloud.User object |
| `vlanId` | integer | read-only | vlanId of the parent dedicatedCloud.Vlan object |

```json
{
  "createdBy": "string",
  "createdFrom": "string",
  "datacenterId": 0,
  "description": "string",
  "endDate": "2024-01-01T12:00:00Z",
  "executionDate": "2024-01-01T12:00:00Z",
  "filerId": 0,
  "hostId": 0,
  "lastModificationDate": "2024-01-01T12:00:00Z",
  "maintenanceDateFrom": "2024-01-01T12:00:00Z",
  "maintenanceDateTo": "2024-01-01T12:00:00Z",
  "name": "string",
  "network": "string",
  "networkAccessId": 0,
  "orderId": 0,
  "parentTaskId": 0,
  "progress": 0,
  "state": "canceled",
  "taskId": 0,
  "type": "string",
  "userId": 0,
  "vlanId": 0
}
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/startMigration" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/startMigration")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/startMigration");

print_r($result);
?>
```

## Get Zerto disaster recovery option status

`GET /1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/status`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/managed-vmware/managed-vmware-vsphere/backup-replication/zerto/#get-dedicatedcloud-servicename-datacenter-datacenterid-disasterrecovery-zerto-status

**Status:** Stable production version  
**IAM actions:** `pccVMware:apiovh:datacenter/disasterRecovery/zerto/status/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `datacenterId` | path | integer | yes | Id of the Datacenter |
| `serviceName` | path | string | yes | Domain of the service |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicatedCloud.disasterRecovery.Profile | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `drpType` | dedicatedCloud.disasterRecovery.DrpTypeEnum |  | Disaster Recovery Plan Type — one of `onPremise`, `ovh` |
| `localSiteInformation` | dedicatedCloud.disasterRecovery.LocalSiteDetails |  | Information about the site installed on this Dedicated Cloud |
| `localSiteInformation.endpointPublicIp` | ip |  | Local tunnel endpoint public Ip |
| `localSiteInformation.role` | dedicatedCloud.disasterRecovery.SiteRoleEnum |  | Zvm mode configured — one of `primary`, `secondary`, `single` |
| `localSiteInformation.state` | dedicatedCloud.StateEnum |  | State of the local Zvm — one of `available`, `delivered`, `disabled`, `disabling`, `error`, `migrating`, `provisionning`, `recycling`, `reserved`, `toDisable`, `toProvision`, `toRecycle`, … |
| `localSiteInformation.type` | dedicatedCloud.disasterRecovery.SiteTypeEnum |  | Type of hosting for the local datacenter — one of `onPremise`, `ovhPrivateCloud` |
| `localSiteInformation.vraNetwork` | ipv4Block |  | Internal zerto subnet of this infrastructure (ip/cidr) |
| `localSiteInformation.zertoVersion` | string |  | Installed version of Zerto |
| `localSiteInformation.zvmIp` | ip |  | Local Network Ip of the Zerto virtual manager |
| `remoteSiteInformation` | dedicatedCloud.disasterRecovery.RemoteSiteDetails |  | Deprecated - Information about the first remote paired site |
| `remoteSiteInformation.datacenterId` | integer |  | Datacenter Id (if hosted by OVH) |
| `remoteSiteInformation.datacenterName` | string |  | Datacenter name (if hosted by OVH) |
| `remoteSiteInformation.lastVpnConfig` | string (date-time) |  | Last VPN config change date (if type is onPremise) |
| `remoteSiteInformation.remoteEndpointInternalIp` | ipv4 |  | Stunnel endpoint internal IP (if type is onPremise) |
| `remoteSiteInformation.remoteEndpointPublicIp` | ipv4 |  | Stunnel endpoint public IP (if type is onPremise) |
| `remoteSiteInformation.remoteZvmInternalIp` | ipv4 |  | Remote ZVM IP (if type is onPremise) |
| `remoteSiteInformation.role` | dedicatedCloud.disasterRecovery.SiteRoleEnum |  | Zvm mode configured — one of `primary`, `secondary`, `single` |
| `remoteSiteInformation.serviceName` | string |  | Service name (if hosted by OVH) |
| `remoteSiteInformation.state` | dedicatedCloud.StateEnum |  | State of the remote Zvm — one of `available`, `delivered`, `disabled`, `disabling`, `error`, `migrating`, `provisionning`, `recycling`, `reserved`, `toDisable`, `toProvision`, `toRecycle`, … |
| `remoteSiteInformation.type` | dedicatedCloud.disasterRecovery.SiteTypeEnum |  | Type of hosting for the remote datacenter — one of `onPremise`, `ovhPrivateCloud` |
| `remoteSiteInformation.vpnConfigState` | dedicatedCloud.disasterRecovery.VpnConfigStateEnum |  | VPN configuration state (if type is onPremise) — one of `configured`, `configuring`, `error`, `notConfigured`, `tunnelError` |
| `remoteSiteInformation.vraNetwork` | ipv4Block |  | Internal zerto subnet of your infrastructure (ip/cidr) |
| `remoteSiteInformation.zertoVersion` | string |  | Installed version of Zerto |
| `remoteSitesInformation` | dedicatedCloud.disasterRecovery.RemoteSiteDetails[] |  | Information about the remote paired sites |
| `remoteSitesInformation[].datacenterId` | integer |  | Datacenter Id (if hosted by OVH) |
| `remoteSitesInformation[].datacenterName` | string |  | Datacenter name (if hosted by OVH) |
| `remoteSitesInformation[].lastVpnConfig` | string (date-time) |  | Last VPN config change date (if type is onPremise) |
| `remoteSitesInformation[].remoteEndpointInternalIp` | ipv4 |  | Stunnel endpoint internal IP (if type is onPremise) |
| `remoteSitesInformation[].remoteEndpointPublicIp` | ipv4 |  | Stunnel endpoint public IP (if type is onPremise) |
| `remoteSitesInformation[].remoteZvmInternalIp` | ipv4 |  | Remote ZVM IP (if type is onPremise) |
| `remoteSitesInformation[].role` | dedicatedCloud.disasterRecovery.SiteRoleEnum |  | Zvm mode configured — one of `primary`, `secondary`, `single` |
| `remoteSitesInformation[].serviceName` | string |  | Service name (if hosted by OVH) |
| `remoteSitesInformation[].state` | dedicatedCloud.StateEnum |  | State of the remote Zvm — one of `available`, `delivered`, `disabled`, `disabling`, `error`, `migrating`, `provisionning`, `recycling`, `reserved`, `toDisable`, `toProvision`, `toRecycle`, … |
| `remoteSitesInformation[].type` | dedicatedCloud.disasterRecovery.SiteTypeEnum |  | Type of hosting for the remote datacenter — one of `onPremise`, `ovhPrivateCloud` |
| `remoteSitesInformation[].vpnConfigState` | dedicatedCloud.disasterRecovery.VpnConfigStateEnum |  | VPN configuration state (if type is onPremise) — one of `configured`, `configuring`, `error`, `notConfigured`, `tunnelError` |
| `remoteSitesInformation[].vraNetwork` | ipv4Block |  | Internal zerto subnet of your infrastructure (ip/cidr) |
| `remoteSitesInformation[].zertoVersion` | string |  | Installed version of Zerto |
| `state` | dedicatedCloud.StateEnum |  | State of the disaster recovery service — one of `available`, `delivered`, `disabled`, `disabling`, `error`, `migrating`, `provisionning`, `recycling`, `reserved`, `toDisable`, `toProvision`, `toRecycle`, … |
| `systemVersion` | string |  | Technical solution used |

```json
{
  "drpType": "onPremise",
  "localSiteInformation": {
    "endpointPublicIp": "192.0.2.0",
    "role": "primary",
    "state": "available",
    "type": "onPremise",
    "vraNetwork": "192.0.2.0/24",
    "zertoVersion": "string",
    "zvmIp": "192.0.2.0"
  },
  "remoteSiteInformation": {
    "datacenterId": 0,
    "datacenterName": "string",
    "lastVpnConfig": "2024-01-01T12:00:00Z",
    "remoteEndpointInternalIp": "192.0.2.0",
    "remoteEndpointPublicIp": "192.0.2.0",
    "remoteZvmInternalIp": "192.0.2.0",
    "role": "primary",
    "serviceName": "string",
    "state": "available",
    "type": "onPremise",
    "vpnConfigState": "configured",
    "vraNetwork": "192.0.2.0/24",
    "zertoVersion": "string"
  },
  "remoteSitesInformation": [
    {
      "datacenterId": 0,
      "datacenterName": "string",
      "lastVpnConfig": "2024-01-01T12:00:00Z",
      "remoteEndpointInternalIp": "192.0.2.0",
      "remoteEndpointPublicIp": "192.0.2.0",
      "remoteZvmInternalIp": "192.0.2.0",
      "role": "primary",
      "serviceName": "string",
      "state": "available",
      "type": "onPremise",
      "vpnConfigState": "configured",
      "vraNetwork": "192.0.2.0/24",
      "zertoVersion": "string"
    }
  ],
  "state": "available",
  "systemVersion": "string"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/status" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/status")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/status");

print_r($result);
?>
```

## List Zerto disaster recovery protected virtual machines

`GET /1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/usageReport`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/managed-vmware/managed-vmware-vsphere/backup-replication/zerto/#get-dedicatedcloud-servicename-datacenter-datacenterid-disasterrecovery-zerto-usagereport

**Status:** Stable production version  
**IAM actions:** `pccVMware:apiovh:datacenter/disasterRecovery/zerto/usageReport/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `datacenterId` | path | integer | yes | Id of the Datacenter |
| `month` | query | integer | yes | Billing month |
| `serviceName` | path | string | yes | Domain of the service |
| `year` | query | integer | yes | Billing year |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicatedCloud.disasterRecovery.ZertoProtectedVm[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `fromDate` | string (date-time) |  | Start of the backup for the requested period |
| `protectedSite` | string |  | Name of the site in which the VM is running |
| `recoverySite` | string |  | Name of the site where the VM is backed up |
| `vmId` | string |  | ID of the protected VM |
| `vmName` | string |  | Name of the protected VM |
| `vpgName` | string |  | Name of the virtual protection group in which the VM is located |

```json
[
  {
    "fromDate": "2024-01-01T12:00:00Z",
    "protectedSite": "string",
    "recoverySite": "string",
    "vmId": "string",
    "vmName": "string",
    "vpgName": "string"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/usageReport" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/usageReport")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/usageReport");

print_r($result);
?>
```

## Lists all Zerto VRAs along with their allocated CPU and RAM resources

`GET /1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/vraResources`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/managed-vmware/managed-vmware-vsphere/backup-replication/zerto/#get-dedicatedcloud-servicename-datacenter-datacenterid-disasterrecovery-zerto-vraresources

**Status:** Stable production version  
**IAM actions:** `pccVMware:apiovh:datacenter/disasterRecovery/zerto/vraResources/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `datacenterId` | path | integer | yes | Id of the Datacenter |
| `serviceName` | path | string | yes | Domain of the service |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicatedCloud.disasterRecovery.ZertoVrasResource[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `cpu` | integer |  | Number of CPUs of VRA VM |
| `memory` | integer |  | Memory of VRA vm in GB |
| `vmId` | integer |  | ID of the Vra |
| `vraName` | string |  | Name of the VRA VM |

```json
[
  {
    "cpu": 0,
    "memory": 0,
    "vmId": 0,
    "vraName": "string"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/vraResources" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/vraResources")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/vraResources");

print_r($result);
?>
```

## Updates the CPU and RAM resources allocated to a specified Zerto VRA

`POST /1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/vraResources`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/managed-vmware/managed-vmware-vsphere/backup-replication/zerto/#post-dedicatedcloud-servicename-datacenter-datacenterid-disasterrecovery-zerto-vraresources

**Status:** Stable production version  
**IAM actions:** `pccVMware:apiovh:datacenter/disasterRecovery/zerto/vraResources/create`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `datacenterId` | path | integer | yes | Id of the Datacenter |
| `serviceName` | path | string | yes | Domain of the service |

### Request body (required)

Type: `object`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `resourcesSize` | dedicatedCloud.disasterRecovery.ZertoVraResourceSizeEnum | yes | The desired CPU and RAM configuration for the VRA — one of `L`, `S`, `XL`, `XS` |
| `vmId` | integer | yes | The unique identifier of the VRA vm |

```json
{
  "resourcesSize": "L",
  "vmId": 0
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicatedCloud.Task | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdBy` | string | read-only | Creator of the task |
| `createdFrom` | string | read-only | Origin of the task |
| `datacenterId` | integer | read-only | datacenterId of the associated dedicatedCloud.Datacenter object |
| `description` | string | read-only | Current progress description |
| `endDate` | string (date-time) | read-only | Task end date |
| `executionDate` | string (date-time) | read-only | Task execution date |
| `filerId` | integer | read-only | filerId of the associated dedicatedCloud.Filer object |
| `hostId` | integer | read-only | hostId of the associated dedicatedCloud.Host object |
| `lastModificationDate` | string (date-time) | read-only | Task last modification date |
| `maintenanceDateFrom` | string (date-time) | read-only | Maintenance task min allowed execution date |
| `maintenanceDateTo` | string (date-time) | read-only | Maintenance task max allowed execution date |
| `name` | string | read-only | Task name |
| `network` | string | read-only | network of the associated dedicatedCloud.Ip object |
| `networkAccessId` | integer | read-only | networkAccessId of the associated dedicatedCloud.AllowedNetwork object |
| `orderId` | integer | read-only | orderId of the associated billing.Order object |
| `parentTaskId` | integer | read-only | taskId of the parent dedicatedCloud.Task object |
| `progress` | integer | read-only | Current progress |
| `state` | dedicatedCloud.TaskStateEnum | read-only | Current Task state — one of `canceled`, `doing`, `done`, `error`, `fixing`, `toCancel`, `toCreate`, `todo`, `unknown`, `waitingForChilds`, `waitingTodo` |
| `taskId` | integer | read-only | Task id |
| `type` | string | read-only | Task type |
| `userId` | integer | read-only | userId of the associated dedicatedCloud.User object |
| `vlanId` | integer | read-only | vlanId of the parent dedicatedCloud.Vlan object |

```json
{
  "createdBy": "string",
  "createdFrom": "string",
  "datacenterId": 0,
  "description": "string",
  "endDate": "2024-01-01T12:00:00Z",
  "executionDate": "2024-01-01T12:00:00Z",
  "filerId": 0,
  "hostId": 0,
  "lastModificationDate": "2024-01-01T12:00:00Z",
  "maintenanceDateFrom": "2024-01-01T12:00:00Z",
  "maintenanceDateTo": "2024-01-01T12:00:00Z",
  "name": "string",
  "network": "string",
  "networkAccessId": 0,
  "orderId": 0,
  "parentTaskId": 0,
  "progress": 0,
  "state": "canceled",
  "taskId": 0,
  "type": "string",
  "userId": 0,
  "vlanId": 0
}
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/vraResources" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/vraResources",
	resourcesSize = None, # The desired CPU and RAM configuration for the VRA (type: dedicatedCloud.disasterRecovery.ZertoVraResourceSizeEnum)
	vmId = None, # The unique identifier of the VRA vm (type: long)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zerto/vraResources", array(
	resourcesSize => null, // The desired CPU and RAM configuration for the VRA (type: dedicatedCloud.disasterRecovery.ZertoVraResourceSizeEnum)
	vmId => null, // The unique identifier of the VRA vm (type: long)
));

print_r($result);
?>
```

## Configure VPN for Zerto disaster recovery between VMware on OVHcloud infrastructure and onsite infrastructure

`POST /1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/configureVpn`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/managed-vmware/managed-vmware-vsphere/backup-replication/zerto/#post-dedicatedcloud-servicename-datacenter-datacenterid-disasterrecovery-zertosingle-configurevpn

**Status:** Deprecated, will be removed  
**Deprecated** since 2025-09-15, removed on 2026-01-15; use `/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/remoteSites` instead.  
**IAM actions:** `pccVMware:apiovh:datacenter/disasterRecovery/zertoSingle/configureVpn`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `datacenterId` | path | integer | yes | Id of the Datacenter |
| `serviceName` | path | string | yes | Domain of the service |

### Request body (required)

Type: `object`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `preSharedKey` | string (password) | yes | Pre-Shared Key to secure data transfer between both sites |
| `remoteEndpointInternalIp` | ipv4 | yes | Your onsite endpoint internal IP for the secured replication data tunnel |
| `remoteEndpointPublicIp` | ipv4 | yes | Your onsite endpoint public IP for the secured replication data tunnel |
| `remoteVraNetwork` | ipv4Block |  | Internal zerto subnet of your onsite infrastructure (ip/cidr) |
| `remoteZvmInternalIp` | ipv4 | yes | Internal ZVM ip of your onsite infrastructure |

```json
{
  "preSharedKey": "string",
  "remoteEndpointInternalIp": "192.0.2.0",
  "remoteEndpointPublicIp": "192.0.2.0",
  "remoteVraNetwork": "192.0.2.0/24",
  "remoteZvmInternalIp": "192.0.2.0"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicatedCloud.Task | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdBy` | string | read-only | Creator of the task |
| `createdFrom` | string | read-only | Origin of the task |
| `datacenterId` | integer | read-only | datacenterId of the associated dedicatedCloud.Datacenter object |
| `description` | string | read-only | Current progress description |
| `endDate` | string (date-time) | read-only | Task end date |
| `executionDate` | string (date-time) | read-only | Task execution date |
| `filerId` | integer | read-only | filerId of the associated dedicatedCloud.Filer object |
| `hostId` | integer | read-only | hostId of the associated dedicatedCloud.Host object |
| `lastModificationDate` | string (date-time) | read-only | Task last modification date |
| `maintenanceDateFrom` | string (date-time) | read-only | Maintenance task min allowed execution date |
| `maintenanceDateTo` | string (date-time) | read-only | Maintenance task max allowed execution date |
| `name` | string | read-only | Task name |
| `network` | string | read-only | network of the associated dedicatedCloud.Ip object |
| `networkAccessId` | integer | read-only | networkAccessId of the associated dedicatedCloud.AllowedNetwork object |
| `orderId` | integer | read-only | orderId of the associated billing.Order object |
| `parentTaskId` | integer | read-only | taskId of the parent dedicatedCloud.Task object |
| `progress` | integer | read-only | Current progress |
| `state` | dedicatedCloud.TaskStateEnum | read-only | Current Task state — one of `canceled`, `doing`, `done`, `error`, `fixing`, `toCancel`, `toCreate`, `todo`, `unknown`, `waitingForChilds`, `waitingTodo` |
| `taskId` | integer | read-only | Task id |
| `type` | string | read-only | Task type |
| `userId` | integer | read-only | userId of the associated dedicatedCloud.User object |
| `vlanId` | integer | read-only | vlanId of the parent dedicatedCloud.Vlan object |

```json
{
  "createdBy": "string",
  "createdFrom": "string",
  "datacenterId": 0,
  "description": "string",
  "endDate": "2024-01-01T12:00:00Z",
  "executionDate": "2024-01-01T12:00:00Z",
  "filerId": 0,
  "hostId": 0,
  "lastModificationDate": "2024-01-01T12:00:00Z",
  "maintenanceDateFrom": "2024-01-01T12:00:00Z",
  "maintenanceDateTo": "2024-01-01T12:00:00Z",
  "name": "string",
  "network": "string",
  "networkAccessId": 0,
  "orderId": 0,
  "parentTaskId": 0,
  "progress": 0,
  "state": "canceled",
  "taskId": 0,
  "type": "string",
  "userId": 0,
  "vlanId": 0
}
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/configureVpn" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: ipv4
result = client.post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/configureVpn",
	preSharedKey = None, # Pre-Shared Key to secure data transfer between both sites (type: password)
	remoteEndpointInternalIp = None, # Your onsite endpoint internal IP for the secured replication data tunnel (type: ipv4)
	remoteEndpointPublicIp = None, # Your onsite endpoint public IP for the secured replication data tunnel (type: ipv4)
	remoteVraNetwork = None, # Internal zerto subnet of your onsite infrastructure (ip/cidr) (type: ipv4Block, nullable)
	remoteZvmInternalIp = None, # Internal ZVM ip of your onsite infrastructure (type: ipv4)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: ipv4
$result = $ovh->post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/configureVpn", array(
	preSharedKey => null, // Pre-Shared Key to secure data transfer between both sites (type: password)
	remoteEndpointInternalIp => null, // Your onsite endpoint internal IP for the secured replication data tunnel (type: ipv4)
	remoteEndpointPublicIp => null, // Your onsite endpoint public IP for the secured replication data tunnel (type: ipv4)
	remoteVraNetwork => null, // Internal zerto subnet of your onsite infrastructure (ip/cidr) (type: ipv4Block, nullable)
	remoteZvmInternalIp => null, // Internal ZVM ip of your onsite infrastructure (type: ipv4)
));

print_r($result);
?>
```

## Get Zerto disaster recovery default suggested local VRA subnet

`GET /1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/defaultLocalVraNetwork`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/managed-vmware/managed-vmware-vsphere/backup-replication/zerto/#get-dedicatedcloud-servicename-datacenter-datacenterid-disasterrecovery-zertosingle-defaultlocalvranetwork

**Status:** Stable production version  
**IAM actions:** `pccVMware:apiovh:datacenter/disasterRecovery/zertoSingle/defaultLocalVraNetwork/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `datacenterId` | path | integer | yes | Id of the Datacenter |
| `serviceName` | path | string | yes | Domain of the service |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | ipv4Block | successful operation |

```json
"192.0.2.0/24"
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/defaultLocalVraNetwork" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/defaultLocalVraNetwork")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/defaultLocalVraNetwork");

print_r($result);
?>
```

## Disable Zerto disaster recovery between VMware on OVHcloud infrastructure and onsite infrastructure

`POST /1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/disable`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/managed-vmware/managed-vmware-vsphere/backup-replication/zerto/#post-dedicatedcloud-servicename-datacenter-datacenterid-disasterrecovery-zertosingle-disable

**Status:** Stable production version  
**IAM actions:** `pccVMware:apiovh:datacenter/disasterRecovery/zertoSingle/disable`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `datacenterId` | path | integer | yes | Id of the Datacenter |
| `serviceName` | path | string | yes | Domain of the service |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicatedCloud.Task | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdBy` | string | read-only | Creator of the task |
| `createdFrom` | string | read-only | Origin of the task |
| `datacenterId` | integer | read-only | datacenterId of the associated dedicatedCloud.Datacenter object |
| `description` | string | read-only | Current progress description |
| `endDate` | string (date-time) | read-only | Task end date |
| `executionDate` | string (date-time) | read-only | Task execution date |
| `filerId` | integer | read-only | filerId of the associated dedicatedCloud.Filer object |
| `hostId` | integer | read-only | hostId of the associated dedicatedCloud.Host object |
| `lastModificationDate` | string (date-time) | read-only | Task last modification date |
| `maintenanceDateFrom` | string (date-time) | read-only | Maintenance task min allowed execution date |
| `maintenanceDateTo` | string (date-time) | read-only | Maintenance task max allowed execution date |
| `name` | string | read-only | Task name |
| `network` | string | read-only | network of the associated dedicatedCloud.Ip object |
| `networkAccessId` | integer | read-only | networkAccessId of the associated dedicatedCloud.AllowedNetwork object |
| `orderId` | integer | read-only | orderId of the associated billing.Order object |
| `parentTaskId` | integer | read-only | taskId of the parent dedicatedCloud.Task object |
| `progress` | integer | read-only | Current progress |
| `state` | dedicatedCloud.TaskStateEnum | read-only | Current Task state — one of `canceled`, `doing`, `done`, `error`, `fixing`, `toCancel`, `toCreate`, `todo`, `unknown`, `waitingForChilds`, `waitingTodo` |
| `taskId` | integer | read-only | Task id |
| `type` | string | read-only | Task type |
| `userId` | integer | read-only | userId of the associated dedicatedCloud.User object |
| `vlanId` | integer | read-only | vlanId of the parent dedicatedCloud.Vlan object |

```json
{
  "createdBy": "string",
  "createdFrom": "string",
  "datacenterId": 0,
  "description": "string",
  "endDate": "2024-01-01T12:00:00Z",
  "executionDate": "2024-01-01T12:00:00Z",
  "filerId": 0,
  "hostId": 0,
  "lastModificationDate": "2024-01-01T12:00:00Z",
  "maintenanceDateFrom": "2024-01-01T12:00:00Z",
  "maintenanceDateTo": "2024-01-01T12:00:00Z",
  "name": "string",
  "network": "string",
  "networkAccessId": 0,
  "orderId": 0,
  "parentTaskId": 0,
  "progress": 0,
  "state": "canceled",
  "taskId": 0,
  "type": "string",
  "userId": 0,
  "vlanId": 0
}
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/disable" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/disable")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/disable");

print_r($result);
?>
```

## Enable Zerto disaster recovery between VMware on OVHcloud infrastructure and onsite infrastructure

`POST /1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/enable`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/managed-vmware/managed-vmware-vsphere/backup-replication/zerto/#post-dedicatedcloud-servicename-datacenter-datacenterid-disasterrecovery-zertosingle-enable

**Status:** Deprecated, will be removed  
**Deprecated** since 2019-06-01, removed on 2019-07-01; use `/order/cart/{cartId}/privateCloud` instead.  
**IAM actions:** `pccVMware:apiovh:datacenter/disasterRecovery/zertoSingle/enable`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `datacenterId` | path | integer | yes | Id of the Datacenter |
| `serviceName` | path | string | yes | Domain of the service |

### Request body (required)

Type: `object`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `localVraNetwork` | ipBlock | yes | Internal zerto subnet for your OVH VMware on OVHcloud (ip/cidr) |
| `ovhEndpointIp` | ip | yes | Your OVH VMware on OVHcloud public IP for the secured replication data tunnel endpoint |
| `remoteVraNetwork` | ipBlock |  | Deprecated - Internal zerto subnet of your onsite infrastructure (ip/cidr) |

```json
{
  "localVraNetwork": "192.0.2.0/24",
  "ovhEndpointIp": "192.0.2.0",
  "remoteVraNetwork": "192.0.2.0/24"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicatedCloud.Task | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdBy` | string | read-only | Creator of the task |
| `createdFrom` | string | read-only | Origin of the task |
| `datacenterId` | integer | read-only | datacenterId of the associated dedicatedCloud.Datacenter object |
| `description` | string | read-only | Current progress description |
| `endDate` | string (date-time) | read-only | Task end date |
| `executionDate` | string (date-time) | read-only | Task execution date |
| `filerId` | integer | read-only | filerId of the associated dedicatedCloud.Filer object |
| `hostId` | integer | read-only | hostId of the associated dedicatedCloud.Host object |
| `lastModificationDate` | string (date-time) | read-only | Task last modification date |
| `maintenanceDateFrom` | string (date-time) | read-only | Maintenance task min allowed execution date |
| `maintenanceDateTo` | string (date-time) | read-only | Maintenance task max allowed execution date |
| `name` | string | read-only | Task name |
| `network` | string | read-only | network of the associated dedicatedCloud.Ip object |
| `networkAccessId` | integer | read-only | networkAccessId of the associated dedicatedCloud.AllowedNetwork object |
| `orderId` | integer | read-only | orderId of the associated billing.Order object |
| `parentTaskId` | integer | read-only | taskId of the parent dedicatedCloud.Task object |
| `progress` | integer | read-only | Current progress |
| `state` | dedicatedCloud.TaskStateEnum | read-only | Current Task state — one of `canceled`, `doing`, `done`, `error`, `fixing`, `toCancel`, `toCreate`, `todo`, `unknown`, `waitingForChilds`, `waitingTodo` |
| `taskId` | integer | read-only | Task id |
| `type` | string | read-only | Task type |
| `userId` | integer | read-only | userId of the associated dedicatedCloud.User object |
| `vlanId` | integer | read-only | vlanId of the parent dedicatedCloud.Vlan object |

```json
{
  "createdBy": "string",
  "createdFrom": "string",
  "datacenterId": 0,
  "description": "string",
  "endDate": "2024-01-01T12:00:00Z",
  "executionDate": "2024-01-01T12:00:00Z",
  "filerId": 0,
  "hostId": 0,
  "lastModificationDate": "2024-01-01T12:00:00Z",
  "maintenanceDateFrom": "2024-01-01T12:00:00Z",
  "maintenanceDateTo": "2024-01-01T12:00:00Z",
  "name": "string",
  "network": "string",
  "networkAccessId": 0,
  "orderId": 0,
  "parentTaskId": 0,
  "progress": 0,
  "state": "canceled",
  "taskId": 0,
  "type": "string",
  "userId": 0,
  "vlanId": 0
}
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/enable" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: ipBlock
result = client.post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/enable",
	localVraNetwork = None, # Internal zerto subnet for your OVH VMware on OVHcloud (ip/cidr) (type: ipBlock)
	ovhEndpointIp = None, # Your OVH VMware on OVHcloud public IP for the secured replication data tunnel endpoint (type: ip)
	remoteVraNetwork = None, # Deprecated - Internal zerto subnet of your onsite infrastructure (ip/cidr) (type: ipBlock, nullable)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: ipBlock
$result = $ovh->post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/enable", array(
	localVraNetwork => null, // Internal zerto subnet for your OVH VMware on OVHcloud (ip/cidr) (type: ipBlock)
	ovhEndpointIp => null, // Your OVH VMware on OVHcloud public IP for the secured replication data tunnel endpoint (type: ip)
	remoteVraNetwork => null, // Deprecated - Internal zerto subnet of your onsite infrastructure (ip/cidr) (type: ipBlock, nullable)
));

print_r($result);
?>
```

## Change the IP address used by Zerto disaster recovery endpoint for public network access

`POST /1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/endpointPublicIp`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/managed-vmware/managed-vmware-vsphere/backup-replication/zerto/#post-dedicatedcloud-servicename-datacenter-datacenterid-disasterrecovery-zertosingle-endpointpublicip

**Status:** Stable production version  
**IAM actions:** `pccVMware:apiovh:datacenter/disasterRecovery/zertoSingle/endpointPublicIp`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `datacenterId` | path | integer | yes | Id of the Datacenter |
| `serviceName` | path | string | yes | Domain of the service |

### Request body (required)

Type: `object`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `newEndpointPublicIp` | ip | yes | Your new public IP on your VMware on OVHcloud for the secured replication data tunnel endpoint |

```json
{
  "newEndpointPublicIp": "192.0.2.0"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicatedCloud.Task | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdBy` | string | read-only | Creator of the task |
| `createdFrom` | string | read-only | Origin of the task |
| `datacenterId` | integer | read-only | datacenterId of the associated dedicatedCloud.Datacenter object |
| `description` | string | read-only | Current progress description |
| `endDate` | string (date-time) | read-only | Task end date |
| `executionDate` | string (date-time) | read-only | Task execution date |
| `filerId` | integer | read-only | filerId of the associated dedicatedCloud.Filer object |
| `hostId` | integer | read-only | hostId of the associated dedicatedCloud.Host object |
| `lastModificationDate` | string (date-time) | read-only | Task last modification date |
| `maintenanceDateFrom` | string (date-time) | read-only | Maintenance task min allowed execution date |
| `maintenanceDateTo` | string (date-time) | read-only | Maintenance task max allowed execution date |
| `name` | string | read-only | Task name |
| `network` | string | read-only | network of the associated dedicatedCloud.Ip object |
| `networkAccessId` | integer | read-only | networkAccessId of the associated dedicatedCloud.AllowedNetwork object |
| `orderId` | integer | read-only | orderId of the associated billing.Order object |
| `parentTaskId` | integer | read-only | taskId of the parent dedicatedCloud.Task object |
| `progress` | integer | read-only | Current progress |
| `state` | dedicatedCloud.TaskStateEnum | read-only | Current Task state — one of `canceled`, `doing`, `done`, `error`, `fixing`, `toCancel`, `toCreate`, `todo`, `unknown`, `waitingForChilds`, `waitingTodo` |
| `taskId` | integer | read-only | Task id |
| `type` | string | read-only | Task type |
| `userId` | integer | read-only | userId of the associated dedicatedCloud.User object |
| `vlanId` | integer | read-only | vlanId of the parent dedicatedCloud.Vlan object |

```json
{
  "createdBy": "string",
  "createdFrom": "string",
  "datacenterId": 0,
  "description": "string",
  "endDate": "2024-01-01T12:00:00Z",
  "executionDate": "2024-01-01T12:00:00Z",
  "filerId": 0,
  "hostId": 0,
  "lastModificationDate": "2024-01-01T12:00:00Z",
  "maintenanceDateFrom": "2024-01-01T12:00:00Z",
  "maintenanceDateTo": "2024-01-01T12:00:00Z",
  "name": "string",
  "network": "string",
  "networkAccessId": 0,
  "orderId": 0,
  "parentTaskId": 0,
  "progress": 0,
  "state": "canceled",
  "taskId": 0,
  "type": "string",
  "userId": 0,
  "vlanId": 0
}
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/endpointPublicIp" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: ip
result = client.post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/endpointPublicIp",
	newEndpointPublicIp = None, # Your new public IP on your VMware on OVHcloud for the secured replication data tunnel endpoint (type: ip)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: ip
$result = $ovh->post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/endpointPublicIp", array(
	newEndpointPublicIp => null, // Your new public IP on your VMware on OVHcloud for the secured replication data tunnel endpoint (type: ip)
));

print_r($result);
?>
```

## List Zerto disaster recovery remote sites

`GET /1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/remoteSites`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/managed-vmware/managed-vmware-vsphere/backup-replication/zerto/#get-dedicatedcloud-servicename-datacenter-datacenterid-disasterrecovery-zertosingle-remotesites

**Status:** Stable production version  
**IAM actions:** `pccVMware:apiovh:datacenter/disasterRecovery/zertoSingle/remoteSites/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `datacenterId` | path | integer | yes | Id of the Datacenter |
| `serviceName` | path | string | yes | Domain of the service |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicatedCloud.disasterRecovery.ZertoRemoteVra[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | integer |  | ID of the remote Vra Network |
| `label` | string |  | Name given to this network |
| `remoteEndpointPublicIp` | ip |  | Your onsite endpoint public IP for the secured replication data tunnel |
| `remoteVraNetwork` | ipBlock |  | Internal zerto subnet of your onsite infrastructure (ip/cidr) |
| `remoteZvmInternalIp` | ip |  | Internal ZVM ip on your onsite infrastructure local network |
| `state` | dedicatedCloud.optionAccessNetwork.StateEnum |  | Current state of your current Zerto remote site — one of `creating`, `deleting`, `delivered`, `error`, `toCreate`, `toDelete`, `toUpdate`, `unknown`, `updating` |

```json
[
  {
    "id": 0,
    "label": "string",
    "remoteEndpointPublicIp": "192.0.2.0",
    "remoteVraNetwork": "192.0.2.0/24",
    "remoteZvmInternalIp": "192.0.2.0",
    "state": "creating"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/remoteSites" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/remoteSites")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/remoteSites");

print_r($result);
?>
```

## Create Zerto disaster recovery remote site on VPN endpoint

`POST /1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/remoteSites`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/managed-vmware/managed-vmware-vsphere/backup-replication/zerto/#post-dedicatedcloud-servicename-datacenter-datacenterid-disasterrecovery-zertosingle-remotesites

**Status:** Stable production version  
**IAM actions:** `pccVMware:apiovh:datacenter/disasterRecovery/zertoSingle/remoteSites/create`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `datacenterId` | path | integer | yes | Id of the Datacenter |
| `serviceName` | path | string | yes | Domain of the service |

### Request body (required)

Type: `object`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `label` | string | yes | The name for this connection |
| `preSharedKey` | string (password) | yes | Pre-Shared Key to secure data transfer between both sites |
| `remoteEndpointPublicIp` | ipv4 | yes | Your onsite endpoint public IP for the secured replication data tunnel |
| `remoteVraNetwork` | ipv4Block | yes | Internal zerto subnet of your onsite infrastructure (ip/cidr) |
| `remoteZvmInternalIp` | ipv4 | yes | Internal ZVM ip of your onsite infrastructure |

```json
{
  "label": "string",
  "preSharedKey": "string",
  "remoteEndpointPublicIp": "192.0.2.0",
  "remoteVraNetwork": "192.0.2.0/24",
  "remoteZvmInternalIp": "192.0.2.0"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicatedCloud.Task | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdBy` | string | read-only | Creator of the task |
| `createdFrom` | string | read-only | Origin of the task |
| `datacenterId` | integer | read-only | datacenterId of the associated dedicatedCloud.Datacenter object |
| `description` | string | read-only | Current progress description |
| `endDate` | string (date-time) | read-only | Task end date |
| `executionDate` | string (date-time) | read-only | Task execution date |
| `filerId` | integer | read-only | filerId of the associated dedicatedCloud.Filer object |
| `hostId` | integer | read-only | hostId of the associated dedicatedCloud.Host object |
| `lastModificationDate` | string (date-time) | read-only | Task last modification date |
| `maintenanceDateFrom` | string (date-time) | read-only | Maintenance task min allowed execution date |
| `maintenanceDateTo` | string (date-time) | read-only | Maintenance task max allowed execution date |
| `name` | string | read-only | Task name |
| `network` | string | read-only | network of the associated dedicatedCloud.Ip object |
| `networkAccessId` | integer | read-only | networkAccessId of the associated dedicatedCloud.AllowedNetwork object |
| `orderId` | integer | read-only | orderId of the associated billing.Order object |
| `parentTaskId` | integer | read-only | taskId of the parent dedicatedCloud.Task object |
| `progress` | integer | read-only | Current progress |
| `state` | dedicatedCloud.TaskStateEnum | read-only | Current Task state — one of `canceled`, `doing`, `done`, `error`, `fixing`, `toCancel`, `toCreate`, `todo`, `unknown`, `waitingForChilds`, `waitingTodo` |
| `taskId` | integer | read-only | Task id |
| `type` | string | read-only | Task type |
| `userId` | integer | read-only | userId of the associated dedicatedCloud.User object |
| `vlanId` | integer | read-only | vlanId of the parent dedicatedCloud.Vlan object |

```json
{
  "createdBy": "string",
  "createdFrom": "string",
  "datacenterId": 0,
  "description": "string",
  "endDate": "2024-01-01T12:00:00Z",
  "executionDate": "2024-01-01T12:00:00Z",
  "filerId": 0,
  "hostId": 0,
  "lastModificationDate": "2024-01-01T12:00:00Z",
  "maintenanceDateFrom": "2024-01-01T12:00:00Z",
  "maintenanceDateTo": "2024-01-01T12:00:00Z",
  "name": "string",
  "network": "string",
  "networkAccessId": 0,
  "orderId": 0,
  "parentTaskId": 0,
  "progress": 0,
  "state": "canceled",
  "taskId": 0,
  "type": "string",
  "userId": 0,
  "vlanId": 0
}
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/remoteSites" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: ipv4
result = client.post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/remoteSites",
	label = None, # The name for this connection (type: string)
	preSharedKey = None, # Pre-Shared Key to secure data transfer between both sites (type: password)
	remoteEndpointPublicIp = None, # Your onsite endpoint public IP for the secured replication data tunnel (type: ipv4)
	remoteVraNetwork = None, # Internal zerto subnet of your onsite infrastructure (ip/cidr) (type: ipv4Block)
	remoteZvmInternalIp = None, # Internal ZVM ip of your onsite infrastructure (type: ipv4)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: ipv4
$result = $ovh->post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/remoteSites", array(
	label => null, // The name for this connection (type: string)
	preSharedKey => null, // Pre-Shared Key to secure data transfer between both sites (type: password)
	remoteEndpointPublicIp => null, // Your onsite endpoint public IP for the secured replication data tunnel (type: ipv4)
	remoteVraNetwork => null, // Internal zerto subnet of your onsite infrastructure (ip/cidr) (type: ipv4Block)
	remoteZvmInternalIp => null, // Internal ZVM ip of your onsite infrastructure (type: ipv4)
));

print_r($result);
?>
```

## Remove Zerto disaster recovery remote site

`DELETE /1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/remoteSites`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/managed-vmware/managed-vmware-vsphere/backup-replication/zerto/#delete-dedicatedcloud-servicename-datacenter-datacenterid-disasterrecovery-zertosingle-remotesites

**Status:** Stable production version  
**IAM actions:** `pccVMware:apiovh:datacenter/disasterRecovery/zertoSingle/remoteSites/delete`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `datacenterId` | path | integer | yes | Id of the Datacenter |
| `id` | query | integer | yes | The id number of the network to remove (as returned by a GET call) |
| `serviceName` | path | string | yes | Domain of the service |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicatedCloud.Task | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdBy` | string | read-only | Creator of the task |
| `createdFrom` | string | read-only | Origin of the task |
| `datacenterId` | integer | read-only | datacenterId of the associated dedicatedCloud.Datacenter object |
| `description` | string | read-only | Current progress description |
| `endDate` | string (date-time) | read-only | Task end date |
| `executionDate` | string (date-time) | read-only | Task execution date |
| `filerId` | integer | read-only | filerId of the associated dedicatedCloud.Filer object |
| `hostId` | integer | read-only | hostId of the associated dedicatedCloud.Host object |
| `lastModificationDate` | string (date-time) | read-only | Task last modification date |
| `maintenanceDateFrom` | string (date-time) | read-only | Maintenance task min allowed execution date |
| `maintenanceDateTo` | string (date-time) | read-only | Maintenance task max allowed execution date |
| `name` | string | read-only | Task name |
| `network` | string | read-only | network of the associated dedicatedCloud.Ip object |
| `networkAccessId` | integer | read-only | networkAccessId of the associated dedicatedCloud.AllowedNetwork object |
| `orderId` | integer | read-only | orderId of the associated billing.Order object |
| `parentTaskId` | integer | read-only | taskId of the parent dedicatedCloud.Task object |
| `progress` | integer | read-only | Current progress |
| `state` | dedicatedCloud.TaskStateEnum | read-only | Current Task state — one of `canceled`, `doing`, `done`, `error`, `fixing`, `toCancel`, `toCreate`, `todo`, `unknown`, `waitingForChilds`, `waitingTodo` |
| `taskId` | integer | read-only | Task id |
| `type` | string | read-only | Task type |
| `userId` | integer | read-only | userId of the associated dedicatedCloud.User object |
| `vlanId` | integer | read-only | vlanId of the parent dedicatedCloud.Vlan object |

```json
{
  "createdBy": "string",
  "createdFrom": "string",
  "datacenterId": 0,
  "description": "string",
  "endDate": "2024-01-01T12:00:00Z",
  "executionDate": "2024-01-01T12:00:00Z",
  "filerId": 0,
  "hostId": 0,
  "lastModificationDate": "2024-01-01T12:00:00Z",
  "maintenanceDateFrom": "2024-01-01T12:00:00Z",
  "maintenanceDateTo": "2024-01-01T12:00:00Z",
  "name": "string",
  "network": "string",
  "networkAccessId": 0,
  "orderId": 0,
  "parentTaskId": 0,
  "progress": 0,
  "state": "canceled",
  "taskId": 0,
  "type": "string",
  "userId": 0,
  "vlanId": 0
}
```

### Example

```bash
curl -X DELETE \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/remoteSites" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.delete("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/remoteSites")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->delete("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/remoteSites");

print_r($result);
?>
```

## Request Zerto disaster recovery pairing token for onsite infrastructure

`POST /1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/requestPairingToken`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/managed-vmware/managed-vmware-vsphere/backup-replication/zerto/#post-dedicatedcloud-servicename-datacenter-datacenterid-disasterrecovery-zertosingle-requestpairingtoken

**Status:** Stable production version  
**IAM actions:** `pccVMware:apiovh:datacenter/disasterRecovery/zertoSingle/requestPairingToken`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `datacenterId` | path | integer | yes | Id of the Datacenter |
| `serviceName` | path | string | yes | Domain of the service |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicatedCloud.Task | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdBy` | string | read-only | Creator of the task |
| `createdFrom` | string | read-only | Origin of the task |
| `datacenterId` | integer | read-only | datacenterId of the associated dedicatedCloud.Datacenter object |
| `description` | string | read-only | Current progress description |
| `endDate` | string (date-time) | read-only | Task end date |
| `executionDate` | string (date-time) | read-only | Task execution date |
| `filerId` | integer | read-only | filerId of the associated dedicatedCloud.Filer object |
| `hostId` | integer | read-only | hostId of the associated dedicatedCloud.Host object |
| `lastModificationDate` | string (date-time) | read-only | Task last modification date |
| `maintenanceDateFrom` | string (date-time) | read-only | Maintenance task min allowed execution date |
| `maintenanceDateTo` | string (date-time) | read-only | Maintenance task max allowed execution date |
| `name` | string | read-only | Task name |
| `network` | string | read-only | network of the associated dedicatedCloud.Ip object |
| `networkAccessId` | integer | read-only | networkAccessId of the associated dedicatedCloud.AllowedNetwork object |
| `orderId` | integer | read-only | orderId of the associated billing.Order object |
| `parentTaskId` | integer | read-only | taskId of the parent dedicatedCloud.Task object |
| `progress` | integer | read-only | Current progress |
| `state` | dedicatedCloud.TaskStateEnum | read-only | Current Task state — one of `canceled`, `doing`, `done`, `error`, `fixing`, `toCancel`, `toCreate`, `todo`, `unknown`, `waitingForChilds`, `waitingTodo` |
| `taskId` | integer | read-only | Task id |
| `type` | string | read-only | Task type |
| `userId` | integer | read-only | userId of the associated dedicatedCloud.User object |
| `vlanId` | integer | read-only | vlanId of the parent dedicatedCloud.Vlan object |

```json
{
  "createdBy": "string",
  "createdFrom": "string",
  "datacenterId": 0,
  "description": "string",
  "endDate": "2024-01-01T12:00:00Z",
  "executionDate": "2024-01-01T12:00:00Z",
  "filerId": 0,
  "hostId": 0,
  "lastModificationDate": "2024-01-01T12:00:00Z",
  "maintenanceDateFrom": "2024-01-01T12:00:00Z",
  "maintenanceDateTo": "2024-01-01T12:00:00Z",
  "name": "string",
  "network": "string",
  "networkAccessId": 0,
  "orderId": 0,
  "parentTaskId": 0,
  "progress": 0,
  "state": "canceled",
  "taskId": 0,
  "type": "string",
  "userId": 0,
  "vlanId": 0
}
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/requestPairingToken" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/requestPairingToken")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/requestPairingToken");

print_r($result);
?>
```

## Lists all Zerto VRAs along with their allocated CPU and RAM resources

`GET /1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/vraResources`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/managed-vmware/managed-vmware-vsphere/backup-replication/zerto/#get-dedicatedcloud-servicename-datacenter-datacenterid-disasterrecovery-zertosingle-vraresources

**Status:** Stable production version  
**IAM actions:** `pccVMware:apiovh:datacenter/disasterRecovery/zertoSingle/vraResources/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `datacenterId` | path | integer | yes | Id of the Datacenter |
| `serviceName` | path | string | yes | Domain of the service |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicatedCloud.disasterRecovery.ZertoVrasResource[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `cpu` | integer |  | Number of CPUs of VRA VM |
| `memory` | integer |  | Memory of VRA vm in GB |
| `vmId` | integer |  | ID of the Vra |
| `vraName` | string |  | Name of the VRA VM |

```json
[
  {
    "cpu": 0,
    "memory": 0,
    "vmId": 0,
    "vraName": "string"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/vraResources" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/vraResources")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/vraResources");

print_r($result);
?>
```

## Updates the CPU and RAM resources allocated to a specified Zerto VRA

`POST /1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/vraResources`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/managed-vmware/managed-vmware-vsphere/backup-replication/zerto/#post-dedicatedcloud-servicename-datacenter-datacenterid-disasterrecovery-zertosingle-vraresources

**Status:** Stable production version  
**IAM actions:** `pccVMware:apiovh:datacenter/disasterRecovery/zertoSingle/vraResources/create`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `datacenterId` | path | integer | yes | Id of the Datacenter |
| `serviceName` | path | string | yes | Domain of the service |

### Request body (required)

Type: `object`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `resourcesSize` | dedicatedCloud.disasterRecovery.ZertoVraResourceSizeEnum | yes | The desired CPU and RAM configuration for the VRA — one of `L`, `S`, `XL`, `XS` |
| `vmId` | integer | yes | The unique identifier of the VRA vm |

```json
{
  "resourcesSize": "L",
  "vmId": 0
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicatedCloud.Task | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdBy` | string | read-only | Creator of the task |
| `createdFrom` | string | read-only | Origin of the task |
| `datacenterId` | integer | read-only | datacenterId of the associated dedicatedCloud.Datacenter object |
| `description` | string | read-only | Current progress description |
| `endDate` | string (date-time) | read-only | Task end date |
| `executionDate` | string (date-time) | read-only | Task execution date |
| `filerId` | integer | read-only | filerId of the associated dedicatedCloud.Filer object |
| `hostId` | integer | read-only | hostId of the associated dedicatedCloud.Host object |
| `lastModificationDate` | string (date-time) | read-only | Task last modification date |
| `maintenanceDateFrom` | string (date-time) | read-only | Maintenance task min allowed execution date |
| `maintenanceDateTo` | string (date-time) | read-only | Maintenance task max allowed execution date |
| `name` | string | read-only | Task name |
| `network` | string | read-only | network of the associated dedicatedCloud.Ip object |
| `networkAccessId` | integer | read-only | networkAccessId of the associated dedicatedCloud.AllowedNetwork object |
| `orderId` | integer | read-only | orderId of the associated billing.Order object |
| `parentTaskId` | integer | read-only | taskId of the parent dedicatedCloud.Task object |
| `progress` | integer | read-only | Current progress |
| `state` | dedicatedCloud.TaskStateEnum | read-only | Current Task state — one of `canceled`, `doing`, `done`, `error`, `fixing`, `toCancel`, `toCreate`, `todo`, `unknown`, `waitingForChilds`, `waitingTodo` |
| `taskId` | integer | read-only | Task id |
| `type` | string | read-only | Task type |
| `userId` | integer | read-only | userId of the associated dedicatedCloud.User object |
| `vlanId` | integer | read-only | vlanId of the parent dedicatedCloud.Vlan object |

```json
{
  "createdBy": "string",
  "createdFrom": "string",
  "datacenterId": 0,
  "description": "string",
  "endDate": "2024-01-01T12:00:00Z",
  "executionDate": "2024-01-01T12:00:00Z",
  "filerId": 0,
  "hostId": 0,
  "lastModificationDate": "2024-01-01T12:00:00Z",
  "maintenanceDateFrom": "2024-01-01T12:00:00Z",
  "maintenanceDateTo": "2024-01-01T12:00:00Z",
  "name": "string",
  "network": "string",
  "networkAccessId": 0,
  "orderId": 0,
  "parentTaskId": 0,
  "progress": 0,
  "state": "canceled",
  "taskId": 0,
  "type": "string",
  "userId": 0,
  "vlanId": 0
}
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/vraResources" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/vraResources",
	resourcesSize = None, # The desired CPU and RAM configuration for the VRA (type: dedicatedCloud.disasterRecovery.ZertoVraResourceSizeEnum)
	vmId = None, # The unique identifier of the VRA vm (type: long)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->post("/dedicatedCloud/{serviceName}/datacenter/{datacenterId}/disasterRecovery/zertoSingle/vraResources", array(
	resourcesSize => null, // The desired CPU and RAM configuration for the VRA (type: dedicatedCloud.disasterRecovery.ZertoVraResourceSizeEnum)
	vmId => null, // The unique identifier of the VRA vm (type: long)
));

print_r($result);
?>
```
