Changelogs » Elasticsearch

PyUp Safety actively tracks 373,221 Python packages for vulnerabilities and notifies you when to upgrade.

Elasticsearch

8.0.0a1

Client
  
  Added
  
  - Added the top-level `.options()` method to `Elasticsearch` and `AsyncElasticsearch` for modifying transport options.
  - Added parameters corresponding to JSON request body fields for all APIs
  - Added `basic_auth` parameter for specifying username and password authentication
  - Added `bearer_auth` parameter for specifying an HTTP bearer token or service token
  - Added the `meta` property to `ApiError` to access the HTTP response metadata of an error.
  
  Changed
  
  - Changed the transport layer to use the `elastic-transport` package
  - Changed user-defined `body` parameters to have semantic names (e.g `index(document={...})` instead of `index(body={...})`.
  - Changed responses to be objects with three properties, `meta` for response metadata, `raw` for the raw deserialized response, and `body` for a typed body.
  - Changed `AsyncElasticsearch` to always be available, regardless of whether `aiohttp` is installed
  - Changed exception hierarchy, the major change is a new exception `ApiError` which differentiates between an error that's raised from the transport layer (previously `elasticsearch.exceptions.TransportError`, now `elastic_transport.TransportError`) and one raised from the API layer
  - Changed the name of `JSONSerializer` to `JsonSerializer` for consistency with other serializer names. Added an alias to the old name for backwards compatibility
  
  Removed
  
  - Removed the `elasticsearch.connection` module as all functionality has been moved to the `elastic-transport` package
  - Removed the default URL of `http://localhost:9200` due to Elasticsearch 8.0 default configuration being `https://localhost:9200`.
  The client's connection to Elasticsearch now must be specified with scheme, host, and port or with the `cloud_id` parameter
  - Removed the ability to use positional arguments with API methods. Going forward all API parameters are keyword-only parameters
  
  Deprecated
  
  - Deprecated setting transport options `http_auth`, `api_key`, `ignore`, `request_timeout`, `headers`, and `opaque_id`
  All of these settings should instead be set via the `.options()` method
  - Deprecated the `elasticsearch.transport` and `elasticsearch.client` modules. These modules will be removed in a future version
  - Deprecated the `body` and `params` parameters on all APIs
  
  API
  
  - Removed the `doc_type` and `include_type_name` parameters from many document and index APIs
  
  CAT
  
  - Removed the deprecated `local` parameter from the `cat.indices`, `cat.nodes`, `cat.shards` API
  - Removed the deprecated `allow_no_datafeeds` parameter from the `cat.ml_datafeeds` API
  - Removed the deprecated `allow_no_jobs` parameter from the `cat.ml_jobs` API
  - Removed the deprecated `size` parameter from the `cat.thread_pool` API
  - Added the `time` parameter to the `cat.thread_pool` API
  
  Documents
  
  - Removed the deprecated `size` parameter from the `delete_by_query` API
  - Removed the deprecated `size` parameter from the `update_by_query` API
  
  Indices
  
  - Removed the deprecated `indices.flush_synced` API
  - Removed the deprecated `indices.freeze` API
  - Removed the deprecated `indices.get_upgrade` API
  - Removed the deprecated `indices.upgrade` API
  - Removed the deprecated parameter `copy_settings` from the `indices.shrink` API
  
  License / X-Pack
  
  - Deprecated the `accept_enterprise` parameter of the `license.get` API
  - Deprecated the `accept_enterprise` parameter of the `xpack.info` API
  
  Machine Learning
  
  - Removed the deprecated `allow_no_jobs` parameter from the `ml.close_job` API
  - Added the `timeout` parameter to the `ml.delete_trained_model` API
  - Removed the deprecated `ml.find_text_structure` API
  - Removed the deprecated `allow_no_datafeeds` parameter from the `ml.get_datafeed_stats` API
  - Removed the deprecated `allow_no_datafeeds` parameter from the `ml.get_datafeeds` API
  - Removed the deprecated `allow_no_jobs` parameter from the `ml.get_job_stats` API
  - Removed the deprecated `allow_no_jobs` parameter from the `ml.get_jobs` API
  - Removed the deprecated `allow_no_jobs` parameter from the `ml.get_overall_buckets` API
  - Added the **experimental** `ml.infer_trained_model_deployment` API
  - Added the **experimental** `ml.put_trained_model_definition_part` API
  - Added the **experimental** `ml.put_trained_model_vocabulary` API
  - Added the **experimental** `ml.start_trained_model_deployment` API
  - Added the **experimental** `ml.stop_trained_model_deployment` API
  
  Search
  
  - Added the **experimental** `knn_search` API
  
  Searchable Snapshots
  
  - Removed the deprecated `searchable_snapshots.repository_stats` API
  
  Security
  
  - Added the `security.enroll_kibana` API
  - Added the `security.enroll_node` API

7.15.2

Client
  
  - API is compatible with Elasticsearch 7.15.2
  
  Nodes
  
  - Documented additional options the `metric` parameter of the `nodes.info` API.

7.15.1

Client
  
  - Fixed a performance regression in `JSONSerializer.default()` when `numpy` and `pandas` weren't installed.
  - Changed the `DeprecationWarning` for the `body` parameter to be a "removed in a future version" instead of "removed in 8.0" in line with the 8.0 roadmap.
  
  API
  
  Search
  
  - The `index` parameter of the `open_point_in_time` API is now required, was optional.

7.15.0

Client
  
  We've recently announced our [roadmap for 8.0.0](https://github.com/elastic/elasticsearch-py/issues/1696) and have begun issuing [deprecation warnings](https://github.com/elastic/elasticsearch-py/issues/1698) in the 7.x release stream to prepare users for upgrading to 8.0.0 when available.
  
  Added
  
  - Added more precise type hints to many API parameters
  - Added explicit parameters to `AsyncTransport` and `AIOHttpConnection`
  - Added `MapboxVectorTileSerializer` for handling the `application/vnd.mapbox-vector-tile` mimetype. Because this mimetype is binary rather than text the raw response `bytes` are forwarded from the serializer without decoding
  
  Fixed
  
  - Reduced amount of time to import the `elasticsearch` module by delaying imports of `pandas` and `numpy` until later in the JSON serialization stage if necessary
  
  APIs
  
  - Deprecated positional arguments for APIs, instead use keyword arguments exclusively.
  
  Search
  
  - Added the `search_mvt` **experimental** API
  - Added body field parameters to the `search`, `scroll`, and `clear_scroll` APIs
  - Deprecated the `body` parameter of the `search`, `scroll`, and `clear_scroll` APIs
  
  Documents
  
  - Added body field parameters to the `update` API
  - Added the `document` parameter to the `create` and `index` APIs
  - Deprecated the `body` parameter of the `create`, `index`, and `update` APIs
  
  Indices
  
  - Added the `indices.disk_usage` **experimental** API
  - Added the `indices.fields_usage_stats` **experimental** API
  - Added body field parameters to the `indices.create` API
  - Deprecated the `body` parameter of the `indices.create` API
  
  Machine Learning
  
  - Added the `ignore_unavailable`, `allow_no_indices`, `ignore_throttled`, and `expand_wildcards` parameters to the `ml.put_job` API
  
  Nodes
  
  - Added the `nodes.clear_repositories_metering_archive` **experimental** API
  - Added the `nodes.get_repositories_metering_info` **experimental** API
  - Added the `shards` option to the `index_metric` parameter of the `nodes.stats` API
  - Deprecated the `doc_type` parameter of the `nodes.hot_threads` API, instead use the `type` parameter
  
  Security
  
  - Added the `security.query_api_keys` API
  
  License
  
  - Deprecated the `doc_type` parameter of the `license.post_start_trial` API, instead use the `type` parameter

7.15.0a1

Client
  
  We've recently announced our [roadmap for 8.0.0](https://github.com/elastic/elasticsearch-py/issues/1696) and have begun issuing [deprecation warnings](https://github.com/elastic/elasticsearch-py/issues/1698) in the 7.x release stream to prepare users for upgrading to 8.0.0 when available.
  
  Added
  
  - Added more precise type hints to many API parameters
  - Added explicit parameters to `AsyncTransport` and `AIOHttpConnection`
  - Added `MapboxVectorTileSerializer` for handling the `application/vnd.mapbox-vector-tile` mimetype. Because this mimetype is binary rather than text the raw response `bytes` are forwarded from the serializer without decoding.
  
  APIs
  
  - Deprecated positional arguments for APIs, instead use keyword arguments exclusively.
  
  Search
  
  - Added the `search_mvt` **experimental** API
  - Added body field parameters to the `search`, `scroll`, and `clear_scroll` APIs
  - Deprecated the `body` parameter of the `search`, `scroll`, and `clear_scroll` APIs
  
  Documents
  
  - Added body field parameters to the `update` API
  - Added the `document` parameter to the `create` and `index` APIs
  - Deprecated the `body` parameter of the `create`, `index`, and `update` APIs
  
  Indices
  
  - Added the `indices.disk_usage` **experimental** API
  - Added the `indices.fields_usage_stats` **experimental** API
  - Added body field parameters to the `indices.create` API
  - Deprecated the `body` parameter of the `indices.create` API
  
  Machine Learning
  
  - Added the `ignore_unavailable`, `allow_no_indices`, `ignore_throttled`, and `expand_wildcards` parameters to the `ml.put_job` API.
  
  Nodes
  
  - Added the `nodes.clear_repositories_metering_archive` **experimental** API
  - Added the `nodes.get_repositories_metering_info` **experimental** API
  - Added the `shards` option to the `index_metric` parameter of the `nodes.stats` API
  - Deprecated the `doc_type` parameter of the `nodes.hot_threads` API, instead use the `type` parameter
  
  Security
  
  - Added the `security.query_api_keys` API
  
  License
  
  - Deprecated the `doc_type` parameter of the `license.post_start_trial` API, instead use the `type` parameter

7.14.2

Client
  
  - Client is compatible with Elasticsearch 7.14.2

7.14.1

Client
  
  - Client is compatible with Elasticsearch 7.14.1

7.14.0

Client
  
  Added
  
  - Added check that client is connected to an Elasticsearch cluster. If the client isn't connected to a supported Elasticsearch cluster the `UnsupportedProductError` exception will be raised.
  
  APIs
  
  Search
  
  - Added the `terms_enum` **beta** API
  
  - Removed the `query_and_fetch` and `dfs_query_and_fetch` options in the `search_type` parameter to the `msearch`, `msearch_template` and `search_template` APIs
  
  Index Lifecycle Management
  
  - Added the `ilm.migrate_to_data_tiers` API
  
  Machine Learning
  
  - Added the `ml.reset_job` API
  
  Security
  
  - Added the `security.saml_authenticate` API
  - Added the `security.saml_complete_logout` API
  - Added the `security.saml_invalidate` API
  - Added the `security.saml_logout` API
  - Added the `security.saml_prepare_authentication` API
  - Added the `security.saml_service_provider_metadata` API
  
  SQL
  
  - Added the `sql.delete_async` API
  - Added the `sql.get_async` API
  - Added the `sql.get_async_status` API
  
  Snapshots
  
  - Added the `include_repository` parameter to `snapshot.get` API
  - Added the `rarely_abort_writes` parameter to the `snapshot.repository_analyze` API

7.14.0a1

Client
  
  Added
  
  - Added check that client is connected to an Elasticsearch cluster. If the client isn't connected to Elasticsearch a `NotElasticsearchError` exception will be raised.
  
  APIs
  
  Search
  
  - Added the `terms_enum` **beta** API
  
  - Removed the `query_and_fetch` and `dfs_query_and_fetch` options in the `search_type` parameter to the `msearch`, `msearch_template` and `search_template` APIs
  
  Index Lifecycle Management
  
  - Added the `ilm.migrate_to_data_tiers` API
  
  Machine Learning
  
  - Added the `ml.reset_job` API
  
  Security
  
  - Added the `security.saml_authenticate` API
  - Added the `security.saml_complete_logout` API
  - Added the `security.saml_invalidate` API
  - Added the `security.saml_logout` API
  - Added the `security.saml_prepare_authentication` API
  - Added the `security.saml_service_provider_metadata` API
  
  Snapshots
  
  - Added the `include_repository` parameter to `snapshot.get` API
  - Added the `rarely_abort_writes` parameter to the `snapshot.repository_analyze` API

7.13.4

Client
  
  - Client is compatible with Elasticsearch 7.13.4

7.13.3

Client
  
  Fixed
  
  - `NameError` would be raised on Python 2.7 and 3.4 when a connection error would have otherwise been raised.

7.13.2

:warning: **This release has been yanked on PyPI due to a regression in Python <3.5, please use another version.**
  
  Client
  
  Fixed
  
  - `Transport.perform_request()` now properly reraises `RecursionError` (Contributed by hmilkovi)
  - `AIOHttpConnection` no longer sends `Accept-Encoding: gzip, deflate` when `http_compress=None`.
  Instead now sends no `Accept-Encoding` header.
  
  APIs
  
  Snapshot
  
  - Added the `snapshot.repository_analyze` API

7.13.1

Client
  
  - Client is compatible with Elasticsearch 7.13.1

7.13.0

Client
  
  Added
  
  - Added support for compatibility header for Elasticsearch. If the environment variable `ELASTIC_CLIENT_APIVERSIONING=1` is set the client will send the headers Accept and Content-Type with the following value: `application/vnd.elasticsearch+json;compatible-with=7`.
  
  APIs
  
  Cat
  
  - Added the `include_unloaded_segments` parameter to the `cat.nodes` API
  
  Snapshot Features
  
  - Added the `features.reset_features` **experimental** API
  
  Fleet
  
  - Added the `fleet.global_checkpoints` **expiremental** API
  
  Ingest
  
  - Added the `ingest.geo_ip_stats` API
  
  Machine Learning
  
  - Added the `ml.delete_trained_model_alias` API
  - Added the `ml.preview_data_frame_analytics` API
  - Added the `ml.put_trained_model_alias` API
  - Changed the `ml.delete_data_frame_analytics`, `ml.delete_trained_model`, `ml.explain_data_frame_analytics`, `ml.get_data_fram_analytics`, `ml.get_data_frame_analytics_stats`, `ml.get_trained_models`, `ml.get_trained_models_stats`, `ml.put_trained_model`, `ml.start_data_frame_analytics`, `ml.stop_data_frame_analytics`, `ml.update_data_frame_analytics` APIs from **beta** to **stable**.
  
  Nodes
  
  - Added `include_unloaded_segments` parameter to `node.stats` API
  
  Searchable Snapshots
  
  - Added the `searchable_snapshots.cache_stats` **experimental** API
  
  Security
  
  - Added the `security.clear_cached_service_tokens` **beta** API
  - Added the `security.create_service_token` **beta** API
  - Added the `security.delete_service_token` **beta** API
  - Added the `security.get_service_accounts` **beta** API
  - Added the `security.get_service_credentials` **beta** API
  
  Shutdown
  
  - Added the `shutdown.delete_node` **experiemental** API
  - Added the `shutdown.get_node` **experimental** API
  - Added the `shutdown.put_node` **experimental** API
  
  Snapshots
  
  - Added the `index_details` parameter to `snapshot.get` API
  
  Text Structure
  
  - Changed the `text_structure.find_structure` API from **experimental** to **stable**

7.12.1

APIs
  
  Text Structure
  
  - Changed the `text_structure.find_text_structure` API from **experimental** to **stable**

7.12.0

APIs
  
  Autoscaling
  
  - Changed `autoscaling.delete_autoscaling_policy`, `autoscaling.get_autoscaling_policy`, and `autoscaling.put_autoscaling_policy` APIs from **experimental** to **stable**
  
  EQL
  
  - Added `eql.get_status` API
  
  Logash
  
  - Added `logstash.delete_pipeline`, `logstash.get_pipeline`, and `logstash.put_pipeline` APIs
  
  Machine Learning
  
  - Removed the **experimental** `ml.find_text_structure` API
  
  Searchable Snapshots
  
  - Added `storage` parameter to the `searchable_snapshots.mount` API
  - Added `level` parameter to the `searchable_snapshots.stats` API
  
  Search
  
  - Added the `min_compatible_shard_node` parameter to `search()`
  
  Text Structure
  
  - Added **experimental** `text_structure.find_text_structure` API

7.11.0

Client
  
  Added
  
  * Added the ``X-Elastic-Client-Meta`` HTTP header and the ``meta_header`` parameter for controlling the header (1473)
  * Added ``ElasticsearchWarning`` which is raised when the ``Warning`` HTTP header is returned from Elasticsearch. `ElasticsearchDeprecationWarning` is now an alias for this warning type (1495)
  
  APIs
  
  Async Search
  
  - Added the `async_search.status` API
  
  Autoscaling
  
  - Added the `autoscaling.get_autoscaling_capacity` **experimental** API
  - Removed the `autoscaling.get_autoscaling_decision` **experimental** API
  
  Cat
  
  - Changed `cat.tasks` API parameters `node_id` and `parent_task` to `nodes` and `parent_task_id`
  
  Cluster
  
  - Changed `cluster.delete_component_template`, `cluster.exists_component_template`, and `cluster.get_component_template`,
  `cluster.put_component_template` APIs from **experimental** to **stable**
  
  EQL
  
  - Changed `eql.delete`, `eql.get`, `eql.search` APIs from **beta** to **stable**
  
  Indices
  
  - Added `indices.migrate_to_data_stream` API
  - Added `indices.promote_data_stream` API
  - Added `expand_wildcards` parameter to the `indices.delete_data_stream` and `indices.get_data_stream` APIs
  - Changed `indices.delete_index_template`, `indices.exists_index_template`, `indices.get_index_template`, `indices.put_index_template`, `indices.simulate_index_template`, and `indices.simulate_template` APIs moved from **experimental** to **stable**
  
  Machine Learning
  
  - Added `ml.upgrade_job_snapshot` API
  - Added `exclude_generated` parameter to `ml.get_data_frame_analytics`, `ml.get_datafeeds`, `ml.get_jobs`, and `ml.get_trained_models` APIs
  - Changed `ml.delete_data_frame_analytics`, `ml.delete_trained_model`, `ml.explain_data_frame_analytics`, `ml.get_data_frame_analytics`, `ml.get_data_frame_analytics_stats`, `ml.get_trained_models`, `ml.get_trained_models_stats`, `ml.put_data_frame_analytics`, `ml.put_trained_model`, `ml.start_data_frame_analytics`, `ml.stop_data_frame_analytics`, `ml.update_data_frame_analytics` APIs from **experimental** to **beta**
  
  Rollup
  
  - Added `rollup.rollup` API
  
  Transform
  
  - Added `exclude_generated` parameter to `transform.get_transform` API
  
  Watcher
  
  - Added `watcher.query_watches` API

7.11.0b1

Client
  
  Added
  
  * Added the ``X-Elastic-Client-Meta`` HTTP header and the ``meta_header`` parameter for controlling the header (1473)
  * Added ``ElasticsearchWarning`` which is raised when the ``Warning`` HTTP header is returned from Elasticsearch. `ElasticsearchDeprecationWarning` is now an alias for this warning type (1495)
  
  APIs
  
  Async Search
  
  - Added the `async_search.status` API
  
  Autoscaling
  
  - Added the `autoscaling.get_autoscaling_capacity` **experimental** API
  - Removed the `autoscaling.get_autoscaling_decision` **experimental** API
  
  Cat
  
  - Changed `cat.tasks` API parameters `node_id` and `parent_task` to `nodes` and `parent_task_id`
  
  Cluster
  
  - Changed `cluster.delete_component_template`, `cluster.exists_component_template`, and `cluster.get_component_template`,
  `cluster.put_component_template` APIs from **experimental** to **stable**
  
  EQL
  
  - Changed `eql.delete`, `eql.get`, `eql.search` APIs from **beta** to **stable**
  
  Indices
  
  - Added `indices.migrate_to_data_stream` API
  - Added `indices.promote_data_stream` API
  - Added `expand_wildcards` parameter to the `indices.delete_data_stream` and `indices.get_data_stream` APIs
  - Changed `indices.delete_index_template`, `indices.exists_index_template`, `indices.get_index_template`, `indices.put_index_template`, `indices.simulate_index_template`, and `indices.simulate_template` APIs moved from **experimental** to **stable**
  
  Machine Learning
  
  - Added `ml.upgrade_job_snapshot` API
  - Added `exclude_generated` parameter to `ml.get_data_frame_analytics`, `ml.get_datafeeds`, `ml.get_jobs`, and `ml.get_trained_models` APIs
  - Changed `ml.delete_data_frame_analytics`, `ml.delete_trained_model`, `ml.explain_data_frame_analytics`, `ml.get_data_frame_analytics`, `ml.get_data_frame_analytics_stats`, `ml.get_trained_models`, `ml.get_trained_models_stats`, `ml.put_data_frame_analytics`, `ml.put_trained_model`, `ml.start_data_frame_analytics`, `ml.stop_data_frame_analytics`, `ml.update_data_frame_analytics` APIs from **experimental** to **beta**
  
  Rollup
  
  - Added `rollup.rollup` API
  
  Transform
  
  - Added `exclude_generated` parameter to `transform.get_transform` API
  
  Watcher
  
  - Added `watcher.query_watches` API

7.10.1

Client
  
  Fixed
  
  * Fixed issue where the Scan helper would fail if a `scroll` response returned without a value for `_shards.skipped` ([1451](https://github.com/elastic/elasticsearch-py/pull/1451))
  * Fixed handling of IPv6 hosts with a port in the computed ``Connection.host`` property ([1460](https://github.com/elastic/elasticsearch-py/pull/1460))
  * Fixed documented task management API stability, should have been "experimental" ([1471](https://github.com/elastic/elasticsearch-py/pull/1471))
  
  Changed
  
  * Changed deprecated `collections.Mapping` in favor of `collections.abc.Mapping` for Python 3.9 ([1443](https://github.com/elastic/elasticsearch-py/pull/1443))

7.10.0

Client
  
  Added
  
  * Added support for Elasticsearch 7.10 APIs
  * Added basic type stubs for static type checking and IDE auto-complete of API parameters ([1297](https://github.com/elastic/elasticsearch-py/pull/1297), [#1406](https://github.com/elastic/elasticsearch-py/pull/1406))
  * Added support for [Optimistic Concurrency Control options](https://www.elastic.co/guide/en/elasticsearch/reference/current/optimistic-concurrency-control.html) (``_if_seq_no``/``_if_primary_term``) to bulk helpers ([#1387](https://github.com/elastic/elasticsearch-py/pull/1387))
  * Added support for passing ``_source`` with ``"_op_type": "update"`` bulk helpers ([1387](https://github.com/elastic/elasticsearch-py/pull/1387))
  * Added API stability to doc-strings of API methods and documentation ([1410](https://github.com/elastic/elasticsearch-py/pull/1410))
  
  Removed
  
  * Removed explicit ``yarl`` dependency from ``[async]`` extra to avoid issue where pip would override ``aiohttp``'s pin of ``yarl``. This was not a problem if you install with ``--use-feature=2020-resolver``. Users should see no changes. ([1401](https://github.com/elastic/elasticsearch-py/pull/1401))
  
  Fixed
  
  * Fixed bug where ``Connection.log_request_failure()`` call would receive the compressed HTTP body rather than uncompressed when an error is raised for ``RequestsHttpConnection`` ([1394](https://github.com/elastic/elasticsearch-py/pull/1394))
  * Fixed a typo in AsyncTransport where ``sniff_timeout`` was used instead of ``sniffer_timeout`` ([1431](https://github.com/elastic/elasticsearch-py/pull/1431), contributed by HarrySky)
  
  Basic APIs
  
  Snapshot
  
  * Added `snapshot.clone` method
  
  Index
  
  * Added `require_alias` parameter to multiple index APIs
  
  X-Pack APIs
  
  Point in Time
  
  * Added `close_point_in_time` and `open_point_in_time` methods
  
  Security
  
  * Added `security.clear_api_key_cache` and `security.grant_api_key` methods
  
  Machine Learning
  
  * Deprecated `allow_no_jobs` parameter of `cat.ml_jobs` and `ml.close_job`, `ml.get_job_stats`, `ml.get_jobs`, `ml.get_overall_buckets` methods in favor of `allow_no_match` parameter
  * Deprecated `allow_no_datafeeds` parameter of `ml.get_datafeed_stats`, `ml.get_datafeeds`, `ml.stop_datafeed` in favor of `allow_no_match` parameter
  * Deprecated `include_model_definition` parameter of `ml.get_trained_models` method in favor of `include` parameter

7.10.0a2

Added
  
  * Added support for Elasticsearch 7.10 APIs
  * Added basic type stubs for static type checking and IDE auto-complete of API parameters ([1297](https://github.com/elastic/elasticsearch-py/pull/1297), [#1406](https://github.com/elastic/elasticsearch-py/pull/1406))
  * Added support for [Optimistic Concurrency Control options](https://www.elastic.co/guide/en/elasticsearch/reference/current/optimistic-concurrency-control.html) (``_if_seq_no``/``_if_primary_term``) to bulk helpers ([#1387](https://github.com/elastic/elasticsearch-py/pull/1387))
  * Added support for passing ``_source`` with ``"_op_type": "update"`` bulk helpers ([1387](https://github.com/elastic/elasticsearch-py/pull/1387))
  
  Removed
  
  * Removed explicit ``yarl`` dependency from ``[async]`` extra to avoid issue where pip would override ``aiohttp``'s pin of ``yarl``. This was not a problem if you install with ``--use-feature=2020-resolver``. Users should see no changes. ([1401](https://github.com/elastic/elasticsearch-py/pull/1401))
  
  Fixed
  
  * Fixed bug where ``Connection.log_request_failure()`` call would receive the compressed HTTP body rather than uncompressed when an error is raised for ``RequestsHttpConnection`` ([1394](https://github.com/elastic/elasticsearch-py/pull/1394))

7.10.0a1

Added
  
  * Added support for Elasticsearch 7.10 APIs
  * Added basic type stubs for static type checking and IDE auto-complete of API parameters ([1297](https://github.com/elastic/elasticsearch-py/pull/1297))
  * Added support for [Optimistic Concurrency Control options](https://www.elastic.co/guide/en/elasticsearch/reference/current/optimistic-concurrency-control.html) (``_if_seq_no``/``_if_primary_term``) to bulk helpers ([#1387](https://github.com/elastic/elasticsearch-py/pull/1387))
  * Added support for passing ``_source`` with ``"_op_type": "update"`` bulk helpers ([1387](https://github.com/elastic/elasticsearch-py/pull/1387))
  
  Removed
  
  * Removed explicit ``yarl`` dependency from ``[async]`` extra to avoid issue where pip would override ``aiohttp``'s pin of ``yarl``. This was not a problem if you install with ``--use-feature=2020-resolver``. Users should see no changes. ([1401](https://github.com/elastic/elasticsearch-py/pull/1401))
  
  Fixed
  
  * Fixed bug where ``Connection.log_request_failure()`` call would receive the compressed HTTP body rather than uncompressed when an error is raised for ``RequestsHttpConnection`` ([1394](https://github.com/elastic/elasticsearch-py/pull/1394))