github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/fsx/ontapVolume.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 a FSx ONTAP Volume.
    16  // See the [FSx ONTAP User Guide](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-volumes.html) for more information.
    17  //
    18  // ## Example Usage
    19  //
    20  // ### Basic Usage
    21  //
    22  // <!--Start PulumiCodeChooser -->
    23  // ```go
    24  // package main
    25  //
    26  // import (
    27  //
    28  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/fsx"
    29  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    30  //
    31  // )
    32  //
    33  //	func main() {
    34  //		pulumi.Run(func(ctx *pulumi.Context) error {
    35  //			_, err := fsx.NewOntapVolume(ctx, "test", &fsx.OntapVolumeArgs{
    36  //				Name:                     pulumi.String("test"),
    37  //				JunctionPath:             pulumi.String("/test"),
    38  //				SizeInMegabytes:          pulumi.Int(1024),
    39  //				StorageEfficiencyEnabled: pulumi.Bool(true),
    40  //				StorageVirtualMachineId:  pulumi.Any(testAwsFsxOntapStorageVirtualMachine.Id),
    41  //			})
    42  //			if err != nil {
    43  //				return err
    44  //			}
    45  //			return nil
    46  //		})
    47  //	}
    48  //
    49  // ```
    50  // <!--End PulumiCodeChooser -->
    51  //
    52  // ### Using Tiering Policy
    53  //
    54  // Additional information on tiering policy with ONTAP Volumes can be found in the [FSx ONTAP Guide](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-volumes.html).
    55  //
    56  // <!--Start PulumiCodeChooser -->
    57  // ```go
    58  // package main
    59  //
    60  // import (
    61  //
    62  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/fsx"
    63  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    64  //
    65  // )
    66  //
    67  //	func main() {
    68  //		pulumi.Run(func(ctx *pulumi.Context) error {
    69  //			_, err := fsx.NewOntapVolume(ctx, "test", &fsx.OntapVolumeArgs{
    70  //				Name:                     pulumi.String("test"),
    71  //				JunctionPath:             pulumi.String("/test"),
    72  //				SizeInMegabytes:          pulumi.Int(1024),
    73  //				StorageEfficiencyEnabled: pulumi.Bool(true),
    74  //				StorageVirtualMachineId:  pulumi.Any(testAwsFsxOntapStorageVirtualMachine.Id),
    75  //				TieringPolicy: &fsx.OntapVolumeTieringPolicyArgs{
    76  //					Name:          pulumi.String("AUTO"),
    77  //					CoolingPeriod: pulumi.Int(31),
    78  //				},
    79  //			})
    80  //			if err != nil {
    81  //				return err
    82  //			}
    83  //			return nil
    84  //		})
    85  //	}
    86  //
    87  // ```
    88  // <!--End PulumiCodeChooser -->
    89  //
    90  // ## Import
    91  //
    92  // Using `pulumi import`, import FSx ONTAP volume using the `id`. For example:
    93  //
    94  // ```sh
    95  // $ pulumi import aws:fsx/ontapVolume:OntapVolume example fsvol-12345678abcdef123
    96  // ```
    97  type OntapVolume struct {
    98  	pulumi.CustomResourceState
    99  
   100  	// Amazon Resource Name of the volune.
   101  	Arn pulumi.StringOutput `pulumi:"arn"`
   102  	// Setting this to `true` allows a SnapLock administrator to delete an FSx for ONTAP SnapLock Enterprise volume with unexpired write once, read many (WORM) files. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`.
   103  	BypassSnaplockEnterpriseRetention pulumi.BoolPtrOutput `pulumi:"bypassSnaplockEnterpriseRetention"`
   104  	// A boolean flag indicating whether tags for the volume should be copied to backups. This value defaults to `false`.
   105  	CopyTagsToBackups pulumi.BoolPtrOutput `pulumi:"copyTagsToBackups"`
   106  	// Describes the file system for the volume, e.g. `fs-12345679`
   107  	FileSystemId pulumi.StringOutput `pulumi:"fileSystemId"`
   108  	// Specifies the FlexCache endpoint type of the volume, Valid values are `NONE`, `ORIGIN`, `CACHE`. Default value is `NONE`. These can be set by the ONTAP CLI or API and are use with FlexCache feature.
   109  	FlexcacheEndpointType pulumi.StringOutput `pulumi:"flexcacheEndpointType"`
   110  	// Specifies the location in the storage virtual machine's namespace where the volume is mounted. The junctionPath must have a leading forward slash, such as `/vol3`
   111  	JunctionPath pulumi.StringPtrOutput `pulumi:"junctionPath"`
   112  	// The name of the Volume. You can use a maximum of 203 alphanumeric characters, plus the underscore (_) special character.
   113  	Name pulumi.StringOutput `pulumi:"name"`
   114  	// Specifies the type of volume, valid values are `RW`, `DP`. Default value is `RW`. These can be set by the ONTAP CLI or API. This setting is used as part of migration and replication [Migrating to Amazon FSx for NetApp ONTAP](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/migrating-fsx-ontap.html)
   115  	OntapVolumeType pulumi.StringOutput `pulumi:"ontapVolumeType"`
   116  	// Specifies the volume security style, Valid values are `UNIX`, `NTFS`, and `MIXED`.
   117  	SecurityStyle pulumi.StringOutput `pulumi:"securityStyle"`
   118  	// Specifies the size of the volume, in megabytes (MB), that you are creating.
   119  	SizeInMegabytes pulumi.IntOutput `pulumi:"sizeInMegabytes"`
   120  	// When enabled, will skip the default final backup taken when the volume is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`.
   121  	SkipFinalBackup pulumi.BoolPtrOutput `pulumi:"skipFinalBackup"`
   122  	// The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below.
   123  	SnaplockConfiguration OntapVolumeSnaplockConfigurationPtrOutput `pulumi:"snaplockConfiguration"`
   124  	// Specifies the snapshot policy for the volume. See [snapshot policies](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html#snapshot-policies) in the Amazon FSx ONTAP User Guide
   125  	SnapshotPolicy pulumi.StringOutput `pulumi:"snapshotPolicy"`
   126  	// Set to true to enable deduplication, compression, and compaction storage efficiency features on the volume.
   127  	StorageEfficiencyEnabled pulumi.BoolPtrOutput `pulumi:"storageEfficiencyEnabled"`
   128  	// Specifies the storage virtual machine in which to create the volume.
   129  	StorageVirtualMachineId pulumi.StringOutput `pulumi:"storageVirtualMachineId"`
   130  	// A map of tags to assign to the volume. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   131  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   132  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   133  	//
   134  	// Deprecated: Please use `tags` instead.
   135  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   136  	// The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below.
   137  	TieringPolicy OntapVolumeTieringPolicyPtrOutput `pulumi:"tieringPolicy"`
   138  	// The Volume's UUID (universally unique identifier).
   139  	Uuid pulumi.StringOutput `pulumi:"uuid"`
   140  	// The type of volume, currently the only valid value is `ONTAP`.
   141  	VolumeType pulumi.StringPtrOutput `pulumi:"volumeType"`
   142  }
   143  
   144  // NewOntapVolume registers a new resource with the given unique name, arguments, and options.
   145  func NewOntapVolume(ctx *pulumi.Context,
   146  	name string, args *OntapVolumeArgs, opts ...pulumi.ResourceOption) (*OntapVolume, error) {
   147  	if args == nil {
   148  		return nil, errors.New("missing one or more required arguments")
   149  	}
   150  
   151  	if args.SizeInMegabytes == nil {
   152  		return nil, errors.New("invalid value for required argument 'SizeInMegabytes'")
   153  	}
   154  	if args.StorageVirtualMachineId == nil {
   155  		return nil, errors.New("invalid value for required argument 'StorageVirtualMachineId'")
   156  	}
   157  	opts = internal.PkgResourceDefaultOpts(opts)
   158  	var resource OntapVolume
   159  	err := ctx.RegisterResource("aws:fsx/ontapVolume:OntapVolume", name, args, &resource, opts...)
   160  	if err != nil {
   161  		return nil, err
   162  	}
   163  	return &resource, nil
   164  }
   165  
   166  // GetOntapVolume gets an existing OntapVolume resource's state with the given name, ID, and optional
   167  // state properties that are used to uniquely qualify the lookup (nil if not required).
   168  func GetOntapVolume(ctx *pulumi.Context,
   169  	name string, id pulumi.IDInput, state *OntapVolumeState, opts ...pulumi.ResourceOption) (*OntapVolume, error) {
   170  	var resource OntapVolume
   171  	err := ctx.ReadResource("aws:fsx/ontapVolume:OntapVolume", name, id, state, &resource, opts...)
   172  	if err != nil {
   173  		return nil, err
   174  	}
   175  	return &resource, nil
   176  }
   177  
   178  // Input properties used for looking up and filtering OntapVolume resources.
   179  type ontapVolumeState struct {
   180  	// Amazon Resource Name of the volune.
   181  	Arn *string `pulumi:"arn"`
   182  	// Setting this to `true` allows a SnapLock administrator to delete an FSx for ONTAP SnapLock Enterprise volume with unexpired write once, read many (WORM) files. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`.
   183  	BypassSnaplockEnterpriseRetention *bool `pulumi:"bypassSnaplockEnterpriseRetention"`
   184  	// A boolean flag indicating whether tags for the volume should be copied to backups. This value defaults to `false`.
   185  	CopyTagsToBackups *bool `pulumi:"copyTagsToBackups"`
   186  	// Describes the file system for the volume, e.g. `fs-12345679`
   187  	FileSystemId *string `pulumi:"fileSystemId"`
   188  	// Specifies the FlexCache endpoint type of the volume, Valid values are `NONE`, `ORIGIN`, `CACHE`. Default value is `NONE`. These can be set by the ONTAP CLI or API and are use with FlexCache feature.
   189  	FlexcacheEndpointType *string `pulumi:"flexcacheEndpointType"`
   190  	// Specifies the location in the storage virtual machine's namespace where the volume is mounted. The junctionPath must have a leading forward slash, such as `/vol3`
   191  	JunctionPath *string `pulumi:"junctionPath"`
   192  	// The name of the Volume. You can use a maximum of 203 alphanumeric characters, plus the underscore (_) special character.
   193  	Name *string `pulumi:"name"`
   194  	// Specifies the type of volume, valid values are `RW`, `DP`. Default value is `RW`. These can be set by the ONTAP CLI or API. This setting is used as part of migration and replication [Migrating to Amazon FSx for NetApp ONTAP](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/migrating-fsx-ontap.html)
   195  	OntapVolumeType *string `pulumi:"ontapVolumeType"`
   196  	// Specifies the volume security style, Valid values are `UNIX`, `NTFS`, and `MIXED`.
   197  	SecurityStyle *string `pulumi:"securityStyle"`
   198  	// Specifies the size of the volume, in megabytes (MB), that you are creating.
   199  	SizeInMegabytes *int `pulumi:"sizeInMegabytes"`
   200  	// When enabled, will skip the default final backup taken when the volume is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`.
   201  	SkipFinalBackup *bool `pulumi:"skipFinalBackup"`
   202  	// The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below.
   203  	SnaplockConfiguration *OntapVolumeSnaplockConfiguration `pulumi:"snaplockConfiguration"`
   204  	// Specifies the snapshot policy for the volume. See [snapshot policies](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html#snapshot-policies) in the Amazon FSx ONTAP User Guide
   205  	SnapshotPolicy *string `pulumi:"snapshotPolicy"`
   206  	// Set to true to enable deduplication, compression, and compaction storage efficiency features on the volume.
   207  	StorageEfficiencyEnabled *bool `pulumi:"storageEfficiencyEnabled"`
   208  	// Specifies the storage virtual machine in which to create the volume.
   209  	StorageVirtualMachineId *string `pulumi:"storageVirtualMachineId"`
   210  	// A map of tags to assign to the volume. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   211  	Tags map[string]string `pulumi:"tags"`
   212  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   213  	//
   214  	// Deprecated: Please use `tags` instead.
   215  	TagsAll map[string]string `pulumi:"tagsAll"`
   216  	// The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below.
   217  	TieringPolicy *OntapVolumeTieringPolicy `pulumi:"tieringPolicy"`
   218  	// The Volume's UUID (universally unique identifier).
   219  	Uuid *string `pulumi:"uuid"`
   220  	// The type of volume, currently the only valid value is `ONTAP`.
   221  	VolumeType *string `pulumi:"volumeType"`
   222  }
   223  
   224  type OntapVolumeState struct {
   225  	// Amazon Resource Name of the volune.
   226  	Arn pulumi.StringPtrInput
   227  	// Setting this to `true` allows a SnapLock administrator to delete an FSx for ONTAP SnapLock Enterprise volume with unexpired write once, read many (WORM) files. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`.
   228  	BypassSnaplockEnterpriseRetention pulumi.BoolPtrInput
   229  	// A boolean flag indicating whether tags for the volume should be copied to backups. This value defaults to `false`.
   230  	CopyTagsToBackups pulumi.BoolPtrInput
   231  	// Describes the file system for the volume, e.g. `fs-12345679`
   232  	FileSystemId pulumi.StringPtrInput
   233  	// Specifies the FlexCache endpoint type of the volume, Valid values are `NONE`, `ORIGIN`, `CACHE`. Default value is `NONE`. These can be set by the ONTAP CLI or API and are use with FlexCache feature.
   234  	FlexcacheEndpointType pulumi.StringPtrInput
   235  	// Specifies the location in the storage virtual machine's namespace where the volume is mounted. The junctionPath must have a leading forward slash, such as `/vol3`
   236  	JunctionPath pulumi.StringPtrInput
   237  	// The name of the Volume. You can use a maximum of 203 alphanumeric characters, plus the underscore (_) special character.
   238  	Name pulumi.StringPtrInput
   239  	// Specifies the type of volume, valid values are `RW`, `DP`. Default value is `RW`. These can be set by the ONTAP CLI or API. This setting is used as part of migration and replication [Migrating to Amazon FSx for NetApp ONTAP](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/migrating-fsx-ontap.html)
   240  	OntapVolumeType pulumi.StringPtrInput
   241  	// Specifies the volume security style, Valid values are `UNIX`, `NTFS`, and `MIXED`.
   242  	SecurityStyle pulumi.StringPtrInput
   243  	// Specifies the size of the volume, in megabytes (MB), that you are creating.
   244  	SizeInMegabytes pulumi.IntPtrInput
   245  	// When enabled, will skip the default final backup taken when the volume is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`.
   246  	SkipFinalBackup pulumi.BoolPtrInput
   247  	// The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below.
   248  	SnaplockConfiguration OntapVolumeSnaplockConfigurationPtrInput
   249  	// Specifies the snapshot policy for the volume. See [snapshot policies](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html#snapshot-policies) in the Amazon FSx ONTAP User Guide
   250  	SnapshotPolicy pulumi.StringPtrInput
   251  	// Set to true to enable deduplication, compression, and compaction storage efficiency features on the volume.
   252  	StorageEfficiencyEnabled pulumi.BoolPtrInput
   253  	// Specifies the storage virtual machine in which to create the volume.
   254  	StorageVirtualMachineId pulumi.StringPtrInput
   255  	// A map of tags to assign to the volume. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   256  	Tags pulumi.StringMapInput
   257  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   258  	//
   259  	// Deprecated: Please use `tags` instead.
   260  	TagsAll pulumi.StringMapInput
   261  	// The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below.
   262  	TieringPolicy OntapVolumeTieringPolicyPtrInput
   263  	// The Volume's UUID (universally unique identifier).
   264  	Uuid pulumi.StringPtrInput
   265  	// The type of volume, currently the only valid value is `ONTAP`.
   266  	VolumeType pulumi.StringPtrInput
   267  }
   268  
   269  func (OntapVolumeState) ElementType() reflect.Type {
   270  	return reflect.TypeOf((*ontapVolumeState)(nil)).Elem()
   271  }
   272  
   273  type ontapVolumeArgs struct {
   274  	// Setting this to `true` allows a SnapLock administrator to delete an FSx for ONTAP SnapLock Enterprise volume with unexpired write once, read many (WORM) files. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`.
   275  	BypassSnaplockEnterpriseRetention *bool `pulumi:"bypassSnaplockEnterpriseRetention"`
   276  	// A boolean flag indicating whether tags for the volume should be copied to backups. This value defaults to `false`.
   277  	CopyTagsToBackups *bool `pulumi:"copyTagsToBackups"`
   278  	// Specifies the location in the storage virtual machine's namespace where the volume is mounted. The junctionPath must have a leading forward slash, such as `/vol3`
   279  	JunctionPath *string `pulumi:"junctionPath"`
   280  	// The name of the Volume. You can use a maximum of 203 alphanumeric characters, plus the underscore (_) special character.
   281  	Name *string `pulumi:"name"`
   282  	// Specifies the type of volume, valid values are `RW`, `DP`. Default value is `RW`. These can be set by the ONTAP CLI or API. This setting is used as part of migration and replication [Migrating to Amazon FSx for NetApp ONTAP](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/migrating-fsx-ontap.html)
   283  	OntapVolumeType *string `pulumi:"ontapVolumeType"`
   284  	// Specifies the volume security style, Valid values are `UNIX`, `NTFS`, and `MIXED`.
   285  	SecurityStyle *string `pulumi:"securityStyle"`
   286  	// Specifies the size of the volume, in megabytes (MB), that you are creating.
   287  	SizeInMegabytes int `pulumi:"sizeInMegabytes"`
   288  	// When enabled, will skip the default final backup taken when the volume is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`.
   289  	SkipFinalBackup *bool `pulumi:"skipFinalBackup"`
   290  	// The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below.
   291  	SnaplockConfiguration *OntapVolumeSnaplockConfiguration `pulumi:"snaplockConfiguration"`
   292  	// Specifies the snapshot policy for the volume. See [snapshot policies](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html#snapshot-policies) in the Amazon FSx ONTAP User Guide
   293  	SnapshotPolicy *string `pulumi:"snapshotPolicy"`
   294  	// Set to true to enable deduplication, compression, and compaction storage efficiency features on the volume.
   295  	StorageEfficiencyEnabled *bool `pulumi:"storageEfficiencyEnabled"`
   296  	// Specifies the storage virtual machine in which to create the volume.
   297  	StorageVirtualMachineId string `pulumi:"storageVirtualMachineId"`
   298  	// A map of tags to assign to the volume. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   299  	Tags map[string]string `pulumi:"tags"`
   300  	// The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below.
   301  	TieringPolicy *OntapVolumeTieringPolicy `pulumi:"tieringPolicy"`
   302  	// The type of volume, currently the only valid value is `ONTAP`.
   303  	VolumeType *string `pulumi:"volumeType"`
   304  }
   305  
   306  // The set of arguments for constructing a OntapVolume resource.
   307  type OntapVolumeArgs struct {
   308  	// Setting this to `true` allows a SnapLock administrator to delete an FSx for ONTAP SnapLock Enterprise volume with unexpired write once, read many (WORM) files. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`.
   309  	BypassSnaplockEnterpriseRetention pulumi.BoolPtrInput
   310  	// A boolean flag indicating whether tags for the volume should be copied to backups. This value defaults to `false`.
   311  	CopyTagsToBackups pulumi.BoolPtrInput
   312  	// Specifies the location in the storage virtual machine's namespace where the volume is mounted. The junctionPath must have a leading forward slash, such as `/vol3`
   313  	JunctionPath pulumi.StringPtrInput
   314  	// The name of the Volume. You can use a maximum of 203 alphanumeric characters, plus the underscore (_) special character.
   315  	Name pulumi.StringPtrInput
   316  	// Specifies the type of volume, valid values are `RW`, `DP`. Default value is `RW`. These can be set by the ONTAP CLI or API. This setting is used as part of migration and replication [Migrating to Amazon FSx for NetApp ONTAP](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/migrating-fsx-ontap.html)
   317  	OntapVolumeType pulumi.StringPtrInput
   318  	// Specifies the volume security style, Valid values are `UNIX`, `NTFS`, and `MIXED`.
   319  	SecurityStyle pulumi.StringPtrInput
   320  	// Specifies the size of the volume, in megabytes (MB), that you are creating.
   321  	SizeInMegabytes pulumi.IntInput
   322  	// When enabled, will skip the default final backup taken when the volume is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`.
   323  	SkipFinalBackup pulumi.BoolPtrInput
   324  	// The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below.
   325  	SnaplockConfiguration OntapVolumeSnaplockConfigurationPtrInput
   326  	// Specifies the snapshot policy for the volume. See [snapshot policies](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html#snapshot-policies) in the Amazon FSx ONTAP User Guide
   327  	SnapshotPolicy pulumi.StringPtrInput
   328  	// Set to true to enable deduplication, compression, and compaction storage efficiency features on the volume.
   329  	StorageEfficiencyEnabled pulumi.BoolPtrInput
   330  	// Specifies the storage virtual machine in which to create the volume.
   331  	StorageVirtualMachineId pulumi.StringInput
   332  	// A map of tags to assign to the volume. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   333  	Tags pulumi.StringMapInput
   334  	// The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below.
   335  	TieringPolicy OntapVolumeTieringPolicyPtrInput
   336  	// The type of volume, currently the only valid value is `ONTAP`.
   337  	VolumeType pulumi.StringPtrInput
   338  }
   339  
   340  func (OntapVolumeArgs) ElementType() reflect.Type {
   341  	return reflect.TypeOf((*ontapVolumeArgs)(nil)).Elem()
   342  }
   343  
   344  type OntapVolumeInput interface {
   345  	pulumi.Input
   346  
   347  	ToOntapVolumeOutput() OntapVolumeOutput
   348  	ToOntapVolumeOutputWithContext(ctx context.Context) OntapVolumeOutput
   349  }
   350  
   351  func (*OntapVolume) ElementType() reflect.Type {
   352  	return reflect.TypeOf((**OntapVolume)(nil)).Elem()
   353  }
   354  
   355  func (i *OntapVolume) ToOntapVolumeOutput() OntapVolumeOutput {
   356  	return i.ToOntapVolumeOutputWithContext(context.Background())
   357  }
   358  
   359  func (i *OntapVolume) ToOntapVolumeOutputWithContext(ctx context.Context) OntapVolumeOutput {
   360  	return pulumi.ToOutputWithContext(ctx, i).(OntapVolumeOutput)
   361  }
   362  
   363  // OntapVolumeArrayInput is an input type that accepts OntapVolumeArray and OntapVolumeArrayOutput values.
   364  // You can construct a concrete instance of `OntapVolumeArrayInput` via:
   365  //
   366  //	OntapVolumeArray{ OntapVolumeArgs{...} }
   367  type OntapVolumeArrayInput interface {
   368  	pulumi.Input
   369  
   370  	ToOntapVolumeArrayOutput() OntapVolumeArrayOutput
   371  	ToOntapVolumeArrayOutputWithContext(context.Context) OntapVolumeArrayOutput
   372  }
   373  
   374  type OntapVolumeArray []OntapVolumeInput
   375  
   376  func (OntapVolumeArray) ElementType() reflect.Type {
   377  	return reflect.TypeOf((*[]*OntapVolume)(nil)).Elem()
   378  }
   379  
   380  func (i OntapVolumeArray) ToOntapVolumeArrayOutput() OntapVolumeArrayOutput {
   381  	return i.ToOntapVolumeArrayOutputWithContext(context.Background())
   382  }
   383  
   384  func (i OntapVolumeArray) ToOntapVolumeArrayOutputWithContext(ctx context.Context) OntapVolumeArrayOutput {
   385  	return pulumi.ToOutputWithContext(ctx, i).(OntapVolumeArrayOutput)
   386  }
   387  
   388  // OntapVolumeMapInput is an input type that accepts OntapVolumeMap and OntapVolumeMapOutput values.
   389  // You can construct a concrete instance of `OntapVolumeMapInput` via:
   390  //
   391  //	OntapVolumeMap{ "key": OntapVolumeArgs{...} }
   392  type OntapVolumeMapInput interface {
   393  	pulumi.Input
   394  
   395  	ToOntapVolumeMapOutput() OntapVolumeMapOutput
   396  	ToOntapVolumeMapOutputWithContext(context.Context) OntapVolumeMapOutput
   397  }
   398  
   399  type OntapVolumeMap map[string]OntapVolumeInput
   400  
   401  func (OntapVolumeMap) ElementType() reflect.Type {
   402  	return reflect.TypeOf((*map[string]*OntapVolume)(nil)).Elem()
   403  }
   404  
   405  func (i OntapVolumeMap) ToOntapVolumeMapOutput() OntapVolumeMapOutput {
   406  	return i.ToOntapVolumeMapOutputWithContext(context.Background())
   407  }
   408  
   409  func (i OntapVolumeMap) ToOntapVolumeMapOutputWithContext(ctx context.Context) OntapVolumeMapOutput {
   410  	return pulumi.ToOutputWithContext(ctx, i).(OntapVolumeMapOutput)
   411  }
   412  
   413  type OntapVolumeOutput struct{ *pulumi.OutputState }
   414  
   415  func (OntapVolumeOutput) ElementType() reflect.Type {
   416  	return reflect.TypeOf((**OntapVolume)(nil)).Elem()
   417  }
   418  
   419  func (o OntapVolumeOutput) ToOntapVolumeOutput() OntapVolumeOutput {
   420  	return o
   421  }
   422  
   423  func (o OntapVolumeOutput) ToOntapVolumeOutputWithContext(ctx context.Context) OntapVolumeOutput {
   424  	return o
   425  }
   426  
   427  // Amazon Resource Name of the volune.
   428  func (o OntapVolumeOutput) Arn() pulumi.StringOutput {
   429  	return o.ApplyT(func(v *OntapVolume) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   430  }
   431  
   432  // Setting this to `true` allows a SnapLock administrator to delete an FSx for ONTAP SnapLock Enterprise volume with unexpired write once, read many (WORM) files. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`.
   433  func (o OntapVolumeOutput) BypassSnaplockEnterpriseRetention() pulumi.BoolPtrOutput {
   434  	return o.ApplyT(func(v *OntapVolume) pulumi.BoolPtrOutput { return v.BypassSnaplockEnterpriseRetention }).(pulumi.BoolPtrOutput)
   435  }
   436  
   437  // A boolean flag indicating whether tags for the volume should be copied to backups. This value defaults to `false`.
   438  func (o OntapVolumeOutput) CopyTagsToBackups() pulumi.BoolPtrOutput {
   439  	return o.ApplyT(func(v *OntapVolume) pulumi.BoolPtrOutput { return v.CopyTagsToBackups }).(pulumi.BoolPtrOutput)
   440  }
   441  
   442  // Describes the file system for the volume, e.g. `fs-12345679`
   443  func (o OntapVolumeOutput) FileSystemId() pulumi.StringOutput {
   444  	return o.ApplyT(func(v *OntapVolume) pulumi.StringOutput { return v.FileSystemId }).(pulumi.StringOutput)
   445  }
   446  
   447  // Specifies the FlexCache endpoint type of the volume, Valid values are `NONE`, `ORIGIN`, `CACHE`. Default value is `NONE`. These can be set by the ONTAP CLI or API and are use with FlexCache feature.
   448  func (o OntapVolumeOutput) FlexcacheEndpointType() pulumi.StringOutput {
   449  	return o.ApplyT(func(v *OntapVolume) pulumi.StringOutput { return v.FlexcacheEndpointType }).(pulumi.StringOutput)
   450  }
   451  
   452  // Specifies the location in the storage virtual machine's namespace where the volume is mounted. The junctionPath must have a leading forward slash, such as `/vol3`
   453  func (o OntapVolumeOutput) JunctionPath() pulumi.StringPtrOutput {
   454  	return o.ApplyT(func(v *OntapVolume) pulumi.StringPtrOutput { return v.JunctionPath }).(pulumi.StringPtrOutput)
   455  }
   456  
   457  // The name of the Volume. You can use a maximum of 203 alphanumeric characters, plus the underscore (_) special character.
   458  func (o OntapVolumeOutput) Name() pulumi.StringOutput {
   459  	return o.ApplyT(func(v *OntapVolume) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   460  }
   461  
   462  // Specifies the type of volume, valid values are `RW`, `DP`. Default value is `RW`. These can be set by the ONTAP CLI or API. This setting is used as part of migration and replication [Migrating to Amazon FSx for NetApp ONTAP](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/migrating-fsx-ontap.html)
   463  func (o OntapVolumeOutput) OntapVolumeType() pulumi.StringOutput {
   464  	return o.ApplyT(func(v *OntapVolume) pulumi.StringOutput { return v.OntapVolumeType }).(pulumi.StringOutput)
   465  }
   466  
   467  // Specifies the volume security style, Valid values are `UNIX`, `NTFS`, and `MIXED`.
   468  func (o OntapVolumeOutput) SecurityStyle() pulumi.StringOutput {
   469  	return o.ApplyT(func(v *OntapVolume) pulumi.StringOutput { return v.SecurityStyle }).(pulumi.StringOutput)
   470  }
   471  
   472  // Specifies the size of the volume, in megabytes (MB), that you are creating.
   473  func (o OntapVolumeOutput) SizeInMegabytes() pulumi.IntOutput {
   474  	return o.ApplyT(func(v *OntapVolume) pulumi.IntOutput { return v.SizeInMegabytes }).(pulumi.IntOutput)
   475  }
   476  
   477  // When enabled, will skip the default final backup taken when the volume is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`.
   478  func (o OntapVolumeOutput) SkipFinalBackup() pulumi.BoolPtrOutput {
   479  	return o.ApplyT(func(v *OntapVolume) pulumi.BoolPtrOutput { return v.SkipFinalBackup }).(pulumi.BoolPtrOutput)
   480  }
   481  
   482  // The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below.
   483  func (o OntapVolumeOutput) SnaplockConfiguration() OntapVolumeSnaplockConfigurationPtrOutput {
   484  	return o.ApplyT(func(v *OntapVolume) OntapVolumeSnaplockConfigurationPtrOutput { return v.SnaplockConfiguration }).(OntapVolumeSnaplockConfigurationPtrOutput)
   485  }
   486  
   487  // Specifies the snapshot policy for the volume. See [snapshot policies](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html#snapshot-policies) in the Amazon FSx ONTAP User Guide
   488  func (o OntapVolumeOutput) SnapshotPolicy() pulumi.StringOutput {
   489  	return o.ApplyT(func(v *OntapVolume) pulumi.StringOutput { return v.SnapshotPolicy }).(pulumi.StringOutput)
   490  }
   491  
   492  // Set to true to enable deduplication, compression, and compaction storage efficiency features on the volume.
   493  func (o OntapVolumeOutput) StorageEfficiencyEnabled() pulumi.BoolPtrOutput {
   494  	return o.ApplyT(func(v *OntapVolume) pulumi.BoolPtrOutput { return v.StorageEfficiencyEnabled }).(pulumi.BoolPtrOutput)
   495  }
   496  
   497  // Specifies the storage virtual machine in which to create the volume.
   498  func (o OntapVolumeOutput) StorageVirtualMachineId() pulumi.StringOutput {
   499  	return o.ApplyT(func(v *OntapVolume) pulumi.StringOutput { return v.StorageVirtualMachineId }).(pulumi.StringOutput)
   500  }
   501  
   502  // A map of tags to assign to the volume. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   503  func (o OntapVolumeOutput) Tags() pulumi.StringMapOutput {
   504  	return o.ApplyT(func(v *OntapVolume) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   505  }
   506  
   507  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   508  //
   509  // Deprecated: Please use `tags` instead.
   510  func (o OntapVolumeOutput) TagsAll() pulumi.StringMapOutput {
   511  	return o.ApplyT(func(v *OntapVolume) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   512  }
   513  
   514  // The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below.
   515  func (o OntapVolumeOutput) TieringPolicy() OntapVolumeTieringPolicyPtrOutput {
   516  	return o.ApplyT(func(v *OntapVolume) OntapVolumeTieringPolicyPtrOutput { return v.TieringPolicy }).(OntapVolumeTieringPolicyPtrOutput)
   517  }
   518  
   519  // The Volume's UUID (universally unique identifier).
   520  func (o OntapVolumeOutput) Uuid() pulumi.StringOutput {
   521  	return o.ApplyT(func(v *OntapVolume) pulumi.StringOutput { return v.Uuid }).(pulumi.StringOutput)
   522  }
   523  
   524  // The type of volume, currently the only valid value is `ONTAP`.
   525  func (o OntapVolumeOutput) VolumeType() pulumi.StringPtrOutput {
   526  	return o.ApplyT(func(v *OntapVolume) pulumi.StringPtrOutput { return v.VolumeType }).(pulumi.StringPtrOutput)
   527  }
   528  
   529  type OntapVolumeArrayOutput struct{ *pulumi.OutputState }
   530  
   531  func (OntapVolumeArrayOutput) ElementType() reflect.Type {
   532  	return reflect.TypeOf((*[]*OntapVolume)(nil)).Elem()
   533  }
   534  
   535  func (o OntapVolumeArrayOutput) ToOntapVolumeArrayOutput() OntapVolumeArrayOutput {
   536  	return o
   537  }
   538  
   539  func (o OntapVolumeArrayOutput) ToOntapVolumeArrayOutputWithContext(ctx context.Context) OntapVolumeArrayOutput {
   540  	return o
   541  }
   542  
   543  func (o OntapVolumeArrayOutput) Index(i pulumi.IntInput) OntapVolumeOutput {
   544  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *OntapVolume {
   545  		return vs[0].([]*OntapVolume)[vs[1].(int)]
   546  	}).(OntapVolumeOutput)
   547  }
   548  
   549  type OntapVolumeMapOutput struct{ *pulumi.OutputState }
   550  
   551  func (OntapVolumeMapOutput) ElementType() reflect.Type {
   552  	return reflect.TypeOf((*map[string]*OntapVolume)(nil)).Elem()
   553  }
   554  
   555  func (o OntapVolumeMapOutput) ToOntapVolumeMapOutput() OntapVolumeMapOutput {
   556  	return o
   557  }
   558  
   559  func (o OntapVolumeMapOutput) ToOntapVolumeMapOutputWithContext(ctx context.Context) OntapVolumeMapOutput {
   560  	return o
   561  }
   562  
   563  func (o OntapVolumeMapOutput) MapIndex(k pulumi.StringInput) OntapVolumeOutput {
   564  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *OntapVolume {
   565  		return vs[0].(map[string]*OntapVolume)[vs[1].(string)]
   566  	}).(OntapVolumeOutput)
   567  }
   568  
   569  func init() {
   570  	pulumi.RegisterInputType(reflect.TypeOf((*OntapVolumeInput)(nil)).Elem(), &OntapVolume{})
   571  	pulumi.RegisterInputType(reflect.TypeOf((*OntapVolumeArrayInput)(nil)).Elem(), OntapVolumeArray{})
   572  	pulumi.RegisterInputType(reflect.TypeOf((*OntapVolumeMapInput)(nil)).Elem(), OntapVolumeMap{})
   573  	pulumi.RegisterOutputType(OntapVolumeOutput{})
   574  	pulumi.RegisterOutputType(OntapVolumeArrayOutput{})
   575  	pulumi.RegisterOutputType(OntapVolumeMapOutput{})
   576  }