Releases: elastic/elasticsearch-serverless-ruby
v0.7.0
Warning
Starting with the release of the Elastic Stack 9.0.0, this client will be discontinued. Instead, you can use the latest version of the Elasticsearch Client to build your Elasticsearch Serverless Ruby applications.
Client
- Adds testing for Ruby 3.4.
Changes in APIs:
- Updated code generation, Rubocop configuration to target 3.0.
async_search.submit
- Removeskeep_alive
andpre_filter_shard_size
parameters.- New API:
security.query_role
: Find roles with a query. - Source code documentation is updated.
bulk
:- Adds
list_executed_pipelines
- Iftrue
, the response will include the ingest pipelines that were executed for each index or create. - Adds
require_data_stream
Iftrue
, the request's actions must target a data stream (existing or to-be-created).
- Adds
cat
APIs have been streamlined,master_timeout
andverbose
parameters removed in some endpoints.connector.delete
: Adds:hard
(Boolean) parameter - A flag indicating if the connector should be hard deletedconnector.get
,connector.list
- Add:include_deleted
(Boolean) parameter - A flag to indicate if the desired connector should be fetched, even if it was soft-deleted.eql.search
- Addsallow_partial_search_results
andallow_partial_sequence_results
parameters.indices.exists_alias
,indices.get_alias
- addmaster_timeout
parameter.machine_learning.get_trained_models
-include_model_definition
parameter is deprecated. Use[include=definition]
instead.machine_learning.put_job
- addsallow_no_indices
,expand_wildcards
,ignore_throttled
andignore_unavailable
parameters.
v0.6.0
Changes in APIs:
- Updated source code documentation, updated rubydocs.
async_search.status
- Addskeep_alive
Time parameter. Specifies how long the async search needs to be available. Ongoing async searches and any saved search results are deleted after this period. Server default: 5d.async_search.submit
- Removesmin_compatible_shared_node
andscroll
parameters.cat.aliases
,cat.count
,cat.help
,cat.indices
,cat.ml_data_frame_analytics
,cat.ml_datafeeds
,cat.ml_jobs
,cat.ml_trained_models
,cat.transforms
,indices.exists_alias
,indices.get_alias
- Removeslocal
parameter (not applicable).- Inference APIs promoted from Experimental to stable:
inference.delete
,inference.get
,inference.inference
,inference.put
. open_point_in_time
addsallow_partial_search_results
boolean parameter. Iffalse
, creating a point in time request when a shard is missing or unavailable will throw an exception. Iftrue
, the point in time will contain all the shards that are available at the time of the request.search
- Removesmin_compatible_shard_node
parameter (not applicable).
v0.5.0
Client
- Removed Ruby 3.0 from testing matrix, it's been end of life for over 6 months.
Changes in APIs:
The following APIs have been removed as they're not available on Serverless:
enrich.stats
indices.delete_data_lifecycle
Changes in scroll
APIs, the parameter scroll_id
has been removed as it's been deprecated, it should be sent via the body:
clear_scroll
scroll
Update indices.put_data_lifecycle
- body (lifecycle) is a required argument.
Added the following APIs:
machine_learning.infer_trained_model
query_rules.test
security.delete_role.rb
security.get_builtin_privileges.rb
security.get_role.rb
security.put_role.rb
tasks.get
v0.4.0
Changes in APIs:
The following APIs API have been removed as they are not supported at the moment:
esql.query
indices.data_streams_stats
Updates APIs:
indices.get_data_stream
-verbose
Boolean parameter added: Whether the maximum timestamp for each data stream should be calculated and returned.indices.resolve_index
adds two parameters:ignore_unavailable
[Boolean] Iffalse
, the request returns an error if it targets a missing or closed index.allow_no_indices
[Boolean] Iffalse
, the request returns an error if any wildcard expression, index alias, or_all
value targets only missing or closed indices.
open_point_in_time
-body
Hash parameter added.update_by_query
-q
String parameter added: Query in the Lucene query string syntax.
The following timeout parameters were added in several indices APIs:
timeout
: Period to wait for a response. If no response is received before the timeout expires, the request fails and returns an error. Server default: 30s.master_timeout
: Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error. Server default: 30s.
Added in the following APIs:
indices.create_data_stream
- timeout, master_timeoutindices.delete_data_stream
- master_timeoutindices.get_data_lifecycle
- master_timeoutindices.get_data_stream
- master_timeoutindices.migrate_to_data_stream
- timeout, master_timeout
v0.3.0
Client
- Updates elastic-transport version dependency to
~> 8.3
. - Adds native support for OpenTelemetry. See Using OpenTelemetry.
Changes in APIs:
- Adds connector APIs:
check_in
,delete
,get
,list
,post
,put
,sync_job_cancel
,sync_job_delete
,sync_job_get
,sync_job_list
,sync_job_post
,update_active_filtering
,update_api_key_id
,update_configuration
,update_error
,update_filtering
,update_filtering_validation
,update_index_name
,update_name
,update_native
,update_pipeline
,update_scheduling
,update_service_type
,update_status
. - Updates termvectors APIs, adds deprecation notice for
termvector
, please use the plural versiontermvectors
instead. - Updates source code documentation for all APIs. Check rubydoc for the API reference, or run
yardoc
in the root of the project if you've checked out the code. The API reference documentation will be generated in thedoc
folder.
v0.2.0
Client
- Extracts YAML test runner into es-test-runner.
- Adds timeout/retry related arguments to client instantiation in
arguments
Hash:request_timeout
[Integer] the request timeout to be passed to transport options in seconds.retry_on_failure
[Boolean, Number] Retry X times when request fails before raising and exception (false by default)retry_on_status
[Array] Retry when specific status codes are returneddelay_on_retry
[Number] Delay in milliseconds between each retry (0 by default)
Changes in APIs:
- Adds inference APIs:
inference.delete
,inference.get
,inference.inference
,inference.put
. - Adds
machine_learning.update_trained_model_deployment
API. - Reorganizes Query rulesets and rules APIs. All query rules APIs are now under
query_rules
namespace:query_rules.delete_rule
query_rules.delete_ruleset
query_rules.get_rule
query_rules.get_ruleset
query_rules.list_rulesets
query_rules.put_rule
query_rules.put_ruleset
- Source code documentation updated for better YARD formatting. Check rubydoc for the API reference, or run
yardoc
in the root of the project if you've checked out the code. The API reference documentation will be generated in thedoc
folder. create
- Adds [Integer, String] parameter:wait_for_active_shards
: The number of shard copies that must be active before proceeding with the operation. Set to +all+ or any positive integer up to the total number of shards in the index (+number_of_replicas+1+). Server default: 1.field_caps
- Adds boolean parameter:include_empty_fields
: If false, empty fields are not included in the response. Server default: true.get
,mget
,search
- Add boolean parameter:force_synthetic_source
: Should this request force synthetic _source? Use this to test if the mapping supports synthetic _source and to get a sense of the worst case performance. Fetches with this enabled will be slower the enabling synthetic source natively in the index.ml.get_trained_models
- Adds [String, Array] parameter:model_id
: The unique identifier of the trained model or a model alias. You can get information for multiple trained models in a single API request by using a comma-separated list of model IDs or a wildcard expression.ml.put_calendar_job
Adds [String, Array] parameter:job_id
: An identifier for the anomaly detection jobs. It can be a job identifier, a group name, or a comma-separated list of jobs or groups. (Required)ml.put_trained_model
- Adds boolean parameter:wait_for_completion
: Whether to wait for all child operations (e.g. model download) to complete.search_application.search
- Adds boolean parameter:typed_keys
: Determines whether aggregation names are prefixed by their respective types in the response.security.get_api_key
- Adds boolean parameter:active_only
A boolean flag that can be used to query API keys that are currently active. An API key is considered active if it is neither invalidated, nor expired at query time. You can specify this together with other parameters such asowner
orname
. Ifactive_only
is false, the response will include both active and inactive (expired or invalidated) keys. Adds boolean parameter:with_profile_uid
: Determines whether to also retrieve the profile uid, for the API key owner principal, if it exists.security.query_api_keys
- Adds boolean parameter:with_profile_uid
: Determines whether to also retrieve the profile uid, for the API key owner principal, if it exists. Adds boolean parameter:typed_keys
: Determines whether aggregation names are prefixed by their respective types in the response.
v0.1.0
- Added ES|QL
query
API. See documentation.
indices.put_index_template
has two parameters added:master_timeout
Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error. Server default: 30s.cause
User defined reason for creating/updating the index template
v0.1.0.pre
📦 https://rubygems.org/gems/elasticsearch-serverless
$ gem install elasticsearch-serverless --pre
- A lot of Serverless APIs were added to the client. 200 Serverless endpoints are supported and tested via the client starting in this version. See APIs for the full list of available endpoints, a brief description and the link to the official docs on each API.
- New namespace
machine_learning
added, can be used with aliasml
. E.g.:
client.ml.get_jobs
client.machine_learning.get_jobs
- Tested with new Ruby v3.3.
v0.0.9.20231031.pre
📦 https://rubygems.org/gems/elasticsearch-serverless
$ gem install elasticsearch-serverless --pre
Client
- General updates in documentation.
- API integration tests were migrated to run with the clients common YAML test suite.
- Refactored the client version into API_VERSION and CLIENT_VERSION for better API versioning in the future.
API updates
See APIs for the full list of available endpoints.
New APIs in this release:
cat.ml_data_frame_analytics
cat.ml_datafeeds
cat.ml_jobs
cat.ml_trained_models
indices.add_block
indices.create_data_stream
indices.data_streams_stats
indices.delete_data_stream
indices.delete_index_template
indices.get_data_stream
indices.put_index_template
query_ruleset.delete
query_ruleset.get
query_ruleset.list
query_ruleset.put
search_application.delete_behavioral_analytics
search_application.get_behavioral_analytics
search_application.put_behavioral_analytics
search_mvt
security.has_privileges
v0.0.8.20231031.pre
First public release of the Elasticsearch Serverless Ruby Client:
📦 https://rubygems.org/gems/elasticsearch-serverless
Client
Updated: Accept only valid parameters when instantiating a new client. Supported parameters for now are:
:adapter, :log, :logger, :serializer_class, :trace, :tracer, :headers
.
These can be passed in to the client on instantiation and will be passed to elastic-transport:
client = ElasticsearchServerless::Client.new(
api_key: 'API_KEY',
url: 'URL',
arguments: {
adapter: :net_http_persistent,
log: true,
logger: MyLogger.new
}
)
API updates
See APIs for the full list of available endpoints.
New APIs in this release:
logstash.delete_pipeline
logstash.get_pipeline
logstash.put_pipeline
indices.refresh
explain
reindex
delete_script
get_script
put_script
scripts_painless_execute
sql.clear_cursor
sql.delete_async
sql.get_async
sql.get_async_status
sql.query
sql.translate
terms_enum
termvectors
synonyms.delete_synonym
synonyms.delete_synonym_rule
synonyms.get_synonym
synonyms.get_synonym_rule
synonyms.get_synonym_sets
synonyms.put_synonym
synonyms.put_synonym_rule
license.get
mtermvectors
field_caps
enrich
graph.explore
eql.delete
eql.get
eql.get_status
eql.search
ingest.delete_pipeline
ingest.processor_grok
ingest.put_pipeline
ingest.simulate
msearch_template
render_search_template
search_template
search_application.delete
search_application.get
search_application.list
search_application.put
search_application.search