import * as core from "@terrascript/core"; export interface LogConfigurationArgs extends core.SchemaArgs { destination?: string | core.StringOut; level?: string | core.StringOut; } export class LogConfiguration extends core.Schema { @core.attr(String, { computed: true }) public destination?: string | core.StringOut; @core.attr(String) public level?: string | core.StringOut; } export interface LustreFileSystemArgs extends core.ResourceArgs { /** * (Optional) How Amazon FSx keeps your file and directory listings up to date as you add or modify obj * ects in your linked S3 bucket. see [Auto Import Data Repo](https://docs.aws.amazon.com/fsx/latest/Lu * streGuide/autoimport-data-repo.html) for more details. Only supported on `PERSISTENT_1` deployment t * ypes. */ autoImportPolicy?: string | core.StringOut; /** * (Optional) The number of days to retain automatic backups. Setting this to 0 disables automatic back * ups. You can retain automatic backups for a maximum of 90 days. only valid for `PERSISTENT_1` and `P * ERSISTENT_2` deployment_type. */ automaticBackupRetentionDays?: number | core.NumberOut; /** * (Optional) The ID of the source backup to create the filesystem from. */ backupId?: string | core.StringOut; /** * (Optional) A boolean flag indicating whether tags for the file system should be copied to backups. A * pplicable for `PERSISTENT_1` and `PERSISTENT_2` deployment_type. The default value is false. */ copyTagsToBackups?: boolean | core.BooleanOut; /** * (Optional) 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. */ dailyAutomaticBackupStartTime?: string | core.StringOut; /** * (Optional) 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`. */ dataCompressionType?: string | core.StringOut; /** * (Optional) - The filesystem deployment type. One of: `SCRATCH_1`, `SCRATCH_2`, `PERSISTENT_1`, `PERS * ISTENT_2`. */ deploymentType?: string | core.StringOut; /** * (Optional) - The type of drive cache used by `PERSISTENT_1` filesystems that are provisioned with `H * DD` storage_type. Required for `HDD` storage_type, set to either `READ` or `NONE`. */ driveCacheType?: string | core.StringOut; /** * (Optional) 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 `s * 3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment type * s. */ exportPath?: string | core.StringOut; /** * (Optional) Sets the Lustre version for the file system that you're creating. Valid values are 2.10 f * or `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all d * eployment types. */ fileSystemTypeVersion?: string | core.StringOut; /** * (Optional) S3 URI (with optional prefix) that you're using as the data repository for your FSx for L * ustre file system. For example, `s3://example-bucket/optional-prefix/`. Only supported on `PERSISTEN * T_1` deployment types. */ importPath?: string | core.StringOut; /** * (Optional) For files imported from a data repository, this value determines the stripe count and max * imum 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. */ importedFileChunkSize?: number | core.NumberOut; /** * (Optional) 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. */ kmsKeyId?: string | core.StringOut; /** * (Optional) 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. */ logConfiguration?: LogConfiguration; /** * (Optional) - 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 `PERSIS * TENT_1` deployment_type and `SSD` storage_type are 50, 100, 200. Valid values for `PERSISTENT_1` dep * loyment_type and `HDD` storage_type are 12, 40. Valid values for `PERSISTENT_2` deployment_type and * SSD` storage_type are 125, 250, 500, 1000. */ perUnitStorageThroughput?: number | core.NumberOut; /** * (Optional) A list of IDs for the security groups that apply to the specified network interfaces crea * ted for file system access. These security groups will apply to all network interfaces. */ securityGroupIds?: core.Array | core.ArrayOut; /** * (Optional) The storage capacity (GiB) of the file system. Minimum of `1200`. See more details at [Al * lowed values for Fsx storage capacity](https://docs.aws.amazon.com/fsx/latest/APIReference/API_Creat * eFileSystem.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 Up * date](https://docs.aws.amazon.com/fsx/latest/APIReference/API_UpdateFileSystem.html#FSx-UpdateFileSy * stem-request-StorageCapacity). Required when not creating filesystem for a backup. */ storageCapacity?: number | core.NumberOut; /** * (Optional) - The filesystem storage type. Either `SSD` or `HDD`, defaults to `SSD`. `HDD` is only su * pported on `PERSISTENT_1` deployment types. */ storageType?: string | core.StringOut; /** * (Required) 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 Zo * ne. */ subnetIds: core.Array | core.ArrayOut; /** * (Optional) A map of tags to assign to the file system. If configured with a provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags * configuration-block) present, tags with matching keys will overwrite those defined at the provider- * level. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; /** * (Optional) The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC * time zone. */ weeklyMaintenanceStartTime?: string | core.StringOut; } export class LustreFileSystem extends core.Resource { /** * Amazon Resource Name of the file system. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) How Amazon FSx keeps your file and directory listings up to date as you add or modify obj * ects in your linked S3 bucket. see [Auto Import Data Repo](https://docs.aws.amazon.com/fsx/latest/Lu * streGuide/autoimport-data-repo.html) for more details. Only supported on `PERSISTENT_1` deployment t * ypes. */ @core.attr(String, { computed: true }) public autoImportPolicy?: string | core.StringOut; /** * (Optional) The number of days to retain automatic backups. Setting this to 0 disables automatic back * ups. You can retain automatic backups for a maximum of 90 days. only valid for `PERSISTENT_1` and `P * ERSISTENT_2` deployment_type. */ @core.attr(Number, { computed: true }) public automaticBackupRetentionDays?: number | core.NumberOut; /** * (Optional) The ID of the source backup to create the filesystem from. */ @core.attr(String) public backupId?: string | core.StringOut; /** * (Optional) A boolean flag indicating whether tags for the file system should be copied to backups. A * pplicable for `PERSISTENT_1` and `PERSISTENT_2` deployment_type. The default value is false. */ @core.attr(Boolean) public copyTagsToBackups?: boolean | core.BooleanOut; /** * (Optional) 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. */ @core.attr(String, { computed: true }) public dailyAutomaticBackupStartTime?: string | core.StringOut; /** * (Optional) 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`. */ @core.attr(String) public dataCompressionType?: string | core.StringOut; /** * (Optional) - The filesystem deployment type. One of: `SCRATCH_1`, `SCRATCH_2`, `PERSISTENT_1`, `PERS * ISTENT_2`. */ @core.attr(String) public deploymentType?: string | core.StringOut; /** * DNS name for the file system, e.g., `fs-12345678.fsx.us-west-2.amazonaws.com` */ @core.attr(String, { computed: true }) public dnsName!: string | core.StringOut; /** * (Optional) - The type of drive cache used by `PERSISTENT_1` filesystems that are provisioned with `H * DD` storage_type. Required for `HDD` storage_type, set to either `READ` or `NONE`. */ @core.attr(String) public driveCacheType?: string | core.StringOut; /** * (Optional) 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 `s * 3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment type * s. */ @core.attr(String, { computed: true }) public exportPath?: string | core.StringOut; /** * (Optional) Sets the Lustre version for the file system that you're creating. Valid values are 2.10 f * or `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all d * eployment types. */ @core.attr(String, { computed: true }) public fileSystemTypeVersion?: string | core.StringOut; /** * Identifier of the file system, e.g., `fs-12345678` */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) S3 URI (with optional prefix) that you're using as the data repository for your FSx for L * ustre file system. For example, `s3://example-bucket/optional-prefix/`. Only supported on `PERSISTEN * T_1` deployment types. */ @core.attr(String) public importPath?: string | core.StringOut; /** * (Optional) For files imported from a data repository, this value determines the stripe count and max * imum 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. */ @core.attr(Number, { computed: true }) public importedFileChunkSize?: number | core.NumberOut; /** * (Optional) 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. */ @core.attr(String, { computed: true }) public kmsKeyId?: string | core.StringOut; /** * (Optional) 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. */ @core.attr(LogConfiguration, { computed: true }) public logConfiguration?: LogConfiguration; /** * The value to be used when mounting the filesystem. */ @core.attr(String, { computed: true }) public mountName!: string | core.StringOut; /** * 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. */ @core.attr(String, { computed: true, kind: "array" }) public networkInterfaceIds!: | core.Array | core.ArrayOut; /** * AWS account identifier that created the file system. */ @core.attr(String, { computed: true }) public ownerId!: string | core.StringOut; /** * (Optional) - 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 `PERSIS * TENT_1` deployment_type and `SSD` storage_type are 50, 100, 200. Valid values for `PERSISTENT_1` dep * loyment_type and `HDD` storage_type are 12, 40. Valid values for `PERSISTENT_2` deployment_type and * SSD` storage_type are 125, 250, 500, 1000. */ @core.attr(Number) public perUnitStorageThroughput?: number | core.NumberOut; /** * (Optional) A list of IDs for the security groups that apply to the specified network interfaces crea * ted for file system access. These security groups will apply to all network interfaces. */ @core.attr(String, { kind: "array" }) public securityGroupIds?: core.Array | core.ArrayOut; /** * (Optional) The storage capacity (GiB) of the file system. Minimum of `1200`. See more details at [Al * lowed values for Fsx storage capacity](https://docs.aws.amazon.com/fsx/latest/APIReference/API_Creat * eFileSystem.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 Up * date](https://docs.aws.amazon.com/fsx/latest/APIReference/API_UpdateFileSystem.html#FSx-UpdateFileSy * stem-request-StorageCapacity). Required when not creating filesystem for a backup. */ @core.attr(Number) public storageCapacity?: number | core.NumberOut; /** * (Optional) - The filesystem storage type. Either `SSD` or `HDD`, defaults to `SSD`. `HDD` is only su * pported on `PERSISTENT_1` deployment types. */ @core.attr(String) public storageType?: string | core.StringOut; /** * (Required) 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 Zo * ne. */ @core.attr(String, { kind: "array" }) public subnetIds!: core.Array | core.ArrayOut; /** * (Optional) A map of tags to assign to the file system. If configured with a provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags * configuration-block) present, tags with matching keys will overwrite those defined at the provider- * level. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; /** * Identifier of the Virtual Private Cloud for the file system. */ @core.attr(String, { computed: true }) public vpcId!: string | core.StringOut; /** * (Optional) The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC * time zone. */ @core.attr(String, { computed: true }) public weeklyMaintenanceStartTime?: string | core.StringOut; constructor(name: string, args?: LustreFileSystemArgs) { super(name, "aws_fsx_lustre_file_system", args); } public override getNamespace(): string { return "aws_fsx"; } }