Сетевые диски / Снапшоты
Управление снимками (снапшотами) сетевых дисков через REST API: ручные снимки, автоматические по расписанию и откат тома к снимку. Все методы требуют токен аутентификации.
Максимальное количество снимков на том — 100. Откат возможен только для приостановленного тома.
POST /v1/volume/:volumeId/snapshot
Создаёт снимок тома типа manual. Снимок создаётся асинхронно: в ответе возвращается объект VolumeSnapshot со статусом creating, после завершения — ready. На один том можно создать не более 100 снимков.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
volumeId |
Path | UUID | Да | ID тома |
Ответ:
{
"id": "bb0e8400-e29b-41d4-a716-446655440034",
"status": "creating",
"size": 21474836480,
"usedBytes": 5368709120,
"diskUsage": 5368709120,
"type": "manual",
"createdAt": "2025-01-15T12:00:00+00:00",
"updatedAt": "2025-01-15T12:00:00+00:00"
}
Ошибки:
404 Not Found— Том не найден
DELETE /v1/volume/:volumeId/snapshot/:snapshotId
Удаляет отдельный снимок тома по его идентификатору, остальные снимки не затрагиваются. В ответе возвращается объект VolumeSnapshot со статусом deleted.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
volumeId |
Path | UUID | Да | ID тома |
snapshotId |
Path | UUID | Да | ID снимка |
Ответ:
{
"id": "bb0e8400-e29b-41d4-a716-446655440034",
"status": "deleted",
"size": 21474836480,
"usedBytes": 5368709120,
"diskUsage": 5368709120,
"type": "manual",
"createdAt": "2025-01-15T12:00:00+00:00",
"updatedAt": "2025-01-15T12:00:00+00:00"
}
Ошибки:
404 Not Found— Том или снимок не найдены
GET /v1/volume/:volumeId/snapshots
Возвращает все снимки тома в виде массива объектов VolumeSnapshot. Для каждого снимка доступны статус, размер, использованный размер, тип (manual или auto) и даты создания и обновления.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
volumeId |
Path | UUID | Да | ID тома |
Ответ:
[
{
"id": "bb0e8400-e29b-41d4-a716-446655440034",
"status": "ready",
"size": 21474836480,
"usedBytes": 5368709120,
"diskUsage": 5368709120,
"type": "manual",
"createdAt": "2025-01-15T12:00:00+00:00",
"updatedAt": "2025-01-15T12:00:00+00:00"
}
]
Ошибки:
404 Not Found— Том не найден
POST /v1/volume/:volumeId/snapshot/prune
Удаляет все снимки тома одновременно. В ответе возвращается массив объектов VolumeSnapshot со статусом deleted — по одному на каждый удалённый снимок.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
volumeId |
Path | UUID | Да | ID тома |
Ответ:
[
{
"id": "bb0e8400-e29b-41d4-a716-446655440034",
"status": "deleted",
"size": 21474836480,
"usedBytes": 5368709120,
"diskUsage": 5368709120,
"type": "manual",
"createdAt": "2025-01-15T12:00:00+00:00",
"updatedAt": "2025-01-15T12:00:00+00:00"
}
]
Ошибки:
404 Not Found— Том не найден
POST /v1/volume/:volumeId/snapshot/:snapshotId/rollback
Откатывает том к состоянию на момент создания снимка. В ответе возвращается объект VolumeSnapshot, к которому выполнен откат. Операция возможна только для приостановленного тома и готового снимка.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
volumeId |
Path | UUID | Да | ID тома |
snapshotId |
Path | UUID | Да | ID снимка |
Ответ:
{
"id": "bb0e8400-e29b-41d4-a716-446655440034",
"status": "ready",
"size": 21474836480,
"usedBytes": 5368709120,
"diskUsage": 5368709120,
"type": "manual",
"createdAt": "2025-01-15T12:00:00+00:00",
"updatedAt": "2025-01-15T12:00:00+00:00"
}
Ошибки:
404 Not Found— Том не найден404 Not Found— Том не приостановлен404 Not Found— Снимок не найден или не готов
GET /v1/volume/:volumeId/snapshot/config
Возвращает конфигурацию автоматических снимков тома: признак включённости расписания, cron-выражение, дату следующего снимка и максимальное количество снимков. Изменяется конфигурация методом PUT /v1/volume/:volumeId/snapshot/config.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
volumeId |
Path | UUID | Да | ID тома |
Ответ:
{
"id": "cc0e8400-e29b-41d4-a716-446655440035",
"scheduleEnable": true,
"scheduleCron": "0 0 * * *",
"scheduleNextDate": "2025-01-16T00:00:00+00:00",
"maxSnapshots": 7,
"createdAt": "2025-01-15T10:30:00+00:00",
"updatedAt": "2025-01-15T10:35:00+00:00"
}
Ошибки:
404 Not Found— Том не найден
PUT /v1/volume/:volumeId/snapshot/config
Обновляет конфигурацию автоматических снимков тома: включает или отключает расписание, задаёт cron-выражение и максимальное количество снимков (от 1 до 100). При включённом расписании снимки создаются автоматически по cron-выражению, а в ответе возвращается объект VolumeSnapshotConfig с новой датой следующего снимка. Cron-выражение валидируется — при ошибке запрос отклоняется.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
volumeId |
Path | UUID | Да | ID тома |
Body:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
scheduleEnable |
boolean | Да | Включить автоматические снимки |
scheduleCron |
string | Да | Cron-выражение для расписания |
maxSnapshots |
number | Да | Максимальное количество снимков (от 1 до 100) |
Пример запроса:
{
"scheduleEnable": true,
"scheduleCron": "0 */6 * * *",
"maxSnapshots": 14
}
Ответ:
{
"id": "cc0e8400-e29b-41d4-a716-446655440035",
"scheduleEnable": true,
"scheduleCron": "0 */6 * * *",
"scheduleNextDate": "2025-01-15T12:00:00+00:00",
"maxSnapshots": 14,
"createdAt": "2025-01-15T10:30:00+00:00",
"updatedAt": "2025-01-15T10:35:00+00:00"
}
Ошибки:
404 Not Found— Том не найден400 Bad Request— Неверное cron-выражение400 Bad Request— Невалидные параметры