Class LustreFileSystem


  • public class LustreFileSystem
    extends com.pulumi.resources.CustomResource
    Manages a FSx Lustre File System. See the [FSx Lustre Guide](https://docs.aws.amazon.com/fsx/latest/LustreGuide/what-is.html) for more information. > **NOTE:** `autoImportPolicy`, `exportPath`, `importPath` and `importedFileChunkSize` are not supported with the `PERSISTENT_2` deployment type. Use `aws.fsx.DataRepositoryAssociation` instead. ## Example Usage
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.fsx.LustreFileSystem;
     import com.pulumi.aws.fsx.LustreFileSystemArgs;
     import java.util.ArrayList;
     import java.util.Arrays;
     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) {
             var example = new LustreFileSystem("example", LustreFileSystemArgs.builder()
                 .importPath(String.format("s3://%s", exampleAwsS3Bucket.bucket()))
                 .storageCapacity(1200)
                 .subnetIds(exampleAwsSubnet.id())
                 .build());
     
         }
     }
     
     
    ## Import Using `pulumi import`, import FSx File Systems using the `id`. For example: ```sh $ pulumi import aws:fsx/lustreFileSystem:LustreFileSystem example fs-543ab12b1ca672f33 ``` Certain resource arguments, like `securityGroupIds`, do not have a FSx API method for reading the information after creation. If the argument is set in the Pulumi program on an imported resource, Pulumi will always show a difference. To workaround this behavior, either omit the argument from the Pulumi program or use `ignoreChanges` to hide the difference. For example:
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.fsx.LustreFileSystem;
     import com.pulumi.aws.fsx.LustreFileSystemArgs;
     import com.pulumi.resources.CustomResourceOptions;
     import java.util.ArrayList;
     import java.util.Arrays;
     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) {
             var example = new LustreFileSystem("example", LustreFileSystemArgs.builder()
                 .securityGroupIds(exampleAwsSecurityGroup.id())
                 .build(), CustomResourceOptions.builder()
                     .ignoreChanges("securityGroupIds")
                     .build());
     
         }
     }
     
     
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.pulumi.resources.CustomResource

        com.pulumi.resources.CustomResource.CustomResourceInternal
      • Nested classes/interfaces inherited from class com.pulumi.resources.Resource

        com.pulumi.resources.Resource.LazyField<T extends java.lang.Object>, com.pulumi.resources.Resource.LazyFields, com.pulumi.resources.Resource.ResourceInternal
    • Field Summary

      • Fields inherited from class com.pulumi.resources.Resource

        childResources, remote
    • Constructor Detail

      • LustreFileSystem

        public LustreFileSystem​(java.lang.String name)
        Parameters:
        name - The _unique_ name of the resulting resource.
      • LustreFileSystem

        public LustreFileSystem​(java.lang.String name,
                                LustreFileSystemArgs args)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
      • LustreFileSystem

        public LustreFileSystem​(java.lang.String name,
                                LustreFileSystemArgs args,
                                @Nullable
                                com.pulumi.resources.CustomResourceOptions options)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
        options - A bag of options that control this resource's behavior.
    • Method Detail

      • arn

        public com.pulumi.core.Output<java.lang.String> arn()
        Returns:
        ARN of the file system.
      • autoImportPolicy

        public com.pulumi.core.Output<java.lang.String> autoImportPolicy()
        Returns:
        How Amazon FSx keeps your file and directory listings up to date as you add or modify objects in your linked S3 bucket. see [Auto Import Data Repo](https://docs.aws.amazon.com/fsx/latest/LustreGuide/autoimport-data-repo.html) for more details. Only supported on `PERSISTENT_1` deployment types.
      • automaticBackupRetentionDays

        public com.pulumi.core.Output<java.lang.Integer> automaticBackupRetentionDays()
        Returns:
        Number of days to retain automatic backups. Setting this to 0 disables automatic backups. You can retain automatic backups for a maximum of 90 days. only valid for `PERSISTENT_1` and `PERSISTENT_2` deployment_type.
      • backupId

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> backupId()
        Returns:
        ID of the source backup to create the filesystem from.
      • copyTagsToBackups

        public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> copyTagsToBackups()
        Returns:
        Whether to copy tags for the file system to backups. Applicable for `PERSISTENT_1` and `PERSISTENT_2` deployment_type. The default value is false.
      • dailyAutomaticBackupStartTime

        public com.pulumi.core.Output<java.lang.String> dailyAutomaticBackupStartTime()
        Returns:
        Recurring daily time, in the format HH:MM. HH is the zero-padded hour of the day (0-23), and MM is the zero-padded minute of the hour. For example, 05:00 specifies 5 AM daily. only valid for `PERSISTENT_1` and `PERSISTENT_2` deployment_type. Requires `automaticBackupRetentionDays` to be set.
      • dataCompressionType

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> dataCompressionType()
        Returns:
        Sets the data compression configuration for the file system. Valid values are `LZ4` and `NONE`. Default value is `NONE`. Unsetting this value reverts the compression type back to `NONE`.
      • deploymentType

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> deploymentType()
        Returns:
        Filesystem deployment type. One of: `SCRATCH_1`, `SCRATCH_2`, `PERSISTENT_1`, `PERSISTENT_2`.
      • dnsName

        public com.pulumi.core.Output<java.lang.String> dnsName()
        Returns:
        DNS name for the file system, e.g., `fs-12345678.fsx.us-west-2.amazonaws.com`
      • driveCacheType

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> driveCacheType()
        Returns:
        Type of drive cache used by `PERSISTENT_1` filesystems that are provisioned with `HDD` storage_type. Required for `HDD` storage_type, set to either `READ` or `NONE`.
      • efaEnabled

        public com.pulumi.core.Output<java.lang.Boolean> efaEnabled()
        Returns:
        Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `perUnitStorageThroughput`. This is only supported when deploymentType is set to `PERSISTENT_2`, `metadataConfiguration` is used, and an EFA-enabled security group is attached.
      • exportPath

        public com.pulumi.core.Output<java.lang.String> exportPath()
        Returns:
        S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `importPath` argument and the path must use the same Amazon S3 bucket as specified in `importPath`. Set equal to `importPath` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types.
      • fileSystemTypeVersion

        public com.pulumi.core.Output<java.lang.String> fileSystemTypeVersion()
        Returns:
        Sets the Lustre version for the file system. Valid values are `2.10`, `2.12`, and `2.15`. When creating a file system, `2.10` is valid for `SCRATCH_1`, `SCRATCH_2`, and `PERSISTENT_1` deployment types; `2.12` and `2.15` are valid for all deployment types. Changing this value to a higher version triggers an in-place upgrade. Changing to a lower version forces resource replacement (destroy and recreate).
      • finalBackupTags

        public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> finalBackupTags()
        Returns:
        Map of tags to apply to the file system's final backup. **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set.
      • importPath

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> importPath()
        Returns:
        S3 URI (with optional prefix) that you're using as the data repository for your FSx for Lustre file system. For example, `s3://example-bucket/optional-prefix/`. Only supported on `PERSISTENT_1` deployment types.
      • importedFileChunkSize

        public com.pulumi.core.Output<java.lang.Integer> importedFileChunkSize()
        Returns:
        For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. Can only be specified with `importPath` argument. Defaults to `1024`. Minimum of `1` and maximum of `512000`. Only supported on `PERSISTENT_1` deployment types.
      • kmsKeyId

        public com.pulumi.core.Output<java.lang.String> kmsKeyId()
        Returns:
        ARN for the KMS Key to encrypt the file system at rest, applicable for `PERSISTENT_1` and `PERSISTENT_2` deployment_type. Defaults to an AWS managed KMS Key.
      • logConfiguration

        public com.pulumi.core.Output<LustreFileSystemLogConfiguration> logConfiguration()
        Returns:
        Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `logConfiguration` Block for details.
      • metadataConfiguration

        public com.pulumi.core.Output<LustreFileSystemMetadataConfiguration> metadataConfiguration()
        Returns:
        Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deploymentType` is set to `PERSISTENT_2`. See `metadataConfiguration` Block for details.
      • mountName

        public com.pulumi.core.Output<java.lang.String> mountName()
        Returns:
        Value to be used when mounting the filesystem.
      • networkInterfaceIds

        public com.pulumi.core.Output<java.util.List<java.lang.String>> networkInterfaceIds()
        Returns:
        Set of Elastic Network Interface identifiers from which the file system is accessible. As explained in the [documentation](https://docs.aws.amazon.com/fsx/latest/LustreGuide/mounting-on-premises.html), the first network interface returned is the primary network interface.
      • ownerId

        public com.pulumi.core.Output<java.lang.String> ownerId()
        Returns:
        AWS account identifier that created the file system.
      • perUnitStorageThroughput

        public com.pulumi.core.Output<java.util.Optional<java.lang.Integer>> perUnitStorageThroughput()
        Returns:
        Amount of read and write throughput for each 1 tebibyte of storage, in MB/s/TiB, required for the `PERSISTENT_1` and `PERSISTENT_2` deployment_type. Valid values for `PERSISTENT_1` deploymentType and `SSD` storageType are 50, 100, 200. Valid values for `PERSISTENT_1` deploymentType and `HDD` storageType are 12, 40. Valid values for `PERSISTENT_2` deploymentType and ` SSD ` storageType are 125, 250, 500, 1000.
      • region

        public com.pulumi.core.Output<java.lang.String> region()
        Returns:
        Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
      • rootSquashConfiguration

        public com.pulumi.core.Output<java.util.Optional<LustreFileSystemRootSquashConfiguration>> rootSquashConfiguration()
        Returns:
        Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `rootSquashConfiguration` Block for details.
      • securityGroupIds

        public com.pulumi.core.Output<java.util.Optional<java.util.List<java.lang.String>>> securityGroupIds()
        Returns:
        List of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces.
      • skipFinalBackup

        public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> skipFinalBackup()
        Returns:
        When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set.
      • storageCapacity

        public com.pulumi.core.Output<java.util.Optional<java.lang.Integer>> storageCapacity()
        Returns:
        Storage capacity (GiB) of the file system. Minimum of `1200`. See more details at [Allowed values for FSx storage capacity](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateFileSystem.html#FSx-CreateFileSystem-request-StorageCapacity). Update is allowed only for `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` deployment types, See more details at [FSx Storage Capacity Update](https://docs.aws.amazon.com/fsx/latest/APIReference/API_UpdateFileSystem.html#FSx-UpdateFileSystem-request-StorageCapacity). Required when not creating filesystem for a backup.
      • storageType

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> storageType()
        Returns:
        Filesystem storage type. One of `SSD`, `HDD` or `INTELLIGENT_TIERING`, defaults to `SSD`. `HDD` is only supported on `PERSISTENT_1` deployment types. `INTELLIGENT_TIERING` requires `dataReadCacheConfiguration` and `metadataConfiguration` to be set and is only supported for `PERSISTENT_2` deployment types.
      • subnetIds

        public com.pulumi.core.Output<java.lang.String> subnetIds()
        Returns:
        List of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone.
      • tags

        public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> tags()
        Returns:
        Map of tags to assign to the file system. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
      • tagsAll

        public com.pulumi.core.Output<java.util.Map<java.lang.String,​java.lang.String>> tagsAll()
        Returns:
        Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
      • throughputCapacity

        public com.pulumi.core.Output<java.util.Optional<java.lang.Integer>> throughputCapacity()
        Returns:
        Throughput in MBps required for the `INTELLIGENT_TIERING` storage type. Must be 4000 or multiples of 4000.
      • vpcId

        public com.pulumi.core.Output<java.lang.String> vpcId()
        Returns:
        Identifier of the VPC for the file system.
      • weeklyMaintenanceStartTime

        public com.pulumi.core.Output<java.lang.String> weeklyMaintenanceStartTime()
        Returns:
        Preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone.
      • get

        public static LustreFileSystem get​(java.lang.String name,
                                           com.pulumi.core.Output<java.lang.String> id,
                                           @Nullable
                                           LustreFileSystemState state,
                                           @Nullable
                                           com.pulumi.resources.CustomResourceOptions options)
        Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
        Parameters:
        name - The _unique_ name of the resulting resource.
        id - The _unique_ provider ID of the resource to lookup.
        state -
        options - Optional settings to control the behavior of the CustomResource.