Xeonr Developer Docs

Restore Volume

POST
/containers.api.v1.VolumeService/RestoreVolume

Replaces a volume's contents from a snapshot in the same namespace, defaulting to the volume's most recent archive. Refused (FailedPrecondition) while the volume is mounted or when it has never been archived and no snapshot_id is given. Returns FailedPrecondition if the volume has never been mounted (its node is not known yet) or its node is unreachable, and Unimplemented when the volume file API is not configured.

Access: operator or admin role in the volume's namespace, or a platform admin.

Authorization

BearerAuth
AuthorizationBearer <token>

A namespace-scoped API key (cpk_…) for machines, or a Xeonr Auth OIDC token for humans. The key's namespace and role are pinned server-side.

In: header

Header Parameters

Connect-Protocol-Version?number

Define the version of the Connect protocol

Connect-Timeout-Ms?number

Define the timeout, in ms

Request Body

application/json

volumeId?string
Length1 <= length <= 64
snapshotId?string

The snapshot to restore from. Defaults to the volume's own most recent archive when empty.

Lengthlength <= 128
[key: string]?never

Response Body

application/json

application/json

curl -X POST "https://containers.xeonr.io/containers.api.v1.VolumeService/RestoreVolume" \  -H "Connect-Protocol-Version: 1" \  -H "Connect-Timeout-Ms: 1000" \  -H "Content-Type: application/json" \  -d '{}'
{
  "volume": {
    "volumeId": "string",
    "namespace": "string",
    "tier": "VOLUME_TIER_UNSPECIFIED",
    "state": "VOLUME_STATE_UNSPECIFIED",
    "label": "string",
    "cacheKey": "string",
    "sizeMb": "string",
    "usedBytes": "string",
    "node": "string",
    "createdAtUnix": "string",
    "archivedAtUnix": "string",
    "archiveSnapshotId": "string",
    "seedSnapshotId": "string",
    "mountedBy": "string",
    "pendingSeedSnapshotId": "string",
    "lastArchiveDurationMs": 0
  }
}
{
  "code": "not_found",
  "message": "string",
  "details": [
    {
      "type": "string",
      "value": "string",
      "debug": {}
    }
  ]
}