Snapshot and consistency group API

Snapshot and consistency group API

Request coordinated captures, inspect completeness, and restore new volume resources.

Snapshot resources identify captured block state. Consistency groups identify which volumes must complete together before a recovery point is offered as a complete application restore.

Capture one volume

POST/organizations/{organization_id}/projects/{project_id}/volumes/{volume_id}/snapshots
Scope
volumes:write
Auth
Bearer API key
Repeat calls
Reuse the same key for this capture intent.

Captures a snapshot of one volume using the requested consistency mode.

Send name and optional consistency. Values are crash, guest, or application, with default crash. Application mode requires hook_set_id referencing an approved guest hook set. Unsupported required consistency returns 422 unsupported_consistency without a weaker capture attempt.

Returns 202 with the snapshot ID and operation. The resource is not usable while state=creating or state=incomplete.

Group capture

POST/organizations/{organization_id}/projects/{project_id}/consistency-groups
Scope
volumes:write
Auth
Bearer API key

Creates a consistency group with a pinned membership revision.

Send name and a nonempty volume_ids array. All members must share project and region. It returns 201 with the membership revision.

POST/organizations/{organization_id}/projects/{project_id}/consistency-groups/{group_id}/captures
Scope
volumes:write
Auth
Bearer API key

Captures the required consistency-group members.

Accepts the same consistency fields as a single capture and requires the group's current If-Match. It returns 202 with a capture ID, resolved membership revision, and parent operation.

An accepted group capture identifies its resolved members and operation:

JSON
{
  "data": {
    "id": "cap_ledger01",
    "group_id": "cg_ledger",
    "group_revision": 4,
    "state": "creating",
    "member_volume_ids": ["vol_database", "vol_journal"]
  },
  "operation": { "id": "op_capture01", "state": "queued" }
}

Read completeness

GET/organizations/{organization_id}/projects/{project_id}/snapshots/{snapshot_id}
Scope
volumes:read
Auth
Bearer API key

Returns source volume, capture time, consistency, state, dependencies, and ETag. Requires volumes:read.

GET/organizations/{organization_id}/projects/{project_id}/captures/{capture_id}
Scope
volumes:read
Auth
Bearer API key

Returns the group membership revision and each member snapshot ID, capture result, consistency result, and preparation/resume outcome. Requires volumes:read.

A required member failure makes the capture incomplete. Successful individual snapshots can be retained but are not reported as a complete group. Later group membership edits do not change the recorded captured set.

Restore

For a single snapshot, use Volume API with source_snapshot_id.

POST/organizations/{organization_id}/projects/{project_id}/captures/{capture_id}/restore
Scope
volumes:write
Auth
Bearer API key

Restores a completed group capture into new volumes.

Accepts a target storage policy and returns 202 with source-to-new-volume mapping. It does not attach restored disks to production guests.

An incomplete capture returns 409 recovery_point_incomplete from group restore. A target smaller than captured data returns 422 invalid_size.

Delete

DELETE/organizations/{organization_id}/projects/{project_id}/snapshots/{snapshot_id}
Scope
volumes:write
Auth
Bearer API key

Deletes a snapshot when its retained references permit removal.

Snapshot deletion requires If-Match. A hold, retained image reference, or required group manifest returns 409 recovery_point_retained. Accepted cleanup returns 202; space can remain shared with other snapshots until their dependencies expire. See consistency groups and backup retention.