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

*******************************************
describe_elasticsearch_instance_type_limits
*******************************************



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

  

  Describe Elasticsearch Limits for a given InstanceType and ElasticsearchVersion. When modifying existing Domain, specify the ``DomainName`` to know what Limits are supported for modifying.

  

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


  **Request Syntax**
  ::

    response = client.describe_elasticsearch_instance_type_limits(
        DomainName='string',
        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',
        ElasticsearchVersion='string'
    )
    
  :type DomainName: string
  :param DomainName: 

    DomainName represents the name of the Domain that we are trying to modify. This should be present only if we are querying for Elasticsearch ``Limits`` for existing domain.

    

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

    The instance type for an Elasticsearch cluster for which Elasticsearch ``Limits`` are needed.

    

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

    Version of Elasticsearch for which ``Limits`` are needed.

    

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

    
    ::

      {
          'LimitsByRole': {
              'string': {
                  'StorageTypes': [
                      {
                          'StorageTypeName': 'string',
                          'StorageSubTypeName': 'string',
                          'StorageTypeLimits': [
                              {
                                  'LimitName': 'string',
                                  'LimitValues': [
                                      'string',
                                  ]
                              },
                          ]
                      },
                  ],
                  'InstanceLimits': {
                      'InstanceCountLimits': {
                          'MinimumInstanceCount': 123,
                          'MaximumInstanceCount': 123
                      }
                  },
                  'AdditionalLimits': [
                      {
                          'LimitName': 'string',
                          'LimitValues': [
                              'string',
                          ]
                      },
                  ]
              }
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 

      Container for the parameters received from ``DescribeElasticsearchInstanceTypeLimits`` operation.

      
      

      - **LimitsByRole** *(dict) --* 

        Map of Role of the Instance and Limits that are applicable. Role performed by given Instance in Elasticsearch can be one of the following: 

        
        * data: If the given InstanceType is used as data node
         
        * master: If the given InstanceType is used as master node
         
        * ultra_warm: If the given InstanceType is used as warm node
        

        

        
        

        - *(string) --* 
          

          - *(dict) --* 

            Limits for given InstanceType and for each of it's role. Limits contains following ``StorageTypes,`` ``InstanceLimits`` and ``AdditionalLimits``

            
            

            - **StorageTypes** *(list) --* 

              StorageType represents the list of storage related types and attributes that are available for given InstanceType.

              
              

              - *(dict) --* 

                StorageTypes represents the list of storage related types and their attributes that are available for given InstanceType.

                
                

                - **StorageTypeName** *(string) --* 

                  Type of the storage. List of available storage options: 

                  
                  * instance
                   Inbuilt storage available for the given Instance 
                  * ebs
                   Elastic block storage that would be attached to the given Instance

                  

                  
                

                - **StorageSubTypeName** *(string) --* 

                  SubType of the given storage type. List of available sub-storage options: For "instance" storageType we wont have any storageSubType, in case of "ebs" storageType we will have following valid storageSubTypes 

                  
                  * standard
                   
                  * gp2
                   
                  * gp3
                   
                  * io1
                  

                   Refer ``VolumeType`` for more information regarding above EBS storage options.

                  
                

                - **StorageTypeLimits** *(list) --* 

                  List of limits that are applicable for given storage type.

                  
                  

                  - *(dict) --* 

                    Limits that are applicable for given storage type.

                    
                    

                    - **LimitName** *(string) --* 

                      Name of storage limits that are applicable for given storage type. If ``StorageType`` is ebs, following storage options are applicable 

                      
                      * MinimumVolumeSize
                       Minimum amount of volume size that is applicable for given storage type.It can be empty if it is not applicable. 
                      * MaximumVolumeSize
                       Maximum amount of volume size that is applicable for given storage type.It can be empty if it is not applicable. 
                      * MaximumIops
                       Maximum amount of Iops that is applicable for given storage type.It can be empty if it is not applicable. 
                      * MinimumIops
                       Minimum amount of Iops that is applicable for given storage type.It can be empty if it is not applicable. 
                      * MaximumThroughput
                       Maximum amount of Throughput that is applicable for given storage type.It can be empty if it is not applicable. 
                      * MinimumThroughput
                       Minimum amount of Throughput that is applicable for given storage type.It can be empty if it is not applicable.

                      

                      
                    

                    - **LimitValues** *(list) --* 

                      Values for the ``StorageTypeLimit$LimitName`` .

                      
                      

                      - *(string) --* 
                  
                
              
            
          
            

            - **InstanceLimits** *(dict) --* 

              InstanceLimits represents the list of instance related attributes that are available for given InstanceType.

              
              

              - **InstanceCountLimits** *(dict) --* 

                InstanceCountLimits represents the limits on number of instances that be created in Amazon Elasticsearch for given InstanceType.

                
                

                - **MinimumInstanceCount** *(integer) --* 

                  Minimum number of Instances that can be instantiated for given InstanceType.

                  
                

                - **MaximumInstanceCount** *(integer) --* 

                  Maximum number of Instances that can be instantiated for given InstanceType.

                  
            
          
            

            - **AdditionalLimits** *(list) --* 

              List of additional limits that are specific to a given InstanceType and for each of it's ``InstanceRole`` .

              
              

              - *(dict) --* 

                List of limits that are specific to a given InstanceType and for each of it's ``InstanceRole`` .

                
                

                - **LimitName** *(string) --* 

                  Name of Additional Limit is specific to a given InstanceType and for each of it's ``InstanceRole`` etc. Attributes and their details: 

                  
                  * MaximumNumberOfDataNodesSupported
                   This attribute will be present in Master node only to specify how much data nodes upto which given ``ESPartitionInstanceType`` can support as master node. 
                  * MaximumNumberOfDataNodesWithoutMasterNode
                   This attribute will be present in Data node only to specify how much data nodes of given ``ESPartitionInstanceType`` upto which you don't need any master nodes to govern them.

                  

                  
                

                - **LimitValues** *(list) --* 

                  Value for given ``AdditionalLimit$LimitName`` .

                  
                  

                  - *(string) --* 
              
            
          
        
    
  
  
  **Exceptions**
  
  *   :py:class:`ElasticsearchService.Client.exceptions.BaseException`

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

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

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

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

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

  