Restore Job
Provides a Hybrid Backup Recovery (HBR) Restore Job resource. For information about Hybrid Backup Recovery (HBR) Restore Job and how to use it, see What is Restore Job.
NOTE: Available in v1.133.0+.
Example Usage
Basic Usage
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.alicloud.hbr.HbrFunctions;
import com.pulumi.alicloud.hbr.inputs.GetEcsBackupPlansArgs;
import com.pulumi.alicloud.hbr.inputs.GetOssBackupPlansArgs;
import com.pulumi.alicloud.hbr.inputs.GetNasBackupPlansArgs;
import com.pulumi.alicloud.hbr.inputs.GetSnapshotsArgs;
import com.pulumi.alicloud.hbr.RestoreJob;
import com.pulumi.alicloud.hbr.RestoreJobArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var defaultEcsBackupPlans = HbrFunctions.getEcsBackupPlans(GetEcsBackupPlansArgs.builder()
.nameRegex("plan-tf-used-dont-delete")
.build());
final var defaultOssBackupPlans = HbrFunctions.getOssBackupPlans(GetOssBackupPlansArgs.builder()
.nameRegex("plan-tf-used-dont-delete")
.build());
final var defaultNasBackupPlans = HbrFunctions.getNasBackupPlans(GetNasBackupPlansArgs.builder()
.nameRegex("plan-tf-used-dont-delete")
.build());
final var ecsSnapshots = HbrFunctions.getSnapshots(GetSnapshotsArgs.builder()
.sourceType("ECS_FILE")
.vaultId(defaultEcsBackupPlans.applyValue(getEcsBackupPlansResult -> getEcsBackupPlansResult.plans()[0].vaultId()))
.instanceId(defaultEcsBackupPlans.applyValue(getEcsBackupPlansResult -> getEcsBackupPlansResult.plans()[0].instanceId()))
.build());
final var ossSnapshots = HbrFunctions.getSnapshots(GetSnapshotsArgs.builder()
.sourceType("OSS")
.vaultId(defaultOssBackupPlans.applyValue(getOssBackupPlansResult -> getOssBackupPlansResult.plans()[0].vaultId()))
.bucket(defaultOssBackupPlans.applyValue(getOssBackupPlansResult -> getOssBackupPlansResult.plans()[0].bucket()))
.build());
final var nasSnapshots = HbrFunctions.getSnapshots(GetSnapshotsArgs.builder()
.sourceType("NAS")
.vaultId(defaultNasBackupPlans.applyValue(getNasBackupPlansResult -> getNasBackupPlansResult.plans()[0].vaultId()))
.fileSystemId(defaultNasBackupPlans.applyValue(getNasBackupPlansResult -> getNasBackupPlansResult.plans()[0].fileSystemId()))
.createTime(defaultNasBackupPlans.applyValue(getNasBackupPlansResult -> getNasBackupPlansResult.plans()[0].createTime()))
.build());
var nasJob = new RestoreJob("nasJob", RestoreJobArgs.builder()
.snapshotHash(nasSnapshots.applyValue(getSnapshotsResult -> getSnapshotsResult.snapshots()[0].snapshotHash()))
.vaultId(defaultNasBackupPlans.applyValue(getNasBackupPlansResult -> getNasBackupPlansResult.plans()[0].vaultId()))
.sourceType("NAS")
.restoreType("NAS")
.snapshotId(nasSnapshots.applyValue(getSnapshotsResult -> getSnapshotsResult.snapshots()[0].snapshotId()))
.targetFileSystemId(defaultNasBackupPlans.applyValue(getNasBackupPlansResult -> getNasBackupPlansResult.plans()[0].fileSystemId()))
.targetCreateTime(defaultNasBackupPlans.applyValue(getNasBackupPlansResult -> getNasBackupPlansResult.plans()[0].createTime()))
.targetPath("/")
.options("""
{"includes":[], "excludes":[]}
""")
.build());
var ossJob = new RestoreJob("ossJob", RestoreJobArgs.builder()
.snapshotHash(ossSnapshots.applyValue(getSnapshotsResult -> getSnapshotsResult.snapshots()[0].snapshotHash()))
.vaultId(defaultOssBackupPlans.applyValue(getOssBackupPlansResult -> getOssBackupPlansResult.plans()[0].vaultId()))
.sourceType("OSS")
.restoreType("OSS")
.snapshotId(ossSnapshots.applyValue(getSnapshotsResult -> getSnapshotsResult.snapshots()[0].snapshotId()))
.targetBucket(defaultOssBackupPlans.applyValue(getOssBackupPlansResult -> getOssBackupPlansResult.plans()[0].bucket()))
.targetPrefix("")
.options("""
{"includes":[], "excludes":[]}
""")
.build());
var ecsJob = new RestoreJob("ecsJob", RestoreJobArgs.builder()
.snapshotHash(ecsSnapshots.applyValue(getSnapshotsResult -> getSnapshotsResult.snapshots()[0].snapshotHash()))
.vaultId(defaultEcsBackupPlans.applyValue(getEcsBackupPlansResult -> getEcsBackupPlansResult.plans()[0].vaultId()))
.sourceType("ECS_FILE")
.restoreType("ECS_FILE")
.snapshotId(ecsSnapshots.applyValue(getSnapshotsResult -> getSnapshotsResult.snapshots()[0].snapshotId()))
.targetInstanceId(defaultEcsBackupPlans.applyValue(getEcsBackupPlansResult -> getEcsBackupPlansResult.plans()[0].instanceId()))
.targetPath("/")
.build());
}
}
Import
Hybrid Backup Recovery (HBR) Restore Job can be imported using the id. Format to <restore_job_id>:<restore_type>
, e.g.
$ pulumi import alicloud:hbr/restoreJob:RestoreJob example your_restore_job_id:your_restore_type
Properties
The include path. NOTE: Invalid while source_type equals OSS
or NAS
. It's a json string with format:["/includePath"]
, Up to 255 characters. WARNING: The field is required while source_type equals OTS_TABLE
which means source table name. If this value filled in incorrectly, the task may not start correctly, so please check the parameters before executing the plan.
Recovery options. NOTE: Required while source_type equals OSS
or NAS
, invalid while source_type equals ECS_FILE
. It's a json string with format:"{"includes":[],"excludes":[]}",
. Recovery options. When restores OTS_TABLE and real target time is the rangEnd time of the snapshot, it should be a string with format: {"UI_TargetTime":1650032529018}
.