createLocationFsxWindows method

Future<CreateLocationFsxWindowsResponse> createLocationFsxWindows({
  1. required String fsxFilesystemArn,
  2. required List<String> securityGroupArns,
  3. required String user,
  4. CmkSecretConfig? cmkSecretConfig,
  5. CustomSecretConfig? customSecretConfig,
  6. String? domain,
  7. String? password,
  8. String? subdirectory,
  9. List<TagListEntry>? tags,
})

Creates a transfer location for an Amazon FSx for Windows File Server 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 FSx for Windows File Server file systems.

May throw InternalException. May throw InvalidRequestException.

Parameter fsxFilesystemArn : Specifies the Amazon Resource Name (ARN) for the FSx for Windows File Server file system.

Parameter securityGroupArns : Specifies the ARNs of the Amazon EC2 security groups that provide access to your file system's preferred subnet.

The security groups that you specify must be able to communicate with your file system's security groups. For information about configuring security groups for file system access, see the Amazon FSx for Windows File Server User Guide .

  • Configure the security group to allow it to communicate within itself.
  • Choose a different security group that can communicate with the mount target's security group.

Parameter user : Specifies the user with the permissions to mount and access the files, folders, and file metadata in your FSx for Windows File Server file system.

For information about choosing a user with the right level of access for your transfer, see required permissions for FSx for Windows File Server locations.

Parameter cmkSecretConfig : Specifies configuration information for a DataSync-managed secret, which includes the password that DataSync uses to access a specific FSx Windows storage location, with a customer-managed KMS key.

When you include this parameter as part of a CreateLocationFsxWindows request, you provide only the KMS key ARN. DataSync uses this KMS key together with the Password you specify for to create a DataSync-managed secret to store the location access credentials.

Make sure that DataSync has permission to access the KMS key that you specify. For more information, see Using a service-managed secret encrypted with a custom KMS key.

Parameter customSecretConfig : Specifies configuration information for a customer-managed Secrets Manager secret where the password for an FSx for Windows File Server storage location is stored in plain text, in Secrets Manager. This configuration includes the secret ARN, and the ARN for an IAM role that provides access to the secret. For more information, see Using a secret that you manage.

Parameter domain : Specifies the name of the Windows domain that the FSx for Windows File Server file system belongs to.

If you have multiple Active Directory domains in your environment, configuring this parameter makes sure that DataSync connects to the right file system.

Parameter password : Specifies the password of the user with the permissions to mount and access the files, folders, and file metadata in your FSx for Windows File Server file system.

Parameter subdirectory : Specifies a mount path for your file system using forward slashes. This is where DataSync reads or writes data (depending on if this is a source or destination location).

Parameter tags : Specifies labels that help you categorize, filter, and search for your Amazon Web Services resources. We recommend creating at least a name tag for your location.

Implementation

Future<CreateLocationFsxWindowsResponse> createLocationFsxWindows({
  required String fsxFilesystemArn,
  required List<String> securityGroupArns,
  required String user,
  CmkSecretConfig? cmkSecretConfig,
  CustomSecretConfig? customSecretConfig,
  String? domain,
  String? password,
  String? subdirectory,
  List<TagListEntry>? tags,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'FmrsService.CreateLocationFsxWindows'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'FsxFilesystemArn': fsxFilesystemArn,
      'SecurityGroupArns': securityGroupArns,
      'User': user,
      if (cmkSecretConfig != null) 'CmkSecretConfig': cmkSecretConfig,
      if (customSecretConfig != null)
        'CustomSecretConfig': customSecretConfig,
      if (domain != null) 'Domain': domain,
      if (password != null) 'Password': password,
      if (subdirectory != null) 'Subdirectory': subdirectory,
      if (tags != null) 'Tags': tags,
    },
  );

  return CreateLocationFsxWindowsResponse.fromJson(jsonResponse.body);
}