指定されたプロジェクト内の 1 つのクラスターのレガシーバックアップを 1 件復元します。このリソースを使用するには、リクエスト元のサービス アカウントまたは API キーにプロジェクト オーナー ロールが必要です。2020 年 3 月 23 日以降、すべての新しいクラスターが使用できるのはクラウドバックアップのみです。4.2 にアップグレードすると、バックアップ システムが現在レガシーバックアップに設定されている場合、クラウドバックアップにアップグレードされます。このアップグレード後も、既存のレガシーバックアップ スナップショットはすべて引き続き利用できますが、保持ポリシーに従い、時間の経過とともに期限が切れます。バックアップ ポリシーがデフォルトのスケジュールにリセットされます。レガシーバックアップでカスタム バックアップ ポリシーを設定していた場合は、クラウドバックアップに関するドキュメントに記載されている手順に従ってポリシーを再作成する必要があります。このエンドポイントは、シャーディングされたクラスターのチェックポイント復元ジョブの作成、またはクエリ可能なバックアップ スナップショットの復元ジョブの作成をサポートしていません。リクエスト本文に AUTOMATED_RESTORE の delivery.methodName を指定して自動復元ジョブを作成すると、MongoDB Cloud により、復元前にターゲット クラスター上の既存のデータがすべて削除されます。
プロジェクトを識別する一意の 24 桁の 16 進数文字列。 認証済みユーザーがアクセスできるすべてのプロジェクトを取得するには、 /groups エンドポイントを使用します。
注: グループとプロジェクトは同義語です。そのため、グループ ID はプロジェクト ID と同じです。既存のグループの場合、グループ/プロジェクト ID は同じままです。リソースおよび対応するエンドポイントでは、グループという用語が使用されます。
形式は次のパターンと一致する必要があります: ^([a-f0-9]{24})$。
返却対象のスナップショットを持つクラスターを識別する、人間が判読可能なラベル。
形式は次のパターンと一致する必要があります: ^[a-zA-Z0-9][a-zA-Z0-9-]*$。
アプリケーションがレスポンスを envelope JSON オブジェクトにラップするかどうかを示すフラグ。一部の API クライアントは、HTTP レスポンス ヘッダーまたはステータス コードにアクセスできません。これを修正するには、クエリで envelope=true を設定します。結果のリストを返すエンドポイントは、結果オブジェクトをエンベロープとして使用します。アプリケーションは、レスポンス本体にステータス パラメータを追加します。
デフォルト値はfalseです。
レスポンス本体を pretty-print 形式にするかどうかを示すフラグ。
デフォルト値はfalseです。
指定されたプロジェクト内の 1 つのクラスターに復元するレガシー バックアップ。
シャーディングされたクラスターのチェックポイントを識別する、ユニークな 24 桁の 16 進数文字列。チェックポイントは、データを復元する点を表します。このパラメーターは "delivery.methodName" : "AUTOMATED_RESTORE" の場合に適用されます。このパラメーターはシャーディングされたクラスターでのみ使用してください。
形式は次のパターンと一致する必要があります: ^([a-f0-9]{24})$。
復元されたスナップショットデータの配信方法を示す方法と詳細。
特定の秒内の操作を表す 32 ビットの増分序数。oplogTs と組み合わせると、MongoDB Cloud がデータをリストアする時点を表します。このパラメータは、 "delivery.methodName" : "AUTOMATED_RESTORE"の場合に適用されます。
の最小値は 1 です。
このスナップショットを復元する日時。このパラメーターは、UTC の ISO 8601 期間形式で値を表します。これは Oplog タイムスタンプの最初の部分を表します。oplogInc と組み合わせると、データを復元する最後のデータベース操作を表します。このパラメータは、 "delivery.methodName" : "AUTOMATED_RESTORE" 場合に適用されます。レプリカセットの local.oplog.rs に対してクエリを実行し、目的のタイムスタンプを見つけます。
形式は次のパターンと一致する必要があります: ^(?:[1-9]\\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d{1,9})?(?:Z|[+-][01]\\d:[0-5]\\d)$。
このスナップショットを復元するタイムスタンプ。このパラメーターは、UNIXエポックからの経過ミリ秒で値を表します。このタイムスタンプは、現在の時刻から 24 時間以内である必要があります。このパラメーターは、"delivery.methodName" : "AUTOMATED_RESTORE" の場合に適用されます。
の最小値は 1199145600000 です。
復元するスナップショットを識別するユニークな 24 桁の 16 進数文字列。snapshotId を設定した場合、oplogInc、oplogTs、pointInTimeUTCMillis、checkpointId は設定できません。
形式は次のパターンと一致する必要があります: ^([a-f0-9]{24})$。
atlas api legacyBackup createClusterRestoreJob --help
import (
"os"
"context"
"log"
sdk "go.mongodb.org/atlas-sdk/v20250312001/admin"
)
func main() {
ctx := context.Background()
clientID := os.Getenv("MONGODB_ATLAS_CLIENT_ID")
clientSecret := os.Getenv("MONGODB_ATLAS_CLIENT_SECRET")
// See https://dochub.mongodb.org/core/atlas-go-sdk-oauth
client, err := sdk.NewClient(sdk.UseOAuthAuth(clientID, clientSecret))
if err != nil {
log.Fatalf("Error: %v", err)
}
params = &sdk.CreateGroupClusterRestoreJobApiParams{}
sdkResp, httpResp, err := client.LegacyBackupApi.
CreateGroupClusterRestoreJobWithParams(ctx, params).
Execute()
}
curl --include --header "Authorization: Bearer ${ACCESS_TOKEN}" \
--header "Accept: application/vnd.atlas.2025-03-12+json" \
--header "Content-Type: application/json" \
-X POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/clusters/{clusterName}/restoreJobs" \
-d '{ <Payload> }'
curl --user "${PUBLIC_KEY}:${PRIVATE_KEY}" \
--digest --include \
--header "Accept: application/vnd.atlas.2025-03-12+json" \
--header "Content-Type: application/json" \
-X POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/clusters/{clusterName}/restoreJobs" \
-d '{ <Payload> }'
{
"checkpointId": "32b6e34b3d91647abb20e7b8",
"delivery": {
"expirationHours": 42,
"maxDownloads": 42,
"methodName": "CLIENT_PIT_HTTP",
"targetClusterId": "32b6e34b3d91647abb20e7b8",
"targetClusterName": "string",
"targetGroupId": "32b6e34b3d91647abb20e7b8"
},
"oplogInc": 42,
"oplogTs": "string",
"pointInTimeUTCMillis": 42,
"snapshotId": "32b6e34b3d91647abb20e7b8"
}
{
"links": [
{
"href": "https://cloud.mongodb.com/api/atlas",
"rel": "self"
}
],
"results": [
{
"batchId": "32b6e34b3d91647abb20e7b8",
"clusterId": "32b6e34b3d91647abb20e7b8",
"clusterName": "string",
"created": "2025-05-04T09:42:00Z",
"delivery": {
"authHeader": "string",
"authValue": "string",
"expirationHours": 42,
"expires": "2025-05-04T09:42:00Z",
"maxDownloads": 42,
"methodName": "CLIENT_PIT_HTTP",
"statusName": "NOT_STARTED",
"targetClusterId": "32b6e34b3d91647abb20e7b8",
"targetClusterName": "string",
"targetGroupId": "32b6e34b3d91647abb20e7b8",
"url": "string",
"urlV2": "string"
},
"deploymentJobId": "string",
"encryptionEnabled": true,
"groupId": "32b6e34b3d91647abb20e7b8",
"hashes": [
{
"fileName": "string",
"hash": "string",
"links": [
{
"href": "https://cloud.mongodb.com/api/atlas",
"rel": "self"
}
],
"typeName": "SHA1"
}
],
"id": "32b6e34b3d91647abb20e7b8",
"links": [
{
"href": "https://cloud.mongodb.com/api/atlas",
"rel": "self"
}
],
"masterKeyUUID": "string",
"snapshotId": "32b6e34b3d91647abb20e7b8",
"statusName": "IN_PROGRESS",
"timestamp": {
"date": "2025-05-04T09:42:00Z",
"increment": 1199145600
}
}
],
"totalCount": 42
}
{
"error": 400,
"detail": "(This is just an example, the exception may not be related to this endpoint) No provider AWS exists.",
"reason": "Bad Request",
"errorCode": "VALIDATION_ERROR"
}
{
"error": 401,
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"reason": "Unauthorized",
"errorCode": "NOT_ORG_GROUP_CREATOR"
}
{
"error": 403,
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"reason": "Forbidden",
"errorCode": "CANNOT_CHANGE_GROUP_NAME"
}
{
"error": 404,
"detail": "(This is just an example, the exception may not be related to this endpoint) Cannot find resource AWS",
"reason": "Not Found",
"errorCode": "RESOURCE_NOT_FOUND"
}
{
"error": 500,
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"reason": "Internal Server Error",
"errorCode": "UNEXPECTED_ERROR"
}