updateNFSFileShare method
Updates a Network File System (NFS) file share. This operation is only supported in the file gateway type. Updates the following file share settings:
- Default storage class for your S3 bucket
- Metadata defaults for your S3 bucket
- Allowed NFS clients for your file share
- Squash settings
- Write status of your file share
May throw InvalidGatewayRequestException. May throw InternalServerError.
Parameter fileShareARN
:
The Amazon Resource Name (ARN) of the file share to be updated.
Parameter cacheAttributes
:
Refresh cache information.
Parameter clientList
:
The list of clients that are allowed to access the file gateway. The list
must contain either valid IP addresses or valid CIDR blocks.
Parameter defaultStorageClass
:
The default storage class for objects put into an Amazon S3 bucket by the
file gateway. The default value is S3_INTELLIGENT_TIERING
.
Optional.
Valid Values: S3_STANDARD
|
S3_INTELLIGENT_TIERING
| S3_STANDARD_IA
|
S3_ONEZONE_IA
Parameter fileShareName
:
The name of the file share. Optional.
Parameter guessMIMETypeEnabled
:
A value that enables guessing of the MIME type for uploaded objects based
on file extensions. Set this value to true
to enable MIME
type guessing, otherwise set to false
. The default value is
true
.
Valid Values: true
| false
Parameter kMSEncrypted
:
Set to true
to use Amazon S3 server-side encryption with your
own AWS KMS key, or false
to use a key managed by Amazon S3.
Optional.
Valid Values: true
| false
Parameter kMSKey
:
The Amazon Resource Name (ARN) of a symmetric customer master key (CMK)
used for Amazon S3 server-side encryption. Storage Gateway does not
support asymmetric CMKs. This value can only be set when
KMSEncrypted
is true
. Optional.
Parameter nFSFileShareDefaults
:
The default values for the file share. Optional.
Parameter notificationPolicy
:
The notification policy of the file share.
Parameter objectACL
:
A value that sets the access control list (ACL) permission for objects in
the S3 bucket that a file gateway puts objects into. The default value is
private
.
Parameter readOnly
:
A value that sets the write status of a file share. Set this value to
true
to set the write status to read-only, otherwise set to
false
.
Valid Values: true
| false
Parameter requesterPays
:
A value that sets who pays the cost of the request and the cost associated
with data download from the S3 bucket. If this value is set to
true
, the requester pays the costs; otherwise, the S3 bucket
owner pays. However, the S3 bucket owner always pays the cost of storing
data.
Valid Values: true
| false
Parameter squash
:
The user mapped to anonymous user.
Valid values are the following:
-
RootSquash
: Only root is mapped to anonymous user. -
NoSquash
: No one is mapped to anonymous user. -
AllSquash
: Everyone is mapped to anonymous user.
Implementation
Future<UpdateNFSFileShareOutput> updateNFSFileShare({
required String fileShareARN,
CacheAttributes? cacheAttributes,
List<String>? clientList,
String? defaultStorageClass,
String? fileShareName,
bool? guessMIMETypeEnabled,
bool? kMSEncrypted,
String? kMSKey,
NFSFileShareDefaults? nFSFileShareDefaults,
String? notificationPolicy,
ObjectACL? objectACL,
bool? readOnly,
bool? requesterPays,
String? squash,
}) async {
ArgumentError.checkNotNull(fileShareARN, 'fileShareARN');
_s.validateStringLength(
'fileShareARN',
fileShareARN,
50,
500,
isRequired: true,
);
_s.validateStringLength(
'defaultStorageClass',
defaultStorageClass,
5,
50,
);
_s.validateStringLength(
'fileShareName',
fileShareName,
1,
255,
);
_s.validateStringLength(
'kMSKey',
kMSKey,
7,
2048,
);
_s.validateStringLength(
'notificationPolicy',
notificationPolicy,
2,
100,
);
_s.validateStringLength(
'squash',
squash,
5,
15,
);
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'StorageGateway_20130630.UpdateNFSFileShare'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'FileShareARN': fileShareARN,
if (cacheAttributes != null) 'CacheAttributes': cacheAttributes,
if (clientList != null) 'ClientList': clientList,
if (defaultStorageClass != null)
'DefaultStorageClass': defaultStorageClass,
if (fileShareName != null) 'FileShareName': fileShareName,
if (guessMIMETypeEnabled != null)
'GuessMIMETypeEnabled': guessMIMETypeEnabled,
if (kMSEncrypted != null) 'KMSEncrypted': kMSEncrypted,
if (kMSKey != null) 'KMSKey': kMSKey,
if (nFSFileShareDefaults != null)
'NFSFileShareDefaults': nFSFileShareDefaults,
if (notificationPolicy != null)
'NotificationPolicy': notificationPolicy,
if (objectACL != null) 'ObjectACL': objectACL.toValue(),
if (readOnly != null) 'ReadOnly': readOnly,
if (requesterPays != null) 'RequesterPays': requesterPays,
if (squash != null) 'Squash': squash,
},
);
return UpdateNFSFileShareOutput.fromJson(jsonResponse.body);
}