import * as core from "@terrascript/core"; export interface LifecyclePolicyArgs extends core.SchemaArgs { transitionToIa?: string | core.StringOut; transitionToPrimaryStorageClass?: string | core.StringOut; } export class LifecyclePolicy extends core.Schema { @core.attr(String) public transitionToIa?: string | core.StringOut; @core.attr(String) public transitionToPrimaryStorageClass?: string | core.StringOut; } export interface SizeInBytesArgs extends core.SchemaArgs { value: number | core.NumberOut; valueInIa: number | core.NumberOut; valueInStandard: number | core.NumberOut; } export class SizeInBytes extends core.Schema { @core.attr(Number, { computed: true }) public value!: number | core.NumberOut; @core.attr(Number, { computed: true }) public valueInIa!: number | core.NumberOut; @core.attr(Number, { computed: true }) public valueInStandard!: number | core.NumberOut; } export interface FileSystemArgs extends core.ResourceArgs { /** * (Optional) the AWS Availability Zone in which to create the file system. Used to create a file syste * m that uses One Zone storage classes. See [user guide](https://docs.aws.amazon.com/efs/latest/ug/sto * rage-classes.html) for more information. */ availabilityZoneName?: string | core.StringOut; /** * (Optional) A unique name (a maximum of 64 characters are allowed) */ creationToken?: string | core.StringOut; /** * (Optional) If true, the disk will be encrypted. */ encrypted?: boolean | core.BooleanOut; /** * (Optional) The ARN for the KMS encryption key. When specifying kms_key_id, encrypted needs to be set * to true. */ kmsKeyId?: string | core.StringOut; /** * (Optional) A file system [lifecycle policy](https://docs.aws.amazon.com/efs/latest/ug/API_LifecycleP * olicy.html) object (documented below). */ lifecyclePolicy?: | core.Array | core.ArrayOut; /** * (Optional) The file system performance mode. Can be either `"generalPurpose"` or `"maxIO"` (Default: * "generalPurpose"`). */ performanceMode?: string | core.StringOut; /** * (Optional) The throughput, measured in MiB/s, that you want to provision for the file system. Only a * pplicable with `throughput_mode` set to `provisioned`. */ provisionedThroughputInMibps?: number | core.NumberOut; /** * (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) Throughput mode for the file system. Defaults to `bursting`. Valid values: `bursting`, `p * rovisioned`. When using `provisioned`, also set `provisioned_throughput_in_mibps`. */ throughputMode?: string | core.StringOut; } export class FileSystem extends core.Resource { /** * Amazon Resource Name of the file system. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * The identifier of the Availability Zone in which the file system's One Zone storage classes exist. */ @core.attr(String, { computed: true }) public availabilityZoneId!: string | core.StringOut; /** * (Optional) the AWS Availability Zone in which to create the file system. Used to create a file syste * m that uses One Zone storage classes. See [user guide](https://docs.aws.amazon.com/efs/latest/ug/sto * rage-classes.html) for more information. */ @core.attr(String, { computed: true }) public availabilityZoneName?: string | core.StringOut; /** * (Optional) A unique name (a maximum of 64 characters are allowed) */ @core.attr(String, { computed: true }) public creationToken?: string | core.StringOut; /** * The DNS name for the filesystem per [documented convention](http://docs.aws.amazon.com/efs/latest/ug * /mounting-fs-mount-cmd-dns-name.html). */ @core.attr(String, { computed: true }) public dnsName!: string | core.StringOut; /** * (Optional) If true, the disk will be encrypted. */ @core.attr(Boolean, { computed: true }) public encrypted?: boolean | core.BooleanOut; /** * The ID that identifies the file system (e.g., fs-ccfc0d65). */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) The ARN for the KMS encryption key. When specifying kms_key_id, encrypted needs to be set * to true. */ @core.attr(String, { computed: true }) public kmsKeyId?: string | core.StringOut; /** * (Optional) A file system [lifecycle policy](https://docs.aws.amazon.com/efs/latest/ug/API_LifecycleP * olicy.html) object (documented below). */ @core.attr(LifecyclePolicy, { kind: "array" }) public lifecyclePolicy?: | core.Array | core.ArrayOut; /** * The current number of mount targets that the file system has. */ @core.attr(Number, { computed: true }) public numberOfMountTargets!: number | core.NumberOut; /** * The AWS account that created the file system. If the file system was createdby an IAM user, the pare * nt account to which the user belongs is the owner. */ @core.attr(String, { computed: true }) public ownerId!: string | core.StringOut; /** * (Optional) The file system performance mode. Can be either `"generalPurpose"` or `"maxIO"` (Default: * "generalPurpose"`). */ @core.attr(String, { computed: true }) public performanceMode?: string | core.StringOut; /** * (Optional) The throughput, measured in MiB/s, that you want to provision for the file system. Only a * pplicable with `throughput_mode` set to `provisioned`. */ @core.attr(Number) public provisionedThroughputInMibps?: number | core.NumberOut; /** * The latest known metered size (in bytes) of data stored in the file system, the value is not the exa * ct size that the file system was at any point in time. See [Size In Bytes](#size-in-bytes). */ @core.attr(SizeInBytes, { computed: true, kind: "array" }) public sizeInBytes!: 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; /** * (Optional) Throughput mode for the file system. Defaults to `bursting`. Valid values: `bursting`, `p * rovisioned`. When using `provisioned`, also set `provisioned_throughput_in_mibps`. */ @core.attr(String) public throughputMode?: string | core.StringOut; constructor(name: string, args?: FileSystemArgs) { super(name, "aws_efs_file_system", args); } public override getNamespace(): string { return "aws_efs"; } }