createDirectory method

Future<CreateDirectoryResult> createDirectory({
  1. required String name,
  2. required String password,
  3. required DirectorySize size,
  4. String? description,
  5. String? shortName,
  6. List<Tag>? tags,
  7. DirectoryVpcSettings? vpcSettings,
})

Creates a Simple AD directory. For more information, see Simple Active Directory in the AWS Directory Service Admin Guide.

Before you call CreateDirectory, ensure that all of the required permissions have been explicitly granted through a policy. For details about what permissions are required to run the CreateDirectory operation, see AWS Directory Service API Permissions: Actions, Resources, and Conditions Reference.

May throw DirectoryLimitExceededException. May throw InvalidParameterException. May throw ClientException. May throw ServiceException.

Parameter name : The fully qualified name for the directory, such as corp.example.com.

Parameter password : The password for the directory administrator. The directory creation process creates a directory administrator account with the user name Administrator and this password.

If you need to change the password for the administrator account, you can use the ResetUserPassword API call.

The regex pattern for this string is made up of the following conditions:

  • Length (?=^.{8,64}$) – Must be between 8 and 64 characters
AND any 3 of the following password complexity rules required by Active Directory:
  • Numbers and upper case and lowercase (?=.*\d)(?=.*[A-Z])(?=.*[a-z])
  • Numbers and special characters and lower case (?=.*\d)(?=.*[^A-Za-z0-9\s])(?=.*[a-z])
  • Special characters and upper case and lower case (?=.*[^A-Za-z0-9\s])(?=.*[A-Z])(?=.*[a-z])
  • Numbers and upper case and special characters (?=.*\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9\s])
For additional information about how Active Directory passwords are enforced, see Password must meet complexity requirements on the Microsoft website.

Parameter size : The size of the directory.

Parameter description : A description for the directory.

Parameter shortName : The NetBIOS name of the directory, such as CORP.

Parameter tags : The tags to be assigned to the Simple AD directory.

Parameter vpcSettings : A DirectoryVpcSettings object that contains additional information for the operation.

Implementation

Future<CreateDirectoryResult> createDirectory({
  required String name,
  required String password,
  required DirectorySize size,
  String? description,
  String? shortName,
  List<Tag>? tags,
  DirectoryVpcSettings? vpcSettings,
}) async {
  ArgumentError.checkNotNull(name, 'name');
  ArgumentError.checkNotNull(password, 'password');
  ArgumentError.checkNotNull(size, 'size');
  _s.validateStringLength(
    'description',
    description,
    0,
    128,
  );
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'DirectoryService_20150416.CreateDirectory'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'Name': name,
      'Password': password,
      'Size': size.toValue(),
      if (description != null) 'Description': description,
      if (shortName != null) 'ShortName': shortName,
      if (tags != null) 'Tags': tags,
      if (vpcSettings != null) 'VpcSettings': vpcSettings,
    },
  );

  return CreateDirectoryResult.fromJson(jsonResponse.body);
}