### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

As mentioned [here](https://github.com/localstack/localstack/issues/4834#issuecomment-1021009701) it seems like the `AmazonopensearchserviceDestinationConfiguration` was not added while implementing OpenSearch. I guess it just needs be added [here](https://github.com/localstack/localstack/blob/53b5c7788bf35b1882b6cb1949e17d27e198cf61/localstack/services/cloudformation/models/kinesisfirehose.py#L23-L27).

### Expected Behavior

I can (and should) use `AmazonopensearchserviceDestinationConfiguration` instead of `ElasticsearchDestinationConfiguration` (which I should only be able to use if I use ElasticSearch-Service).

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

Well, just use `AmazonopensearchserviceDestinationConfiguration` and your stream will never be able to deliver the records to your (external) Cluster. But it works with `ElasticsearchDestinationConfiguration`.

### Environment

```markdown
- OS: Windows mit WSL (Ubuntu 20.04)
- LocalStack: latest
```


### Anything else?

_No response_
destination["S3DestinationDescription"] = convert_s3_update_to_desc(
                s3_destination_update
            )
        if extended_s3_destination_update:
            destination["ExtendedS3DestinationDescription"] = convert_extended_s3_update_to_desc(
                extended_s3_destination_update
            )
        if http_endpoint_destination_update:
            destination["HttpEndpointDestinationDescription"] = convert_http_update_to_desc(
                http_endpoint_destination_update
            )
        return UpdateDestinationOutput()
    def _reencode_record(self, record: Record) -> Record:
        """
        The ASF decodes the record's data automatically. But most of the service integrations (kinesis, lambda, http)
        are working with the base64 encoded data.
        """
        if "Data" in record:
            record["Data"] = base64.b64encode(record["Data"])
        return record
    def _reencode_records(self, records: List[Record]) -> List[Record]:
        return [self._reencode_record(r) for r in records]
    def _process_records(self, records: List[Record], shard_id: str, fh_d_stream: str):
        """Process the given records from the underlying Kinesis stream"""
        return self._put_records(fh_d_stream, records)
    def _put_record(self, delivery_stream_name: str, record: Record) -> PutRecordOutput:
        """Put a record to the firehose stream from a PutRecord API call"""
        result = self._put_records(delivery_stream_name, [record])
        return PutRecordOutput(RecordId=result[0]["RecordId"])
    def _put_records(