# Backups Controller Resource

The API allows you to list, view and edit backups.

### GET /backups

Returns list of backups filtered by specified query parameters.

Request Parameters
name | type | description | constraints | multivalued
--- | --- | --- | --- | ---
backup-destination | query |  |  | no
backup-policy | query |  |  | yes
backup-rule | query |  |  | no
cloud-service-provider | query |  |  | no
direction | query |  |  | no
fail-on-non-successful | query |  | boolean | no
filter | query |  |  | no
from | query |  | long | no
hypervisor | query |  |  | no
hypervisor-manager | query |  |  | no
min-size | query |  | long | no
nameLike | query |  |  | no
node | query |  |  | no
only-mountable | query |  | boolean | no
orderBy | query |  |  | no
page | query |  |  | no
parent-backup | query |  |  | no
project-uuid | query |  |  | no
protected-entity | query |  |  | no
protected-entity-type | query |  | "APP" or "CLOUD" or "CLOUD_GROUP" or "CLOUD_SITE" or "CLOUD_TEAMS" or "CLOUD_USER" or "OS" or "OS_AGENT" or "STORAGE" or "VM" | no
root-backup | query |  |  | no
size | query |  |  | no
status | query |  | "FAILED" or "INPROGRESS" or "PARTIAL_SUCCESS" or "QUEUED" or "SUCCESS" or "SUCCESS_REMOVED" | yes
storage-provider | query |  |  | no
to | query |  | long | no
type | query |  | "FULL" or "INCREMENTAL" or "SYNCHRONIZATION" or "SYNTHETIC" | no
without-hidden | query |  | boolean | no

Response Body
media type | data type | description
--- | --- | ---
application/json | array of BackupListRecord (JSON) | list of backups filtered by query parameters

#### Example

##### Request

    GET /backups
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    [ {
      "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
      "backupTime" : 1451677502000,
      "snapshotTime" : 1451649601000,
      "status" : {
        "name" : "ENUM_NAME",
        "description" : "Enum description"
      },
      "type" : {
        "name" : "ENUM_NAME",
        "description" : "Enum description"
      }
    } ]

### GET /backups/aggregated-statistics

Request Parameters
name | type | description | constraints | multivalued
--- | --- | --- | --- | ---
backup-destination | query |  |  | no
backup-policy | query |  |  | yes
backup-rule | query |  |  | no
cloud-service-provider | query |  |  | no
direction | query |  |  | no
fail-on-non-successful | query |  | boolean | no
filter | query |  |  | no
from | query |  | long | no
hypervisor | query |  |  | no
hypervisor-manager | query |  |  | no
min-size | query |  | long | no
nameLike | query |  |  | no
node | query |  |  | no
only-mountable | query |  | boolean | no
orderBy | query |  |  | no
page | query |  |  | no
parent-backup | query |  |  | no
project-uuid | query |  |  | no
protected-entity | query |  |  | no
protected-entity-type | query |  | "APP" or "CLOUD" or "CLOUD_GROUP" or "CLOUD_SITE" or "CLOUD_TEAMS" or "CLOUD_USER" or "OS" or "OS_AGENT" or "STORAGE" or "VM" | no
root-backup | query |  |  | no
size | query |  |  | no
status | query |  | "FAILED" or "INPROGRESS" or "PARTIAL_SUCCESS" or "QUEUED" or "SUCCESS" or "SUCCESS_REMOVED" | yes
storage-provider | query |  |  | no
to | query |  | long | no
type | query |  | "FULL" or "INCREMENTAL" or "SYNCHRONIZATION" or "SYNTHETIC" | no
without-hidden | query |  | boolean | no

Response Body
media type | data type | description
--- | --- | ---
application/json | array of object (JSON) |

#### Example

##### Request

    GET /backups/aggregated-statistics
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    ...

### GET /backups/detailed

Returns detailed list of backups filtered by specified query parameters.

Request Parameters
name | type | description | constraints | multivalued
--- | --- | --- | --- | ---
backup-destination | query |  |  | no
backup-policy | query |  |  | yes
backup-rule | query |  |  | no
cloud-service-provider | query |  |  | no
direction | query |  |  | no
fail-on-non-successful | query |  | boolean | no
filter | query |  |  | no
from | query |  | long | no
hypervisor | query |  |  | no
hypervisor-manager | query |  |  | no
min-size | query |  | long | no
nameLike | query |  |  | no
node | query |  |  | no
only-mountable | query |  | boolean | no
orderBy | query |  |  | no
page | query |  |  | no
parent-backup | query |  |  | no
project-uuid | query |  |  | no
protected-entity | query |  |  | no
protected-entity-type | query |  | "APP" or "CLOUD" or "CLOUD_GROUP" or "CLOUD_SITE" or "CLOUD_TEAMS" or "CLOUD_USER" or "OS" or "OS_AGENT" or "STORAGE" or "VM" | no
root-backup | query |  |  | no
size | query |  |  | no
status | query |  | "FAILED" or "INPROGRESS" or "PARTIAL_SUCCESS" or "QUEUED" or "SUCCESS" or "SUCCESS_REMOVED" | yes
storage-provider | query |  |  | no
to | query |  | long | no
type | query |  | "FULL" or "INCREMENTAL" or "SYNCHRONIZATION" or "SYNTHETIC" | no
without-hidden | query |  | boolean | no

Response Body
media type | data type | description
--- | --- | ---
application/json | array of BackupDetails (JSON) | detailed list of backups filtered by query parameters

#### Example

##### Request

    GET /backups/detailed
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    [ {
      "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
      "snapshotTime" : 1451649601000,
      "status" : {
        "name" : "ENUM_NAME",
        "description" : "Enum description"
      },
      "type" : {
        "name" : "ENUM_NAME",
        "description" : "Enum description"
      }
    } ]

### GET /backups/grouped

Returns list of last backups in group filtered by specified query parameters with counted attempts.

Request Parameters
name | type | description | constraints | multivalued
--- | --- | --- | --- | ---
backup-destination | query |  |  | no
backup-policy | query |  |  | yes
backup-rule | query |  |  | no
cloud-service-provider | query |  |  | no
direction | query |  |  | no
fail-on-non-successful | query |  | boolean | no
filter | query |  |  | no
from | query |  | long | no
hypervisor | query |  |  | no
hypervisor-manager | query |  |  | no
min-size | query |  | long | no
nameLike | query |  |  | no
node | query |  |  | no
only-mountable | query |  | boolean | no
orderBy | query |  |  | no
page | query |  |  | no
parent-backup | query |  |  | no
project-uuid | query |  |  | no
protected-entity | query |  |  | no
protected-entity-type | query |  | "APP" or "CLOUD" or "CLOUD_GROUP" or "CLOUD_SITE" or "CLOUD_TEAMS" or "CLOUD_USER" or "OS" or "OS_AGENT" or "STORAGE" or "VM" | no
root-backup | query |  |  | no
size | query |  |  | no
status | query |  | "FAILED" or "INPROGRESS" or "PARTIAL_SUCCESS" or "QUEUED" or "SUCCESS" or "SUCCESS_REMOVED" | yes
storage-provider | query |  |  | no
to | query |  | long | no
type | query |  | "FULL" or "INCREMENTAL" or "SYNCHRONIZATION" or "SYNTHETIC" | no
without-hidden | query |  | boolean | no

Response Body
media type | data type | description
--- | --- | ---
application/json | array of BackupListRecord (JSON) | list of backups filtered by query parameters

#### Example

##### Request

    GET /backups/grouped
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    [ {
      "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
      "backupTime" : 1451677502000,
      "snapshotTime" : 1451649601000,
      "status" : {
        "name" : "ENUM_NAME",
        "description" : "Enum description"
      },
      "type" : {
        "name" : "ENUM_NAME",
        "description" : "Enum description"
      }
    } ]

### GET /backups/size-statistics

Request Parameters
name | type | description | constraints | multivalued
--- | --- | --- | --- | ---
backup-destination | query |  |  | no
backup-policy | query |  |  | yes
backup-rule | query |  |  | no
cloud-service-provider | query |  |  | no
direction | query |  |  | no
fail-on-non-successful | query |  | boolean | no
filter | query |  |  | no
from | query |  | long | no
hypervisor | query |  |  | no
hypervisor-manager | query |  |  | no
min-size | query |  | long | no
nameLike | query |  |  | no
node | query |  |  | no
only-mountable | query |  | boolean | no
orderBy | query |  |  | no
page | query |  |  | no
parent-backup | query |  |  | no
project-uuid | query |  |  | no
protected-entity | query |  |  | no
protected-entity-type | query |  | "APP" or "CLOUD" or "CLOUD_GROUP" or "CLOUD_SITE" or "CLOUD_TEAMS" or "CLOUD_USER" or "OS" or "OS_AGENT" or "STORAGE" or "VM" | no
root-backup | query |  |  | no
size | query |  |  | no
status | query |  | "FAILED" or "INPROGRESS" or "PARTIAL_SUCCESS" or "QUEUED" or "SUCCESS" or "SUCCESS_REMOVED" | yes
storage-provider | query |  |  | no
to | query |  | long | no
type | query |  | "FULL" or "INCREMENTAL" or "SYNCHRONIZATION" or "SYNTHETIC" | no
without-hidden | query |  | boolean | no

Response Body
media type | data type | description
--- | --- | ---
application/json | array of object (JSON) |

#### Example

##### Request

    GET /backups/size-statistics
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    ...

### GET /backups/time-statistics

Request Parameters
name | type | description | constraints | multivalued
--- | --- | --- | --- | ---
backup-destination | query |  |  | no
backup-policy | query |  |  | yes
backup-rule | query |  |  | no
cloud-service-provider | query |  |  | no
direction | query |  |  | no
fail-on-non-successful | query |  | boolean | no
filter | query |  |  | no
from | query |  | long | no
hypervisor | query |  |  | no
hypervisor-manager | query |  |  | no
min-size | query |  | long | no
nameLike | query |  |  | no
node | query |  |  | no
only-mountable | query |  | boolean | no
orderBy | query |  |  | no
page | query |  |  | no
parent-backup | query |  |  | no
project-uuid | query |  |  | no
protected-entity | query |  |  | no
protected-entity-type | query |  | "APP" or "CLOUD" or "CLOUD_GROUP" or "CLOUD_SITE" or "CLOUD_TEAMS" or "CLOUD_USER" or "OS" or "OS_AGENT" or "STORAGE" or "VM" | no
root-backup | query |  |  | no
size | query |  |  | no
status | query |  | "FAILED" or "INPROGRESS" or "PARTIAL_SUCCESS" or "QUEUED" or "SUCCESS" or "SUCCESS_REMOVED" | yes
storage-provider | query |  |  | no
to | query |  | long | no
type | query |  | "FULL" or "INCREMENTAL" or "SYNCHRONIZATION" or "SYNTHETIC" | no
without-hidden | query |  | boolean | no

Response Body
media type | data type | description
--- | --- | ---
application/json | array of TimeBackupStatisticsResponseDto (JSON) |

#### Example

##### Request

    GET /backups/time-statistics
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    [ { } ]

### PUT /backups/warnings-acknowledged

Change acknowledged warnings for specified batch of backups.

Request Body
media type | data type | description
--- | --- | ---
application/json | WarningAcknowledgementRequest (JSON) | specify request for a batch update

Response Body
media type | data type | description
--- | --- | ---
application/json | array of BackupDetails (JSON) |

#### Example

##### Request

    PUT /backups/warnings-acknowledged
    Content-Type: application/json
    Accept: application/json

    { }

##### Response

    HTTP/1.1 204 No Content
    Content-Type: application/json

    [ {
      "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
      "snapshotTime" : 1451649601000,
      "status" : {
        "name" : "ENUM_NAME",
        "description" : "Enum description"
      },
      "type" : {
        "name" : "ENUM_NAME",
        "description" : "Enum description"
      }
    } ]

### GET /backups/{guid}

Returns extended details of a backup.

Request Parameters
name | type | description
--- | --- | ---
guid | path | specify local unique identifier for backup (use by vProtect)

Response Body
media type | data type | description
--- | --- | ---
application/json | BackupExtendedDetails (JSON) | extended details of a backup

#### Example

##### Request

    GET /backups/{guid}
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    {
      "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
      "snapshotTime" : 1451649601000,
      "status" : {
        "name" : "ENUM_NAME",
        "description" : "Enum description"
      },
      "type" : {
        "name" : "ENUM_NAME",
        "description" : "Enum description"
      }
    }

### GET /backups/for-restore/{guid}

Returns extended details of a backup without RBAC filtering.

Request Parameters
name | type | description
--- | --- | ---
guid | path | specify local unique identifier for backup (use by vProtect)

Response Body
media type | data type | description
--- | --- | ---
application/json | BackupExtendedDetails (JSON) | extended details of a backup

#### Example

##### Request

    GET /backups/for-restore/{guid}
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    {
      "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
      "snapshotTime" : 1451649601000,
      "status" : {
        "name" : "ENUM_NAME",
        "description" : "Enum description"
      },
      "type" : {
        "name" : "ENUM_NAME",
        "description" : "Enum description"
      }
    }

### GET /backups/grouped/aggregated-statistics

This method has been deprecated.

Request Parameters
name | type | description | constraints | multivalued
--- | --- | --- | --- | ---
backup-destination | query |  |  | no
backup-policy | query |  |  | yes
backup-rule | query |  |  | no
cloud-service-provider | query |  |  | no
direction | query |  |  | no
fail-on-non-successful | query |  | boolean | no
filter | query |  |  | no
from | query |  | long | no
hypervisor | query |  |  | no
hypervisor-manager | query |  |  | no
min-size | query |  | long | no
nameLike | query |  |  | no
node | query |  |  | no
only-mountable | query |  | boolean | no
orderBy | query |  |  | no
page | query |  |  | no
parent-backup | query |  |  | no
project-uuid | query |  |  | no
protected-entity | query |  |  | no
protected-entity-type | query |  | "APP" or "CLOUD" or "CLOUD_GROUP" or "CLOUD_SITE" or "CLOUD_TEAMS" or "CLOUD_USER" or "OS" or "OS_AGENT" or "STORAGE" or "VM" | no
root-backup | query |  |  | no
size | query |  |  | no
status | query |  | "FAILED" or "INPROGRESS" or "PARTIAL_SUCCESS" or "QUEUED" or "SUCCESS" or "SUCCESS_REMOVED" | yes
storage-provider | query |  |  | no
to | query |  | long | no
type | query |  | "FULL" or "INCREMENTAL" or "SYNCHRONIZATION" or "SYNTHETIC" | no
without-hidden | query |  | boolean | no

Response Body
media type | data type | description
--- | --- | ---
application/json | array of object (JSON) |

#### Example

##### Request

    GET /backups/grouped/aggregated-statistics
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    ...

### POST /backups/transfer-rate/{task-type}

Get the transfer rate for backups

Request Parameters
name | type | description | constraints
--- | --- | --- | ---
task-type | path |  | required

Request Body
media type | data type | description
--- | --- | ---
application/json | TransferRateQueryParameters (JSON) | specified query parameters (from, to, protected entity)

Response Body
media type | data type | description
--- | --- | ---
application/json | array of BackupTransferRateResponse (JSON) |

#### Example

##### Request

    POST /backups/transfer-rate/{task-type}
    Content-Type: application/json
    Accept: application/json

    { }

##### Response

    HTTP/1.1 201 Created
    Content-Type: application/json

    [ { } ]

### PUT /backups/{guid}/description

Request Parameters
name | type | description
--- | --- | ---
guid | path |

Request Body
media type | data type
--- | ---
application/json | UpdateBackupDescriptionRequest (JSON)

Response Body
media type | data type | description
--- | --- | ---
application/json | BackupListRecord (JSON) |

#### Example

##### Request

    PUT /backups/{guid}/description
    Content-Type: application/json
    Accept: application/json

    { }

##### Response

    HTTP/1.1 204 No Content
    Content-Type: application/json

    {
      "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
      "backupTime" : 1451677502000,
      "snapshotTime" : 1451649601000,
      "status" : {
        "name" : "ENUM_NAME",
        "description" : "Enum description"
      },
      "type" : {
        "name" : "ENUM_NAME",
        "description" : "Enum description"
      }
    }

### PUT /backups/{guid}/warnings

Change warnings for specified backup.

Request Parameters
name | type | description
--- | --- | ---
guid | path | specify local unique identifier for backup (use by vProtect)

Request Body
media type | data type | description
--- | --- | ---
application/json | array of StringDTO (JSON) | specify warnings for backup to change

Response Body
media type | data type | description
--- | --- | ---
application/json | BackupDetails (JSON) |

#### Example

##### Request

    PUT /backups/{guid}/warnings
    Content-Type: application/json
    Accept: application/json

    [ { } ]

##### Response

    HTTP/1.1 204 No Content
    Content-Type: application/json

    {
      "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
      "snapshotTime" : 1451649601000,
      "status" : {
        "name" : "ENUM_NAME",
        "description" : "Enum description"
      },
      "type" : {
        "name" : "ENUM_NAME",
        "description" : "Enum description"
      }
    }

### PUT /backups/{guid}/warnings-acknowledged

Change acknowledged warnings for specified backup.

Request Parameters
name | type | description
--- | --- | ---
guid | path | specify local unique identifier for backup (use by vProtect)

Request Body
media type | data type | description
--- | --- | ---
application/json | BooleanDTO (JSON) | specify whether backup is acknowledged

Response Body
media type | data type | description
--- | --- | ---
application/json | BackupDetails (JSON) |

#### Example

##### Request

    PUT /backups/{guid}/warnings-acknowledged
    Content-Type: application/json
    Accept: application/json

    { }

##### Response

    HTTP/1.1 204 No Content
    Content-Type: application/json

    {
      "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
      "snapshotTime" : 1451649601000,
      "status" : {
        "name" : "ENUM_NAME",
        "description" : "Enum description"
      },
      "type" : {
        "name" : "ENUM_NAME",
        "description" : "Enum description"
      }
    }

### GET /backups/timeline/size-stats/{type}/{guid}

Request Parameters
name | type | description | constraints
--- | --- | --- | ---
guid | path |  |
type | path |  |
from | query |  | long
to | query |  | long

Response Body
media type | data type | description
--- | --- | ---
application/json | BackupTimelineDto (JSON) |

#### Example

##### Request

    GET /backups/timeline/size-stats/{type}/{guid}
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    { }

### GET /backups/timeline/time-stats/{type}/{guid}

Request Parameters
name | type | description | constraints
--- | --- | --- | ---
guid | path |  |
type | path |  |
from | query |  | long
to | query |  | long

Response Body
media type | data type | description
--- | --- | ---
application/json | BackupTimeStatsTimelineDto (JSON) |

#### Example

##### Request

    GET /backups/timeline/time-stats/{type}/{guid}
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    { }