本文へスキップ

バックアップ ​

組み込みのバックアップエージェントの状態、プラン、実行、復元ポイント、検証、保持。

このグループの操作と、それぞれのアクセスルール、再試行ルール、パラメーター、レスポンスです。すべてのリクエストにはキーを付けます:Authorization: Bearer <key>(「認証」を参照)。

操作 ​

バックアップ状態の取得 ​

GET HEAD /api/v1/backup/status

アクセス: システム権限backup.read · 再試行: 再試行しても安全(読み取り)

バックアップシステムの概要を返します。内容は、保管庫(configured、available、空きバイト数と合計バイト数)、バックアップエージェント(online、最後のハートビート、バージョン)、プラン、完了した最新の復元ポイント、次回のスケジュール実行、実行中のジョブ、そしてwarningsです。warningsはそれぞれagent_offlineやbackup_staleのようなコードと、重大度warningまたはcriticalを持ちます。エージェントがオフラインの間、保管庫は利用不可として報告されます。パスやシークレットは含まれません。

レスポンス 200

フィールド型必須ルール
vaultobjectはい—
vault.configuredbooleanはい—
vault.idstring (uuid)はいnullも可
vault.availablebooleanはい—
vault.encryptedbooleanはいnullも可; ボールトが暗号化されているか。不明または未接続の場合は null。
vault.freeBytesstringはい10進数字で表した整数(文字列として送信); nullも可
vault.totalBytesstringはい10進数字で表した整数(文字列として送信); nullも可
agentobjectはい—
agent.onlinebooleanはい—
agent.lastSeenAtstring (date-time)はいnullも可
agent.versionstringはい64文字以内; nullも可
planobjectはい—
plan.enabledbooleanはい—
plan.hourintegerはい0~23
plan.minuteintegerはい0~59
plan.timezonestringはい1~64文字; 明示的なIANAタイムゾーン(例:Europe/Moscow)。サーバーが検証します。
plan.retentionobjectはい—
plan.retention.dailyintegerはい0~366
plan.retention.weeklyintegerはい0~260
plan.retention.monthlyintegerはい0~120
plan.revisionintegerはい0~2147483647
lastCompletedobjectはいnullも可
lastCompleted.idstring (uuid)はい—
lastCompleted.snapshotAtstring (date-time)はいスナップショット時刻T。ポイントの経過期間はTから数えます。
lastCompleted.completedAtstring (date-time)はい—
lastCompleted.blobsintegerはい0以上
lastCompleted.contentBytesstringはい10進数字で表した整数(文字列として送信)
lastCompleted.newBytesstringはい10進数字で表した整数(文字列として送信); このポイントが保管庫に追加したバイト数。
lastCompleted.tablesintegerはい0以上
lastCompleted.rowsintegerはい0以上
lastCompleted.pinnedbooleanはい—
lastCompleted.verifiedAtstring (date-time)はいnullも可
lastCompleted.verifyDepthstringはい次のいずれか:structural, deep, null; nullも可
lastCompleted.verifyErrorstringはい^[a-z][a-z0-9_]{0,63}$に一致; nullも可
nextRunAtstring (date-time)はいnullも可
runningobjectはいnullも可
running.idstring (uuid)はい—
running.kindstringはい次のいずれか:capture, verify, retention
running.statestringはい次のいずれか:queued, running, committing, completed, failed, interrupted
running.phasestringはい^[a-z][a-z0-9_]{0,63}$に一致; nullも可
running.startedAtstring (date-time)はい実行の開始時刻。キューで待機している間はリクエスト時刻。
running.finishedAtstring (date-time)はいnullも可
running.errorCodestringはい^[a-z][a-z0-9_]{0,63}$に一致; nullも可
running.pointIdstring (uuid)はいnullも可
running.progressobjectはい—
running.progress.bytesCopiedstringはい10進数字で表した整数(文字列として送信); 処理済みのバイト数。コピーしたもの、またはすでに保管庫にあるもの。
running.progress.bytesTotalstringはい10進数字で表した整数(文字列として送信)
running.progress.blobsCopiedintegerはい0以上
running.progress.blobsTotalintegerはい0以上
warningsobjectの配列はい10個以内の要素
warnings[].codestringはい次のいずれか:vault_not_configured, agent_offline, schedule_disabled, no_backup_yet, backup_stale, last_run_failed, vault_unavailable, vault_low_space, verify_failed, never_deep_verified
warnings[].severitystringはい次のいずれか:warning, critical

レスポンス: 200, 400, 401, 403, 404, 409, 422, 503, 507

例

bash
curl -X GET "$ARKVORY_URL/api/v1/backup/status" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

バックアッププランの取得 ​

GET HEAD /api/v1/backup/plan

アクセス: システム権限backup.read · 再試行: 再試行しても安全(読み取り)

毎日のスケジュール(enabled、IANAのtimezoneでのhourとminute)と、保持ポリシー(残すdaily、weekly、monthlyのポイント数)を、updateBackupPlanに送り返すためのrevisionとともに返します。変更するまでプランは無効で、スケジュールは02:00 UTC、保持は日次7件、週次4件、月次6件です。

レスポンス 200

フィールド型必須ルール
enabledbooleanはい—
hourintegerはい0~23
minuteintegerはい0~59
timezonestringはい1~64文字; 明示的なIANAタイムゾーン(例:Europe/Moscow)。サーバーが検証します。
retentionobjectはい—
retention.dailyintegerはい0~366
retention.weeklyintegerはい0~260
retention.monthlyintegerはい0~120
revisionintegerはい0~2147483647

レスポンス: 200, 400, 401, 403, 404, 409, 422, 503, 507

例

bash
curl -X GET "$ARKVORY_URL/api/v1/backup/plan" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

バックアッププランの置換 ​

PUT /api/v1/backup/plan

アクセス: システム権限backup.manage · 再試行: 想定するリビジョンを指定した場合のみ再試行(compare-and-swap)

プラン全体を置き換えます。enabled、hour(0〜23)、minute(0〜59)、timezone、retention(日次は最大366、週次は最大260、月次は最大120)はすべて必須です。expectedRevisionは現在のリビジョンでなければならず、そうでない場合は409 revision_mismatchになります。無効なフィールドは400で、detailsにJSON Pointerが含まれます。エージェントは、次の確認から新しいスケジュールに従います。

リクエスト本文 (application/json)

フィールド型必須ルール
expectedRevisionintegerはい0~2147483647
enabledbooleanはい—
hourintegerはい0~23
minuteintegerはい0~59
timezonestringはい1~64文字; 明示的なIANAタイムゾーン(例:Europe/Moscow)。サーバーが検証します。
retentionobjectはい—
retention.dailyintegerはい0~366
retention.weeklyintegerはい0~260
retention.monthlyintegerはい0~120

レスポンス 200

フィールド型必須ルール
enabledbooleanはい—
hourintegerはい0~23
minuteintegerはい0~59
timezonestringはい1~64文字; 明示的なIANAタイムゾーン(例:Europe/Moscow)。サーバーが検証します。
retentionobjectはい—
retention.dailyintegerはい0~366
retention.weeklyintegerはい0~260
retention.monthlyintegerはい0~120
revisionintegerはい0~2147483647

レスポンス: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

例

bash
curl -X PUT "$ARKVORY_URL/api/v1/backup/plan" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"expectedRevision":0,"enabled":false,"hour":0,"minute":0,"timezone":"<timezone>","retention":{"daily":0,"weekly":0,"monthly":0}}'

バックアップの即時実行の要求 ​

POST /api/v1/backup/runs

アクセス: システム権限backup.manage · 再試行: 同じIdempotency-Keyを使えば再試行しても安全

スケジュール外で、バックアップエージェント用のキャプチャをキューへ登録し、ジョブ(kindはcapture)とともに202を返します。エージェントがそれを実行し、続いて検証と保持を行います。Idempotency-Keyは必須で、同じ呼び出し元が繰り返すと同じジョブが返ります。ジョブはlistBackupJobsで確認してください。同時に未完了にできるバックアップ要求は最大100件です(507 queue_full)。オンラインのエージェントがない間、ジョブは待機します。

パラメーター

名前場所型必須ルール
Idempotency-Keyヘッダーstringはい^[A-Za-z0-9_.:-]{1,128}$に一致; Repeat returns the same job; per caller and operation kind.

レスポンス 202

フィールド型必須ルール
idstring (uuid)はい—
kindstringはい次のいずれか:capture, verify, retention
statestringはい次のいずれか:queued, running, committing, completed, failed, interrupted

レスポンス: 202, 400, 401, 403, 404, 405, 409, 422, 503, 507

例

bash
curl -X POST "$ARKVORY_URL/api/v1/backup/runs" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"

バックアップジョブの一覧表示 ​

GET HEAD /api/v1/backup/jobs

アクセス: システム権限backup.read · 再試行: 再試行しても安全(読み取り)

キャプチャ、検証、保持のジョブを新しい順に列挙します。各ジョブには、state(queued、running、committing、completed、failed、interrupted)、phase、時刻、errorCode、結果のポイント、progress(処理したバイト数とオブジェクト数)が含まれます。ページにはlimit件のジョブ(1〜100、既定は50)が含まれ、続きはafterにnextを設定して取得します。

パラメーター

名前場所型必須ルール
afterクエリstringいいえ^[0-9]{1,17}_[0-9a-f-]{36}$に一致; next of the previous page
limitクエリintegerいいえ1~100; 既定値:50

レスポンス 200

フィールド型必須ルール
itemsobjectの配列はい100個以内の要素
items[].idstring (uuid)はい—
items[].kindstringはい次のいずれか:capture, verify, retention
items[].statestringはい次のいずれか:queued, running, committing, completed, failed, interrupted
items[].phasestringはい^[a-z][a-z0-9_]{0,63}$に一致; nullも可
items[].startedAtstring (date-time)はい実行の開始時刻。キューで待機している間はリクエスト時刻。
items[].finishedAtstring (date-time)はいnullも可
items[].errorCodestringはい^[a-z][a-z0-9_]{0,63}$に一致; nullも可
items[].pointIdstring (uuid)はいnullも可
items[].progressobjectはい—
items[].progress.bytesCopiedstringはい10進数字で表した整数(文字列として送信); 処理済みのバイト数。コピーしたもの、またはすでに保管庫にあるもの。
items[].progress.bytesTotalstringはい10進数字で表した整数(文字列として送信)
items[].progress.blobsCopiedintegerはい0以上
items[].progress.blobsTotalintegerはい0以上
nextstringはい^[0-9]{1,17}_[0-9a-f-]{36}$に一致; nullも可

レスポンス: 200, 400, 401, 403, 404, 409, 422, 503, 507

例

bash
curl -X GET "$ARKVORY_URL/api/v1/backup/jobs" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

バックアップポイントの一覧表示 ​

GET HEAD /api/v1/backup/points

アクセス: システム権限backup.read · 再試行: 再試行しても安全(読み取り)

現在の保管庫の完了済みの復元ポイントを、スナップショットが新しい順に列挙します。各ポイントには、スナップショット時刻T、サイズ、保管庫に追加されたバイト数、pinnedかどうか、最新の検証結果(verifiedAt、verifyDepthはstructuralまたはdeep、verifyError)が含まれます。ページにはlimit件のポイント(1〜100、既定は50)が含まれ、続きはafterにnextを設定して取得します。置き換えられた保管庫には、その保管庫自身のポイントのみが表示されます。

パラメーター

名前場所型必須ルール
afterクエリstringいいえ^[0-9]{1,17}_[0-9a-f-]{36}$に一致; next of the previous page
limitクエリintegerいいえ1~100; 既定値:50

レスポンス 200

フィールド型必須ルール
itemsobjectの配列はい100個以内の要素
items[].idstring (uuid)はい—
items[].snapshotAtstring (date-time)はいスナップショット時刻T。ポイントの経過期間はTから数えます。
items[].completedAtstring (date-time)はい—
items[].blobsintegerはい0以上
items[].contentBytesstringはい10進数字で表した整数(文字列として送信)
items[].newBytesstringはい10進数字で表した整数(文字列として送信); このポイントが保管庫に追加したバイト数。
items[].tablesintegerはい0以上
items[].rowsintegerはい0以上
items[].pinnedbooleanはい—
items[].verifiedAtstring (date-time)はいnullも可
items[].verifyDepthstringはい次のいずれか:structural, deep, null; nullも可
items[].verifyErrorstringはい^[a-z][a-z0-9_]{0,63}$に一致; nullも可
nextstringはい^[0-9]{1,17}_[0-9a-f-]{36}$に一致; nullも可

レスポンス: 200, 400, 401, 403, 404, 409, 422, 503, 507

例

bash
curl -X GET "$ARKVORY_URL/api/v1/backup/points" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

バックアップポイントの詳細検証の要求 ​

POST /api/v1/backup/points/{id}/verify

アクセス: システム権限backup.manage · 再試行: 同じIdempotency-Keyを使えば再試行しても安全

ポイントidの保存済みバイトをすべて読み取る検証をキューへ登録します。応答は202とジョブで、結果はポイントのverifiedAt、verifyDepth、verifyErrorに現れます。Idempotency-Keyは必須で、別のポイントに再利用すると409 idempotency_mismatchになります。未知のポイントは404です。

パラメーター

名前場所型必須ルール
idパスstring (uuid)はい—
Idempotency-Keyヘッダーstringはい^[A-Za-z0-9_.:-]{1,128}$に一致; Repeat returns the same job; per caller and operation kind.

レスポンス 202

フィールド型必須ルール
idstring (uuid)はい—
kindstringはい次のいずれか:capture, verify, retention
statestringはい次のいずれか:queued, running, committing, completed, failed, interrupted

レスポンス: 202, 400, 401, 403, 404, 405, 409, 422, 503, 507

例

bash
curl -X POST "$ARKVORY_URL/api/v1/backup/points/$ID/verify" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"

バックアップポイントの固定と固定解除 ​

PUT /api/v1/backup/points/{id}/pin

アクセス: システム権限backup.manage · 再試行: 再試行しても安全:同じリクエストは同じ効果になる

ポイントidのpinnedを設定します。固定されたポイントは、固定を解除するまで、ポリシーを超えて保持ルールによって保持されます。同じ値を再度設定しても何も変わらず、応答は更新後のポイントです。未知のポイント、またはすでに破棄されたポイントは404です。

パラメーター

名前場所型必須ルール
idパスstring (uuid)はい—

リクエスト本文 (application/json)

フィールド型必須ルール
pinnedbooleanはい—

レスポンス 200

フィールド型必須ルール
idstring (uuid)はい—
snapshotAtstring (date-time)はいスナップショット時刻T。ポイントの経過期間はTから数えます。
completedAtstring (date-time)はい—
blobsintegerはい0以上
contentBytesstringはい10進数字で表した整数(文字列として送信)
newBytesstringはい10進数字で表した整数(文字列として送信); このポイントが保管庫に追加したバイト数。
tablesintegerはい0以上
rowsintegerはい0以上
pinnedbooleanはい—
verifiedAtstring (date-time)はいnullも可
verifyDepthstringはい次のいずれか:structural, deep, null; nullも可
verifyErrorstringはい^[a-z][a-z0-9_]{0,63}$に一致; nullも可

レスポンス: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

例

bash
curl -X PUT "$ARKVORY_URL/api/v1/backup/points/$ID/pin" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"pinned":false}'

バックアップの保持ルールで残るもののプレビュー ​

GET HEAD /api/v1/backup/retention/preview

アクセス: システム権限backup.read · 再試行: 再試行しても安全(読み取り)

保持ポリシーでどのポイントが残るか(それぞれの理由daily、weekly、monthly、pinned、newest付き)と、現時点でどのポイントが削除されるかを示します。検証に失敗したポイントは考慮されません。プレビューは参考情報です。requestBackupRetentionは実行時に保管庫から改めて判断します。

レスポンス 200

フィールド型必須ルール
keepobjectの配列はい—
keep[].idstring (uuid)はい—
keep[].reasonsstringの配列はい各要素:次のいずれか:daily, weekly, monthly, pinned, newest
deleteobjectの配列はい—
delete[].idstring (uuid)はい—

レスポンス: 200, 400, 401, 403, 404, 409, 422, 503, 507

例

bash
curl -X GET "$ARKVORY_URL/api/v1/backup/retention/preview" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

バックアップの保持ルール適用の要求 ​

POST /api/v1/backup/retention/apply

アクセス: システム権限backup.manage · 再試行: 同じIdempotency-Keyを使えば再試行しても安全

保持ジョブをキューへ登録します。エージェントはポリシー外のポイントを破棄し、残ったどのポイントも使っていないコンテンツを削除するため、保管庫に空き容量が戻るのはジョブが完了してからです。ジョブとともに202を返します。Idempotency-Keyは必須で、繰り返すと同じジョブが返ります。事前にpreviewBackupRetentionを確認してください。

パラメーター

名前場所型必須ルール
Idempotency-Keyヘッダーstringはい^[A-Za-z0-9_.:-]{1,128}$に一致; Repeat returns the same job; per caller and operation kind.

レスポンス 202

フィールド型必須ルール
idstring (uuid)はい—
kindstringはい次のいずれか:capture, verify, retention
statestringはい次のいずれか:queued, running, committing, completed, failed, interrupted

レスポンス: 202, 400, 401, 403, 404, 405, 409, 422, 503, 507

例

bash
curl -X POST "$ARKVORY_URL/api/v1/backup/retention/apply" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"

Arkvory · ProAnimaStudio