docs
reference
services
tessl install tessl/maven-com-pulumi--aws@7.16.0Pulumi Java SDK for AWS providing strongly-typed Infrastructure-as-Code for 227 AWS service packages including compute, storage, databases, networking, security, analytics, machine learning, and more.
Amazon EBS provides block-level storage volumes for EC2 instances.
Amazon EBS provides block-level storage volumes for EC2 instances.
import com.pulumi.aws.ebs.Volume;
import com.pulumi.aws.ebs.VolumeArgs;
import com.pulumi.aws.ebs.Snapshot;
import com.pulumi.aws.ebs.SnapshotArgs;
import com.pulumi.aws.ebs.SnapshotCopy;
import com.pulumi.aws.ebs.SnapshotCopyArgs;
import com.pulumi.aws.ebs.DefaultKmsKey;
import com.pulumi.aws.ebs.DefaultKmsKeyArgs;
import com.pulumi.aws.ebs.EbsFunctions;Create and manage EBS volumes.
@ResourceType(type="aws:ebs/volume:Volume")
public class Volume extends com.pulumi.resources.CustomResource {
public Volume(String name, VolumeArgs args);
public Volume(String name, VolumeArgs args, @Nullable CustomResourceOptions options);
public Output<String> id();
public Output<String> arn();
public Output<String> availabilityZone();
public Output<Optional<Integer>> size();
public Output<Optional<String>> type();
public Output<Optional<Integer>> iops();
public Output<Optional<Integer>> throughput();
public Output<Optional<Boolean>> encrypted();
public Output<Optional<String>> kmsKeyId();
public Output<Optional<String>> snapshotId();
public Output<Optional<Map<String, String>>> tags();
}
public class VolumeArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder() { return new Builder(); }
public static final class Builder {
// Required
public Builder availabilityZone(Output<String> availabilityZone);
// Optional
public Builder size(Output<Integer> size);
public Builder type(Output<String> type);
public Builder iops(Output<Integer> iops);
public Builder throughput(Output<Integer> throughput);
public Builder encrypted(Output<Boolean> encrypted);
public Builder kmsKeyId(Output<String> kmsKeyId);
public Builder snapshotId(Output<String> snapshotId);
public Builder multiAttachEnabled(Output<Boolean> multiAttachEnabled);
public Builder outpostArn(Output<String> outpostArn);
public Builder tags(Output<Map<String, String>> tags);
public VolumeArgs build();
}
}Create EBS volume snapshots.
@ResourceType(type="aws:ebs/snapshot:Snapshot")
public class Snapshot extends com.pulumi.resources.CustomResource {
public Snapshot(String name, SnapshotArgs args);
public Output<String> id();
public Output<String> arn();
public Output<String> volumeId();
public Output<Optional<String>> description();
public Output<Optional<Map<String, String>>> tags();
public Output<String> ownerId();
public Output<String> ownerAlias();
public Output<Boolean> encrypted();
public Output<String> kmsKeyId();
public Output<Integer> volumeSize();
}
public class SnapshotArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder() { return new Builder(); }
public static final class Builder {
public Builder volumeId(Output<String> volumeId);
public Builder description(Output<String> description);
public Builder outpostArn(Output<String> outpostArn);
public Builder permanentRestore(Output<Boolean> permanentRestore);
public Builder storageTier(Output<String> storageTier);
public Builder temporaryRestoreDays(Output<Integer> temporaryRestoreDays);
public Builder tags(Output<Map<String, String>> tags);
public SnapshotArgs build();
}
}Copy EBS snapshots across regions.
@ResourceType(type="aws:ebs/snapshotCopy:SnapshotCopy")
public class SnapshotCopy extends com.pulumi.resources.CustomResource {
public SnapshotCopy(String name, SnapshotCopyArgs args);
public Output<String> id();
public Output<String> arn();
public Output<String> sourceSnapshotId();
public Output<String> sourceRegion();
public Output<Optional<String>> description();
public Output<Optional<Boolean>> encrypted();
public Output<Optional<String>> kmsKeyId();
}
public class SnapshotCopyArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder() { return new Builder(); }
public static final class Builder {
public Builder sourceSnapshotId(Output<String> sourceSnapshotId);
public Builder sourceRegion(Output<String> sourceRegion);
public Builder description(Output<String> description);
public Builder encrypted(Output<Boolean> encrypted);
public Builder kmsKeyId(Output<String> kmsKeyId);
public Builder tags(Output<Map<String, String>> tags);
public SnapshotCopyArgs build();
}
}import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.aws.ebs.*;
import java.util.Map;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
// Create an EBS volume
var volume = new Volume("data-volume", VolumeArgs.builder()
.availabilityZone("us-east-1a")
.size(100)
.type("gp3")
.iops(3000)
.throughput(125)
.encrypted(true)
.tags(Map.of(
"Name", "data-volume",
"Environment", "production"
))
.build());
// Create a snapshot
var snapshot = new Snapshot("volume-snapshot", SnapshotArgs.builder()
.volumeId(volume.id())
.description("Backup of data volume")
.tags(Map.of("Backup", "daily"))
.build());
ctx.export("volumeId", volume.id());
ctx.export("snapshotId", snapshot.id());
}
}