Delete Volume
Releases the volume's claim and deletes its record. A mounted volume is refused with FailedPrecondition unless force is set. Workload-scoped agent keys are refused.
Access: operator or admin role in the volume's namespace, or a platform admin.
Authorization
BearerAuth 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
Define the version of the Connect protocol
Define the timeout, in ms
Request Body
application/json
1 <= length <= 64Delete even though something has it mounted. Without this a mounted volume is refused, because pulling the filesystem out from under a running workload is a data-loss bug that looks like a disk fault from inside. validate:skip a bool has no bounds
Response Body
application/json
application/json
curl -X POST "https://containers.xeonr.io/containers.api.v1.VolumeService/DeleteVolume" \ -H "Connect-Protocol-Version: 1" \ -H "Connect-Timeout-Ms: 1000" \ -H "Content-Type: application/json" \ -d '{}'{}{
"code": "not_found",
"message": "string",
"details": [
{
"type": "string",
"value": "string",
"debug": {}
}
]
}Create Volume POST
Creates a volume record in PENDING state; the image and its node are chosen when the first workload mounting it is scheduled. `tier` is required. `size_mb` must be 64 MiB-512 GiB. A cache volume requires a `cache_key` (AlreadyExists if the key is taken in the namespace) and cannot be seeded; a scratch volume takes neither a cache key nor a seed; `seed_snapshot_id` is for persistent volumes. Workload-scoped agent keys are refused. **Access:** operator or admin role in the namespace (via Xeonr team role or a namespace API key), or a platform admin.
Get Volume POST
Returns a volume by `volume_id`, or by `namespace` + `cache_key` for a cache volume; InvalidArgument if neither is given. Access is checked against the volume's own namespace. **Access:** any role in the volume's namespace, or a platform admin.