github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/fsx/openZfsVolume.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 OpenZFS volume.
    16  // See the [FSx OpenZFS User Guide](https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/what-is-fsx.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.NewOpenZfsVolume(ctx, "test", &fsx.OpenZfsVolumeArgs{
    34  //				Name:           pulumi.String("testvolume"),
    35  //				ParentVolumeId: pulumi.Any(testAwsFsxOpenzfsFileSystem.RootVolumeId),
    36  //			})
    37  //			if err != nil {
    38  //				return err
    39  //			}
    40  //			return nil
    41  //		})
    42  //	}
    43  //
    44  // ```
    45  // <!--End PulumiCodeChooser -->
    46  //
    47  // ## Import
    48  //
    49  // Using `pulumi import`, import FSx Volumes using the `id`. For example:
    50  //
    51  // ```sh
    52  // $ pulumi import aws:fsx/openZfsVolume:OpenZfsVolume example fsvol-543ab12b1ca672f33
    53  // ```
    54  type OpenZfsVolume struct {
    55  	pulumi.CustomResourceState
    56  
    57  	// Amazon Resource Name of the file system.
    58  	Arn pulumi.StringOutput `pulumi:"arn"`
    59  	// A boolean flag indicating whether tags for the file system should be copied to snapshots. The default value is false.
    60  	CopyTagsToSnapshots pulumi.BoolPtrOutput `pulumi:"copyTagsToSnapshots"`
    61  	// Method used to compress the data on the volume. Valid values are `NONE` or `ZSTD`. Child volumes that don't specify compression option will inherit from parent volume. This option on file system applies to the root volume.
    62  	DataCompressionType pulumi.StringPtrOutput `pulumi:"dataCompressionType"`
    63  	// Whether to delete all child volumes and snapshots. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. This configuration must be applied separately before attempting to delete the resource to have the desired behavior..
    64  	DeleteVolumeOptions pulumi.StringPtrOutput `pulumi:"deleteVolumeOptions"`
    65  	// The name of the Volume. You can use a maximum of 203 alphanumeric characters, plus the underscore (_) special character.
    66  	Name pulumi.StringOutput `pulumi:"name"`
    67  	// NFS export configuration for the root volume. Exactly 1 item. See `nfsExports` Block Below for details.
    68  	NfsExports OpenZfsVolumeNfsExportsPtrOutput `pulumi:"nfsExports"`
    69  	// Specifies the configuration to use when creating the OpenZFS volume. See `originSnapshot` Block below for details.
    70  	OriginSnapshot OpenZfsVolumeOriginSnapshotPtrOutput `pulumi:"originSnapshot"`
    71  	// The volume id of volume that will be the parent volume for the volume being created, this could be the root volume created from the `fsx.OpenZfsFileSystem` resource with the `rootVolumeId` or the `id` property of another `fsx.OpenZfsVolume`.
    72  	ParentVolumeId pulumi.StringOutput `pulumi:"parentVolumeId"`
    73  	// specifies whether the volume is read-only. Default is false.
    74  	ReadOnly pulumi.BoolOutput `pulumi:"readOnly"`
    75  	// The record size of an OpenZFS volume, in kibibytes (KiB). Valid values are `4`, `8`, `16`, `32`, `64`, `128`, `256`, `512`, or `1024` KiB. The default is `128` KiB.
    76  	RecordSizeKib pulumi.IntPtrOutput `pulumi:"recordSizeKib"`
    77  	// The maximum amount of storage in gibibytes (GiB) that the volume can use from its parent.
    78  	StorageCapacityQuotaGib pulumi.IntOutput `pulumi:"storageCapacityQuotaGib"`
    79  	// The amount of storage in gibibytes (GiB) to reserve from the parent volume.
    80  	StorageCapacityReservationGib pulumi.IntOutput `pulumi:"storageCapacityReservationGib"`
    81  	// 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.
    82  	Tags pulumi.StringMapOutput `pulumi:"tags"`
    83  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
    84  	//
    85  	// Deprecated: Please use `tags` instead.
    86  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
    87  	// Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `userAndGroupQuotas` Block Below.
    88  	UserAndGroupQuotas OpenZfsVolumeUserAndGroupQuotaArrayOutput `pulumi:"userAndGroupQuotas"`
    89  	VolumeType         pulumi.StringPtrOutput                    `pulumi:"volumeType"`
    90  }
    91  
    92  // NewOpenZfsVolume registers a new resource with the given unique name, arguments, and options.
    93  func NewOpenZfsVolume(ctx *pulumi.Context,
    94  	name string, args *OpenZfsVolumeArgs, opts ...pulumi.ResourceOption) (*OpenZfsVolume, error) {
    95  	if args == nil {
    96  		return nil, errors.New("missing one or more required arguments")
    97  	}
    98  
    99  	if args.ParentVolumeId == nil {
   100  		return nil, errors.New("invalid value for required argument 'ParentVolumeId'")
   101  	}
   102  	opts = internal.PkgResourceDefaultOpts(opts)
   103  	var resource OpenZfsVolume
   104  	err := ctx.RegisterResource("aws:fsx/openZfsVolume:OpenZfsVolume", name, args, &resource, opts...)
   105  	if err != nil {
   106  		return nil, err
   107  	}
   108  	return &resource, nil
   109  }
   110  
   111  // GetOpenZfsVolume gets an existing OpenZfsVolume resource's state with the given name, ID, and optional
   112  // state properties that are used to uniquely qualify the lookup (nil if not required).
   113  func GetOpenZfsVolume(ctx *pulumi.Context,
   114  	name string, id pulumi.IDInput, state *OpenZfsVolumeState, opts ...pulumi.ResourceOption) (*OpenZfsVolume, error) {
   115  	var resource OpenZfsVolume
   116  	err := ctx.ReadResource("aws:fsx/openZfsVolume:OpenZfsVolume", name, id, state, &resource, opts...)
   117  	if err != nil {
   118  		return nil, err
   119  	}
   120  	return &resource, nil
   121  }
   122  
   123  // Input properties used for looking up and filtering OpenZfsVolume resources.
   124  type openZfsVolumeState struct {
   125  	// Amazon Resource Name of the file system.
   126  	Arn *string `pulumi:"arn"`
   127  	// A boolean flag indicating whether tags for the file system should be copied to snapshots. The default value is false.
   128  	CopyTagsToSnapshots *bool `pulumi:"copyTagsToSnapshots"`
   129  	// Method used to compress the data on the volume. Valid values are `NONE` or `ZSTD`. Child volumes that don't specify compression option will inherit from parent volume. This option on file system applies to the root volume.
   130  	DataCompressionType *string `pulumi:"dataCompressionType"`
   131  	// Whether to delete all child volumes and snapshots. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. This configuration must be applied separately before attempting to delete the resource to have the desired behavior..
   132  	DeleteVolumeOptions *string `pulumi:"deleteVolumeOptions"`
   133  	// The name of the Volume. You can use a maximum of 203 alphanumeric characters, plus the underscore (_) special character.
   134  	Name *string `pulumi:"name"`
   135  	// NFS export configuration for the root volume. Exactly 1 item. See `nfsExports` Block Below for details.
   136  	NfsExports *OpenZfsVolumeNfsExports `pulumi:"nfsExports"`
   137  	// Specifies the configuration to use when creating the OpenZFS volume. See `originSnapshot` Block below for details.
   138  	OriginSnapshot *OpenZfsVolumeOriginSnapshot `pulumi:"originSnapshot"`
   139  	// The volume id of volume that will be the parent volume for the volume being created, this could be the root volume created from the `fsx.OpenZfsFileSystem` resource with the `rootVolumeId` or the `id` property of another `fsx.OpenZfsVolume`.
   140  	ParentVolumeId *string `pulumi:"parentVolumeId"`
   141  	// specifies whether the volume is read-only. Default is false.
   142  	ReadOnly *bool `pulumi:"readOnly"`
   143  	// The record size of an OpenZFS volume, in kibibytes (KiB). Valid values are `4`, `8`, `16`, `32`, `64`, `128`, `256`, `512`, or `1024` KiB. The default is `128` KiB.
   144  	RecordSizeKib *int `pulumi:"recordSizeKib"`
   145  	// The maximum amount of storage in gibibytes (GiB) that the volume can use from its parent.
   146  	StorageCapacityQuotaGib *int `pulumi:"storageCapacityQuotaGib"`
   147  	// The amount of storage in gibibytes (GiB) to reserve from the parent volume.
   148  	StorageCapacityReservationGib *int `pulumi:"storageCapacityReservationGib"`
   149  	// 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.
   150  	Tags map[string]string `pulumi:"tags"`
   151  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   152  	//
   153  	// Deprecated: Please use `tags` instead.
   154  	TagsAll map[string]string `pulumi:"tagsAll"`
   155  	// Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `userAndGroupQuotas` Block Below.
   156  	UserAndGroupQuotas []OpenZfsVolumeUserAndGroupQuota `pulumi:"userAndGroupQuotas"`
   157  	VolumeType         *string                          `pulumi:"volumeType"`
   158  }
   159  
   160  type OpenZfsVolumeState struct {
   161  	// Amazon Resource Name of the file system.
   162  	Arn pulumi.StringPtrInput
   163  	// A boolean flag indicating whether tags for the file system should be copied to snapshots. The default value is false.
   164  	CopyTagsToSnapshots pulumi.BoolPtrInput
   165  	// Method used to compress the data on the volume. Valid values are `NONE` or `ZSTD`. Child volumes that don't specify compression option will inherit from parent volume. This option on file system applies to the root volume.
   166  	DataCompressionType pulumi.StringPtrInput
   167  	// Whether to delete all child volumes and snapshots. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. This configuration must be applied separately before attempting to delete the resource to have the desired behavior..
   168  	DeleteVolumeOptions pulumi.StringPtrInput
   169  	// The name of the Volume. You can use a maximum of 203 alphanumeric characters, plus the underscore (_) special character.
   170  	Name pulumi.StringPtrInput
   171  	// NFS export configuration for the root volume. Exactly 1 item. See `nfsExports` Block Below for details.
   172  	NfsExports OpenZfsVolumeNfsExportsPtrInput
   173  	// Specifies the configuration to use when creating the OpenZFS volume. See `originSnapshot` Block below for details.
   174  	OriginSnapshot OpenZfsVolumeOriginSnapshotPtrInput
   175  	// The volume id of volume that will be the parent volume for the volume being created, this could be the root volume created from the `fsx.OpenZfsFileSystem` resource with the `rootVolumeId` or the `id` property of another `fsx.OpenZfsVolume`.
   176  	ParentVolumeId pulumi.StringPtrInput
   177  	// specifies whether the volume is read-only. Default is false.
   178  	ReadOnly pulumi.BoolPtrInput
   179  	// The record size of an OpenZFS volume, in kibibytes (KiB). Valid values are `4`, `8`, `16`, `32`, `64`, `128`, `256`, `512`, or `1024` KiB. The default is `128` KiB.
   180  	RecordSizeKib pulumi.IntPtrInput
   181  	// The maximum amount of storage in gibibytes (GiB) that the volume can use from its parent.
   182  	StorageCapacityQuotaGib pulumi.IntPtrInput
   183  	// The amount of storage in gibibytes (GiB) to reserve from the parent volume.
   184  	StorageCapacityReservationGib pulumi.IntPtrInput
   185  	// 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.
   186  	Tags pulumi.StringMapInput
   187  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   188  	//
   189  	// Deprecated: Please use `tags` instead.
   190  	TagsAll pulumi.StringMapInput
   191  	// Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `userAndGroupQuotas` Block Below.
   192  	UserAndGroupQuotas OpenZfsVolumeUserAndGroupQuotaArrayInput
   193  	VolumeType         pulumi.StringPtrInput
   194  }
   195  
   196  func (OpenZfsVolumeState) ElementType() reflect.Type {
   197  	return reflect.TypeOf((*openZfsVolumeState)(nil)).Elem()
   198  }
   199  
   200  type openZfsVolumeArgs struct {
   201  	// A boolean flag indicating whether tags for the file system should be copied to snapshots. The default value is false.
   202  	CopyTagsToSnapshots *bool `pulumi:"copyTagsToSnapshots"`
   203  	// Method used to compress the data on the volume. Valid values are `NONE` or `ZSTD`. Child volumes that don't specify compression option will inherit from parent volume. This option on file system applies to the root volume.
   204  	DataCompressionType *string `pulumi:"dataCompressionType"`
   205  	// Whether to delete all child volumes and snapshots. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. This configuration must be applied separately before attempting to delete the resource to have the desired behavior..
   206  	DeleteVolumeOptions *string `pulumi:"deleteVolumeOptions"`
   207  	// The name of the Volume. You can use a maximum of 203 alphanumeric characters, plus the underscore (_) special character.
   208  	Name *string `pulumi:"name"`
   209  	// NFS export configuration for the root volume. Exactly 1 item. See `nfsExports` Block Below for details.
   210  	NfsExports *OpenZfsVolumeNfsExports `pulumi:"nfsExports"`
   211  	// Specifies the configuration to use when creating the OpenZFS volume. See `originSnapshot` Block below for details.
   212  	OriginSnapshot *OpenZfsVolumeOriginSnapshot `pulumi:"originSnapshot"`
   213  	// The volume id of volume that will be the parent volume for the volume being created, this could be the root volume created from the `fsx.OpenZfsFileSystem` resource with the `rootVolumeId` or the `id` property of another `fsx.OpenZfsVolume`.
   214  	ParentVolumeId string `pulumi:"parentVolumeId"`
   215  	// specifies whether the volume is read-only. Default is false.
   216  	ReadOnly *bool `pulumi:"readOnly"`
   217  	// The record size of an OpenZFS volume, in kibibytes (KiB). Valid values are `4`, `8`, `16`, `32`, `64`, `128`, `256`, `512`, or `1024` KiB. The default is `128` KiB.
   218  	RecordSizeKib *int `pulumi:"recordSizeKib"`
   219  	// The maximum amount of storage in gibibytes (GiB) that the volume can use from its parent.
   220  	StorageCapacityQuotaGib *int `pulumi:"storageCapacityQuotaGib"`
   221  	// The amount of storage in gibibytes (GiB) to reserve from the parent volume.
   222  	StorageCapacityReservationGib *int `pulumi:"storageCapacityReservationGib"`
   223  	// 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.
   224  	Tags map[string]string `pulumi:"tags"`
   225  	// Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `userAndGroupQuotas` Block Below.
   226  	UserAndGroupQuotas []OpenZfsVolumeUserAndGroupQuota `pulumi:"userAndGroupQuotas"`
   227  	VolumeType         *string                          `pulumi:"volumeType"`
   228  }
   229  
   230  // The set of arguments for constructing a OpenZfsVolume resource.
   231  type OpenZfsVolumeArgs struct {
   232  	// A boolean flag indicating whether tags for the file system should be copied to snapshots. The default value is false.
   233  	CopyTagsToSnapshots pulumi.BoolPtrInput
   234  	// Method used to compress the data on the volume. Valid values are `NONE` or `ZSTD`. Child volumes that don't specify compression option will inherit from parent volume. This option on file system applies to the root volume.
   235  	DataCompressionType pulumi.StringPtrInput
   236  	// Whether to delete all child volumes and snapshots. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. This configuration must be applied separately before attempting to delete the resource to have the desired behavior..
   237  	DeleteVolumeOptions pulumi.StringPtrInput
   238  	// The name of the Volume. You can use a maximum of 203 alphanumeric characters, plus the underscore (_) special character.
   239  	Name pulumi.StringPtrInput
   240  	// NFS export configuration for the root volume. Exactly 1 item. See `nfsExports` Block Below for details.
   241  	NfsExports OpenZfsVolumeNfsExportsPtrInput
   242  	// Specifies the configuration to use when creating the OpenZFS volume. See `originSnapshot` Block below for details.
   243  	OriginSnapshot OpenZfsVolumeOriginSnapshotPtrInput
   244  	// The volume id of volume that will be the parent volume for the volume being created, this could be the root volume created from the `fsx.OpenZfsFileSystem` resource with the `rootVolumeId` or the `id` property of another `fsx.OpenZfsVolume`.
   245  	ParentVolumeId pulumi.StringInput
   246  	// specifies whether the volume is read-only. Default is false.
   247  	ReadOnly pulumi.BoolPtrInput
   248  	// The record size of an OpenZFS volume, in kibibytes (KiB). Valid values are `4`, `8`, `16`, `32`, `64`, `128`, `256`, `512`, or `1024` KiB. The default is `128` KiB.
   249  	RecordSizeKib pulumi.IntPtrInput
   250  	// The maximum amount of storage in gibibytes (GiB) that the volume can use from its parent.
   251  	StorageCapacityQuotaGib pulumi.IntPtrInput
   252  	// The amount of storage in gibibytes (GiB) to reserve from the parent volume.
   253  	StorageCapacityReservationGib pulumi.IntPtrInput
   254  	// 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.
   255  	Tags pulumi.StringMapInput
   256  	// Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `userAndGroupQuotas` Block Below.
   257  	UserAndGroupQuotas OpenZfsVolumeUserAndGroupQuotaArrayInput
   258  	VolumeType         pulumi.StringPtrInput
   259  }
   260  
   261  func (OpenZfsVolumeArgs) ElementType() reflect.Type {
   262  	return reflect.TypeOf((*openZfsVolumeArgs)(nil)).Elem()
   263  }
   264  
   265  type OpenZfsVolumeInput interface {
   266  	pulumi.Input
   267  
   268  	ToOpenZfsVolumeOutput() OpenZfsVolumeOutput
   269  	ToOpenZfsVolumeOutputWithContext(ctx context.Context) OpenZfsVolumeOutput
   270  }
   271  
   272  func (*OpenZfsVolume) ElementType() reflect.Type {
   273  	return reflect.TypeOf((**OpenZfsVolume)(nil)).Elem()
   274  }
   275  
   276  func (i *OpenZfsVolume) ToOpenZfsVolumeOutput() OpenZfsVolumeOutput {
   277  	return i.ToOpenZfsVolumeOutputWithContext(context.Background())
   278  }
   279  
   280  func (i *OpenZfsVolume) ToOpenZfsVolumeOutputWithContext(ctx context.Context) OpenZfsVolumeOutput {
   281  	return pulumi.ToOutputWithContext(ctx, i).(OpenZfsVolumeOutput)
   282  }
   283  
   284  // OpenZfsVolumeArrayInput is an input type that accepts OpenZfsVolumeArray and OpenZfsVolumeArrayOutput values.
   285  // You can construct a concrete instance of `OpenZfsVolumeArrayInput` via:
   286  //
   287  //	OpenZfsVolumeArray{ OpenZfsVolumeArgs{...} }
   288  type OpenZfsVolumeArrayInput interface {
   289  	pulumi.Input
   290  
   291  	ToOpenZfsVolumeArrayOutput() OpenZfsVolumeArrayOutput
   292  	ToOpenZfsVolumeArrayOutputWithContext(context.Context) OpenZfsVolumeArrayOutput
   293  }
   294  
   295  type OpenZfsVolumeArray []OpenZfsVolumeInput
   296  
   297  func (OpenZfsVolumeArray) ElementType() reflect.Type {
   298  	return reflect.TypeOf((*[]*OpenZfsVolume)(nil)).Elem()
   299  }
   300  
   301  func (i OpenZfsVolumeArray) ToOpenZfsVolumeArrayOutput() OpenZfsVolumeArrayOutput {
   302  	return i.ToOpenZfsVolumeArrayOutputWithContext(context.Background())
   303  }
   304  
   305  func (i OpenZfsVolumeArray) ToOpenZfsVolumeArrayOutputWithContext(ctx context.Context) OpenZfsVolumeArrayOutput {
   306  	return pulumi.ToOutputWithContext(ctx, i).(OpenZfsVolumeArrayOutput)
   307  }
   308  
   309  // OpenZfsVolumeMapInput is an input type that accepts OpenZfsVolumeMap and OpenZfsVolumeMapOutput values.
   310  // You can construct a concrete instance of `OpenZfsVolumeMapInput` via:
   311  //
   312  //	OpenZfsVolumeMap{ "key": OpenZfsVolumeArgs{...} }
   313  type OpenZfsVolumeMapInput interface {
   314  	pulumi.Input
   315  
   316  	ToOpenZfsVolumeMapOutput() OpenZfsVolumeMapOutput
   317  	ToOpenZfsVolumeMapOutputWithContext(context.Context) OpenZfsVolumeMapOutput
   318  }
   319  
   320  type OpenZfsVolumeMap map[string]OpenZfsVolumeInput
   321  
   322  func (OpenZfsVolumeMap) ElementType() reflect.Type {
   323  	return reflect.TypeOf((*map[string]*OpenZfsVolume)(nil)).Elem()
   324  }
   325  
   326  func (i OpenZfsVolumeMap) ToOpenZfsVolumeMapOutput() OpenZfsVolumeMapOutput {
   327  	return i.ToOpenZfsVolumeMapOutputWithContext(context.Background())
   328  }
   329  
   330  func (i OpenZfsVolumeMap) ToOpenZfsVolumeMapOutputWithContext(ctx context.Context) OpenZfsVolumeMapOutput {
   331  	return pulumi.ToOutputWithContext(ctx, i).(OpenZfsVolumeMapOutput)
   332  }
   333  
   334  type OpenZfsVolumeOutput struct{ *pulumi.OutputState }
   335  
   336  func (OpenZfsVolumeOutput) ElementType() reflect.Type {
   337  	return reflect.TypeOf((**OpenZfsVolume)(nil)).Elem()
   338  }
   339  
   340  func (o OpenZfsVolumeOutput) ToOpenZfsVolumeOutput() OpenZfsVolumeOutput {
   341  	return o
   342  }
   343  
   344  func (o OpenZfsVolumeOutput) ToOpenZfsVolumeOutputWithContext(ctx context.Context) OpenZfsVolumeOutput {
   345  	return o
   346  }
   347  
   348  // Amazon Resource Name of the file system.
   349  func (o OpenZfsVolumeOutput) Arn() pulumi.StringOutput {
   350  	return o.ApplyT(func(v *OpenZfsVolume) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   351  }
   352  
   353  // A boolean flag indicating whether tags for the file system should be copied to snapshots. The default value is false.
   354  func (o OpenZfsVolumeOutput) CopyTagsToSnapshots() pulumi.BoolPtrOutput {
   355  	return o.ApplyT(func(v *OpenZfsVolume) pulumi.BoolPtrOutput { return v.CopyTagsToSnapshots }).(pulumi.BoolPtrOutput)
   356  }
   357  
   358  // Method used to compress the data on the volume. Valid values are `NONE` or `ZSTD`. Child volumes that don't specify compression option will inherit from parent volume. This option on file system applies to the root volume.
   359  func (o OpenZfsVolumeOutput) DataCompressionType() pulumi.StringPtrOutput {
   360  	return o.ApplyT(func(v *OpenZfsVolume) pulumi.StringPtrOutput { return v.DataCompressionType }).(pulumi.StringPtrOutput)
   361  }
   362  
   363  // Whether to delete all child volumes and snapshots. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. This configuration must be applied separately before attempting to delete the resource to have the desired behavior..
   364  func (o OpenZfsVolumeOutput) DeleteVolumeOptions() pulumi.StringPtrOutput {
   365  	return o.ApplyT(func(v *OpenZfsVolume) pulumi.StringPtrOutput { return v.DeleteVolumeOptions }).(pulumi.StringPtrOutput)
   366  }
   367  
   368  // The name of the Volume. You can use a maximum of 203 alphanumeric characters, plus the underscore (_) special character.
   369  func (o OpenZfsVolumeOutput) Name() pulumi.StringOutput {
   370  	return o.ApplyT(func(v *OpenZfsVolume) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   371  }
   372  
   373  // NFS export configuration for the root volume. Exactly 1 item. See `nfsExports` Block Below for details.
   374  func (o OpenZfsVolumeOutput) NfsExports() OpenZfsVolumeNfsExportsPtrOutput {
   375  	return o.ApplyT(func(v *OpenZfsVolume) OpenZfsVolumeNfsExportsPtrOutput { return v.NfsExports }).(OpenZfsVolumeNfsExportsPtrOutput)
   376  }
   377  
   378  // Specifies the configuration to use when creating the OpenZFS volume. See `originSnapshot` Block below for details.
   379  func (o OpenZfsVolumeOutput) OriginSnapshot() OpenZfsVolumeOriginSnapshotPtrOutput {
   380  	return o.ApplyT(func(v *OpenZfsVolume) OpenZfsVolumeOriginSnapshotPtrOutput { return v.OriginSnapshot }).(OpenZfsVolumeOriginSnapshotPtrOutput)
   381  }
   382  
   383  // The volume id of volume that will be the parent volume for the volume being created, this could be the root volume created from the `fsx.OpenZfsFileSystem` resource with the `rootVolumeId` or the `id` property of another `fsx.OpenZfsVolume`.
   384  func (o OpenZfsVolumeOutput) ParentVolumeId() pulumi.StringOutput {
   385  	return o.ApplyT(func(v *OpenZfsVolume) pulumi.StringOutput { return v.ParentVolumeId }).(pulumi.StringOutput)
   386  }
   387  
   388  // specifies whether the volume is read-only. Default is false.
   389  func (o OpenZfsVolumeOutput) ReadOnly() pulumi.BoolOutput {
   390  	return o.ApplyT(func(v *OpenZfsVolume) pulumi.BoolOutput { return v.ReadOnly }).(pulumi.BoolOutput)
   391  }
   392  
   393  // The record size of an OpenZFS volume, in kibibytes (KiB). Valid values are `4`, `8`, `16`, `32`, `64`, `128`, `256`, `512`, or `1024` KiB. The default is `128` KiB.
   394  func (o OpenZfsVolumeOutput) RecordSizeKib() pulumi.IntPtrOutput {
   395  	return o.ApplyT(func(v *OpenZfsVolume) pulumi.IntPtrOutput { return v.RecordSizeKib }).(pulumi.IntPtrOutput)
   396  }
   397  
   398  // The maximum amount of storage in gibibytes (GiB) that the volume can use from its parent.
   399  func (o OpenZfsVolumeOutput) StorageCapacityQuotaGib() pulumi.IntOutput {
   400  	return o.ApplyT(func(v *OpenZfsVolume) pulumi.IntOutput { return v.StorageCapacityQuotaGib }).(pulumi.IntOutput)
   401  }
   402  
   403  // The amount of storage in gibibytes (GiB) to reserve from the parent volume.
   404  func (o OpenZfsVolumeOutput) StorageCapacityReservationGib() pulumi.IntOutput {
   405  	return o.ApplyT(func(v *OpenZfsVolume) pulumi.IntOutput { return v.StorageCapacityReservationGib }).(pulumi.IntOutput)
   406  }
   407  
   408  // 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.
   409  func (o OpenZfsVolumeOutput) Tags() pulumi.StringMapOutput {
   410  	return o.ApplyT(func(v *OpenZfsVolume) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   411  }
   412  
   413  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   414  //
   415  // Deprecated: Please use `tags` instead.
   416  func (o OpenZfsVolumeOutput) TagsAll() pulumi.StringMapOutput {
   417  	return o.ApplyT(func(v *OpenZfsVolume) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   418  }
   419  
   420  // Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `userAndGroupQuotas` Block Below.
   421  func (o OpenZfsVolumeOutput) UserAndGroupQuotas() OpenZfsVolumeUserAndGroupQuotaArrayOutput {
   422  	return o.ApplyT(func(v *OpenZfsVolume) OpenZfsVolumeUserAndGroupQuotaArrayOutput { return v.UserAndGroupQuotas }).(OpenZfsVolumeUserAndGroupQuotaArrayOutput)
   423  }
   424  
   425  func (o OpenZfsVolumeOutput) VolumeType() pulumi.StringPtrOutput {
   426  	return o.ApplyT(func(v *OpenZfsVolume) pulumi.StringPtrOutput { return v.VolumeType }).(pulumi.StringPtrOutput)
   427  }
   428  
   429  type OpenZfsVolumeArrayOutput struct{ *pulumi.OutputState }
   430  
   431  func (OpenZfsVolumeArrayOutput) ElementType() reflect.Type {
   432  	return reflect.TypeOf((*[]*OpenZfsVolume)(nil)).Elem()
   433  }
   434  
   435  func (o OpenZfsVolumeArrayOutput) ToOpenZfsVolumeArrayOutput() OpenZfsVolumeArrayOutput {
   436  	return o
   437  }
   438  
   439  func (o OpenZfsVolumeArrayOutput) ToOpenZfsVolumeArrayOutputWithContext(ctx context.Context) OpenZfsVolumeArrayOutput {
   440  	return o
   441  }
   442  
   443  func (o OpenZfsVolumeArrayOutput) Index(i pulumi.IntInput) OpenZfsVolumeOutput {
   444  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *OpenZfsVolume {
   445  		return vs[0].([]*OpenZfsVolume)[vs[1].(int)]
   446  	}).(OpenZfsVolumeOutput)
   447  }
   448  
   449  type OpenZfsVolumeMapOutput struct{ *pulumi.OutputState }
   450  
   451  func (OpenZfsVolumeMapOutput) ElementType() reflect.Type {
   452  	return reflect.TypeOf((*map[string]*OpenZfsVolume)(nil)).Elem()
   453  }
   454  
   455  func (o OpenZfsVolumeMapOutput) ToOpenZfsVolumeMapOutput() OpenZfsVolumeMapOutput {
   456  	return o
   457  }
   458  
   459  func (o OpenZfsVolumeMapOutput) ToOpenZfsVolumeMapOutputWithContext(ctx context.Context) OpenZfsVolumeMapOutput {
   460  	return o
   461  }
   462  
   463  func (o OpenZfsVolumeMapOutput) MapIndex(k pulumi.StringInput) OpenZfsVolumeOutput {
   464  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *OpenZfsVolume {
   465  		return vs[0].(map[string]*OpenZfsVolume)[vs[1].(string)]
   466  	}).(OpenZfsVolumeOutput)
   467  }
   468  
   469  func init() {
   470  	pulumi.RegisterInputType(reflect.TypeOf((*OpenZfsVolumeInput)(nil)).Elem(), &OpenZfsVolume{})
   471  	pulumi.RegisterInputType(reflect.TypeOf((*OpenZfsVolumeArrayInput)(nil)).Elem(), OpenZfsVolumeArray{})
   472  	pulumi.RegisterInputType(reflect.TypeOf((*OpenZfsVolumeMapInput)(nil)).Elem(), OpenZfsVolumeMap{})
   473  	pulumi.RegisterOutputType(OpenZfsVolumeOutput{})
   474  	pulumi.RegisterOutputType(OpenZfsVolumeArrayOutput{})
   475  	pulumi.RegisterOutputType(OpenZfsVolumeMapOutput{})
   476  }