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.

efs.mddocs/services/storage/

EFS (Elastic File System)

Amazon EFS provides scalable, elastic file storage.

Amazon EFS provides scalable, elastic file storage.

Core Imports

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;

File System Resource

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

Mount Target Resource

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

Access Point Resource

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

Usage Example

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