:doc:`ElasticsearchService <../../es>` / Client / create_elasticsearch_domain

***************************
create_elasticsearch_domain
***************************



.. py:method:: ElasticsearchService.Client.create_elasticsearch_domain(**kwargs)

  

  Creates a new Elasticsearch domain. For more information, see `Creating Elasticsearch Domains <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomains>`__ in the *Amazon Elasticsearch Service Developer Guide*.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/es-2015-01-01/CreateElasticsearchDomain>`_  


  **Request Syntax**
  ::

    response = client.create_elasticsearch_domain(
        DomainName='string',
        ElasticsearchVersion='string',
        ElasticsearchClusterConfig={
            'InstanceType': 'm3.medium.elasticsearch'|'m3.large.elasticsearch'|'m3.xlarge.elasticsearch'|'m3.2xlarge.elasticsearch'|'m4.large.elasticsearch'|'m4.xlarge.elasticsearch'|'m4.2xlarge.elasticsearch'|'m4.4xlarge.elasticsearch'|'m4.10xlarge.elasticsearch'|'m5.large.elasticsearch'|'m5.xlarge.elasticsearch'|'m5.2xlarge.elasticsearch'|'m5.4xlarge.elasticsearch'|'m5.12xlarge.elasticsearch'|'r5.large.elasticsearch'|'r5.xlarge.elasticsearch'|'r5.2xlarge.elasticsearch'|'r5.4xlarge.elasticsearch'|'r5.12xlarge.elasticsearch'|'c5.large.elasticsearch'|'c5.xlarge.elasticsearch'|'c5.2xlarge.elasticsearch'|'c5.4xlarge.elasticsearch'|'c5.9xlarge.elasticsearch'|'c5.18xlarge.elasticsearch'|'ultrawarm1.medium.elasticsearch'|'ultrawarm1.large.elasticsearch'|'t2.micro.elasticsearch'|'t2.small.elasticsearch'|'t2.medium.elasticsearch'|'r3.large.elasticsearch'|'r3.xlarge.elasticsearch'|'r3.2xlarge.elasticsearch'|'r3.4xlarge.elasticsearch'|'r3.8xlarge.elasticsearch'|'i2.xlarge.elasticsearch'|'i2.2xlarge.elasticsearch'|'d2.xlarge.elasticsearch'|'d2.2xlarge.elasticsearch'|'d2.4xlarge.elasticsearch'|'d2.8xlarge.elasticsearch'|'c4.large.elasticsearch'|'c4.xlarge.elasticsearch'|'c4.2xlarge.elasticsearch'|'c4.4xlarge.elasticsearch'|'c4.8xlarge.elasticsearch'|'r4.large.elasticsearch'|'r4.xlarge.elasticsearch'|'r4.2xlarge.elasticsearch'|'r4.4xlarge.elasticsearch'|'r4.8xlarge.elasticsearch'|'r4.16xlarge.elasticsearch'|'i3.large.elasticsearch'|'i3.xlarge.elasticsearch'|'i3.2xlarge.elasticsearch'|'i3.4xlarge.elasticsearch'|'i3.8xlarge.elasticsearch'|'i3.16xlarge.elasticsearch',
            'InstanceCount': 123,
            'DedicatedMasterEnabled': True|False,
            'ZoneAwarenessEnabled': True|False,
            'ZoneAwarenessConfig': {
                'AvailabilityZoneCount': 123
            },
            'DedicatedMasterType': 'm3.medium.elasticsearch'|'m3.large.elasticsearch'|'m3.xlarge.elasticsearch'|'m3.2xlarge.elasticsearch'|'m4.large.elasticsearch'|'m4.xlarge.elasticsearch'|'m4.2xlarge.elasticsearch'|'m4.4xlarge.elasticsearch'|'m4.10xlarge.elasticsearch'|'m5.large.elasticsearch'|'m5.xlarge.elasticsearch'|'m5.2xlarge.elasticsearch'|'m5.4xlarge.elasticsearch'|'m5.12xlarge.elasticsearch'|'r5.large.elasticsearch'|'r5.xlarge.elasticsearch'|'r5.2xlarge.elasticsearch'|'r5.4xlarge.elasticsearch'|'r5.12xlarge.elasticsearch'|'c5.large.elasticsearch'|'c5.xlarge.elasticsearch'|'c5.2xlarge.elasticsearch'|'c5.4xlarge.elasticsearch'|'c5.9xlarge.elasticsearch'|'c5.18xlarge.elasticsearch'|'ultrawarm1.medium.elasticsearch'|'ultrawarm1.large.elasticsearch'|'t2.micro.elasticsearch'|'t2.small.elasticsearch'|'t2.medium.elasticsearch'|'r3.large.elasticsearch'|'r3.xlarge.elasticsearch'|'r3.2xlarge.elasticsearch'|'r3.4xlarge.elasticsearch'|'r3.8xlarge.elasticsearch'|'i2.xlarge.elasticsearch'|'i2.2xlarge.elasticsearch'|'d2.xlarge.elasticsearch'|'d2.2xlarge.elasticsearch'|'d2.4xlarge.elasticsearch'|'d2.8xlarge.elasticsearch'|'c4.large.elasticsearch'|'c4.xlarge.elasticsearch'|'c4.2xlarge.elasticsearch'|'c4.4xlarge.elasticsearch'|'c4.8xlarge.elasticsearch'|'r4.large.elasticsearch'|'r4.xlarge.elasticsearch'|'r4.2xlarge.elasticsearch'|'r4.4xlarge.elasticsearch'|'r4.8xlarge.elasticsearch'|'r4.16xlarge.elasticsearch'|'i3.large.elasticsearch'|'i3.xlarge.elasticsearch'|'i3.2xlarge.elasticsearch'|'i3.4xlarge.elasticsearch'|'i3.8xlarge.elasticsearch'|'i3.16xlarge.elasticsearch',
            'DedicatedMasterCount': 123,
            'WarmEnabled': True|False,
            'WarmType': 'ultrawarm1.medium.elasticsearch'|'ultrawarm1.large.elasticsearch',
            'WarmCount': 123,
            'ColdStorageOptions': {
                'Enabled': True|False
            }
        },
        EBSOptions={
            'EBSEnabled': True|False,
            'VolumeType': 'standard'|'gp2'|'io1'|'gp3',
            'VolumeSize': 123,
            'Iops': 123,
            'Throughput': 123
        },
        AccessPolicies='string',
        SnapshotOptions={
            'AutomatedSnapshotStartHour': 123
        },
        VPCOptions={
            'SubnetIds': [
                'string',
            ],
            'SecurityGroupIds': [
                'string',
            ]
        },
        CognitoOptions={
            'Enabled': True|False,
            'UserPoolId': 'string',
            'IdentityPoolId': 'string',
            'RoleArn': 'string'
        },
        EncryptionAtRestOptions={
            'Enabled': True|False,
            'KmsKeyId': 'string'
        },
        NodeToNodeEncryptionOptions={
            'Enabled': True|False
        },
        AdvancedOptions={
            'string': 'string'
        },
        LogPublishingOptions={
            'string': {
                'CloudWatchLogsLogGroupArn': 'string',
                'Enabled': True|False
            }
        },
        DomainEndpointOptions={
            'EnforceHTTPS': True|False,
            'TLSSecurityPolicy': 'Policy-Min-TLS-1-0-2019-07'|'Policy-Min-TLS-1-2-2019-07'|'Policy-Min-TLS-1-2-PFS-2023-10',
            'CustomEndpointEnabled': True|False,
            'CustomEndpoint': 'string',
            'CustomEndpointCertificateArn': 'string'
        },
        AdvancedSecurityOptions={
            'Enabled': True|False,
            'InternalUserDatabaseEnabled': True|False,
            'MasterUserOptions': {
                'MasterUserARN': 'string',
                'MasterUserName': 'string',
                'MasterUserPassword': 'string'
            },
            'SAMLOptions': {
                'Enabled': True|False,
                'Idp': {
                    'MetadataContent': 'string',
                    'EntityId': 'string'
                },
                'MasterUserName': 'string',
                'MasterBackendRole': 'string',
                'SubjectKey': 'string',
                'RolesKey': 'string',
                'SessionTimeoutMinutes': 123
            },
            'AnonymousAuthEnabled': True|False
        },
        AutoTuneOptions={
            'DesiredState': 'ENABLED'|'DISABLED',
            'MaintenanceSchedules': [
                {
                    'StartAt': datetime(2015, 1, 1),
                    'Duration': {
                        'Value': 123,
                        'Unit': 'HOURS'
                    },
                    'CronExpressionForRecurrence': 'string'
                },
            ]
        },
        TagList=[
            {
                'Key': 'string',
                'Value': 'string'
            },
        ]
    )
    
  :type DomainName: string
  :param DomainName: **[REQUIRED]** 

    The name of the Elasticsearch domain that you are creating. Domain names are unique across the domains owned by an account within an AWS region. Domain names must start with a lowercase letter and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).

    

  
  :type ElasticsearchVersion: string
  :param ElasticsearchVersion: 

    String of format X.Y to specify version for the Elasticsearch domain eg. "1.5" or "2.3". For more information, see `Creating Elasticsearch Domains <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomains>`__ in the *Amazon Elasticsearch Service Developer Guide*.

    

  
  :type ElasticsearchClusterConfig: dict
  :param ElasticsearchClusterConfig: 

    Configuration options for an Elasticsearch domain. Specifies the instance type and number of instances in the domain cluster.

    

  
    - **InstanceType** *(string) --* 

      The instance type for an Elasticsearch cluster. UltraWarm instance types are not supported for data instances.

      

    
    - **InstanceCount** *(integer) --* 

      The number of instances in the specified domain cluster.

      

    
    - **DedicatedMasterEnabled** *(boolean) --* 

      A boolean value to indicate whether a dedicated master node is enabled. See `About Dedicated Master Nodes <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-dedicatedmasternodes>`__ for more information.

      

    
    - **ZoneAwarenessEnabled** *(boolean) --* 

      A boolean value to indicate whether zone awareness is enabled. See `About Zone Awareness <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-zoneawareness>`__ for more information.

      

    
    - **ZoneAwarenessConfig** *(dict) --* 

      Specifies the zone awareness configuration for a domain when zone awareness is enabled.

      

    
      - **AvailabilityZoneCount** *(integer) --* 

        An integer value to indicate the number of availability zones for a domain when zone awareness is enabled. This should be equal to number of subnets if VPC endpoints is enabled

        

      
    
    - **DedicatedMasterType** *(string) --* 

      The instance type for a dedicated master node.

      

    
    - **DedicatedMasterCount** *(integer) --* 

      Total number of dedicated master nodes, active and on standby, for the cluster.

      

    
    - **WarmEnabled** *(boolean) --* 

      True to enable warm storage.

      

    
    - **WarmType** *(string) --* 

      The instance type for the Elasticsearch cluster's warm nodes.

      

    
    - **WarmCount** *(integer) --* 

      The number of warm nodes in the cluster.

      

    
    - **ColdStorageOptions** *(dict) --* 

      Specifies the ``ColdStorageOptions`` config for Elasticsearch Domain

      

    
      - **Enabled** *(boolean) --* **[REQUIRED]** 

        Enable cold storage option. Accepted values true or false

        

      
    
  
  :type EBSOptions: dict
  :param EBSOptions: 

    Options to enable, disable and specify the type and size of EBS storage volumes.

    

  
    - **EBSEnabled** *(boolean) --* 

      Specifies whether EBS-based storage is enabled.

      

    
    - **VolumeType** *(string) --* 

      Specifies the volume type for EBS-based storage.

      

    
    - **VolumeSize** *(integer) --* 

      Integer to specify the size of an EBS volume.

      

    
    - **Iops** *(integer) --* 

      Specifies the IOPS for Provisioned IOPS And GP3 EBS volume (SSD).

      

    
    - **Throughput** *(integer) --* 

      Specifies the Throughput for GP3 EBS volume (SSD).

      

    
  
  :type AccessPolicies: string
  :param AccessPolicies: 

    IAM access policy as a JSON-formatted string.

    

  
  :type SnapshotOptions: dict
  :param SnapshotOptions: 

    Option to set time, in UTC format, of the daily automated snapshot. Default value is 0 hours.

    

  
    - **AutomatedSnapshotStartHour** *(integer) --* 

      Specifies the time, in UTC format, when the service takes a daily automated snapshot of the specified Elasticsearch domain. Default value is ``0`` hours.

      

    
  
  :type VPCOptions: dict
  :param VPCOptions: 

    Options to specify the subnets and security groups for VPC endpoint. For more information, see `Creating a VPC <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html#es-creating-vpc>`__ in *VPC Endpoints for Amazon Elasticsearch Service Domains*

    

  
    - **SubnetIds** *(list) --* 

      Specifies the subnets for VPC endpoint.

      

    
      - *(string) --* 

      
  
    - **SecurityGroupIds** *(list) --* 

      Specifies the security groups for VPC endpoint.

      

    
      - *(string) --* 

      
  
  
  :type CognitoOptions: dict
  :param CognitoOptions: 

    Options to specify the Cognito user and identity pools for Kibana authentication. For more information, see `Amazon Cognito Authentication for Kibana <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html>`__.

    

  
    - **Enabled** *(boolean) --* 

      Specifies the option to enable Cognito for Kibana authentication.

      

    
    - **UserPoolId** *(string) --* 

      Specifies the Cognito user pool ID for Kibana authentication.

      

    
    - **IdentityPoolId** *(string) --* 

      Specifies the Cognito identity pool ID for Kibana authentication.

      

    
    - **RoleArn** *(string) --* 

      Specifies the role ARN that provides Elasticsearch permissions for accessing Cognito resources.

      

    
  
  :type EncryptionAtRestOptions: dict
  :param EncryptionAtRestOptions: 

    Specifies the Encryption At Rest Options.

    

  
    - **Enabled** *(boolean) --* 

      Specifies the option to enable Encryption At Rest.

      

    
    - **KmsKeyId** *(string) --* 

      Specifies the KMS Key ID for Encryption At Rest options.

      

    
  
  :type NodeToNodeEncryptionOptions: dict
  :param NodeToNodeEncryptionOptions: 

    Specifies the NodeToNodeEncryptionOptions.

    

  
    - **Enabled** *(boolean) --* 

      Specify true to enable node-to-node encryption.

      

    
  
  :type AdvancedOptions: dict
  :param AdvancedOptions: 

    Option to allow references to indices in an HTTP request body. Must be ``false`` when configuring access to individual sub-resources. By default, the value is ``true``. See `Configuration Advanced Options <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-advanced-options>`__ for more information.

    

  
    - *(string) --* 

    
      - *(string) --* 

      


  :type LogPublishingOptions: dict
  :param LogPublishingOptions: 

    Map of ``LogType`` and ``LogPublishingOption``, each containing options to publish a given type of Elasticsearch log.

    

  
    - *(string) --* 

      Type of Log File, it can be one of the following: 

      
      * INDEX_SLOW_LOGS: Index slow logs contain insert requests that took more time than configured index query log threshold to execute.
       
      * SEARCH_SLOW_LOGS: Search slow logs contain search queries that took more time than configured search query log threshold to execute.
       
      * ES_APPLICATION_LOGS: Elasticsearch application logs contain information about errors and warnings raised during the operation of the service and can be useful for troubleshooting.
       
      * AUDIT_LOGS: Audit logs contain records of user requests for access from the domain.
      

      

      

    
      - *(dict) --* 

        Log Publishing option that is set for given domain. Attributes and their details: 

        
        * CloudWatchLogsLogGroupArn: ARN of the Cloudwatch log group to which log needs to be published.
         
        * Enabled: Whether the log publishing for given log type is enabled or not
        

        

        

      
        - **CloudWatchLogsLogGroupArn** *(string) --* 

          ARN of the Cloudwatch log group to which log needs to be published.

          

        
        - **Enabled** *(boolean) --* 

          Specifies whether given log publishing option is enabled or not.

          

        
      


  :type DomainEndpointOptions: dict
  :param DomainEndpointOptions: 

    Options to specify configuration that will be applied to the domain endpoint.

    

  
    - **EnforceHTTPS** *(boolean) --* 

      Specify if only HTTPS endpoint should be enabled for the Elasticsearch domain.

      

    
    - **TLSSecurityPolicy** *(string) --* 

      Specify the TLS security policy that needs to be applied to the HTTPS endpoint of Elasticsearch domain. It can be one of the following values: 

      
      * **Policy-Min-TLS-1-0-2019-07:** TLS security policy that supports TLS version 1.0 to TLS version 1.2
       
      * **Policy-Min-TLS-1-2-2019-07:** TLS security policy that supports only TLS version 1.2
       
      * **Policy-Min-TLS-1-2-PFS-2023-10:** TLS security policy that supports TLS version 1.2 to TLS version 1.3 with perfect forward secrecy cipher suites
      

      

      

    
    - **CustomEndpointEnabled** *(boolean) --* 

      Specify if custom endpoint should be enabled for the Elasticsearch domain.

      

    
    - **CustomEndpoint** *(string) --* 

      Specify the fully qualified domain for your custom endpoint.

      

    
    - **CustomEndpointCertificateArn** *(string) --* 

      Specify ACM certificate ARN for your custom endpoint.

      

    
  
  :type AdvancedSecurityOptions: dict
  :param AdvancedSecurityOptions: 

    Specifies advanced security options.

    

  
    - **Enabled** *(boolean) --* 

      True if advanced security is enabled.

      

    
    - **InternalUserDatabaseEnabled** *(boolean) --* 

      True if the internal user database is enabled.

      

    
    - **MasterUserOptions** *(dict) --* 

      Credentials for the master user: username and password, ARN, or both.

      

    
      - **MasterUserARN** *(string) --* 

        ARN for the master user (if IAM is enabled).

        

      
      - **MasterUserName** *(string) --* 

        The master user's username, which is stored in the Amazon Elasticsearch Service domain's internal database.

        

      
      - **MasterUserPassword** *(string) --* 

        The master user's password, which is stored in the Amazon Elasticsearch Service domain's internal database.

        

      
    
    - **SAMLOptions** *(dict) --* 

      Specifies the SAML application configuration for the domain.

      

    
      - **Enabled** *(boolean) --* 

        True if SAML is enabled.

        

      
      - **Idp** *(dict) --* 

        Specifies the SAML Identity Provider's information.

        

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

          The Metadata of the SAML application in xml format.

          

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

          The unique Entity ID of the application in SAML Identity Provider.

          

        
      
      - **MasterUserName** *(string) --* 

        The SAML master username, which is stored in the Amazon Elasticsearch Service domain's internal database.

        

      
      - **MasterBackendRole** *(string) --* 

        The backend role to which the SAML master user is mapped to.

        

      
      - **SubjectKey** *(string) --* 

        The key to use for matching the SAML Subject attribute.

        

      
      - **RolesKey** *(string) --* 

        The key to use for matching the SAML Roles attribute.

        

      
      - **SessionTimeoutMinutes** *(integer) --* 

        The duration, in minutes, after which a user session becomes inactive. Acceptable values are between 1 and 1440, and the default value is 60.

        

      
    
    - **AnonymousAuthEnabled** *(boolean) --* 

      True if Anonymous auth is enabled. Anonymous auth can be enabled only when AdvancedSecurity is enabled on existing domains.

      

    
  
  :type AutoTuneOptions: dict
  :param AutoTuneOptions: 

    Specifies Auto-Tune options.

    

  
    - **DesiredState** *(string) --* 

      Specifies the Auto-Tune desired state. Valid values are ENABLED, DISABLED.

      

    
    - **MaintenanceSchedules** *(list) --* 

      Specifies list of maitenance schedules. See the `Developer Guide <https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/auto-tune.html>`__ for more information.

      

    
      - *(dict) --* 

        Specifies Auto-Tune maitenance schedule. See the `Developer Guide <https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/auto-tune.html>`__ for more information.

        

      
        - **StartAt** *(datetime) --* 

          Specifies timestamp at which Auto-Tune maintenance schedule start.

          

        
        - **Duration** *(dict) --* 

          Specifies maintenance schedule duration: duration value and duration unit. See the `Developer Guide <https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/auto-tune.html>`__ for more information.

          

        
          - **Value** *(integer) --* 

            Integer to specify the value of a maintenance schedule duration. See the `Developer Guide <https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/auto-tune.html>`__ for more information.

            

          
          - **Unit** *(string) --* 

            Specifies the unit of a maintenance schedule duration. Valid value is HOURS. See the `Developer Guide <https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/auto-tune.html>`__ for more information.

            

          
        
        - **CronExpressionForRecurrence** *(string) --* 

          Specifies cron expression for a recurring maintenance schedule. See the `Developer Guide <https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/auto-tune.html>`__ for more information.

          

        
      
  
  
  :type TagList: list
  :param TagList: 

    A list of ``Tag`` added during domain creation.

    

  
    - *(dict) --* 

      Specifies a key value pair for a resource tag.

      

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

        Specifies the ``TagKey``, the name of the tag. Tag keys must be unique for the Elasticsearch domain to which they are attached.

        

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

        Specifies the ``TagValue``, the value assigned to the corresponding tag key. Tag values can be null and do not have to be unique in a tag set. For example, you can have a key value pair in a tag set of ``project : Trinity`` and ``cost-center : Trinity``

        

      
    

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

    
    ::

      {
          'DomainStatus': {
              'DomainId': 'string',
              'DomainName': 'string',
              'ARN': 'string',
              'Created': True|False,
              'Deleted': True|False,
              'Endpoint': 'string',
              'Endpoints': {
                  'string': 'string'
              },
              'Processing': True|False,
              'UpgradeProcessing': True|False,
              'ElasticsearchVersion': 'string',
              'ElasticsearchClusterConfig': {
                  'InstanceType': 'm3.medium.elasticsearch'|'m3.large.elasticsearch'|'m3.xlarge.elasticsearch'|'m3.2xlarge.elasticsearch'|'m4.large.elasticsearch'|'m4.xlarge.elasticsearch'|'m4.2xlarge.elasticsearch'|'m4.4xlarge.elasticsearch'|'m4.10xlarge.elasticsearch'|'m5.large.elasticsearch'|'m5.xlarge.elasticsearch'|'m5.2xlarge.elasticsearch'|'m5.4xlarge.elasticsearch'|'m5.12xlarge.elasticsearch'|'r5.large.elasticsearch'|'r5.xlarge.elasticsearch'|'r5.2xlarge.elasticsearch'|'r5.4xlarge.elasticsearch'|'r5.12xlarge.elasticsearch'|'c5.large.elasticsearch'|'c5.xlarge.elasticsearch'|'c5.2xlarge.elasticsearch'|'c5.4xlarge.elasticsearch'|'c5.9xlarge.elasticsearch'|'c5.18xlarge.elasticsearch'|'ultrawarm1.medium.elasticsearch'|'ultrawarm1.large.elasticsearch'|'t2.micro.elasticsearch'|'t2.small.elasticsearch'|'t2.medium.elasticsearch'|'r3.large.elasticsearch'|'r3.xlarge.elasticsearch'|'r3.2xlarge.elasticsearch'|'r3.4xlarge.elasticsearch'|'r3.8xlarge.elasticsearch'|'i2.xlarge.elasticsearch'|'i2.2xlarge.elasticsearch'|'d2.xlarge.elasticsearch'|'d2.2xlarge.elasticsearch'|'d2.4xlarge.elasticsearch'|'d2.8xlarge.elasticsearch'|'c4.large.elasticsearch'|'c4.xlarge.elasticsearch'|'c4.2xlarge.elasticsearch'|'c4.4xlarge.elasticsearch'|'c4.8xlarge.elasticsearch'|'r4.large.elasticsearch'|'r4.xlarge.elasticsearch'|'r4.2xlarge.elasticsearch'|'r4.4xlarge.elasticsearch'|'r4.8xlarge.elasticsearch'|'r4.16xlarge.elasticsearch'|'i3.large.elasticsearch'|'i3.xlarge.elasticsearch'|'i3.2xlarge.elasticsearch'|'i3.4xlarge.elasticsearch'|'i3.8xlarge.elasticsearch'|'i3.16xlarge.elasticsearch',
                  'InstanceCount': 123,
                  'DedicatedMasterEnabled': True|False,
                  'ZoneAwarenessEnabled': True|False,
                  'ZoneAwarenessConfig': {
                      'AvailabilityZoneCount': 123
                  },
                  'DedicatedMasterType': 'm3.medium.elasticsearch'|'m3.large.elasticsearch'|'m3.xlarge.elasticsearch'|'m3.2xlarge.elasticsearch'|'m4.large.elasticsearch'|'m4.xlarge.elasticsearch'|'m4.2xlarge.elasticsearch'|'m4.4xlarge.elasticsearch'|'m4.10xlarge.elasticsearch'|'m5.large.elasticsearch'|'m5.xlarge.elasticsearch'|'m5.2xlarge.elasticsearch'|'m5.4xlarge.elasticsearch'|'m5.12xlarge.elasticsearch'|'r5.large.elasticsearch'|'r5.xlarge.elasticsearch'|'r5.2xlarge.elasticsearch'|'r5.4xlarge.elasticsearch'|'r5.12xlarge.elasticsearch'|'c5.large.elasticsearch'|'c5.xlarge.elasticsearch'|'c5.2xlarge.elasticsearch'|'c5.4xlarge.elasticsearch'|'c5.9xlarge.elasticsearch'|'c5.18xlarge.elasticsearch'|'ultrawarm1.medium.elasticsearch'|'ultrawarm1.large.elasticsearch'|'t2.micro.elasticsearch'|'t2.small.elasticsearch'|'t2.medium.elasticsearch'|'r3.large.elasticsearch'|'r3.xlarge.elasticsearch'|'r3.2xlarge.elasticsearch'|'r3.4xlarge.elasticsearch'|'r3.8xlarge.elasticsearch'|'i2.xlarge.elasticsearch'|'i2.2xlarge.elasticsearch'|'d2.xlarge.elasticsearch'|'d2.2xlarge.elasticsearch'|'d2.4xlarge.elasticsearch'|'d2.8xlarge.elasticsearch'|'c4.large.elasticsearch'|'c4.xlarge.elasticsearch'|'c4.2xlarge.elasticsearch'|'c4.4xlarge.elasticsearch'|'c4.8xlarge.elasticsearch'|'r4.large.elasticsearch'|'r4.xlarge.elasticsearch'|'r4.2xlarge.elasticsearch'|'r4.4xlarge.elasticsearch'|'r4.8xlarge.elasticsearch'|'r4.16xlarge.elasticsearch'|'i3.large.elasticsearch'|'i3.xlarge.elasticsearch'|'i3.2xlarge.elasticsearch'|'i3.4xlarge.elasticsearch'|'i3.8xlarge.elasticsearch'|'i3.16xlarge.elasticsearch',
                  'DedicatedMasterCount': 123,
                  'WarmEnabled': True|False,
                  'WarmType': 'ultrawarm1.medium.elasticsearch'|'ultrawarm1.large.elasticsearch',
                  'WarmCount': 123,
                  'ColdStorageOptions': {
                      'Enabled': True|False
                  }
              },
              'EBSOptions': {
                  'EBSEnabled': True|False,
                  'VolumeType': 'standard'|'gp2'|'io1'|'gp3',
                  'VolumeSize': 123,
                  'Iops': 123,
                  'Throughput': 123
              },
              'AccessPolicies': 'string',
              'SnapshotOptions': {
                  'AutomatedSnapshotStartHour': 123
              },
              'VPCOptions': {
                  'VPCId': 'string',
                  'SubnetIds': [
                      'string',
                  ],
                  'AvailabilityZones': [
                      'string',
                  ],
                  'SecurityGroupIds': [
                      'string',
                  ]
              },
              'CognitoOptions': {
                  'Enabled': True|False,
                  'UserPoolId': 'string',
                  'IdentityPoolId': 'string',
                  'RoleArn': 'string'
              },
              'EncryptionAtRestOptions': {
                  'Enabled': True|False,
                  'KmsKeyId': 'string'
              },
              'NodeToNodeEncryptionOptions': {
                  'Enabled': True|False
              },
              'AdvancedOptions': {
                  'string': 'string'
              },
              'LogPublishingOptions': {
                  'string': {
                      'CloudWatchLogsLogGroupArn': 'string',
                      'Enabled': True|False
                  }
              },
              'ServiceSoftwareOptions': {
                  'CurrentVersion': 'string',
                  'NewVersion': 'string',
                  'UpdateAvailable': True|False,
                  'Cancellable': True|False,
                  'UpdateStatus': 'PENDING_UPDATE'|'IN_PROGRESS'|'COMPLETED'|'NOT_ELIGIBLE'|'ELIGIBLE',
                  'Description': 'string',
                  'AutomatedUpdateDate': datetime(2015, 1, 1),
                  'OptionalDeployment': True|False
              },
              'DomainEndpointOptions': {
                  'EnforceHTTPS': True|False,
                  'TLSSecurityPolicy': 'Policy-Min-TLS-1-0-2019-07'|'Policy-Min-TLS-1-2-2019-07'|'Policy-Min-TLS-1-2-PFS-2023-10',
                  'CustomEndpointEnabled': True|False,
                  'CustomEndpoint': 'string',
                  'CustomEndpointCertificateArn': 'string'
              },
              'AdvancedSecurityOptions': {
                  'Enabled': True|False,
                  'InternalUserDatabaseEnabled': True|False,
                  'SAMLOptions': {
                      'Enabled': True|False,
                      'Idp': {
                          'MetadataContent': 'string',
                          'EntityId': 'string'
                      },
                      'SubjectKey': 'string',
                      'RolesKey': 'string',
                      'SessionTimeoutMinutes': 123
                  },
                  'AnonymousAuthDisableDate': datetime(2015, 1, 1),
                  'AnonymousAuthEnabled': True|False
              },
              'AutoTuneOptions': {
                  'State': 'ENABLED'|'DISABLED'|'ENABLE_IN_PROGRESS'|'DISABLE_IN_PROGRESS'|'DISABLED_AND_ROLLBACK_SCHEDULED'|'DISABLED_AND_ROLLBACK_IN_PROGRESS'|'DISABLED_AND_ROLLBACK_COMPLETE'|'DISABLED_AND_ROLLBACK_ERROR'|'ERROR',
                  'ErrorMessage': 'string'
              },
              'ChangeProgressDetails': {
                  'ChangeId': 'string',
                  'Message': 'string',
                  'ConfigChangeStatus': 'Pending'|'Initializing'|'Validating'|'ValidationFailed'|'ApplyingChanges'|'Completed'|'PendingUserInput'|'Cancelled',
                  'StartTime': datetime(2015, 1, 1),
                  'LastUpdatedTime': datetime(2015, 1, 1),
                  'InitiatedBy': 'CUSTOMER'|'SERVICE'
              },
              'DomainProcessingStatus': 'Creating'|'Active'|'Modifying'|'UpgradingEngineVersion'|'UpdatingServiceSoftware'|'Isolated'|'Deleting',
              'ModifyingProperties': [
                  {
                      'Name': 'string',
                      'ActiveValue': 'string',
                      'PendingValue': 'string',
                      'ValueType': 'PLAIN_TEXT'|'STRINGIFIED_JSON'
                  },
              ]
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 

      The result of a ``CreateElasticsearchDomain`` operation. Contains the status of the newly created Elasticsearch domain.

      
      

      - **DomainStatus** *(dict) --* 

        The status of the newly created Elasticsearch domain.

        
        

        - **DomainId** *(string) --* 

          The unique identifier for the specified Elasticsearch domain.

          
        

        - **DomainName** *(string) --* 

          The name of an Elasticsearch domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).

          
        

        - **ARN** *(string) --* 

          The Amazon resource name (ARN) of an Elasticsearch domain. See `Identifiers for IAM Entities <http://docs.aws.amazon.com/IAM/latest/UserGuide/index.html?Using_Identifiers.html>`__ in *Using AWS Identity and Access Management* for more information.

          
        

        - **Created** *(boolean) --* 

          The domain creation status. ``True`` if the creation of an Elasticsearch domain is complete. ``False`` if domain creation is still in progress.

          
        

        - **Deleted** *(boolean) --* 

          The domain deletion status. ``True`` if a delete request has been received for the domain but resource cleanup is still in progress. ``False`` if the domain has not been deleted. Once domain deletion is complete, the status of the domain is no longer returned.

          
        

        - **Endpoint** *(string) --* 

          The Elasticsearch domain endpoint that you use to submit index and search requests.

          
        

        - **Endpoints** *(dict) --* 

          Map containing the Elasticsearch domain endpoints used to submit index and search requests. Example ``key, value``: ``'vpc','vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.us-east-1.es.amazonaws.com'``.

          
          

          - *(string) --* 
            

            - *(string) --* 

              The endpoint to which service requests are submitted. For example, ``search-imdb-movies-oopcnjfn6ugofer3zx5iadxxca.eu-west-1.es.amazonaws.com`` or ``doc-imdb-movies-oopcnjfn6ugofer3zx5iadxxca.eu-west-1.es.amazonaws.com``.

              
      
    
        

        - **Processing** *(boolean) --* 

          The status of the Elasticsearch domain configuration. ``True`` if Amazon Elasticsearch Service is processing configuration changes. ``False`` if the configuration is active.

          
        

        - **UpgradeProcessing** *(boolean) --* 

          The status of an Elasticsearch domain version upgrade. ``True`` if Amazon Elasticsearch Service is undergoing a version upgrade. ``False`` if the configuration is active.

          
        

        - **ElasticsearchVersion** *(string) --* 
        

        - **ElasticsearchClusterConfig** *(dict) --* 

          The type and number of instances in the domain cluster.

          
          

          - **InstanceType** *(string) --* 

            The instance type for an Elasticsearch cluster. UltraWarm instance types are not supported for data instances.

            
          

          - **InstanceCount** *(integer) --* 

            The number of instances in the specified domain cluster.

            
          

          - **DedicatedMasterEnabled** *(boolean) --* 

            A boolean value to indicate whether a dedicated master node is enabled. See `About Dedicated Master Nodes <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-dedicatedmasternodes>`__ for more information.

            
          

          - **ZoneAwarenessEnabled** *(boolean) --* 

            A boolean value to indicate whether zone awareness is enabled. See `About Zone Awareness <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-zoneawareness>`__ for more information.

            
          

          - **ZoneAwarenessConfig** *(dict) --* 

            Specifies the zone awareness configuration for a domain when zone awareness is enabled.

            
            

            - **AvailabilityZoneCount** *(integer) --* 

              An integer value to indicate the number of availability zones for a domain when zone awareness is enabled. This should be equal to number of subnets if VPC endpoints is enabled

              
        
          

          - **DedicatedMasterType** *(string) --* 

            The instance type for a dedicated master node.

            
          

          - **DedicatedMasterCount** *(integer) --* 

            Total number of dedicated master nodes, active and on standby, for the cluster.

            
          

          - **WarmEnabled** *(boolean) --* 

            True to enable warm storage.

            
          

          - **WarmType** *(string) --* 

            The instance type for the Elasticsearch cluster's warm nodes.

            
          

          - **WarmCount** *(integer) --* 

            The number of warm nodes in the cluster.

            
          

          - **ColdStorageOptions** *(dict) --* 

            Specifies the ``ColdStorageOptions`` config for Elasticsearch Domain

            
            

            - **Enabled** *(boolean) --* 

              Enable cold storage option. Accepted values true or false

              
        
      
        

        - **EBSOptions** *(dict) --* 

          The ``EBSOptions`` for the specified domain. See `Configuring EBS-based Storage <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-ebs>`__ for more information.

          
          

          - **EBSEnabled** *(boolean) --* 

            Specifies whether EBS-based storage is enabled.

            
          

          - **VolumeType** *(string) --* 

            Specifies the volume type for EBS-based storage.

            
          

          - **VolumeSize** *(integer) --* 

            Integer to specify the size of an EBS volume.

            
          

          - **Iops** *(integer) --* 

            Specifies the IOPS for Provisioned IOPS And GP3 EBS volume (SSD).

            
          

          - **Throughput** *(integer) --* 

            Specifies the Throughput for GP3 EBS volume (SSD).

            
      
        

        - **AccessPolicies** *(string) --* 

          IAM access policy as a JSON-formatted string.

          
        

        - **SnapshotOptions** *(dict) --* 

          Specifies the status of the ``SnapshotOptions``

          
          

          - **AutomatedSnapshotStartHour** *(integer) --* 

            Specifies the time, in UTC format, when the service takes a daily automated snapshot of the specified Elasticsearch domain. Default value is ``0`` hours.

            
      
        

        - **VPCOptions** *(dict) --* 

          The ``VPCOptions`` for the specified domain. For more information, see `VPC Endpoints for Amazon Elasticsearch Service Domains <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html>`__.

          
          

          - **VPCId** *(string) --* 

            The VPC Id for the Elasticsearch domain. Exists only if the domain was created with VPCOptions.

            
          

          - **SubnetIds** *(list) --* 

            Specifies the subnets for VPC endpoint.

            
            

            - *(string) --* 
        
          

          - **AvailabilityZones** *(list) --* 

            The availability zones for the Elasticsearch domain. Exists only if the domain was created with VPCOptions.

            
            

            - *(string) --* 
        
          

          - **SecurityGroupIds** *(list) --* 

            Specifies the security groups for VPC endpoint.

            
            

            - *(string) --* 
        
      
        

        - **CognitoOptions** *(dict) --* 

          The ``CognitoOptions`` for the specified domain. For more information, see `Amazon Cognito Authentication for Kibana <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html>`__.

          
          

          - **Enabled** *(boolean) --* 

            Specifies the option to enable Cognito for Kibana authentication.

            
          

          - **UserPoolId** *(string) --* 

            Specifies the Cognito user pool ID for Kibana authentication.

            
          

          - **IdentityPoolId** *(string) --* 

            Specifies the Cognito identity pool ID for Kibana authentication.

            
          

          - **RoleArn** *(string) --* 

            Specifies the role ARN that provides Elasticsearch permissions for accessing Cognito resources.

            
      
        

        - **EncryptionAtRestOptions** *(dict) --* 

          Specifies the status of the ``EncryptionAtRestOptions``.

          
          

          - **Enabled** *(boolean) --* 

            Specifies the option to enable Encryption At Rest.

            
          

          - **KmsKeyId** *(string) --* 

            Specifies the KMS Key ID for Encryption At Rest options.

            
      
        

        - **NodeToNodeEncryptionOptions** *(dict) --* 

          Specifies the status of the ``NodeToNodeEncryptionOptions``.

          
          

          - **Enabled** *(boolean) --* 

            Specify true to enable node-to-node encryption.

            
      
        

        - **AdvancedOptions** *(dict) --* 

          Specifies the status of the ``AdvancedOptions``

          
          

          - *(string) --* 
            

            - *(string) --* 
      
    
        

        - **LogPublishingOptions** *(dict) --* 

          Log publishing options for the given domain.

          
          

          - *(string) --* 

            Type of Log File, it can be one of the following: 

            
            * INDEX_SLOW_LOGS: Index slow logs contain insert requests that took more time than configured index query log threshold to execute.
             
            * SEARCH_SLOW_LOGS: Search slow logs contain search queries that took more time than configured search query log threshold to execute.
             
            * ES_APPLICATION_LOGS: Elasticsearch application logs contain information about errors and warnings raised during the operation of the service and can be useful for troubleshooting.
             
            * AUDIT_LOGS: Audit logs contain records of user requests for access from the domain.
            

            

            
            

            - *(dict) --* 

              Log Publishing option that is set for given domain. Attributes and their details: 

              
              * CloudWatchLogsLogGroupArn: ARN of the Cloudwatch log group to which log needs to be published.
               
              * Enabled: Whether the log publishing for given log type is enabled or not
              

              

              
              

              - **CloudWatchLogsLogGroupArn** *(string) --* 

                ARN of the Cloudwatch log group to which log needs to be published.

                
              

              - **Enabled** *(boolean) --* 

                Specifies whether given log publishing option is enabled or not.

                
          
      
    
        

        - **ServiceSoftwareOptions** *(dict) --* 

          The current status of the Elasticsearch domain's service software.

          
          

          - **CurrentVersion** *(string) --* 

            The current service software version that is present on the domain.

            
          

          - **NewVersion** *(string) --* 

            The new service software version if one is available.

            
          

          - **UpdateAvailable** *(boolean) --* 

            ``True`` if you are able to update you service software version. ``False`` if you are not able to update your service software version.

            
          

          - **Cancellable** *(boolean) --* 

            ``True`` if you are able to cancel your service software version update. ``False`` if you are not able to cancel your service software version.

            
          

          - **UpdateStatus** *(string) --* 

            The status of your service software update. This field can take the following values: ``ELIGIBLE``, ``PENDING_UPDATE``, ``IN_PROGRESS``, ``COMPLETED``, and ``NOT_ELIGIBLE``.

            
          

          - **Description** *(string) --* 

            The description of the ``UpdateStatus``.

            
          

          - **AutomatedUpdateDate** *(datetime) --* 

            Timestamp, in Epoch time, until which you can manually request a service software update. After this date, we automatically update your service software.

            
          

          - **OptionalDeployment** *(boolean) --* 

            ``True`` if a service software is never automatically updated. ``False`` if a service software is automatically updated after ``AutomatedUpdateDate``.

            
      
        

        - **DomainEndpointOptions** *(dict) --* 

          The current status of the Elasticsearch domain's endpoint options.

          
          

          - **EnforceHTTPS** *(boolean) --* 

            Specify if only HTTPS endpoint should be enabled for the Elasticsearch domain.

            
          

          - **TLSSecurityPolicy** *(string) --* 

            Specify the TLS security policy that needs to be applied to the HTTPS endpoint of Elasticsearch domain. It can be one of the following values: 

            
            * **Policy-Min-TLS-1-0-2019-07:** TLS security policy that supports TLS version 1.0 to TLS version 1.2
             
            * **Policy-Min-TLS-1-2-2019-07:** TLS security policy that supports only TLS version 1.2
             
            * **Policy-Min-TLS-1-2-PFS-2023-10:** TLS security policy that supports TLS version 1.2 to TLS version 1.3 with perfect forward secrecy cipher suites
            

            

            
          

          - **CustomEndpointEnabled** *(boolean) --* 

            Specify if custom endpoint should be enabled for the Elasticsearch domain.

            
          

          - **CustomEndpoint** *(string) --* 

            Specify the fully qualified domain for your custom endpoint.

            
          

          - **CustomEndpointCertificateArn** *(string) --* 

            Specify ACM certificate ARN for your custom endpoint.

            
      
        

        - **AdvancedSecurityOptions** *(dict) --* 

          The current status of the Elasticsearch domain's advanced security options.

          
          

          - **Enabled** *(boolean) --* 

            True if advanced security is enabled.

            
          

          - **InternalUserDatabaseEnabled** *(boolean) --* 

            True if the internal user database is enabled.

            
          

          - **SAMLOptions** *(dict) --* 

            Describes the SAML application configured for a domain.

            
            

            - **Enabled** *(boolean) --* 

              True if SAML is enabled.

              
            

            - **Idp** *(dict) --* 

              Describes the SAML Identity Provider's information.

              
              

              - **MetadataContent** *(string) --* 

                The Metadata of the SAML application in xml format.

                
              

              - **EntityId** *(string) --* 

                The unique Entity ID of the application in SAML Identity Provider.

                
          
            

            - **SubjectKey** *(string) --* 

              The key used for matching the SAML Subject attribute.

              
            

            - **RolesKey** *(string) --* 

              The key used for matching the SAML Roles attribute.

              
            

            - **SessionTimeoutMinutes** *(integer) --* 

              The duration, in minutes, after which a user session becomes inactive.

              
        
          

          - **AnonymousAuthDisableDate** *(datetime) --* 

            Specifies the Anonymous Auth Disable Date when Anonymous Auth is enabled.

            
          

          - **AnonymousAuthEnabled** *(boolean) --* 

            True if Anonymous auth is enabled. Anonymous auth can be enabled only when AdvancedSecurity is enabled on existing domains.

            
      
        

        - **AutoTuneOptions** *(dict) --* 

          The current status of the Elasticsearch domain's Auto-Tune options.

          
          

          - **State** *(string) --* 

            Specifies the ``AutoTuneState`` for the Elasticsearch domain.

            
          

          - **ErrorMessage** *(string) --* 

            Specifies the error message while enabling or disabling the Auto-Tune.

            
      
        

        - **ChangeProgressDetails** *(dict) --* 

          Specifies change details of the domain configuration change.

          
          

          - **ChangeId** *(string) --* 

            The unique change identifier associated with a specific domain configuration change.

            
          

          - **Message** *(string) --* 

            Contains an optional message associated with the domain configuration change.

            
          

          - **ConfigChangeStatus** *(string) --* 

            The current status of the configuration change.

            
          

          - **StartTime** *(datetime) --* 

            The time that the configuration change was initiated, in Universal Coordinated Time (UTC).

            
          

          - **LastUpdatedTime** *(datetime) --* 

            The last time that the configuration change was updated.

            
          

          - **InitiatedBy** *(string) --* 

            The IAM principal who initiated the configuration change.

            
      
        

        - **DomainProcessingStatus** *(string) --* 

          The status of any changes that are currently in progress for the domain.

          
        

        - **ModifyingProperties** *(list) --* 

          Information about the domain properties that are currently being modified.

          
          

          - *(dict) --* 

            Information about the domain properties that are currently being modified.

            
            

            - **Name** *(string) --* 

              The name of the property that is currently being modified.

              
            

            - **ActiveValue** *(string) --* 

              The current value of the domain property that is being modified.

              
            

            - **PendingValue** *(string) --* 

              The value that the property that is currently being modified will eventually have.

              
            

            - **ValueType** *(string) --* 

              The type of value that is currently being modified. Properties can have two types:

               

              
              * **PLAIN_TEXT**: Contain direct values such as "1", "True", or "c5.large.search".
               
              * **STRINGIFIED_JSON**: Contain content in JSON format, such as {"Enabled":"True"}".
              

              
        
      
    
  
  **Exceptions**
  
  *   :py:class:`ElasticsearchService.Client.exceptions.BaseException`

  
  *   :py:class:`ElasticsearchService.Client.exceptions.DisabledOperationException`

  
  *   :py:class:`ElasticsearchService.Client.exceptions.InternalException`

  
  *   :py:class:`ElasticsearchService.Client.exceptions.InvalidTypeException`

  
  *   :py:class:`ElasticsearchService.Client.exceptions.LimitExceededException`

  
  *   :py:class:`ElasticsearchService.Client.exceptions.ResourceAlreadyExistsException`

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

  