import * as core from "@terrascript/core"; export interface DiskIopsConfigurationArgs extends core.SchemaArgs { iops?: number | core.NumberOut; mode?: string | core.StringOut; } export class DiskIopsConfiguration extends core.Schema { @core.attr(Number, { computed: true }) public iops?: number | core.NumberOut; @core.attr(String) public mode?: string | core.StringOut; } export interface InterclusterArgs extends core.SchemaArgs { dnsName: string | core.StringOut; ipAddresses: core.Array | core.ArrayOut; } export class Intercluster extends core.Schema { @core.attr(String, { computed: true }) public dnsName!: string | core.StringOut; @core.attr(String, { computed: true, kind: "array" }) public ipAddresses!: core.Array | core.ArrayOut; } export interface ManagementArgs extends core.SchemaArgs { dnsName: string | core.StringOut; ipAddresses: core.Array | core.ArrayOut; } export class Management extends core.Schema { @core.attr(String, { computed: true }) public dnsName!: string | core.StringOut; @core.attr(String, { computed: true, kind: "array" }) public ipAddresses!: core.Array | core.ArrayOut; } export interface EndpointsArgs extends core.SchemaArgs { intercluster: core.Array | core.ArrayOut; management: core.Array | core.ArrayOut; } export class Endpoints extends core.Schema { @core.attr(Intercluster, { computed: true, kind: "array" }) public intercluster!: core.Array | core.ArrayOut; @core.attr(Management, { computed: true, kind: "array" }) public management!: core.Array | core.ArrayOut; } export interface OntapFileSystemArgs extends core.ResourceArgs { /** * (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. */ automaticBackupRetentionDays?: number | core.NumberOut; /** * (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. Requires `a * utomatic_backup_retention_days` to be set. */ dailyAutomaticBackupStartTime?: string | core.StringOut; /** * (Optional) - The filesystem deployment type. Supports `MULTI_AZ_1` and `SINGLE_AZ_1`. */ deploymentType: string | core.StringOut; /** * (Optional) The SSD IOPS configuration for the Amazon FSx for NetApp ONTAP file system. See [Disk Iop * s Configuration](#disk-iops-configuration) Below. */ diskIopsConfiguration?: DiskIopsConfiguration; /** * (Optional) Specifies the IP address range in which the endpoints to access your file system will be * created. By default, Amazon FSx selects an unused IP address range for you from the 198.19.* range. */ endpointIpAddressRange?: string | core.StringOut; /** * (Optional) The ONTAP administrative password for the fsxadmin user that you can use to administer yo * ur file system using the ONTAP CLI and REST API. */ fsxAdminPassword?: string | core.StringOut; /** * (Optional) ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Ke * y. */ kmsKeyId?: string | core.StringOut; /** * (Required) The ID for a subnet. A subnet is a range of IP addresses in your virtual private cloud (V * PC). */ preferredSubnetId: string | core.StringOut; /** * (Optional) Specifies the VPC route tables in which your file system's endpoints will be created. You * should specify all VPC route tables associated with the subnets in which your clients are located. * By default, Amazon FSx selects your VPC's default route table. */ routeTableIds?: core.Array | core.ArrayOut; /** * (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. Valid values between `1024` and `196608`. */ storageCapacity?: number | core.NumberOut; /** * (Optional) - The filesystem storage type. defaults to `SSD`. */ storageType?: string | core.StringOut; /** * (Required) A list of IDs for the subnets that the file system will be accessible from. Upto 2 subnet * s can be provided. */ 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; /** * (Required) Sets the throughput capacity (in MBps) for the file system that you're creating. Valid va * lues are `128`, `256`, `512`, `1024`, and `2048`. */ throughputCapacity: number | core.NumberOut; /** * (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 OntapFileSystem extends core.Resource { /** * Amazon Resource Name of the file system. */ @core.attr(String, { computed: true }) public arn!: 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. */ @core.attr(Number) public automaticBackupRetentionDays?: number | core.NumberOut; /** * (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. Requires `a * utomatic_backup_retention_days` to be set. */ @core.attr(String, { computed: true }) public dailyAutomaticBackupStartTime?: string | core.StringOut; /** * (Optional) - The filesystem deployment type. Supports `MULTI_AZ_1` and `SINGLE_AZ_1`. */ @core.attr(String) public deploymentType!: string | core.StringOut; /** * (Optional) The SSD IOPS configuration for the Amazon FSx for NetApp ONTAP file system. See [Disk Iop * s Configuration](#disk-iops-configuration) Below. */ @core.attr(DiskIopsConfiguration, { computed: true }) public diskIopsConfiguration?: DiskIopsConfiguration; /** * 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) Specifies the IP address range in which the endpoints to access your file system will be * created. By default, Amazon FSx selects an unused IP address range for you from the 198.19.* range. */ @core.attr(String, { computed: true }) public endpointIpAddressRange?: string | core.StringOut; /** * The endpoints that are used to access data or to manage the file system using the NetApp ONTAP CLI, * REST API, or NetApp SnapMirror. See [Endpoints](#endpoints) below. */ @core.attr(Endpoints, { computed: true, kind: "array" }) public endpoints!: core.Array | core.ArrayOut; /** * (Optional) The ONTAP administrative password for the fsxadmin user that you can use to administer yo * ur file system using the ONTAP CLI and REST API. */ @core.attr(String) public fsxAdminPassword?: string | core.StringOut; /** * Identifier of the file system, e.g., `fs-12345678` */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Ke * y. */ @core.attr(String, { computed: true }) public kmsKeyId?: string | core.StringOut; /** * Set of Elastic Network Interface identifiers from which the file system is accessible The first netw * ork 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; /** * (Required) The ID for a subnet. A subnet is a range of IP addresses in your virtual private cloud (V * PC). */ @core.attr(String) public preferredSubnetId!: string | core.StringOut; /** * (Optional) Specifies the VPC route tables in which your file system's endpoints will be created. You * should specify all VPC route tables associated with the subnets in which your clients are located. * By default, Amazon FSx selects your VPC's default route table. */ @core.attr(String, { computed: true, kind: "array" }) public routeTableIds?: core.Array | core.ArrayOut; /** * (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. Valid values between `1024` and `196608`. */ @core.attr(Number) public storageCapacity?: number | core.NumberOut; /** * (Optional) - The filesystem storage type. defaults to `SSD`. */ @core.attr(String) public storageType?: string | core.StringOut; /** * (Required) A list of IDs for the subnets that the file system will be accessible from. Upto 2 subnet * s can be provided. */ @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; /** * (Required) Sets the throughput capacity (in MBps) for the file system that you're creating. Valid va * lues are `128`, `256`, `512`, `1024`, and `2048`. */ @core.attr(Number) public throughputCapacity!: number | core.NumberOut; /** * 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?: OntapFileSystemArgs) { super(name, "aws_fsx_ontap_file_system", args); } public override getNamespace(): string { return "aws_fsx"; } }