github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/fsx/ontapFileSystem.go (about)

     1  // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package fsx
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"errors"
    11  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    12  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    13  )
    14  
    15  // Manages an Amazon FSx for NetApp ONTAP file system.
    16  // See the [FSx ONTAP User Guide](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/what-is-fsx-ontap.html) for more information.
    17  //
    18  // ## Example Usage
    19  //
    20  // <!--Start PulumiCodeChooser -->
    21  // ```go
    22  // package main
    23  //
    24  // import (
    25  //
    26  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/fsx"
    27  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    28  //
    29  // )
    30  //
    31  //	func main() {
    32  //		pulumi.Run(func(ctx *pulumi.Context) error {
    33  //			_, err := fsx.NewOntapFileSystem(ctx, "test", &fsx.OntapFileSystemArgs{
    34  //				StorageCapacity: pulumi.Int(1024),
    35  //				SubnetIds: pulumi.StringArray{
    36  //					test1.Id,
    37  //					test2.Id,
    38  //				},
    39  //				DeploymentType:     pulumi.String("MULTI_AZ_1"),
    40  //				ThroughputCapacity: pulumi.Int(512),
    41  //				PreferredSubnetId:  pulumi.Any(test1.Id),
    42  //			})
    43  //			if err != nil {
    44  //				return err
    45  //			}
    46  //			return nil
    47  //		})
    48  //	}
    49  //
    50  // ```
    51  // <!--End PulumiCodeChooser -->
    52  //
    53  // ## Import
    54  //
    55  // Using `pulumi import`, import FSx File Systems using the `id`. For example:
    56  //
    57  // ```sh
    58  // $ pulumi import aws:fsx/ontapFileSystem:OntapFileSystem example fs-543ab12b1ca672f33
    59  // ```
    60  // Certain resource arguments, like `security_group_ids`, do not have a FSx API method for reading the information after creation. If the argument is set in the Pulumi program on an imported resource, Pulumi will always show a difference. To workaround this behavior, either omit the argument from the Pulumi program or use `ignore_changes` to hide the difference. For example:
    61  type OntapFileSystem struct {
    62  	pulumi.CustomResourceState
    63  
    64  	// Amazon Resource Name of the file system.
    65  	Arn pulumi.StringOutput `pulumi:"arn"`
    66  	// The number of days to retain automatic backups. Setting this to 0 disables automatic backups. You can retain automatic backups for a maximum of 90 days.
    67  	AutomaticBackupRetentionDays pulumi.IntPtrOutput `pulumi:"automaticBackupRetentionDays"`
    68  	// 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 `automaticBackupRetentionDays` to be set.
    69  	DailyAutomaticBackupStartTime pulumi.StringOutput `pulumi:"dailyAutomaticBackupStartTime"`
    70  	// The filesystem deployment type. Supports `MULTI_AZ_1` and `SINGLE_AZ_1`.
    71  	DeploymentType pulumi.StringOutput `pulumi:"deploymentType"`
    72  	// The SSD IOPS configuration for the Amazon FSx for NetApp ONTAP file system. See Disk Iops Configuration below.
    73  	DiskIopsConfiguration OntapFileSystemDiskIopsConfigurationOutput `pulumi:"diskIopsConfiguration"`
    74  	// The Domain Name Service (DNS) name for the file system. You can mount your file system using its DNS name.
    75  	DnsName pulumi.StringOutput `pulumi:"dnsName"`
    76  	// 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.
    77  	EndpointIpAddressRange pulumi.StringOutput `pulumi:"endpointIpAddressRange"`
    78  	// 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 below.
    79  	Endpoints OntapFileSystemEndpointArrayOutput `pulumi:"endpoints"`
    80  	// The ONTAP administrative password for the fsxadmin user that you can use to administer your file system using the ONTAP CLI and REST API.
    81  	FsxAdminPassword pulumi.StringPtrOutput `pulumi:"fsxAdminPassword"`
    82  	// The number of haPairs to deploy for the file system. Valid values are 1 through 6. Recommend only using this parameter for 2 or more ha pairs.
    83  	HaPairs pulumi.IntOutput `pulumi:"haPairs"`
    84  	// ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key.
    85  	KmsKeyId pulumi.StringOutput `pulumi:"kmsKeyId"`
    86  	// Set of Elastic Network Interface identifiers from which the file system is accessible The first network interface returned is the primary network interface.
    87  	NetworkInterfaceIds pulumi.StringArrayOutput `pulumi:"networkInterfaceIds"`
    88  	// AWS account identifier that created the file system.
    89  	OwnerId pulumi.StringOutput `pulumi:"ownerId"`
    90  	// The ID for a subnet. A subnet is a range of IP addresses in your virtual private cloud (VPC).
    91  	PreferredSubnetId pulumi.StringOutput `pulumi:"preferredSubnetId"`
    92  	// 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.
    93  	RouteTableIds pulumi.StringArrayOutput `pulumi:"routeTableIds"`
    94  	// A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces.
    95  	SecurityGroupIds pulumi.StringArrayOutput `pulumi:"securityGroupIds"`
    96  	// The storage capacity (GiB) of the file system. Valid values between `1024` and `196608`.
    97  	StorageCapacity pulumi.IntPtrOutput `pulumi:"storageCapacity"`
    98  	// The filesystem storage type. defaults to `SSD`.
    99  	StorageType pulumi.StringPtrOutput `pulumi:"storageType"`
   100  	// A list of IDs for the subnets that the file system will be accessible from. Up to 2 subnets can be provided.
   101  	SubnetIds pulumi.StringArrayOutput `pulumi:"subnetIds"`
   102  	// A map of tags to assign to the file system. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   103  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   104  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   105  	//
   106  	// Deprecated: Please use `tags` instead.
   107  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   108  	// Sets the throughput capacity (in MBps) for the file system that you're creating. Valid values are `128`, `256`, `512`, `1024`, `2048`, and `4096`. This parameter should only be used when specifying not using the haPairs parameter. Either throughputCapacity or throughputCapacityPerHaPair must be specified.
   109  	ThroughputCapacity pulumi.IntPtrOutput `pulumi:"throughputCapacity"`
   110  	// Sets the throughput capacity (in MBps) for the file system that you're creating. Valid values are `3072`,`6144`. This parameter should only be used when specifying the haPairs parameter. Either throughputCapacity or throughputCapacityPerHaPair must be specified.
   111  	ThroughputCapacityPerHaPair pulumi.IntPtrOutput `pulumi:"throughputCapacityPerHaPair"`
   112  	// Identifier of the Virtual Private Cloud for the file system.
   113  	VpcId pulumi.StringOutput `pulumi:"vpcId"`
   114  	// The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone.
   115  	WeeklyMaintenanceStartTime pulumi.StringOutput `pulumi:"weeklyMaintenanceStartTime"`
   116  }
   117  
   118  // NewOntapFileSystem registers a new resource with the given unique name, arguments, and options.
   119  func NewOntapFileSystem(ctx *pulumi.Context,
   120  	name string, args *OntapFileSystemArgs, opts ...pulumi.ResourceOption) (*OntapFileSystem, error) {
   121  	if args == nil {
   122  		return nil, errors.New("missing one or more required arguments")
   123  	}
   124  
   125  	if args.DeploymentType == nil {
   126  		return nil, errors.New("invalid value for required argument 'DeploymentType'")
   127  	}
   128  	if args.PreferredSubnetId == nil {
   129  		return nil, errors.New("invalid value for required argument 'PreferredSubnetId'")
   130  	}
   131  	if args.SubnetIds == nil {
   132  		return nil, errors.New("invalid value for required argument 'SubnetIds'")
   133  	}
   134  	if args.FsxAdminPassword != nil {
   135  		args.FsxAdminPassword = pulumi.ToSecret(args.FsxAdminPassword).(pulumi.StringPtrInput)
   136  	}
   137  	secrets := pulumi.AdditionalSecretOutputs([]string{
   138  		"fsxAdminPassword",
   139  	})
   140  	opts = append(opts, secrets)
   141  	opts = internal.PkgResourceDefaultOpts(opts)
   142  	var resource OntapFileSystem
   143  	err := ctx.RegisterResource("aws:fsx/ontapFileSystem:OntapFileSystem", name, args, &resource, opts...)
   144  	if err != nil {
   145  		return nil, err
   146  	}
   147  	return &resource, nil
   148  }
   149  
   150  // GetOntapFileSystem gets an existing OntapFileSystem resource's state with the given name, ID, and optional
   151  // state properties that are used to uniquely qualify the lookup (nil if not required).
   152  func GetOntapFileSystem(ctx *pulumi.Context,
   153  	name string, id pulumi.IDInput, state *OntapFileSystemState, opts ...pulumi.ResourceOption) (*OntapFileSystem, error) {
   154  	var resource OntapFileSystem
   155  	err := ctx.ReadResource("aws:fsx/ontapFileSystem:OntapFileSystem", name, id, state, &resource, opts...)
   156  	if err != nil {
   157  		return nil, err
   158  	}
   159  	return &resource, nil
   160  }
   161  
   162  // Input properties used for looking up and filtering OntapFileSystem resources.
   163  type ontapFileSystemState struct {
   164  	// Amazon Resource Name of the file system.
   165  	Arn *string `pulumi:"arn"`
   166  	// The number of days to retain automatic backups. Setting this to 0 disables automatic backups. You can retain automatic backups for a maximum of 90 days.
   167  	AutomaticBackupRetentionDays *int `pulumi:"automaticBackupRetentionDays"`
   168  	// 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 `automaticBackupRetentionDays` to be set.
   169  	DailyAutomaticBackupStartTime *string `pulumi:"dailyAutomaticBackupStartTime"`
   170  	// The filesystem deployment type. Supports `MULTI_AZ_1` and `SINGLE_AZ_1`.
   171  	DeploymentType *string `pulumi:"deploymentType"`
   172  	// The SSD IOPS configuration for the Amazon FSx for NetApp ONTAP file system. See Disk Iops Configuration below.
   173  	DiskIopsConfiguration *OntapFileSystemDiskIopsConfiguration `pulumi:"diskIopsConfiguration"`
   174  	// The Domain Name Service (DNS) name for the file system. You can mount your file system using its DNS name.
   175  	DnsName *string `pulumi:"dnsName"`
   176  	// 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.
   177  	EndpointIpAddressRange *string `pulumi:"endpointIpAddressRange"`
   178  	// 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 below.
   179  	Endpoints []OntapFileSystemEndpoint `pulumi:"endpoints"`
   180  	// The ONTAP administrative password for the fsxadmin user that you can use to administer your file system using the ONTAP CLI and REST API.
   181  	FsxAdminPassword *string `pulumi:"fsxAdminPassword"`
   182  	// The number of haPairs to deploy for the file system. Valid values are 1 through 6. Recommend only using this parameter for 2 or more ha pairs.
   183  	HaPairs *int `pulumi:"haPairs"`
   184  	// ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key.
   185  	KmsKeyId *string `pulumi:"kmsKeyId"`
   186  	// Set of Elastic Network Interface identifiers from which the file system is accessible The first network interface returned is the primary network interface.
   187  	NetworkInterfaceIds []string `pulumi:"networkInterfaceIds"`
   188  	// AWS account identifier that created the file system.
   189  	OwnerId *string `pulumi:"ownerId"`
   190  	// The ID for a subnet. A subnet is a range of IP addresses in your virtual private cloud (VPC).
   191  	PreferredSubnetId *string `pulumi:"preferredSubnetId"`
   192  	// 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.
   193  	RouteTableIds []string `pulumi:"routeTableIds"`
   194  	// A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces.
   195  	SecurityGroupIds []string `pulumi:"securityGroupIds"`
   196  	// The storage capacity (GiB) of the file system. Valid values between `1024` and `196608`.
   197  	StorageCapacity *int `pulumi:"storageCapacity"`
   198  	// The filesystem storage type. defaults to `SSD`.
   199  	StorageType *string `pulumi:"storageType"`
   200  	// A list of IDs for the subnets that the file system will be accessible from. Up to 2 subnets can be provided.
   201  	SubnetIds []string `pulumi:"subnetIds"`
   202  	// A map of tags to assign to the file system. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   203  	Tags map[string]string `pulumi:"tags"`
   204  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   205  	//
   206  	// Deprecated: Please use `tags` instead.
   207  	TagsAll map[string]string `pulumi:"tagsAll"`
   208  	// Sets the throughput capacity (in MBps) for the file system that you're creating. Valid values are `128`, `256`, `512`, `1024`, `2048`, and `4096`. This parameter should only be used when specifying not using the haPairs parameter. Either throughputCapacity or throughputCapacityPerHaPair must be specified.
   209  	ThroughputCapacity *int `pulumi:"throughputCapacity"`
   210  	// Sets the throughput capacity (in MBps) for the file system that you're creating. Valid values are `3072`,`6144`. This parameter should only be used when specifying the haPairs parameter. Either throughputCapacity or throughputCapacityPerHaPair must be specified.
   211  	ThroughputCapacityPerHaPair *int `pulumi:"throughputCapacityPerHaPair"`
   212  	// Identifier of the Virtual Private Cloud for the file system.
   213  	VpcId *string `pulumi:"vpcId"`
   214  	// The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone.
   215  	WeeklyMaintenanceStartTime *string `pulumi:"weeklyMaintenanceStartTime"`
   216  }
   217  
   218  type OntapFileSystemState struct {
   219  	// Amazon Resource Name of the file system.
   220  	Arn pulumi.StringPtrInput
   221  	// The number of days to retain automatic backups. Setting this to 0 disables automatic backups. You can retain automatic backups for a maximum of 90 days.
   222  	AutomaticBackupRetentionDays pulumi.IntPtrInput
   223  	// 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 `automaticBackupRetentionDays` to be set.
   224  	DailyAutomaticBackupStartTime pulumi.StringPtrInput
   225  	// The filesystem deployment type. Supports `MULTI_AZ_1` and `SINGLE_AZ_1`.
   226  	DeploymentType pulumi.StringPtrInput
   227  	// The SSD IOPS configuration for the Amazon FSx for NetApp ONTAP file system. See Disk Iops Configuration below.
   228  	DiskIopsConfiguration OntapFileSystemDiskIopsConfigurationPtrInput
   229  	// The Domain Name Service (DNS) name for the file system. You can mount your file system using its DNS name.
   230  	DnsName pulumi.StringPtrInput
   231  	// 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.
   232  	EndpointIpAddressRange pulumi.StringPtrInput
   233  	// 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 below.
   234  	Endpoints OntapFileSystemEndpointArrayInput
   235  	// The ONTAP administrative password for the fsxadmin user that you can use to administer your file system using the ONTAP CLI and REST API.
   236  	FsxAdminPassword pulumi.StringPtrInput
   237  	// The number of haPairs to deploy for the file system. Valid values are 1 through 6. Recommend only using this parameter for 2 or more ha pairs.
   238  	HaPairs pulumi.IntPtrInput
   239  	// ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key.
   240  	KmsKeyId pulumi.StringPtrInput
   241  	// Set of Elastic Network Interface identifiers from which the file system is accessible The first network interface returned is the primary network interface.
   242  	NetworkInterfaceIds pulumi.StringArrayInput
   243  	// AWS account identifier that created the file system.
   244  	OwnerId pulumi.StringPtrInput
   245  	// The ID for a subnet. A subnet is a range of IP addresses in your virtual private cloud (VPC).
   246  	PreferredSubnetId pulumi.StringPtrInput
   247  	// 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.
   248  	RouteTableIds pulumi.StringArrayInput
   249  	// A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces.
   250  	SecurityGroupIds pulumi.StringArrayInput
   251  	// The storage capacity (GiB) of the file system. Valid values between `1024` and `196608`.
   252  	StorageCapacity pulumi.IntPtrInput
   253  	// The filesystem storage type. defaults to `SSD`.
   254  	StorageType pulumi.StringPtrInput
   255  	// A list of IDs for the subnets that the file system will be accessible from. Up to 2 subnets can be provided.
   256  	SubnetIds pulumi.StringArrayInput
   257  	// A map of tags to assign to the file system. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   258  	Tags pulumi.StringMapInput
   259  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   260  	//
   261  	// Deprecated: Please use `tags` instead.
   262  	TagsAll pulumi.StringMapInput
   263  	// Sets the throughput capacity (in MBps) for the file system that you're creating. Valid values are `128`, `256`, `512`, `1024`, `2048`, and `4096`. This parameter should only be used when specifying not using the haPairs parameter. Either throughputCapacity or throughputCapacityPerHaPair must be specified.
   264  	ThroughputCapacity pulumi.IntPtrInput
   265  	// Sets the throughput capacity (in MBps) for the file system that you're creating. Valid values are `3072`,`6144`. This parameter should only be used when specifying the haPairs parameter. Either throughputCapacity or throughputCapacityPerHaPair must be specified.
   266  	ThroughputCapacityPerHaPair pulumi.IntPtrInput
   267  	// Identifier of the Virtual Private Cloud for the file system.
   268  	VpcId pulumi.StringPtrInput
   269  	// The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone.
   270  	WeeklyMaintenanceStartTime pulumi.StringPtrInput
   271  }
   272  
   273  func (OntapFileSystemState) ElementType() reflect.Type {
   274  	return reflect.TypeOf((*ontapFileSystemState)(nil)).Elem()
   275  }
   276  
   277  type ontapFileSystemArgs struct {
   278  	// The number of days to retain automatic backups. Setting this to 0 disables automatic backups. You can retain automatic backups for a maximum of 90 days.
   279  	AutomaticBackupRetentionDays *int `pulumi:"automaticBackupRetentionDays"`
   280  	// 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 `automaticBackupRetentionDays` to be set.
   281  	DailyAutomaticBackupStartTime *string `pulumi:"dailyAutomaticBackupStartTime"`
   282  	// The filesystem deployment type. Supports `MULTI_AZ_1` and `SINGLE_AZ_1`.
   283  	DeploymentType string `pulumi:"deploymentType"`
   284  	// The SSD IOPS configuration for the Amazon FSx for NetApp ONTAP file system. See Disk Iops Configuration below.
   285  	DiskIopsConfiguration *OntapFileSystemDiskIopsConfiguration `pulumi:"diskIopsConfiguration"`
   286  	// 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.
   287  	EndpointIpAddressRange *string `pulumi:"endpointIpAddressRange"`
   288  	// The ONTAP administrative password for the fsxadmin user that you can use to administer your file system using the ONTAP CLI and REST API.
   289  	FsxAdminPassword *string `pulumi:"fsxAdminPassword"`
   290  	// The number of haPairs to deploy for the file system. Valid values are 1 through 6. Recommend only using this parameter for 2 or more ha pairs.
   291  	HaPairs *int `pulumi:"haPairs"`
   292  	// ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key.
   293  	KmsKeyId *string `pulumi:"kmsKeyId"`
   294  	// The ID for a subnet. A subnet is a range of IP addresses in your virtual private cloud (VPC).
   295  	PreferredSubnetId string `pulumi:"preferredSubnetId"`
   296  	// 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.
   297  	RouteTableIds []string `pulumi:"routeTableIds"`
   298  	// A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces.
   299  	SecurityGroupIds []string `pulumi:"securityGroupIds"`
   300  	// The storage capacity (GiB) of the file system. Valid values between `1024` and `196608`.
   301  	StorageCapacity *int `pulumi:"storageCapacity"`
   302  	// The filesystem storage type. defaults to `SSD`.
   303  	StorageType *string `pulumi:"storageType"`
   304  	// A list of IDs for the subnets that the file system will be accessible from. Up to 2 subnets can be provided.
   305  	SubnetIds []string `pulumi:"subnetIds"`
   306  	// A map of tags to assign to the file system. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   307  	Tags map[string]string `pulumi:"tags"`
   308  	// Sets the throughput capacity (in MBps) for the file system that you're creating. Valid values are `128`, `256`, `512`, `1024`, `2048`, and `4096`. This parameter should only be used when specifying not using the haPairs parameter. Either throughputCapacity or throughputCapacityPerHaPair must be specified.
   309  	ThroughputCapacity *int `pulumi:"throughputCapacity"`
   310  	// Sets the throughput capacity (in MBps) for the file system that you're creating. Valid values are `3072`,`6144`. This parameter should only be used when specifying the haPairs parameter. Either throughputCapacity or throughputCapacityPerHaPair must be specified.
   311  	ThroughputCapacityPerHaPair *int `pulumi:"throughputCapacityPerHaPair"`
   312  	// The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone.
   313  	WeeklyMaintenanceStartTime *string `pulumi:"weeklyMaintenanceStartTime"`
   314  }
   315  
   316  // The set of arguments for constructing a OntapFileSystem resource.
   317  type OntapFileSystemArgs struct {
   318  	// The number of days to retain automatic backups. Setting this to 0 disables automatic backups. You can retain automatic backups for a maximum of 90 days.
   319  	AutomaticBackupRetentionDays pulumi.IntPtrInput
   320  	// 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 `automaticBackupRetentionDays` to be set.
   321  	DailyAutomaticBackupStartTime pulumi.StringPtrInput
   322  	// The filesystem deployment type. Supports `MULTI_AZ_1` and `SINGLE_AZ_1`.
   323  	DeploymentType pulumi.StringInput
   324  	// The SSD IOPS configuration for the Amazon FSx for NetApp ONTAP file system. See Disk Iops Configuration below.
   325  	DiskIopsConfiguration OntapFileSystemDiskIopsConfigurationPtrInput
   326  	// 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.
   327  	EndpointIpAddressRange pulumi.StringPtrInput
   328  	// The ONTAP administrative password for the fsxadmin user that you can use to administer your file system using the ONTAP CLI and REST API.
   329  	FsxAdminPassword pulumi.StringPtrInput
   330  	// The number of haPairs to deploy for the file system. Valid values are 1 through 6. Recommend only using this parameter for 2 or more ha pairs.
   331  	HaPairs pulumi.IntPtrInput
   332  	// ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key.
   333  	KmsKeyId pulumi.StringPtrInput
   334  	// The ID for a subnet. A subnet is a range of IP addresses in your virtual private cloud (VPC).
   335  	PreferredSubnetId pulumi.StringInput
   336  	// 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.
   337  	RouteTableIds pulumi.StringArrayInput
   338  	// A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces.
   339  	SecurityGroupIds pulumi.StringArrayInput
   340  	// The storage capacity (GiB) of the file system. Valid values between `1024` and `196608`.
   341  	StorageCapacity pulumi.IntPtrInput
   342  	// The filesystem storage type. defaults to `SSD`.
   343  	StorageType pulumi.StringPtrInput
   344  	// A list of IDs for the subnets that the file system will be accessible from. Up to 2 subnets can be provided.
   345  	SubnetIds pulumi.StringArrayInput
   346  	// A map of tags to assign to the file system. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   347  	Tags pulumi.StringMapInput
   348  	// Sets the throughput capacity (in MBps) for the file system that you're creating. Valid values are `128`, `256`, `512`, `1024`, `2048`, and `4096`. This parameter should only be used when specifying not using the haPairs parameter. Either throughputCapacity or throughputCapacityPerHaPair must be specified.
   349  	ThroughputCapacity pulumi.IntPtrInput
   350  	// Sets the throughput capacity (in MBps) for the file system that you're creating. Valid values are `3072`,`6144`. This parameter should only be used when specifying the haPairs parameter. Either throughputCapacity or throughputCapacityPerHaPair must be specified.
   351  	ThroughputCapacityPerHaPair pulumi.IntPtrInput
   352  	// The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone.
   353  	WeeklyMaintenanceStartTime pulumi.StringPtrInput
   354  }
   355  
   356  func (OntapFileSystemArgs) ElementType() reflect.Type {
   357  	return reflect.TypeOf((*ontapFileSystemArgs)(nil)).Elem()
   358  }
   359  
   360  type OntapFileSystemInput interface {
   361  	pulumi.Input
   362  
   363  	ToOntapFileSystemOutput() OntapFileSystemOutput
   364  	ToOntapFileSystemOutputWithContext(ctx context.Context) OntapFileSystemOutput
   365  }
   366  
   367  func (*OntapFileSystem) ElementType() reflect.Type {
   368  	return reflect.TypeOf((**OntapFileSystem)(nil)).Elem()
   369  }
   370  
   371  func (i *OntapFileSystem) ToOntapFileSystemOutput() OntapFileSystemOutput {
   372  	return i.ToOntapFileSystemOutputWithContext(context.Background())
   373  }
   374  
   375  func (i *OntapFileSystem) ToOntapFileSystemOutputWithContext(ctx context.Context) OntapFileSystemOutput {
   376  	return pulumi.ToOutputWithContext(ctx, i).(OntapFileSystemOutput)
   377  }
   378  
   379  // OntapFileSystemArrayInput is an input type that accepts OntapFileSystemArray and OntapFileSystemArrayOutput values.
   380  // You can construct a concrete instance of `OntapFileSystemArrayInput` via:
   381  //
   382  //	OntapFileSystemArray{ OntapFileSystemArgs{...} }
   383  type OntapFileSystemArrayInput interface {
   384  	pulumi.Input
   385  
   386  	ToOntapFileSystemArrayOutput() OntapFileSystemArrayOutput
   387  	ToOntapFileSystemArrayOutputWithContext(context.Context) OntapFileSystemArrayOutput
   388  }
   389  
   390  type OntapFileSystemArray []OntapFileSystemInput
   391  
   392  func (OntapFileSystemArray) ElementType() reflect.Type {
   393  	return reflect.TypeOf((*[]*OntapFileSystem)(nil)).Elem()
   394  }
   395  
   396  func (i OntapFileSystemArray) ToOntapFileSystemArrayOutput() OntapFileSystemArrayOutput {
   397  	return i.ToOntapFileSystemArrayOutputWithContext(context.Background())
   398  }
   399  
   400  func (i OntapFileSystemArray) ToOntapFileSystemArrayOutputWithContext(ctx context.Context) OntapFileSystemArrayOutput {
   401  	return pulumi.ToOutputWithContext(ctx, i).(OntapFileSystemArrayOutput)
   402  }
   403  
   404  // OntapFileSystemMapInput is an input type that accepts OntapFileSystemMap and OntapFileSystemMapOutput values.
   405  // You can construct a concrete instance of `OntapFileSystemMapInput` via:
   406  //
   407  //	OntapFileSystemMap{ "key": OntapFileSystemArgs{...} }
   408  type OntapFileSystemMapInput interface {
   409  	pulumi.Input
   410  
   411  	ToOntapFileSystemMapOutput() OntapFileSystemMapOutput
   412  	ToOntapFileSystemMapOutputWithContext(context.Context) OntapFileSystemMapOutput
   413  }
   414  
   415  type OntapFileSystemMap map[string]OntapFileSystemInput
   416  
   417  func (OntapFileSystemMap) ElementType() reflect.Type {
   418  	return reflect.TypeOf((*map[string]*OntapFileSystem)(nil)).Elem()
   419  }
   420  
   421  func (i OntapFileSystemMap) ToOntapFileSystemMapOutput() OntapFileSystemMapOutput {
   422  	return i.ToOntapFileSystemMapOutputWithContext(context.Background())
   423  }
   424  
   425  func (i OntapFileSystemMap) ToOntapFileSystemMapOutputWithContext(ctx context.Context) OntapFileSystemMapOutput {
   426  	return pulumi.ToOutputWithContext(ctx, i).(OntapFileSystemMapOutput)
   427  }
   428  
   429  type OntapFileSystemOutput struct{ *pulumi.OutputState }
   430  
   431  func (OntapFileSystemOutput) ElementType() reflect.Type {
   432  	return reflect.TypeOf((**OntapFileSystem)(nil)).Elem()
   433  }
   434  
   435  func (o OntapFileSystemOutput) ToOntapFileSystemOutput() OntapFileSystemOutput {
   436  	return o
   437  }
   438  
   439  func (o OntapFileSystemOutput) ToOntapFileSystemOutputWithContext(ctx context.Context) OntapFileSystemOutput {
   440  	return o
   441  }
   442  
   443  // Amazon Resource Name of the file system.
   444  func (o OntapFileSystemOutput) Arn() pulumi.StringOutput {
   445  	return o.ApplyT(func(v *OntapFileSystem) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   446  }
   447  
   448  // The number of days to retain automatic backups. Setting this to 0 disables automatic backups. You can retain automatic backups for a maximum of 90 days.
   449  func (o OntapFileSystemOutput) AutomaticBackupRetentionDays() pulumi.IntPtrOutput {
   450  	return o.ApplyT(func(v *OntapFileSystem) pulumi.IntPtrOutput { return v.AutomaticBackupRetentionDays }).(pulumi.IntPtrOutput)
   451  }
   452  
   453  // 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 `automaticBackupRetentionDays` to be set.
   454  func (o OntapFileSystemOutput) DailyAutomaticBackupStartTime() pulumi.StringOutput {
   455  	return o.ApplyT(func(v *OntapFileSystem) pulumi.StringOutput { return v.DailyAutomaticBackupStartTime }).(pulumi.StringOutput)
   456  }
   457  
   458  // The filesystem deployment type. Supports `MULTI_AZ_1` and `SINGLE_AZ_1`.
   459  func (o OntapFileSystemOutput) DeploymentType() pulumi.StringOutput {
   460  	return o.ApplyT(func(v *OntapFileSystem) pulumi.StringOutput { return v.DeploymentType }).(pulumi.StringOutput)
   461  }
   462  
   463  // The SSD IOPS configuration for the Amazon FSx for NetApp ONTAP file system. See Disk Iops Configuration below.
   464  func (o OntapFileSystemOutput) DiskIopsConfiguration() OntapFileSystemDiskIopsConfigurationOutput {
   465  	return o.ApplyT(func(v *OntapFileSystem) OntapFileSystemDiskIopsConfigurationOutput { return v.DiskIopsConfiguration }).(OntapFileSystemDiskIopsConfigurationOutput)
   466  }
   467  
   468  // The Domain Name Service (DNS) name for the file system. You can mount your file system using its DNS name.
   469  func (o OntapFileSystemOutput) DnsName() pulumi.StringOutput {
   470  	return o.ApplyT(func(v *OntapFileSystem) pulumi.StringOutput { return v.DnsName }).(pulumi.StringOutput)
   471  }
   472  
   473  // 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.
   474  func (o OntapFileSystemOutput) EndpointIpAddressRange() pulumi.StringOutput {
   475  	return o.ApplyT(func(v *OntapFileSystem) pulumi.StringOutput { return v.EndpointIpAddressRange }).(pulumi.StringOutput)
   476  }
   477  
   478  // 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 below.
   479  func (o OntapFileSystemOutput) Endpoints() OntapFileSystemEndpointArrayOutput {
   480  	return o.ApplyT(func(v *OntapFileSystem) OntapFileSystemEndpointArrayOutput { return v.Endpoints }).(OntapFileSystemEndpointArrayOutput)
   481  }
   482  
   483  // The ONTAP administrative password for the fsxadmin user that you can use to administer your file system using the ONTAP CLI and REST API.
   484  func (o OntapFileSystemOutput) FsxAdminPassword() pulumi.StringPtrOutput {
   485  	return o.ApplyT(func(v *OntapFileSystem) pulumi.StringPtrOutput { return v.FsxAdminPassword }).(pulumi.StringPtrOutput)
   486  }
   487  
   488  // The number of haPairs to deploy for the file system. Valid values are 1 through 6. Recommend only using this parameter for 2 or more ha pairs.
   489  func (o OntapFileSystemOutput) HaPairs() pulumi.IntOutput {
   490  	return o.ApplyT(func(v *OntapFileSystem) pulumi.IntOutput { return v.HaPairs }).(pulumi.IntOutput)
   491  }
   492  
   493  // ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key.
   494  func (o OntapFileSystemOutput) KmsKeyId() pulumi.StringOutput {
   495  	return o.ApplyT(func(v *OntapFileSystem) pulumi.StringOutput { return v.KmsKeyId }).(pulumi.StringOutput)
   496  }
   497  
   498  // Set of Elastic Network Interface identifiers from which the file system is accessible The first network interface returned is the primary network interface.
   499  func (o OntapFileSystemOutput) NetworkInterfaceIds() pulumi.StringArrayOutput {
   500  	return o.ApplyT(func(v *OntapFileSystem) pulumi.StringArrayOutput { return v.NetworkInterfaceIds }).(pulumi.StringArrayOutput)
   501  }
   502  
   503  // AWS account identifier that created the file system.
   504  func (o OntapFileSystemOutput) OwnerId() pulumi.StringOutput {
   505  	return o.ApplyT(func(v *OntapFileSystem) pulumi.StringOutput { return v.OwnerId }).(pulumi.StringOutput)
   506  }
   507  
   508  // The ID for a subnet. A subnet is a range of IP addresses in your virtual private cloud (VPC).
   509  func (o OntapFileSystemOutput) PreferredSubnetId() pulumi.StringOutput {
   510  	return o.ApplyT(func(v *OntapFileSystem) pulumi.StringOutput { return v.PreferredSubnetId }).(pulumi.StringOutput)
   511  }
   512  
   513  // 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.
   514  func (o OntapFileSystemOutput) RouteTableIds() pulumi.StringArrayOutput {
   515  	return o.ApplyT(func(v *OntapFileSystem) pulumi.StringArrayOutput { return v.RouteTableIds }).(pulumi.StringArrayOutput)
   516  }
   517  
   518  // A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces.
   519  func (o OntapFileSystemOutput) SecurityGroupIds() pulumi.StringArrayOutput {
   520  	return o.ApplyT(func(v *OntapFileSystem) pulumi.StringArrayOutput { return v.SecurityGroupIds }).(pulumi.StringArrayOutput)
   521  }
   522  
   523  // The storage capacity (GiB) of the file system. Valid values between `1024` and `196608`.
   524  func (o OntapFileSystemOutput) StorageCapacity() pulumi.IntPtrOutput {
   525  	return o.ApplyT(func(v *OntapFileSystem) pulumi.IntPtrOutput { return v.StorageCapacity }).(pulumi.IntPtrOutput)
   526  }
   527  
   528  // The filesystem storage type. defaults to `SSD`.
   529  func (o OntapFileSystemOutput) StorageType() pulumi.StringPtrOutput {
   530  	return o.ApplyT(func(v *OntapFileSystem) pulumi.StringPtrOutput { return v.StorageType }).(pulumi.StringPtrOutput)
   531  }
   532  
   533  // A list of IDs for the subnets that the file system will be accessible from. Up to 2 subnets can be provided.
   534  func (o OntapFileSystemOutput) SubnetIds() pulumi.StringArrayOutput {
   535  	return o.ApplyT(func(v *OntapFileSystem) pulumi.StringArrayOutput { return v.SubnetIds }).(pulumi.StringArrayOutput)
   536  }
   537  
   538  // A map of tags to assign to the file system. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   539  func (o OntapFileSystemOutput) Tags() pulumi.StringMapOutput {
   540  	return o.ApplyT(func(v *OntapFileSystem) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   541  }
   542  
   543  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   544  //
   545  // Deprecated: Please use `tags` instead.
   546  func (o OntapFileSystemOutput) TagsAll() pulumi.StringMapOutput {
   547  	return o.ApplyT(func(v *OntapFileSystem) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   548  }
   549  
   550  // Sets the throughput capacity (in MBps) for the file system that you're creating. Valid values are `128`, `256`, `512`, `1024`, `2048`, and `4096`. This parameter should only be used when specifying not using the haPairs parameter. Either throughputCapacity or throughputCapacityPerHaPair must be specified.
   551  func (o OntapFileSystemOutput) ThroughputCapacity() pulumi.IntPtrOutput {
   552  	return o.ApplyT(func(v *OntapFileSystem) pulumi.IntPtrOutput { return v.ThroughputCapacity }).(pulumi.IntPtrOutput)
   553  }
   554  
   555  // Sets the throughput capacity (in MBps) for the file system that you're creating. Valid values are `3072`,`6144`. This parameter should only be used when specifying the haPairs parameter. Either throughputCapacity or throughputCapacityPerHaPair must be specified.
   556  func (o OntapFileSystemOutput) ThroughputCapacityPerHaPair() pulumi.IntPtrOutput {
   557  	return o.ApplyT(func(v *OntapFileSystem) pulumi.IntPtrOutput { return v.ThroughputCapacityPerHaPair }).(pulumi.IntPtrOutput)
   558  }
   559  
   560  // Identifier of the Virtual Private Cloud for the file system.
   561  func (o OntapFileSystemOutput) VpcId() pulumi.StringOutput {
   562  	return o.ApplyT(func(v *OntapFileSystem) pulumi.StringOutput { return v.VpcId }).(pulumi.StringOutput)
   563  }
   564  
   565  // The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone.
   566  func (o OntapFileSystemOutput) WeeklyMaintenanceStartTime() pulumi.StringOutput {
   567  	return o.ApplyT(func(v *OntapFileSystem) pulumi.StringOutput { return v.WeeklyMaintenanceStartTime }).(pulumi.StringOutput)
   568  }
   569  
   570  type OntapFileSystemArrayOutput struct{ *pulumi.OutputState }
   571  
   572  func (OntapFileSystemArrayOutput) ElementType() reflect.Type {
   573  	return reflect.TypeOf((*[]*OntapFileSystem)(nil)).Elem()
   574  }
   575  
   576  func (o OntapFileSystemArrayOutput) ToOntapFileSystemArrayOutput() OntapFileSystemArrayOutput {
   577  	return o
   578  }
   579  
   580  func (o OntapFileSystemArrayOutput) ToOntapFileSystemArrayOutputWithContext(ctx context.Context) OntapFileSystemArrayOutput {
   581  	return o
   582  }
   583  
   584  func (o OntapFileSystemArrayOutput) Index(i pulumi.IntInput) OntapFileSystemOutput {
   585  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *OntapFileSystem {
   586  		return vs[0].([]*OntapFileSystem)[vs[1].(int)]
   587  	}).(OntapFileSystemOutput)
   588  }
   589  
   590  type OntapFileSystemMapOutput struct{ *pulumi.OutputState }
   591  
   592  func (OntapFileSystemMapOutput) ElementType() reflect.Type {
   593  	return reflect.TypeOf((*map[string]*OntapFileSystem)(nil)).Elem()
   594  }
   595  
   596  func (o OntapFileSystemMapOutput) ToOntapFileSystemMapOutput() OntapFileSystemMapOutput {
   597  	return o
   598  }
   599  
   600  func (o OntapFileSystemMapOutput) ToOntapFileSystemMapOutputWithContext(ctx context.Context) OntapFileSystemMapOutput {
   601  	return o
   602  }
   603  
   604  func (o OntapFileSystemMapOutput) MapIndex(k pulumi.StringInput) OntapFileSystemOutput {
   605  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *OntapFileSystem {
   606  		return vs[0].(map[string]*OntapFileSystem)[vs[1].(string)]
   607  	}).(OntapFileSystemOutput)
   608  }
   609  
   610  func init() {
   611  	pulumi.RegisterInputType(reflect.TypeOf((*OntapFileSystemInput)(nil)).Elem(), &OntapFileSystem{})
   612  	pulumi.RegisterInputType(reflect.TypeOf((*OntapFileSystemArrayInput)(nil)).Elem(), OntapFileSystemArray{})
   613  	pulumi.RegisterInputType(reflect.TypeOf((*OntapFileSystemMapInput)(nil)).Elem(), OntapFileSystemMap{})
   614  	pulumi.RegisterOutputType(OntapFileSystemOutput{})
   615  	pulumi.RegisterOutputType(OntapFileSystemArrayOutput{})
   616  	pulumi.RegisterOutputType(OntapFileSystemMapOutput{})
   617  }