# Type of request: This is a ...

[x] bug report
[ ] feature request

Proposed labels:
[bug][diverges-from-aws][priority-high]

# Detailed description
There is a bug in the firehose API where it assumes an elasticsearch instance has a "TypeName"
Types have been removed in ES 7 and above
https://github.com/localstack/localstack/blob/master/localstack/services/firehose/firehose_api.py line 64 attempts to access a TypeName property which doesn't exist in ES 7 setups.

This results in:
```
File "/opt/code/localstack/localstack/services/firehose/firehose_api.py", line 64, in put_records
es_type = es_dest['TypeName']
KeyError: 'TypeName'
```
When attempting a PutRecord action
...
## Client code 
https://github.com/localstack/localstack/blob/master/localstack/services/firehose/firehose_api.py line 64
...

response = create_stream(
            stream_name,
            delivery_stream_type=data.get('DeliveryStreamType'),
            delivery_stream_type_configuration=data.get('KinesisStreamSourceConfiguration'),
            s3_destination=_s3_destination,
            elasticsearch_destination=data.get('ElasticsearchDestinationConfiguration'),
            tags=data.get('Tags'),
            region_name=region_name
        )
    elif action == 'DeleteDeliveryStream':
        stream_name = data['DeliveryStreamName']
        response = delete_stream(stream_name)
    elif action == 'DescribeDeliveryStream':
        stream_name = data['DeliveryStreamName']
        response = get_stream(stream_name)
        if not response:
            return error_not_found(stream_name)
        response = {
            'DeliveryStreamDescription': response
        }
    elif action == 'PutRecord':
        stream_name = data['DeliveryStreamName']
        record = data['Record']
        put_record(stream_name, record)
        response = {
            'RecordId': str(uuid.uuid4())
        }
    elif action == 'PutRecordBatch':
        stream_name = data['DeliveryStreamName']
        records = data['Records']