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

'DeliveryStreamStatus': 'ACTIVE',
        'DeliveryStreamName': stream_name,
        'Destinations': [],
        'Tags': tags
    }
    DELIVERY_STREAMS[stream_name] = stream
    if elasticsearch_destination:
        update_destination(stream_name=stream_name, destination_id=short_uid(),
                           elasticsearch_update=elasticsearch_destination)
    if s3_destination:
        update_destination(stream_name=stream_name, destination_id=short_uid(), s3_update=s3_destination)
    
    event_publisher.fire_event(event_publisher.EVENT_FIREHOSE_CREATE_STREAM,
        payload={'n': event_publisher.get_hash(stream_name)})
    if delivery_stream_type == 'KinesisStreamAsSource':
        kinesis_stream_name = delivery_stream_type_configuration.get('KinesisStreamARN').split('/')[1]
        kinesis_connector.listen_to_kinesis(
            stream_name=kinesis_stream_name, fh_d_stream=stream_name,
            listener_func=process_records, wait_until_started=True,
            ddb_lease_table_suffix='-firehose', region_name=region_name)
    return stream
def delete_stream(stream_name):
    stream = DELIVERY_STREAMS.pop(stream_name, {})
    if not stream:
        return error_not_found(stream_name)
    
    event_publisher.fire_event(event_publisher.EVENT_FIREHOSE_DELETE_STREAM,
        payload={'n': event_publisher.get_hash(stream_name)})
    return {}
def get_stream(stream_name):