:doc:`DirectoryService <../../ds>` / Client / create_directory

****************
create_directory
****************



.. py:method:: DirectoryService.Client.create_directory(**kwargs)

  

  Creates a Simple AD directory. For more information, see `Simple Active Directory <https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_simple_ad.html>`__ in the *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 `Directory Service API Permissions\: Actions, Resources, and Conditions Reference <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/UsingWithDS_IAM_ResourcePermissions.html>`__.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateDirectory>`_  


  **Request Syntax**
  ::

    response = client.create_directory(
        Name='string',
        ShortName='string',
        Password='string',
        Description='string',
        Size='Small'|'Large',
        VpcSettings={
            'VpcId': 'string',
            'SubnetIds': [
                'string',
            ]
        },
        Tags=[
            {
                'Key': 'string',
                'Value': 'string'
            },
        ],
        NetworkType='Dual-stack'|'IPv4'|'IPv6'
    )
    
  :type Name: string
  :param Name: **[REQUIRED]** 

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

    

  
  :type ShortName: string
  :param ShortName: 

    The NetBIOS name of the directory, such as ``CORP``.

    

  
  :type Password: string
  :param Password: **[REQUIRED]** 

    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 <https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/password-must-meet-complexity-requirements>`__ on the Microsoft website.

    

  
  :type Description: string
  :param Description: 

    A description for the directory.

    

  
  :type Size: string
  :param Size: **[REQUIRED]** 

    The size of the directory.

    

  
  :type VpcSettings: dict
  :param VpcSettings: 

    A  DirectoryVpcSettings object that contains additional information for the operation.

    

  
    - **VpcId** *(string) --* **[REQUIRED]** 

      The identifier of the VPC in which to create the directory.

      

    
    - **SubnetIds** *(list) --* **[REQUIRED]** 

      The identifiers of the subnets for the directory servers. The two subnets must be in different Availability Zones. Directory Service creates a directory server and a DNS server in each of these subnets.

      

    
      - *(string) --* 

      
  
  
  :type Tags: list
  :param Tags: 

    The tags to be assigned to the Simple AD directory.

    

  
    - *(dict) --* 

      Metadata assigned to a directory consisting of a key-value pair.

      

    
      - **Key** *(string) --* **[REQUIRED]** 

        Required name of the tag. The string value can be Unicode characters and cannot be prefixed with "aws:". The string can contain only the set of Unicode letters, digits, white-space, '_', '.', '/', '=', '+', '-', ':', '@'(Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$").

        

      
      - **Value** *(string) --* **[REQUIRED]** 

        The optional value of the tag. The string value can be Unicode characters. The string can contain only the set of Unicode letters, digits, white-space, '_', '.', '/', '=', '+', '-', ':', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$").

        

      
    

  :type NetworkType: string
  :param NetworkType: 

    The network type for your directory. Simple AD supports IPv4 and Dual-stack only.

    

  
  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'DirectoryId': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 

      Contains the results of the  CreateDirectory operation.

      
      

      - **DirectoryId** *(string) --* 

        The identifier of the directory that was created.

        
  
  **Exceptions**
  
  *   :py:class:`DirectoryService.Client.exceptions.DirectoryLimitExceededException`

  
  *   :py:class:`DirectoryService.Client.exceptions.InvalidParameterException`

  
  *   :py:class:`DirectoryService.Client.exceptions.ClientException`

  
  *   :py:class:`DirectoryService.Client.exceptions.ServiceException`

  