github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/storagegateway/nfsFileShare.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 storagegateway
     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 AWS Storage Gateway NFS File Share.
    16  //
    17  // ## Example Usage
    18  //
    19  // <!--Start PulumiCodeChooser -->
    20  // ```go
    21  // package main
    22  //
    23  // import (
    24  //
    25  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/storagegateway"
    26  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    27  //
    28  // )
    29  //
    30  //	func main() {
    31  //		pulumi.Run(func(ctx *pulumi.Context) error {
    32  //			_, err := storagegateway.NewNfsFileShare(ctx, "example", &storagegateway.NfsFileShareArgs{
    33  //				ClientLists: pulumi.StringArray{
    34  //					pulumi.String("0.0.0.0/0"),
    35  //				},
    36  //				GatewayArn:  pulumi.Any(exampleAwsStoragegatewayGateway.Arn),
    37  //				LocationArn: pulumi.Any(exampleAwsS3Bucket.Arn),
    38  //				RoleArn:     pulumi.Any(exampleAwsIamRole.Arn),
    39  //			})
    40  //			if err != nil {
    41  //				return err
    42  //			}
    43  //			return nil
    44  //		})
    45  //	}
    46  //
    47  // ```
    48  // <!--End PulumiCodeChooser -->
    49  //
    50  // ## Import
    51  //
    52  // Using `pulumi import`, import `aws_storagegateway_nfs_file_share` using the NFS File Share Amazon Resource Name (ARN). For example:
    53  //
    54  // ```sh
    55  // $ pulumi import aws:storagegateway/nfsFileShare:NfsFileShare example arn:aws:storagegateway:us-east-1:123456789012:share/share-12345678
    56  // ```
    57  type NfsFileShare struct {
    58  	pulumi.CustomResourceState
    59  
    60  	// Amazon Resource Name (ARN) of the NFS File Share.
    61  	Arn pulumi.StringOutput `pulumi:"arn"`
    62  	// The Amazon Resource Name (ARN) of the storage used for audit logs.
    63  	AuditDestinationArn pulumi.StringPtrOutput `pulumi:"auditDestinationArn"`
    64  	// The region of the S3 bucket used by the file share. Required when specifying `vpcEndpointDnsName`.
    65  	BucketRegion pulumi.StringPtrOutput `pulumi:"bucketRegion"`
    66  	// Refresh cache information. see Cache Attributes for more details.
    67  	CacheAttributes NfsFileShareCacheAttributesPtrOutput `pulumi:"cacheAttributes"`
    68  	// The list of clients that are allowed to access the file gateway. The list must contain either valid IP addresses or valid CIDR blocks. Set to `["0.0.0.0/0"]` to not limit access. Minimum 1 item. Maximum 100 items.
    69  	ClientLists pulumi.StringArrayOutput `pulumi:"clientLists"`
    70  	// The default [storage class](https://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateNFSFileShare.html#StorageGateway-CreateNFSFileShare-request-DefaultStorageClass) for objects put into an Amazon S3 bucket by the file gateway. Defaults to `S3_STANDARD`.
    71  	DefaultStorageClass pulumi.StringPtrOutput `pulumi:"defaultStorageClass"`
    72  	// The name of the file share. Must be set if an S3 prefix name is set in `locationArn`.
    73  	FileShareName pulumi.StringOutput `pulumi:"fileShareName"`
    74  	// ID of the NFS File Share.
    75  	FileshareId pulumi.StringOutput `pulumi:"fileshareId"`
    76  	// Amazon Resource Name (ARN) of the file gateway.
    77  	GatewayArn pulumi.StringOutput `pulumi:"gatewayArn"`
    78  	// Boolean value that enables guessing of the MIME type for uploaded objects based on file extensions. Defaults to `true`.
    79  	GuessMimeTypeEnabled pulumi.BoolPtrOutput `pulumi:"guessMimeTypeEnabled"`
    80  	// Boolean value if `true` to use Amazon S3 server side encryption with your own AWS KMS key, or `false` to use a key managed by Amazon S3. Defaults to `false`.
    81  	KmsEncrypted pulumi.BoolPtrOutput `pulumi:"kmsEncrypted"`
    82  	// Amazon Resource Name (ARN) for KMS key used for Amazon S3 server side encryption. This value can only be set when `kmsEncrypted` is true.
    83  	KmsKeyArn pulumi.StringPtrOutput `pulumi:"kmsKeyArn"`
    84  	// The ARN of the backed storage used for storing file data.
    85  	LocationArn pulumi.StringOutput `pulumi:"locationArn"`
    86  	// Nested argument with file share default values. More information below. see NFS File Share Defaults for more details.
    87  	NfsFileShareDefaults NfsFileShareNfsFileShareDefaultsPtrOutput `pulumi:"nfsFileShareDefaults"`
    88  	// The notification policy of the file share. For more information see the [AWS Documentation](https://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateNFSFileShare.html#StorageGateway-CreateNFSFileShare-request-NotificationPolicy). Default value is `{}`.
    89  	NotificationPolicy pulumi.StringPtrOutput `pulumi:"notificationPolicy"`
    90  	// Access Control List permission for S3 objects. Defaults to `private`.
    91  	ObjectAcl pulumi.StringPtrOutput `pulumi:"objectAcl"`
    92  	// File share path used by the NFS client to identify the mount point.
    93  	Path pulumi.StringOutput `pulumi:"path"`
    94  	// Boolean to indicate write status of file share. File share does not accept writes if `true`. Defaults to `false`.
    95  	ReadOnly pulumi.BoolPtrOutput `pulumi:"readOnly"`
    96  	// Boolean who pays the cost of the request and the data download from the Amazon S3 bucket. Set this value to `true` if you want the requester to pay instead of the bucket owner. Defaults to `false`.
    97  	RequesterPays pulumi.BoolPtrOutput `pulumi:"requesterPays"`
    98  	// The ARN of the AWS Identity and Access Management (IAM) role that a file gateway assumes when it accesses the underlying storage.
    99  	RoleArn pulumi.StringOutput `pulumi:"roleArn"`
   100  	// Maps a user to anonymous user. Defaults to `RootSquash`. Valid values: `RootSquash` (only root is mapped to anonymous user), `NoSquash` (no one is mapped to anonymous user), `AllSquash` (everyone is mapped to anonymous user)
   101  	Squash pulumi.StringPtrOutput `pulumi:"squash"`
   102  	// Key-value map of resource tags. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   103  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   104  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   105  	//
   106  	// Deprecated: Please use `tags` instead.
   107  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   108  	// The DNS name of the VPC endpoint for S3 PrivateLink.
   109  	VpcEndpointDnsName pulumi.StringPtrOutput `pulumi:"vpcEndpointDnsName"`
   110  }
   111  
   112  // NewNfsFileShare registers a new resource with the given unique name, arguments, and options.
   113  func NewNfsFileShare(ctx *pulumi.Context,
   114  	name string, args *NfsFileShareArgs, opts ...pulumi.ResourceOption) (*NfsFileShare, error) {
   115  	if args == nil {
   116  		return nil, errors.New("missing one or more required arguments")
   117  	}
   118  
   119  	if args.ClientLists == nil {
   120  		return nil, errors.New("invalid value for required argument 'ClientLists'")
   121  	}
   122  	if args.GatewayArn == nil {
   123  		return nil, errors.New("invalid value for required argument 'GatewayArn'")
   124  	}
   125  	if args.LocationArn == nil {
   126  		return nil, errors.New("invalid value for required argument 'LocationArn'")
   127  	}
   128  	if args.RoleArn == nil {
   129  		return nil, errors.New("invalid value for required argument 'RoleArn'")
   130  	}
   131  	opts = internal.PkgResourceDefaultOpts(opts)
   132  	var resource NfsFileShare
   133  	err := ctx.RegisterResource("aws:storagegateway/nfsFileShare:NfsFileShare", name, args, &resource, opts...)
   134  	if err != nil {
   135  		return nil, err
   136  	}
   137  	return &resource, nil
   138  }
   139  
   140  // GetNfsFileShare gets an existing NfsFileShare resource's state with the given name, ID, and optional
   141  // state properties that are used to uniquely qualify the lookup (nil if not required).
   142  func GetNfsFileShare(ctx *pulumi.Context,
   143  	name string, id pulumi.IDInput, state *NfsFileShareState, opts ...pulumi.ResourceOption) (*NfsFileShare, error) {
   144  	var resource NfsFileShare
   145  	err := ctx.ReadResource("aws:storagegateway/nfsFileShare:NfsFileShare", name, id, state, &resource, opts...)
   146  	if err != nil {
   147  		return nil, err
   148  	}
   149  	return &resource, nil
   150  }
   151  
   152  // Input properties used for looking up and filtering NfsFileShare resources.
   153  type nfsFileShareState struct {
   154  	// Amazon Resource Name (ARN) of the NFS File Share.
   155  	Arn *string `pulumi:"arn"`
   156  	// The Amazon Resource Name (ARN) of the storage used for audit logs.
   157  	AuditDestinationArn *string `pulumi:"auditDestinationArn"`
   158  	// The region of the S3 bucket used by the file share. Required when specifying `vpcEndpointDnsName`.
   159  	BucketRegion *string `pulumi:"bucketRegion"`
   160  	// Refresh cache information. see Cache Attributes for more details.
   161  	CacheAttributes *NfsFileShareCacheAttributes `pulumi:"cacheAttributes"`
   162  	// The list of clients that are allowed to access the file gateway. The list must contain either valid IP addresses or valid CIDR blocks. Set to `["0.0.0.0/0"]` to not limit access. Minimum 1 item. Maximum 100 items.
   163  	ClientLists []string `pulumi:"clientLists"`
   164  	// The default [storage class](https://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateNFSFileShare.html#StorageGateway-CreateNFSFileShare-request-DefaultStorageClass) for objects put into an Amazon S3 bucket by the file gateway. Defaults to `S3_STANDARD`.
   165  	DefaultStorageClass *string `pulumi:"defaultStorageClass"`
   166  	// The name of the file share. Must be set if an S3 prefix name is set in `locationArn`.
   167  	FileShareName *string `pulumi:"fileShareName"`
   168  	// ID of the NFS File Share.
   169  	FileshareId *string `pulumi:"fileshareId"`
   170  	// Amazon Resource Name (ARN) of the file gateway.
   171  	GatewayArn *string `pulumi:"gatewayArn"`
   172  	// Boolean value that enables guessing of the MIME type for uploaded objects based on file extensions. Defaults to `true`.
   173  	GuessMimeTypeEnabled *bool `pulumi:"guessMimeTypeEnabled"`
   174  	// Boolean value if `true` to use Amazon S3 server side encryption with your own AWS KMS key, or `false` to use a key managed by Amazon S3. Defaults to `false`.
   175  	KmsEncrypted *bool `pulumi:"kmsEncrypted"`
   176  	// Amazon Resource Name (ARN) for KMS key used for Amazon S3 server side encryption. This value can only be set when `kmsEncrypted` is true.
   177  	KmsKeyArn *string `pulumi:"kmsKeyArn"`
   178  	// The ARN of the backed storage used for storing file data.
   179  	LocationArn *string `pulumi:"locationArn"`
   180  	// Nested argument with file share default values. More information below. see NFS File Share Defaults for more details.
   181  	NfsFileShareDefaults *NfsFileShareNfsFileShareDefaults `pulumi:"nfsFileShareDefaults"`
   182  	// The notification policy of the file share. For more information see the [AWS Documentation](https://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateNFSFileShare.html#StorageGateway-CreateNFSFileShare-request-NotificationPolicy). Default value is `{}`.
   183  	NotificationPolicy *string `pulumi:"notificationPolicy"`
   184  	// Access Control List permission for S3 objects. Defaults to `private`.
   185  	ObjectAcl *string `pulumi:"objectAcl"`
   186  	// File share path used by the NFS client to identify the mount point.
   187  	Path *string `pulumi:"path"`
   188  	// Boolean to indicate write status of file share. File share does not accept writes if `true`. Defaults to `false`.
   189  	ReadOnly *bool `pulumi:"readOnly"`
   190  	// Boolean who pays the cost of the request and the data download from the Amazon S3 bucket. Set this value to `true` if you want the requester to pay instead of the bucket owner. Defaults to `false`.
   191  	RequesterPays *bool `pulumi:"requesterPays"`
   192  	// The ARN of the AWS Identity and Access Management (IAM) role that a file gateway assumes when it accesses the underlying storage.
   193  	RoleArn *string `pulumi:"roleArn"`
   194  	// Maps a user to anonymous user. Defaults to `RootSquash`. Valid values: `RootSquash` (only root is mapped to anonymous user), `NoSquash` (no one is mapped to anonymous user), `AllSquash` (everyone is mapped to anonymous user)
   195  	Squash *string `pulumi:"squash"`
   196  	// Key-value map of resource tags. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   197  	Tags map[string]string `pulumi:"tags"`
   198  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   199  	//
   200  	// Deprecated: Please use `tags` instead.
   201  	TagsAll map[string]string `pulumi:"tagsAll"`
   202  	// The DNS name of the VPC endpoint for S3 PrivateLink.
   203  	VpcEndpointDnsName *string `pulumi:"vpcEndpointDnsName"`
   204  }
   205  
   206  type NfsFileShareState struct {
   207  	// Amazon Resource Name (ARN) of the NFS File Share.
   208  	Arn pulumi.StringPtrInput
   209  	// The Amazon Resource Name (ARN) of the storage used for audit logs.
   210  	AuditDestinationArn pulumi.StringPtrInput
   211  	// The region of the S3 bucket used by the file share. Required when specifying `vpcEndpointDnsName`.
   212  	BucketRegion pulumi.StringPtrInput
   213  	// Refresh cache information. see Cache Attributes for more details.
   214  	CacheAttributes NfsFileShareCacheAttributesPtrInput
   215  	// The list of clients that are allowed to access the file gateway. The list must contain either valid IP addresses or valid CIDR blocks. Set to `["0.0.0.0/0"]` to not limit access. Minimum 1 item. Maximum 100 items.
   216  	ClientLists pulumi.StringArrayInput
   217  	// The default [storage class](https://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateNFSFileShare.html#StorageGateway-CreateNFSFileShare-request-DefaultStorageClass) for objects put into an Amazon S3 bucket by the file gateway. Defaults to `S3_STANDARD`.
   218  	DefaultStorageClass pulumi.StringPtrInput
   219  	// The name of the file share. Must be set if an S3 prefix name is set in `locationArn`.
   220  	FileShareName pulumi.StringPtrInput
   221  	// ID of the NFS File Share.
   222  	FileshareId pulumi.StringPtrInput
   223  	// Amazon Resource Name (ARN) of the file gateway.
   224  	GatewayArn pulumi.StringPtrInput
   225  	// Boolean value that enables guessing of the MIME type for uploaded objects based on file extensions. Defaults to `true`.
   226  	GuessMimeTypeEnabled pulumi.BoolPtrInput
   227  	// Boolean value if `true` to use Amazon S3 server side encryption with your own AWS KMS key, or `false` to use a key managed by Amazon S3. Defaults to `false`.
   228  	KmsEncrypted pulumi.BoolPtrInput
   229  	// Amazon Resource Name (ARN) for KMS key used for Amazon S3 server side encryption. This value can only be set when `kmsEncrypted` is true.
   230  	KmsKeyArn pulumi.StringPtrInput
   231  	// The ARN of the backed storage used for storing file data.
   232  	LocationArn pulumi.StringPtrInput
   233  	// Nested argument with file share default values. More information below. see NFS File Share Defaults for more details.
   234  	NfsFileShareDefaults NfsFileShareNfsFileShareDefaultsPtrInput
   235  	// The notification policy of the file share. For more information see the [AWS Documentation](https://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateNFSFileShare.html#StorageGateway-CreateNFSFileShare-request-NotificationPolicy). Default value is `{}`.
   236  	NotificationPolicy pulumi.StringPtrInput
   237  	// Access Control List permission for S3 objects. Defaults to `private`.
   238  	ObjectAcl pulumi.StringPtrInput
   239  	// File share path used by the NFS client to identify the mount point.
   240  	Path pulumi.StringPtrInput
   241  	// Boolean to indicate write status of file share. File share does not accept writes if `true`. Defaults to `false`.
   242  	ReadOnly pulumi.BoolPtrInput
   243  	// Boolean who pays the cost of the request and the data download from the Amazon S3 bucket. Set this value to `true` if you want the requester to pay instead of the bucket owner. Defaults to `false`.
   244  	RequesterPays pulumi.BoolPtrInput
   245  	// The ARN of the AWS Identity and Access Management (IAM) role that a file gateway assumes when it accesses the underlying storage.
   246  	RoleArn pulumi.StringPtrInput
   247  	// Maps a user to anonymous user. Defaults to `RootSquash`. Valid values: `RootSquash` (only root is mapped to anonymous user), `NoSquash` (no one is mapped to anonymous user), `AllSquash` (everyone is mapped to anonymous user)
   248  	Squash pulumi.StringPtrInput
   249  	// Key-value map of resource tags. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   250  	Tags pulumi.StringMapInput
   251  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   252  	//
   253  	// Deprecated: Please use `tags` instead.
   254  	TagsAll pulumi.StringMapInput
   255  	// The DNS name of the VPC endpoint for S3 PrivateLink.
   256  	VpcEndpointDnsName pulumi.StringPtrInput
   257  }
   258  
   259  func (NfsFileShareState) ElementType() reflect.Type {
   260  	return reflect.TypeOf((*nfsFileShareState)(nil)).Elem()
   261  }
   262  
   263  type nfsFileShareArgs struct {
   264  	// The Amazon Resource Name (ARN) of the storage used for audit logs.
   265  	AuditDestinationArn *string `pulumi:"auditDestinationArn"`
   266  	// The region of the S3 bucket used by the file share. Required when specifying `vpcEndpointDnsName`.
   267  	BucketRegion *string `pulumi:"bucketRegion"`
   268  	// Refresh cache information. see Cache Attributes for more details.
   269  	CacheAttributes *NfsFileShareCacheAttributes `pulumi:"cacheAttributes"`
   270  	// The list of clients that are allowed to access the file gateway. The list must contain either valid IP addresses or valid CIDR blocks. Set to `["0.0.0.0/0"]` to not limit access. Minimum 1 item. Maximum 100 items.
   271  	ClientLists []string `pulumi:"clientLists"`
   272  	// The default [storage class](https://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateNFSFileShare.html#StorageGateway-CreateNFSFileShare-request-DefaultStorageClass) for objects put into an Amazon S3 bucket by the file gateway. Defaults to `S3_STANDARD`.
   273  	DefaultStorageClass *string `pulumi:"defaultStorageClass"`
   274  	// The name of the file share. Must be set if an S3 prefix name is set in `locationArn`.
   275  	FileShareName *string `pulumi:"fileShareName"`
   276  	// Amazon Resource Name (ARN) of the file gateway.
   277  	GatewayArn string `pulumi:"gatewayArn"`
   278  	// Boolean value that enables guessing of the MIME type for uploaded objects based on file extensions. Defaults to `true`.
   279  	GuessMimeTypeEnabled *bool `pulumi:"guessMimeTypeEnabled"`
   280  	// Boolean value if `true` to use Amazon S3 server side encryption with your own AWS KMS key, or `false` to use a key managed by Amazon S3. Defaults to `false`.
   281  	KmsEncrypted *bool `pulumi:"kmsEncrypted"`
   282  	// Amazon Resource Name (ARN) for KMS key used for Amazon S3 server side encryption. This value can only be set when `kmsEncrypted` is true.
   283  	KmsKeyArn *string `pulumi:"kmsKeyArn"`
   284  	// The ARN of the backed storage used for storing file data.
   285  	LocationArn string `pulumi:"locationArn"`
   286  	// Nested argument with file share default values. More information below. see NFS File Share Defaults for more details.
   287  	NfsFileShareDefaults *NfsFileShareNfsFileShareDefaults `pulumi:"nfsFileShareDefaults"`
   288  	// The notification policy of the file share. For more information see the [AWS Documentation](https://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateNFSFileShare.html#StorageGateway-CreateNFSFileShare-request-NotificationPolicy). Default value is `{}`.
   289  	NotificationPolicy *string `pulumi:"notificationPolicy"`
   290  	// Access Control List permission for S3 objects. Defaults to `private`.
   291  	ObjectAcl *string `pulumi:"objectAcl"`
   292  	// Boolean to indicate write status of file share. File share does not accept writes if `true`. Defaults to `false`.
   293  	ReadOnly *bool `pulumi:"readOnly"`
   294  	// Boolean who pays the cost of the request and the data download from the Amazon S3 bucket. Set this value to `true` if you want the requester to pay instead of the bucket owner. Defaults to `false`.
   295  	RequesterPays *bool `pulumi:"requesterPays"`
   296  	// The ARN of the AWS Identity and Access Management (IAM) role that a file gateway assumes when it accesses the underlying storage.
   297  	RoleArn string `pulumi:"roleArn"`
   298  	// Maps a user to anonymous user. Defaults to `RootSquash`. Valid values: `RootSquash` (only root is mapped to anonymous user), `NoSquash` (no one is mapped to anonymous user), `AllSquash` (everyone is mapped to anonymous user)
   299  	Squash *string `pulumi:"squash"`
   300  	// Key-value map of resource tags. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   301  	Tags map[string]string `pulumi:"tags"`
   302  	// The DNS name of the VPC endpoint for S3 PrivateLink.
   303  	VpcEndpointDnsName *string `pulumi:"vpcEndpointDnsName"`
   304  }
   305  
   306  // The set of arguments for constructing a NfsFileShare resource.
   307  type NfsFileShareArgs struct {
   308  	// The Amazon Resource Name (ARN) of the storage used for audit logs.
   309  	AuditDestinationArn pulumi.StringPtrInput
   310  	// The region of the S3 bucket used by the file share. Required when specifying `vpcEndpointDnsName`.
   311  	BucketRegion pulumi.StringPtrInput
   312  	// Refresh cache information. see Cache Attributes for more details.
   313  	CacheAttributes NfsFileShareCacheAttributesPtrInput
   314  	// The list of clients that are allowed to access the file gateway. The list must contain either valid IP addresses or valid CIDR blocks. Set to `["0.0.0.0/0"]` to not limit access. Minimum 1 item. Maximum 100 items.
   315  	ClientLists pulumi.StringArrayInput
   316  	// The default [storage class](https://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateNFSFileShare.html#StorageGateway-CreateNFSFileShare-request-DefaultStorageClass) for objects put into an Amazon S3 bucket by the file gateway. Defaults to `S3_STANDARD`.
   317  	DefaultStorageClass pulumi.StringPtrInput
   318  	// The name of the file share. Must be set if an S3 prefix name is set in `locationArn`.
   319  	FileShareName pulumi.StringPtrInput
   320  	// Amazon Resource Name (ARN) of the file gateway.
   321  	GatewayArn pulumi.StringInput
   322  	// Boolean value that enables guessing of the MIME type for uploaded objects based on file extensions. Defaults to `true`.
   323  	GuessMimeTypeEnabled pulumi.BoolPtrInput
   324  	// Boolean value if `true` to use Amazon S3 server side encryption with your own AWS KMS key, or `false` to use a key managed by Amazon S3. Defaults to `false`.
   325  	KmsEncrypted pulumi.BoolPtrInput
   326  	// Amazon Resource Name (ARN) for KMS key used for Amazon S3 server side encryption. This value can only be set when `kmsEncrypted` is true.
   327  	KmsKeyArn pulumi.StringPtrInput
   328  	// The ARN of the backed storage used for storing file data.
   329  	LocationArn pulumi.StringInput
   330  	// Nested argument with file share default values. More information below. see NFS File Share Defaults for more details.
   331  	NfsFileShareDefaults NfsFileShareNfsFileShareDefaultsPtrInput
   332  	// The notification policy of the file share. For more information see the [AWS Documentation](https://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateNFSFileShare.html#StorageGateway-CreateNFSFileShare-request-NotificationPolicy). Default value is `{}`.
   333  	NotificationPolicy pulumi.StringPtrInput
   334  	// Access Control List permission for S3 objects. Defaults to `private`.
   335  	ObjectAcl pulumi.StringPtrInput
   336  	// Boolean to indicate write status of file share. File share does not accept writes if `true`. Defaults to `false`.
   337  	ReadOnly pulumi.BoolPtrInput
   338  	// Boolean who pays the cost of the request and the data download from the Amazon S3 bucket. Set this value to `true` if you want the requester to pay instead of the bucket owner. Defaults to `false`.
   339  	RequesterPays pulumi.BoolPtrInput
   340  	// The ARN of the AWS Identity and Access Management (IAM) role that a file gateway assumes when it accesses the underlying storage.
   341  	RoleArn pulumi.StringInput
   342  	// Maps a user to anonymous user. Defaults to `RootSquash`. Valid values: `RootSquash` (only root is mapped to anonymous user), `NoSquash` (no one is mapped to anonymous user), `AllSquash` (everyone is mapped to anonymous user)
   343  	Squash pulumi.StringPtrInput
   344  	// Key-value map of resource tags. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   345  	Tags pulumi.StringMapInput
   346  	// The DNS name of the VPC endpoint for S3 PrivateLink.
   347  	VpcEndpointDnsName pulumi.StringPtrInput
   348  }
   349  
   350  func (NfsFileShareArgs) ElementType() reflect.Type {
   351  	return reflect.TypeOf((*nfsFileShareArgs)(nil)).Elem()
   352  }
   353  
   354  type NfsFileShareInput interface {
   355  	pulumi.Input
   356  
   357  	ToNfsFileShareOutput() NfsFileShareOutput
   358  	ToNfsFileShareOutputWithContext(ctx context.Context) NfsFileShareOutput
   359  }
   360  
   361  func (*NfsFileShare) ElementType() reflect.Type {
   362  	return reflect.TypeOf((**NfsFileShare)(nil)).Elem()
   363  }
   364  
   365  func (i *NfsFileShare) ToNfsFileShareOutput() NfsFileShareOutput {
   366  	return i.ToNfsFileShareOutputWithContext(context.Background())
   367  }
   368  
   369  func (i *NfsFileShare) ToNfsFileShareOutputWithContext(ctx context.Context) NfsFileShareOutput {
   370  	return pulumi.ToOutputWithContext(ctx, i).(NfsFileShareOutput)
   371  }
   372  
   373  // NfsFileShareArrayInput is an input type that accepts NfsFileShareArray and NfsFileShareArrayOutput values.
   374  // You can construct a concrete instance of `NfsFileShareArrayInput` via:
   375  //
   376  //	NfsFileShareArray{ NfsFileShareArgs{...} }
   377  type NfsFileShareArrayInput interface {
   378  	pulumi.Input
   379  
   380  	ToNfsFileShareArrayOutput() NfsFileShareArrayOutput
   381  	ToNfsFileShareArrayOutputWithContext(context.Context) NfsFileShareArrayOutput
   382  }
   383  
   384  type NfsFileShareArray []NfsFileShareInput
   385  
   386  func (NfsFileShareArray) ElementType() reflect.Type {
   387  	return reflect.TypeOf((*[]*NfsFileShare)(nil)).Elem()
   388  }
   389  
   390  func (i NfsFileShareArray) ToNfsFileShareArrayOutput() NfsFileShareArrayOutput {
   391  	return i.ToNfsFileShareArrayOutputWithContext(context.Background())
   392  }
   393  
   394  func (i NfsFileShareArray) ToNfsFileShareArrayOutputWithContext(ctx context.Context) NfsFileShareArrayOutput {
   395  	return pulumi.ToOutputWithContext(ctx, i).(NfsFileShareArrayOutput)
   396  }
   397  
   398  // NfsFileShareMapInput is an input type that accepts NfsFileShareMap and NfsFileShareMapOutput values.
   399  // You can construct a concrete instance of `NfsFileShareMapInput` via:
   400  //
   401  //	NfsFileShareMap{ "key": NfsFileShareArgs{...} }
   402  type NfsFileShareMapInput interface {
   403  	pulumi.Input
   404  
   405  	ToNfsFileShareMapOutput() NfsFileShareMapOutput
   406  	ToNfsFileShareMapOutputWithContext(context.Context) NfsFileShareMapOutput
   407  }
   408  
   409  type NfsFileShareMap map[string]NfsFileShareInput
   410  
   411  func (NfsFileShareMap) ElementType() reflect.Type {
   412  	return reflect.TypeOf((*map[string]*NfsFileShare)(nil)).Elem()
   413  }
   414  
   415  func (i NfsFileShareMap) ToNfsFileShareMapOutput() NfsFileShareMapOutput {
   416  	return i.ToNfsFileShareMapOutputWithContext(context.Background())
   417  }
   418  
   419  func (i NfsFileShareMap) ToNfsFileShareMapOutputWithContext(ctx context.Context) NfsFileShareMapOutput {
   420  	return pulumi.ToOutputWithContext(ctx, i).(NfsFileShareMapOutput)
   421  }
   422  
   423  type NfsFileShareOutput struct{ *pulumi.OutputState }
   424  
   425  func (NfsFileShareOutput) ElementType() reflect.Type {
   426  	return reflect.TypeOf((**NfsFileShare)(nil)).Elem()
   427  }
   428  
   429  func (o NfsFileShareOutput) ToNfsFileShareOutput() NfsFileShareOutput {
   430  	return o
   431  }
   432  
   433  func (o NfsFileShareOutput) ToNfsFileShareOutputWithContext(ctx context.Context) NfsFileShareOutput {
   434  	return o
   435  }
   436  
   437  // Amazon Resource Name (ARN) of the NFS File Share.
   438  func (o NfsFileShareOutput) Arn() pulumi.StringOutput {
   439  	return o.ApplyT(func(v *NfsFileShare) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   440  }
   441  
   442  // The Amazon Resource Name (ARN) of the storage used for audit logs.
   443  func (o NfsFileShareOutput) AuditDestinationArn() pulumi.StringPtrOutput {
   444  	return o.ApplyT(func(v *NfsFileShare) pulumi.StringPtrOutput { return v.AuditDestinationArn }).(pulumi.StringPtrOutput)
   445  }
   446  
   447  // The region of the S3 bucket used by the file share. Required when specifying `vpcEndpointDnsName`.
   448  func (o NfsFileShareOutput) BucketRegion() pulumi.StringPtrOutput {
   449  	return o.ApplyT(func(v *NfsFileShare) pulumi.StringPtrOutput { return v.BucketRegion }).(pulumi.StringPtrOutput)
   450  }
   451  
   452  // Refresh cache information. see Cache Attributes for more details.
   453  func (o NfsFileShareOutput) CacheAttributes() NfsFileShareCacheAttributesPtrOutput {
   454  	return o.ApplyT(func(v *NfsFileShare) NfsFileShareCacheAttributesPtrOutput { return v.CacheAttributes }).(NfsFileShareCacheAttributesPtrOutput)
   455  }
   456  
   457  // The list of clients that are allowed to access the file gateway. The list must contain either valid IP addresses or valid CIDR blocks. Set to `["0.0.0.0/0"]` to not limit access. Minimum 1 item. Maximum 100 items.
   458  func (o NfsFileShareOutput) ClientLists() pulumi.StringArrayOutput {
   459  	return o.ApplyT(func(v *NfsFileShare) pulumi.StringArrayOutput { return v.ClientLists }).(pulumi.StringArrayOutput)
   460  }
   461  
   462  // The default [storage class](https://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateNFSFileShare.html#StorageGateway-CreateNFSFileShare-request-DefaultStorageClass) for objects put into an Amazon S3 bucket by the file gateway. Defaults to `S3_STANDARD`.
   463  func (o NfsFileShareOutput) DefaultStorageClass() pulumi.StringPtrOutput {
   464  	return o.ApplyT(func(v *NfsFileShare) pulumi.StringPtrOutput { return v.DefaultStorageClass }).(pulumi.StringPtrOutput)
   465  }
   466  
   467  // The name of the file share. Must be set if an S3 prefix name is set in `locationArn`.
   468  func (o NfsFileShareOutput) FileShareName() pulumi.StringOutput {
   469  	return o.ApplyT(func(v *NfsFileShare) pulumi.StringOutput { return v.FileShareName }).(pulumi.StringOutput)
   470  }
   471  
   472  // ID of the NFS File Share.
   473  func (o NfsFileShareOutput) FileshareId() pulumi.StringOutput {
   474  	return o.ApplyT(func(v *NfsFileShare) pulumi.StringOutput { return v.FileshareId }).(pulumi.StringOutput)
   475  }
   476  
   477  // Amazon Resource Name (ARN) of the file gateway.
   478  func (o NfsFileShareOutput) GatewayArn() pulumi.StringOutput {
   479  	return o.ApplyT(func(v *NfsFileShare) pulumi.StringOutput { return v.GatewayArn }).(pulumi.StringOutput)
   480  }
   481  
   482  // Boolean value that enables guessing of the MIME type for uploaded objects based on file extensions. Defaults to `true`.
   483  func (o NfsFileShareOutput) GuessMimeTypeEnabled() pulumi.BoolPtrOutput {
   484  	return o.ApplyT(func(v *NfsFileShare) pulumi.BoolPtrOutput { return v.GuessMimeTypeEnabled }).(pulumi.BoolPtrOutput)
   485  }
   486  
   487  // Boolean value if `true` to use Amazon S3 server side encryption with your own AWS KMS key, or `false` to use a key managed by Amazon S3. Defaults to `false`.
   488  func (o NfsFileShareOutput) KmsEncrypted() pulumi.BoolPtrOutput {
   489  	return o.ApplyT(func(v *NfsFileShare) pulumi.BoolPtrOutput { return v.KmsEncrypted }).(pulumi.BoolPtrOutput)
   490  }
   491  
   492  // Amazon Resource Name (ARN) for KMS key used for Amazon S3 server side encryption. This value can only be set when `kmsEncrypted` is true.
   493  func (o NfsFileShareOutput) KmsKeyArn() pulumi.StringPtrOutput {
   494  	return o.ApplyT(func(v *NfsFileShare) pulumi.StringPtrOutput { return v.KmsKeyArn }).(pulumi.StringPtrOutput)
   495  }
   496  
   497  // The ARN of the backed storage used for storing file data.
   498  func (o NfsFileShareOutput) LocationArn() pulumi.StringOutput {
   499  	return o.ApplyT(func(v *NfsFileShare) pulumi.StringOutput { return v.LocationArn }).(pulumi.StringOutput)
   500  }
   501  
   502  // Nested argument with file share default values. More information below. see NFS File Share Defaults for more details.
   503  func (o NfsFileShareOutput) NfsFileShareDefaults() NfsFileShareNfsFileShareDefaultsPtrOutput {
   504  	return o.ApplyT(func(v *NfsFileShare) NfsFileShareNfsFileShareDefaultsPtrOutput { return v.NfsFileShareDefaults }).(NfsFileShareNfsFileShareDefaultsPtrOutput)
   505  }
   506  
   507  // The notification policy of the file share. For more information see the [AWS Documentation](https://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateNFSFileShare.html#StorageGateway-CreateNFSFileShare-request-NotificationPolicy). Default value is `{}`.
   508  func (o NfsFileShareOutput) NotificationPolicy() pulumi.StringPtrOutput {
   509  	return o.ApplyT(func(v *NfsFileShare) pulumi.StringPtrOutput { return v.NotificationPolicy }).(pulumi.StringPtrOutput)
   510  }
   511  
   512  // Access Control List permission for S3 objects. Defaults to `private`.
   513  func (o NfsFileShareOutput) ObjectAcl() pulumi.StringPtrOutput {
   514  	return o.ApplyT(func(v *NfsFileShare) pulumi.StringPtrOutput { return v.ObjectAcl }).(pulumi.StringPtrOutput)
   515  }
   516  
   517  // File share path used by the NFS client to identify the mount point.
   518  func (o NfsFileShareOutput) Path() pulumi.StringOutput {
   519  	return o.ApplyT(func(v *NfsFileShare) pulumi.StringOutput { return v.Path }).(pulumi.StringOutput)
   520  }
   521  
   522  // Boolean to indicate write status of file share. File share does not accept writes if `true`. Defaults to `false`.
   523  func (o NfsFileShareOutput) ReadOnly() pulumi.BoolPtrOutput {
   524  	return o.ApplyT(func(v *NfsFileShare) pulumi.BoolPtrOutput { return v.ReadOnly }).(pulumi.BoolPtrOutput)
   525  }
   526  
   527  // Boolean who pays the cost of the request and the data download from the Amazon S3 bucket. Set this value to `true` if you want the requester to pay instead of the bucket owner. Defaults to `false`.
   528  func (o NfsFileShareOutput) RequesterPays() pulumi.BoolPtrOutput {
   529  	return o.ApplyT(func(v *NfsFileShare) pulumi.BoolPtrOutput { return v.RequesterPays }).(pulumi.BoolPtrOutput)
   530  }
   531  
   532  // The ARN of the AWS Identity and Access Management (IAM) role that a file gateway assumes when it accesses the underlying storage.
   533  func (o NfsFileShareOutput) RoleArn() pulumi.StringOutput {
   534  	return o.ApplyT(func(v *NfsFileShare) pulumi.StringOutput { return v.RoleArn }).(pulumi.StringOutput)
   535  }
   536  
   537  // Maps a user to anonymous user. Defaults to `RootSquash`. Valid values: `RootSquash` (only root is mapped to anonymous user), `NoSquash` (no one is mapped to anonymous user), `AllSquash` (everyone is mapped to anonymous user)
   538  func (o NfsFileShareOutput) Squash() pulumi.StringPtrOutput {
   539  	return o.ApplyT(func(v *NfsFileShare) pulumi.StringPtrOutput { return v.Squash }).(pulumi.StringPtrOutput)
   540  }
   541  
   542  // Key-value map of resource tags. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   543  func (o NfsFileShareOutput) Tags() pulumi.StringMapOutput {
   544  	return o.ApplyT(func(v *NfsFileShare) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   545  }
   546  
   547  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   548  //
   549  // Deprecated: Please use `tags` instead.
   550  func (o NfsFileShareOutput) TagsAll() pulumi.StringMapOutput {
   551  	return o.ApplyT(func(v *NfsFileShare) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   552  }
   553  
   554  // The DNS name of the VPC endpoint for S3 PrivateLink.
   555  func (o NfsFileShareOutput) VpcEndpointDnsName() pulumi.StringPtrOutput {
   556  	return o.ApplyT(func(v *NfsFileShare) pulumi.StringPtrOutput { return v.VpcEndpointDnsName }).(pulumi.StringPtrOutput)
   557  }
   558  
   559  type NfsFileShareArrayOutput struct{ *pulumi.OutputState }
   560  
   561  func (NfsFileShareArrayOutput) ElementType() reflect.Type {
   562  	return reflect.TypeOf((*[]*NfsFileShare)(nil)).Elem()
   563  }
   564  
   565  func (o NfsFileShareArrayOutput) ToNfsFileShareArrayOutput() NfsFileShareArrayOutput {
   566  	return o
   567  }
   568  
   569  func (o NfsFileShareArrayOutput) ToNfsFileShareArrayOutputWithContext(ctx context.Context) NfsFileShareArrayOutput {
   570  	return o
   571  }
   572  
   573  func (o NfsFileShareArrayOutput) Index(i pulumi.IntInput) NfsFileShareOutput {
   574  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *NfsFileShare {
   575  		return vs[0].([]*NfsFileShare)[vs[1].(int)]
   576  	}).(NfsFileShareOutput)
   577  }
   578  
   579  type NfsFileShareMapOutput struct{ *pulumi.OutputState }
   580  
   581  func (NfsFileShareMapOutput) ElementType() reflect.Type {
   582  	return reflect.TypeOf((*map[string]*NfsFileShare)(nil)).Elem()
   583  }
   584  
   585  func (o NfsFileShareMapOutput) ToNfsFileShareMapOutput() NfsFileShareMapOutput {
   586  	return o
   587  }
   588  
   589  func (o NfsFileShareMapOutput) ToNfsFileShareMapOutputWithContext(ctx context.Context) NfsFileShareMapOutput {
   590  	return o
   591  }
   592  
   593  func (o NfsFileShareMapOutput) MapIndex(k pulumi.StringInput) NfsFileShareOutput {
   594  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *NfsFileShare {
   595  		return vs[0].(map[string]*NfsFileShare)[vs[1].(string)]
   596  	}).(NfsFileShareOutput)
   597  }
   598  
   599  func init() {
   600  	pulumi.RegisterInputType(reflect.TypeOf((*NfsFileShareInput)(nil)).Elem(), &NfsFileShare{})
   601  	pulumi.RegisterInputType(reflect.TypeOf((*NfsFileShareArrayInput)(nil)).Elem(), NfsFileShareArray{})
   602  	pulumi.RegisterInputType(reflect.TypeOf((*NfsFileShareMapInput)(nil)).Elem(), NfsFileShareMap{})
   603  	pulumi.RegisterOutputType(NfsFileShareOutput{})
   604  	pulumi.RegisterOutputType(NfsFileShareArrayOutput{})
   605  	pulumi.RegisterOutputType(NfsFileShareMapOutput{})
   606  }