Ctrl + k

or run

tessl search
Log in

Version

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
mavenpkg:maven/com.pulumi/aws@7.16.x

docs

common-patterns.mdgetting-started.mdindex.mdprovider.md
tile.json

tessl/maven-com-pulumi--aws

tessl install tessl/maven-com-pulumi--aws@7.16.0

Pulumi 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.

ebs.mddocs/services/storage/

EBS (Elastic Block Store)

Amazon EBS provides block-level storage volumes for EC2 instances.

Amazon EBS provides block-level storage volumes for EC2 instances.

Core Imports

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;

Volume Resource

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();
    }
}

Snapshot Resource

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();
    }
}

Snapshot Copy Resource

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();
    }
}

Usage Example

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());
    }
}