Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.aws.fsx.LustreFileSystemArgs Maven / Gradle / Ivy
Go to download
A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
package com.pulumi.aws.fsx;
import com.pulumi.aws.fsx.inputs.LustreFileSystemLogConfigurationArgs;
import com.pulumi.aws.fsx.inputs.LustreFileSystemMetadataConfigurationArgs;
import com.pulumi.aws.fsx.inputs.LustreFileSystemRootSquashConfigurationArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
public final class LustreFileSystemArgs extends com.pulumi.resources.ResourceArgs {
public static final LustreFileSystemArgs Empty = new LustreFileSystemArgs();
/**
* 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.
*
*/
@Import(name="autoImportPolicy")
private @Nullable Output autoImportPolicy;
/**
* @return 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.
*
*/
public Optional> autoImportPolicy() {
return Optional.ofNullable(this.autoImportPolicy);
}
/**
* 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.
*
*/
@Import(name="automaticBackupRetentionDays")
private @Nullable Output automaticBackupRetentionDays;
/**
* @return 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.
*
*/
public Optional> automaticBackupRetentionDays() {
return Optional.ofNullable(this.automaticBackupRetentionDays);
}
/**
* The ID of the source backup to create the filesystem from.
*
*/
@Import(name="backupId")
private @Nullable Output backupId;
/**
* @return The ID of the source backup to create the filesystem from.
*
*/
public Optional> backupId() {
return Optional.ofNullable(this.backupId);
}
/**
* 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.
*
*/
@Import(name="copyTagsToBackups")
private @Nullable Output copyTagsToBackups;
/**
* @return 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.
*
*/
public Optional> copyTagsToBackups() {
return Optional.ofNullable(this.copyTagsToBackups);
}
/**
* 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 `automatic_backup_retention_days` to be set.
*
*/
@Import(name="dailyAutomaticBackupStartTime")
private @Nullable Output dailyAutomaticBackupStartTime;
/**
* @return 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 `automatic_backup_retention_days` to be set.
*
*/
public Optional> dailyAutomaticBackupStartTime() {
return Optional.ofNullable(this.dailyAutomaticBackupStartTime);
}
/**
* 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`.
*
*/
@Import(name="dataCompressionType")
private @Nullable Output dataCompressionType;
/**
* @return 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`.
*
*/
public Optional> dataCompressionType() {
return Optional.ofNullable(this.dataCompressionType);
}
/**
* The filesystem deployment type. One of: `SCRATCH_1`, `SCRATCH_2`, `PERSISTENT_1`, `PERSISTENT_2`.
*
*/
@Import(name="deploymentType")
private @Nullable Output deploymentType;
/**
* @return The filesystem deployment type. One of: `SCRATCH_1`, `SCRATCH_2`, `PERSISTENT_1`, `PERSISTENT_2`.
*
*/
public Optional> deploymentType() {
return Optional.ofNullable(this.deploymentType);
}
/**
* 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`.
*
*/
@Import(name="driveCacheType")
private @Nullable Output driveCacheType;
/**
* @return 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`.
*
*/
public Optional> driveCacheType() {
return Optional.ofNullable(this.driveCacheType);
}
/**
* 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 `per_unit_storage_throughput`. This is only supported when deployment_type is set to `PERSISTENT_2`, `metadata_configuration` is used, and an EFA-enabled security group is attached.
*
*/
@Import(name="efaEnabled")
private @Nullable Output efaEnabled;
/**
* @return 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 `per_unit_storage_throughput`. This is only supported when deployment_type is set to `PERSISTENT_2`, `metadata_configuration` is used, and an EFA-enabled security group is attached.
*
*/
public Optional> efaEnabled() {
return Optional.ofNullable(this.efaEnabled);
}
/**
* S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `import_path` argument and the path must use the same Amazon S3 bucket as specified in `import_path`. Set equal to `import_path` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types.
*
*/
@Import(name="exportPath")
private @Nullable Output exportPath;
/**
* @return S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `import_path` argument and the path must use the same Amazon S3 bucket as specified in `import_path`. Set equal to `import_path` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types.
*
*/
public Optional> exportPath() {
return Optional.ofNullable(this.exportPath);
}
/**
* 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.
*
*/
@Import(name="fileSystemTypeVersion")
private @Nullable Output fileSystemTypeVersion;
/**
* @return 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.
*
*/
public Optional> fileSystemTypeVersion() {
return Optional.ofNullable(this.fileSystemTypeVersion);
}
/**
* A 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.
*
*/
@Import(name="finalBackupTags")
private @Nullable Output> finalBackupTags;
/**
* @return A 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.
*
*/
public Optional>> finalBackupTags() {
return Optional.ofNullable(this.finalBackupTags);
}
/**
* 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.
*
*/
@Import(name="importPath")
private @Nullable Output importPath;
/**
* @return 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.
*
*/
public Optional> importPath() {
return Optional.ofNullable(this.importPath);
}
/**
* 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 `import_path` argument. Defaults to `1024`. Minimum of `1` and maximum of `512000`. Only supported on `PERSISTENT_1` deployment types.
*
*/
@Import(name="importedFileChunkSize")
private @Nullable Output importedFileChunkSize;
/**
* @return 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 `import_path` argument. Defaults to `1024`. Minimum of `1` and maximum of `512000`. Only supported on `PERSISTENT_1` deployment types.
*
*/
public Optional> importedFileChunkSize() {
return Optional.ofNullable(this.importedFileChunkSize);
}
/**
* 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.
*
*/
@Import(name="kmsKeyId")
private @Nullable Output kmsKeyId;
/**
* @return 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.
*
*/
public Optional> kmsKeyId() {
return Optional.ofNullable(this.kmsKeyId);
}
/**
* 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. See `log_configuration` Block for details.
*
*/
@Import(name="logConfiguration")
private @Nullable Output logConfiguration;
/**
* @return 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. See `log_configuration` Block for details.
*
*/
public Optional> logConfiguration() {
return Optional.ofNullable(this.logConfiguration);
}
/**
* The 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 `deployment_type` is set to `PERSISTENT_2`. See `metadata_configuration` Block for details.
*
*/
@Import(name="metadataConfiguration")
private @Nullable Output metadataConfiguration;
/**
* @return The 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 `deployment_type` is set to `PERSISTENT_2`. See `metadata_configuration` Block for details.
*
*/
public Optional> metadataConfiguration() {
return Optional.ofNullable(this.metadataConfiguration);
}
/**
* 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` deployment_type and `SSD` storage_type are 50, 100, 200. Valid values for `PERSISTENT_1` deployment_type and `HDD` storage_type are 12, 40. Valid values for `PERSISTENT_2` deployment_type and ` SSD ` storage_type are 125, 250, 500, 1000.
*
*/
@Import(name="perUnitStorageThroughput")
private @Nullable Output perUnitStorageThroughput;
/**
* @return 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` deployment_type and `SSD` storage_type are 50, 100, 200. Valid values for `PERSISTENT_1` deployment_type and `HDD` storage_type are 12, 40. Valid values for `PERSISTENT_2` deployment_type and ` SSD ` storage_type are 125, 250, 500, 1000.
*
*/
public Optional> perUnitStorageThroughput() {
return Optional.ofNullable(this.perUnitStorageThroughput);
}
/**
* 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. See `root_squash_configuration` Block for details.
*
*/
@Import(name="rootSquashConfiguration")
private @Nullable Output rootSquashConfiguration;
/**
* @return 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. See `root_squash_configuration` Block for details.
*
*/
public Optional> rootSquashConfiguration() {
return Optional.ofNullable(this.rootSquashConfiguration);
}
/**
* 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.
*
*/
@Import(name="securityGroupIds")
private @Nullable Output> securityGroupIds;
/**
* @return 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.
*
*/
public Optional>> securityGroupIds() {
return Optional.ofNullable(this.securityGroupIds);
}
/**
* 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.
*
*/
@Import(name="skipFinalBackup")
private @Nullable Output skipFinalBackup;
/**
* @return 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.
*
*/
public Optional> skipFinalBackup() {
return Optional.ofNullable(this.skipFinalBackup);
}
/**
* 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.
*
*/
@Import(name="storageCapacity")
private @Nullable Output storageCapacity;
/**
* @return 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.
*
*/
public Optional> storageCapacity() {
return Optional.ofNullable(this.storageCapacity);
}
/**
* The filesystem storage type. Either `SSD` or `HDD`, defaults to `SSD`. `HDD` is only supported on `PERSISTENT_1` deployment types.
*
*/
@Import(name="storageType")
private @Nullable Output storageType;
/**
* @return The filesystem storage type. Either `SSD` or `HDD`, defaults to `SSD`. `HDD` is only supported on `PERSISTENT_1` deployment types.
*
*/
public Optional> storageType() {
return Optional.ofNullable(this.storageType);
}
/**
* 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.
*
* The following arguments are optional:
*
*/
@Import(name="subnetIds", required=true)
private Output subnetIds;
/**
* @return 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.
*
* The following arguments are optional:
*
*/
public Output subnetIds() {
return this.subnetIds;
}
/**
* A map of tags to assign to the file system. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
*
*/
@Import(name="tags")
private @Nullable Output> tags;
/**
* @return A map of tags to assign to the file system. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
*
*/
public Optional>> tags() {
return Optional.ofNullable(this.tags);
}
/**
* The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone.
*
*/
@Import(name="weeklyMaintenanceStartTime")
private @Nullable Output weeklyMaintenanceStartTime;
/**
* @return The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone.
*
*/
public Optional> weeklyMaintenanceStartTime() {
return Optional.ofNullable(this.weeklyMaintenanceStartTime);
}
private LustreFileSystemArgs() {}
private LustreFileSystemArgs(LustreFileSystemArgs $) {
this.autoImportPolicy = $.autoImportPolicy;
this.automaticBackupRetentionDays = $.automaticBackupRetentionDays;
this.backupId = $.backupId;
this.copyTagsToBackups = $.copyTagsToBackups;
this.dailyAutomaticBackupStartTime = $.dailyAutomaticBackupStartTime;
this.dataCompressionType = $.dataCompressionType;
this.deploymentType = $.deploymentType;
this.driveCacheType = $.driveCacheType;
this.efaEnabled = $.efaEnabled;
this.exportPath = $.exportPath;
this.fileSystemTypeVersion = $.fileSystemTypeVersion;
this.finalBackupTags = $.finalBackupTags;
this.importPath = $.importPath;
this.importedFileChunkSize = $.importedFileChunkSize;
this.kmsKeyId = $.kmsKeyId;
this.logConfiguration = $.logConfiguration;
this.metadataConfiguration = $.metadataConfiguration;
this.perUnitStorageThroughput = $.perUnitStorageThroughput;
this.rootSquashConfiguration = $.rootSquashConfiguration;
this.securityGroupIds = $.securityGroupIds;
this.skipFinalBackup = $.skipFinalBackup;
this.storageCapacity = $.storageCapacity;
this.storageType = $.storageType;
this.subnetIds = $.subnetIds;
this.tags = $.tags;
this.weeklyMaintenanceStartTime = $.weeklyMaintenanceStartTime;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(LustreFileSystemArgs defaults) {
return new Builder(defaults);
}
public static final class Builder {
private LustreFileSystemArgs $;
public Builder() {
$ = new LustreFileSystemArgs();
}
public Builder(LustreFileSystemArgs defaults) {
$ = new LustreFileSystemArgs(Objects.requireNonNull(defaults));
}
/**
* @param autoImportPolicy 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.
*
* @return builder
*
*/
public Builder autoImportPolicy(@Nullable Output autoImportPolicy) {
$.autoImportPolicy = autoImportPolicy;
return this;
}
/**
* @param autoImportPolicy 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.
*
* @return builder
*
*/
public Builder autoImportPolicy(String autoImportPolicy) {
return autoImportPolicy(Output.of(autoImportPolicy));
}
/**
* @param automaticBackupRetentionDays 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.
*
* @return builder
*
*/
public Builder automaticBackupRetentionDays(@Nullable Output automaticBackupRetentionDays) {
$.automaticBackupRetentionDays = automaticBackupRetentionDays;
return this;
}
/**
* @param automaticBackupRetentionDays 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.
*
* @return builder
*
*/
public Builder automaticBackupRetentionDays(Integer automaticBackupRetentionDays) {
return automaticBackupRetentionDays(Output.of(automaticBackupRetentionDays));
}
/**
* @param backupId The ID of the source backup to create the filesystem from.
*
* @return builder
*
*/
public Builder backupId(@Nullable Output backupId) {
$.backupId = backupId;
return this;
}
/**
* @param backupId The ID of the source backup to create the filesystem from.
*
* @return builder
*
*/
public Builder backupId(String backupId) {
return backupId(Output.of(backupId));
}
/**
* @param copyTagsToBackups 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.
*
* @return builder
*
*/
public Builder copyTagsToBackups(@Nullable Output copyTagsToBackups) {
$.copyTagsToBackups = copyTagsToBackups;
return this;
}
/**
* @param copyTagsToBackups 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.
*
* @return builder
*
*/
public Builder copyTagsToBackups(Boolean copyTagsToBackups) {
return copyTagsToBackups(Output.of(copyTagsToBackups));
}
/**
* @param dailyAutomaticBackupStartTime 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 `automatic_backup_retention_days` to be set.
*
* @return builder
*
*/
public Builder dailyAutomaticBackupStartTime(@Nullable Output dailyAutomaticBackupStartTime) {
$.dailyAutomaticBackupStartTime = dailyAutomaticBackupStartTime;
return this;
}
/**
* @param dailyAutomaticBackupStartTime 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 `automatic_backup_retention_days` to be set.
*
* @return builder
*
*/
public Builder dailyAutomaticBackupStartTime(String dailyAutomaticBackupStartTime) {
return dailyAutomaticBackupStartTime(Output.of(dailyAutomaticBackupStartTime));
}
/**
* @param dataCompressionType 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`.
*
* @return builder
*
*/
public Builder dataCompressionType(@Nullable Output dataCompressionType) {
$.dataCompressionType = dataCompressionType;
return this;
}
/**
* @param dataCompressionType 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`.
*
* @return builder
*
*/
public Builder dataCompressionType(String dataCompressionType) {
return dataCompressionType(Output.of(dataCompressionType));
}
/**
* @param deploymentType The filesystem deployment type. One of: `SCRATCH_1`, `SCRATCH_2`, `PERSISTENT_1`, `PERSISTENT_2`.
*
* @return builder
*
*/
public Builder deploymentType(@Nullable Output deploymentType) {
$.deploymentType = deploymentType;
return this;
}
/**
* @param deploymentType The filesystem deployment type. One of: `SCRATCH_1`, `SCRATCH_2`, `PERSISTENT_1`, `PERSISTENT_2`.
*
* @return builder
*
*/
public Builder deploymentType(String deploymentType) {
return deploymentType(Output.of(deploymentType));
}
/**
* @param driveCacheType 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`.
*
* @return builder
*
*/
public Builder driveCacheType(@Nullable Output driveCacheType) {
$.driveCacheType = driveCacheType;
return this;
}
/**
* @param driveCacheType 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`.
*
* @return builder
*
*/
public Builder driveCacheType(String driveCacheType) {
return driveCacheType(Output.of(driveCacheType));
}
/**
* @param efaEnabled 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 `per_unit_storage_throughput`. This is only supported when deployment_type is set to `PERSISTENT_2`, `metadata_configuration` is used, and an EFA-enabled security group is attached.
*
* @return builder
*
*/
public Builder efaEnabled(@Nullable Output efaEnabled) {
$.efaEnabled = efaEnabled;
return this;
}
/**
* @param efaEnabled 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 `per_unit_storage_throughput`. This is only supported when deployment_type is set to `PERSISTENT_2`, `metadata_configuration` is used, and an EFA-enabled security group is attached.
*
* @return builder
*
*/
public Builder efaEnabled(Boolean efaEnabled) {
return efaEnabled(Output.of(efaEnabled));
}
/**
* @param exportPath S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `import_path` argument and the path must use the same Amazon S3 bucket as specified in `import_path`. Set equal to `import_path` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types.
*
* @return builder
*
*/
public Builder exportPath(@Nullable Output exportPath) {
$.exportPath = exportPath;
return this;
}
/**
* @param exportPath S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `import_path` argument and the path must use the same Amazon S3 bucket as specified in `import_path`. Set equal to `import_path` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types.
*
* @return builder
*
*/
public Builder exportPath(String exportPath) {
return exportPath(Output.of(exportPath));
}
/**
* @param fileSystemTypeVersion 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.
*
* @return builder
*
*/
public Builder fileSystemTypeVersion(@Nullable Output fileSystemTypeVersion) {
$.fileSystemTypeVersion = fileSystemTypeVersion;
return this;
}
/**
* @param fileSystemTypeVersion 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.
*
* @return builder
*
*/
public Builder fileSystemTypeVersion(String fileSystemTypeVersion) {
return fileSystemTypeVersion(Output.of(fileSystemTypeVersion));
}
/**
* @param finalBackupTags A 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.
*
* @return builder
*
*/
public Builder finalBackupTags(@Nullable Output> finalBackupTags) {
$.finalBackupTags = finalBackupTags;
return this;
}
/**
* @param finalBackupTags A 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.
*
* @return builder
*
*/
public Builder finalBackupTags(Map finalBackupTags) {
return finalBackupTags(Output.of(finalBackupTags));
}
/**
* @param importPath 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.
*
* @return builder
*
*/
public Builder importPath(@Nullable Output importPath) {
$.importPath = importPath;
return this;
}
/**
* @param importPath 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.
*
* @return builder
*
*/
public Builder importPath(String importPath) {
return importPath(Output.of(importPath));
}
/**
* @param importedFileChunkSize 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 `import_path` argument. Defaults to `1024`. Minimum of `1` and maximum of `512000`. Only supported on `PERSISTENT_1` deployment types.
*
* @return builder
*
*/
public Builder importedFileChunkSize(@Nullable Output importedFileChunkSize) {
$.importedFileChunkSize = importedFileChunkSize;
return this;
}
/**
* @param importedFileChunkSize 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 `import_path` argument. Defaults to `1024`. Minimum of `1` and maximum of `512000`. Only supported on `PERSISTENT_1` deployment types.
*
* @return builder
*
*/
public Builder importedFileChunkSize(Integer importedFileChunkSize) {
return importedFileChunkSize(Output.of(importedFileChunkSize));
}
/**
* @param kmsKeyId 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.
*
* @return builder
*
*/
public Builder kmsKeyId(@Nullable Output kmsKeyId) {
$.kmsKeyId = kmsKeyId;
return this;
}
/**
* @param kmsKeyId 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.
*
* @return builder
*
*/
public Builder kmsKeyId(String kmsKeyId) {
return kmsKeyId(Output.of(kmsKeyId));
}
/**
* @param logConfiguration 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. See `log_configuration` Block for details.
*
* @return builder
*
*/
public Builder logConfiguration(@Nullable Output logConfiguration) {
$.logConfiguration = logConfiguration;
return this;
}
/**
* @param logConfiguration 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. See `log_configuration` Block for details.
*
* @return builder
*
*/
public Builder logConfiguration(LustreFileSystemLogConfigurationArgs logConfiguration) {
return logConfiguration(Output.of(logConfiguration));
}
/**
* @param metadataConfiguration The 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 `deployment_type` is set to `PERSISTENT_2`. See `metadata_configuration` Block for details.
*
* @return builder
*
*/
public Builder metadataConfiguration(@Nullable Output metadataConfiguration) {
$.metadataConfiguration = metadataConfiguration;
return this;
}
/**
* @param metadataConfiguration The 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 `deployment_type` is set to `PERSISTENT_2`. See `metadata_configuration` Block for details.
*
* @return builder
*
*/
public Builder metadataConfiguration(LustreFileSystemMetadataConfigurationArgs metadataConfiguration) {
return metadataConfiguration(Output.of(metadataConfiguration));
}
/**
* @param perUnitStorageThroughput 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` deployment_type and `SSD` storage_type are 50, 100, 200. Valid values for `PERSISTENT_1` deployment_type and `HDD` storage_type are 12, 40. Valid values for `PERSISTENT_2` deployment_type and ` SSD ` storage_type are 125, 250, 500, 1000.
*
* @return builder
*
*/
public Builder perUnitStorageThroughput(@Nullable Output perUnitStorageThroughput) {
$.perUnitStorageThroughput = perUnitStorageThroughput;
return this;
}
/**
* @param perUnitStorageThroughput 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` deployment_type and `SSD` storage_type are 50, 100, 200. Valid values for `PERSISTENT_1` deployment_type and `HDD` storage_type are 12, 40. Valid values for `PERSISTENT_2` deployment_type and ` SSD ` storage_type are 125, 250, 500, 1000.
*
* @return builder
*
*/
public Builder perUnitStorageThroughput(Integer perUnitStorageThroughput) {
return perUnitStorageThroughput(Output.of(perUnitStorageThroughput));
}
/**
* @param rootSquashConfiguration 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. See `root_squash_configuration` Block for details.
*
* @return builder
*
*/
public Builder rootSquashConfiguration(@Nullable Output rootSquashConfiguration) {
$.rootSquashConfiguration = rootSquashConfiguration;
return this;
}
/**
* @param rootSquashConfiguration 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. See `root_squash_configuration` Block for details.
*
* @return builder
*
*/
public Builder rootSquashConfiguration(LustreFileSystemRootSquashConfigurationArgs rootSquashConfiguration) {
return rootSquashConfiguration(Output.of(rootSquashConfiguration));
}
/**
* @param securityGroupIds 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.
*
* @return builder
*
*/
public Builder securityGroupIds(@Nullable Output> securityGroupIds) {
$.securityGroupIds = securityGroupIds;
return this;
}
/**
* @param securityGroupIds 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.
*
* @return builder
*
*/
public Builder securityGroupIds(List securityGroupIds) {
return securityGroupIds(Output.of(securityGroupIds));
}
/**
* @param securityGroupIds 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.
*
* @return builder
*
*/
public Builder securityGroupIds(String... securityGroupIds) {
return securityGroupIds(List.of(securityGroupIds));
}
/**
* @param skipFinalBackup 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.
*
* @return builder
*
*/
public Builder skipFinalBackup(@Nullable Output skipFinalBackup) {
$.skipFinalBackup = skipFinalBackup;
return this;
}
/**
* @param skipFinalBackup 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.
*
* @return builder
*
*/
public Builder skipFinalBackup(Boolean skipFinalBackup) {
return skipFinalBackup(Output.of(skipFinalBackup));
}
/**
* @param storageCapacity 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.
*
* @return builder
*
*/
public Builder storageCapacity(@Nullable Output storageCapacity) {
$.storageCapacity = storageCapacity;
return this;
}
/**
* @param storageCapacity 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.
*
* @return builder
*
*/
public Builder storageCapacity(Integer storageCapacity) {
return storageCapacity(Output.of(storageCapacity));
}
/**
* @param storageType The filesystem storage type. Either `SSD` or `HDD`, defaults to `SSD`. `HDD` is only supported on `PERSISTENT_1` deployment types.
*
* @return builder
*
*/
public Builder storageType(@Nullable Output storageType) {
$.storageType = storageType;
return this;
}
/**
* @param storageType The filesystem storage type. Either `SSD` or `HDD`, defaults to `SSD`. `HDD` is only supported on `PERSISTENT_1` deployment types.
*
* @return builder
*
*/
public Builder storageType(String storageType) {
return storageType(Output.of(storageType));
}
/**
* @param subnetIds 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.
*
* The following arguments are optional:
*
* @return builder
*
*/
public Builder subnetIds(Output subnetIds) {
$.subnetIds = subnetIds;
return this;
}
/**
* @param subnetIds 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.
*
* The following arguments are optional:
*
* @return builder
*
*/
public Builder subnetIds(String subnetIds) {
return subnetIds(Output.of(subnetIds));
}
/**
* @param tags A map of tags to assign to the file system. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
*
* @return builder
*
*/
public Builder tags(@Nullable Output> tags) {
$.tags = tags;
return this;
}
/**
* @param tags A map of tags to assign to the file system. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
*
* @return builder
*
*/
public Builder tags(Map tags) {
return tags(Output.of(tags));
}
/**
* @param weeklyMaintenanceStartTime The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone.
*
* @return builder
*
*/
public Builder weeklyMaintenanceStartTime(@Nullable Output weeklyMaintenanceStartTime) {
$.weeklyMaintenanceStartTime = weeklyMaintenanceStartTime;
return this;
}
/**
* @param weeklyMaintenanceStartTime The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone.
*
* @return builder
*
*/
public Builder weeklyMaintenanceStartTime(String weeklyMaintenanceStartTime) {
return weeklyMaintenanceStartTime(Output.of(weeklyMaintenanceStartTime));
}
public LustreFileSystemArgs build() {
if ($.subnetIds == null) {
throw new MissingRequiredPropertyException("LustreFileSystemArgs", "subnetIds");
}
return $;
}
}
}