github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/efs/fileSystem.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 efs
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    11  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    12  )
    13  
    14  // Provides an Elastic File System (EFS) File System resource.
    15  //
    16  // ## Example Usage
    17  //
    18  // ### EFS File System w/ tags
    19  //
    20  // <!--Start PulumiCodeChooser -->
    21  // ```go
    22  // package main
    23  //
    24  // import (
    25  //
    26  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/efs"
    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 := efs.NewFileSystem(ctx, "foo", &efs.FileSystemArgs{
    34  //				CreationToken: pulumi.String("my-product"),
    35  //				Tags: pulumi.StringMap{
    36  //					"Name": pulumi.String("MyProduct"),
    37  //				},
    38  //			})
    39  //			if err != nil {
    40  //				return err
    41  //			}
    42  //			return nil
    43  //		})
    44  //	}
    45  //
    46  // ```
    47  // <!--End PulumiCodeChooser -->
    48  //
    49  // ### Using lifecycle policy
    50  //
    51  // <!--Start PulumiCodeChooser -->
    52  // ```go
    53  // package main
    54  //
    55  // import (
    56  //
    57  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/efs"
    58  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    59  //
    60  // )
    61  //
    62  //	func main() {
    63  //		pulumi.Run(func(ctx *pulumi.Context) error {
    64  //			_, err := efs.NewFileSystem(ctx, "foo_with_lifecyle_policy", &efs.FileSystemArgs{
    65  //				CreationToken: pulumi.String("my-product"),
    66  //				LifecyclePolicies: efs.FileSystemLifecyclePolicyArray{
    67  //					&efs.FileSystemLifecyclePolicyArgs{
    68  //						TransitionToIa: pulumi.String("AFTER_30_DAYS"),
    69  //					},
    70  //				},
    71  //			})
    72  //			if err != nil {
    73  //				return err
    74  //			}
    75  //			return nil
    76  //		})
    77  //	}
    78  //
    79  // ```
    80  // <!--End PulumiCodeChooser -->
    81  //
    82  // ## Import
    83  //
    84  // Using `pulumi import`, import the EFS file systems using the `id`. For example:
    85  //
    86  // ```sh
    87  // $ pulumi import aws:efs/fileSystem:FileSystem foo fs-6fa144c6
    88  // ```
    89  type FileSystem struct {
    90  	pulumi.CustomResourceState
    91  
    92  	// Amazon Resource Name of the file system.
    93  	Arn pulumi.StringOutput `pulumi:"arn"`
    94  	// The identifier of the Availability Zone in which the file system's One Zone storage classes exist.
    95  	AvailabilityZoneId pulumi.StringOutput `pulumi:"availabilityZoneId"`
    96  	// the AWS Availability Zone in which to create the file system. Used to create a file system that uses One Zone storage classes. See [user guide](https://docs.aws.amazon.com/efs/latest/ug/availability-durability.html) for more information.
    97  	AvailabilityZoneName pulumi.StringOutput `pulumi:"availabilityZoneName"`
    98  	// A unique name (a maximum of 64 characters are allowed)
    99  	// used as reference when creating the Elastic File System to ensure idempotent file
   100  	// system creation. By default generated by this provider. See [Elastic File System]
   101  	// user guide for more information.
   102  	CreationToken pulumi.StringOutput `pulumi:"creationToken"`
   103  	// The DNS name for the filesystem per [documented convention](http://docs.aws.amazon.com/efs/latest/ug/mounting-fs-mount-cmd-dns-name.html).
   104  	DnsName pulumi.StringOutput `pulumi:"dnsName"`
   105  	// If true, the disk will be encrypted.
   106  	Encrypted pulumi.BoolOutput `pulumi:"encrypted"`
   107  	// The ARN for the KMS encryption key. When specifying kms_key_id, encrypted needs to be set to true.
   108  	KmsKeyId pulumi.StringOutput `pulumi:"kmsKeyId"`
   109  	// A file system [lifecycle policy](https://docs.aws.amazon.com/efs/latest/ug/API_LifecyclePolicy.html) object. See `lifecyclePolicy` block below for details.
   110  	LifecyclePolicies FileSystemLifecyclePolicyArrayOutput `pulumi:"lifecyclePolicies"`
   111  	// The value of the file system's `Name` tag.
   112  	Name pulumi.StringOutput `pulumi:"name"`
   113  	// The current number of mount targets that the file system has.
   114  	NumberOfMountTargets pulumi.IntOutput `pulumi:"numberOfMountTargets"`
   115  	// The AWS account that created the file system. If the file system was createdby an IAM user, the parent account to which the user belongs is the owner.
   116  	OwnerId pulumi.StringOutput `pulumi:"ownerId"`
   117  	// The file system performance mode. Can be either `"generalPurpose"` or `"maxIO"` (Default: `"generalPurpose"`).
   118  	PerformanceMode pulumi.StringOutput `pulumi:"performanceMode"`
   119  	// A file system [protection](https://docs.aws.amazon.com/efs/latest/ug/API_FileSystemProtectionDescription.html) object. See `protection` block below for details.
   120  	Protection FileSystemProtectionOutput `pulumi:"protection"`
   121  	// The throughput, measured in MiB/s, that you want to provision for the file system. Only applicable with `throughputMode` set to `provisioned`.
   122  	ProvisionedThroughputInMibps pulumi.Float64PtrOutput `pulumi:"provisionedThroughputInMibps"`
   123  	// The latest known metered size (in bytes) of data stored in the file system, the value is not the exact size that the file system was at any point in time. See Size In Bytes.
   124  	SizeInBytes FileSystemSizeInByteArrayOutput `pulumi:"sizeInBytes"`
   125  	// 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.
   126  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   127  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   128  	//
   129  	// Deprecated: Please use `tags` instead.
   130  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   131  	// Throughput mode for the file system. Defaults to `bursting`. Valid values: `bursting`, `provisioned`, or `elastic`. When using `provisioned`, also set `provisionedThroughputInMibps`.
   132  	ThroughputMode pulumi.StringPtrOutput `pulumi:"throughputMode"`
   133  }
   134  
   135  // NewFileSystem registers a new resource with the given unique name, arguments, and options.
   136  func NewFileSystem(ctx *pulumi.Context,
   137  	name string, args *FileSystemArgs, opts ...pulumi.ResourceOption) (*FileSystem, error) {
   138  	if args == nil {
   139  		args = &FileSystemArgs{}
   140  	}
   141  
   142  	opts = internal.PkgResourceDefaultOpts(opts)
   143  	var resource FileSystem
   144  	err := ctx.RegisterResource("aws:efs/fileSystem:FileSystem", name, args, &resource, opts...)
   145  	if err != nil {
   146  		return nil, err
   147  	}
   148  	return &resource, nil
   149  }
   150  
   151  // GetFileSystem gets an existing FileSystem resource's state with the given name, ID, and optional
   152  // state properties that are used to uniquely qualify the lookup (nil if not required).
   153  func GetFileSystem(ctx *pulumi.Context,
   154  	name string, id pulumi.IDInput, state *FileSystemState, opts ...pulumi.ResourceOption) (*FileSystem, error) {
   155  	var resource FileSystem
   156  	err := ctx.ReadResource("aws:efs/fileSystem:FileSystem", name, id, state, &resource, opts...)
   157  	if err != nil {
   158  		return nil, err
   159  	}
   160  	return &resource, nil
   161  }
   162  
   163  // Input properties used for looking up and filtering FileSystem resources.
   164  type fileSystemState struct {
   165  	// Amazon Resource Name of the file system.
   166  	Arn *string `pulumi:"arn"`
   167  	// The identifier of the Availability Zone in which the file system's One Zone storage classes exist.
   168  	AvailabilityZoneId *string `pulumi:"availabilityZoneId"`
   169  	// the AWS Availability Zone in which to create the file system. Used to create a file system that uses One Zone storage classes. See [user guide](https://docs.aws.amazon.com/efs/latest/ug/availability-durability.html) for more information.
   170  	AvailabilityZoneName *string `pulumi:"availabilityZoneName"`
   171  	// A unique name (a maximum of 64 characters are allowed)
   172  	// used as reference when creating the Elastic File System to ensure idempotent file
   173  	// system creation. By default generated by this provider. See [Elastic File System]
   174  	// user guide for more information.
   175  	CreationToken *string `pulumi:"creationToken"`
   176  	// The DNS name for the filesystem per [documented convention](http://docs.aws.amazon.com/efs/latest/ug/mounting-fs-mount-cmd-dns-name.html).
   177  	DnsName *string `pulumi:"dnsName"`
   178  	// If true, the disk will be encrypted.
   179  	Encrypted *bool `pulumi:"encrypted"`
   180  	// The ARN for the KMS encryption key. When specifying kms_key_id, encrypted needs to be set to true.
   181  	KmsKeyId *string `pulumi:"kmsKeyId"`
   182  	// A file system [lifecycle policy](https://docs.aws.amazon.com/efs/latest/ug/API_LifecyclePolicy.html) object. See `lifecyclePolicy` block below for details.
   183  	LifecyclePolicies []FileSystemLifecyclePolicy `pulumi:"lifecyclePolicies"`
   184  	// The value of the file system's `Name` tag.
   185  	Name *string `pulumi:"name"`
   186  	// The current number of mount targets that the file system has.
   187  	NumberOfMountTargets *int `pulumi:"numberOfMountTargets"`
   188  	// The AWS account that created the file system. If the file system was createdby an IAM user, the parent account to which the user belongs is the owner.
   189  	OwnerId *string `pulumi:"ownerId"`
   190  	// The file system performance mode. Can be either `"generalPurpose"` or `"maxIO"` (Default: `"generalPurpose"`).
   191  	PerformanceMode *string `pulumi:"performanceMode"`
   192  	// A file system [protection](https://docs.aws.amazon.com/efs/latest/ug/API_FileSystemProtectionDescription.html) object. See `protection` block below for details.
   193  	Protection *FileSystemProtection `pulumi:"protection"`
   194  	// The throughput, measured in MiB/s, that you want to provision for the file system. Only applicable with `throughputMode` set to `provisioned`.
   195  	ProvisionedThroughputInMibps *float64 `pulumi:"provisionedThroughputInMibps"`
   196  	// The latest known metered size (in bytes) of data stored in the file system, the value is not the exact size that the file system was at any point in time. See Size In Bytes.
   197  	SizeInBytes []FileSystemSizeInByte `pulumi:"sizeInBytes"`
   198  	// 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.
   199  	Tags map[string]string `pulumi:"tags"`
   200  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   201  	//
   202  	// Deprecated: Please use `tags` instead.
   203  	TagsAll map[string]string `pulumi:"tagsAll"`
   204  	// Throughput mode for the file system. Defaults to `bursting`. Valid values: `bursting`, `provisioned`, or `elastic`. When using `provisioned`, also set `provisionedThroughputInMibps`.
   205  	ThroughputMode *string `pulumi:"throughputMode"`
   206  }
   207  
   208  type FileSystemState struct {
   209  	// Amazon Resource Name of the file system.
   210  	Arn pulumi.StringPtrInput
   211  	// The identifier of the Availability Zone in which the file system's One Zone storage classes exist.
   212  	AvailabilityZoneId pulumi.StringPtrInput
   213  	// the AWS Availability Zone in which to create the file system. Used to create a file system that uses One Zone storage classes. See [user guide](https://docs.aws.amazon.com/efs/latest/ug/availability-durability.html) for more information.
   214  	AvailabilityZoneName pulumi.StringPtrInput
   215  	// A unique name (a maximum of 64 characters are allowed)
   216  	// used as reference when creating the Elastic File System to ensure idempotent file
   217  	// system creation. By default generated by this provider. See [Elastic File System]
   218  	// user guide for more information.
   219  	CreationToken pulumi.StringPtrInput
   220  	// The DNS name for the filesystem per [documented convention](http://docs.aws.amazon.com/efs/latest/ug/mounting-fs-mount-cmd-dns-name.html).
   221  	DnsName pulumi.StringPtrInput
   222  	// If true, the disk will be encrypted.
   223  	Encrypted pulumi.BoolPtrInput
   224  	// The ARN for the KMS encryption key. When specifying kms_key_id, encrypted needs to be set to true.
   225  	KmsKeyId pulumi.StringPtrInput
   226  	// A file system [lifecycle policy](https://docs.aws.amazon.com/efs/latest/ug/API_LifecyclePolicy.html) object. See `lifecyclePolicy` block below for details.
   227  	LifecyclePolicies FileSystemLifecyclePolicyArrayInput
   228  	// The value of the file system's `Name` tag.
   229  	Name pulumi.StringPtrInput
   230  	// The current number of mount targets that the file system has.
   231  	NumberOfMountTargets pulumi.IntPtrInput
   232  	// The AWS account that created the file system. If the file system was createdby an IAM user, the parent account to which the user belongs is the owner.
   233  	OwnerId pulumi.StringPtrInput
   234  	// The file system performance mode. Can be either `"generalPurpose"` or `"maxIO"` (Default: `"generalPurpose"`).
   235  	PerformanceMode pulumi.StringPtrInput
   236  	// A file system [protection](https://docs.aws.amazon.com/efs/latest/ug/API_FileSystemProtectionDescription.html) object. See `protection` block below for details.
   237  	Protection FileSystemProtectionPtrInput
   238  	// The throughput, measured in MiB/s, that you want to provision for the file system. Only applicable with `throughputMode` set to `provisioned`.
   239  	ProvisionedThroughputInMibps pulumi.Float64PtrInput
   240  	// The latest known metered size (in bytes) of data stored in the file system, the value is not the exact size that the file system was at any point in time. See Size In Bytes.
   241  	SizeInBytes FileSystemSizeInByteArrayInput
   242  	// 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.
   243  	Tags pulumi.StringMapInput
   244  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   245  	//
   246  	// Deprecated: Please use `tags` instead.
   247  	TagsAll pulumi.StringMapInput
   248  	// Throughput mode for the file system. Defaults to `bursting`. Valid values: `bursting`, `provisioned`, or `elastic`. When using `provisioned`, also set `provisionedThroughputInMibps`.
   249  	ThroughputMode pulumi.StringPtrInput
   250  }
   251  
   252  func (FileSystemState) ElementType() reflect.Type {
   253  	return reflect.TypeOf((*fileSystemState)(nil)).Elem()
   254  }
   255  
   256  type fileSystemArgs struct {
   257  	// the AWS Availability Zone in which to create the file system. Used to create a file system that uses One Zone storage classes. See [user guide](https://docs.aws.amazon.com/efs/latest/ug/availability-durability.html) for more information.
   258  	AvailabilityZoneName *string `pulumi:"availabilityZoneName"`
   259  	// A unique name (a maximum of 64 characters are allowed)
   260  	// used as reference when creating the Elastic File System to ensure idempotent file
   261  	// system creation. By default generated by this provider. See [Elastic File System]
   262  	// user guide for more information.
   263  	CreationToken *string `pulumi:"creationToken"`
   264  	// If true, the disk will be encrypted.
   265  	Encrypted *bool `pulumi:"encrypted"`
   266  	// The ARN for the KMS encryption key. When specifying kms_key_id, encrypted needs to be set to true.
   267  	KmsKeyId *string `pulumi:"kmsKeyId"`
   268  	// A file system [lifecycle policy](https://docs.aws.amazon.com/efs/latest/ug/API_LifecyclePolicy.html) object. See `lifecyclePolicy` block below for details.
   269  	LifecyclePolicies []FileSystemLifecyclePolicy `pulumi:"lifecyclePolicies"`
   270  	// The file system performance mode. Can be either `"generalPurpose"` or `"maxIO"` (Default: `"generalPurpose"`).
   271  	PerformanceMode *string `pulumi:"performanceMode"`
   272  	// A file system [protection](https://docs.aws.amazon.com/efs/latest/ug/API_FileSystemProtectionDescription.html) object. See `protection` block below for details.
   273  	Protection *FileSystemProtection `pulumi:"protection"`
   274  	// The throughput, measured in MiB/s, that you want to provision for the file system. Only applicable with `throughputMode` set to `provisioned`.
   275  	ProvisionedThroughputInMibps *float64 `pulumi:"provisionedThroughputInMibps"`
   276  	// 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.
   277  	Tags map[string]string `pulumi:"tags"`
   278  	// Throughput mode for the file system. Defaults to `bursting`. Valid values: `bursting`, `provisioned`, or `elastic`. When using `provisioned`, also set `provisionedThroughputInMibps`.
   279  	ThroughputMode *string `pulumi:"throughputMode"`
   280  }
   281  
   282  // The set of arguments for constructing a FileSystem resource.
   283  type FileSystemArgs struct {
   284  	// the AWS Availability Zone in which to create the file system. Used to create a file system that uses One Zone storage classes. See [user guide](https://docs.aws.amazon.com/efs/latest/ug/availability-durability.html) for more information.
   285  	AvailabilityZoneName pulumi.StringPtrInput
   286  	// A unique name (a maximum of 64 characters are allowed)
   287  	// used as reference when creating the Elastic File System to ensure idempotent file
   288  	// system creation. By default generated by this provider. See [Elastic File System]
   289  	// user guide for more information.
   290  	CreationToken pulumi.StringPtrInput
   291  	// If true, the disk will be encrypted.
   292  	Encrypted pulumi.BoolPtrInput
   293  	// The ARN for the KMS encryption key. When specifying kms_key_id, encrypted needs to be set to true.
   294  	KmsKeyId pulumi.StringPtrInput
   295  	// A file system [lifecycle policy](https://docs.aws.amazon.com/efs/latest/ug/API_LifecyclePolicy.html) object. See `lifecyclePolicy` block below for details.
   296  	LifecyclePolicies FileSystemLifecyclePolicyArrayInput
   297  	// The file system performance mode. Can be either `"generalPurpose"` or `"maxIO"` (Default: `"generalPurpose"`).
   298  	PerformanceMode pulumi.StringPtrInput
   299  	// A file system [protection](https://docs.aws.amazon.com/efs/latest/ug/API_FileSystemProtectionDescription.html) object. See `protection` block below for details.
   300  	Protection FileSystemProtectionPtrInput
   301  	// The throughput, measured in MiB/s, that you want to provision for the file system. Only applicable with `throughputMode` set to `provisioned`.
   302  	ProvisionedThroughputInMibps pulumi.Float64PtrInput
   303  	// 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.
   304  	Tags pulumi.StringMapInput
   305  	// Throughput mode for the file system. Defaults to `bursting`. Valid values: `bursting`, `provisioned`, or `elastic`. When using `provisioned`, also set `provisionedThroughputInMibps`.
   306  	ThroughputMode pulumi.StringPtrInput
   307  }
   308  
   309  func (FileSystemArgs) ElementType() reflect.Type {
   310  	return reflect.TypeOf((*fileSystemArgs)(nil)).Elem()
   311  }
   312  
   313  type FileSystemInput interface {
   314  	pulumi.Input
   315  
   316  	ToFileSystemOutput() FileSystemOutput
   317  	ToFileSystemOutputWithContext(ctx context.Context) FileSystemOutput
   318  }
   319  
   320  func (*FileSystem) ElementType() reflect.Type {
   321  	return reflect.TypeOf((**FileSystem)(nil)).Elem()
   322  }
   323  
   324  func (i *FileSystem) ToFileSystemOutput() FileSystemOutput {
   325  	return i.ToFileSystemOutputWithContext(context.Background())
   326  }
   327  
   328  func (i *FileSystem) ToFileSystemOutputWithContext(ctx context.Context) FileSystemOutput {
   329  	return pulumi.ToOutputWithContext(ctx, i).(FileSystemOutput)
   330  }
   331  
   332  // FileSystemArrayInput is an input type that accepts FileSystemArray and FileSystemArrayOutput values.
   333  // You can construct a concrete instance of `FileSystemArrayInput` via:
   334  //
   335  //	FileSystemArray{ FileSystemArgs{...} }
   336  type FileSystemArrayInput interface {
   337  	pulumi.Input
   338  
   339  	ToFileSystemArrayOutput() FileSystemArrayOutput
   340  	ToFileSystemArrayOutputWithContext(context.Context) FileSystemArrayOutput
   341  }
   342  
   343  type FileSystemArray []FileSystemInput
   344  
   345  func (FileSystemArray) ElementType() reflect.Type {
   346  	return reflect.TypeOf((*[]*FileSystem)(nil)).Elem()
   347  }
   348  
   349  func (i FileSystemArray) ToFileSystemArrayOutput() FileSystemArrayOutput {
   350  	return i.ToFileSystemArrayOutputWithContext(context.Background())
   351  }
   352  
   353  func (i FileSystemArray) ToFileSystemArrayOutputWithContext(ctx context.Context) FileSystemArrayOutput {
   354  	return pulumi.ToOutputWithContext(ctx, i).(FileSystemArrayOutput)
   355  }
   356  
   357  // FileSystemMapInput is an input type that accepts FileSystemMap and FileSystemMapOutput values.
   358  // You can construct a concrete instance of `FileSystemMapInput` via:
   359  //
   360  //	FileSystemMap{ "key": FileSystemArgs{...} }
   361  type FileSystemMapInput interface {
   362  	pulumi.Input
   363  
   364  	ToFileSystemMapOutput() FileSystemMapOutput
   365  	ToFileSystemMapOutputWithContext(context.Context) FileSystemMapOutput
   366  }
   367  
   368  type FileSystemMap map[string]FileSystemInput
   369  
   370  func (FileSystemMap) ElementType() reflect.Type {
   371  	return reflect.TypeOf((*map[string]*FileSystem)(nil)).Elem()
   372  }
   373  
   374  func (i FileSystemMap) ToFileSystemMapOutput() FileSystemMapOutput {
   375  	return i.ToFileSystemMapOutputWithContext(context.Background())
   376  }
   377  
   378  func (i FileSystemMap) ToFileSystemMapOutputWithContext(ctx context.Context) FileSystemMapOutput {
   379  	return pulumi.ToOutputWithContext(ctx, i).(FileSystemMapOutput)
   380  }
   381  
   382  type FileSystemOutput struct{ *pulumi.OutputState }
   383  
   384  func (FileSystemOutput) ElementType() reflect.Type {
   385  	return reflect.TypeOf((**FileSystem)(nil)).Elem()
   386  }
   387  
   388  func (o FileSystemOutput) ToFileSystemOutput() FileSystemOutput {
   389  	return o
   390  }
   391  
   392  func (o FileSystemOutput) ToFileSystemOutputWithContext(ctx context.Context) FileSystemOutput {
   393  	return o
   394  }
   395  
   396  // Amazon Resource Name of the file system.
   397  func (o FileSystemOutput) Arn() pulumi.StringOutput {
   398  	return o.ApplyT(func(v *FileSystem) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   399  }
   400  
   401  // The identifier of the Availability Zone in which the file system's One Zone storage classes exist.
   402  func (o FileSystemOutput) AvailabilityZoneId() pulumi.StringOutput {
   403  	return o.ApplyT(func(v *FileSystem) pulumi.StringOutput { return v.AvailabilityZoneId }).(pulumi.StringOutput)
   404  }
   405  
   406  // the AWS Availability Zone in which to create the file system. Used to create a file system that uses One Zone storage classes. See [user guide](https://docs.aws.amazon.com/efs/latest/ug/availability-durability.html) for more information.
   407  func (o FileSystemOutput) AvailabilityZoneName() pulumi.StringOutput {
   408  	return o.ApplyT(func(v *FileSystem) pulumi.StringOutput { return v.AvailabilityZoneName }).(pulumi.StringOutput)
   409  }
   410  
   411  // A unique name (a maximum of 64 characters are allowed)
   412  // used as reference when creating the Elastic File System to ensure idempotent file
   413  // system creation. By default generated by this provider. See [Elastic File System]
   414  // user guide for more information.
   415  func (o FileSystemOutput) CreationToken() pulumi.StringOutput {
   416  	return o.ApplyT(func(v *FileSystem) pulumi.StringOutput { return v.CreationToken }).(pulumi.StringOutput)
   417  }
   418  
   419  // The DNS name for the filesystem per [documented convention](http://docs.aws.amazon.com/efs/latest/ug/mounting-fs-mount-cmd-dns-name.html).
   420  func (o FileSystemOutput) DnsName() pulumi.StringOutput {
   421  	return o.ApplyT(func(v *FileSystem) pulumi.StringOutput { return v.DnsName }).(pulumi.StringOutput)
   422  }
   423  
   424  // If true, the disk will be encrypted.
   425  func (o FileSystemOutput) Encrypted() pulumi.BoolOutput {
   426  	return o.ApplyT(func(v *FileSystem) pulumi.BoolOutput { return v.Encrypted }).(pulumi.BoolOutput)
   427  }
   428  
   429  // The ARN for the KMS encryption key. When specifying kms_key_id, encrypted needs to be set to true.
   430  func (o FileSystemOutput) KmsKeyId() pulumi.StringOutput {
   431  	return o.ApplyT(func(v *FileSystem) pulumi.StringOutput { return v.KmsKeyId }).(pulumi.StringOutput)
   432  }
   433  
   434  // A file system [lifecycle policy](https://docs.aws.amazon.com/efs/latest/ug/API_LifecyclePolicy.html) object. See `lifecyclePolicy` block below for details.
   435  func (o FileSystemOutput) LifecyclePolicies() FileSystemLifecyclePolicyArrayOutput {
   436  	return o.ApplyT(func(v *FileSystem) FileSystemLifecyclePolicyArrayOutput { return v.LifecyclePolicies }).(FileSystemLifecyclePolicyArrayOutput)
   437  }
   438  
   439  // The value of the file system's `Name` tag.
   440  func (o FileSystemOutput) Name() pulumi.StringOutput {
   441  	return o.ApplyT(func(v *FileSystem) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   442  }
   443  
   444  // The current number of mount targets that the file system has.
   445  func (o FileSystemOutput) NumberOfMountTargets() pulumi.IntOutput {
   446  	return o.ApplyT(func(v *FileSystem) pulumi.IntOutput { return v.NumberOfMountTargets }).(pulumi.IntOutput)
   447  }
   448  
   449  // The AWS account that created the file system. If the file system was createdby an IAM user, the parent account to which the user belongs is the owner.
   450  func (o FileSystemOutput) OwnerId() pulumi.StringOutput {
   451  	return o.ApplyT(func(v *FileSystem) pulumi.StringOutput { return v.OwnerId }).(pulumi.StringOutput)
   452  }
   453  
   454  // The file system performance mode. Can be either `"generalPurpose"` or `"maxIO"` (Default: `"generalPurpose"`).
   455  func (o FileSystemOutput) PerformanceMode() pulumi.StringOutput {
   456  	return o.ApplyT(func(v *FileSystem) pulumi.StringOutput { return v.PerformanceMode }).(pulumi.StringOutput)
   457  }
   458  
   459  // A file system [protection](https://docs.aws.amazon.com/efs/latest/ug/API_FileSystemProtectionDescription.html) object. See `protection` block below for details.
   460  func (o FileSystemOutput) Protection() FileSystemProtectionOutput {
   461  	return o.ApplyT(func(v *FileSystem) FileSystemProtectionOutput { return v.Protection }).(FileSystemProtectionOutput)
   462  }
   463  
   464  // The throughput, measured in MiB/s, that you want to provision for the file system. Only applicable with `throughputMode` set to `provisioned`.
   465  func (o FileSystemOutput) ProvisionedThroughputInMibps() pulumi.Float64PtrOutput {
   466  	return o.ApplyT(func(v *FileSystem) pulumi.Float64PtrOutput { return v.ProvisionedThroughputInMibps }).(pulumi.Float64PtrOutput)
   467  }
   468  
   469  // The latest known metered size (in bytes) of data stored in the file system, the value is not the exact size that the file system was at any point in time. See Size In Bytes.
   470  func (o FileSystemOutput) SizeInBytes() FileSystemSizeInByteArrayOutput {
   471  	return o.ApplyT(func(v *FileSystem) FileSystemSizeInByteArrayOutput { return v.SizeInBytes }).(FileSystemSizeInByteArrayOutput)
   472  }
   473  
   474  // 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.
   475  func (o FileSystemOutput) Tags() pulumi.StringMapOutput {
   476  	return o.ApplyT(func(v *FileSystem) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   477  }
   478  
   479  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   480  //
   481  // Deprecated: Please use `tags` instead.
   482  func (o FileSystemOutput) TagsAll() pulumi.StringMapOutput {
   483  	return o.ApplyT(func(v *FileSystem) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   484  }
   485  
   486  // Throughput mode for the file system. Defaults to `bursting`. Valid values: `bursting`, `provisioned`, or `elastic`. When using `provisioned`, also set `provisionedThroughputInMibps`.
   487  func (o FileSystemOutput) ThroughputMode() pulumi.StringPtrOutput {
   488  	return o.ApplyT(func(v *FileSystem) pulumi.StringPtrOutput { return v.ThroughputMode }).(pulumi.StringPtrOutput)
   489  }
   490  
   491  type FileSystemArrayOutput struct{ *pulumi.OutputState }
   492  
   493  func (FileSystemArrayOutput) ElementType() reflect.Type {
   494  	return reflect.TypeOf((*[]*FileSystem)(nil)).Elem()
   495  }
   496  
   497  func (o FileSystemArrayOutput) ToFileSystemArrayOutput() FileSystemArrayOutput {
   498  	return o
   499  }
   500  
   501  func (o FileSystemArrayOutput) ToFileSystemArrayOutputWithContext(ctx context.Context) FileSystemArrayOutput {
   502  	return o
   503  }
   504  
   505  func (o FileSystemArrayOutput) Index(i pulumi.IntInput) FileSystemOutput {
   506  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *FileSystem {
   507  		return vs[0].([]*FileSystem)[vs[1].(int)]
   508  	}).(FileSystemOutput)
   509  }
   510  
   511  type FileSystemMapOutput struct{ *pulumi.OutputState }
   512  
   513  func (FileSystemMapOutput) ElementType() reflect.Type {
   514  	return reflect.TypeOf((*map[string]*FileSystem)(nil)).Elem()
   515  }
   516  
   517  func (o FileSystemMapOutput) ToFileSystemMapOutput() FileSystemMapOutput {
   518  	return o
   519  }
   520  
   521  func (o FileSystemMapOutput) ToFileSystemMapOutputWithContext(ctx context.Context) FileSystemMapOutput {
   522  	return o
   523  }
   524  
   525  func (o FileSystemMapOutput) MapIndex(k pulumi.StringInput) FileSystemOutput {
   526  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *FileSystem {
   527  		return vs[0].(map[string]*FileSystem)[vs[1].(string)]
   528  	}).(FileSystemOutput)
   529  }
   530  
   531  func init() {
   532  	pulumi.RegisterInputType(reflect.TypeOf((*FileSystemInput)(nil)).Elem(), &FileSystem{})
   533  	pulumi.RegisterInputType(reflect.TypeOf((*FileSystemArrayInput)(nil)).Elem(), FileSystemArray{})
   534  	pulumi.RegisterInputType(reflect.TypeOf((*FileSystemMapInput)(nil)).Elem(), FileSystemMap{})
   535  	pulumi.RegisterOutputType(FileSystemOutput{})
   536  	pulumi.RegisterOutputType(FileSystemArrayOutput{})
   537  	pulumi.RegisterOutputType(FileSystemMapOutput{})
   538  }