Snapshot

class Snapshot : KotlinCustomResource

Provides a DBFS Snapshot resource. For information about DBFS Snapshot and how to use it.

NOTE: Available since v1.156.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.ecs.EcsFunctions;
import com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;
import com.pulumi.alicloud.ecs.inputs.GetImagesArgs;
import com.pulumi.alicloud.vpc.Network;
import com.pulumi.alicloud.vpc.NetworkArgs;
import com.pulumi.alicloud.vpc.Switch;
import com.pulumi.alicloud.vpc.SwitchArgs;
import com.pulumi.alicloud.ecs.SecurityGroup;
import com.pulumi.alicloud.ecs.SecurityGroupArgs;
import com.pulumi.alicloud.ecs.Instance;
import com.pulumi.alicloud.ecs.InstanceArgs;
import com.pulumi.alicloud.databasefilesystem.Instance;
import com.pulumi.alicloud.databasefilesystem.InstanceArgs;
import com.pulumi.alicloud.databasefilesystem.InstanceAttachment;
import com.pulumi.alicloud.databasefilesystem.InstanceAttachmentArgs;
import com.pulumi.alicloud.databasefilesystem.Snapshot;
import com.pulumi.alicloud.databasefilesystem.SnapshotArgs;
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 config = ctx.config();
final var name = config.get("name").orElse("tf-example");
final var zoneId = "cn-hangzhou-i";
final var exampleInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()
.availabilityZone(zoneId)
.instanceTypeFamily("ecs.g7se")
.build());
final var exampleImages = EcsFunctions.getImages(GetImagesArgs.builder()
.instanceType(exampleInstanceTypes.applyValue(getInstanceTypesResult -> getInstanceTypesResult.instanceTypes())[exampleInstanceTypes.applyValue(getInstanceTypesResult -> getInstanceTypesResult.instanceTypes()).length() - 1].id())
.nameRegex("^aliyun_2")
.owners("system")
.build());
var exampleNetwork = new Network("exampleNetwork", NetworkArgs.builder()
.vpcName(name)
.cidrBlock("10.4.0.0/16")
.build());
var exampleSwitch = new Switch("exampleSwitch", SwitchArgs.builder()
.vswitchName(name)
.cidrBlock("10.4.0.0/24")
.vpcId(exampleNetwork.id())
.zoneId(zoneId)
.build());
var exampleSecurityGroup = new SecurityGroup("exampleSecurityGroup", SecurityGroupArgs.builder()
.vpcId(exampleNetwork.id())
.build());
var exampleInstance = new Instance("exampleInstance", InstanceArgs.builder()
.availabilityZone(zoneId)
.instanceName(name)
.imageId(exampleImages.applyValue(getImagesResult -> getImagesResult.images()[1].id()))
.instanceType(exampleInstanceTypes.applyValue(getInstanceTypesResult -> getInstanceTypesResult.instanceTypes())[exampleInstanceTypes.applyValue(getInstanceTypesResult -> getInstanceTypesResult.instanceTypes()).length() - 1].id())
.securityGroups(exampleSecurityGroup.id())
.vswitchId(exampleSwitch.id())
.systemDiskCategory("cloud_essd")
.build());
var exampleDatabasefilesystem_instanceInstance = new Instance("exampleDatabasefilesystem/instanceInstance", InstanceArgs.builder()
.category("standard")
.zoneId(zoneId)
.performanceLevel("PL1")
.instanceName(name)
.size(100)
.build());
var exampleInstanceAttachment = new InstanceAttachment("exampleInstanceAttachment", InstanceAttachmentArgs.builder()
.ecsId(exampleInstance.id())
.instanceId(exampleDatabasefilesystem / instanceInstance.id())
.build());
var exampleSnapshot = new Snapshot("exampleSnapshot", SnapshotArgs.builder()
.instanceId(exampleInstanceAttachment.instanceId())
.snapshotName(name)
.description(name)
.retentionDays(30)
.build());
}
}

Import

DBFS Snapshot can be imported using the id, e.g.

$ pulumi import alicloud:databasefilesystem/snapshot:Snapshot example <id>

Properties

Link copied to clipboard
val description: Output<String>?

Description of the snapshot. The description must be 2 to 256 characters in length. It must start with a letter, and cannot start with http:// or https://.

Link copied to clipboard
val force: Output<Boolean>?

Whether to force deletion of snapshots.

Link copied to clipboard
val id: Output<String>
Link copied to clipboard
val instanceId: Output<String>

The ID of the database file system.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val retentionDays: Output<Int>?

The retention time of the snapshot. Unit: days. Snapshots are automatically released after the retention time expires. Valid values: 1 to 65536.

Link copied to clipboard
val snapshotName: Output<String>?

The display name of the snapshot. The length is 2 to 128 characters. It must start with a large or small letter or Chinese, and cannot start with http:// and https://. It can contain numbers, colons (:), underscores (_), or hyphens (-). To prevent name conflicts with automatic snapshots, you cannot start with auto.

Link copied to clipboard
val status: Output<String>

The status of the Snapshot.

Link copied to clipboard
val urn: Output<String>