def list_elasticsearch_instance_types(ElasticsearchVersion=None, DomainName
    =None, MaxResults=None, NextToken=None):
    """
    List all Elasticsearch instance types that are supported for given ElasticsearchVersion
    See also: AWS API Documentation
    
    
    :example: response = client.list_elasticsearch_instance_types(
        ElasticsearchVersion='string',
        DomainName='string',
        MaxResults=123,
        NextToken='string'
    )
    
    
    :type ElasticsearchVersion: string
    :param ElasticsearchVersion: [REQUIRED]
            Version of Elasticsearch for which list of supported elasticsearch instance types are needed.
            

    :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 list of available Elasticsearch instance types when modifying existing domain.

    :type MaxResults: integer
    :param MaxResults: Set this value to limit the number of results returned. Value provided must be greater than 30 else it wont be honored.

    :type NextToken: string
    :param NextToken: NextToken should be sent in case if earlier API call produced result containing NextToken. It is used for pagination.

    :rtype: dict
    :return: {
        'ElasticsearchInstanceTypes': [
            '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'|'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',
        ],
        'NextToken': 'string'
    }
    
    
    :returns: 
    (string) --
    
    """
    pass
