[[release_notes_77]]
=== 7.7 Release notes

This version drops support for Ruby 2.4 since it's reached it's end of life.


[discrete]
==== Client

- Support for Elasticsearch version `7.7`


[discrete]
===== Custom Headers

You can set custom HTTP headers on the client's initializer or pass them as a parameter to any API endpoint. https://github.com/elastic/elasticsearch-ruby/tree/7.x/elasticsearch-transport#custom-http-headers[More info and code examples].


[discrete]
==== API


[discrete]
===== API Changes

- Clean: Removes up some deprecated endpoints: `abort_benchmark`, `benchmark`, `delete_by_rethrottle`, `nodes.shutdown`, `remote.info`.
- `expand_wildcards` Whether to expand wildcard expressions to concrete indices that are open, closed or both. Options: open, closed, hidden, none, all. `hidden` option is new. It was also added to the following endpoints: `cat.aliases`, `cat.indices`.
- `delete_by_query`: Parameter `slices` can now be set to `auto`.
- `reindex`: Parameter `slices` can now be set to `auto`.
- `update_by_query`: Parameter `slices` can now be set to `auto`.
- `snapshot.cleanup_repository`: Parameter `body` is removed.


[discrete]
===== New API Endpoints

- `cluster.delete_component_template`
- `cluster.get_component_template`
- `cluster.put_component_template`
- `indices.create_data_stream` (experimental)
- `indices.delete_data_stream` (experimental)
- `indices.get_data_stream` (experimental)


[discrete]
==== X-Pack


[discrete]
===== API Changes

- `machine_learing.get_trained_models`: New parameter `tags`
- `machine_learning.put_datafeed`, `machine_learning.update_datafeed`: Added parameters `ignore_unavailable`, `allow_no_indices`, `ignore_throttled`, `expand_wildcards`
- `reload_secure_settings`: New parameter `body`, an object containing the password for the keystore.


[discrete]
===== New API Endpoints

- `async_search.delete`
- `async_search.get`
- `async_search.submit`
- `cat.ml_data_frame_analytics`
- `cat.ml_datafeeds`
- `cat.ml_jobs`
- `cat.ml_trained_models`
- `cat.transform`
- `cat.transforms`
- `machine_learning.estimate_model_memory`
- `transform.delete_transform`
- `transform.get_transform`
- `transform.get_transform_stats`
- `transform.preview_transform`
- `transform.put_transform`
- `transform.start_transform`
- `transform.stop_transform`
- `transform.update_transform`