import * as core from "@terrascript/core"; export interface NfsArgs extends core.SchemaArgs { dnsName: string | core.StringOut; ipAddresses: core.Array | core.ArrayOut; } export class Nfs 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 SmbArgs extends core.SchemaArgs { dnsName: string | core.StringOut; ipAddresses: core.Array | core.ArrayOut; } export class Smb 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 IscsiArgs extends core.SchemaArgs { dnsName: string | core.StringOut; ipAddresses: core.Array | core.ArrayOut; } export class Iscsi 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 { iscsi: core.Array | core.ArrayOut; management: core.Array | core.ArrayOut; nfs: core.Array | core.ArrayOut; smb: core.Array | core.ArrayOut; } export class Endpoints extends core.Schema { @core.attr(Iscsi, { computed: true, kind: "array" }) public iscsi!: core.Array | core.ArrayOut; @core.attr(Management, { computed: true, kind: "array" }) public management!: core.Array | core.ArrayOut; @core.attr(Nfs, { computed: true, kind: "array" }) public nfs!: core.Array | core.ArrayOut; @core.attr(Smb, { computed: true, kind: "array" }) public smb!: core.Array | core.ArrayOut; } export interface SelfManagedActiveDirectoryConfigurationArgs extends core.SchemaArgs { dnsIps: core.Array | core.ArrayOut; domainName: string | core.StringOut; fileSystemAdministratorsGroup?: string | core.StringOut; organizationalUnitDistinguishedName?: string | core.StringOut; password: string | core.StringOut; username: string | core.StringOut; } export class SelfManagedActiveDirectoryConfiguration extends core.Schema { @core.attr(String, { kind: "array" }) public dnsIps!: core.Array | core.ArrayOut; @core.attr(String) public domainName!: string | core.StringOut; @core.attr(String) public fileSystemAdministratorsGroup?: string | core.StringOut; @core.attr(String) public organizationalUnitDistinguishedName?: string | core.StringOut; @core.attr(String) public password!: string | core.StringOut; @core.attr(String) public username!: string | core.StringOut; } export interface ActiveDirectoryConfigurationArgs extends core.SchemaArgs { netbiosName?: string | core.StringOut; selfManagedActiveDirectoryConfiguration?: SelfManagedActiveDirectoryConfiguration; } export class ActiveDirectoryConfiguration extends core.Schema { @core.attr(String) public netbiosName?: string | core.StringOut; @core.attr(SelfManagedActiveDirectoryConfiguration) public selfManagedActiveDirectoryConfiguration?: SelfManagedActiveDirectoryConfiguration; } export interface OntapStorageVirtualMachineArgs extends core.ResourceArgs { /** * (Optional) Configuration block that Amazon FSx uses to join the FSx ONTAP Storage Virtual Machine(SV * M) to your Microsoft Active Directory (AD) directory. Detailed below. */ activeDirectoryConfiguration?: ActiveDirectoryConfiguration; /** * (Required) The ID of the Amazon FSx ONTAP File System that this SVM will be created on. */ fileSystemId: string | core.StringOut; /** * (Required) The name of the SVM. You can use a maximum of 47 alphanumeric characters, plus the unders * core (_) special character. */ name: string | core.StringOut; /** * (Optional) Specifies the root volume security style, Valid values are `UNIX`, `NTFS`, and `MIXED`. A * ll volumes created under this SVM will inherit the root security style unless the security style is * specified on the volume. Default value is `UNIX`. */ rootVolumeSecurityStyle?: string | core.StringOut; svmAdminPassword?: string | core.StringOut; /** * (Optional) A map of tags to assign to the storage virtual machine. If configured with a provider [`d * efault_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 t * he 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 OntapStorageVirtualMachine extends core.Resource { /** * (Optional) Configuration block that Amazon FSx uses to join the FSx ONTAP Storage Virtual Machine(SV * M) to your Microsoft Active Directory (AD) directory. Detailed below. */ @core.attr(ActiveDirectoryConfiguration) public activeDirectoryConfiguration?: ActiveDirectoryConfiguration; /** * Amazon Resource Name of the storage virtual machine. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * The endpoints that are used to access data or to manage the storage virtual machine 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; /** * (Required) The ID of the Amazon FSx ONTAP File System that this SVM will be created on. */ @core.attr(String) public fileSystemId!: string | core.StringOut; /** * Identifier of the storage virtual machine, e.g., `svm-12345678` */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) The name of the SVM. You can use a maximum of 47 alphanumeric characters, plus the unders * core (_) special character. */ @core.attr(String) public name!: string | core.StringOut; /** * (Optional) Specifies the root volume security style, Valid values are `UNIX`, `NTFS`, and `MIXED`. A * ll volumes created under this SVM will inherit the root security style unless the security style is * specified on the volume. Default value is `UNIX`. */ @core.attr(String) public rootVolumeSecurityStyle?: string | core.StringOut; /** * Describes the SVM's subtype, e.g. `DEFAULT` */ @core.attr(String, { computed: true }) public subtype!: string | core.StringOut; @core.attr(String) public svmAdminPassword?: string | core.StringOut; /** * (Optional) A map of tags to assign to the storage virtual machine. If configured with a provider [`d * efault_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 t * he 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; /** * The SVM's UUID (universally unique identifier). */ @core.attr(String, { computed: true }) public uuid!: string | core.StringOut; constructor(name: string, args?: OntapStorageVirtualMachineArgs) { super(name, "aws_fsx_ontap_storage_virtual_machine", args); } public override getNamespace(): string { return "aws_fsx"; } }