:warning: **This is a new major release and contains some breaking changes.**
Client
Added
- Added `AsyncAppSearch`, `AsyncEnterpriseSearch`, and `AsyncWorkplaceSearch` clients which have async API methods.
- Added the top-level `.options()` method to all client classes 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 tokens
- Added the `meta` property to `ApiError` to access the HTTP response metadata of an error.
- Added a check that a compatible version of the `elastic-transport` package is installed.
Changed
- Changed user-defined `body` parameters to have semantic names (e.g `index_documents(documents={...})` instead of `index_documents(body={...})`).
- Changed responses to be objects with two properties, `meta` for response metadata (HTTP status, headers, node, etc) and `body` for a typed body.
Removed
- Removed support for Python 2.7 and Python 3.5, the library now supports only Python 3.6+
- Removed the default URL of `http://localhost:3002`. URL must be specified explicitly.
- Removed the ability to use positional arguments with API methods. Going forward all API parameters must be keyword-only parameters
Deprecated
- Deprecated the `body` and `params` parameters on all APIs
- Deprecated setting transport options `http_auth`, `api_key`, `ignore`, `request_timeout`, and `headers`
All of these settings should instead be set via the `.options()` method