import * as core from "@terrascript/core"; export interface TieringPolicyArgs extends core.SchemaArgs { coolingPeriod?: number | core.NumberOut; name?: string | core.StringOut; } export class TieringPolicy extends core.Schema { @core.attr(Number) public coolingPeriod?: number | core.NumberOut; @core.attr(String, { computed: true }) public name?: string | core.StringOut; } export interface OntapVolumeArgs extends core.ResourceArgs { /** * (Required) Specifies the location in the storage virtual machine's namespace where the volume is mou * nted. The junction_path must have a leading forward slash, such as `/vol3` */ junctionPath: string | core.StringOut; /** * (Required) The name of the Volume. You can use a maximum of 203 alphanumeric characters, plus the un * derscore (_) special character. */ name: string | core.StringOut; /** * (Optional) Specifies the volume security style, Valid values are `UNIX`, `NTFS`, and `MIXED`. Defaul * t value is `UNIX`. */ securityStyle?: string | core.StringOut; /** * (Required) Specifies the size of the volume, in megabytes (MB), that you are creating. */ sizeInMegabytes: number | core.NumberOut; /** * (Required) Set to true to enable deduplication, compression, and compaction storage efficiency featu * res on the volume. */ storageEfficiencyEnabled: boolean | core.BooleanOut; /** * (Required) Specifies the storage virtual machine in which to create the volume. */ storageVirtualMachineId: string | core.StringOut; /** * (Optional) A map of tags to assign to the volume. If configured with a provider [`default_tags` conf * iguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-conf * iguration-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; tieringPolicy?: TieringPolicy; /** * The type of volume, currently the only valid value is `ONTAP`. */ volumeType?: string | core.StringOut; } export class OntapVolume extends core.Resource { /** * Amazon Resource Name of the volune. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * Describes the file system for the volume, e.g. `fs-12345679` */ @core.attr(String, { computed: true }) public fileSystemId!: string | core.StringOut; /** * Specifies the FlexCache endpoint type of the volume, Valid values are `NONE`, `ORIGIN`, `CACHE`. Def * ault value is `NONE`. These can be set by the ONTAP CLI or API and are use with FlexCache feature. */ @core.attr(String, { computed: true }) public flexcacheEndpointType!: string | core.StringOut; /** * Identifier of the volume, e.g., `fsvol-12345678` */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) Specifies the location in the storage virtual machine's namespace where the volume is mou * nted. The junction_path must have a leading forward slash, such as `/vol3` */ @core.attr(String) public junctionPath!: string | core.StringOut; /** * (Required) The name of the Volume. You can use a maximum of 203 alphanumeric characters, plus the un * derscore (_) special character. */ @core.attr(String) public name!: string | core.StringOut; /** * Specifies the type of volume, Valid values are `RW`, `DP`, and `LS`. Default value is `RW`. These c * an be set by the ONTAP CLI or API. This setting is used as part of migration and replication [Migrat * ing to Amazon FSx for NetApp ONTAP](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/migrating-fsx- * ontap.html) */ @core.attr(String, { computed: true }) public ontapVolumeType!: string | core.StringOut; /** * (Optional) Specifies the volume security style, Valid values are `UNIX`, `NTFS`, and `MIXED`. Defaul * t value is `UNIX`. */ @core.attr(String) public securityStyle?: string | core.StringOut; /** * (Required) Specifies the size of the volume, in megabytes (MB), that you are creating. */ @core.attr(Number) public sizeInMegabytes!: number | core.NumberOut; /** * (Required) Set to true to enable deduplication, compression, and compaction storage efficiency featu * res on the volume. */ @core.attr(Boolean) public storageEfficiencyEnabled!: boolean | core.BooleanOut; /** * (Required) Specifies the storage virtual machine in which to create the volume. */ @core.attr(String) public storageVirtualMachineId!: string | core.StringOut; /** * (Optional) A map of tags to assign to the volume. If configured with a provider [`default_tags` conf * iguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-conf * iguration-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; @core.attr(TieringPolicy) public tieringPolicy?: TieringPolicy; /** * The Volume's UUID (universally unique identifier). */ @core.attr(String, { computed: true }) public uuid!: string | core.StringOut; /** * The type of volume, currently the only valid value is `ONTAP`. */ @core.attr(String) public volumeType?: string | core.StringOut; constructor(name: string, args?: OntapVolumeArgs) { super(name, "aws_fsx_ontap_volume", args); } public override getNamespace(): string { return "aws_fsx"; } }