:doc:`DocDBElastic <../../docdb-elastic>` / Client / create_cluster

**************
create_cluster
**************



.. py:method:: DocDBElastic.Client.create_cluster(**kwargs)

  

  Creates a new Amazon DocumentDB elastic cluster and returns its cluster structure.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/docdb-elastic-2022-11-28/CreateCluster>`_  


  **Request Syntax**
  ::

    response = client.create_cluster(
        adminUserName='string',
        adminUserPassword='string',
        authType='PLAIN_TEXT'|'SECRET_ARN',
        backupRetentionPeriod=123,
        clientToken='string',
        clusterName='string',
        kmsKeyId='string',
        preferredBackupWindow='string',
        preferredMaintenanceWindow='string',
        shardCapacity=123,
        shardCount=123,
        shardInstanceCount=123,
        subnetIds=[
            'string',
        ],
        tags={
            'string': 'string'
        },
        vpcSecurityGroupIds=[
            'string',
        ]
    )
    
  :type adminUserName: string
  :param adminUserName: **[REQUIRED]** 

    The name of the Amazon DocumentDB elastic clusters administrator.

     

    *Constraints*:

     

    
    * Must be from 1 to 63 letters or numbers.
     
    * The first character must be a letter.
     
    * Cannot be a reserved word.
    

    

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

    The password for the Amazon DocumentDB elastic clusters administrator. The password can contain any printable ASCII characters.

     

    *Constraints*:

     

    
    * Must contain from 8 to 100 characters.
     
    * Cannot contain a forward slash (/), double quote ("), or the "at" symbol (@).
    

    

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

    The authentication type used to determine where to fetch the password used for accessing the elastic cluster. Valid types are ``PLAIN_TEXT`` or ``SECRET_ARN``.

    

  
  :type backupRetentionPeriod: integer
  :param backupRetentionPeriod: 

    The number of days for which automatic snapshots are retained.

    

  
  :type clientToken: string
  :param clientToken: 

    The client token for the elastic cluster.

    This field is autopopulated if not provided.

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

    The name of the new elastic cluster. This parameter is stored as a lowercase string.

     

    *Constraints*:

     

    
    * Must contain from 1 to 63 letters, numbers, or hyphens.
     
    * The first character must be a letter.
     
    * Cannot end with a hyphen or contain two consecutive hyphens.
    

     

    *Example*: ``my-cluster``

    

  
  :type kmsKeyId: string
  :param kmsKeyId: 

    The KMS key identifier to use to encrypt the new elastic cluster.

     

    The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a cluster using the same Amazon account that owns this KMS encryption key, you can use the KMS key alias instead of the ARN as the KMS encryption key.

     

    If an encryption key is not specified, Amazon DocumentDB uses the default encryption key that KMS creates for your account. Your account has a different default encryption key for each Amazon Region.

    

  
  :type preferredBackupWindow: string
  :param preferredBackupWindow: 

    The daily time range during which automated backups are created if automated backups are enabled, as determined by the ``backupRetentionPeriod``.

    

  
  :type preferredMaintenanceWindow: string
  :param preferredMaintenanceWindow: 

    The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).

     

    *Format*: ``ddd:hh24:mi-ddd:hh24:mi``

     

    *Default*: a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region, occurring on a random day of the week.

     

    *Valid days*: Mon, Tue, Wed, Thu, Fri, Sat, Sun

     

    *Constraints*: Minimum 30-minute window.

    

  
  :type shardCapacity: integer
  :param shardCapacity: **[REQUIRED]** 

    The number of vCPUs assigned to each elastic cluster shard. Maximum is 64. Allowed values are 2, 4, 8, 16, 32, 64.

    

  
  :type shardCount: integer
  :param shardCount: **[REQUIRED]** 

    The number of shards assigned to the elastic cluster. Maximum is 32.

    

  
  :type shardInstanceCount: integer
  :param shardInstanceCount: 

    The number of replica instances applying to all shards in the elastic cluster. A ``shardInstanceCount`` value of 1 means there is one writer instance, and any additional instances are replicas that can be used for reads and to improve availability.

    

  
  :type subnetIds: list
  :param subnetIds: 

    The Amazon EC2 subnet IDs for the new elastic cluster.

    

  
    - *(string) --* 

    

  :type tags: dict
  :param tags: 

    The tags to be assigned to the new elastic cluster.

    

  
    - *(string) --* 

    
      - *(string) --* 

      


  :type vpcSecurityGroupIds: list
  :param vpcSecurityGroupIds: 

    A list of EC2 VPC security groups to associate with the new elastic cluster.

    

  
    - *(string) --* 

    

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

    
    ::

      {
          'cluster': {
              'adminUserName': 'string',
              'authType': 'PLAIN_TEXT'|'SECRET_ARN',
              'backupRetentionPeriod': 123,
              'clusterArn': 'string',
              'clusterEndpoint': 'string',
              'clusterName': 'string',
              'createTime': 'string',
              'kmsKeyId': 'string',
              'preferredBackupWindow': 'string',
              'preferredMaintenanceWindow': 'string',
              'shardCapacity': 123,
              'shardCount': 123,
              'shardInstanceCount': 123,
              'shards': [
                  {
                      'createTime': 'string',
                      'shardId': 'string',
                      'status': 'CREATING'|'ACTIVE'|'DELETING'|'UPDATING'|'VPC_ENDPOINT_LIMIT_EXCEEDED'|'IP_ADDRESS_LIMIT_EXCEEDED'|'INVALID_SECURITY_GROUP_ID'|'INVALID_SUBNET_ID'|'INACCESSIBLE_ENCRYPTION_CREDS'|'INACCESSIBLE_SECRET_ARN'|'INACCESSIBLE_VPC_ENDPOINT'|'INCOMPATIBLE_NETWORK'|'MERGING'|'MODIFYING'|'SPLITTING'|'COPYING'|'STARTING'|'STOPPING'|'STOPPED'|'MAINTENANCE'|'INACCESSIBLE_ENCRYPTION_CREDENTIALS_RECOVERABLE'
                  },
              ],
              'status': 'CREATING'|'ACTIVE'|'DELETING'|'UPDATING'|'VPC_ENDPOINT_LIMIT_EXCEEDED'|'IP_ADDRESS_LIMIT_EXCEEDED'|'INVALID_SECURITY_GROUP_ID'|'INVALID_SUBNET_ID'|'INACCESSIBLE_ENCRYPTION_CREDS'|'INACCESSIBLE_SECRET_ARN'|'INACCESSIBLE_VPC_ENDPOINT'|'INCOMPATIBLE_NETWORK'|'MERGING'|'MODIFYING'|'SPLITTING'|'COPYING'|'STARTING'|'STOPPING'|'STOPPED'|'MAINTENANCE'|'INACCESSIBLE_ENCRYPTION_CREDENTIALS_RECOVERABLE',
              'subnetIds': [
                  'string',
              ],
              'vpcSecurityGroupIds': [
                  'string',
              ]
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **cluster** *(dict) --* 

        The new elastic cluster that has been created.

        
        

        - **adminUserName** *(string) --* 

          The name of the elastic cluster administrator.

          
        

        - **authType** *(string) --* 

          The authentication type for the elastic cluster.

          
        

        - **backupRetentionPeriod** *(integer) --* 

          The number of days for which automatic snapshots are retained.

          
        

        - **clusterArn** *(string) --* 

          The ARN identifier of the elastic cluster.

          
        

        - **clusterEndpoint** *(string) --* 

          The URL used to connect to the elastic cluster.

          
        

        - **clusterName** *(string) --* 

          The name of the elastic cluster.

          
        

        - **createTime** *(string) --* 

          The time when the elastic cluster was created in Universal Coordinated Time (UTC).

          
        

        - **kmsKeyId** *(string) --* 

          The KMS key identifier to use to encrypt the elastic cluster.

          
        

        - **preferredBackupWindow** *(string) --* 

          The daily time range during which automated backups are created if automated backups are enabled, as determined by ``backupRetentionPeriod``.

          
        

        - **preferredMaintenanceWindow** *(string) --* 

          The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).

           

          *Format*: ``ddd:hh24:mi-ddd:hh24:mi``

          
        

        - **shardCapacity** *(integer) --* 

          The number of vCPUs assigned to each elastic cluster shard. Maximum is 64. Allowed values are 2, 4, 8, 16, 32, 64.

          
        

        - **shardCount** *(integer) --* 

          The number of shards assigned to the elastic cluster. Maximum is 32.

          
        

        - **shardInstanceCount** *(integer) --* 

          The number of replica instances applying to all shards in the cluster. A ``shardInstanceCount`` value of 1 means there is one writer instance, and any additional instances are replicas that can be used for reads and to improve availability.

          
        

        - **shards** *(list) --* 

          The total number of shards in the cluster.

          
          

          - *(dict) --* 

            The name of the shard.

            
            

            - **createTime** *(string) --* 

              The time when the shard was created in Universal Coordinated Time (UTC).

              
            

            - **shardId** *(string) --* 

              The ID of the shard.

              
            

            - **status** *(string) --* 

              The current status of the shard.

              
        
      
        

        - **status** *(string) --* 

          The status of the elastic cluster.

          
        

        - **subnetIds** *(list) --* 

          The Amazon EC2 subnet IDs for the elastic cluster.

          
          

          - *(string) --* 
      
        

        - **vpcSecurityGroupIds** *(list) --* 

          A list of EC2 VPC security groups associated with thie elastic cluster.

          
          

          - *(string) --* 
      
    
  
  **Exceptions**
  
  *   :py:class:`DocDBElastic.Client.exceptions.ThrottlingException`

  
  *   :py:class:`DocDBElastic.Client.exceptions.ValidationException`

  
  *   :py:class:`DocDBElastic.Client.exceptions.ServiceQuotaExceededException`

  
  *   :py:class:`DocDBElastic.Client.exceptions.ConflictException`

  
  *   :py:class:`DocDBElastic.Client.exceptions.InternalServerException`

  
  *   :py:class:`DocDBElastic.Client.exceptions.AccessDeniedException`

  