createLocationEfs method
Creates a transfer location for an Amazon EFS file system. DataSync can use this location as a source or destination for transferring data.
Before you begin, make sure that you understand how DataSync accesses Amazon EFS file systems.
May throw InternalException.
May throw InvalidRequestException.
Parameter ec2Config :
Specifies the subnet and security groups DataSync uses to connect to one
of your Amazon EFS file system's mount
targets.
Parameter efsFilesystemArn :
Specifies the ARN for your Amazon EFS file system.
Parameter accessPointArn :
Specifies the Amazon Resource Name (ARN) of the access point that DataSync
uses to mount your Amazon EFS file system.
For more information, see Accessing restricted file systems.
Parameter fileSystemAccessRoleArn :
Specifies an Identity and Access Management (IAM) role that allows
DataSync to access your Amazon EFS file system.
For information on creating this role, see Creating a DataSync IAM role for file system access.
Parameter inTransitEncryption :
Specifies whether you want DataSync to use Transport Layer Security (TLS)
1.2 encryption when it transfers data to or from your Amazon EFS file
system.
If you specify an access point using AccessPointArn or an IAM
role using FileSystemAccessRoleArn, you must set this
parameter to TLS1_2.
Parameter subdirectory :
Specifies a mount path for your Amazon EFS file system. This is where
DataSync reads or writes data on your file system (depending on if this is
a source or destination location).
By default, DataSync uses the root directory (or access
point if you provide one by using AccessPointArn). You
can also include subdirectories using forward slashes (for example,
/path/to/folder).
Parameter tags :
Specifies the key-value pair that represents a tag that you want to add to
the resource. The value can be an empty string. This value helps you
manage, filter, and search for your resources. We recommend that you
create a name tag for your location.
Implementation
Future<CreateLocationEfsResponse> createLocationEfs({
required Ec2Config ec2Config,
required String efsFilesystemArn,
String? accessPointArn,
String? fileSystemAccessRoleArn,
EfsInTransitEncryption? inTransitEncryption,
String? subdirectory,
List<TagListEntry>? tags,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'FmrsService.CreateLocationEfs'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'Ec2Config': ec2Config,
'EfsFilesystemArn': efsFilesystemArn,
if (accessPointArn != null) 'AccessPointArn': accessPointArn,
if (fileSystemAccessRoleArn != null)
'FileSystemAccessRoleArn': fileSystemAccessRoleArn,
if (inTransitEncryption != null)
'InTransitEncryption': inTransitEncryption.value,
if (subdirectory != null) 'Subdirectory': subdirectory,
if (tags != null) 'Tags': tags,
},
);
return CreateLocationEfsResponse.fromJson(jsonResponse.body);
}