# 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
...

s3_update=None, elasticsearch_update=None, version_id=None):
    dest = get_destination(stream_name, destination_id)
    if elasticsearch_update:
        if 'ESDestinationDescription' not in dest:
            dest['ESDestinationDescription'] = {}
        for k, v in iteritems(elasticsearch_update):
            dest['ESDestinationDescription'][k] = v
    if s3_update:
        if 'S3DestinationDescription' not in dest:
            dest['S3DestinationDescription'] = {}
        for k, v in iteritems(s3_update):
            dest['S3DestinationDescription'][k] = v
    return dest
def process_records(records, shard_id, fh_d_stream):
    put_records(fh_d_stream, records)
def create_stream(stream_name, delivery_stream_type='DirectPut', delivery_stream_type_configuration=None,
                  s3_destination=None, elasticsearch_destination=None, tags=None, region_name=None):
    tags = tags or {}
    stream = {
        'DeliveryStreamType': delivery_stream_type,
        'KinesisStreamSourceConfiguration': delivery_stream_type_configuration,
        'HasMoreDestinations': False,
        'VersionId': '1',
        'CreateTimestamp': time.time(),
        'DeliveryStreamARN': firehose_stream_arn(stream_name),