From 14fc908d4b6339e23400fa751e2916a4c6d78df8 Mon Sep 17 00:00:00 2001 From: Tomas Della Vedova Date: Fri, 3 May 2019 17:23:40 +0200 Subject: [PATCH] Improve observability (#834) * API generation * Added correlation id support * Updated docs * Updated test * Updated code generation * API generation * Updated code generation * Added support for client name and custom context object * Updated docs * Updated test * Fix docs * Updated docs * Added id support also for sniffing * Updated test * Update docs/observability.asciidoc Co-Authored-By: delvedor * Update docs/observability.asciidoc Co-Authored-By: delvedor * Apply suggestions * Update docs/configuration.asciidoc Co-Authored-By: delvedor * Update docs/configuration.asciidoc Co-Authored-By: delvedor * Update docs/observability.asciidoc Co-Authored-By: delvedor * Update docs/observability.asciidoc Co-Authored-By: delvedor * Update docs/observability.asciidoc Co-Authored-By: delvedor * Apply suggestions * Updated README.md * Fixed test * Addressed suggestions --- README.md | 8 +- api/api/bulk.js | 2 + api/api/cat.aliases.js | 2 + api/api/cat.allocation.js | 2 + api/api/cat.count.js | 2 + api/api/cat.fielddata.js | 2 + api/api/cat.health.js | 2 + api/api/cat.help.js | 2 + api/api/cat.indices.js | 2 + api/api/cat.master.js | 2 + api/api/cat.nodeattrs.js | 2 + api/api/cat.nodes.js | 2 + api/api/cat.pending_tasks.js | 2 + api/api/cat.plugins.js | 2 + api/api/cat.recovery.js | 2 + api/api/cat.repositories.js | 2 + api/api/cat.segments.js | 2 + api/api/cat.shards.js | 2 + api/api/cat.snapshots.js | 2 + api/api/cat.tasks.js | 2 + api/api/cat.templates.js | 2 + api/api/cat.thread_pool.js | 2 + api/api/ccr.delete_auto_follow_pattern.js | 2 + api/api/ccr.follow.js | 2 + api/api/ccr.follow_info.js | 2 + api/api/ccr.follow_stats.js | 2 + api/api/ccr.forget_follower.js | 2 + api/api/ccr.get_auto_follow_pattern.js | 2 + api/api/ccr.pause_follow.js | 2 + api/api/ccr.put_auto_follow_pattern.js | 2 + api/api/ccr.resume_follow.js | 2 + api/api/ccr.stats.js | 2 + api/api/ccr.unfollow.js | 2 + api/api/clear_scroll.js | 2 + api/api/cluster.allocation_explain.js | 2 + api/api/cluster.get_settings.js | 2 + api/api/cluster.health.js | 2 + api/api/cluster.pending_tasks.js | 2 + api/api/cluster.put_settings.js | 2 + api/api/cluster.remote_info.js | 2 + api/api/cluster.reroute.js | 2 + api/api/cluster.state.js | 2 + api/api/cluster.stats.js | 2 + api/api/count.js | 2 + api/api/create.js | 2 + .../data_frame.delete_data_frame_transform.js | 128 +++++++ .../data_frame.get_data_frame_transform.js | 131 +++++++ ...ta_frame.get_data_frame_transform_stats.js | 127 +++++++ .../data_frame.put_data_frame_transform.js | 129 +++++++ .../data_frame.start_data_frame_transform.js | 129 +++++++ .../data_frame.stop_data_frame_transform.js | 132 +++++++ api/api/delete.js | 2 + api/api/delete_by_query.js | 2 + api/api/delete_by_query_rethrottle.js | 2 + api/api/delete_script.js | 2 + api/api/exists.js | 2 + api/api/exists_source.js | 2 + api/api/explain.js | 2 + api/api/field_caps.js | 2 + api/api/get.js | 2 + api/api/get_script.js | 2 + api/api/get_source.js | 2 + api/api/ilm.delete_lifecycle.js | 2 + api/api/ilm.explain_lifecycle.js | 2 + api/api/ilm.get_lifecycle.js | 2 + api/api/ilm.get_status.js | 2 + api/api/ilm.move_to_step.js | 2 + api/api/ilm.put_lifecycle.js | 2 + api/api/ilm.remove_policy.js | 2 + api/api/ilm.retry.js | 2 + api/api/ilm.start.js | 2 + api/api/ilm.stop.js | 2 + api/api/index.js | 2 + api/api/indices.analyze.js | 2 + api/api/indices.clear_cache.js | 2 + api/api/indices.close.js | 2 + api/api/indices.create.js | 2 + api/api/indices.delete.js | 2 + api/api/indices.delete_alias.js | 2 + api/api/indices.delete_template.js | 2 + api/api/indices.exists.js | 2 + api/api/indices.exists_alias.js | 2 + api/api/indices.exists_template.js | 2 + api/api/indices.exists_type.js | 2 + api/api/indices.flush.js | 2 + api/api/indices.flush_synced.js | 2 + api/api/indices.forcemerge.js | 2 + api/api/indices.freeze.js | 2 + api/api/indices.get.js | 2 + api/api/indices.get_alias.js | 2 + api/api/indices.get_field_mapping.js | 2 + api/api/indices.get_mapping.js | 2 + api/api/indices.get_settings.js | 2 + api/api/indices.get_template.js | 2 + api/api/indices.get_upgrade.js | 2 + api/api/indices.open.js | 2 + api/api/indices.put_alias.js | 2 + api/api/indices.put_mapping.js | 2 + api/api/indices.put_settings.js | 2 + api/api/indices.put_template.js | 2 + api/api/indices.recovery.js | 2 + api/api/indices.refresh.js | 2 + api/api/indices.rollover.js | 2 + api/api/indices.segments.js | 2 + api/api/indices.shard_stores.js | 2 + api/api/indices.shrink.js | 2 + api/api/indices.split.js | 2 + api/api/indices.stats.js | 2 + api/api/indices.unfreeze.js | 2 + api/api/indices.update_aliases.js | 2 + api/api/indices.upgrade.js | 2 + api/api/indices.validate_query.js | 2 + api/api/info.js | 2 + api/api/ingest.delete_pipeline.js | 2 + api/api/ingest.get_pipeline.js | 2 + api/api/ingest.processor_grok.js | 2 + api/api/ingest.put_pipeline.js | 2 + api/api/ingest.simulate.js | 2 + api/api/mget.js | 2 + api/api/msearch.js | 2 + api/api/msearch_template.js | 2 + api/api/mtermvectors.js | 2 + api/api/nodes.hot_threads.js | 2 + api/api/nodes.info.js | 2 + api/api/nodes.reload_secure_settings.js | 2 + api/api/nodes.stats.js | 2 + api/api/nodes.usage.js | 2 + api/api/ping.js | 2 + api/api/put_script.js | 2 + api/api/rank_eval.js | 2 + api/api/reindex.js | 2 + api/api/reindex_rethrottle.js | 2 + api/api/render_search_template.js | 2 + api/api/scripts_painless_context.js | 124 +++++++ api/api/scripts_painless_execute.js | 2 + api/api/scroll.js | 2 + api/api/search.js | 2 + api/api/search_shards.js | 2 + api/api/search_template.js | 2 + api/api/security.create_api_key.js | 2 + api/api/security.get_api_key.js | 2 + api/api/security.invalidate_api_key.js | 2 + api/api/snapshot.create.js | 2 + api/api/snapshot.create_repository.js | 2 + api/api/snapshot.delete.js | 2 + api/api/snapshot.delete_repository.js | 2 + api/api/snapshot.get.js | 2 + api/api/snapshot.get_repository.js | 2 + api/api/snapshot.restore.js | 2 + api/api/snapshot.status.js | 2 + api/api/snapshot.verify_repository.js | 2 + api/api/tasks.cancel.js | 2 + api/api/tasks.get.js | 2 + api/api/tasks.list.js | 2 + api/api/termvectors.js | 2 + api/api/update.js | 2 + api/api/update_by_query.js | 2 + api/api/update_by_query_rethrottle.js | 2 + api/api/xpack.graph.explore.js | 2 + api/api/xpack.info.js | 2 + api/api/xpack.license.delete.js | 2 + api/api/xpack.license.get.js | 2 + api/api/xpack.license.get_basic_status.js | 2 + api/api/xpack.license.get_trial_status.js | 2 + api/api/xpack.license.post.js | 2 + api/api/xpack.license.post_start_basic.js | 2 + api/api/xpack.license.post_start_trial.js | 2 + api/api/xpack.migration.deprecations.js | 2 + api/api/xpack.migration.upgrade.js | 2 + api/api/xpack.ml.close_job.js | 2 + api/api/xpack.ml.delete_calendar.js | 2 + api/api/xpack.ml.delete_calendar_event.js | 2 + api/api/xpack.ml.delete_calendar_job.js | 2 + api/api/xpack.ml.delete_datafeed.js | 2 + api/api/xpack.ml.delete_expired_data.js | 2 + api/api/xpack.ml.delete_filter.js | 2 + api/api/xpack.ml.delete_forecast.js | 2 + api/api/xpack.ml.delete_job.js | 2 + api/api/xpack.ml.delete_model_snapshot.js | 2 + api/api/xpack.ml.find_file_structure.js | 2 + api/api/xpack.ml.flush_job.js | 2 + api/api/xpack.ml.forecast.js | 2 + api/api/xpack.ml.get_buckets.js | 2 + api/api/xpack.ml.get_calendar_events.js | 2 + api/api/xpack.ml.get_calendars.js | 2 + api/api/xpack.ml.get_categories.js | 2 + api/api/xpack.ml.get_datafeed_stats.js | 2 + api/api/xpack.ml.get_datafeeds.js | 2 + api/api/xpack.ml.get_filters.js | 2 + api/api/xpack.ml.get_influencers.js | 2 + api/api/xpack.ml.get_job_stats.js | 2 + api/api/xpack.ml.get_jobs.js | 2 + api/api/xpack.ml.get_model_snapshots.js | 2 + api/api/xpack.ml.get_overall_buckets.js | 2 + api/api/xpack.ml.get_records.js | 2 + api/api/xpack.ml.info.js | 2 + api/api/xpack.ml.open_job.js | 2 + api/api/xpack.ml.post_calendar_events.js | 2 + api/api/xpack.ml.post_data.js | 2 + api/api/xpack.ml.preview_datafeed.js | 2 + api/api/xpack.ml.put_calendar.js | 2 + api/api/xpack.ml.put_calendar_job.js | 2 + api/api/xpack.ml.put_datafeed.js | 2 + api/api/xpack.ml.put_filter.js | 2 + api/api/xpack.ml.put_job.js | 2 + api/api/xpack.ml.revert_model_snapshot.js | 2 + api/api/xpack.ml.set_upgrade_mode.js | 2 + api/api/xpack.ml.start_datafeed.js | 2 + api/api/xpack.ml.stop_datafeed.js | 2 + api/api/xpack.ml.update_datafeed.js | 2 + api/api/xpack.ml.update_filter.js | 2 + api/api/xpack.ml.update_job.js | 2 + api/api/xpack.ml.update_model_snapshot.js | 2 + api/api/xpack.ml.validate.js | 2 + api/api/xpack.ml.validate_detector.js | 2 + api/api/xpack.monitoring.bulk.js | 2 + api/api/xpack.rollup.delete_job.js | 2 + api/api/xpack.rollup.get_jobs.js | 2 + api/api/xpack.rollup.get_rollup_caps.js | 2 + api/api/xpack.rollup.get_rollup_index_caps.js | 2 + api/api/xpack.rollup.put_job.js | 2 + api/api/xpack.rollup.rollup_search.js | 2 + api/api/xpack.rollup.start_job.js | 2 + api/api/xpack.rollup.stop_job.js | 2 + api/api/xpack.security.authenticate.js | 2 + api/api/xpack.security.change_password.js | 2 + api/api/xpack.security.clear_cached_realms.js | 2 + api/api/xpack.security.clear_cached_roles.js | 2 + api/api/xpack.security.delete_privileges.js | 2 + api/api/xpack.security.delete_role.js | 2 + api/api/xpack.security.delete_role_mapping.js | 2 + api/api/xpack.security.delete_user.js | 2 + api/api/xpack.security.disable_user.js | 2 + api/api/xpack.security.enable_user.js | 2 + api/api/xpack.security.get_privileges.js | 2 + api/api/xpack.security.get_role.js | 2 + api/api/xpack.security.get_role_mapping.js | 2 + api/api/xpack.security.get_token.js | 2 + api/api/xpack.security.get_user.js | 2 + api/api/xpack.security.get_user_privileges.js | 2 + api/api/xpack.security.has_privileges.js | 2 + api/api/xpack.security.invalidate_token.js | 2 + api/api/xpack.security.put_privileges.js | 2 + api/api/xpack.security.put_role.js | 2 + api/api/xpack.security.put_role_mapping.js | 2 + api/api/xpack.security.put_user.js | 2 + api/api/xpack.sql.clear_cursor.js | 2 + api/api/xpack.sql.query.js | 2 + api/api/xpack.sql.translate.js | 2 + api/api/xpack.ssl.certificates.js | 2 + api/api/xpack.usage.js | 2 + api/api/xpack.watcher.ack_watch.js | 2 + api/api/xpack.watcher.activate_watch.js | 2 + api/api/xpack.watcher.deactivate_watch.js | 2 + api/api/xpack.watcher.delete_watch.js | 2 + api/api/xpack.watcher.execute_watch.js | 2 + api/api/xpack.watcher.get_watch.js | 2 + api/api/xpack.watcher.put_watch.js | 2 + api/api/xpack.watcher.start.js | 2 + api/api/xpack.watcher.stats.js | 2 + api/api/xpack.watcher.stop.js | 2 + docs/configuration.asciidoc | 19 +- docs/index.asciidoc | 1 + docs/observability.asciidoc | 250 +++++++++++++ docs/usage.asciidoc | 108 +----- index.d.ts | 3 + index.js | 9 +- lib/ConnectionPool.d.ts | 14 +- lib/ConnectionPool.js | 22 +- lib/Transport.d.ts | 28 +- lib/Transport.js | 43 ++- scripts/utils/generateApis.js | 2 + test/behavior/observability.test.js | 334 ++++++++++++++++++ test/behavior/resurrect.test.js | 13 +- test/unit/child.test.js | 69 ++++ test/unit/connection-pool.test.js | 28 +- test/unit/events.test.js | 15 +- test/unit/transport.test.js | 36 +- test/utils/MockConnection.js | 48 ++- 279 files changed, 2314 insertions(+), 142 deletions(-) create mode 100644 api/api/data_frame.delete_data_frame_transform.js create mode 100644 api/api/data_frame.get_data_frame_transform.js create mode 100644 api/api/data_frame.get_data_frame_transform_stats.js create mode 100644 api/api/data_frame.put_data_frame_transform.js create mode 100644 api/api/data_frame.start_data_frame_transform.js create mode 100644 api/api/data_frame.stop_data_frame_transform.js create mode 100644 api/api/scripts_painless_context.js create mode 100644 docs/observability.asciidoc create mode 100644 test/behavior/observability.test.js diff --git a/README.md b/README.md index 78b153f96..5d707fb60 100644 --- a/README.md +++ b/README.md @@ -119,6 +119,10 @@ The client is designed to be easily configured as you see fit for your needs, fo nodeFilter: nodeFilterFn; // custom selection strategy, defaults `round-robin` nodeSelector: nodeSelectorFn | string; + // function to generate the request id for every request + generateRequestId: generateRequestIdFn; + // name to identify the client instance in the events + name: string; } ``` @@ -143,7 +147,9 @@ The supported *request specific options* are: asStream: boolean, // default `false` compression: string, // default `false` headers: object, // default `null` - querystring: object // default `null` + querystring: object // default `null`, + context: object // default `null`, + id: any // default incr. integer } ``` diff --git a/api/api/bulk.js b/api/api/bulk.js index f0b35dfe1..9a82a85f2 100644 --- a/api/api/bulk.js +++ b/api/api/bulk.js @@ -138,6 +138,8 @@ function buildBulk (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cat.aliases.js b/api/api/cat.aliases.js index e5738e038..2b7ef3bc3 100644 --- a/api/api/cat.aliases.js +++ b/api/api/cat.aliases.js @@ -120,6 +120,8 @@ function buildCatAliases (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cat.allocation.js b/api/api/cat.allocation.js index 561c02ddb..f7118efea 100644 --- a/api/api/cat.allocation.js +++ b/api/api/cat.allocation.js @@ -122,6 +122,8 @@ function buildCatAllocation (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cat.count.js b/api/api/cat.count.js index 2be151d71..cdb1c2ccd 100644 --- a/api/api/cat.count.js +++ b/api/api/cat.count.js @@ -120,6 +120,8 @@ function buildCatCount (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cat.fielddata.js b/api/api/cat.fielddata.js index 1685acd80..d1e22cf0a 100644 --- a/api/api/cat.fielddata.js +++ b/api/api/cat.fielddata.js @@ -124,6 +124,8 @@ function buildCatFielddata (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cat.health.js b/api/api/cat.health.js index 6badc3a80..827ebd276 100644 --- a/api/api/cat.health.js +++ b/api/api/cat.health.js @@ -117,6 +117,8 @@ function buildCatHealth (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cat.help.js b/api/api/cat.help.js index d776803de..2f744f49d 100644 --- a/api/api/cat.help.js +++ b/api/api/cat.help.js @@ -104,6 +104,8 @@ function buildCatHelp (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cat.indices.js b/api/api/cat.indices.js index aff657648..12b7823be 100644 --- a/api/api/cat.indices.js +++ b/api/api/cat.indices.js @@ -126,6 +126,8 @@ function buildCatIndices (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cat.master.js b/api/api/cat.master.js index 08528e146..6ea1ef531 100644 --- a/api/api/cat.master.js +++ b/api/api/cat.master.js @@ -115,6 +115,8 @@ function buildCatMaster (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cat.nodeattrs.js b/api/api/cat.nodeattrs.js index 65a36356a..66995d45c 100644 --- a/api/api/cat.nodeattrs.js +++ b/api/api/cat.nodeattrs.js @@ -115,6 +115,8 @@ function buildCatNodeattrs (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cat.nodes.js b/api/api/cat.nodes.js index d539438c5..21f27a517 100644 --- a/api/api/cat.nodes.js +++ b/api/api/cat.nodes.js @@ -118,6 +118,8 @@ function buildCatNodes (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cat.pending_tasks.js b/api/api/cat.pending_tasks.js index b13a3d306..920a77e47 100644 --- a/api/api/cat.pending_tasks.js +++ b/api/api/cat.pending_tasks.js @@ -115,6 +115,8 @@ function buildCatPendingTasks (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cat.plugins.js b/api/api/cat.plugins.js index 1f3b6cdf3..e254ddb3b 100644 --- a/api/api/cat.plugins.js +++ b/api/api/cat.plugins.js @@ -115,6 +115,8 @@ function buildCatPlugins (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cat.recovery.js b/api/api/cat.recovery.js index 7e631fab3..27938674a 100644 --- a/api/api/cat.recovery.js +++ b/api/api/cat.recovery.js @@ -120,6 +120,8 @@ function buildCatRecovery (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cat.repositories.js b/api/api/cat.repositories.js index 9e229bfd8..d4801efc9 100644 --- a/api/api/cat.repositories.js +++ b/api/api/cat.repositories.js @@ -115,6 +115,8 @@ function buildCatRepositories (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cat.segments.js b/api/api/cat.segments.js index adc48ee61..9e2415c34 100644 --- a/api/api/cat.segments.js +++ b/api/api/cat.segments.js @@ -117,6 +117,8 @@ function buildCatSegments (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cat.shards.js b/api/api/cat.shards.js index 4de59a7c9..15031236f 100644 --- a/api/api/cat.shards.js +++ b/api/api/cat.shards.js @@ -122,6 +122,8 @@ function buildCatShards (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cat.snapshots.js b/api/api/cat.snapshots.js index 4db252fe9..94ead6ac4 100644 --- a/api/api/cat.snapshots.js +++ b/api/api/cat.snapshots.js @@ -121,6 +121,8 @@ function buildCatSnapshots (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cat.tasks.js b/api/api/cat.tasks.js index b00e20496..e478ccc7e 100644 --- a/api/api/cat.tasks.js +++ b/api/api/cat.tasks.js @@ -120,6 +120,8 @@ function buildCatTasks (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cat.templates.js b/api/api/cat.templates.js index 2f0b6beca..432e1d28d 100644 --- a/api/api/cat.templates.js +++ b/api/api/cat.templates.js @@ -120,6 +120,8 @@ function buildCatTemplates (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cat.thread_pool.js b/api/api/cat.thread_pool.js index fddeb9256..49d7078f8 100644 --- a/api/api/cat.thread_pool.js +++ b/api/api/cat.thread_pool.js @@ -122,6 +122,8 @@ function buildCatThreadPool (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/ccr.delete_auto_follow_pattern.js b/api/api/ccr.delete_auto_follow_pattern.js index af0f01987..f5241c473 100644 --- a/api/api/ccr.delete_auto_follow_pattern.js +++ b/api/api/ccr.delete_auto_follow_pattern.js @@ -96,6 +96,8 @@ function buildCcrDeleteAutoFollowPattern (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/ccr.follow.js b/api/api/ccr.follow.js index ab8d8e255..9ee3158c6 100644 --- a/api/api/ccr.follow.js +++ b/api/api/ccr.follow.js @@ -102,6 +102,8 @@ function buildCcrFollow (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/ccr.follow_info.js b/api/api/ccr.follow_info.js index 209521757..1e8040461 100644 --- a/api/api/ccr.follow_info.js +++ b/api/api/ccr.follow_info.js @@ -90,6 +90,8 @@ function buildCcrFollowInfo (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/ccr.follow_stats.js b/api/api/ccr.follow_stats.js index 5c3806181..1e68f4216 100644 --- a/api/api/ccr.follow_stats.js +++ b/api/api/ccr.follow_stats.js @@ -90,6 +90,8 @@ function buildCcrFollowStats (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/ccr.forget_follower.js b/api/api/ccr.forget_follower.js index 1e2504cee..db17668a5 100644 --- a/api/api/ccr.forget_follower.js +++ b/api/api/ccr.forget_follower.js @@ -101,6 +101,8 @@ function buildCcrForgetFollower (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/ccr.get_auto_follow_pattern.js b/api/api/ccr.get_auto_follow_pattern.js index 83b3cbfc8..577e229ac 100644 --- a/api/api/ccr.get_auto_follow_pattern.js +++ b/api/api/ccr.get_auto_follow_pattern.js @@ -94,6 +94,8 @@ function buildCcrGetAutoFollowPattern (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/ccr.pause_follow.js b/api/api/ccr.pause_follow.js index 2862163f1..462e30be4 100644 --- a/api/api/ccr.pause_follow.js +++ b/api/api/ccr.pause_follow.js @@ -96,6 +96,8 @@ function buildCcrPauseFollow (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/ccr.put_auto_follow_pattern.js b/api/api/ccr.put_auto_follow_pattern.js index 6338da352..0f2691714 100644 --- a/api/api/ccr.put_auto_follow_pattern.js +++ b/api/api/ccr.put_auto_follow_pattern.js @@ -101,6 +101,8 @@ function buildCcrPutAutoFollowPattern (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/ccr.resume_follow.js b/api/api/ccr.resume_follow.js index 3c857a84a..36c666531 100644 --- a/api/api/ccr.resume_follow.js +++ b/api/api/ccr.resume_follow.js @@ -97,6 +97,8 @@ function buildCcrResumeFollow (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/ccr.stats.js b/api/api/ccr.stats.js index 81f544210..3f1d9bc39 100644 --- a/api/api/ccr.stats.js +++ b/api/api/ccr.stats.js @@ -89,6 +89,8 @@ function buildCcrStats (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/ccr.unfollow.js b/api/api/ccr.unfollow.js index 2163e6ad7..43c1ba4b1 100644 --- a/api/api/ccr.unfollow.js +++ b/api/api/ccr.unfollow.js @@ -96,6 +96,8 @@ function buildCcrUnfollow (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/clear_scroll.js b/api/api/clear_scroll.js index 552ac23cc..8f17c4dc3 100644 --- a/api/api/clear_scroll.js +++ b/api/api/clear_scroll.js @@ -100,6 +100,8 @@ function buildClearScroll (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cluster.allocation_explain.js b/api/api/cluster.allocation_explain.js index 3ce754e73..4e7155e30 100644 --- a/api/api/cluster.allocation_explain.js +++ b/api/api/cluster.allocation_explain.js @@ -101,6 +101,8 @@ function buildClusterAllocationExplain (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cluster.get_settings.js b/api/api/cluster.get_settings.js index 8e215e750..f9722e0b9 100644 --- a/api/api/cluster.get_settings.js +++ b/api/api/cluster.get_settings.js @@ -111,6 +111,8 @@ function buildClusterGetSettings (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cluster.health.js b/api/api/cluster.health.js index 327cbbaba..e62b3492b 100644 --- a/api/api/cluster.health.js +++ b/api/api/cluster.health.js @@ -132,6 +132,8 @@ function buildClusterHealth (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cluster.pending_tasks.js b/api/api/cluster.pending_tasks.js index cc132b7a7..32802c975 100644 --- a/api/api/cluster.pending_tasks.js +++ b/api/api/cluster.pending_tasks.js @@ -105,6 +105,8 @@ function buildClusterPendingTasks (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cluster.put_settings.js b/api/api/cluster.put_settings.js index 9064e1670..230714ce7 100644 --- a/api/api/cluster.put_settings.js +++ b/api/api/cluster.put_settings.js @@ -109,6 +109,8 @@ function buildClusterPutSettings (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cluster.remote_info.js b/api/api/cluster.remote_info.js index 22a2ca142..62122e6ac 100644 --- a/api/api/cluster.remote_info.js +++ b/api/api/cluster.remote_info.js @@ -100,6 +100,8 @@ function buildClusterRemoteInfo (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cluster.reroute.js b/api/api/cluster.reroute.js index 5a29ea54d..9173b8b36 100644 --- a/api/api/cluster.reroute.js +++ b/api/api/cluster.reroute.js @@ -110,6 +110,8 @@ function buildClusterReroute (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cluster.state.js b/api/api/cluster.state.js index 7d6b7c303..002097761 100644 --- a/api/api/cluster.state.js +++ b/api/api/cluster.state.js @@ -137,6 +137,8 @@ function buildClusterState (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/cluster.stats.js b/api/api/cluster.stats.js index 77f634146..b57e67c56 100644 --- a/api/api/cluster.stats.js +++ b/api/api/cluster.stats.js @@ -110,6 +110,8 @@ function buildClusterStats (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/count.js b/api/api/count.js index ae6816fba..ac504f2e5 100644 --- a/api/api/count.js +++ b/api/api/count.js @@ -145,6 +145,8 @@ function buildCount (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/create.js b/api/api/create.js index 0847ec773..3c8ebbde0 100644 --- a/api/api/create.js +++ b/api/api/create.js @@ -134,6 +134,8 @@ function buildCreate (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/data_frame.delete_data_frame_transform.js b/api/api/data_frame.delete_data_frame_transform.js new file mode 100644 index 000000000..469f2c6d9 --- /dev/null +++ b/api/api/data_frame.delete_data_frame_transform.js @@ -0,0 +1,128 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +'use strict' + +/* eslint camelcase: 0 */ +/* eslint no-unused-vars: 0 */ + +function buildDataFrameDeleteDataFrameTransform (opts) { + // eslint-disable-next-line no-unused-vars + const { makeRequest, ConfigurationError, handleError } = opts + /** + * Perform a [data_frame.delete_data_frame_transform](https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-data-frame-transform.html) request + * + * @param {string} transform_id - The id of the transform to delete + */ + + const acceptedQuerystring = [ + + ] + + const snakeCase = { + + } + + return function dataFrameDeleteDataFrameTransform (params, options, callback) { + options = options || {} + if (typeof options === 'function') { + callback = options + options = {} + } + if (typeof params === 'function' || params == null) { + callback = params + params = {} + options = {} + } + + // check required parameters + if (params['transform_id'] == null && params['transformId'] == null) { + const err = new ConfigurationError('Missing required parameter: transform_id or transformId') + return handleError(err, callback) + } + if (params.body != null) { + const err = new ConfigurationError('This API does not require a body') + return handleError(err, callback) + } + + // validate headers object + if (options.headers != null && typeof options.headers !== 'object') { + const err = new ConfigurationError(`Headers should be an object, instead got: ${typeof options.headers}`) + return handleError(err, callback) + } + + var warnings = null + var { method, body, transformId, transform_id } = params + var querystring = semicopy(params, ['method', 'body', 'transformId', 'transform_id']) + + if (method == null) { + method = 'DELETE' + } + + var ignore = options.ignore || null + if (typeof ignore === 'number') { + ignore = [ignore] + } + + var path = '' + + path = '/' + '_data_frame' + '/' + 'transforms' + '/' + encodeURIComponent(transform_id || transformId) + + // build request object + const request = { + method, + path, + body: '', + querystring + } + + const requestOptions = { + ignore, + requestTimeout: options.requestTimeout || null, + maxRetries: options.maxRetries || null, + asStream: options.asStream || false, + headers: options.headers || null, + querystring: options.querystring || null, + compression: options.compression || false, + id: options.id || null, + context: options.context || null, + warnings + } + + return makeRequest(request, requestOptions, callback) + + function semicopy (obj, exclude) { + var target = {} + var keys = Object.keys(obj) + for (var i = 0, len = keys.length; i < len; i++) { + var key = keys[i] + if (exclude.indexOf(key) === -1) { + target[snakeCase[key] || key] = obj[key] + if (acceptedQuerystring.indexOf(snakeCase[key] || key) === -1) { + warnings = warnings || [] + warnings.push('Client - Unknown parameter: "' + key + '", sending it as query parameter') + } + } + } + return target + } + } +} + +module.exports = buildDataFrameDeleteDataFrameTransform diff --git a/api/api/data_frame.get_data_frame_transform.js b/api/api/data_frame.get_data_frame_transform.js new file mode 100644 index 000000000..7c58b2a92 --- /dev/null +++ b/api/api/data_frame.get_data_frame_transform.js @@ -0,0 +1,131 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +'use strict' + +/* eslint camelcase: 0 */ +/* eslint no-unused-vars: 0 */ + +function buildDataFrameGetDataFrameTransform (opts) { + // eslint-disable-next-line no-unused-vars + const { makeRequest, ConfigurationError, handleError } = opts + /** + * Perform a [data_frame.get_data_frame_transform](https://www.elastic.co/guide/en/elasticsearch/reference/current/get-data-frame-transform.html) request + * + * @param {string} transform_id - The id or comma delimited list of id expressions of the transforms to get, '_all' or '*' implies get all transforms + * @param {int} from - skips a number of transform configs, defaults to 0 + * @param {int} size - specifies a max number of transforms to get, defaults to 100 + */ + + const acceptedQuerystring = [ + 'from', + 'size' + ] + + const snakeCase = { + + } + + return function dataFrameGetDataFrameTransform (params, options, callback) { + options = options || {} + if (typeof options === 'function') { + callback = options + options = {} + } + if (typeof params === 'function' || params == null) { + callback = params + params = {} + options = {} + } + + // check required parameters + if (params.body != null) { + const err = new ConfigurationError('This API does not require a body') + return handleError(err, callback) + } + + // validate headers object + if (options.headers != null && typeof options.headers !== 'object') { + const err = new ConfigurationError(`Headers should be an object, instead got: ${typeof options.headers}`) + return handleError(err, callback) + } + + var warnings = null + var { method, body, transformId, transform_id } = params + var querystring = semicopy(params, ['method', 'body', 'transformId', 'transform_id']) + + if (method == null) { + method = 'GET' + } + + var ignore = options.ignore || null + if (typeof ignore === 'number') { + ignore = [ignore] + } + + var path = '' + + if ((transform_id || transformId) != null) { + path = '/' + '_data_frame' + '/' + 'transforms' + '/' + encodeURIComponent(transform_id || transformId) + } else { + path = '/' + '_data_frame' + '/' + 'transforms' + } + + // build request object + const request = { + method, + path, + body: null, + querystring + } + + const requestOptions = { + ignore, + requestTimeout: options.requestTimeout || null, + maxRetries: options.maxRetries || null, + asStream: options.asStream || false, + headers: options.headers || null, + querystring: options.querystring || null, + compression: options.compression || false, + id: options.id || null, + context: options.context || null, + warnings + } + + return makeRequest(request, requestOptions, callback) + + function semicopy (obj, exclude) { + var target = {} + var keys = Object.keys(obj) + for (var i = 0, len = keys.length; i < len; i++) { + var key = keys[i] + if (exclude.indexOf(key) === -1) { + target[snakeCase[key] || key] = obj[key] + if (acceptedQuerystring.indexOf(snakeCase[key] || key) === -1) { + warnings = warnings || [] + warnings.push('Client - Unknown parameter: "' + key + '", sending it as query parameter') + } + } + } + return target + } + } +} + +module.exports = buildDataFrameGetDataFrameTransform diff --git a/api/api/data_frame.get_data_frame_transform_stats.js b/api/api/data_frame.get_data_frame_transform_stats.js new file mode 100644 index 000000000..40264ccd5 --- /dev/null +++ b/api/api/data_frame.get_data_frame_transform_stats.js @@ -0,0 +1,127 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +'use strict' + +/* eslint camelcase: 0 */ +/* eslint no-unused-vars: 0 */ + +function buildDataFrameGetDataFrameTransformStats (opts) { + // eslint-disable-next-line no-unused-vars + const { makeRequest, ConfigurationError, handleError } = opts + /** + * Perform a [data_frame.get_data_frame_transform_stats](https://www.elastic.co/guide/en/elasticsearch/reference/current/get-data-frame-transform-stats.html) request + * + * @param {string} transform_id - The id of the transform for which to get stats. '_all' or '*' implies all transforms + * @param {number} from - skips a number of transform stats, defaults to 0 + * @param {number} size - specifies a max number of transform stats to get, defaults to 100 + */ + + const acceptedQuerystring = [ + 'from', + 'size' + ] + + const snakeCase = { + + } + + return function dataFrameGetDataFrameTransformStats (params, options, callback) { + options = options || {} + if (typeof options === 'function') { + callback = options + options = {} + } + if (typeof params === 'function' || params == null) { + callback = params + params = {} + options = {} + } + + // check required parameters + if (params.body != null) { + const err = new ConfigurationError('This API does not require a body') + return handleError(err, callback) + } + + // validate headers object + if (options.headers != null && typeof options.headers !== 'object') { + const err = new ConfigurationError(`Headers should be an object, instead got: ${typeof options.headers}`) + return handleError(err, callback) + } + + var warnings = null + var { method, body, transformId, transform_id } = params + var querystring = semicopy(params, ['method', 'body', 'transformId', 'transform_id']) + + if (method == null) { + method = 'GET' + } + + var ignore = options.ignore || null + if (typeof ignore === 'number') { + ignore = [ignore] + } + + var path = '' + + path = '/' + '_data_frame' + '/' + 'transforms' + '/' + encodeURIComponent(transform_id || transformId) + '/' + '_stats' + + // build request object + const request = { + method, + path, + body: null, + querystring + } + + const requestOptions = { + ignore, + requestTimeout: options.requestTimeout || null, + maxRetries: options.maxRetries || null, + asStream: options.asStream || false, + headers: options.headers || null, + querystring: options.querystring || null, + compression: options.compression || false, + id: options.id || null, + context: options.context || null, + warnings + } + + return makeRequest(request, requestOptions, callback) + + function semicopy (obj, exclude) { + var target = {} + var keys = Object.keys(obj) + for (var i = 0, len = keys.length; i < len; i++) { + var key = keys[i] + if (exclude.indexOf(key) === -1) { + target[snakeCase[key] || key] = obj[key] + if (acceptedQuerystring.indexOf(snakeCase[key] || key) === -1) { + warnings = warnings || [] + warnings.push('Client - Unknown parameter: "' + key + '", sending it as query parameter') + } + } + } + return target + } + } +} + +module.exports = buildDataFrameGetDataFrameTransformStats diff --git a/api/api/data_frame.put_data_frame_transform.js b/api/api/data_frame.put_data_frame_transform.js new file mode 100644 index 000000000..9514f7895 --- /dev/null +++ b/api/api/data_frame.put_data_frame_transform.js @@ -0,0 +1,129 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +'use strict' + +/* eslint camelcase: 0 */ +/* eslint no-unused-vars: 0 */ + +function buildDataFramePutDataFrameTransform (opts) { + // eslint-disable-next-line no-unused-vars + const { makeRequest, ConfigurationError, handleError } = opts + /** + * Perform a [data_frame.put_data_frame_transform](https://www.elastic.co/guide/en/elasticsearch/reference/current/put-data-frame-transform.html) request + * + * @param {string} transform_id - The id of the new transform. + * @param {object} body - The data frame transform definition + */ + + const acceptedQuerystring = [ + + ] + + const snakeCase = { + + } + + return function dataFramePutDataFrameTransform (params, options, callback) { + options = options || {} + if (typeof options === 'function') { + callback = options + options = {} + } + if (typeof params === 'function' || params == null) { + callback = params + params = {} + options = {} + } + + // check required parameters + if (params['transform_id'] == null && params['transformId'] == null) { + const err = new ConfigurationError('Missing required parameter: transform_id or transformId') + return handleError(err, callback) + } + if (params['body'] == null) { + const err = new ConfigurationError('Missing required parameter: body') + return handleError(err, callback) + } + + // validate headers object + if (options.headers != null && typeof options.headers !== 'object') { + const err = new ConfigurationError(`Headers should be an object, instead got: ${typeof options.headers}`) + return handleError(err, callback) + } + + var warnings = null + var { method, body, transformId, transform_id } = params + var querystring = semicopy(params, ['method', 'body', 'transformId', 'transform_id']) + + if (method == null) { + method = 'PUT' + } + + var ignore = options.ignore || null + if (typeof ignore === 'number') { + ignore = [ignore] + } + + var path = '' + + path = '/' + '_data_frame' + '/' + 'transforms' + '/' + encodeURIComponent(transform_id || transformId) + + // build request object + const request = { + method, + path, + body: body || '', + querystring + } + + const requestOptions = { + ignore, + requestTimeout: options.requestTimeout || null, + maxRetries: options.maxRetries || null, + asStream: options.asStream || false, + headers: options.headers || null, + querystring: options.querystring || null, + compression: options.compression || false, + id: options.id || null, + context: options.context || null, + warnings + } + + return makeRequest(request, requestOptions, callback) + + function semicopy (obj, exclude) { + var target = {} + var keys = Object.keys(obj) + for (var i = 0, len = keys.length; i < len; i++) { + var key = keys[i] + if (exclude.indexOf(key) === -1) { + target[snakeCase[key] || key] = obj[key] + if (acceptedQuerystring.indexOf(snakeCase[key] || key) === -1) { + warnings = warnings || [] + warnings.push('Client - Unknown parameter: "' + key + '", sending it as query parameter') + } + } + } + return target + } + } +} + +module.exports = buildDataFramePutDataFrameTransform diff --git a/api/api/data_frame.start_data_frame_transform.js b/api/api/data_frame.start_data_frame_transform.js new file mode 100644 index 000000000..6f2218cca --- /dev/null +++ b/api/api/data_frame.start_data_frame_transform.js @@ -0,0 +1,129 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +'use strict' + +/* eslint camelcase: 0 */ +/* eslint no-unused-vars: 0 */ + +function buildDataFrameStartDataFrameTransform (opts) { + // eslint-disable-next-line no-unused-vars + const { makeRequest, ConfigurationError, handleError } = opts + /** + * Perform a [data_frame.start_data_frame_transform](https://www.elastic.co/guide/en/elasticsearch/reference/current/start-data-frame-transform.html) request + * + * @param {string} transform_id - The id of the transform to start + * @param {time} timeout - Controls the time to wait for the transform to start + */ + + const acceptedQuerystring = [ + 'timeout' + ] + + const snakeCase = { + + } + + return function dataFrameStartDataFrameTransform (params, options, callback) { + options = options || {} + if (typeof options === 'function') { + callback = options + options = {} + } + if (typeof params === 'function' || params == null) { + callback = params + params = {} + options = {} + } + + // check required parameters + if (params['transform_id'] == null && params['transformId'] == null) { + const err = new ConfigurationError('Missing required parameter: transform_id or transformId') + return handleError(err, callback) + } + if (params.body != null) { + const err = new ConfigurationError('This API does not require a body') + return handleError(err, callback) + } + + // validate headers object + if (options.headers != null && typeof options.headers !== 'object') { + const err = new ConfigurationError(`Headers should be an object, instead got: ${typeof options.headers}`) + return handleError(err, callback) + } + + var warnings = null + var { method, body, transformId, transform_id } = params + var querystring = semicopy(params, ['method', 'body', 'transformId', 'transform_id']) + + if (method == null) { + method = 'POST' + } + + var ignore = options.ignore || null + if (typeof ignore === 'number') { + ignore = [ignore] + } + + var path = '' + + path = '/' + '_data_frame' + '/' + 'transforms' + '/' + encodeURIComponent(transform_id || transformId) + '/' + '_start' + + // build request object + const request = { + method, + path, + body: '', + querystring + } + + const requestOptions = { + ignore, + requestTimeout: options.requestTimeout || null, + maxRetries: options.maxRetries || null, + asStream: options.asStream || false, + headers: options.headers || null, + querystring: options.querystring || null, + compression: options.compression || false, + id: options.id || null, + context: options.context || null, + warnings + } + + return makeRequest(request, requestOptions, callback) + + function semicopy (obj, exclude) { + var target = {} + var keys = Object.keys(obj) + for (var i = 0, len = keys.length; i < len; i++) { + var key = keys[i] + if (exclude.indexOf(key) === -1) { + target[snakeCase[key] || key] = obj[key] + if (acceptedQuerystring.indexOf(snakeCase[key] || key) === -1) { + warnings = warnings || [] + warnings.push('Client - Unknown parameter: "' + key + '", sending it as query parameter') + } + } + } + return target + } + } +} + +module.exports = buildDataFrameStartDataFrameTransform diff --git a/api/api/data_frame.stop_data_frame_transform.js b/api/api/data_frame.stop_data_frame_transform.js new file mode 100644 index 000000000..be3919984 --- /dev/null +++ b/api/api/data_frame.stop_data_frame_transform.js @@ -0,0 +1,132 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +'use strict' + +/* eslint camelcase: 0 */ +/* eslint no-unused-vars: 0 */ + +function buildDataFrameStopDataFrameTransform (opts) { + // eslint-disable-next-line no-unused-vars + const { makeRequest, ConfigurationError, handleError } = opts + /** + * Perform a [data_frame.stop_data_frame_transform](https://www.elastic.co/guide/en/elasticsearch/reference/current/stop-data-frame-transform.html) request + * + * @param {string} transform_id - The id of the transform to stop + * @param {boolean} wait_for_completion - Whether to wait for the transform to fully stop before returning or not. Default to false + * @param {time} timeout - Controls the time to wait until the transform has stopped. Default to 30 seconds + */ + + const acceptedQuerystring = [ + 'wait_for_completion', + 'timeout' + ] + + const snakeCase = { + waitForCompletion: 'wait_for_completion' + + } + + return function dataFrameStopDataFrameTransform (params, options, callback) { + options = options || {} + if (typeof options === 'function') { + callback = options + options = {} + } + if (typeof params === 'function' || params == null) { + callback = params + params = {} + options = {} + } + + // check required parameters + if (params['transform_id'] == null && params['transformId'] == null) { + const err = new ConfigurationError('Missing required parameter: transform_id or transformId') + return handleError(err, callback) + } + if (params.body != null) { + const err = new ConfigurationError('This API does not require a body') + return handleError(err, callback) + } + + // validate headers object + if (options.headers != null && typeof options.headers !== 'object') { + const err = new ConfigurationError(`Headers should be an object, instead got: ${typeof options.headers}`) + return handleError(err, callback) + } + + var warnings = null + var { method, body, transformId, transform_id } = params + var querystring = semicopy(params, ['method', 'body', 'transformId', 'transform_id']) + + if (method == null) { + method = 'POST' + } + + var ignore = options.ignore || null + if (typeof ignore === 'number') { + ignore = [ignore] + } + + var path = '' + + path = '/' + '_data_frame' + '/' + 'transforms' + '/' + encodeURIComponent(transform_id || transformId) + '/' + '_stop' + + // build request object + const request = { + method, + path, + body: '', + querystring + } + + const requestOptions = { + ignore, + requestTimeout: options.requestTimeout || null, + maxRetries: options.maxRetries || null, + asStream: options.asStream || false, + headers: options.headers || null, + querystring: options.querystring || null, + compression: options.compression || false, + id: options.id || null, + context: options.context || null, + warnings + } + + return makeRequest(request, requestOptions, callback) + + function semicopy (obj, exclude) { + var target = {} + var keys = Object.keys(obj) + for (var i = 0, len = keys.length; i < len; i++) { + var key = keys[i] + if (exclude.indexOf(key) === -1) { + target[snakeCase[key] || key] = obj[key] + if (acceptedQuerystring.indexOf(snakeCase[key] || key) === -1) { + warnings = warnings || [] + warnings.push('Client - Unknown parameter: "' + key + '", sending it as query parameter') + } + } + } + return target + } + } +} + +module.exports = buildDataFrameStopDataFrameTransform diff --git a/api/api/delete.js b/api/api/delete.js index 664e91475..099e9e94b 100644 --- a/api/api/delete.js +++ b/api/api/delete.js @@ -146,6 +146,8 @@ function buildDelete (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/delete_by_query.js b/api/api/delete_by_query.js index 7e3aae9ea..2b95a02e6 100644 --- a/api/api/delete_by_query.js +++ b/api/api/delete_by_query.js @@ -196,6 +196,8 @@ function buildDeleteByQuery (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/delete_by_query_rethrottle.js b/api/api/delete_by_query_rethrottle.js index bbeb5094a..8cc90e6ab 100644 --- a/api/api/delete_by_query_rethrottle.js +++ b/api/api/delete_by_query_rethrottle.js @@ -112,6 +112,8 @@ function buildDeleteByQueryRethrottle (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/delete_script.js b/api/api/delete_script.js index 6165361bf..9ab6c4460 100644 --- a/api/api/delete_script.js +++ b/api/api/delete_script.js @@ -110,6 +110,8 @@ function buildDeleteScript (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/exists.js b/api/api/exists.js index a836922bc..46408f2af 100644 --- a/api/api/exists.js +++ b/api/api/exists.js @@ -141,6 +141,8 @@ function buildExists (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/exists_source.js b/api/api/exists_source.js index b23b67efc..fd39b921e 100644 --- a/api/api/exists_source.js +++ b/api/api/exists_source.js @@ -147,6 +147,8 @@ function buildExistsSource (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/explain.js b/api/api/explain.js index 6bad10533..810a804a7 100644 --- a/api/api/explain.js +++ b/api/api/explain.js @@ -143,6 +143,8 @@ function buildExplain (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/field_caps.js b/api/api/field_caps.js index 5cc1f075e..2b609550b 100644 --- a/api/api/field_caps.js +++ b/api/api/field_caps.js @@ -111,6 +111,8 @@ function buildFieldCaps (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/get.js b/api/api/get.js index 4420326f6..0d9ce71f8 100644 --- a/api/api/get.js +++ b/api/api/get.js @@ -147,6 +147,8 @@ function buildGet (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/get_script.js b/api/api/get_script.js index b6659841f..aae577d34 100644 --- a/api/api/get_script.js +++ b/api/api/get_script.js @@ -108,6 +108,8 @@ function buildGetScript (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/get_source.js b/api/api/get_source.js index 948971f08..b4afae752 100644 --- a/api/api/get_source.js +++ b/api/api/get_source.js @@ -138,6 +138,8 @@ function buildGetSource (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/ilm.delete_lifecycle.js b/api/api/ilm.delete_lifecycle.js index 7e09289af..57ced77cc 100644 --- a/api/api/ilm.delete_lifecycle.js +++ b/api/api/ilm.delete_lifecycle.js @@ -96,6 +96,8 @@ function buildIlmDeleteLifecycle (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/ilm.explain_lifecycle.js b/api/api/ilm.explain_lifecycle.js index d9a0e2e70..446d8b9e9 100644 --- a/api/api/ilm.explain_lifecycle.js +++ b/api/api/ilm.explain_lifecycle.js @@ -97,6 +97,8 @@ function buildIlmExplainLifecycle (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/ilm.get_lifecycle.js b/api/api/ilm.get_lifecycle.js index a01952fa5..1145c399a 100644 --- a/api/api/ilm.get_lifecycle.js +++ b/api/api/ilm.get_lifecycle.js @@ -100,6 +100,8 @@ function buildIlmGetLifecycle (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/ilm.get_status.js b/api/api/ilm.get_status.js index 30c135900..f27b964e3 100644 --- a/api/api/ilm.get_status.js +++ b/api/api/ilm.get_status.js @@ -95,6 +95,8 @@ function buildIlmGetStatus (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/ilm.move_to_step.js b/api/api/ilm.move_to_step.js index 49f82a8c5..c450a083a 100644 --- a/api/api/ilm.move_to_step.js +++ b/api/api/ilm.move_to_step.js @@ -91,6 +91,8 @@ function buildIlmMoveToStep (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/ilm.put_lifecycle.js b/api/api/ilm.put_lifecycle.js index 28955b0fe..b8d58d5f3 100644 --- a/api/api/ilm.put_lifecycle.js +++ b/api/api/ilm.put_lifecycle.js @@ -91,6 +91,8 @@ function buildIlmPutLifecycle (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/ilm.remove_policy.js b/api/api/ilm.remove_policy.js index ccfbc8c81..ca37399d2 100644 --- a/api/api/ilm.remove_policy.js +++ b/api/api/ilm.remove_policy.js @@ -96,6 +96,8 @@ function buildIlmRemovePolicy (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/ilm.retry.js b/api/api/ilm.retry.js index 5ea000327..1fbcdd1da 100644 --- a/api/api/ilm.retry.js +++ b/api/api/ilm.retry.js @@ -96,6 +96,8 @@ function buildIlmRetry (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/ilm.start.js b/api/api/ilm.start.js index f2461f3ef..8c907d91d 100644 --- a/api/api/ilm.start.js +++ b/api/api/ilm.start.js @@ -95,6 +95,8 @@ function buildIlmStart (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/ilm.stop.js b/api/api/ilm.stop.js index ad1607579..b056fa599 100644 --- a/api/api/ilm.stop.js +++ b/api/api/ilm.stop.js @@ -95,6 +95,8 @@ function buildIlmStop (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/index.js b/api/api/index.js index 4076a8a1f..4b9de4503 100644 --- a/api/api/index.js +++ b/api/api/index.js @@ -152,6 +152,8 @@ function buildIndex (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.analyze.js b/api/api/indices.analyze.js index 4d819f7c0..a9d6e886f 100644 --- a/api/api/indices.analyze.js +++ b/api/api/indices.analyze.js @@ -102,6 +102,8 @@ function buildIndicesAnalyze (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.clear_cache.js b/api/api/indices.clear_cache.js index 749dcf030..f8c24edc5 100644 --- a/api/api/indices.clear_cache.js +++ b/api/api/indices.clear_cache.js @@ -130,6 +130,8 @@ function buildIndicesClearCache (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.close.js b/api/api/indices.close.js index 023bc3507..73f134b41 100644 --- a/api/api/indices.close.js +++ b/api/api/indices.close.js @@ -119,6 +119,8 @@ function buildIndicesClose (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.create.js b/api/api/indices.create.js index 273b06b47..5708080a0 100644 --- a/api/api/indices.create.js +++ b/api/api/indices.create.js @@ -116,6 +116,8 @@ function buildIndicesCreate (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.delete.js b/api/api/indices.delete.js index bb46902fd..ced4e48e2 100644 --- a/api/api/indices.delete.js +++ b/api/api/indices.delete.js @@ -119,6 +119,8 @@ function buildIndicesDelete (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.delete_alias.js b/api/api/indices.delete_alias.js index db5091854..f7f37523d 100644 --- a/api/api/indices.delete_alias.js +++ b/api/api/indices.delete_alias.js @@ -125,6 +125,8 @@ function buildIndicesDeleteAlias (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.delete_template.js b/api/api/indices.delete_template.js index 623ba6933..4f969efe0 100644 --- a/api/api/indices.delete_template.js +++ b/api/api/indices.delete_template.js @@ -110,6 +110,8 @@ function buildIndicesDeleteTemplate (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.exists.js b/api/api/indices.exists.js index 85cc737a4..629725623 100644 --- a/api/api/indices.exists.js +++ b/api/api/indices.exists.js @@ -122,6 +122,8 @@ function buildIndicesExists (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.exists_alias.js b/api/api/indices.exists_alias.js index d25ddb733..7531e6fb0 100644 --- a/api/api/indices.exists_alias.js +++ b/api/api/indices.exists_alias.js @@ -121,6 +121,8 @@ function buildIndicesExistsAlias (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.exists_template.js b/api/api/indices.exists_template.js index ea3fb9d35..83273b91d 100644 --- a/api/api/indices.exists_template.js +++ b/api/api/indices.exists_template.js @@ -113,6 +113,8 @@ function buildIndicesExistsTemplate (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.exists_type.js b/api/api/indices.exists_type.js index 4c2573419..585c2d325 100644 --- a/api/api/indices.exists_type.js +++ b/api/api/indices.exists_type.js @@ -127,6 +127,8 @@ function buildIndicesExistsType (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.flush.js b/api/api/indices.flush.js index 1099650fa..94d64e23e 100644 --- a/api/api/indices.flush.js +++ b/api/api/indices.flush.js @@ -119,6 +119,8 @@ function buildIndicesFlush (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.flush_synced.js b/api/api/indices.flush_synced.js index df404cee0..f4c69b758 100644 --- a/api/api/indices.flush_synced.js +++ b/api/api/indices.flush_synced.js @@ -114,6 +114,8 @@ function buildIndicesFlushSynced (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.forcemerge.js b/api/api/indices.forcemerge.js index 5bf900cc6..b5249ecfc 100644 --- a/api/api/indices.forcemerge.js +++ b/api/api/indices.forcemerge.js @@ -122,6 +122,8 @@ function buildIndicesForcemerge (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.freeze.js b/api/api/indices.freeze.js index 944a9b00a..0400b00d5 100644 --- a/api/api/indices.freeze.js +++ b/api/api/indices.freeze.js @@ -115,6 +115,8 @@ function buildIndicesFreeze (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.get.js b/api/api/indices.get.js index 608912b53..54dbf86e0 100644 --- a/api/api/indices.get.js +++ b/api/api/indices.get.js @@ -128,6 +128,8 @@ function buildIndicesGet (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.get_alias.js b/api/api/indices.get_alias.js index fc2f508ef..d016d5741 100644 --- a/api/api/indices.get_alias.js +++ b/api/api/indices.get_alias.js @@ -121,6 +121,8 @@ function buildIndicesGetAlias (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.get_field_mapping.js b/api/api/indices.get_field_mapping.js index 78dcfcc0c..70a9efaa0 100644 --- a/api/api/indices.get_field_mapping.js +++ b/api/api/indices.get_field_mapping.js @@ -132,6 +132,8 @@ function buildIndicesGetFieldMapping (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.get_mapping.js b/api/api/indices.get_mapping.js index 8c7e1f593..804019ff9 100644 --- a/api/api/indices.get_mapping.js +++ b/api/api/indices.get_mapping.js @@ -127,6 +127,8 @@ function buildIndicesGetMapping (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.get_settings.js b/api/api/indices.get_settings.js index 5af0ba622..79d82cbee 100644 --- a/api/api/indices.get_settings.js +++ b/api/api/indices.get_settings.js @@ -130,6 +130,8 @@ function buildIndicesGetSettings (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.get_template.js b/api/api/indices.get_template.js index 315c9d9ad..68d6a6b51 100644 --- a/api/api/indices.get_template.js +++ b/api/api/indices.get_template.js @@ -116,6 +116,8 @@ function buildIndicesGetTemplate (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.get_upgrade.js b/api/api/indices.get_upgrade.js index c5acf2611..06781bda7 100644 --- a/api/api/indices.get_upgrade.js +++ b/api/api/indices.get_upgrade.js @@ -114,6 +114,8 @@ function buildIndicesGetUpgrade (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.open.js b/api/api/indices.open.js index ba585f805..742cb028d 100644 --- a/api/api/indices.open.js +++ b/api/api/indices.open.js @@ -122,6 +122,8 @@ function buildIndicesOpen (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.put_alias.js b/api/api/indices.put_alias.js index 68710d615..c6d2df4a3 100644 --- a/api/api/indices.put_alias.js +++ b/api/api/indices.put_alias.js @@ -122,6 +122,8 @@ function buildIndicesPutAlias (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.put_mapping.js b/api/api/indices.put_mapping.js index f73a9d192..90bf52d89 100644 --- a/api/api/indices.put_mapping.js +++ b/api/api/indices.put_mapping.js @@ -139,6 +139,8 @@ function buildIndicesPutMapping (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.put_settings.js b/api/api/indices.put_settings.js index c12a1a47d..ba394a719 100644 --- a/api/api/indices.put_settings.js +++ b/api/api/indices.put_settings.js @@ -126,6 +126,8 @@ function buildIndicesPutSettings (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.put_template.js b/api/api/indices.put_template.js index 2ccc9a5a6..931a2ab85 100644 --- a/api/api/indices.put_template.js +++ b/api/api/indices.put_template.js @@ -121,6 +121,8 @@ function buildIndicesPutTemplate (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.recovery.js b/api/api/indices.recovery.js index 226637439..7362561b7 100644 --- a/api/api/indices.recovery.js +++ b/api/api/indices.recovery.js @@ -110,6 +110,8 @@ function buildIndicesRecovery (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.refresh.js b/api/api/indices.refresh.js index e246af298..1a263c834 100644 --- a/api/api/indices.refresh.js +++ b/api/api/indices.refresh.js @@ -114,6 +114,8 @@ function buildIndicesRefresh (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.rollover.js b/api/api/indices.rollover.js index 73ad046be..8b7fecb73 100644 --- a/api/api/indices.rollover.js +++ b/api/api/indices.rollover.js @@ -127,6 +127,8 @@ function buildIndicesRollover (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.segments.js b/api/api/indices.segments.js index d571c8c65..a9feb67f5 100644 --- a/api/api/indices.segments.js +++ b/api/api/indices.segments.js @@ -116,6 +116,8 @@ function buildIndicesSegments (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.shard_stores.js b/api/api/indices.shard_stores.js index f835b5975..35d5924b8 100644 --- a/api/api/indices.shard_stores.js +++ b/api/api/indices.shard_stores.js @@ -116,6 +116,8 @@ function buildIndicesShardStores (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.shrink.js b/api/api/indices.shrink.js index e8dcbe934..1febb1643 100644 --- a/api/api/indices.shrink.js +++ b/api/api/indices.shrink.js @@ -124,6 +124,8 @@ function buildIndicesShrink (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.split.js b/api/api/indices.split.js index fbb062d1f..77d8288cd 100644 --- a/api/api/indices.split.js +++ b/api/api/indices.split.js @@ -124,6 +124,8 @@ function buildIndicesSplit (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.stats.js b/api/api/indices.stats.js index e4b811ea5..3efb1949b 100644 --- a/api/api/indices.stats.js +++ b/api/api/indices.stats.js @@ -127,6 +127,8 @@ function buildIndicesStats (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.unfreeze.js b/api/api/indices.unfreeze.js index cac430b25..81a55968f 100644 --- a/api/api/indices.unfreeze.js +++ b/api/api/indices.unfreeze.js @@ -115,6 +115,8 @@ function buildIndicesUnfreeze (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.update_aliases.js b/api/api/indices.update_aliases.js index 869bd1e42..5c83d0798 100644 --- a/api/api/indices.update_aliases.js +++ b/api/api/indices.update_aliases.js @@ -106,6 +106,8 @@ function buildIndicesUpdateAliases (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.upgrade.js b/api/api/indices.upgrade.js index a2b5e25b6..bae33c59a 100644 --- a/api/api/indices.upgrade.js +++ b/api/api/indices.upgrade.js @@ -120,6 +120,8 @@ function buildIndicesUpgrade (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/indices.validate_query.js b/api/api/indices.validate_query.js index fca278548..3dea50479 100644 --- a/api/api/indices.validate_query.js +++ b/api/api/indices.validate_query.js @@ -139,6 +139,8 @@ function buildIndicesValidateQuery (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/info.js b/api/api/info.js index 681d465a4..0d5eb79e1 100644 --- a/api/api/info.js +++ b/api/api/info.js @@ -100,6 +100,8 @@ function buildInfo (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/ingest.delete_pipeline.js b/api/api/ingest.delete_pipeline.js index 98377da51..f5f920984 100644 --- a/api/api/ingest.delete_pipeline.js +++ b/api/api/ingest.delete_pipeline.js @@ -110,6 +110,8 @@ function buildIngestDeletePipeline (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/ingest.get_pipeline.js b/api/api/ingest.get_pipeline.js index c0cd21726..ec9096fdc 100644 --- a/api/api/ingest.get_pipeline.js +++ b/api/api/ingest.get_pipeline.js @@ -108,6 +108,8 @@ function buildIngestGetPipeline (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/ingest.processor_grok.js b/api/api/ingest.processor_grok.js index f3c88aa8f..056843cb2 100644 --- a/api/api/ingest.processor_grok.js +++ b/api/api/ingest.processor_grok.js @@ -100,6 +100,8 @@ function buildIngestProcessorGrok (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/ingest.put_pipeline.js b/api/api/ingest.put_pipeline.js index 1ce8e62b7..0b34bf29c 100644 --- a/api/api/ingest.put_pipeline.js +++ b/api/api/ingest.put_pipeline.js @@ -111,6 +111,8 @@ function buildIngestPutPipeline (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/ingest.simulate.js b/api/api/ingest.simulate.js index b157763cb..4296037df 100644 --- a/api/api/ingest.simulate.js +++ b/api/api/ingest.simulate.js @@ -108,6 +108,8 @@ function buildIngestSimulate (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/mget.js b/api/api/mget.js index f01283b20..14b29eaf4 100644 --- a/api/api/mget.js +++ b/api/api/mget.js @@ -134,6 +134,8 @@ function buildMget (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/msearch.js b/api/api/msearch.js index 5241c5532..dc232936e 100644 --- a/api/api/msearch.js +++ b/api/api/msearch.js @@ -133,6 +133,8 @@ function buildMsearch (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/msearch_template.js b/api/api/msearch_template.js index a857d255b..bb4b3103f 100644 --- a/api/api/msearch_template.js +++ b/api/api/msearch_template.js @@ -127,6 +127,8 @@ function buildMsearchTemplate (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/mtermvectors.js b/api/api/mtermvectors.js index fe4c49a6e..a46362de3 100644 --- a/api/api/mtermvectors.js +++ b/api/api/mtermvectors.js @@ -138,6 +138,8 @@ function buildMtermvectors (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/nodes.hot_threads.js b/api/api/nodes.hot_threads.js index 12f59399c..d5823e4e8 100644 --- a/api/api/nodes.hot_threads.js +++ b/api/api/nodes.hot_threads.js @@ -124,6 +124,8 @@ function buildNodesHotThreads (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/nodes.info.js b/api/api/nodes.info.js index 4179dd155..4e27f08ff 100644 --- a/api/api/nodes.info.js +++ b/api/api/nodes.info.js @@ -115,6 +115,8 @@ function buildNodesInfo (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/nodes.reload_secure_settings.js b/api/api/nodes.reload_secure_settings.js index 816b69ed2..9dff0fa62 100644 --- a/api/api/nodes.reload_secure_settings.js +++ b/api/api/nodes.reload_secure_settings.js @@ -107,6 +107,8 @@ function buildNodesReloadSecureSettings (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/nodes.stats.js b/api/api/nodes.stats.js index 4553511fd..04425a8fb 100644 --- a/api/api/nodes.stats.js +++ b/api/api/nodes.stats.js @@ -134,6 +134,8 @@ function buildNodesStats (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/nodes.usage.js b/api/api/nodes.usage.js index 308a6645b..1d62545be 100644 --- a/api/api/nodes.usage.js +++ b/api/api/nodes.usage.js @@ -112,6 +112,8 @@ function buildNodesUsage (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/ping.js b/api/api/ping.js index 71192c360..71a0dc79e 100644 --- a/api/api/ping.js +++ b/api/api/ping.js @@ -100,6 +100,8 @@ function buildPing (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/put_script.js b/api/api/put_script.js index bad10957b..9ffd1db70 100644 --- a/api/api/put_script.js +++ b/api/api/put_script.js @@ -124,6 +124,8 @@ function buildPutScript (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/rank_eval.js b/api/api/rank_eval.js index a32132466..df81a0385 100644 --- a/api/api/rank_eval.js +++ b/api/api/rank_eval.js @@ -115,6 +115,8 @@ function buildRankEval (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/reindex.js b/api/api/reindex.js index 90397417b..25ce5f076 100644 --- a/api/api/reindex.js +++ b/api/api/reindex.js @@ -116,6 +116,8 @@ function buildReindex (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/reindex_rethrottle.js b/api/api/reindex_rethrottle.js index 605a2ea83..2a24b921b 100644 --- a/api/api/reindex_rethrottle.js +++ b/api/api/reindex_rethrottle.js @@ -112,6 +112,8 @@ function buildReindexRethrottle (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/render_search_template.js b/api/api/render_search_template.js index 59bcab0b1..0564ba781 100644 --- a/api/api/render_search_template.js +++ b/api/api/render_search_template.js @@ -100,6 +100,8 @@ function buildRenderSearchTemplate (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/scripts_painless_context.js b/api/api/scripts_painless_context.js new file mode 100644 index 000000000..0ef7d852a --- /dev/null +++ b/api/api/scripts_painless_context.js @@ -0,0 +1,124 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +'use strict' + +/* eslint camelcase: 0 */ +/* eslint no-unused-vars: 0 */ + +function buildScriptsPainlessContext (opts) { + // eslint-disable-next-line no-unused-vars + const { makeRequest, ConfigurationError, handleError } = opts + /** + * Perform a [scripts_painless_context](undefined) request + * + * @param {string} context - Select a specific context to retrieve API information about + */ + + const acceptedQuerystring = [ + 'context', + 'pretty', + 'human', + 'error_trace', + 'source', + 'filter_path' + ] + + const snakeCase = { + errorTrace: 'error_trace', + filterPath: 'filter_path' + } + + return function scriptsPainlessContext (params, options, callback) { + options = options || {} + if (typeof options === 'function') { + callback = options + options = {} + } + if (typeof params === 'function' || params == null) { + callback = params + params = {} + options = {} + } + + // validate headers object + if (options.headers != null && typeof options.headers !== 'object') { + const err = new ConfigurationError(`Headers should be an object, instead got: ${typeof options.headers}`) + return handleError(err, callback) + } + + var warnings = null + var { method, body } = params + var querystring = semicopy(params, ['method', 'body']) + + if (method == null) { + method = 'GET' + } + + var ignore = options.ignore || null + if (typeof ignore === 'number') { + ignore = [ignore] + } + + var path = '' + + path = '/' + '_scripts' + '/' + 'painless' + '/' + '_context' + + // build request object + const request = { + method, + path, + body: null, + querystring + } + + const requestOptions = { + ignore, + requestTimeout: options.requestTimeout || null, + maxRetries: options.maxRetries || null, + asStream: options.asStream || false, + headers: options.headers || null, + querystring: options.querystring || null, + compression: options.compression || false, + id: options.id || null, + context: options.context || null, + warnings + } + + return makeRequest(request, requestOptions, callback) + + function semicopy (obj, exclude) { + var target = {} + var keys = Object.keys(obj) + for (var i = 0, len = keys.length; i < len; i++) { + var key = keys[i] + if (exclude.indexOf(key) === -1) { + target[snakeCase[key] || key] = obj[key] + if (acceptedQuerystring.indexOf(snakeCase[key] || key) === -1) { + warnings = warnings || [] + warnings.push('Client - Unknown parameter: "' + key + '", sending it as query parameter') + } + } + } + return target + } + } +} + +module.exports = buildScriptsPainlessContext diff --git a/api/api/scripts_painless_execute.js b/api/api/scripts_painless_execute.js index 3a2785063..231a3e461 100644 --- a/api/api/scripts_painless_execute.js +++ b/api/api/scripts_painless_execute.js @@ -95,6 +95,8 @@ function buildScriptsPainlessExecute (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/scroll.js b/api/api/scroll.js index aebc34594..4b34b107c 100644 --- a/api/api/scroll.js +++ b/api/api/scroll.js @@ -108,6 +108,8 @@ function buildScroll (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/search.js b/api/api/search.js index e27c1c02b..d1a845c85 100644 --- a/api/api/search.js +++ b/api/api/search.js @@ -217,6 +217,8 @@ function buildSearch (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/search_shards.js b/api/api/search_shards.js index 43eed2ed8..bae036cef 100644 --- a/api/api/search_shards.js +++ b/api/api/search_shards.js @@ -120,6 +120,8 @@ function buildSearchShards (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/search_template.js b/api/api/search_template.js index 73383e293..01803aa4e 100644 --- a/api/api/search_template.js +++ b/api/api/search_template.js @@ -146,6 +146,8 @@ function buildSearchTemplate (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/security.create_api_key.js b/api/api/security.create_api_key.js index bb5e69379..a2e0cd315 100644 --- a/api/api/security.create_api_key.js +++ b/api/api/security.create_api_key.js @@ -97,6 +97,8 @@ function buildSecurityCreateApiKey (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/security.get_api_key.js b/api/api/security.get_api_key.js index 9a82ec39e..eb8af6ea9 100644 --- a/api/api/security.get_api_key.js +++ b/api/api/security.get_api_key.js @@ -102,6 +102,8 @@ function buildSecurityGetApiKey (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/security.invalidate_api_key.js b/api/api/security.invalidate_api_key.js index f32685f97..983ef2ac8 100644 --- a/api/api/security.invalidate_api_key.js +++ b/api/api/security.invalidate_api_key.js @@ -96,6 +96,8 @@ function buildSecurityInvalidateApiKey (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/snapshot.create.js b/api/api/snapshot.create.js index e1aa00e93..a54cc4b8e 100644 --- a/api/api/snapshot.create.js +++ b/api/api/snapshot.create.js @@ -119,6 +119,8 @@ function buildSnapshotCreate (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/snapshot.create_repository.js b/api/api/snapshot.create_repository.js index ff1c1f80c..7d06c4135 100644 --- a/api/api/snapshot.create_repository.js +++ b/api/api/snapshot.create_repository.js @@ -113,6 +113,8 @@ function buildSnapshotCreateRepository (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/snapshot.delete.js b/api/api/snapshot.delete.js index 22f309ae7..86e090012 100644 --- a/api/api/snapshot.delete.js +++ b/api/api/snapshot.delete.js @@ -119,6 +119,8 @@ function buildSnapshotDelete (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/snapshot.delete_repository.js b/api/api/snapshot.delete_repository.js index 0316765cd..48aa929e1 100644 --- a/api/api/snapshot.delete_repository.js +++ b/api/api/snapshot.delete_repository.js @@ -110,6 +110,8 @@ function buildSnapshotDeleteRepository (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/snapshot.get.js b/api/api/snapshot.get.js index f3b4243f6..621f7417c 100644 --- a/api/api/snapshot.get.js +++ b/api/api/snapshot.get.js @@ -124,6 +124,8 @@ function buildSnapshotGet (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/snapshot.get_repository.js b/api/api/snapshot.get_repository.js index f825b04a0..ae7d9fcdc 100644 --- a/api/api/snapshot.get_repository.js +++ b/api/api/snapshot.get_repository.js @@ -110,6 +110,8 @@ function buildSnapshotGetRepository (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/snapshot.restore.js b/api/api/snapshot.restore.js index 7df0ac952..217bb7fef 100644 --- a/api/api/snapshot.restore.js +++ b/api/api/snapshot.restore.js @@ -119,6 +119,8 @@ function buildSnapshotRestore (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/snapshot.status.js b/api/api/snapshot.status.js index d0820b6c6..bf15fa342 100644 --- a/api/api/snapshot.status.js +++ b/api/api/snapshot.status.js @@ -120,6 +120,8 @@ function buildSnapshotStatus (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/snapshot.verify_repository.js b/api/api/snapshot.verify_repository.js index ea23febc8..0bb67a727 100644 --- a/api/api/snapshot.verify_repository.js +++ b/api/api/snapshot.verify_repository.js @@ -110,6 +110,8 @@ function buildSnapshotVerifyRepository (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/tasks.cancel.js b/api/api/tasks.cancel.js index 3d3dd5d3e..6e674b2b2 100644 --- a/api/api/tasks.cancel.js +++ b/api/api/tasks.cancel.js @@ -112,6 +112,8 @@ function buildTasksCancel (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/tasks.get.js b/api/api/tasks.get.js index 426fe46af..c3435158f 100644 --- a/api/api/tasks.get.js +++ b/api/api/tasks.get.js @@ -110,6 +110,8 @@ function buildTasksGet (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/tasks.list.js b/api/api/tasks.list.js index 57f170927..9d74e774d 100644 --- a/api/api/tasks.list.js +++ b/api/api/tasks.list.js @@ -117,6 +117,8 @@ function buildTasksList (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/termvectors.js b/api/api/termvectors.js index 5fda94dfe..d889fb9a1 100644 --- a/api/api/termvectors.js +++ b/api/api/termvectors.js @@ -139,6 +139,8 @@ function buildTermvectors (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/update.js b/api/api/update.js index fd6cbe2b9..cfbd8c78a 100644 --- a/api/api/update.js +++ b/api/api/update.js @@ -153,6 +153,8 @@ function buildUpdate (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/update_by_query.js b/api/api/update_by_query.js index ab41dcf72..ac34e44db 100644 --- a/api/api/update_by_query.js +++ b/api/api/update_by_query.js @@ -197,6 +197,8 @@ function buildUpdateByQuery (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/update_by_query_rethrottle.js b/api/api/update_by_query_rethrottle.js index 2937a00d1..050feed99 100644 --- a/api/api/update_by_query_rethrottle.js +++ b/api/api/update_by_query_rethrottle.js @@ -112,6 +112,8 @@ function buildUpdateByQueryRethrottle (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.graph.explore.js b/api/api/xpack.graph.explore.js index a57bea5d4..cf9ab5d93 100644 --- a/api/api/xpack.graph.explore.js +++ b/api/api/xpack.graph.explore.js @@ -105,6 +105,8 @@ function buildXpackGraphExplore (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.info.js b/api/api/xpack.info.js index 13cefe3b2..22d1f9f18 100644 --- a/api/api/xpack.info.js +++ b/api/api/xpack.info.js @@ -96,6 +96,8 @@ function buildXpackInfo (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.license.delete.js b/api/api/xpack.license.delete.js index ea98864d0..b76136f93 100644 --- a/api/api/xpack.license.delete.js +++ b/api/api/xpack.license.delete.js @@ -95,6 +95,8 @@ function buildXpackLicenseDelete (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.license.get.js b/api/api/xpack.license.get.js index c008f7f69..e8f868277 100644 --- a/api/api/xpack.license.get.js +++ b/api/api/xpack.license.get.js @@ -96,6 +96,8 @@ function buildXpackLicenseGet (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.license.get_basic_status.js b/api/api/xpack.license.get_basic_status.js index ff7ba0cb5..97f323bde 100644 --- a/api/api/xpack.license.get_basic_status.js +++ b/api/api/xpack.license.get_basic_status.js @@ -95,6 +95,8 @@ function buildXpackLicenseGetBasicStatus (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.license.get_trial_status.js b/api/api/xpack.license.get_trial_status.js index c0184fcd0..2a8964dcc 100644 --- a/api/api/xpack.license.get_trial_status.js +++ b/api/api/xpack.license.get_trial_status.js @@ -95,6 +95,8 @@ function buildXpackLicenseGetTrialStatus (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.license.post.js b/api/api/xpack.license.post.js index 995cc97d5..1b2b6577a 100644 --- a/api/api/xpack.license.post.js +++ b/api/api/xpack.license.post.js @@ -91,6 +91,8 @@ function buildXpackLicensePost (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.license.post_start_basic.js b/api/api/xpack.license.post_start_basic.js index c3d0d1282..36ed7443d 100644 --- a/api/api/xpack.license.post_start_basic.js +++ b/api/api/xpack.license.post_start_basic.js @@ -96,6 +96,8 @@ function buildXpackLicensePostStartBasic (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.license.post_start_trial.js b/api/api/xpack.license.post_start_trial.js index 6ca4c6c5f..a57247984 100644 --- a/api/api/xpack.license.post_start_trial.js +++ b/api/api/xpack.license.post_start_trial.js @@ -98,6 +98,8 @@ function buildXpackLicensePostStartTrial (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.migration.deprecations.js b/api/api/xpack.migration.deprecations.js index 89df2a20b..3ff1090ec 100644 --- a/api/api/xpack.migration.deprecations.js +++ b/api/api/xpack.migration.deprecations.js @@ -100,6 +100,8 @@ function buildXpackMigrationDeprecations (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.migration.upgrade.js b/api/api/xpack.migration.upgrade.js index 37718f233..d2844c776 100644 --- a/api/api/xpack.migration.upgrade.js +++ b/api/api/xpack.migration.upgrade.js @@ -97,6 +97,8 @@ function buildXpackMigrationUpgrade (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.close_job.js b/api/api/xpack.ml.close_job.js index 059f10435..2dc5cf0d3 100644 --- a/api/api/xpack.ml.close_job.js +++ b/api/api/xpack.ml.close_job.js @@ -103,6 +103,8 @@ function buildXpackMlCloseJob (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.delete_calendar.js b/api/api/xpack.ml.delete_calendar.js index 0d1e268bd..aca25986a 100644 --- a/api/api/xpack.ml.delete_calendar.js +++ b/api/api/xpack.ml.delete_calendar.js @@ -100,6 +100,8 @@ function buildXpackMlDeleteCalendar (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.delete_calendar_event.js b/api/api/xpack.ml.delete_calendar_event.js index c38b6515a..bee7f6b4f 100644 --- a/api/api/xpack.ml.delete_calendar_event.js +++ b/api/api/xpack.ml.delete_calendar_event.js @@ -111,6 +111,8 @@ function buildXpackMlDeleteCalendarEvent (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.delete_calendar_job.js b/api/api/xpack.ml.delete_calendar_job.js index 3b74d59c3..b3397a8d1 100644 --- a/api/api/xpack.ml.delete_calendar_job.js +++ b/api/api/xpack.ml.delete_calendar_job.js @@ -111,6 +111,8 @@ function buildXpackMlDeleteCalendarJob (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.delete_datafeed.js b/api/api/xpack.ml.delete_datafeed.js index 76d63886b..8fc645432 100644 --- a/api/api/xpack.ml.delete_datafeed.js +++ b/api/api/xpack.ml.delete_datafeed.js @@ -101,6 +101,8 @@ function buildXpackMlDeleteDatafeed (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.delete_expired_data.js b/api/api/xpack.ml.delete_expired_data.js index 04ef2d6e6..9871bfd69 100644 --- a/api/api/xpack.ml.delete_expired_data.js +++ b/api/api/xpack.ml.delete_expired_data.js @@ -95,6 +95,8 @@ function buildXpackMlDeleteExpiredData (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.delete_filter.js b/api/api/xpack.ml.delete_filter.js index e347b505f..f85a3dbe0 100644 --- a/api/api/xpack.ml.delete_filter.js +++ b/api/api/xpack.ml.delete_filter.js @@ -100,6 +100,8 @@ function buildXpackMlDeleteFilter (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.delete_forecast.js b/api/api/xpack.ml.delete_forecast.js index d6b7f52f4..0a7926bfc 100644 --- a/api/api/xpack.ml.delete_forecast.js +++ b/api/api/xpack.ml.delete_forecast.js @@ -115,6 +115,8 @@ function buildXpackMlDeleteForecast (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.delete_job.js b/api/api/xpack.ml.delete_job.js index 8ab5a8f24..185c7919d 100644 --- a/api/api/xpack.ml.delete_job.js +++ b/api/api/xpack.ml.delete_job.js @@ -103,6 +103,8 @@ function buildXpackMlDeleteJob (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.delete_model_snapshot.js b/api/api/xpack.ml.delete_model_snapshot.js index d50a3a529..eb0c28aac 100644 --- a/api/api/xpack.ml.delete_model_snapshot.js +++ b/api/api/xpack.ml.delete_model_snapshot.js @@ -111,6 +111,8 @@ function buildXpackMlDeleteModelSnapshot (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.find_file_structure.js b/api/api/xpack.ml.find_file_structure.js index 5546704fe..458c55230 100644 --- a/api/api/xpack.ml.find_file_structure.js +++ b/api/api/xpack.ml.find_file_structure.js @@ -128,6 +128,8 @@ function buildXpackMlFindFileStructure (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.flush_job.js b/api/api/xpack.ml.flush_job.js index b26c46267..4372f4c8c 100644 --- a/api/api/xpack.ml.flush_job.js +++ b/api/api/xpack.ml.flush_job.js @@ -108,6 +108,8 @@ function buildXpackMlFlushJob (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.forecast.js b/api/api/xpack.ml.forecast.js index ec8f13e5c..20227b349 100644 --- a/api/api/xpack.ml.forecast.js +++ b/api/api/xpack.ml.forecast.js @@ -103,6 +103,8 @@ function buildXpackMlForecast (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.get_buckets.js b/api/api/xpack.ml.get_buckets.js index 6c66c33b7..e6632f41d 100644 --- a/api/api/xpack.ml.get_buckets.js +++ b/api/api/xpack.ml.get_buckets.js @@ -127,6 +127,8 @@ function buildXpackMlGetBuckets (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.get_calendar_events.js b/api/api/xpack.ml.get_calendar_events.js index c091e2771..a44e554a1 100644 --- a/api/api/xpack.ml.get_calendar_events.js +++ b/api/api/xpack.ml.get_calendar_events.js @@ -110,6 +110,8 @@ function buildXpackMlGetCalendarEvents (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.get_calendars.js b/api/api/xpack.ml.get_calendars.js index 24ed76e19..c231e256a 100644 --- a/api/api/xpack.ml.get_calendars.js +++ b/api/api/xpack.ml.get_calendars.js @@ -103,6 +103,8 @@ function buildXpackMlGetCalendars (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.get_categories.js b/api/api/xpack.ml.get_categories.js index 737eee257..0851caad6 100644 --- a/api/api/xpack.ml.get_categories.js +++ b/api/api/xpack.ml.get_categories.js @@ -105,6 +105,8 @@ function buildXpackMlGetCategories (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.get_datafeed_stats.js b/api/api/xpack.ml.get_datafeed_stats.js index 763f955ef..4652b8f4d 100644 --- a/api/api/xpack.ml.get_datafeed_stats.js +++ b/api/api/xpack.ml.get_datafeed_stats.js @@ -101,6 +101,8 @@ function buildXpackMlGetDatafeedStats (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.get_datafeeds.js b/api/api/xpack.ml.get_datafeeds.js index 81ce1d4b7..5b6537ee8 100644 --- a/api/api/xpack.ml.get_datafeeds.js +++ b/api/api/xpack.ml.get_datafeeds.js @@ -101,6 +101,8 @@ function buildXpackMlGetDatafeeds (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.get_filters.js b/api/api/xpack.ml.get_filters.js index 67bb50d55..add95f9d6 100644 --- a/api/api/xpack.ml.get_filters.js +++ b/api/api/xpack.ml.get_filters.js @@ -103,6 +103,8 @@ function buildXpackMlGetFilters (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.get_influencers.js b/api/api/xpack.ml.get_influencers.js index 12ac46a21..fd0caeb48 100644 --- a/api/api/xpack.ml.get_influencers.js +++ b/api/api/xpack.ml.get_influencers.js @@ -114,6 +114,8 @@ function buildXpackMlGetInfluencers (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.get_job_stats.js b/api/api/xpack.ml.get_job_stats.js index c8f77dffc..e79edcb9a 100644 --- a/api/api/xpack.ml.get_job_stats.js +++ b/api/api/xpack.ml.get_job_stats.js @@ -101,6 +101,8 @@ function buildXpackMlGetJobStats (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.get_jobs.js b/api/api/xpack.ml.get_jobs.js index 5ad61fb1e..3ec7d782c 100644 --- a/api/api/xpack.ml.get_jobs.js +++ b/api/api/xpack.ml.get_jobs.js @@ -101,6 +101,8 @@ function buildXpackMlGetJobs (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.get_model_snapshots.js b/api/api/xpack.ml.get_model_snapshots.js index ffbc9087e..3d615ce0d 100644 --- a/api/api/xpack.ml.get_model_snapshots.js +++ b/api/api/xpack.ml.get_model_snapshots.js @@ -119,6 +119,8 @@ function buildXpackMlGetModelSnapshots (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.get_overall_buckets.js b/api/api/xpack.ml.get_overall_buckets.js index 0fa36b657..99ee80422 100644 --- a/api/api/xpack.ml.get_overall_buckets.js +++ b/api/api/xpack.ml.get_overall_buckets.js @@ -114,6 +114,8 @@ function buildXpackMlGetOverallBuckets (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.get_records.js b/api/api/xpack.ml.get_records.js index e95bcfae2..61f41cb67 100644 --- a/api/api/xpack.ml.get_records.js +++ b/api/api/xpack.ml.get_records.js @@ -114,6 +114,8 @@ function buildXpackMlGetRecords (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.info.js b/api/api/xpack.ml.info.js index 9328d6af1..9e827f7f0 100644 --- a/api/api/xpack.ml.info.js +++ b/api/api/xpack.ml.info.js @@ -89,6 +89,8 @@ function buildXpackMlInfo (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.open_job.js b/api/api/xpack.ml.open_job.js index a72a3948c..17c42e059 100644 --- a/api/api/xpack.ml.open_job.js +++ b/api/api/xpack.ml.open_job.js @@ -102,6 +102,8 @@ function buildXpackMlOpenJob (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.post_calendar_events.js b/api/api/xpack.ml.post_calendar_events.js index e06dfee1f..59d26ae3e 100644 --- a/api/api/xpack.ml.post_calendar_events.js +++ b/api/api/xpack.ml.post_calendar_events.js @@ -101,6 +101,8 @@ function buildXpackMlPostCalendarEvents (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.post_data.js b/api/api/xpack.ml.post_data.js index 069fa3b6c..2ad49309e 100644 --- a/api/api/xpack.ml.post_data.js +++ b/api/api/xpack.ml.post_data.js @@ -105,6 +105,8 @@ function buildXpackMlPostData (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.preview_datafeed.js b/api/api/xpack.ml.preview_datafeed.js index 22de9a3fd..ac5957488 100644 --- a/api/api/xpack.ml.preview_datafeed.js +++ b/api/api/xpack.ml.preview_datafeed.js @@ -100,6 +100,8 @@ function buildXpackMlPreviewDatafeed (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.put_calendar.js b/api/api/xpack.ml.put_calendar.js index 35f57a1d3..56274f654 100644 --- a/api/api/xpack.ml.put_calendar.js +++ b/api/api/xpack.ml.put_calendar.js @@ -97,6 +97,8 @@ function buildXpackMlPutCalendar (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.put_calendar_job.js b/api/api/xpack.ml.put_calendar_job.js index 434a0dfe1..4bb5a3396 100644 --- a/api/api/xpack.ml.put_calendar_job.js +++ b/api/api/xpack.ml.put_calendar_job.js @@ -111,6 +111,8 @@ function buildXpackMlPutCalendarJob (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.put_datafeed.js b/api/api/xpack.ml.put_datafeed.js index 1fde806fb..2b2345c51 100644 --- a/api/api/xpack.ml.put_datafeed.js +++ b/api/api/xpack.ml.put_datafeed.js @@ -101,6 +101,8 @@ function buildXpackMlPutDatafeed (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.put_filter.js b/api/api/xpack.ml.put_filter.js index d254fc9d2..0c4107c77 100644 --- a/api/api/xpack.ml.put_filter.js +++ b/api/api/xpack.ml.put_filter.js @@ -101,6 +101,8 @@ function buildXpackMlPutFilter (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.put_job.js b/api/api/xpack.ml.put_job.js index 43405018b..a038f2cef 100644 --- a/api/api/xpack.ml.put_job.js +++ b/api/api/xpack.ml.put_job.js @@ -101,6 +101,8 @@ function buildXpackMlPutJob (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.revert_model_snapshot.js b/api/api/xpack.ml.revert_model_snapshot.js index c236c84d6..4f0679520 100644 --- a/api/api/xpack.ml.revert_model_snapshot.js +++ b/api/api/xpack.ml.revert_model_snapshot.js @@ -109,6 +109,8 @@ function buildXpackMlRevertModelSnapshot (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.set_upgrade_mode.js b/api/api/xpack.ml.set_upgrade_mode.js index 1c397f668..bb1d32922 100644 --- a/api/api/xpack.ml.set_upgrade_mode.js +++ b/api/api/xpack.ml.set_upgrade_mode.js @@ -98,6 +98,8 @@ function buildXpackMlSetUpgradeMode (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.start_datafeed.js b/api/api/xpack.ml.start_datafeed.js index e08ca8244..a39fe7bf2 100644 --- a/api/api/xpack.ml.start_datafeed.js +++ b/api/api/xpack.ml.start_datafeed.js @@ -102,6 +102,8 @@ function buildXpackMlStartDatafeed (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.stop_datafeed.js b/api/api/xpack.ml.stop_datafeed.js index 9146264b8..4225d4e8b 100644 --- a/api/api/xpack.ml.stop_datafeed.js +++ b/api/api/xpack.ml.stop_datafeed.js @@ -102,6 +102,8 @@ function buildXpackMlStopDatafeed (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.update_datafeed.js b/api/api/xpack.ml.update_datafeed.js index 9a451fabf..de30d6c94 100644 --- a/api/api/xpack.ml.update_datafeed.js +++ b/api/api/xpack.ml.update_datafeed.js @@ -101,6 +101,8 @@ function buildXpackMlUpdateDatafeed (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.update_filter.js b/api/api/xpack.ml.update_filter.js index a11fc9537..ab1fbf067 100644 --- a/api/api/xpack.ml.update_filter.js +++ b/api/api/xpack.ml.update_filter.js @@ -101,6 +101,8 @@ function buildXpackMlUpdateFilter (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.update_job.js b/api/api/xpack.ml.update_job.js index dc176fb74..0b8f2be59 100644 --- a/api/api/xpack.ml.update_job.js +++ b/api/api/xpack.ml.update_job.js @@ -101,6 +101,8 @@ function buildXpackMlUpdateJob (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.update_model_snapshot.js b/api/api/xpack.ml.update_model_snapshot.js index 21d13eb3e..7bfc854bd 100644 --- a/api/api/xpack.ml.update_model_snapshot.js +++ b/api/api/xpack.ml.update_model_snapshot.js @@ -112,6 +112,8 @@ function buildXpackMlUpdateModelSnapshot (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.validate.js b/api/api/xpack.ml.validate.js index 2c2b9bfbe..85a29768b 100644 --- a/api/api/xpack.ml.validate.js +++ b/api/api/xpack.ml.validate.js @@ -96,6 +96,8 @@ function buildXpackMlValidate (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ml.validate_detector.js b/api/api/xpack.ml.validate_detector.js index ae5ebcb5e..409c76f3d 100644 --- a/api/api/xpack.ml.validate_detector.js +++ b/api/api/xpack.ml.validate_detector.js @@ -96,6 +96,8 @@ function buildXpackMlValidateDetector (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.monitoring.bulk.js b/api/api/xpack.monitoring.bulk.js index a8fcd4ee8..ef12281fb 100644 --- a/api/api/xpack.monitoring.bulk.js +++ b/api/api/xpack.monitoring.bulk.js @@ -108,6 +108,8 @@ function buildXpackMonitoringBulk (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.rollup.delete_job.js b/api/api/xpack.rollup.delete_job.js index 89381aa22..4f10be8b5 100644 --- a/api/api/xpack.rollup.delete_job.js +++ b/api/api/xpack.rollup.delete_job.js @@ -96,6 +96,8 @@ function buildXpackRollupDeleteJob (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.rollup.get_jobs.js b/api/api/xpack.rollup.get_jobs.js index 15d1d875a..0cba7e988 100644 --- a/api/api/xpack.rollup.get_jobs.js +++ b/api/api/xpack.rollup.get_jobs.js @@ -94,6 +94,8 @@ function buildXpackRollupGetJobs (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.rollup.get_rollup_caps.js b/api/api/xpack.rollup.get_rollup_caps.js index c9f0e7f50..9f2241033 100644 --- a/api/api/xpack.rollup.get_rollup_caps.js +++ b/api/api/xpack.rollup.get_rollup_caps.js @@ -94,6 +94,8 @@ function buildXpackRollupGetRollupCaps (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.rollup.get_rollup_index_caps.js b/api/api/xpack.rollup.get_rollup_index_caps.js index a945532e5..731ddb1f3 100644 --- a/api/api/xpack.rollup.get_rollup_index_caps.js +++ b/api/api/xpack.rollup.get_rollup_index_caps.js @@ -96,6 +96,8 @@ function buildXpackRollupGetRollupIndexCaps (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.rollup.put_job.js b/api/api/xpack.rollup.put_job.js index cff365ae8..45c0c367a 100644 --- a/api/api/xpack.rollup.put_job.js +++ b/api/api/xpack.rollup.put_job.js @@ -101,6 +101,8 @@ function buildXpackRollupPutJob (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.rollup.rollup_search.js b/api/api/xpack.rollup.rollup_search.js index 1a52db503..236c327dc 100644 --- a/api/api/xpack.rollup.rollup_search.js +++ b/api/api/xpack.rollup.rollup_search.js @@ -113,6 +113,8 @@ function buildXpackRollupRollupSearch (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.rollup.start_job.js b/api/api/xpack.rollup.start_job.js index 96fc05ec6..360bb8906 100644 --- a/api/api/xpack.rollup.start_job.js +++ b/api/api/xpack.rollup.start_job.js @@ -96,6 +96,8 @@ function buildXpackRollupStartJob (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.rollup.stop_job.js b/api/api/xpack.rollup.stop_job.js index 840fcf798..a628e5e96 100644 --- a/api/api/xpack.rollup.stop_job.js +++ b/api/api/xpack.rollup.stop_job.js @@ -100,6 +100,8 @@ function buildXpackRollupStopJob (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.security.authenticate.js b/api/api/xpack.security.authenticate.js index a8a5052ee..5228d8c47 100644 --- a/api/api/xpack.security.authenticate.js +++ b/api/api/xpack.security.authenticate.js @@ -95,6 +95,8 @@ function buildXpackSecurityAuthenticate (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.security.change_password.js b/api/api/xpack.security.change_password.js index b46f50da8..0c4a3fc7b 100644 --- a/api/api/xpack.security.change_password.js +++ b/api/api/xpack.security.change_password.js @@ -102,6 +102,8 @@ function buildXpackSecurityChangePassword (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.security.clear_cached_realms.js b/api/api/xpack.security.clear_cached_realms.js index 656638867..888b1e467 100644 --- a/api/api/xpack.security.clear_cached_realms.js +++ b/api/api/xpack.security.clear_cached_realms.js @@ -101,6 +101,8 @@ function buildXpackSecurityClearCachedRealms (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.security.clear_cached_roles.js b/api/api/xpack.security.clear_cached_roles.js index 44500ee32..c8376b292 100644 --- a/api/api/xpack.security.clear_cached_roles.js +++ b/api/api/xpack.security.clear_cached_roles.js @@ -100,6 +100,8 @@ function buildXpackSecurityClearCachedRoles (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.security.delete_privileges.js b/api/api/xpack.security.delete_privileges.js index 91fc5653d..30ce7ff3f 100644 --- a/api/api/xpack.security.delete_privileges.js +++ b/api/api/xpack.security.delete_privileges.js @@ -112,6 +112,8 @@ function buildXpackSecurityDeletePrivileges (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.security.delete_role.js b/api/api/xpack.security.delete_role.js index 33d4b320e..1e35530fb 100644 --- a/api/api/xpack.security.delete_role.js +++ b/api/api/xpack.security.delete_role.js @@ -101,6 +101,8 @@ function buildXpackSecurityDeleteRole (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.security.delete_role_mapping.js b/api/api/xpack.security.delete_role_mapping.js index d7bfb25b6..329bcf503 100644 --- a/api/api/xpack.security.delete_role_mapping.js +++ b/api/api/xpack.security.delete_role_mapping.js @@ -101,6 +101,8 @@ function buildXpackSecurityDeleteRoleMapping (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.security.delete_user.js b/api/api/xpack.security.delete_user.js index 4d6c18a67..84f4116e9 100644 --- a/api/api/xpack.security.delete_user.js +++ b/api/api/xpack.security.delete_user.js @@ -101,6 +101,8 @@ function buildXpackSecurityDeleteUser (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.security.disable_user.js b/api/api/xpack.security.disable_user.js index 416da6226..e89122793 100644 --- a/api/api/xpack.security.disable_user.js +++ b/api/api/xpack.security.disable_user.js @@ -101,6 +101,8 @@ function buildXpackSecurityDisableUser (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.security.enable_user.js b/api/api/xpack.security.enable_user.js index 4f8f5546d..32dcdd3bd 100644 --- a/api/api/xpack.security.enable_user.js +++ b/api/api/xpack.security.enable_user.js @@ -101,6 +101,8 @@ function buildXpackSecurityEnableUser (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.security.get_privileges.js b/api/api/xpack.security.get_privileges.js index ee0b8d0c4..f8104881a 100644 --- a/api/api/xpack.security.get_privileges.js +++ b/api/api/xpack.security.get_privileges.js @@ -109,6 +109,8 @@ function buildXpackSecurityGetPrivileges (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.security.get_role.js b/api/api/xpack.security.get_role.js index c0080a06e..15f0b33bc 100644 --- a/api/api/xpack.security.get_role.js +++ b/api/api/xpack.security.get_role.js @@ -100,6 +100,8 @@ function buildXpackSecurityGetRole (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.security.get_role_mapping.js b/api/api/xpack.security.get_role_mapping.js index 7ac5566e5..30b13c578 100644 --- a/api/api/xpack.security.get_role_mapping.js +++ b/api/api/xpack.security.get_role_mapping.js @@ -100,6 +100,8 @@ function buildXpackSecurityGetRoleMapping (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.security.get_token.js b/api/api/xpack.security.get_token.js index 6811d1cff..d42935fac 100644 --- a/api/api/xpack.security.get_token.js +++ b/api/api/xpack.security.get_token.js @@ -96,6 +96,8 @@ function buildXpackSecurityGetToken (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.security.get_user.js b/api/api/xpack.security.get_user.js index 4b3364715..887dc1a07 100644 --- a/api/api/xpack.security.get_user.js +++ b/api/api/xpack.security.get_user.js @@ -100,6 +100,8 @@ function buildXpackSecurityGetUser (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.security.get_user_privileges.js b/api/api/xpack.security.get_user_privileges.js index 3cdc2ed1a..a192ac6b8 100644 --- a/api/api/xpack.security.get_user_privileges.js +++ b/api/api/xpack.security.get_user_privileges.js @@ -95,6 +95,8 @@ function buildXpackSecurityGetUserPrivileges (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.security.has_privileges.js b/api/api/xpack.security.has_privileges.js index 7e0b793d0..1823d8a41 100644 --- a/api/api/xpack.security.has_privileges.js +++ b/api/api/xpack.security.has_privileges.js @@ -101,6 +101,8 @@ function buildXpackSecurityHasPrivileges (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.security.invalidate_token.js b/api/api/xpack.security.invalidate_token.js index e91e42b7f..2d3bd5480 100644 --- a/api/api/xpack.security.invalidate_token.js +++ b/api/api/xpack.security.invalidate_token.js @@ -96,6 +96,8 @@ function buildXpackSecurityInvalidateToken (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.security.put_privileges.js b/api/api/xpack.security.put_privileges.js index 206d0d237..aa4f37675 100644 --- a/api/api/xpack.security.put_privileges.js +++ b/api/api/xpack.security.put_privileges.js @@ -97,6 +97,8 @@ function buildXpackSecurityPutPrivileges (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.security.put_role.js b/api/api/xpack.security.put_role.js index c32595a37..667d245c0 100644 --- a/api/api/xpack.security.put_role.js +++ b/api/api/xpack.security.put_role.js @@ -102,6 +102,8 @@ function buildXpackSecurityPutRole (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.security.put_role_mapping.js b/api/api/xpack.security.put_role_mapping.js index 7cbc0bbaa..8bd80ac3d 100644 --- a/api/api/xpack.security.put_role_mapping.js +++ b/api/api/xpack.security.put_role_mapping.js @@ -102,6 +102,8 @@ function buildXpackSecurityPutRoleMapping (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.security.put_user.js b/api/api/xpack.security.put_user.js index 68d7fd346..7ad4eaa36 100644 --- a/api/api/xpack.security.put_user.js +++ b/api/api/xpack.security.put_user.js @@ -102,6 +102,8 @@ function buildXpackSecurityPutUser (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.sql.clear_cursor.js b/api/api/xpack.sql.clear_cursor.js index ac4b22aea..a0c49cdc5 100644 --- a/api/api/xpack.sql.clear_cursor.js +++ b/api/api/xpack.sql.clear_cursor.js @@ -96,6 +96,8 @@ function buildXpackSqlClearCursor (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.sql.query.js b/api/api/xpack.sql.query.js index 2c320b45d..ade00c262 100644 --- a/api/api/xpack.sql.query.js +++ b/api/api/xpack.sql.query.js @@ -97,6 +97,8 @@ function buildXpackSqlQuery (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.sql.translate.js b/api/api/xpack.sql.translate.js index cc7276948..928d084c3 100644 --- a/api/api/xpack.sql.translate.js +++ b/api/api/xpack.sql.translate.js @@ -96,6 +96,8 @@ function buildXpackSqlTranslate (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.ssl.certificates.js b/api/api/xpack.ssl.certificates.js index 45fb11b67..a8eed9992 100644 --- a/api/api/xpack.ssl.certificates.js +++ b/api/api/xpack.ssl.certificates.js @@ -95,6 +95,8 @@ function buildXpackSslCertificates (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.usage.js b/api/api/xpack.usage.js index 50cd02732..1885f4d93 100644 --- a/api/api/xpack.usage.js +++ b/api/api/xpack.usage.js @@ -96,6 +96,8 @@ function buildXpackUsage (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.watcher.ack_watch.js b/api/api/xpack.watcher.ack_watch.js index 12b1dd7ad..637b5a58e 100644 --- a/api/api/xpack.watcher.ack_watch.js +++ b/api/api/xpack.watcher.ack_watch.js @@ -112,6 +112,8 @@ function buildXpackWatcherAckWatch (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.watcher.activate_watch.js b/api/api/xpack.watcher.activate_watch.js index b439bd3f5..6a2521167 100644 --- a/api/api/xpack.watcher.activate_watch.js +++ b/api/api/xpack.watcher.activate_watch.js @@ -101,6 +101,8 @@ function buildXpackWatcherActivateWatch (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.watcher.deactivate_watch.js b/api/api/xpack.watcher.deactivate_watch.js index 36ae81d6d..4f7e75a41 100644 --- a/api/api/xpack.watcher.deactivate_watch.js +++ b/api/api/xpack.watcher.deactivate_watch.js @@ -101,6 +101,8 @@ function buildXpackWatcherDeactivateWatch (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.watcher.delete_watch.js b/api/api/xpack.watcher.delete_watch.js index 5b15304b5..9185ba2e3 100644 --- a/api/api/xpack.watcher.delete_watch.js +++ b/api/api/xpack.watcher.delete_watch.js @@ -101,6 +101,8 @@ function buildXpackWatcherDeleteWatch (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.watcher.execute_watch.js b/api/api/xpack.watcher.execute_watch.js index 55248cfde..a4fba60d4 100644 --- a/api/api/xpack.watcher.execute_watch.js +++ b/api/api/xpack.watcher.execute_watch.js @@ -96,6 +96,8 @@ function buildXpackWatcherExecuteWatch (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.watcher.get_watch.js b/api/api/xpack.watcher.get_watch.js index 2eae16717..8a2b02d40 100644 --- a/api/api/xpack.watcher.get_watch.js +++ b/api/api/xpack.watcher.get_watch.js @@ -100,6 +100,8 @@ function buildXpackWatcherGetWatch (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.watcher.put_watch.js b/api/api/xpack.watcher.put_watch.js index ca3801af8..be0c6470d 100644 --- a/api/api/xpack.watcher.put_watch.js +++ b/api/api/xpack.watcher.put_watch.js @@ -108,6 +108,8 @@ function buildXpackWatcherPutWatch (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.watcher.start.js b/api/api/xpack.watcher.start.js index 8d92a4214..8e0e3a48b 100644 --- a/api/api/xpack.watcher.start.js +++ b/api/api/xpack.watcher.start.js @@ -95,6 +95,8 @@ function buildXpackWatcherStart (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.watcher.stats.js b/api/api/xpack.watcher.stats.js index 5564d7085..b0fa0b92b 100644 --- a/api/api/xpack.watcher.stats.js +++ b/api/api/xpack.watcher.stats.js @@ -103,6 +103,8 @@ function buildXpackWatcherStats (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/api/api/xpack.watcher.stop.js b/api/api/xpack.watcher.stop.js index b64b845b1..c3d3c6071 100644 --- a/api/api/xpack.watcher.stop.js +++ b/api/api/xpack.watcher.stop.js @@ -95,6 +95,8 @@ function buildXpackWatcherStop (opts) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/docs/configuration.asciidoc b/docs/configuration.asciidoc index 45f186fd4..3d52ad5a5 100644 --- a/docs/configuration.asciidoc +++ b/docs/configuration.asciidoc @@ -133,6 +133,23 @@ function nodeSelector (connections) { return connections[index] } ---- + +|`generateRequestId` +a|`function` - function to generate the request id for every request, it takes two parameters, the request parameters and options. + +By default it generates an incremental integer for every request. + +_Custom function example:_ +[source,js] +---- +function generateRequestId (params, options) { + // your id generation logic + // must be syncronous + return 'id' +} +---- + +|`name` +|`string` - The name to identify the client instance in the events. + +_Default:_ `elasticsearch-js` |=== === Advanced configuration @@ -229,4 +246,4 @@ class MySerializer extends Serializer { const client = new Client({ Serializer: MySerializer }) ----- \ No newline at end of file +---- diff --git a/docs/index.asciidoc b/docs/index.asciidoc index a05c2de20..fc44d4502 100644 --- a/docs/index.asciidoc +++ b/docs/index.asciidoc @@ -9,6 +9,7 @@ include::configuration.asciidoc[] include::reference.asciidoc[] include::breaking-changes.asciidoc[] include::authentication.asciidoc[] +include::observability.asciidoc[] include::child.asciidoc[] include::extend.asciidoc[] include::typescript.asciidoc[] diff --git a/docs/observability.asciidoc b/docs/observability.asciidoc new file mode 100644 index 000000000..c72c340e1 --- /dev/null +++ b/docs/observability.asciidoc @@ -0,0 +1,250 @@ +[[observability]] +== Observability + +The client does not provide a default logger, but instead it offers an event emitter interfaces to hook into internal events, such as `request` and `response`. + +Correlating those events can be quite hard, especially if your applications have a large codebase with many events happening at the same time. + +To help you with this, the client offers you a correlation id system and other features, let's see them in action. + +=== Events +The client is an event emitter, this means that you can listen for its event and add additional logic to your code, without need to change the client internals or your normal usage. + +You can find the events names by access the `events` key of the client. + +[source,js] +---- +const { events } = require('@elastic/elasticsearch') +console.log(events) +---- + +The event emitter functionality can be useful if you want to log every request, response and error that is happening during the use of the client. + +[source,js] +---- +const logger = require('my-logger')() +const { Client } = require('@elastic/elasticsearch') +const client = new Client({ node: 'http://localhost:9200' }) + +client.on('response', (err, result) => { + if (err) { + logger.error(err) + } else { + logger.info(result) + } +}) +---- + +The client emits the following events: +[cols=2*] +|=== +|`request` +a|Emitted before sending the actual request to Elasticsearch _(emitted multiple times in case of retries)_. +[source,js] +---- +client.on('request', (err, result) => { + console.log(err, result) +}) +---- + +|`response` +a|Emitted once Elasticsearch response has been received and parsed. +[source,js] +---- +client.on('response', (err, result) => { + console.log(err, result) +}) +---- + +|`sniff` +a|Emitted when the client ends a sniffing request. +[source,js] +---- +client.on('sniff', (err, result) => { + console.log(err, result) +}) +---- + +|`resurrect` +a|Emitted if the client is able to resurrect a dead node. +[source,js] +---- +client.on('resurrect', (err, result) => { + console.log(err, result) +}) +---- + +|=== + +The values of `result` in `request`, `response` and `sniff` will be: +[source,ts] +---- +body: any; +statusCode: number | null; +headers: anyObject | null; +warnings: string[] | null; +meta: { + context: any; + name: string; + request: { + params: TransportRequestParams; + options: TransportRequestOptions; + id: any; + }; + connection: Connection; + attempts: number; + aborted: boolean; + sniff?: { + hosts: any[]; + reason: string; + }; +}; +---- + +While the `result` value in `resurrect` will be: +[source,ts] +---- +strategy: string; +isAlive: boolean; +connection: Connection; +name: string; +request: { + id: any; +}; +---- + +=== Correlation id +Correlating events can be quite hard, especially if there are many events at the same time. The client offers you an automatic (and configurable) system to help you handle this problem. +[source,js] +---- +const { Client } = require('@elastic/elasticsearch') +const client = new Client({ node: 'http://localhost:9200' }) + +client.on('request', (err, result) => { + const { id } = result.meta.request + if (err) { + console.log({ error: err, reqId: id }) + } +}) + +client.on('response', (err, result) => { + const { id } = result.meta.request + if (err) { + console.log({ error: err, reqId: id }) + } +}) + +client.search({ + index: 'my-index', + body: { foo: 'bar' } +}, (err, result) => { + if (err) console.log(err) +}) +---- + +By default the id is an incremental integer, but you can easily configure that with the `generateRequestId` option: +[source,js] +---- +const { Client } = require('@elastic/elasticsearch') +const client = new Client({ + node: 'http://localhost:9200', + // it takes two parameters, the request parameters and options + generateRequestId: function (params, options) { + // your id generation logic + // must be syncronous + return 'id' + } +}) +---- + +You can also specify a custom id per request: +[source,js] +---- +client.search({ + index: 'my-index', + body: { foo: 'bar' } +}, { + id: 'custom-id' +}, (err, result) => { + if (err) console.log(err) +}) +---- + +=== Context object +Sometimes, you might need to make some custom data available in your events, you can do that via the `context` option of a request: +[source,js] +---- +const { Client } = require('@elastic/elasticsearch') +const client = new Client({ node: 'http://localhost:9200' }) + +client.on('request', (err, result) => { + const { id } = result.meta.request + const { context } = result.meta + if (err) { + console.log({ error: err, reqId: id, context }) + } +}) + +client.on('response', (err, result) => { + const { id } = result.meta.request + const { winter } = result.meta.context + if (err) { + console.log({ error: err, reqId: id, winter }) + } +}) + +client.search({ + index: 'my-index', + body: { foo: 'bar' } +}, { + context: { winter: 'is coming' } +}, (err, result) => { + if (err) console.log(err) +}) +---- + +=== Client name +If you are using multiple instances of the client or if you are using multiple child clients _(which is the recommended way to have multiple instances of the client)_, you might need to recognize which client you are using, the `name` options will help you in this regard: +[source,js] +---- +const { Client } = require('@elastic/elasticsearch') +const client = new Client({ + node: 'http://localhost:9200', + name: 'parent-client' // default to 'elasticsearch-js' +}) + +const child = client.child({ + name: 'child-client' +}) + +console.log(client.name, child.name) + +client.on('request', (err, result) => { + const { id } = result.meta.request + const { name } = result.meta + if (err) { + console.log({ error: err, reqId: id, name }) + } +}) + +client.on('response', (err, result) => { + const { id } = result.meta.request + const { name } = result.meta + if (err) { + console.log({ error: err, reqId: id, name }) + } +}) + +client.search({ + index: 'my-index', + body: { foo: 'bar' } +}, (err, result) => { + if (err) console.log(err) +}) + +child.search({ + index: 'my-index', + body: { foo: 'bar' } +}, (err, result) => { + if (err) console.log(err) +}) +---- diff --git a/docs/usage.asciidoc b/docs/usage.asciidoc index ed81ef2fc..bc1eeb60f 100644 --- a/docs/usage.asciidoc +++ b/docs/usage.asciidoc @@ -164,6 +164,14 @@ _Default:_ `null` |`querystring` |`object` - Custom querystring for the request. + _Default:_ `null` + +|`id` +|`any` - Custom request id. _(overrides the top level request id generator)_ + +_Default:_ `null` + +|`context` +|`any` - Custom object per request. _(you can use it to pass some data to the clients events)_ + +_Default:_ `null` |=== === Error handling @@ -203,103 +211,3 @@ Following you can find the errors exported by the client. |`ResponseError` |Generated when in case of a `4xx` or `5xx` response. |=== - -=== Events -The client is an event emitter, this means that you can listen for its event and add additional logic to your code, without need to change the client internals or your normal usage. + -You can find the events names by access the `events` key of the client. - -[source,js] ----- -const { events } = require('@elastic/elasticsearch') -console.log(events) ----- - -The event emitter functionality can be useful if you want to log every request, response and error that is happening during the use of the client. - -[source,js] ----- -const logger = require('my-logger')() -const { Client } = require('@elastic/elasticsearch') -const client = new Client({ node: 'http://localhost:9200' }) - -client.on('response', (err, req) => { - if (err) { - logger.error(err) - } else { - logger.info(req) - } -}) ----- - -The client emits the following events: -[cols=2*] -|=== -|`request` -a|Emitted before to send the actual request to Elasticsearch. -[source,js] ----- -client.on('request', (err, req) => { - console.log(err, req) -}) ----- - -|`response` -a|Emitted before to send the actual request to Elasticsearch. -[source,js] ----- -client.on('response', (err, req) => { - console.log(err, req) -}) ----- - -|`sniff` -a|Emitted before to send the actual request to Elasticsearch. -[source,js] ----- -client.on('sniff', (err, req) => { - console.log(err, req) -}) ----- - -|`resurrect` -a|Emitted before to send the actual request to Elasticsearch. -[source,js] ----- -client.on('resurrect', (err, req) => { - console.log(err, req) -}) ----- - -|=== - -The values of `req` in `request`, `response` and `sniff` will be: -[source,ts] ----- - body: any; - statusCode: number | null; - headers: anyObject | null; - warnings: string[] | null; - meta: { - request: { - params: TransportRequestParams; - options: TransportRequestOptions; - }; - connection: Connection; - attempts: number; - aborted: boolean; - sniff?: { - hosts: any[]; - reason: string; - }; - }; ----- - -While the `req` value in `resurrect` will be: -[source,ts] ----- -export interface ResurrectEvent { - strategy: string; - isAlive: boolean; - connection: Connection; -} ----- diff --git a/index.d.ts b/index.d.ts index b0affc5f8..78cf681b8 100644 --- a/index.d.ts +++ b/index.d.ts @@ -28,6 +28,7 @@ import Transport, { TransportRequestOptions, nodeFilterFn, nodeSelectorFn, + generateRequestIdFn, TransportRequestCallback } from './lib/Transport'; import Connection, { AgentOptions, agentFn } from './lib/Connection'; @@ -93,6 +94,8 @@ interface ClientOptions { nodeFilter?: nodeFilterFn; nodeSelector?: nodeSelectorFn | string; headers?: anyObject; + generateRequestId?: generateRequestIdFn; + name?: string; cloud?: { id: string; username: string; diff --git a/index.js b/index.js index 27a77a9ac..7f5b3c1c3 100644 --- a/index.js +++ b/index.js @@ -80,12 +80,15 @@ class Client extends EventEmitter { agent: null, headers: {}, nodeFilter: null, - nodeSelector: 'round-robin' + nodeSelector: 'round-robin', + generateRequestId: null, + name: 'elasticsearch-js' }, opts) this[kInitialOptions] = options this[kExtensions] = [] + this.name = options.name this.serializer = new options.Serializer() this.connectionPool = new options.ConnectionPool({ pingTimeout: options.pingTimeout, @@ -118,7 +121,9 @@ class Client extends EventEmitter { compression: options.compression, headers: options.headers, nodeFilter: options.nodeFilter, - nodeSelector: options.nodeSelector + nodeSelector: options.nodeSelector, + generateRequestId: options.generateRequestId, + name: options.name }) const apis = buildApi({ diff --git a/lib/ConnectionPool.d.ts b/lib/ConnectionPool.d.ts index 9acbb7d01..5b68d7d36 100644 --- a/lib/ConnectionPool.d.ts +++ b/lib/ConnectionPool.d.ts @@ -36,10 +36,20 @@ export interface getConnectionOptions { selector?: nodeSelectorFn; } +export interface resurrectOptions { + now?: number; + requestId: string; + name: string; +} + export interface ResurrectEvent { strategy: string; isAlive: boolean; connection: Connection; + name: string; + request: { + id: any; + }; } export default class ConnectionPool { @@ -79,10 +89,10 @@ export default class ConnectionPool { * If enabled, tries to resurrect a connection with the given * resurrect strategy ('ping', 'optimistic', 'none'). * - * @param {number} epoch + * @param {object} { now, requestId, name } * @param {function} callback (isAlive, connection) */ - resurrect(now?: number, callback?: (isAlive: boolean | null, connection: Connection | null) => void): void; + resurrect(opts: resurrectOptions, callback?: (isAlive: boolean | null, connection: Connection | null) => void): void; /** * Returns an alive connection if present, * otherwise returns null. diff --git a/lib/ConnectionPool.js b/lib/ConnectionPool.js index 6a164d4ae..3f12a64a4 100644 --- a/lib/ConnectionPool.js +++ b/lib/ConnectionPool.js @@ -108,10 +108,10 @@ class ConnectionPool { * If enabled, tries to resurrect a connection with the given * resurrect strategy ('ping', 'optimistic', 'none'). * - * @param {number} epoch + * @param {object} { now, requestId } * @param {function} callback (isAlive, connection) */ - resurrect (now = Date.now(), callback = noop) { + resurrect (opts, callback = noop) { if (this.resurrectStrategy === 0 || this.dead.length === 0) { debug('Nothing to resurrect') callback(null, null) @@ -121,7 +121,7 @@ class ConnectionPool { // the dead list is sorted in ascending order based on the timeout // so the first element will always be the one with the smaller timeout const connection = this.connections.get(this.dead[0]) - if (now < connection.resurrectTimeout) { + if ((opts.now || Date.now()) < connection.resurrectTimeout) { debug('Nothing to resurrect') callback(null, null) return @@ -147,7 +147,13 @@ class ConnectionPool { debug(`Resurrect: connection '${id}' is now alive`) this.markAlive(connection) } - this.emit('resurrect', null, { strategy: 'ping', isAlive, connection }) + this.emit('resurrect', null, { + strategy: 'ping', + name: opts.name, + request: { id: opts.requestId }, + isAlive, + connection + }) callback(isAlive, connection) }) // optimistic strategy @@ -155,7 +161,13 @@ class ConnectionPool { debug(`Resurrect: optimistic resurrection for connection '${id}'`) this.dead.splice(this.dead.indexOf(id), 1) connection.status = Connection.statuses.ALIVE - this.emit('resurrect', null, { strategy: 'optimistic', isAlive: true, connection }) + this.emit('resurrect', null, { + strategy: 'optimistic', + name: opts.name, + request: { id: opts.requestId }, + isAlive: true, + connection + }) // eslint-disable-next-line standard/no-callback-literal callback(true, connection) } diff --git a/lib/Transport.d.ts b/lib/Transport.d.ts index 89ec11573..83981cf32 100644 --- a/lib/Transport.d.ts +++ b/lib/Transport.d.ts @@ -29,6 +29,10 @@ export interface nodeFilterFn { (connection: Connection): boolean; } +export interface generateRequestIdFn { + (params: TransportRequestParams, options: TransportRequestOptions): any; +} + declare type noopFn = (...args: any[]) => void; declare type emitFn = (event: string | symbol, ...args: any[]) => boolean; @@ -47,17 +51,22 @@ interface TransportOptions { nodeFilter?: nodeFilterFn; nodeSelector?: string | nodeSelectorFn; headers?: anyObject; + generateRequestId?: generateRequestIdFn; + name: string; } -export interface RequestEvent { +export interface RequestEvent { body: T; statusCode: number | null; headers: anyObject | null; warnings: string[] | null; meta: { + context: C; + name: string; request: { params: TransportRequestParams; options: TransportRequestOptions; + id: any; }; connection: Connection; attempts: number; @@ -71,7 +80,7 @@ export interface RequestEvent { // ApiResponse and RequestEvent are the same thing // we are doing this for have more clear names -export interface ApiResponse extends RequestEvent {} +export interface ApiResponse extends RequestEvent {} declare type anyObject = { [key: string]: any; @@ -93,6 +102,8 @@ export interface TransportRequestOptions { headers?: anyObject; querystring?: anyObject; compression?: string; + id?: any; + context?: any; warnings?: [string]; } @@ -100,6 +111,15 @@ export interface TransportRequestCallback { abort: () => void; } +export interface TransportGetConnectionOptions { + requestId: string; +} + +export interface TransportSniffOptions { + reason: string; + requestId?: string; +} + export default class Transport { static sniffReasons: { SNIFF_ON_START: string; @@ -123,8 +143,8 @@ export default class Transport { constructor(opts: TransportOptions); request(params: TransportRequestParams, options?: TransportRequestOptions): Promise; request(params: TransportRequestParams, options?: TransportRequestOptions, callback?: (err: Error | null, result: ApiResponse) => void): TransportRequestCallback; - getConnection(): Connection | null; - sniff(callback?: (...args: any[]) => void): void; + getConnection(opts: TransportGetConnectionOptions): Connection | null; + sniff(opts?: TransportSniffOptions, callback?: (...args: any[]) => void): void; } export {}; diff --git a/lib/Transport.js b/lib/Transport.js index f9ff4f092..3ea692b3a 100644 --- a/lib/Transport.js +++ b/lib/Transport.js @@ -50,6 +50,8 @@ class Transport { this.sniffInterval = opts.sniffInterval this.sniffOnConnectionFault = opts.sniffOnConnectionFault this.sniffEndpoint = opts.sniffEndpoint + this.generateRequestId = opts.generateRequestId || generateRequestId() + this.name = opts.name this.nodeFilter = opts.nodeFilter || defaultNodeFilter if (typeof opts.nodeSelector === 'function') { @@ -67,7 +69,7 @@ class Transport { this._isSniffing = false if (opts.sniffOnStart === true) { - this.sniff(Transport.sniffReasons.SNIFF_ON_START) + this.sniff({ reason: Transport.sniffReasons.SNIFF_ON_START }) } } @@ -89,10 +91,13 @@ class Transport { callback = once(callback) const meta = { + context: options.context || null, request: { params: null, - options: null + options: null, + id: options.id || this.generateRequestId(params, options) }, + name: this.name, connection: null, attempts: 0, aborted: false @@ -112,7 +117,7 @@ class Transport { const makeRequest = () => { if (meta.aborted === true) return - meta.connection = this.getConnection() + meta.connection = this.getConnection({ requestId: meta.request.id }) if (meta.connection === null) { return callback(new NoLivingConnectionsError('There are not living connections'), result) } @@ -192,7 +197,10 @@ class Transport { this.connectionPool.markDead(meta.connection) if (this.sniffOnConnectionFault === true) { - this.sniff(Transport.sniffReasons.SNIFF_ON_CONNECTION_FAULT) + this.sniff({ + reason: Transport.sniffReasons.SNIFF_ON_CONNECTION_FAULT, + requestId: meta.request.id + }) } // retry logic @@ -312,34 +320,36 @@ class Transport { } } - getConnection () { + getConnection (opts) { const now = Date.now() if (this._sniffEnabled === true && now > this._nextSniff) { - this.sniff(Transport.sniffReasons.SNIFF_INTERVAL) + this.sniff({ reason: Transport.sniffReasons.SNIFF_INTERVAL, requestId: opts.requestId }) } - this.connectionPool.resurrect(now) + this.connectionPool.resurrect({ now, requestId: opts.requestId, name: this.name }) return this.connectionPool.getConnection({ filter: this.nodeFilter, selector: this.nodeSelector }) } - sniff (reason = Transport.sniffReasons.DEFAULT, callback = noop) { + sniff (opts, callback = noop) { if (this._isSniffing === true) return this._isSniffing = true debug('Started sniffing request') - if (typeof reason === 'function') { - callback = reason - reason = Transport.sniffReasons.DEFAULT + if (typeof opts === 'function') { + callback = opts + opts = { reason: Transport.sniffReasons.DEFAULT } } + const { reason } = opts + const request = { method: 'GET', path: this.sniffEndpoint } - this.request(request, (err, result) => { + this.request(request, { id: opts.requestId }, (err, result) => { this._isSniffing = false if (this._sniffEnabled === true) { this._nextSniff = Date.now() + this.sniffInterval @@ -414,5 +424,12 @@ function randomSelector (connections) { return connections[index] } +function generateRequestId () { + var maxInt = 2147483647 + var nextReqId = 0 + return function genReqId (params, options) { + return (nextReqId = (nextReqId + 1) & maxInt) + } +} module.exports = Transport -module.exports.internals = { defaultNodeFilter, roundRobinSelector, randomSelector } +module.exports.internals = { defaultNodeFilter, roundRobinSelector, randomSelector, generateRequestId } diff --git a/scripts/utils/generateApis.js b/scripts/utils/generateApis.js index 33fd4eded..9e1bfc046 100644 --- a/scripts/utils/generateApis.js +++ b/scripts/utils/generateApis.js @@ -151,6 +151,8 @@ function generate (spec, common) { headers: options.headers || null, querystring: options.querystring || null, compression: options.compression || false, + id: options.id || null, + context: options.context || null, warnings } diff --git a/test/behavior/observability.test.js b/test/behavior/observability.test.js new file mode 100644 index 000000000..65c16ca6d --- /dev/null +++ b/test/behavior/observability.test.js @@ -0,0 +1,334 @@ +'use strict' + +const { test } = require('tap') +const lolex = require('lolex') +const { Client, Transport } = require('../../index') +const { + connection: { MockConnection, MockConnectionSniff } +} = require('../utils') +const noop = () => {} + +test('Request id', t => { + t.test('Default generateRequestId', t => { + const { generateRequestId } = Transport.internals + t.type(generateRequestId, 'function') + + const genReqId = generateRequestId() + t.type(genReqId, 'function') + + for (var i = 1; i <= 10; i++) { + t.strictEqual(genReqId(), i) + } + + t.end() + }) + + t.test('Custom generateRequestId', t => { + t.plan(7) + + const options = { context: { winter: 'is coming' } } + + const client = new Client({ + node: 'http://localhost:9200', + Connection: MockConnection, + generateRequestId: function (requestParams, requestOptions) { + t.match(requestParams, { method: 'GET', path: '/' }) + t.match(requestOptions, options) + return 'custom-id' + } + }) + + client.on('request', (err, { meta }) => { + t.error(err) + t.strictEqual(meta.request.id, 'custom-id') + }) + + client.on('response', (err, { meta }) => { + t.error(err) + t.strictEqual(meta.request.id, 'custom-id') + }) + + client.info({}, options, t.error) + }) + + t.test('Custom request id in method options', t => { + t.plan(5) + + const client = new Client({ + node: 'http://localhost:9200', + Connection: MockConnection + }) + + client.on('request', (err, { meta }) => { + t.error(err) + t.strictEqual(meta.request.id, 'custom-id') + }) + + client.on('response', (err, { meta }) => { + t.error(err) + t.strictEqual(meta.request.id, 'custom-id') + }) + + client.info({}, { id: 'custom-id' }, t.error) + }) + + t.test('Sniff and correlation id', t => { + t.test('sniffOnStart - should autogenerate the id', t => { + t.plan(2) + + const client = new Client({ + node: 'http://localhost:9200', + Connection: MockConnectionSniff, + sniffOnStart: true + }) + + client.on('sniff', (err, { meta }) => { + t.error(err) + t.strictEqual(meta.request.id, 1) + }) + }) + + t.test('sniffOnConnectionFault - should use the request id', t => { + t.plan(5) + + const client = new Client({ + nodes: ['http://localhost:9200', 'http://localhost:9201'], + Connection: MockConnectionSniff, + sniffOnConnectionFault: true, + maxRetries: 0 + }) + + client.on('request', (e, { meta }) => { + t.strictEqual(meta.request.id, 'custom') + }) + + client.on('response', (e, { meta }) => { + t.strictEqual(meta.request.id, 'custom') + }) + + client.on('sniff', (e, { meta }) => { + t.strictEqual(meta.request.id, 'custom') + }) + + client.transport.request({ + path: '/500', + method: 'GET' + }, { + id: 'custom', + headers: { timeout: 'true' } + }, noop) + }) + + t.end() + }) + + t.test('Resurrect should use the same request id of the request that starts it', t => { + t.plan(2) + + const clock = lolex.install({ toFake: ['Date'] }) + const client = new Client({ + node: 'http://localhost:9200', + Connection: MockConnection, + sniffOnConnectionFault: true, + maxRetries: 0 + }) + + const conn = client.connectionPool.getConnection() + client.connectionPool.markDead(conn) + clock.tick(1000 * 61) + + client.on('resurrect', (err, meta) => { + t.error(err) + t.strictEqual(meta.request.id, 'custom') + clock.uninstall() + }) + + client.info({}, { id: 'custom' }, noop) + }) + + t.end() +}) + +test('Request context', t => { + t.test('no value', t => { + t.plan(5) + + const client = new Client({ + node: 'http://localhost:9200', + Connection: MockConnection + }) + + client.on('request', (err, { meta }) => { + t.error(err) + t.strictEqual(meta.context, null) + }) + + client.on('response', (err, { meta }) => { + t.error(err) + t.strictEqual(meta.context, null) + }) + + client.info(t.error) + }) + + t.test('custom value', t => { + t.plan(5) + + const client = new Client({ + node: 'http://localhost:9200', + Connection: MockConnection + }) + + client.on('request', (err, { meta }) => { + t.error(err) + t.deepEqual(meta.context, { winter: 'is coming' }) + }) + + client.on('response', (err, { meta }) => { + t.error(err) + t.deepEqual(meta.context, { winter: 'is coming' }) + }) + + client.info({}, { context: { winter: 'is coming' } }, t.error) + }) + + t.end() +}) + +test('Client name', t => { + t.test('Property of the client instance', t => { + const client = new Client({ + node: 'http://localhost:9200', + name: 'cluster' + }) + t.strictEqual(client.name, 'cluster') + t.end() + }) + + t.test('Is present in the event metadata', t => { + t.plan(6) + const client = new Client({ + node: 'http://localhost:9200', + Connection: MockConnection, + name: 'cluster' + }) + + client.on('request', (err, { meta }) => { + t.error(err) + t.strictEqual(meta.name, 'cluster') + }) + + client.on('response', (err, { meta }) => { + t.error(err) + t.strictEqual(meta.name, 'cluster') + }) + + client.info((err, { meta }) => { + t.error(err) + t.strictEqual(meta.name, 'cluster') + }) + }) + + t.test('Sniff and client name', t => { + t.test('sniffOnStart', t => { + t.plan(2) + + const client = new Client({ + node: 'http://localhost:9200', + Connection: MockConnectionSniff, + sniffOnStart: true + }) + + client.on('sniff', (err, { meta }) => { + t.error(err) + t.strictEqual(meta.name, 'elasticsearch-js') + }) + }) + + t.test('sniffOnConnectionFault', t => { + t.plan(5) + + const client = new Client({ + nodes: ['http://localhost:9200', 'http://localhost:9201'], + Connection: MockConnectionSniff, + sniffOnConnectionFault: true, + maxRetries: 0 + }) + + client.on('request', (e, { meta }) => { + t.strictEqual(meta.name, 'elasticsearch-js') + }) + + client.on('response', (e, { meta }) => { + t.strictEqual(meta.name, 'elasticsearch-js') + }) + + client.on('sniff', (e, { meta }) => { + t.strictEqual(meta.name, 'elasticsearch-js') + }) + + client.transport.request({ + path: '/500', + method: 'GET' + }, { + headers: { timeout: 'true' } + }, noop) + }) + + t.end() + }) + + t.test('Resurrect should have the client name configured', t => { + t.plan(2) + + const clock = lolex.install({ toFake: ['Date'] }) + const client = new Client({ + node: 'http://localhost:9200', + Connection: MockConnection, + sniffOnConnectionFault: true, + maxRetries: 0 + }) + + const conn = client.connectionPool.getConnection() + client.connectionPool.markDead(conn) + clock.tick(1000 * 61) + + client.on('resurrect', (err, meta) => { + t.error(err) + t.strictEqual(meta.name, 'elasticsearch-js') + clock.uninstall() + }) + + client.info({}, { id: 'custom' }, noop) + }) + + t.test('Resurrect should have the client name configured (child client)', t => { + t.plan(2) + + const clock = lolex.install({ toFake: ['Date'] }) + const client = new Client({ + node: 'http://localhost:9200', + Connection: MockConnection, + sniffOnConnectionFault: true, + maxRetries: 0 + }) + + const child = client.child({ + name: 'child-client' + }) + + const conn = client.connectionPool.getConnection() + client.connectionPool.markDead(conn) + clock.tick(1000 * 61) + + client.on('resurrect', (err, meta) => { + t.error(err) + t.strictEqual(meta.name, 'child-client') + clock.uninstall() + }) + + child.info({}, { id: 'custom' }, noop) + }) + + t.end() +}) diff --git a/test/behavior/resurrect.test.js b/test/behavior/resurrect.test.js index 68aba8353..8c4d38ba2 100644 --- a/test/behavior/resurrect.test.js +++ b/test/behavior/resurrect.test.js @@ -37,7 +37,7 @@ const { Client, events } = require('../../index') */ test('Should execute the recurrect API with the ping strategy', t => { - t.plan(6) + t.plan(8) const clock = lolex.install({ toFake: ['Date'] }) const q = workq() @@ -59,6 +59,8 @@ test('Should execute the recurrect API with the ping strategy', t => { t.strictEqual(meta.strategy, 'ping') t.false(meta.isAlive) t.strictEqual(meta.connection.id, 'node0') + t.strictEqual(meta.name, 'elasticsearch-js') + t.deepEqual(meta.request, { id: 2 }) }) q.add((q, done) => { @@ -89,7 +91,7 @@ test('Should execute the recurrect API with the ping strategy', t => { }) test('Resurrect a node and handle 502/3/4 status code', t => { - t.plan(11) + t.plan(15) const clock = lolex.install({ toFake: ['Date'] }) const q = workq() @@ -114,10 +116,13 @@ test('Resurrect a node and handle 502/3/4 status code', t => { maxRetries: 0 }) + var idCount = 2 client.on(events.RESURRECT, (err, meta) => { t.error(err) t.strictEqual(meta.strategy, 'ping') t.strictEqual(meta.connection.id, 'node0') + t.strictEqual(meta.name, 'elasticsearch-js') + t.deepEqual(meta.request, { id: idCount++ }) if (count < 3) { t.false(meta.isAlive) } else { @@ -156,7 +161,7 @@ test('Resurrect a node and handle 502/3/4 status code', t => { }) test('Should execute the recurrect API with the optimistic strategy', t => { - t.plan(6) + t.plan(8) const clock = lolex.install({ toFake: ['Date'] }) const q = workq() @@ -179,6 +184,8 @@ test('Should execute the recurrect API with the optimistic strategy', t => { t.strictEqual(meta.strategy, 'optimistic') t.true(meta.isAlive) t.strictEqual(meta.connection.id, 'node0') + t.strictEqual(meta.name, 'elasticsearch-js') + t.deepEqual(meta.request, { id: 2 }) }) q.add((q, done) => { diff --git a/test/unit/child.test.js b/test/unit/child.test.js index 2e8ea1554..110a7e866 100644 --- a/test/unit/child.test.js +++ b/test/unit/child.test.js @@ -211,3 +211,72 @@ test('Should share the event emitter', t => { t.end() }) + +test('Should create a child client (generateRequestId check)', t => { + t.plan(6) + + function generateRequestId1 () { + var id = 0 + return () => `trace-1-${id++}` + } + + function generateRequestId2 () { + var id = 0 + return () => `trace-2-${id++}` + } + + const client = new Client({ + node: 'http://localhost:9200', + Connection: MockConnection, + generateRequestId: generateRequestId1() + }) + const child = client.child({ + Connection: MockConnection, + generateRequestId: generateRequestId2() + }) + + var count = 0 + client.on('request', (err, { meta }) => { + t.error(err) + t.strictEqual( + meta.request.id, + count++ === 0 ? 'trace-1-0' : 'trace-2-0' + ) + }) + + client.info(err => { + t.error(err) + child.info(t.error) + }) +}) + +test('Should create a child client (name check)', t => { + t.plan(8) + + const client = new Client({ + node: 'http://localhost:9200', + Connection: MockConnection, + name: 'parent' + }) + const child = client.child({ + Connection: MockConnection, + name: 'child' + }) + + t.strictEqual(client.name, 'parent') + t.strictEqual(child.name, 'child') + + var count = 0 + client.on('request', (err, { meta }) => { + t.error(err) + t.strictEqual( + meta.name, + count++ === 0 ? 'parent' : 'child' + ) + }) + + client.info(err => { + t.error(err) + child.info(t.error) + }) +}) diff --git a/test/unit/connection-pool.test.js b/test/unit/connection-pool.test.js index b288a6a43..fc9495766 100644 --- a/test/unit/connection-pool.test.js +++ b/test/unit/connection-pool.test.js @@ -118,7 +118,12 @@ test('API', t => { const href = 'http://localhost:9200/' var connection = pool.addConnection(href) pool.markDead(connection) - pool.resurrect(Date.now() + 1000 * 60 * 3, (isAlive, connection) => { + const opts = { + now: Date.now() + 1000 * 60 * 3, + requestId: 1, + name: 'elasticsearch-js' + } + pool.resurrect(opts, (isAlive, connection) => { t.true(isAlive) connection = pool.connections.get(connection.id) t.strictEqual(connection.deadCount, 0) @@ -139,7 +144,12 @@ test('API', t => { const href = 'http://localhost:9200/' var connection = pool.addConnection(href) pool.markDead(connection) - pool.resurrect(Date.now() + 1000 * 60 * 3, (isAlive, connection) => { + const opts = { + now: Date.now() + 1000 * 60 * 3, + requestId: 1, + name: 'elasticsearch-js' + } + pool.resurrect(opts, (isAlive, connection) => { t.false(isAlive) connection = pool.connections.get(connection.id) t.strictEqual(connection.deadCount, 2) @@ -162,7 +172,12 @@ test('API', t => { const href = 'http://localhost:9200/' var connection = pool.addConnection(href) pool.markDead(connection) - pool.resurrect(Date.now() + 1000 * 60 * 3, (isAlive, connection) => { + const opts = { + now: Date.now() + 1000 * 60 * 3, + requestId: 1, + name: 'elasticsearch-js' + } + pool.resurrect(opts, (isAlive, connection) => { t.true(isAlive) connection = pool.connections.get(connection.id) t.strictEqual(connection.deadCount, 1) @@ -182,7 +197,12 @@ test('API', t => { const href = 'http://localhost:9200/' var connection = pool.addConnection(href) pool.markDead(connection) - pool.resurrect(Date.now() + 1000 * 60 * 3, (isAlive, connection) => { + const opts = { + now: Date.now() + 1000 * 60 * 3, + requestId: 1, + name: 'elasticsearch-js' + } + pool.resurrect(opts, (isAlive, connection) => { t.ok(isAlive === null) t.ok(connection === null) connection = pool.connections.get(href) diff --git a/test/unit/events.test.js b/test/unit/events.test.js index 432194a29..1312de932 100644 --- a/test/unit/events.test.js +++ b/test/unit/events.test.js @@ -40,6 +40,8 @@ test('Should emit a request event when a request is performed', t => { headers: null, warnings: null, meta: { + context: null, + name: 'elasticsearch-js', request: { params: { method: 'GET', @@ -59,7 +61,8 @@ test('Should emit a request event when a request is performed', t => { headers: null, compression: false, warnings: null - } + }, + id: 1 }, connection: { id: 'http://localhost:9200' @@ -98,6 +101,8 @@ test('Should emit a response event in case of a successful response', t => { }, warnings: null, meta: { + context: null, + name: 'elasticsearch-js', request: { params: { method: 'GET', @@ -117,7 +122,8 @@ test('Should emit a response event in case of a successful response', t => { headers: null, compression: false, warnings: null - } + }, + id: 1 }, connection: { id: 'http://localhost:9200' @@ -154,6 +160,8 @@ test('Should emit a response event with the error set', t => { headers: null, warnings: null, meta: { + context: null, + name: 'elasticsearch-js', request: { params: { method: 'GET', @@ -173,7 +181,8 @@ test('Should emit a response event with the error set', t => { headers: null, compression: false, warnings: null - } + }, + id: 1 }, connection: { id: 'http://localhost:9200' diff --git a/test/unit/transport.test.js b/test/unit/transport.test.js index c7c789950..b9e079dc3 100644 --- a/test/unit/transport.test.js +++ b/test/unit/transport.test.js @@ -704,11 +704,13 @@ test('Should call markAlive with a successful response', t => { }) test('Should call resurrect on every request', t => { - t.plan(3) + t.plan(5) class CustomConnectionPool extends ConnectionPool { - resurrect (now) { + resurrect ({ now, requestId, name }) { t.type(now, 'number') + t.type(requestId, 'number') + t.type(name, 'string') } } @@ -725,7 +727,8 @@ test('Should call resurrect on every request', t => { maxRetries: 3, requestTimeout: 30000, sniffInterval: false, - sniffOnStart: false + sniffOnStart: false, + name: 'elasticsearch-js' }) transport.request({ @@ -2107,3 +2110,30 @@ test('Should accept custom querystring in the optons object', t => { t.end() }) + +test('Should pass request params and options to generateRequestId', t => { + t.plan(3) + + const pool = new ConnectionPool({ Connection: MockConnection }) + pool.addConnection('http://localhost:9200') + + const params = { method: 'GET', path: '/hello' } + const options = { context: { winter: 'is coming' } } + + const transport = new Transport({ + emit: () => {}, + connectionPool: pool, + serializer: new Serializer(), + maxRetries: 3, + requestTimeout: 30000, + sniffInterval: false, + sniffOnStart: false, + generateRequestId: function (requestParams, requestOptions) { + t.deepEqual(requestParams, params) + t.deepEqual(requestOptions, options) + return 'id' + } + }) + + transport.request(params, options, t.error) +}) diff --git a/test/utils/MockConnection.js b/test/utils/MockConnection.js index 938bfd47a..7f16e27d4 100644 --- a/test/utils/MockConnection.js +++ b/test/utils/MockConnection.js @@ -73,6 +73,47 @@ class MockConnectionError extends Connection { } } +class MockConnectionSniff extends Connection { + request (params, callback) { + var aborted = false + const sniffResult = { + nodes: { + 'node-1': { + http: { + publish_address: 'localhost:9200' + }, + roles: ['master', 'data', 'ingest'] + }, + 'node-2': { + http: { + publish_address: 'localhost:9201' + }, + roles: ['master', 'data', 'ingest'] + } + } + } + const stream = intoStream(JSON.stringify(sniffResult)) + stream.statusCode = setStatusCode(params.path) + stream.headers = { + 'content-type': 'application/json;utf=8', + 'date': new Date().toISOString(), + 'connection': 'keep-alive', + 'content-length': '205' + } + process.nextTick(() => { + if (!aborted) { + if (params.headers.timeout) { + callback(new TimeoutError('Request timed out', params), null) + } else { + callback(null, stream) + } + } + }) + return { + abort: () => { aborted = true } + } + } +} function setStatusCode (path) { const statusCode = Number(path.slice(1)) if (Number.isInteger(statusCode)) { @@ -81,4 +122,9 @@ function setStatusCode (path) { return 200 } -module.exports = { MockConnection, MockConnectionTimeout, MockConnectionError } +module.exports = { + MockConnection, + MockConnectionTimeout, + MockConnectionError, + MockConnectionSniff +}