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 EFS provides scalable, elastic file storage.
Amazon EFS provides scalable, elastic file storage.
import com.pulumi.aws.efs.FileSystem;
import com.pulumi.aws.efs.FileSystemArgs;
import com.pulumi.aws.efs.MountTarget;
import com.pulumi.aws.efs.MountTargetArgs;
import com.pulumi.aws.efs.AccessPoint;
import com.pulumi.aws.efs.AccessPointArgs;
import com.pulumi.aws.efs.BackupPolicy;
import com.pulumi.aws.efs.BackupPolicyArgs;
import com.pulumi.aws.efs.EfsFunctions;Create and manage EFS file systems.
@ResourceType(type="aws:efs/fileSystem:FileSystem")
public class FileSystem extends com.pulumi.resources.CustomResource {
public FileSystem(String name);
public FileSystem(String name, @Nullable FileSystemArgs args);
public Output<String> id();
public Output<String> arn();
public Output<String> dnsName();
public Output<Optional<String>> creationToken();
public Output<Optional<Boolean>> encrypted();
public Output<Optional<String>> kmsKeyId();
public Output<Optional<String>> performanceMode();
public Output<Optional<String>> throughputMode();
public Output<Optional<Double>> provisionedThroughputInMibps();
public Output<Optional<Map<String, String>>> tags();
public Output<Integer> numberOfMountTargets();
public Output<String> sizeInBytes();
}
public class FileSystemArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder() { return new Builder(); }
public static final class Builder {
public Builder creationToken(Output<String> creationToken);
public Builder encrypted(Output<Boolean> encrypted);
public Builder kmsKeyId(Output<String> kmsKeyId);
public Builder performanceMode(Output<String> performanceMode);
public Builder throughputMode(Output<String> throughputMode);
public Builder provisionedThroughputInMibps(Output<Double> provisionedThroughputInMibps);
public Builder lifecyclePolicies(Output<List<FileSystemLifecyclePolicyArgs>> lifecyclePolicies);
public Builder tags(Output<Map<String, String>> tags);
public FileSystemArgs build();
}
}Create mount points for EFS file systems in VPC subnets.
@ResourceType(type="aws:efs/mountTarget:MountTarget")
public class MountTarget extends com.pulumi.resources.CustomResource {
public MountTarget(String name, MountTargetArgs args);
public Output<String> id();
public Output<String> fileSystemId();
public Output<String> subnetId();
public Output<Optional<String>> ipAddress();
public Output<Optional<List<String>>> securityGroups();
public Output<String> dnsName();
public Output<String> networkInterfaceId();
}
public class MountTargetArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder() { return new Builder(); }
public static final class Builder {
public Builder fileSystemId(Output<String> fileSystemId);
public Builder subnetId(Output<String> subnetId);
public Builder ipAddress(Output<String> ipAddress);
public Builder securityGroups(Output<List<String>> securityGroups);
public MountTargetArgs build();
}
}Create access points for application-specific access to EFS.
@ResourceType(type="aws:efs/accessPoint:AccessPoint")
public class AccessPoint extends com.pulumi.resources.CustomResource {
public AccessPoint(String name, AccessPointArgs args);
public Output<String> id();
public Output<String> arn();
public Output<String> fileSystemId();
public Output<String> fileSystemArn();
public Output<Optional<AccessPointPosixUser>> posixUser();
public Output<Optional<AccessPointRootDirectory>> rootDirectory();
public Output<Optional<Map<String, String>>> tags();
}
public class AccessPointArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder() { return new Builder(); }
public static final class Builder {
public Builder fileSystemId(Output<String> fileSystemId);
public Builder posixUser(Output<AccessPointPosixUserArgs> posixUser);
public Builder rootDirectory(Output<AccessPointRootDirectoryArgs> rootDirectory);
public Builder tags(Output<Map<String, String>> tags);
public AccessPointArgs build();
}
}import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.aws.efs.*;
import com.pulumi.aws.efs.inputs.*;
import java.util.Map;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
// Create EFS file system
var fileSystem = new FileSystem("shared-fs", FileSystemArgs.builder()
.encrypted(true)
.performanceMode("generalPurpose")
.throughputMode("bursting")
.lifecyclePolicies(
FileSystemLifecyclePolicyArgs.builder()
.transitionToIa("AFTER_30_DAYS")
.build()
)
.tags(Map.of("Name", "SharedFileSystem"))
.build());
// Create mount targets in each subnet
var mountTarget1 = new MountTarget("mount-1", MountTargetArgs.builder()
.fileSystemId(fileSystem.id())
.subnetId(subnet1Id)
.securityGroups(securityGroupId)
.build());
var mountTarget2 = new MountTarget("mount-2", MountTargetArgs.builder()
.fileSystemId(fileSystem.id())
.subnetId(subnet2Id)
.securityGroups(securityGroupId)
.build());
// Create access point
var accessPoint = new AccessPoint("app-access", AccessPointArgs.builder()
.fileSystemId(fileSystem.id())
.posixUser(AccessPointPosixUserArgs.builder()
.uid(1000)
.gid(1000)
.build())
.rootDirectory(AccessPointRootDirectoryArgs.builder()
.path("/app-data")
.creationInfo(AccessPointRootDirectoryCreationInfoArgs.builder()
.ownerUid(1000)
.ownerGid(1000)
.permissions("755")
.build())
.build())
.build());
ctx.export("fileSystemId", fileSystem.id());
ctx.export("dnsName", fileSystem.dnsName());
ctx.export("accessPointId", accessPoint.id());
}
}