github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/fsx/lustreFileSystem.go (about)

     1  // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package fsx
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"errors"
    11  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    12  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    13  )
    14  
    15  // 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.
    16  //
    17  // > **NOTE:** `autoImportPolicy`, `exportPath`, `importPath` and `importedFileChunkSize` are not supported with the `PERSISTENT_2` deployment type. Use `fsx.DataRepositoryAssociation` instead.
    18  //
    19  // ## Example Usage
    20  //
    21  // <!--Start PulumiCodeChooser -->
    22  // ```go
    23  // package main
    24  //
    25  // import (
    26  //
    27  //	"fmt"
    28  //
    29  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/fsx"
    30  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    31  //
    32  // )
    33  //
    34  //	func main() {
    35  //		pulumi.Run(func(ctx *pulumi.Context) error {
    36  //			_, err := fsx.NewLustreFileSystem(ctx, "example", &fsx.LustreFileSystemArgs{
    37  //				ImportPath:      pulumi.String(fmt.Sprintf("s3://%v", exampleAwsS3Bucket.Bucket)),
    38  //				StorageCapacity: pulumi.Int(1200),
    39  //				SubnetIds:       pulumi.Any(exampleAwsSubnet.Id),
    40  //			})
    41  //			if err != nil {
    42  //				return err
    43  //			}
    44  //			return nil
    45  //		})
    46  //	}
    47  //
    48  // ```
    49  // <!--End PulumiCodeChooser -->
    50  //
    51  // ## Import
    52  //
    53  // Using `pulumi import`, import FSx File Systems using the `id`. For example:
    54  //
    55  // ```sh
    56  // $ pulumi import aws:fsx/lustreFileSystem:LustreFileSystem example fs-543ab12b1ca672f33
    57  // ```
    58  // Certain resource arguments, like `security_group_ids`, 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 `ignore_changes` to hide the difference. For example:
    59  type LustreFileSystem struct {
    60  	pulumi.CustomResourceState
    61  
    62  	// Amazon Resource Name of the file system.
    63  	Arn pulumi.StringOutput `pulumi:"arn"`
    64  	// 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.
    65  	AutoImportPolicy pulumi.StringOutput `pulumi:"autoImportPolicy"`
    66  	// The 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.
    67  	AutomaticBackupRetentionDays pulumi.IntOutput `pulumi:"automaticBackupRetentionDays"`
    68  	// The ID of the source backup to create the filesystem from.
    69  	BackupId pulumi.StringPtrOutput `pulumi:"backupId"`
    70  	// A boolean flag indicating whether tags for the file system should be copied to backups. Applicable for `PERSISTENT_1` and `PERSISTENT_2` deployment_type. The default value is false.
    71  	CopyTagsToBackups pulumi.BoolPtrOutput `pulumi:"copyTagsToBackups"`
    72  	// A 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.
    73  	DailyAutomaticBackupStartTime pulumi.StringOutput `pulumi:"dailyAutomaticBackupStartTime"`
    74  	// 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`.
    75  	DataCompressionType pulumi.StringPtrOutput `pulumi:"dataCompressionType"`
    76  	// The filesystem deployment type. One of: `SCRATCH_1`, `SCRATCH_2`, `PERSISTENT_1`, `PERSISTENT_2`.
    77  	DeploymentType pulumi.StringPtrOutput `pulumi:"deploymentType"`
    78  	// DNS name for the file system, e.g., `fs-12345678.fsx.us-west-2.amazonaws.com`
    79  	DnsName pulumi.StringOutput `pulumi:"dnsName"`
    80  	// The 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`.
    81  	DriveCacheType pulumi.StringPtrOutput `pulumi:"driveCacheType"`
    82  	// 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.
    83  	ExportPath pulumi.StringOutput `pulumi:"exportPath"`
    84  	// Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types.
    85  	FileSystemTypeVersion pulumi.StringOutput `pulumi:"fileSystemTypeVersion"`
    86  	// 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.
    87  	ImportPath pulumi.StringPtrOutput `pulumi:"importPath"`
    88  	// 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.
    89  	ImportedFileChunkSize pulumi.IntOutput `pulumi:"importedFileChunkSize"`
    90  	// 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.
    91  	KmsKeyId pulumi.StringOutput `pulumi:"kmsKeyId"`
    92  	// The 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.
    93  	LogConfiguration LustreFileSystemLogConfigurationOutput `pulumi:"logConfiguration"`
    94  	// The value to be used when mounting the filesystem.
    95  	MountName pulumi.StringOutput `pulumi:"mountName"`
    96  	// 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.
    97  	NetworkInterfaceIds pulumi.StringArrayOutput `pulumi:"networkInterfaceIds"`
    98  	// AWS account identifier that created the file system.
    99  	OwnerId pulumi.StringOutput `pulumi:"ownerId"`
   100  	// Describes the 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.
   101  	PerUnitStorageThroughput pulumi.IntPtrOutput `pulumi:"perUnitStorageThroughput"`
   102  	// The 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.
   103  	RootSquashConfiguration LustreFileSystemRootSquashConfigurationPtrOutput `pulumi:"rootSquashConfiguration"`
   104  	// A 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.
   105  	SecurityGroupIds pulumi.StringArrayOutput `pulumi:"securityGroupIds"`
   106  	// The 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.
   107  	StorageCapacity pulumi.IntPtrOutput `pulumi:"storageCapacity"`
   108  	// The filesystem storage type. Either `SSD` or `HDD`, defaults to `SSD`. `HDD` is only supported on `PERSISTENT_1` deployment types.
   109  	StorageType pulumi.StringPtrOutput `pulumi:"storageType"`
   110  	// A 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.
   111  	SubnetIds pulumi.StringOutput `pulumi:"subnetIds"`
   112  	// A 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.
   113  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   114  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   115  	//
   116  	// Deprecated: Please use `tags` instead.
   117  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   118  	// Identifier of the Virtual Private Cloud for the file system.
   119  	VpcId pulumi.StringOutput `pulumi:"vpcId"`
   120  	// The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone.
   121  	WeeklyMaintenanceStartTime pulumi.StringOutput `pulumi:"weeklyMaintenanceStartTime"`
   122  }
   123  
   124  // NewLustreFileSystem registers a new resource with the given unique name, arguments, and options.
   125  func NewLustreFileSystem(ctx *pulumi.Context,
   126  	name string, args *LustreFileSystemArgs, opts ...pulumi.ResourceOption) (*LustreFileSystem, error) {
   127  	if args == nil {
   128  		return nil, errors.New("missing one or more required arguments")
   129  	}
   130  
   131  	if args.SubnetIds == nil {
   132  		return nil, errors.New("invalid value for required argument 'SubnetIds'")
   133  	}
   134  	opts = internal.PkgResourceDefaultOpts(opts)
   135  	var resource LustreFileSystem
   136  	err := ctx.RegisterResource("aws:fsx/lustreFileSystem:LustreFileSystem", name, args, &resource, opts...)
   137  	if err != nil {
   138  		return nil, err
   139  	}
   140  	return &resource, nil
   141  }
   142  
   143  // GetLustreFileSystem gets an existing LustreFileSystem resource's state with the given name, ID, and optional
   144  // state properties that are used to uniquely qualify the lookup (nil if not required).
   145  func GetLustreFileSystem(ctx *pulumi.Context,
   146  	name string, id pulumi.IDInput, state *LustreFileSystemState, opts ...pulumi.ResourceOption) (*LustreFileSystem, error) {
   147  	var resource LustreFileSystem
   148  	err := ctx.ReadResource("aws:fsx/lustreFileSystem:LustreFileSystem", name, id, state, &resource, opts...)
   149  	if err != nil {
   150  		return nil, err
   151  	}
   152  	return &resource, nil
   153  }
   154  
   155  // Input properties used for looking up and filtering LustreFileSystem resources.
   156  type lustreFileSystemState struct {
   157  	// Amazon Resource Name of the file system.
   158  	Arn *string `pulumi:"arn"`
   159  	// 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.
   160  	AutoImportPolicy *string `pulumi:"autoImportPolicy"`
   161  	// The 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.
   162  	AutomaticBackupRetentionDays *int `pulumi:"automaticBackupRetentionDays"`
   163  	// The ID of the source backup to create the filesystem from.
   164  	BackupId *string `pulumi:"backupId"`
   165  	// A boolean flag indicating whether tags for the file system should be copied to backups. Applicable for `PERSISTENT_1` and `PERSISTENT_2` deployment_type. The default value is false.
   166  	CopyTagsToBackups *bool `pulumi:"copyTagsToBackups"`
   167  	// A 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.
   168  	DailyAutomaticBackupStartTime *string `pulumi:"dailyAutomaticBackupStartTime"`
   169  	// 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`.
   170  	DataCompressionType *string `pulumi:"dataCompressionType"`
   171  	// The filesystem deployment type. One of: `SCRATCH_1`, `SCRATCH_2`, `PERSISTENT_1`, `PERSISTENT_2`.
   172  	DeploymentType *string `pulumi:"deploymentType"`
   173  	// DNS name for the file system, e.g., `fs-12345678.fsx.us-west-2.amazonaws.com`
   174  	DnsName *string `pulumi:"dnsName"`
   175  	// The 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`.
   176  	DriveCacheType *string `pulumi:"driveCacheType"`
   177  	// 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.
   178  	ExportPath *string `pulumi:"exportPath"`
   179  	// Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types.
   180  	FileSystemTypeVersion *string `pulumi:"fileSystemTypeVersion"`
   181  	// 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.
   182  	ImportPath *string `pulumi:"importPath"`
   183  	// 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.
   184  	ImportedFileChunkSize *int `pulumi:"importedFileChunkSize"`
   185  	// 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.
   186  	KmsKeyId *string `pulumi:"kmsKeyId"`
   187  	// The 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.
   188  	LogConfiguration *LustreFileSystemLogConfiguration `pulumi:"logConfiguration"`
   189  	// The value to be used when mounting the filesystem.
   190  	MountName *string `pulumi:"mountName"`
   191  	// 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.
   192  	NetworkInterfaceIds []string `pulumi:"networkInterfaceIds"`
   193  	// AWS account identifier that created the file system.
   194  	OwnerId *string `pulumi:"ownerId"`
   195  	// Describes the 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.
   196  	PerUnitStorageThroughput *int `pulumi:"perUnitStorageThroughput"`
   197  	// The 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.
   198  	RootSquashConfiguration *LustreFileSystemRootSquashConfiguration `pulumi:"rootSquashConfiguration"`
   199  	// A 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.
   200  	SecurityGroupIds []string `pulumi:"securityGroupIds"`
   201  	// The 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.
   202  	StorageCapacity *int `pulumi:"storageCapacity"`
   203  	// The filesystem storage type. Either `SSD` or `HDD`, defaults to `SSD`. `HDD` is only supported on `PERSISTENT_1` deployment types.
   204  	StorageType *string `pulumi:"storageType"`
   205  	// A 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.
   206  	SubnetIds *string `pulumi:"subnetIds"`
   207  	// A 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.
   208  	Tags map[string]string `pulumi:"tags"`
   209  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   210  	//
   211  	// Deprecated: Please use `tags` instead.
   212  	TagsAll map[string]string `pulumi:"tagsAll"`
   213  	// Identifier of the Virtual Private Cloud for the file system.
   214  	VpcId *string `pulumi:"vpcId"`
   215  	// The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone.
   216  	WeeklyMaintenanceStartTime *string `pulumi:"weeklyMaintenanceStartTime"`
   217  }
   218  
   219  type LustreFileSystemState struct {
   220  	// Amazon Resource Name of the file system.
   221  	Arn pulumi.StringPtrInput
   222  	// 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.
   223  	AutoImportPolicy pulumi.StringPtrInput
   224  	// The 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.
   225  	AutomaticBackupRetentionDays pulumi.IntPtrInput
   226  	// The ID of the source backup to create the filesystem from.
   227  	BackupId pulumi.StringPtrInput
   228  	// A boolean flag indicating whether tags for the file system should be copied to backups. Applicable for `PERSISTENT_1` and `PERSISTENT_2` deployment_type. The default value is false.
   229  	CopyTagsToBackups pulumi.BoolPtrInput
   230  	// A 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.
   231  	DailyAutomaticBackupStartTime pulumi.StringPtrInput
   232  	// 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`.
   233  	DataCompressionType pulumi.StringPtrInput
   234  	// The filesystem deployment type. One of: `SCRATCH_1`, `SCRATCH_2`, `PERSISTENT_1`, `PERSISTENT_2`.
   235  	DeploymentType pulumi.StringPtrInput
   236  	// DNS name for the file system, e.g., `fs-12345678.fsx.us-west-2.amazonaws.com`
   237  	DnsName pulumi.StringPtrInput
   238  	// The 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`.
   239  	DriveCacheType pulumi.StringPtrInput
   240  	// 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.
   241  	ExportPath pulumi.StringPtrInput
   242  	// Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types.
   243  	FileSystemTypeVersion pulumi.StringPtrInput
   244  	// 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.
   245  	ImportPath pulumi.StringPtrInput
   246  	// 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.
   247  	ImportedFileChunkSize pulumi.IntPtrInput
   248  	// 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.
   249  	KmsKeyId pulumi.StringPtrInput
   250  	// The 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.
   251  	LogConfiguration LustreFileSystemLogConfigurationPtrInput
   252  	// The value to be used when mounting the filesystem.
   253  	MountName pulumi.StringPtrInput
   254  	// 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.
   255  	NetworkInterfaceIds pulumi.StringArrayInput
   256  	// AWS account identifier that created the file system.
   257  	OwnerId pulumi.StringPtrInput
   258  	// Describes the 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.
   259  	PerUnitStorageThroughput pulumi.IntPtrInput
   260  	// The 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.
   261  	RootSquashConfiguration LustreFileSystemRootSquashConfigurationPtrInput
   262  	// A 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.
   263  	SecurityGroupIds pulumi.StringArrayInput
   264  	// The 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.
   265  	StorageCapacity pulumi.IntPtrInput
   266  	// The filesystem storage type. Either `SSD` or `HDD`, defaults to `SSD`. `HDD` is only supported on `PERSISTENT_1` deployment types.
   267  	StorageType pulumi.StringPtrInput
   268  	// A 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.
   269  	SubnetIds pulumi.StringPtrInput
   270  	// A 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.
   271  	Tags pulumi.StringMapInput
   272  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   273  	//
   274  	// Deprecated: Please use `tags` instead.
   275  	TagsAll pulumi.StringMapInput
   276  	// Identifier of the Virtual Private Cloud for the file system.
   277  	VpcId pulumi.StringPtrInput
   278  	// The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone.
   279  	WeeklyMaintenanceStartTime pulumi.StringPtrInput
   280  }
   281  
   282  func (LustreFileSystemState) ElementType() reflect.Type {
   283  	return reflect.TypeOf((*lustreFileSystemState)(nil)).Elem()
   284  }
   285  
   286  type lustreFileSystemArgs struct {
   287  	// 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.
   288  	AutoImportPolicy *string `pulumi:"autoImportPolicy"`
   289  	// The 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.
   290  	AutomaticBackupRetentionDays *int `pulumi:"automaticBackupRetentionDays"`
   291  	// The ID of the source backup to create the filesystem from.
   292  	BackupId *string `pulumi:"backupId"`
   293  	// A boolean flag indicating whether tags for the file system should be copied to backups. Applicable for `PERSISTENT_1` and `PERSISTENT_2` deployment_type. The default value is false.
   294  	CopyTagsToBackups *bool `pulumi:"copyTagsToBackups"`
   295  	// A 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.
   296  	DailyAutomaticBackupStartTime *string `pulumi:"dailyAutomaticBackupStartTime"`
   297  	// 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`.
   298  	DataCompressionType *string `pulumi:"dataCompressionType"`
   299  	// The filesystem deployment type. One of: `SCRATCH_1`, `SCRATCH_2`, `PERSISTENT_1`, `PERSISTENT_2`.
   300  	DeploymentType *string `pulumi:"deploymentType"`
   301  	// The 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`.
   302  	DriveCacheType *string `pulumi:"driveCacheType"`
   303  	// 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.
   304  	ExportPath *string `pulumi:"exportPath"`
   305  	// Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types.
   306  	FileSystemTypeVersion *string `pulumi:"fileSystemTypeVersion"`
   307  	// 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.
   308  	ImportPath *string `pulumi:"importPath"`
   309  	// 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.
   310  	ImportedFileChunkSize *int `pulumi:"importedFileChunkSize"`
   311  	// 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.
   312  	KmsKeyId *string `pulumi:"kmsKeyId"`
   313  	// The 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.
   314  	LogConfiguration *LustreFileSystemLogConfiguration `pulumi:"logConfiguration"`
   315  	// Describes the 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.
   316  	PerUnitStorageThroughput *int `pulumi:"perUnitStorageThroughput"`
   317  	// The 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.
   318  	RootSquashConfiguration *LustreFileSystemRootSquashConfiguration `pulumi:"rootSquashConfiguration"`
   319  	// A 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.
   320  	SecurityGroupIds []string `pulumi:"securityGroupIds"`
   321  	// The 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.
   322  	StorageCapacity *int `pulumi:"storageCapacity"`
   323  	// The filesystem storage type. Either `SSD` or `HDD`, defaults to `SSD`. `HDD` is only supported on `PERSISTENT_1` deployment types.
   324  	StorageType *string `pulumi:"storageType"`
   325  	// A 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.
   326  	SubnetIds string `pulumi:"subnetIds"`
   327  	// A 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.
   328  	Tags map[string]string `pulumi:"tags"`
   329  	// The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone.
   330  	WeeklyMaintenanceStartTime *string `pulumi:"weeklyMaintenanceStartTime"`
   331  }
   332  
   333  // The set of arguments for constructing a LustreFileSystem resource.
   334  type LustreFileSystemArgs struct {
   335  	// 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.
   336  	AutoImportPolicy pulumi.StringPtrInput
   337  	// The 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.
   338  	AutomaticBackupRetentionDays pulumi.IntPtrInput
   339  	// The ID of the source backup to create the filesystem from.
   340  	BackupId pulumi.StringPtrInput
   341  	// A boolean flag indicating whether tags for the file system should be copied to backups. Applicable for `PERSISTENT_1` and `PERSISTENT_2` deployment_type. The default value is false.
   342  	CopyTagsToBackups pulumi.BoolPtrInput
   343  	// A 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.
   344  	DailyAutomaticBackupStartTime pulumi.StringPtrInput
   345  	// 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`.
   346  	DataCompressionType pulumi.StringPtrInput
   347  	// The filesystem deployment type. One of: `SCRATCH_1`, `SCRATCH_2`, `PERSISTENT_1`, `PERSISTENT_2`.
   348  	DeploymentType pulumi.StringPtrInput
   349  	// The 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`.
   350  	DriveCacheType pulumi.StringPtrInput
   351  	// 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.
   352  	ExportPath pulumi.StringPtrInput
   353  	// Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types.
   354  	FileSystemTypeVersion pulumi.StringPtrInput
   355  	// 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.
   356  	ImportPath pulumi.StringPtrInput
   357  	// 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.
   358  	ImportedFileChunkSize pulumi.IntPtrInput
   359  	// 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.
   360  	KmsKeyId pulumi.StringPtrInput
   361  	// The 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.
   362  	LogConfiguration LustreFileSystemLogConfigurationPtrInput
   363  	// Describes the 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.
   364  	PerUnitStorageThroughput pulumi.IntPtrInput
   365  	// The 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.
   366  	RootSquashConfiguration LustreFileSystemRootSquashConfigurationPtrInput
   367  	// A 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.
   368  	SecurityGroupIds pulumi.StringArrayInput
   369  	// The 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.
   370  	StorageCapacity pulumi.IntPtrInput
   371  	// The filesystem storage type. Either `SSD` or `HDD`, defaults to `SSD`. `HDD` is only supported on `PERSISTENT_1` deployment types.
   372  	StorageType pulumi.StringPtrInput
   373  	// A 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.
   374  	SubnetIds pulumi.StringInput
   375  	// A 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.
   376  	Tags pulumi.StringMapInput
   377  	// The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone.
   378  	WeeklyMaintenanceStartTime pulumi.StringPtrInput
   379  }
   380  
   381  func (LustreFileSystemArgs) ElementType() reflect.Type {
   382  	return reflect.TypeOf((*lustreFileSystemArgs)(nil)).Elem()
   383  }
   384  
   385  type LustreFileSystemInput interface {
   386  	pulumi.Input
   387  
   388  	ToLustreFileSystemOutput() LustreFileSystemOutput
   389  	ToLustreFileSystemOutputWithContext(ctx context.Context) LustreFileSystemOutput
   390  }
   391  
   392  func (*LustreFileSystem) ElementType() reflect.Type {
   393  	return reflect.TypeOf((**LustreFileSystem)(nil)).Elem()
   394  }
   395  
   396  func (i *LustreFileSystem) ToLustreFileSystemOutput() LustreFileSystemOutput {
   397  	return i.ToLustreFileSystemOutputWithContext(context.Background())
   398  }
   399  
   400  func (i *LustreFileSystem) ToLustreFileSystemOutputWithContext(ctx context.Context) LustreFileSystemOutput {
   401  	return pulumi.ToOutputWithContext(ctx, i).(LustreFileSystemOutput)
   402  }
   403  
   404  // LustreFileSystemArrayInput is an input type that accepts LustreFileSystemArray and LustreFileSystemArrayOutput values.
   405  // You can construct a concrete instance of `LustreFileSystemArrayInput` via:
   406  //
   407  //	LustreFileSystemArray{ LustreFileSystemArgs{...} }
   408  type LustreFileSystemArrayInput interface {
   409  	pulumi.Input
   410  
   411  	ToLustreFileSystemArrayOutput() LustreFileSystemArrayOutput
   412  	ToLustreFileSystemArrayOutputWithContext(context.Context) LustreFileSystemArrayOutput
   413  }
   414  
   415  type LustreFileSystemArray []LustreFileSystemInput
   416  
   417  func (LustreFileSystemArray) ElementType() reflect.Type {
   418  	return reflect.TypeOf((*[]*LustreFileSystem)(nil)).Elem()
   419  }
   420  
   421  func (i LustreFileSystemArray) ToLustreFileSystemArrayOutput() LustreFileSystemArrayOutput {
   422  	return i.ToLustreFileSystemArrayOutputWithContext(context.Background())
   423  }
   424  
   425  func (i LustreFileSystemArray) ToLustreFileSystemArrayOutputWithContext(ctx context.Context) LustreFileSystemArrayOutput {
   426  	return pulumi.ToOutputWithContext(ctx, i).(LustreFileSystemArrayOutput)
   427  }
   428  
   429  // LustreFileSystemMapInput is an input type that accepts LustreFileSystemMap and LustreFileSystemMapOutput values.
   430  // You can construct a concrete instance of `LustreFileSystemMapInput` via:
   431  //
   432  //	LustreFileSystemMap{ "key": LustreFileSystemArgs{...} }
   433  type LustreFileSystemMapInput interface {
   434  	pulumi.Input
   435  
   436  	ToLustreFileSystemMapOutput() LustreFileSystemMapOutput
   437  	ToLustreFileSystemMapOutputWithContext(context.Context) LustreFileSystemMapOutput
   438  }
   439  
   440  type LustreFileSystemMap map[string]LustreFileSystemInput
   441  
   442  func (LustreFileSystemMap) ElementType() reflect.Type {
   443  	return reflect.TypeOf((*map[string]*LustreFileSystem)(nil)).Elem()
   444  }
   445  
   446  func (i LustreFileSystemMap) ToLustreFileSystemMapOutput() LustreFileSystemMapOutput {
   447  	return i.ToLustreFileSystemMapOutputWithContext(context.Background())
   448  }
   449  
   450  func (i LustreFileSystemMap) ToLustreFileSystemMapOutputWithContext(ctx context.Context) LustreFileSystemMapOutput {
   451  	return pulumi.ToOutputWithContext(ctx, i).(LustreFileSystemMapOutput)
   452  }
   453  
   454  type LustreFileSystemOutput struct{ *pulumi.OutputState }
   455  
   456  func (LustreFileSystemOutput) ElementType() reflect.Type {
   457  	return reflect.TypeOf((**LustreFileSystem)(nil)).Elem()
   458  }
   459  
   460  func (o LustreFileSystemOutput) ToLustreFileSystemOutput() LustreFileSystemOutput {
   461  	return o
   462  }
   463  
   464  func (o LustreFileSystemOutput) ToLustreFileSystemOutputWithContext(ctx context.Context) LustreFileSystemOutput {
   465  	return o
   466  }
   467  
   468  // Amazon Resource Name of the file system.
   469  func (o LustreFileSystemOutput) Arn() pulumi.StringOutput {
   470  	return o.ApplyT(func(v *LustreFileSystem) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   471  }
   472  
   473  // 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.
   474  func (o LustreFileSystemOutput) AutoImportPolicy() pulumi.StringOutput {
   475  	return o.ApplyT(func(v *LustreFileSystem) pulumi.StringOutput { return v.AutoImportPolicy }).(pulumi.StringOutput)
   476  }
   477  
   478  // The 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.
   479  func (o LustreFileSystemOutput) AutomaticBackupRetentionDays() pulumi.IntOutput {
   480  	return o.ApplyT(func(v *LustreFileSystem) pulumi.IntOutput { return v.AutomaticBackupRetentionDays }).(pulumi.IntOutput)
   481  }
   482  
   483  // The ID of the source backup to create the filesystem from.
   484  func (o LustreFileSystemOutput) BackupId() pulumi.StringPtrOutput {
   485  	return o.ApplyT(func(v *LustreFileSystem) pulumi.StringPtrOutput { return v.BackupId }).(pulumi.StringPtrOutput)
   486  }
   487  
   488  // A boolean flag indicating whether tags for the file system should be copied to backups. Applicable for `PERSISTENT_1` and `PERSISTENT_2` deployment_type. The default value is false.
   489  func (o LustreFileSystemOutput) CopyTagsToBackups() pulumi.BoolPtrOutput {
   490  	return o.ApplyT(func(v *LustreFileSystem) pulumi.BoolPtrOutput { return v.CopyTagsToBackups }).(pulumi.BoolPtrOutput)
   491  }
   492  
   493  // A 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.
   494  func (o LustreFileSystemOutput) DailyAutomaticBackupStartTime() pulumi.StringOutput {
   495  	return o.ApplyT(func(v *LustreFileSystem) pulumi.StringOutput { return v.DailyAutomaticBackupStartTime }).(pulumi.StringOutput)
   496  }
   497  
   498  // 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`.
   499  func (o LustreFileSystemOutput) DataCompressionType() pulumi.StringPtrOutput {
   500  	return o.ApplyT(func(v *LustreFileSystem) pulumi.StringPtrOutput { return v.DataCompressionType }).(pulumi.StringPtrOutput)
   501  }
   502  
   503  // The filesystem deployment type. One of: `SCRATCH_1`, `SCRATCH_2`, `PERSISTENT_1`, `PERSISTENT_2`.
   504  func (o LustreFileSystemOutput) DeploymentType() pulumi.StringPtrOutput {
   505  	return o.ApplyT(func(v *LustreFileSystem) pulumi.StringPtrOutput { return v.DeploymentType }).(pulumi.StringPtrOutput)
   506  }
   507  
   508  // DNS name for the file system, e.g., `fs-12345678.fsx.us-west-2.amazonaws.com`
   509  func (o LustreFileSystemOutput) DnsName() pulumi.StringOutput {
   510  	return o.ApplyT(func(v *LustreFileSystem) pulumi.StringOutput { return v.DnsName }).(pulumi.StringOutput)
   511  }
   512  
   513  // The 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`.
   514  func (o LustreFileSystemOutput) DriveCacheType() pulumi.StringPtrOutput {
   515  	return o.ApplyT(func(v *LustreFileSystem) pulumi.StringPtrOutput { return v.DriveCacheType }).(pulumi.StringPtrOutput)
   516  }
   517  
   518  // 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.
   519  func (o LustreFileSystemOutput) ExportPath() pulumi.StringOutput {
   520  	return o.ApplyT(func(v *LustreFileSystem) pulumi.StringOutput { return v.ExportPath }).(pulumi.StringOutput)
   521  }
   522  
   523  // Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types.
   524  func (o LustreFileSystemOutput) FileSystemTypeVersion() pulumi.StringOutput {
   525  	return o.ApplyT(func(v *LustreFileSystem) pulumi.StringOutput { return v.FileSystemTypeVersion }).(pulumi.StringOutput)
   526  }
   527  
   528  // 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.
   529  func (o LustreFileSystemOutput) ImportPath() pulumi.StringPtrOutput {
   530  	return o.ApplyT(func(v *LustreFileSystem) pulumi.StringPtrOutput { return v.ImportPath }).(pulumi.StringPtrOutput)
   531  }
   532  
   533  // 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.
   534  func (o LustreFileSystemOutput) ImportedFileChunkSize() pulumi.IntOutput {
   535  	return o.ApplyT(func(v *LustreFileSystem) pulumi.IntOutput { return v.ImportedFileChunkSize }).(pulumi.IntOutput)
   536  }
   537  
   538  // 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.
   539  func (o LustreFileSystemOutput) KmsKeyId() pulumi.StringOutput {
   540  	return o.ApplyT(func(v *LustreFileSystem) pulumi.StringOutput { return v.KmsKeyId }).(pulumi.StringOutput)
   541  }
   542  
   543  // The 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.
   544  func (o LustreFileSystemOutput) LogConfiguration() LustreFileSystemLogConfigurationOutput {
   545  	return o.ApplyT(func(v *LustreFileSystem) LustreFileSystemLogConfigurationOutput { return v.LogConfiguration }).(LustreFileSystemLogConfigurationOutput)
   546  }
   547  
   548  // The value to be used when mounting the filesystem.
   549  func (o LustreFileSystemOutput) MountName() pulumi.StringOutput {
   550  	return o.ApplyT(func(v *LustreFileSystem) pulumi.StringOutput { return v.MountName }).(pulumi.StringOutput)
   551  }
   552  
   553  // 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.
   554  func (o LustreFileSystemOutput) NetworkInterfaceIds() pulumi.StringArrayOutput {
   555  	return o.ApplyT(func(v *LustreFileSystem) pulumi.StringArrayOutput { return v.NetworkInterfaceIds }).(pulumi.StringArrayOutput)
   556  }
   557  
   558  // AWS account identifier that created the file system.
   559  func (o LustreFileSystemOutput) OwnerId() pulumi.StringOutput {
   560  	return o.ApplyT(func(v *LustreFileSystem) pulumi.StringOutput { return v.OwnerId }).(pulumi.StringOutput)
   561  }
   562  
   563  // Describes the 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.
   564  func (o LustreFileSystemOutput) PerUnitStorageThroughput() pulumi.IntPtrOutput {
   565  	return o.ApplyT(func(v *LustreFileSystem) pulumi.IntPtrOutput { return v.PerUnitStorageThroughput }).(pulumi.IntPtrOutput)
   566  }
   567  
   568  // The 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.
   569  func (o LustreFileSystemOutput) RootSquashConfiguration() LustreFileSystemRootSquashConfigurationPtrOutput {
   570  	return o.ApplyT(func(v *LustreFileSystem) LustreFileSystemRootSquashConfigurationPtrOutput {
   571  		return v.RootSquashConfiguration
   572  	}).(LustreFileSystemRootSquashConfigurationPtrOutput)
   573  }
   574  
   575  // A 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.
   576  func (o LustreFileSystemOutput) SecurityGroupIds() pulumi.StringArrayOutput {
   577  	return o.ApplyT(func(v *LustreFileSystem) pulumi.StringArrayOutput { return v.SecurityGroupIds }).(pulumi.StringArrayOutput)
   578  }
   579  
   580  // The 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.
   581  func (o LustreFileSystemOutput) StorageCapacity() pulumi.IntPtrOutput {
   582  	return o.ApplyT(func(v *LustreFileSystem) pulumi.IntPtrOutput { return v.StorageCapacity }).(pulumi.IntPtrOutput)
   583  }
   584  
   585  // The filesystem storage type. Either `SSD` or `HDD`, defaults to `SSD`. `HDD` is only supported on `PERSISTENT_1` deployment types.
   586  func (o LustreFileSystemOutput) StorageType() pulumi.StringPtrOutput {
   587  	return o.ApplyT(func(v *LustreFileSystem) pulumi.StringPtrOutput { return v.StorageType }).(pulumi.StringPtrOutput)
   588  }
   589  
   590  // A 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.
   591  func (o LustreFileSystemOutput) SubnetIds() pulumi.StringOutput {
   592  	return o.ApplyT(func(v *LustreFileSystem) pulumi.StringOutput { return v.SubnetIds }).(pulumi.StringOutput)
   593  }
   594  
   595  // A 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.
   596  func (o LustreFileSystemOutput) Tags() pulumi.StringMapOutput {
   597  	return o.ApplyT(func(v *LustreFileSystem) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   598  }
   599  
   600  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   601  //
   602  // Deprecated: Please use `tags` instead.
   603  func (o LustreFileSystemOutput) TagsAll() pulumi.StringMapOutput {
   604  	return o.ApplyT(func(v *LustreFileSystem) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   605  }
   606  
   607  // Identifier of the Virtual Private Cloud for the file system.
   608  func (o LustreFileSystemOutput) VpcId() pulumi.StringOutput {
   609  	return o.ApplyT(func(v *LustreFileSystem) pulumi.StringOutput { return v.VpcId }).(pulumi.StringOutput)
   610  }
   611  
   612  // The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone.
   613  func (o LustreFileSystemOutput) WeeklyMaintenanceStartTime() pulumi.StringOutput {
   614  	return o.ApplyT(func(v *LustreFileSystem) pulumi.StringOutput { return v.WeeklyMaintenanceStartTime }).(pulumi.StringOutput)
   615  }
   616  
   617  type LustreFileSystemArrayOutput struct{ *pulumi.OutputState }
   618  
   619  func (LustreFileSystemArrayOutput) ElementType() reflect.Type {
   620  	return reflect.TypeOf((*[]*LustreFileSystem)(nil)).Elem()
   621  }
   622  
   623  func (o LustreFileSystemArrayOutput) ToLustreFileSystemArrayOutput() LustreFileSystemArrayOutput {
   624  	return o
   625  }
   626  
   627  func (o LustreFileSystemArrayOutput) ToLustreFileSystemArrayOutputWithContext(ctx context.Context) LustreFileSystemArrayOutput {
   628  	return o
   629  }
   630  
   631  func (o LustreFileSystemArrayOutput) Index(i pulumi.IntInput) LustreFileSystemOutput {
   632  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *LustreFileSystem {
   633  		return vs[0].([]*LustreFileSystem)[vs[1].(int)]
   634  	}).(LustreFileSystemOutput)
   635  }
   636  
   637  type LustreFileSystemMapOutput struct{ *pulumi.OutputState }
   638  
   639  func (LustreFileSystemMapOutput) ElementType() reflect.Type {
   640  	return reflect.TypeOf((*map[string]*LustreFileSystem)(nil)).Elem()
   641  }
   642  
   643  func (o LustreFileSystemMapOutput) ToLustreFileSystemMapOutput() LustreFileSystemMapOutput {
   644  	return o
   645  }
   646  
   647  func (o LustreFileSystemMapOutput) ToLustreFileSystemMapOutputWithContext(ctx context.Context) LustreFileSystemMapOutput {
   648  	return o
   649  }
   650  
   651  func (o LustreFileSystemMapOutput) MapIndex(k pulumi.StringInput) LustreFileSystemOutput {
   652  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *LustreFileSystem {
   653  		return vs[0].(map[string]*LustreFileSystem)[vs[1].(string)]
   654  	}).(LustreFileSystemOutput)
   655  }
   656  
   657  func init() {
   658  	pulumi.RegisterInputType(reflect.TypeOf((*LustreFileSystemInput)(nil)).Elem(), &LustreFileSystem{})
   659  	pulumi.RegisterInputType(reflect.TypeOf((*LustreFileSystemArrayInput)(nil)).Elem(), LustreFileSystemArray{})
   660  	pulumi.RegisterInputType(reflect.TypeOf((*LustreFileSystemMapInput)(nil)).Elem(), LustreFileSystemMap{})
   661  	pulumi.RegisterOutputType(LustreFileSystemOutput{})
   662  	pulumi.RegisterOutputType(LustreFileSystemArrayOutput{})
   663  	pulumi.RegisterOutputType(LustreFileSystemMapOutput{})
   664  }