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

return put_records(stream_name, [record])
def put_records(stream_name, records):
    stream = get_stream(stream_name)
    for dest in stream['Destinations']:
        if 'ESDestinationDescription' in dest:
            es_dest = dest['ESDestinationDescription']
            es_index = es_dest['IndexName']
            es_type = es_dest['TypeName']
            es = connect_elasticsearch()
            for record in records:
                obj_id = uuid.uuid4()
                
                if 'Data' in record:
                    data = base64.b64decode(record['Data'])
                
                elif 'data' in record:
                    data = base64.b64decode(record['data'])
                body = json.loads(data)
                try:
                    es.create(index=es_index, doc_type=es_type, id=obj_id, body=body)
                except Exception as e:
                    LOG.error('Unable to put record to stream: %s %s' % (e, traceback.format_exc()))
                    raise e
        if 'S3DestinationDescription' in dest:
            s3_dest = dest['S3DestinationDescription']
            bucket = bucket_name(s3_dest['BucketARN'])