# Type of request: This is a ...

[X ] bug report
[ ] feature request

# Detailed description
Calling PutEvents operation returns 500 if no `Detail` is specified. This case is similar to #3043

## Expected behavior
According to the doc https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutEventsRequestEntry.html `Details` is optional. 

```
 Detail
    A valid JSON string. There is no other schema imposed. The JSON string may contain fields and nested subobjects.
    Type: String
    Required: No
```

So this should works and set `Detail` as `{}`

```
eb_client = boto3.client('events', endpoint_url='http://localhost:4587')
eb_client.put_events(
    Entries=[
        {
            'DetailType': 'Test'
        }
    ]
)
```

## Actual behavior
500 is returned

# Steps to reproduce

1. Start LocalStack with SERVICES=events
2. Run the client code

## Command used to start LocalStack

```
docker run --rm --name localstack -p 4587:4587 -e SERVICES=events -e DEBUG=true localstack/localstack
```

## Client code (AWS SDK code snippet, or sequence of "awslocal" commands)

CLI:

```
aws events put-events --endpoint-url http://localhost:4587 --entries '[{"DetailType": "Test"}]'
```

Or via python:

```
eb_client = boto3.client('events', endpoint_url='http://localhost:4587')
eb_client.put_events(
    Entries=[
        {
            'DetailType': 'Test',
            'Detail': '{}'
        }
    ]
)
```

if any([list(param.keys())[0] in CONTENT_BASE_FILTER_KEYWORDS for param in parameters if isinstance(param, dict)]):
        return True
def filter_event_with_content_base_parameter(pattern_value, event_value):
    for element in pattern_value:
        if (isinstance(element, (str, int))) \
           and (event_value == element or element in event_value):
            return True
        elif isinstance(element, dict):
            element_key = list(element.keys())[0]
            element_value = element.get(element_key)
            if element_key.lower() == 'prefix':
                if re.match(r'^{}'.format(element_value), event_value):
                    return True
            elif element_key.lower() == 'exists':
                if element_value and event_value:
                    return True
                elif not element_value and not event_value:
                    return True
            elif element_key.lower() == 'cidr':
                ips = [str(ip) for ip in ipaddress.IPv4Network(element_value)]
                if event_value in ips:
                    return True
            elif element_key.lower() == 'numeric':
                if check_valid_numeric_content_base_rule(element_value):
                    for index in range(len(element_value)):
                        if isinstance(element_value[index], int):
                            continue
                        if element_value[index] == '>' and \
                            isinstance(element_value[index + 1], int) and \