# Disaster Recovery API **Base URL**: https://dev-cloud.acronis.com/api/dr/v2 ## Security ### OAuth 2.0 OAuth 2.0 security scheme definition for a user authorization Supported grant types: * `password` * `client_credentials` * `authorization_code` * `urn:ietf:params:oauth:grant-type:jwt-bearer` Authorization URI example: `https://dev-cloud.acronis.com/api/2/idp/authorize` Access token URI example: `https://dev-cloud.acronis.com/api/2/idp/token` ### Request parameters #### Headers | Name | Description | |------|-------------| | `Authorization` | (Required) OAuth 2.0 access token.

**Type**: String
**Pattern**: `^Bearer [0-9a-zA-Z\-\._~+/]+={0,2}$` | ### Responses | Code | Description | |------|-------------| | `401` | The request was denied because the bearer access token was invalid or missing. | | `403` | The request was denied because the bearer access token did not have the required privileges. | ### Scopes * `acep::consumer` * `dr::support_operator` * `dr_backup_processor` * `dr_service::admin` * `dr_service::vpn_appliance` * `dr_service::vpn_server` * `partner_admin` * `protection::readonly` * `root_admin` * `resource_manager::admin` ## Endpoints ### GET /servers Fetches the list of cloud servers. #### Security The endpoint supports the following authorization methods: `OAuth 2.0` For OAuth2 authorization method, one of the following scopes is required by the endpoint: * `dr_service::admin` * `dr::support_operator` * `protection::readonly` #### Request parameters ##### Query parameters | Name | Description | |------|-------------| | `type` | (Optional) Filters the cloud servers by type.

**Type**: String
**Allowed values**:
- `PRIMARY`
- `RECOVERY` | | `recovery.resource_id` | (Optional) Filters the recovery servers by the original device resource ID. Multiple entries are accepted.

**Type**: String
**Pattern**: `^[a-zA-Z0-9-]+$` | | `limit` | (Optional) Maximum number of items to fetch per page. Mutually exclusive with the 'before' and 'after' parameters.

**Type**: Integer
**Minimum**: 1
**Maximum**: 50
**Default**: 10 | | `after` | (Optional) Token from the 'after' field in the previous response. It contains a cursor that points to the next page of the requested collection. Mutually exclusive with the 'limit' and 'before' parameters. If provided, all other query parameters will be ignored.

**Type**: String
**Min length**: 1 | | `before` | (Optional) Token from the 'before' field in the previous response. It contains a cursor that points to the previous page of the requested collection. Mutually exclusive with the 'limit' and 'after' parameters. If provided, all other query parameters will be ignored.

**Type**: String
**Min length**: 1 | #### Responses | Code | Description | |------|-------------| | `200` | - | | `400` | The request could not be validated against the RAML schema. | | `401` | The request was denied because the bearer access token was invalid or missing. | | `403` | The request was denied because the bearer access token did not have the required privileges. | | `404` | The requested resource was not found. | | `429` | The response status code indicates that the service is overloaded and you must wait before the next request. | | `500` | An internal server error occurred while processing the request. | | `504` | Gateway time-out. | ### POST /servers/{uuid}:start_failover_prod Starts a production failover of the cloud server. #### Security The endpoint supports the following authorization methods: `OAuth 2.0` For OAuth2 authorization method, one of the following scopes is required by the endpoint: * `dr_service::admin` #### Request parameters ##### Request body **Media type**: application/json **Schema definition**: | Name | Description | |------|-------------| | `recovery_point` | Composite identifier of a recovery point.

**Type**: Object | **Example**: ```json { "recovery_point": { "backup_id": "c4d81250-bd8a-4b8f-afd7-e88ea0e5cbf6", "archive_id": "b595c974-0c8b-4802-b71b-238b76c4c05e", "vault_id": "0a959777-c0c8-40af-b3d3-9ad972040db8" } } ``` #### Responses | Code | Description | |------|-------------| | `202` | - | | `400` | The request could not be validated against the RAML schema. | | `401` | The request was denied because the bearer access token was invalid or missing. | | `403` | The request was denied because the bearer access token did not have the required privileges. | | `404` | The requested resource was not found. | | `409` | The request could not be completed because there was a conflict with the current state of the resource. | | `429` | The response status code indicates that the service is overloaded and you must wait before the next request. | | `500` | An internal server error occurred while processing the request. | | `504` | Gateway time-out. | ### POST /servers/{uuid}:start_failover_test Starts a test failover of the cloud server. #### Security The endpoint supports the following authorization methods: `OAuth 2.0` For OAuth2 authorization method, one of the following scopes is required by the endpoint: * `dr_service::admin` * `dr::support_operator` #### Request parameters ##### Request body **Media type**: application/json **Schema definition**: | Name | Description | |------|-------------| | `recovery_point` | Composite identifier of a recovery point.

**Type**: Object | **Example**: ```json { "recovery_point": { "backup_id": "c4d81250-bd8a-4b8f-afd7-e88ea0e5cbf6", "archive_id": "b595c974-0c8b-4802-b71b-238b76c4c05e", "vault_id": "0a959777-c0c8-40af-b3d3-9ad972040db8" } } ``` #### Responses | Code | Description | |------|-------------| | `202` | - | | `400` | The request could not be validated against the RAML schema. | | `401` | The request was denied because the bearer access token was invalid or missing. | | `403` | The request was denied because the bearer access token did not have the required privileges. | | `404` | The requested resource was not found. | | `409` | The request could not be completed because there was a conflict with the current state of the resource. | | `429` | The response status code indicates that the service is overloaded and you must wait before the next request. | | `500` | An internal server error occurred while processing the request. | | `504` | Gateway time-out. | ### POST /servers/{uuid}:stop_failover Stops the failover of the cloud server. #### Security The endpoint supports the following authorization methods: `OAuth 2.0` For OAuth2 authorization method, one of the following scopes is required by the endpoint: * `dr_service::admin` * `dr::support_operator` #### Request parameters ##### Request body **Media type**: application/json **Schema definition**: | Name | Description | |------|-------------| **Example**: ```json {} ``` #### Responses | Code | Description | |------|-------------| | `202` | - | | `400` | The request could not be validated against the RAML schema. | | `401` | The request was denied because the bearer access token was invalid or missing. | | `403` | The request was denied because the bearer access token did not have the required privileges. | | `404` | The requested resource was not found. | | `409` | The request could not be completed because there was a conflict with the current state of the resource. | | `429` | The response status code indicates that the service is overloaded and you must wait before the next request. | | `500` | An internal server error occurred while processing the request. | | `504` | Gateway time-out. | ### GET /sites Fetches the list of disaster recovery sites. #### Security The endpoint supports the following authorization methods: `OAuth 2.0` For OAuth2 authorization method, one of the following scopes is required by the endpoint: * `dr_service::admin` * `dr::support_operator` * `protection::readonly` #### Request parameters ##### Query parameters | Name | Description | |------|-------------| | `allow_deleted` | (Optional) Includes resources that are marked as deleted in the request result.

**Type**: Boolean
**Default**: false | | `limit` | (Optional) Maximum number of items to fetch per page. Mutually exclusive with the 'before' and 'after' parameters.

**Type**: Integer
**Minimum**: 1
**Maximum**: 50
**Default**: 10 | | `after` | (Optional) Token from the 'after' field in the previous response. It contains a cursor that points to the next page of the requested collection. Mutually exclusive with the 'limit' and 'before' parameters. If provided, all other query parameters will be ignored.

**Type**: String
**Min length**: 1 | | `before` | (Optional) Token from the 'before' field in the previous response. It contains a cursor that points to the previous page of the requested collection. Mutually exclusive with the 'limit' and 'after' parameters. If provided, all other query parameters will be ignored.

**Type**: String
**Min length**: 1 | #### Responses | Code | Description | |------|-------------| | `200` | - | | `400` | The request could not be validated against the RAML schema. | | `401` | The request was denied because the bearer access token was invalid or missing. | | `403` | The request was denied because the bearer access token did not have the required privileges. | | `404` | The requested resource was not found. | | `429` | The response status code indicates that the service is overloaded and you must wait before the next request. | | `500` | An internal server error occurred while processing the request. | | `504` | Gateway time-out. | ### GET /sites/{uuid} Fetches the details of the disaster recovery site. #### Security The endpoint supports the following authorization methods: `OAuth 2.0` For OAuth2 authorization method, one of the following scopes is required by the endpoint: * `dr_service::admin` * `dr::support_operator` * `protection::readonly` #### Request parameters ##### Query parameters | Name | Description | |------|-------------| | `allow_deleted` | (Optional) Includes resources that are marked as deleted in the request result.

**Type**: Boolean
**Default**: false | #### Responses | Code | Description | |------|-------------| | `200` | - | | `400` | The request could not be validated against the RAML schema. | | `401` | The request was denied because the bearer access token was invalid or missing. | | `403` | The request was denied because the bearer access token did not have the required privileges. | | `404` | The requested resource was not found. | | `429` | The response status code indicates that the service is overloaded and you must wait before the next request. | | `500` | An internal server error occurred while processing the request. | | `504` | Gateway time-out. |