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
/organizations/{organization_id}/projects/{project_id}/volumes/{volume_id}/snapshotsCaptures 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
/organizations/{organization_id}/projects/{project_id}/consistency-groupsCreates 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.
/organizations/{organization_id}/projects/{project_id}/consistency-groups/{group_id}/capturesCaptures 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:
{
"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
/organizations/{organization_id}/projects/{project_id}/snapshots/{snapshot_id}Returns source volume, capture time, consistency, state, dependencies, and ETag. Requires volumes:read.
/organizations/{organization_id}/projects/{project_id}/captures/{capture_id}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.
/organizations/{organization_id}/projects/{project_id}/captures/{capture_id}/restoreRestores 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
/organizations/{organization_id}/projects/{project_id}/snapshots/{snapshot_id}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.