import * as core from "@terrascript/core"; export interface AutoImportPolicyArgs extends core.SchemaArgs { events?: core.Array | core.ArrayOut; } export class AutoImportPolicy extends core.Schema { @core.attr(String, { computed: true, kind: "array" }) public events?: core.Array | core.ArrayOut; } export interface AutoExportPolicyArgs extends core.SchemaArgs { events?: core.Array | core.ArrayOut; } export class AutoExportPolicy extends core.Schema { @core.attr(String, { computed: true, kind: "array" }) public events?: core.Array | core.ArrayOut; } export interface S3Args extends core.SchemaArgs { autoExportPolicy?: AutoExportPolicy; autoImportPolicy?: AutoImportPolicy; } export class S3 extends core.Schema { @core.attr(AutoExportPolicy, { computed: true }) public autoExportPolicy?: AutoExportPolicy; @core.attr(AutoImportPolicy, { computed: true }) public autoImportPolicy?: AutoImportPolicy; } export interface DataRepositoryAssociationArgs extends core.ResourceArgs { /** * (Optional) Set to true to run an import data repository task to import metadata from the data reposi * tory to the file system after the data repository association is created. Defaults to `false`. */ batchImportMetaDataOnCreate?: boolean | core.BooleanOut; /** * (Required) The path to the Amazon S3 data repository that will be linked to the file system. The pat * h must be an S3 bucket s3://myBucket/myPrefix/. This path specifies where in the S3 data repository * files will be imported from or exported to. The same S3 bucket cannot be linked more than once to th * e same file system. */ dataRepositoryPath: string | core.StringOut; /** * (Optional) Set to true to delete files from the file system upon deleting this data repository assoc * iation. Defaults to `false`. */ deleteDataInFilesystem?: boolean | core.BooleanOut; /** * (Required) The ID of the Amazon FSx file system to on which to create a data repository association. */ fileSystemId: string | core.StringOut; /** * (Required) A path on the file system that points to a high-level directory (such as `/ns1/`) or subd * irectory (such as `/ns1/subdir/`) that will be mapped 1-1 with `data_repository_path`. The leading f * orward slash in the name is required. Two data repository associations cannot have overlapping file * system paths. For example, if a data repository is associated with file system path `/ns1/`, then yo * u cannot link another data repository with file system path `/ns1/ns2`. This path specifies where in * your file system files will be exported from or imported to. This file system directory can be link * ed to only one Amazon S3 bucket, and no other S3 bucket can be linked to the directory. */ fileSystemPath: 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. The maximum number of disks * that a single file can be striped across is limited by the total number of disks that make up the fi * le system. */ importedFileChunkSize?: number | core.NumberOut; /** * (Optional) See the [`s3` configuration](#s3-arguments) block. Max of 1. */ s3?: S3; /** * (Optional) A map of tags to assign to the data repository association. If configured with a provider * [`default_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/d * ocs#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; } export class DataRepositoryAssociation extends core.Resource { /** * Amazon Resource Name of the file system. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public associationId!: string | core.StringOut; /** * (Optional) Set to true to run an import data repository task to import metadata from the data reposi * tory to the file system after the data repository association is created. Defaults to `false`. */ @core.attr(Boolean) public batchImportMetaDataOnCreate?: boolean | core.BooleanOut; /** * (Required) The path to the Amazon S3 data repository that will be linked to the file system. The pat * h must be an S3 bucket s3://myBucket/myPrefix/. This path specifies where in the S3 data repository * files will be imported from or exported to. The same S3 bucket cannot be linked more than once to th * e same file system. */ @core.attr(String) public dataRepositoryPath!: string | core.StringOut; /** * (Optional) Set to true to delete files from the file system upon deleting this data repository assoc * iation. Defaults to `false`. */ @core.attr(Boolean) public deleteDataInFilesystem?: boolean | core.BooleanOut; /** * (Required) The ID of the Amazon FSx file system to on which to create a data repository association. */ @core.attr(String) public fileSystemId!: string | core.StringOut; /** * (Required) A path on the file system that points to a high-level directory (such as `/ns1/`) or subd * irectory (such as `/ns1/subdir/`) that will be mapped 1-1 with `data_repository_path`. The leading f * orward slash in the name is required. Two data repository associations cannot have overlapping file * system paths. For example, if a data repository is associated with file system path `/ns1/`, then yo * u cannot link another data repository with file system path `/ns1/ns2`. This path specifies where in * your file system files will be exported from or imported to. This file system directory can be link * ed to only one Amazon S3 bucket, and no other S3 bucket can be linked to the directory. */ @core.attr(String) public fileSystemPath!: string | core.StringOut; /** * Identifier of the data repository association, e.g., `dra-12345678` */ @core.attr(String, { computed: true }) public id!: 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. The maximum number of disks * that a single file can be striped across is limited by the total number of disks that make up the fi * le system. */ @core.attr(Number, { computed: true }) public importedFileChunkSize?: number | core.NumberOut; /** * (Optional) See the [`s3` configuration](#s3-arguments) block. Max of 1. */ @core.attr(S3, { computed: true }) public s3?: S3; /** * (Optional) A map of tags to assign to the data repository association. If configured with a provider * [`default_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/d * ocs#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; constructor(name: string, args?: DataRepositoryAssociationArgs) { super(name, "aws_fsx_data_repository_association", args); } public override getNamespace(): string { return "aws_fsx"; } }