From 81a76be7930ed343f45373a1ebaaee6f762c4a36 Mon Sep 17 00:00:00 2001 From: spalger Date: Sat, 20 Feb 2016 12:05:43 -0800 Subject: [PATCH 01/30] update grunt-esvm --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index baae48503..ac8331584 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "grunt-contrib-copy": "~0.4.1", "grunt-contrib-uglify": "^0.11.0", "grunt-contrib-watch": "~0.5.3", - "grunt-esvm": "^2.0.0", + "grunt-esvm": "^2.1.1", "grunt-mocha-cov": "^0.4.0", "grunt-open": "~0.2.2", "grunt-prompt": "~0.1.2", @@ -103,4 +103,4 @@ "engines": { "node": ">=0.8" } -} \ No newline at end of file +} From 067359e7372c7d32dd8e9eb85add88e36d513a5c Mon Sep 17 00:00:00 2001 From: spalger Date: Sat, 20 Feb 2016 12:09:41 -0800 Subject: [PATCH 02/30] update versions tested on travis --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 33e426ed4..cbe0ca159 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,8 +9,8 @@ before_cache: sudo: false secure: "UFAGQ6m/VnEahbj9vttY9YoA5h5rEBE6K7AvEEbWnt+VKppV+w3hu3HZxgKr8C9PWhCzqlGvsLh+kCqykZhISU1fBCK/Ttp3nSpMvvF5tI2u51Rj1qZ/7NUGRU0qVI9KFt0rJeXMJwq3fivb1H6aojfPD1gsIte7NHNjUfd0iUg=" env: - - ES_HOST=0.0.0.0 ES_RELEASE=1.7.1 RUN=NODE_INTEGRATION - - ES_HOST=0.0.0.0 ES_RELEASE=1.7.1 RUN=NODE_UNIT,CHECK_COVERAGE,SAUCE_LABS + - ES_HOST=0.0.0.0 ES_RELEASE=2.2.0 RUN=NODE_INTEGRATION + - ES_HOST=0.0.0.0 ES_RELEASE=2.2.0 RUN=NODE_UNIT,CHECK_COVERAGE,SAUCE_LABS script: node ./scripts/ci.js email: recipients: From 61ae653434d077aca996c4fe7ab2a654fbe757e0 Mon Sep 17 00:00:00 2001 From: spalger Date: Sat, 20 Feb 2016 12:09:50 -0800 Subject: [PATCH 03/30] update node version tested on travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index cbe0ca159..80d170855 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ language: node_js -node_js: "4.0" +node_js: 4 cache: directories: - esvm From e9ef6db2cdc45635f8fa95c96807eb69b69901de Mon Sep 17 00:00:00 2001 From: spalger Date: Sat, 20 Feb 2016 12:59:30 -0800 Subject: [PATCH 04/30] [apis] regenerate --- docs/api_methods.asciidoc | 5 +- docs/api_methods_0_90.asciidoc | 3 +- docs/api_methods_1_0.asciidoc | 3 +- docs/api_methods_1_1.asciidoc | 3 +- docs/api_methods_1_2.asciidoc | 3 +- docs/api_methods_1_3.asciidoc | 3 +- docs/api_methods_1_4.asciidoc | 3 +- docs/api_methods_1_5.asciidoc | 3 +- docs/api_methods_1_6.asciidoc | 3 +- docs/api_methods_1_7.asciidoc | 3 +- docs/api_methods_2_0.asciidoc | 5 +- docs/api_methods_2_2.asciidoc | 5 +- src/lib/apis/2_0.js | 5 - src/lib/apis/2_1.js | 5 - src/lib/apis/2_2.js | 5 - src/lib/apis/2_x.js | 5 - src/lib/apis/master.js | 287 +++++++++++++++++++++++++++++++-- 17 files changed, 295 insertions(+), 54 deletions(-) diff --git a/docs/api_methods.asciidoc b/docs/api_methods.asciidoc index 8d4e3e4d7..9b86bc246 100644 --- a/docs/api_methods.asciidoc +++ b/docs/api_methods.asciidoc @@ -1037,13 +1037,14 @@ client.msearch({ { query: { match_all: {} } }, // query_string query, on index/mytype - { _index: 'myindex', _type: 'mytype' }, + { index: 'myindex', type: 'mytype' }, { query: { query_string: { query: '"Test 1"' } } } ] }); --------- + *Params* [horizontal] @@ -1999,8 +2000,6 @@ Options::: * `"internal"` * `"force"` -`detectNoop`:: -`Boolean` -- Specifying as true will cause Elasticsearch to check if there are changes and, if there aren’t, turn the update request into a noop. `id`:: `String` -- Document ID `index`:: diff --git a/docs/api_methods_0_90.asciidoc b/docs/api_methods_0_90.asciidoc index 4d5a011db..3c8d69652 100644 --- a/docs/api_methods_0_90.asciidoc +++ b/docs/api_methods_0_90.asciidoc @@ -912,13 +912,14 @@ client.msearch({ { query: { match_all: {} } }, // query_string query, on index/mytype - { _index: 'myindex', _type: 'mytype' }, + { index: 'myindex', type: 'mytype' }, { query: { query_string: { query: '"Test 1"' } } } ] }); --------- + *Params* [horizontal] diff --git a/docs/api_methods_1_0.asciidoc b/docs/api_methods_1_0.asciidoc index 348df60f0..c9e2ba9b9 100644 --- a/docs/api_methods_1_0.asciidoc +++ b/docs/api_methods_1_0.asciidoc @@ -1014,13 +1014,14 @@ client.msearch({ { query: { match_all: {} } }, // query_string query, on index/mytype - { _index: 'myindex', _type: 'mytype' }, + { index: 'myindex', type: 'mytype' }, { query: { query_string: { query: '"Test 1"' } } } ] }); --------- + *Params* [horizontal] diff --git a/docs/api_methods_1_1.asciidoc b/docs/api_methods_1_1.asciidoc index 430b03134..e0ac1ca6a 100644 --- a/docs/api_methods_1_1.asciidoc +++ b/docs/api_methods_1_1.asciidoc @@ -1026,13 +1026,14 @@ client.msearch({ { query: { match_all: {} } }, // query_string query, on index/mytype - { _index: 'myindex', _type: 'mytype' }, + { index: 'myindex', type: 'mytype' }, { query: { query_string: { query: '"Test 1"' } } } ] }); --------- + *Params* [horizontal] diff --git a/docs/api_methods_1_2.asciidoc b/docs/api_methods_1_2.asciidoc index 19baac254..837c941dd 100644 --- a/docs/api_methods_1_2.asciidoc +++ b/docs/api_methods_1_2.asciidoc @@ -1026,13 +1026,14 @@ client.msearch({ { query: { match_all: {} } }, // query_string query, on index/mytype - { _index: 'myindex', _type: 'mytype' }, + { index: 'myindex', type: 'mytype' }, { query: { query_string: { query: '"Test 1"' } } } ] }); --------- + *Params* [horizontal] diff --git a/docs/api_methods_1_3.asciidoc b/docs/api_methods_1_3.asciidoc index 6fc5b2554..5f98f5551 100644 --- a/docs/api_methods_1_3.asciidoc +++ b/docs/api_methods_1_3.asciidoc @@ -1122,13 +1122,14 @@ client.msearch({ { query: { match_all: {} } }, // query_string query, on index/mytype - { _index: 'myindex', _type: 'mytype' }, + { index: 'myindex', type: 'mytype' }, { query: { query_string: { query: '"Test 1"' } } } ] }); --------- + *Params* [horizontal] diff --git a/docs/api_methods_1_4.asciidoc b/docs/api_methods_1_4.asciidoc index f27344684..95cb03c9d 100644 --- a/docs/api_methods_1_4.asciidoc +++ b/docs/api_methods_1_4.asciidoc @@ -1176,13 +1176,14 @@ client.msearch({ { query: { match_all: {} } }, // query_string query, on index/mytype - { _index: 'myindex', _type: 'mytype' }, + { index: 'myindex', type: 'mytype' }, { query: { query_string: { query: '"Test 1"' } } } ] }); --------- + *Params* [horizontal] diff --git a/docs/api_methods_1_5.asciidoc b/docs/api_methods_1_5.asciidoc index 4e6701302..66a20cb2a 100644 --- a/docs/api_methods_1_5.asciidoc +++ b/docs/api_methods_1_5.asciidoc @@ -1176,13 +1176,14 @@ client.msearch({ { query: { match_all: {} } }, // query_string query, on index/mytype - { _index: 'myindex', _type: 'mytype' }, + { index: 'myindex', type: 'mytype' }, { query: { query_string: { query: '"Test 1"' } } } ] }); --------- + *Params* [horizontal] diff --git a/docs/api_methods_1_6.asciidoc b/docs/api_methods_1_6.asciidoc index 5fe4424b3..077f5b4d1 100644 --- a/docs/api_methods_1_6.asciidoc +++ b/docs/api_methods_1_6.asciidoc @@ -1223,13 +1223,14 @@ client.msearch({ { query: { match_all: {} } }, // query_string query, on index/mytype - { _index: 'myindex', _type: 'mytype' }, + { index: 'myindex', type: 'mytype' }, { query: { query_string: { query: '"Test 1"' } } } ] }); --------- + *Params* [horizontal] diff --git a/docs/api_methods_1_7.asciidoc b/docs/api_methods_1_7.asciidoc index 312b81fbe..9661d3fb8 100644 --- a/docs/api_methods_1_7.asciidoc +++ b/docs/api_methods_1_7.asciidoc @@ -1223,13 +1223,14 @@ client.msearch({ { query: { match_all: {} } }, // query_string query, on index/mytype - { _index: 'myindex', _type: 'mytype' }, + { index: 'myindex', type: 'mytype' }, { query: { query_string: { query: '"Test 1"' } } } ] }); --------- + *Params* [horizontal] diff --git a/docs/api_methods_2_0.asciidoc b/docs/api_methods_2_0.asciidoc index 8062131e7..3f6e09ec5 100644 --- a/docs/api_methods_2_0.asciidoc +++ b/docs/api_methods_2_0.asciidoc @@ -1037,13 +1037,14 @@ client.msearch({ { query: { match_all: {} } }, // query_string query, on index/mytype - { _index: 'myindex', _type: 'mytype' }, + { index: 'myindex', type: 'mytype' }, { query: { query_string: { query: '"Test 1"' } } } ] }); --------- + *Params* [horizontal] @@ -1999,8 +2000,6 @@ Options::: * `"internal"` * `"force"` -`detectNoop`:: -`Boolean` -- Specifying as true will cause Elasticsearch to check if there are changes and, if there aren’t, turn the update request into a noop. `id`:: `String` -- Document ID `index`:: diff --git a/docs/api_methods_2_2.asciidoc b/docs/api_methods_2_2.asciidoc index 019927859..1c8200dfd 100644 --- a/docs/api_methods_2_2.asciidoc +++ b/docs/api_methods_2_2.asciidoc @@ -1037,13 +1037,14 @@ client.msearch({ { query: { match_all: {} } }, // query_string query, on index/mytype - { _index: 'myindex', _type: 'mytype' }, + { index: 'myindex', type: 'mytype' }, { query: { query_string: { query: '"Test 1"' } } } ] }); --------- + *Params* [horizontal] @@ -1999,8 +2000,6 @@ Options::: * `"internal"` * `"force"` -`detectNoop`:: -`Boolean` -- Specifying as true will cause Elasticsearch to check if there are changes and, if there aren’t, turn the update request into a noop. `id`:: `String` -- Document ID `index`:: diff --git a/src/lib/apis/2_0.js b/src/lib/apis/2_0.js index f192cfd9b..7a2e98dc7 100644 --- a/src/lib/apis/2_0.js +++ b/src/lib/apis/2_0.js @@ -6075,7 +6075,6 @@ api.termvectors = ca({ * @param {Duration} params.ttl - Expiration time for the document * @param {Number} params.version - Explicit version number for concurrency control * @param {String} params.versionType - Specific version type - * @param {Boolean} params.detectNoop - Specifying as true will cause Elasticsearch to check if there are changes and, if there aren’t, turn the update request into a noop. * @param {String} params.id - Document ID * @param {String} params.index - The name of the index * @param {String} params.type - The type of the document @@ -6136,10 +6135,6 @@ api.update = ca({ 'force' ], name: 'version_type' - }, - detectNoop: { - type: 'boolean', - name: 'detect_noop' } }, url: { diff --git a/src/lib/apis/2_1.js b/src/lib/apis/2_1.js index a380f1d37..d0147eb8e 100644 --- a/src/lib/apis/2_1.js +++ b/src/lib/apis/2_1.js @@ -6220,7 +6220,6 @@ api.termvectors = ca({ * @param {Duration} params.ttl - Expiration time for the document * @param {Number} params.version - Explicit version number for concurrency control * @param {String} params.versionType - Specific version type - * @param {Boolean} params.detectNoop - Specifying as true will cause Elasticsearch to check if there are changes and, if there aren’t, turn the update request into a noop. * @param {String} params.id - Document ID * @param {String} params.index - The name of the index * @param {String} params.type - The type of the document @@ -6281,10 +6280,6 @@ api.update = ca({ 'force' ], name: 'version_type' - }, - detectNoop: { - type: 'boolean', - name: 'detect_noop' } }, url: { diff --git a/src/lib/apis/2_2.js b/src/lib/apis/2_2.js index 1f938f2b5..962f3d133 100644 --- a/src/lib/apis/2_2.js +++ b/src/lib/apis/2_2.js @@ -6234,7 +6234,6 @@ api.termvectors = ca({ * @param {Duration} params.ttl - Expiration time for the document * @param {Number} params.version - Explicit version number for concurrency control * @param {String} params.versionType - Specific version type - * @param {Boolean} params.detectNoop - Specifying as true will cause Elasticsearch to check if there are changes and, if there aren’t, turn the update request into a noop. * @param {String} params.id - Document ID * @param {String} params.index - The name of the index * @param {String} params.type - The type of the document @@ -6295,10 +6294,6 @@ api.update = ca({ 'force' ], name: 'version_type' - }, - detectNoop: { - type: 'boolean', - name: 'detect_noop' } }, url: { diff --git a/src/lib/apis/2_x.js b/src/lib/apis/2_x.js index 6a5936227..221346276 100644 --- a/src/lib/apis/2_x.js +++ b/src/lib/apis/2_x.js @@ -6234,7 +6234,6 @@ api.termvectors = ca({ * @param {Duration} params.ttl - Expiration time for the document * @param {Number} params.version - Explicit version number for concurrency control * @param {String} params.versionType - Specific version type - * @param {Boolean} params.detectNoop - Specifying as true will cause Elasticsearch to check if there are changes and, if there aren’t, turn the update request into a noop. * @param {String} params.id - Document ID * @param {String} params.index - The name of the index * @param {String} params.type - The type of the document @@ -6295,10 +6294,6 @@ api.update = ca({ 'force' ], name: 'version_type' - }, - detectNoop: { - type: 'boolean', - name: 'detect_noop' } }, url: { diff --git a/src/lib/apis/master.js b/src/lib/apis/master.js index 49ab229e8..f6f280548 100644 --- a/src/lib/apis/master.js +++ b/src/lib/apis/master.js @@ -11,7 +11,7 @@ var ca = require('../client_action').makeFactoryWithModifier(function (spec) { var namespace = require('../client_action').namespaceFactory; var api = module.exports = {}; -api._namespaces = ['cat', 'cluster', 'indices', 'nodes', 'snapshot', 'tasks']; +api._namespaces = ['cat', 'cluster', 'indices', 'ingest', 'nodes', 'snapshot', 'tasks']; /** * Perform a [bulk](http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-bulk.html) request @@ -23,6 +23,7 @@ api._namespaces = ['cat', 'cluster', 'indices', 'nodes', 'snapshot', 'tasks']; * @param {Date, Number} params.timeout - Explicit operation timeout * @param {String} params.type - Default document type for items which don't provide one * @param {String, String[], Boolean} params.fields - Default comma-separated list of fields to return in the response for updates + * @param {String} params.pipeline - The pipeline id to preprocess incoming documents with * @param {String} params.index - Default index for items which don't provide one */ api.bulk = ca({ @@ -49,6 +50,9 @@ api.bulk = ca({ }, fields: { type: 'list' + }, + pipeline: { + type: 'string' } }, urls: [ @@ -86,6 +90,7 @@ api.cat = namespace(); * Perform a [cat.aliases](http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/cat.html) request * * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.format - a short version of the Accept header, e.g. json, yaml * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display @@ -95,6 +100,9 @@ api.cat = namespace(); */ api.cat.prototype.aliases = ca({ params: { + format: { + type: 'string' + }, local: { type: 'boolean' }, @@ -133,6 +141,7 @@ api.cat.prototype.aliases = ca({ * Perform a [cat.allocation](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-allocation.html) request * * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.format - a short version of the Accept header, e.g. json, yaml * @param {String} params.bytes - The unit in which to display byte values * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node @@ -143,6 +152,9 @@ api.cat.prototype.aliases = ca({ */ api.cat.prototype.allocation = ca({ params: { + format: { + type: 'string' + }, bytes: { type: 'enum', options: [ @@ -190,6 +202,7 @@ api.cat.prototype.allocation = ca({ * Perform a [cat.count](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-count.html) request * * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.format - a short version of the Accept header, e.g. json, yaml * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display @@ -199,6 +212,9 @@ api.cat.prototype.allocation = ca({ */ api.cat.prototype.count = ca({ params: { + format: { + type: 'string' + }, local: { type: 'boolean' }, @@ -237,6 +253,7 @@ api.cat.prototype.count = ca({ * Perform a [cat.fielddata](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-fielddata.html) request * * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.format - a short version of the Accept header, e.g. json, yaml * @param {String} params.bytes - The unit in which to display byte values * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node @@ -247,6 +264,9 @@ api.cat.prototype.count = ca({ */ api.cat.prototype.fielddata = ca({ params: { + format: { + type: 'string' + }, bytes: { type: 'enum', options: [ @@ -297,6 +317,7 @@ api.cat.prototype.fielddata = ca({ * Perform a [cat.health](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-health.html) request * * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.format - a short version of the Accept header, e.g. json, yaml * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display @@ -306,6 +327,9 @@ api.cat.prototype.fielddata = ca({ */ api.cat.prototype.health = ca({ params: { + format: { + type: 'string' + }, local: { type: 'boolean' }, @@ -356,6 +380,7 @@ api.cat.prototype.help = ca({ * Perform a [cat.indices](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-indices.html) request * * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.format - a short version of the Accept header, e.g. json, yaml * @param {String} params.bytes - The unit in which to display byte values * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node @@ -367,6 +392,9 @@ api.cat.prototype.help = ca({ */ api.cat.prototype.indices = ca({ params: { + format: { + type: 'string' + }, bytes: { type: 'enum', options: [ @@ -418,6 +446,7 @@ api.cat.prototype.indices = ca({ * Perform a [cat.master](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-master.html) request * * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.format - a short version of the Accept header, e.g. json, yaml * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display @@ -426,6 +455,9 @@ api.cat.prototype.indices = ca({ */ api.cat.prototype.master = ca({ params: { + format: { + type: 'string' + }, local: { type: 'boolean' }, @@ -454,6 +486,7 @@ api.cat.prototype.master = ca({ * Perform a [cat.nodeattrs](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-nodeattrs.html) request * * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.format - a short version of the Accept header, e.g. json, yaml * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display @@ -462,6 +495,9 @@ api.cat.prototype.master = ca({ */ api.cat.prototype.nodeattrs = ca({ params: { + format: { + type: 'string' + }, local: { type: 'boolean' }, @@ -490,6 +526,7 @@ api.cat.prototype.nodeattrs = ca({ * Perform a [cat.nodes](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-nodes.html) request * * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.format - a short version of the Accept header, e.g. json, yaml * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display @@ -498,6 +535,9 @@ api.cat.prototype.nodeattrs = ca({ */ api.cat.prototype.nodes = ca({ params: { + format: { + type: 'string' + }, local: { type: 'boolean' }, @@ -526,6 +566,7 @@ api.cat.prototype.nodes = ca({ * Perform a [cat.pendingTasks](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-pending-tasks.html) request * * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.format - a short version of the Accept header, e.g. json, yaml * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display @@ -534,6 +575,9 @@ api.cat.prototype.nodes = ca({ */ api.cat.prototype.pendingTasks = ca({ params: { + format: { + type: 'string' + }, local: { type: 'boolean' }, @@ -562,6 +606,7 @@ api.cat.prototype.pendingTasks = ca({ * Perform a [cat.plugins](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-plugins.html) request * * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.format - a short version of the Accept header, e.g. json, yaml * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display @@ -570,6 +615,9 @@ api.cat.prototype.pendingTasks = ca({ */ api.cat.prototype.plugins = ca({ params: { + format: { + type: 'string' + }, local: { type: 'boolean' }, @@ -598,6 +646,7 @@ api.cat.prototype.plugins = ca({ * Perform a [cat.recovery](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-recovery.html) request * * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.format - a short version of the Accept header, e.g. json, yaml * @param {String} params.bytes - The unit in which to display byte values * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display @@ -607,6 +656,9 @@ api.cat.prototype.plugins = ca({ */ api.cat.prototype.recovery = ca({ params: { + format: { + type: 'string' + }, bytes: { type: 'enum', options: [ @@ -651,6 +703,7 @@ api.cat.prototype.recovery = ca({ * Perform a [cat.repositories](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-repositories.html) request * * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.format - a short version of the Accept header, e.g. json, yaml * @param {Boolean} params.local - Return local information, do not retrieve the state from master node * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display @@ -659,6 +712,9 @@ api.cat.prototype.recovery = ca({ */ api.cat.prototype.repositories = ca({ params: { + format: { + type: 'string' + }, local: { type: 'boolean', 'default': false @@ -688,6 +744,7 @@ api.cat.prototype.repositories = ca({ * Perform a [cat.segments](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-segments.html) request * * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.format - a short version of the Accept header, e.g. json, yaml * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display * @param {Boolean} params.help - Return help information * @param {Boolean} params.v - Verbose mode. Display column headers @@ -695,6 +752,9 @@ api.cat.prototype.repositories = ca({ */ api.cat.prototype.segments = ca({ params: { + format: { + type: 'string' + }, h: { type: 'list' }, @@ -726,6 +786,7 @@ api.cat.prototype.segments = ca({ * Perform a [cat.shards](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-shards.html) request * * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.format - a short version of the Accept header, e.g. json, yaml * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display @@ -735,6 +796,9 @@ api.cat.prototype.segments = ca({ */ api.cat.prototype.shards = ca({ params: { + format: { + type: 'string' + }, local: { type: 'boolean' }, @@ -773,6 +837,7 @@ api.cat.prototype.shards = ca({ * Perform a [cat.snapshots](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-snapshots.html) request * * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.format - a short version of the Accept header, e.g. json, yaml * @param {Boolean} params.ignoreUnavailable - Set to true to ignore unavailable snapshots * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display @@ -782,6 +847,9 @@ api.cat.prototype.shards = ca({ */ api.cat.prototype.snapshots = ca({ params: { + format: { + type: 'string' + }, ignoreUnavailable: { type: 'boolean', 'default': false, @@ -817,6 +885,7 @@ api.cat.prototype.snapshots = ca({ * Perform a [cat.threadPool](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-thread-pool.html) request * * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.format - a short version of the Accept header, e.g. json, yaml * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display @@ -826,6 +895,9 @@ api.cat.prototype.snapshots = ca({ */ api.cat.prototype.threadPool = ca({ params: { + format: { + type: 'string' + }, local: { type: 'boolean' }, @@ -887,6 +959,7 @@ api.cluster = namespace(); * @param {Boolean} params.flatSettings - Return settings in flat format (default: false) * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node * @param {Date, Number} params.timeout - Explicit operation timeout + * @param {Boolean} params.includeDefaults - Whether to return all default clusters setting. */ api.cluster.prototype.getSettings = ca({ params: { @@ -900,6 +973,11 @@ api.cluster.prototype.getSettings = ca({ }, timeout: { type: 'time' + }, + includeDefaults: { + type: 'boolean', + 'default': false, + name: 'include_defaults' } }, url: { @@ -1994,6 +2072,7 @@ api.getTemplate = ca({ * @param {Duration} params.ttl - Expiration time for the document * @param {Number} params.version - Explicit version number for concurrency control * @param {String} params.versionType - Specific version type + * @param {String} params.pipeline - The pipeline id to preprocess incoming documents with * @param {String} params.id - Document ID * @param {String} params.index - The name of the index * @param {String} params.type - The type of the document @@ -2047,6 +2126,9 @@ api.index = ca({ 'force' ], name: 'version_type' + }, + pipeline: { + type: 'string' } }, urls: [ @@ -2787,6 +2869,7 @@ api.indices.prototype.forcemerge = ca({ * @param {String} [params.expandWildcards=open] - Whether wildcard expressions should get expanded to open or closed indices (default: open) * @param {Boolean} params.flatSettings - Return settings in flat format (default: false) * @param {Boolean} params.human - Whether to return version and creation date values in human-readable format. + * @param {Boolean} params.includeDefaults - Whether to return all default setting for each of the indices. * @param {String, String[], Boolean} params.index - A comma-separated list of index names * @param {String, String[], Boolean} params.feature - A comma-separated list of features */ @@ -2821,6 +2904,11 @@ api.indices.prototype.get = ca({ human: { type: 'boolean', 'default': false + }, + includeDefaults: { + type: 'boolean', + 'default': false, + name: 'include_defaults' } }, urls: [ @@ -3143,6 +3231,7 @@ api.indices.prototype.getMapping = ca({ * @param {Boolean} params.flatSettings - Return settings in flat format (default: false) * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) * @param {Boolean} params.human - Whether to return version and creation date values in human-readable format. + * @param {Boolean} params.includeDefaults - Whether to return all default setting for each of the indices. * @param {String, String[], Boolean} params.index - A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices * @param {String, String[], Boolean} params.name - The name of the settings that should be included */ @@ -3180,6 +3269,11 @@ api.indices.prototype.getSettings = ca({ human: { type: 'boolean', 'default': false + }, + includeDefaults: { + type: 'boolean', + 'default': false, + name: 'include_defaults' } }, urls: [ @@ -4096,6 +4190,122 @@ api.info = ca({ } }); +api.ingest = namespace(); + +/** + * Perform a [ingest.deletePipeline](https://www.elastic.co/guide/en/elasticsearch/plugins/master/ingest.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {Date, Number} params.timeout - Explicit operation timeout + * @param {String} params.id - Pipeline ID + */ +api.ingest.prototype.deletePipeline = ca({ + params: { + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + timeout: { + type: 'time' + } + }, + url: { + fmt: '/_ingest/pipeline/<%=id%>', + req: { + id: { + type: 'string' + } + } + }, + method: 'DELETE' +}); + +/** + * Perform a [ingest.getPipeline](https://www.elastic.co/guide/en/elasticsearch/plugins/master/ingest.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {String} params.id - Comma separated list of pipeline ids. Wildcards supported + */ +api.ingest.prototype.getPipeline = ca({ + params: { + masterTimeout: { + type: 'time', + name: 'master_timeout' + } + }, + url: { + fmt: '/_ingest/pipeline/<%=id%>', + req: { + id: { + type: 'string' + } + } + } +}); + +/** + * Perform a [ingest.putPipeline](https://www.elastic.co/guide/en/elasticsearch/plugins/master/ingest.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {Date, Number} params.timeout - Explicit operation timeout + * @param {String} params.id - Pipeline ID + */ +api.ingest.prototype.putPipeline = ca({ + params: { + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + timeout: { + type: 'time' + } + }, + url: { + fmt: '/_ingest/pipeline/<%=id%>', + req: { + id: { + type: 'string' + } + } + }, + needBody: true, + method: 'PUT' +}); + +/** + * Perform a [ingest.simulate](https://www.elastic.co/guide/en/elasticsearch/plugins/master/ingest.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.verbose - Verbose mode. Display data output for each processor in executed pipeline + * @param {String} params.id - Pipeline ID + */ +api.ingest.prototype.simulate = ca({ + params: { + verbose: { + type: 'boolean', + 'default': false + } + }, + urls: [ + { + fmt: '/_ingest/pipeline/<%=id%>/_simulate/', + req: { + id: { + type: 'string' + } + } + }, + { + fmt: '/_ingest/pipeline/_simulate' + } + ], + needBody: true, + method: 'POST' +}); + /** * Perform a [mget](http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-multi-get.html) request * @@ -5718,18 +5928,73 @@ api.suggest = ca({ api.tasks = namespace(); +/** + * Perform a [tasks.cancel](http://www.elastic.co/guide/en/elasticsearch/reference/master/tasks-cancel.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String, String[], Boolean} params.actions - A comma-separated list of actions that should be cancelled. Leave empty to cancel all. + * @param {String} params.parentNode - Cancel tasks with specified parent node. + * @param {Number} params.parentTask - Cancel tasks with specified parent task id. Set to -1 to cancel all. + * @param {String, String[], Boolean} params.nodeId - A comma-separated list of node IDs or names to limit the request; use `_local` to cancel only tasks on the node you're connecting to, leave empty to cancel tasks on all nodes + * @param {Number} params.taskId - Cancel the task with specified id + */ +api.tasks.prototype.cancel = ca({ + params: { + actions: { + type: 'list' + }, + parentNode: { + type: 'string', + name: 'parent_node' + }, + parentTask: { + type: 'number', + name: 'parent_task' + } + }, + urls: [ + { + fmt: '/_tasks/<%=nodeId%>/<%=taskId%>/_cancel', + req: { + nodeId: { + type: 'list' + }, + taskId: { + type: 'number' + } + } + }, + { + fmt: '/_tasks/<%=nodeId%>/_cancel', + req: { + nodeId: { + type: 'list' + } + } + }, + { + fmt: '/_tasks/_cancel' + } + ], + method: 'POST' +}); + /** * Perform a [tasks.list](http://www.elastic.co/guide/en/elasticsearch/reference/master/tasks-list.html) request * * @param {Object} params - An object with parameters used to carry out this action + * @param {String, String[], Boolean} params.actions - A comma-separated list of actions that should be returned. Leave empty to return all. * @param {Boolean} params.detailed - Return detailed task information (default: false) * @param {String} params.parentNode - Return tasks with specified parent node. * @param {Number} params.parentTask - Return tasks with specified parent task id. Set to -1 to return all. * @param {String, String[], Boolean} params.nodeId - A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes - * @param {String, String[], Boolean} params.actions - A comma-separated list of actions that should be returned. Leave empty to return all. + * @param {Number} params.taskId - Return the task with specified id */ api.tasks.prototype.list = ca({ params: { + actions: { + type: 'list' + }, detailed: { type: 'boolean' }, @@ -5744,13 +6009,13 @@ api.tasks.prototype.list = ca({ }, urls: [ { - fmt: '/_tasks/<%=nodeId%>/<%=actions%>', + fmt: '/_tasks/<%=nodeId%>/<%=taskId%>', req: { nodeId: { type: 'list' }, - actions: { - type: 'list' + taskId: { + type: 'number' } } }, @@ -5774,7 +6039,6 @@ api.tasks.prototype.list = ca({ * @param {Object} params - An object with parameters used to carry out this action * @param {Boolean} params.termStatistics - Specifies if total term frequency and document frequency should be returned. * @param {Boolean} [params.fieldStatistics=true] - Specifies if document count, sum of document frequencies and sum of total term frequencies should be returned. - * @param {Boolean} params.dfs - Specifies if distributed frequencies should be returned instead shard frequencies. * @param {String, String[], Boolean} params.fields - A comma-separated list of fields to return. * @param {Boolean} [params.offsets=true] - Specifies if term offsets should be returned. * @param {Boolean} [params.positions=true] - Specifies if term positions should be returned. @@ -5803,11 +6067,6 @@ api.termvectors = ca({ required: false, name: 'field_statistics' }, - dfs: { - type: 'boolean', - 'default': false, - required: false - }, fields: { type: 'list', required: false @@ -5906,7 +6165,6 @@ api.termvectors = ca({ * @param {Duration} params.ttl - Expiration time for the document * @param {Number} params.version - Explicit version number for concurrency control * @param {String} params.versionType - Specific version type - * @param {Boolean} params.detectNoop - Specifying as true will cause Elasticsearch to check if there are changes and, if there aren’t, turn the update request into a noop. * @param {String} params.id - Document ID * @param {String} params.index - The name of the index * @param {String} params.type - The type of the document @@ -5967,10 +6225,6 @@ api.update = ca({ 'force' ], name: 'version_type' - }, - detectNoop: { - type: 'boolean', - name: 'detect_noop' } }, url: { @@ -6003,6 +6257,7 @@ api.update = ca({ * @param {Duration} params.ttl - Expiration time for the document * @param {Number} params.version - Explicit version number for concurrency control * @param {String} params.versionType - Specific version type + * @param {String} params.pipeline - The pipeline id to preprocess incoming documents with * @param {String} params.id - Document ID * @param {String} params.index - The name of the index * @param {String} params.type - The type of the document From 84e48a0fedf6fb0d9abffe43b58d7a1836a04c44 Mon Sep 17 00:00:00 2001 From: Danny Graham Date: Fri, 19 Feb 2016 14:41:35 -0800 Subject: [PATCH 05/30] Bad formatting for plugin link (cherry picked from commit 36e3c11d003efa783d6d73a1138df38e3cf2db29) --- docs/extensions.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/extensions.asciidoc b/docs/extensions.asciidoc index cf3abf2c8..1afc1b518 100644 --- a/docs/extensions.asciidoc +++ b/docs/extensions.asciidoc @@ -16,6 +16,6 @@ This module provides a `scrollToEnd` function which allows for processing each b elasticsearch-scrolltoend is available on https://www.npmjs.com/package/elasticsearch-scrolltoend[npm]. === elasticsearch-deletebyquery -This module provides the `deleteByQuery` method which was removed from the core API in ES 2.0.0. For those with the [Delete-by-query](https://www.elastic.co/guide/en/elasticsearch/plugins/2.0/plugins-delete-by-query.html) installed, this will bring back that feature to your Elasticsearch-js client. +This module provides the `deleteByQuery` method which was removed from the core API in ES 2.0.0. For those with the https://www.elastic.co/guide/en/elasticsearch/plugins/2.0/plugins-delete-by-query.html[Delete-by-query] installed, this will bring back that feature to your Elasticsearch-js client. elasticsearch-deletebyquery is available on https://www.npmjs.com/package/elasticsearch-deletebyquery[npm]. From 50943f59ce1b601f8cecd2d6b482d934811e40d4 Mon Sep 17 00:00:00 2001 From: spalger Date: Sat, 20 Feb 2016 13:10:54 -0800 Subject: [PATCH 06/30] try out trusty beta on travis --- .travis.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 33e426ed4..98749b906 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,11 +2,12 @@ language: node_js node_js: "4.0" cache: directories: - - esvm - - node_modules + - esvm + - node_modules before_cache: - rm -rf esvm/*/logs esvm/data_dir sudo: false +dist: trusty secure: "UFAGQ6m/VnEahbj9vttY9YoA5h5rEBE6K7AvEEbWnt+VKppV+w3hu3HZxgKr8C9PWhCzqlGvsLh+kCqykZhISU1fBCK/Ttp3nSpMvvF5tI2u51Rj1qZ/7NUGRU0qVI9KFt0rJeXMJwq3fivb1H6aojfPD1gsIte7NHNjUfd0iUg=" env: - ES_HOST=0.0.0.0 ES_RELEASE=1.7.1 RUN=NODE_INTEGRATION From 142fe1e45235a05842a93feec6946e464c89f360 Mon Sep 17 00:00:00 2001 From: spalger Date: Sat, 20 Feb 2016 13:15:08 -0800 Subject: [PATCH 07/30] use jdk8 on jenkins --- scripts/ci.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/ci.js b/scripts/ci.js index 9403784c2..28e6e6a47 100644 --- a/scripts/ci.js +++ b/scripts/ci.js @@ -48,6 +48,10 @@ task('NODE_UNIT', true, function () { task('NODE_INTEGRATION', true, function () { var branch = ENV.ES_REF; + if (branch === 'master' || branch.match(/^[3-9]/)) { + process.env.JAVA_HOME = '/usr/lib/jvm/jdk8'; + } + return node('scripts/generate', '--no-api', '--branch', branch) .then(function () { var target = (JENKINS ? 'jenkins_' : '') + 'integration:' + branch; From 936ac452199e213a3c5177df717bb04c04776e95 Mon Sep 17 00:00:00 2001 From: spalger Date: Sat, 20 Feb 2016 13:21:59 -0800 Subject: [PATCH 08/30] use new rest-api location for 2.x + --- scripts/generate/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/generate/index.js b/scripts/generate/index.js index a69f97b10..937039fa2 100644 --- a/scripts/generate/index.js +++ b/scripts/generate/index.js @@ -62,7 +62,7 @@ var paths = { return fromRoot('src/_elasticsearch_' + _.snakeCase(branch) + '.tar'); }, getSpecPathInRepo: function (branch) { - return /^(master|2\.)/.test(branch) ? 'rest-api-spec/src/main/resources/rest-api-spec' : 'rest-api-spec'; + return /^v?(master|[2-9]\.)/.test(branch) ? 'rest-api-spec/src/main/resources/rest-api-spec' : 'rest-api-spec'; } }; From a314a0240a4a21e2294fbe3b30068b3705c2a719 Mon Sep 17 00:00:00 2001 From: spalger Date: Sat, 20 Feb 2016 13:27:14 -0800 Subject: [PATCH 09/30] [esvm] multicast is now a plugin --- grunt/config/esvm.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/grunt/config/esvm.js b/grunt/config/esvm.js index a9f34055f..7405a4a23 100644 --- a/grunt/config/esvm.js +++ b/grunt/config/esvm.js @@ -19,7 +19,12 @@ var versionedOpts = [ 'node.name': 'elasticsearch_js_test_runner', 'cluster.name': 'elasticsearch_js_test_runners', 'http.port': port, - 'network.host': host, + 'network.host': host + } + }, + { + version: '<3', + config: { 'discovery.zen.ping.multicast.enabled': false } }, From ca01cd112c05f77b7a1f10c43d932324d7c63a6c Mon Sep 17 00:00:00 2001 From: spalger Date: Sat, 20 Feb 2016 13:43:00 -0800 Subject: [PATCH 10/30] log meaningful warnings for new yaml-test args --- test/integration/yaml_suite/yaml_doc.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/test/integration/yaml_suite/yaml_doc.js b/test/integration/yaml_suite/yaml_doc.js index f27e9cc86..bfcb09db9 100644 --- a/test/integration/yaml_suite/yaml_doc.js +++ b/test/integration/yaml_suite/yaml_doc.js @@ -1,3 +1,5 @@ +/* eslint-disable no-console */ + /** * Class to wrap a single document from a yaml test file * @@ -112,7 +114,7 @@ function YamlDoc(doc, file) { self._last_requests_response = null; // setup the actions, creating a bound and testable method for each - self._actions = _.map(self.flattenTestActions(doc[self.description]), function (action, i) { + self._actions = _.map(self.flattenTestActions(doc[self.description]), function (action) { // get the method that will do the action var method = self['do_' + action.name]; @@ -373,8 +375,13 @@ YamlDoc.prototype = { delete args.catch; + var otherKeys = _.keys(args); + var action = otherKeys.shift(); + if (otherKeys.length) { + return done(new TypeError('Unexpected top-level args to "do": ' + otherKeys.join(', '))); + } + var client = clientManager.get(); - var action = _.keys(args).pop(); var clientActionName = _.map(action.split('.'), _.camelCase).join('.'); var clientAction = this.get(clientActionName, client); var params = _.transform(args[action], function (params, val, name) { @@ -418,7 +425,7 @@ YamlDoc.prototype = { } var timeoutId; - var cb = _.bind(function (error, body, status) { + var cb = _.bind(function (error, body) { this._last_requests_response = body; clearTimeout(timeoutId); From 64c3e13f60fbf046b492822fc2232bef38c726df Mon Sep 17 00:00:00 2001 From: spalger Date: Sat, 20 Feb 2016 13:44:03 -0800 Subject: [PATCH 11/30] drop travis, rely on jenkins instead --- .travis.yml | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 98749b906..000000000 --- a/.travis.yml +++ /dev/null @@ -1,20 +0,0 @@ -language: node_js -node_js: "4.0" -cache: - directories: - - esvm - - node_modules -before_cache: - - rm -rf esvm/*/logs esvm/data_dir -sudo: false -dist: trusty -secure: "UFAGQ6m/VnEahbj9vttY9YoA5h5rEBE6K7AvEEbWnt+VKppV+w3hu3HZxgKr8C9PWhCzqlGvsLh+kCqykZhISU1fBCK/Ttp3nSpMvvF5tI2u51Rj1qZ/7NUGRU0qVI9KFt0rJeXMJwq3fivb1H6aojfPD1gsIte7NHNjUfd0iUg=" -env: - - ES_HOST=0.0.0.0 ES_RELEASE=1.7.1 RUN=NODE_INTEGRATION - - ES_HOST=0.0.0.0 ES_RELEASE=1.7.1 RUN=NODE_UNIT,CHECK_COVERAGE,SAUCE_LABS -script: node ./scripts/ci.js -email: - recipients: - - spencer.alger@elasticsearch.com - on_success: change - on_failure: always From 3316d4e9fd6e0a8c78f17ad0f4cea7d712c7c465 Mon Sep 17 00:00:00 2001 From: spalger Date: Sat, 20 Feb 2016 16:02:25 -0800 Subject: [PATCH 12/30] always use jdk8 on jenkins --- scripts/ci.js | 4 ---- scripts/jenkins.sh | 3 ++- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/scripts/ci.js b/scripts/ci.js index 28e6e6a47..9403784c2 100644 --- a/scripts/ci.js +++ b/scripts/ci.js @@ -48,10 +48,6 @@ task('NODE_UNIT', true, function () { task('NODE_INTEGRATION', true, function () { var branch = ENV.ES_REF; - if (branch === 'master' || branch.match(/^[3-9]/)) { - process.env.JAVA_HOME = '/usr/lib/jvm/jdk8'; - } - return node('scripts/generate', '--no-api', '--branch', branch) .then(function () { var target = (JENKINS ? 'jenkins_' : '') + 'integration:' + branch; diff --git a/scripts/jenkins.sh b/scripts/jenkins.sh index 3642e5000..486fa8824 100644 --- a/scripts/jenkins.sh +++ b/scripts/jenkins.sh @@ -1,5 +1,6 @@ #!/bin/bash +export JAVA_HOME="/usr/lib/jvm/jdk8" lockpath="/var/lock/setup_nodejs" # pass a file name to aquire a lock @@ -64,4 +65,4 @@ install_node "$NODE_V" npm install release_lock -ES_PATH_REPO="./.es-snapshot-repos/$EXECUTOR_NUMBER/" ES_PORT=$((9400 + EXECUTOR_NUMBER)) RUN=NODE_UNIT,NODE_INTEGRATION VERBOSE=true node ./scripts/ci.js \ No newline at end of file +ES_PATH_REPO="./.es-snapshot-repos/$EXECUTOR_NUMBER/" ES_PORT=$((9400 + EXECUTOR_NUMBER)) RUN=NODE_UNIT,NODE_INTEGRATION VERBOSE=true node ./scripts/ci.js From ece9fa6da8bcbcec05f3a8b27d9800a6134bdaf0 Mon Sep 17 00:00:00 2001 From: spalger Date: Mon, 22 Feb 2016 10:20:09 -0800 Subject: [PATCH 13/30] [YamlDoc] accept headers from yaml tests --- test/integration/yaml_suite/yaml_doc.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/test/integration/yaml_suite/yaml_doc.js b/test/integration/yaml_suite/yaml_doc.js index bfcb09db9..89263e89b 100644 --- a/test/integration/yaml_suite/yaml_doc.js +++ b/test/integration/yaml_suite/yaml_doc.js @@ -375,6 +375,14 @@ YamlDoc.prototype = { delete args.catch; + var inputParams = {}; + + // resolve the headers for a request + if (args.headers) { + inputParams.headers = args.headers; + delete args.headers; + } + var otherKeys = _.keys(args); var action = otherKeys.shift(); if (otherKeys.length) { @@ -384,7 +392,9 @@ YamlDoc.prototype = { var client = clientManager.get(); var clientActionName = _.map(action.split('.'), _.camelCase).join('.'); var clientAction = this.get(clientActionName, client); - var params = _.transform(args[action], function (params, val, name) { + _.assign(inputParams, args[action]); + + var params = _.transform(inputParams, function (params, val, name) { var camelName = _.camelCase(name); // search through the params and url peices to find this param name From aae2d96d5614a82e1887bd84820c1b94b2d1d392 Mon Sep 17 00:00:00 2001 From: spalger Date: Mon, 22 Feb 2016 10:39:42 -0800 Subject: [PATCH 14/30] [YamlDoc] add section description logging --- test/integration/yaml_suite/client_manager.js | 9 +++------ test/integration/yaml_suite/yaml_doc.js | 13 +++++++++++++ test/integration/yaml_suite/yaml_file.js | 11 +++++++++-- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/test/integration/yaml_suite/client_manager.js b/test/integration/yaml_suite/client_manager.js index 212dd6f6a..c4bad9cdb 100644 --- a/test/integration/yaml_suite/client_manager.js +++ b/test/integration/yaml_suite/client_manager.js @@ -2,25 +2,22 @@ var BROWSER = process.env.browser; var VERBOSE = process.env.VERBOSE; var JENKINS = !!process.env.JENKINS_HOME; +var es; if (BROWSER) { - var es = window.elasticsearch; + es = window.elasticsearch; } else { - var es = require('../../../src/elasticsearch'); + es = require('../../../src/elasticsearch'); } var _ = require('../../../src/lib/utils'); var path = require('path'); var fs = require('fs'); -var async = require('async'); var fromRoot = _.bindKey(path, 'join', require('find-root')(__dirname)); var Bluebird = require('bluebird'); // current client var client = null; -// when set to a boolean, hold the test of a ping -var externalExists; - module.exports = { create: function create(apiVersion, port, host, cb) { // create a client and ping the server for up to 15 seconds diff --git a/test/integration/yaml_suite/yaml_doc.js b/test/integration/yaml_suite/yaml_doc.js index 89263e89b..05fb22be7 100644 --- a/test/integration/yaml_suite/yaml_doc.js +++ b/test/integration/yaml_suite/yaml_doc.js @@ -158,6 +158,19 @@ function YamlDoc(doc, file) { return action; }); + + self.getActionsRunners = function () { + return self._actions.map(function (action) { + return function (cb) { + if (!!process.env.JENKINS_HOME) { + console.log('==========================='); + console.log(action.name); + console.log('==========================='); + } + return action.testable(cb); + }; + }); + }; } YamlDoc.compareRangeToVersion = function (range, version) { diff --git a/test/integration/yaml_suite/yaml_file.js b/test/integration/yaml_suite/yaml_file.js index 530423d55..6923c2f1b 100644 --- a/test/integration/yaml_suite/yaml_file.js +++ b/test/integration/yaml_suite/yaml_file.js @@ -1,3 +1,5 @@ +/* eslint-env mocha */ +/* eslint-disable no-console */ /** * Class representing a YAML file * @type {[type]} @@ -20,16 +22,21 @@ function YamlFile(filename, docs) { doc = new YamlDoc(doc, file); if (doc.description === 'setup') { beforeEach(/* doc */function (done) { - async.series(_.pluck(doc._actions, 'testable'), done); + async.series(doc.getActionsRunners(), done); }); } else { it(doc.description, function (done) { - async.series(_.pluck(doc._actions, 'testable'), done); + async.series(doc.getActionsRunners(), done); }); } }); afterEach(/* doc */function () { + if (!!process.env.JENKINS_HOME) { + console.log('==========================='); + console.log('Cleanup'); + console.log('==========================='); + } return clientManager.get().clearEs(); }); }); From fe5bad332742bc376da20594844c20f47e992da1 Mon Sep 17 00:00:00 2001 From: spalger Date: Mon, 22 Feb 2016 10:55:14 -0800 Subject: [PATCH 15/30] move section headers to client logger --- test/integration/yaml_suite/yaml_doc.js | 10 +++++----- test/integration/yaml_suite/yaml_file.js | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/test/integration/yaml_suite/yaml_doc.js b/test/integration/yaml_suite/yaml_doc.js index 05fb22be7..18fcc7b99 100644 --- a/test/integration/yaml_suite/yaml_doc.js +++ b/test/integration/yaml_suite/yaml_doc.js @@ -162,11 +162,11 @@ function YamlDoc(doc, file) { self.getActionsRunners = function () { return self._actions.map(function (action) { return function (cb) { - if (!!process.env.JENKINS_HOME) { - console.log('==========================='); - console.log(action.name); - console.log('==========================='); - } + clientManager.get().transport.log.debug( + '===========================\n' + + action.name + + '\n===========================' + ); return action.testable(cb); }; }); diff --git a/test/integration/yaml_suite/yaml_file.js b/test/integration/yaml_suite/yaml_file.js index 6923c2f1b..1035a37ec 100644 --- a/test/integration/yaml_suite/yaml_file.js +++ b/test/integration/yaml_suite/yaml_file.js @@ -32,11 +32,11 @@ function YamlFile(filename, docs) { }); afterEach(/* doc */function () { - if (!!process.env.JENKINS_HOME) { - console.log('==========================='); - console.log('Cleanup'); - console.log('==========================='); - } + clientManager.get().transport.log.debug( + '===========================\n' + + 'Cleanup\n' + + '===========================' + ); return clientManager.get().clearEs(); }); }); From 71deda389e6b76d7f470751e66fecd7787d58be6 Mon Sep 17 00:00:00 2001 From: Spencer Date: Fri, 26 Feb 2016 13:25:07 -0700 Subject: [PATCH 16/30] [readme] update link to point to #kibana instead --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index df4a66135..b7c1f3c27 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ Check out the [Browser Builds](http://www.elastic.co/guide/en/elasticsearch/clie ## Questions? -You can probably find help in the #elasticsearch-js or #kibana rooms on [freenode](http://webchat.freenode.net/?channels=elasticsearch-js). +You can probably find help in [#kibana](https://kiwiirc.com/client/irc.freenode.net/?#kibana) on freenode. ## Supported Elasticsearch Versions From bc238288f6a49cfbf55946e98c598526da5347eb Mon Sep 17 00:00:00 2001 From: Spencer Date: Mon, 29 Feb 2016 12:20:39 -0700 Subject: [PATCH 17/30] Remove travis-ci badge --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index b7c1f3c27..2768b2b30 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@ The official low-level Elasticsearch client for Node.js and the browser. -[![Build Status](http://img.shields.io/travis/elastic/elasticsearch-js/master.svg?style=flat-square)](https://travis-ci.org/elastic/elasticsearch-js?branch=master) [![Coverage Status](http://img.shields.io/coveralls/elastic/elasticsearch-js/master.svg?style=flat-square)](https://coveralls.io/r/elastic/elasticsearch-js?branch=master) [![Dependencies up to date](http://img.shields.io/david/elastic/elasticsearch-js.svg?style=flat-square)](https://david-dm.org/elastic/elasticsearch-js) From 4d8681a7a1105baea601fdfe24fb66ea0f120919 Mon Sep 17 00:00:00 2001 From: Kevin Ennis Date: Fri, 25 Mar 2016 12:10:49 -0400 Subject: [PATCH 18/30] Update promise-js --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ac8331584..d62a9acef 100644 --- a/package.json +++ b/package.json @@ -90,7 +90,7 @@ "forever-agent": "^0.6.0", "lodash": "^3.10.0", "lodash-compat": "^3.0.0", - "promise-js": "0.0.6" + "promise-js": "0.0.7" }, "repository": { "type": "git", From 4f4ecb8257600262f184c55ff44660684883c44c Mon Sep 17 00:00:00 2001 From: spalger Date: Tue, 29 Mar 2016 17:53:08 -0700 Subject: [PATCH 19/30] do not set es host, since this is not a production install... --- grunt/config/esvm.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/grunt/config/esvm.js b/grunt/config/esvm.js index 7405a4a23..9b53c4d70 100644 --- a/grunt/config/esvm.js +++ b/grunt/config/esvm.js @@ -5,7 +5,6 @@ var fromRoot = require('path').join.bind(null, __dirname, '..', '..'); var release = process.env.ES_RELEASE; var ref = process.env.ES_REF; var port = parseFloat(_.get(process.env, 'ES_PORT', 9400)); -var host = _.get(process.env, 'ES_HOST', 'localhost'); var Version = require('../../scripts/Version'); var versionedOpts = [ @@ -18,8 +17,7 @@ var versionedOpts = [ 'path.data': fromRoot('esvm/data_dir'), 'node.name': 'elasticsearch_js_test_runner', 'cluster.name': 'elasticsearch_js_test_runners', - 'http.port': port, - 'network.host': host + 'http.port': port } }, { From a6aede6e0a63faa86170b87f2ae1e674b7132505 Mon Sep 17 00:00:00 2001 From: spalger Date: Tue, 29 Mar 2016 17:54:40 -0700 Subject: [PATCH 20/30] Revert "do not set es host, since this is not a production install..." This reverts commit 4f4ecb8257600262f184c55ff44660684883c44c. --- grunt/config/esvm.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/grunt/config/esvm.js b/grunt/config/esvm.js index 9b53c4d70..7405a4a23 100644 --- a/grunt/config/esvm.js +++ b/grunt/config/esvm.js @@ -5,6 +5,7 @@ var fromRoot = require('path').join.bind(null, __dirname, '..', '..'); var release = process.env.ES_RELEASE; var ref = process.env.ES_REF; var port = parseFloat(_.get(process.env, 'ES_PORT', 9400)); +var host = _.get(process.env, 'ES_HOST', 'localhost'); var Version = require('../../scripts/Version'); var versionedOpts = [ @@ -17,7 +18,8 @@ var versionedOpts = [ 'path.data': fromRoot('esvm/data_dir'), 'node.name': 'elasticsearch_js_test_runner', 'cluster.name': 'elasticsearch_js_test_runners', - 'http.port': port + 'http.port': port, + 'network.host': host } }, { From 22cd7cb02a1d8b5eb1448c8e8f5a15824b0b48ff Mon Sep 17 00:00:00 2001 From: spalger Date: Tue, 29 Mar 2016 17:55:20 -0700 Subject: [PATCH 21/30] [esvm] set discovery.zen.minimum_master_nodes --- grunt/config/esvm.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/grunt/config/esvm.js b/grunt/config/esvm.js index 7405a4a23..efd5d3c28 100644 --- a/grunt/config/esvm.js +++ b/grunt/config/esvm.js @@ -19,7 +19,8 @@ var versionedOpts = [ 'node.name': 'elasticsearch_js_test_runner', 'cluster.name': 'elasticsearch_js_test_runners', 'http.port': port, - 'network.host': host + 'network.host': host, + 'discovery.zen.minimum_master_nodes': 1 } }, { From 6714ae55c60ee57c25e746c4bcc2adacbc38efe9 Mon Sep 17 00:00:00 2001 From: spalger Date: Wed, 30 Mar 2016 12:06:13 -0700 Subject: [PATCH 22/30] [api] regenerate, set 2.3 to default --- docs/api_methods.asciidoc | 449 ++- docs/api_methods_2_1.asciidoc | 4681 +++++++++++++++++++++++ docs/configuration.asciidoc | 5 +- docs/index.asciidoc | 4 +- package.json | 3 +- src/lib/apis/2_3.js | 6723 +++++++++++++++++++++++++++++++++ src/lib/apis/2_x.js | 394 +- src/lib/apis/browser_index.js | 4 +- src/lib/apis/index.js | 3 +- src/lib/apis/master.js | 383 +- 10 files changed, 12502 insertions(+), 147 deletions(-) create mode 100644 docs/api_methods_2_1.asciidoc create mode 100644 src/lib/apis/2_3.js diff --git a/docs/api_methods.asciidoc b/docs/api_methods.asciidoc index 9b86bc246..e0a114297 100644 --- a/docs/api_methods.asciidoc +++ b/docs/api_methods.asciidoc @@ -1,5 +1,5 @@ [[api-reference]] -== 2.1 API +== 2.3 API NOTE: This is currently the default API, but in upcoming versions that will change. We recommend setting the `apiVersion` config param when you instantiate your client to make sure that the API does not change unexpectedly. @@ -15,7 +15,7 @@ client.bulk([params, [callback]]) Perform many index/delete operations in a single API call. -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/docs-bulk.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-bulk.html[the elasticsearch docs] for more about this method. .Perform three operations in a single request [source,js] @@ -75,7 +75,7 @@ client.clearScroll([params, [callback]]) Clear the scroll request created by specifying the scroll parameter to search. -The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-request-scroll.html[the elasticsearch docs] for more about this method. +The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/search-request-scroll.html[the elasticsearch docs] for more about this method. // no examples @@ -98,7 +98,7 @@ client.count([params, [callback]]) Get the number of documents for the cluster, index, type, or a query. -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-count.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/search-count.html[the elasticsearch docs] for more about this method. .Get the number of all documents in the cluster [source,js] @@ -198,7 +198,7 @@ client.countPercolate([params, [callback]]) // no description -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-percolate.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/search-percolate.html[the elasticsearch docs] for more about this method. // no examples @@ -255,7 +255,7 @@ client.create([params, [callback]]) Adds a typed JSON document in a specific index, making it searchable. If a document with the same `index`, `type`, and `id` already exists, an error will occur. -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/docs-index_.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html[the elasticsearch docs] for more about this method. .Create a document [source,js] @@ -328,7 +328,7 @@ client.delete([params, [callback]]) Delete a typed JSON document from a specific index based on its id. -The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/docs-delete.html[the elasticsearch docs] for more about this method. +The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-delete.html[the elasticsearch docs] for more about this method. .Delete the document `/myindex/mytype/1` [source,js] @@ -390,7 +390,7 @@ client.deleteScript([params, [callback]]) // no description -The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/modules-scripting.html[the elasticsearch docs] for more about this method. +The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html[the elasticsearch docs] for more about this method. // no examples @@ -425,7 +425,7 @@ client.deleteTemplate([params, [callback]]) // no description -The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-template.html[the elasticsearch docs] for more about this method. +The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/search-template.html[the elasticsearch docs] for more about this method. // no examples @@ -458,7 +458,7 @@ client.exists([params, [callback]]) Returns a boolean indicating whether or not a given document exists. -The default method is `HEAD` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/docs-get.html[the elasticsearch docs] for more about this method. +The default method is `HEAD` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html[the elasticsearch docs] for more about this method. .Check that the document `/myindex/mytype/1` exist [source,js] @@ -509,7 +509,7 @@ client.explain([params, [callback]]) Provides details about a specific document's score in relation to a specific query. It will also tell you if the document matches the specified query. Also check out http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-percolate.html[percolaters]. -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-explain.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/search-explain.html[the elasticsearch docs] for more about this method. .See how a document is scored against a simple query [source,js] @@ -599,7 +599,7 @@ client.fieldStats([params, [callback]]) // no description -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-field-stats.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/search-field-stats.html[the elasticsearch docs] for more about this method. // no examples @@ -642,7 +642,7 @@ client.get([params, [callback]]) Get a typed JSON document from the index based on its id. -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/docs-get.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html[the elasticsearch docs] for more about this method. .Get `/myindex/mytype/1` [source,js] @@ -707,7 +707,7 @@ client.getScript([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/modules-scripting.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html[the elasticsearch docs] for more about this method. // no examples @@ -743,7 +743,7 @@ client.getSource([params, [callback]]) Get the source of a document by its index, type and id. -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/docs-get.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html[the elasticsearch docs] for more about this method. // no examples @@ -796,7 +796,7 @@ client.getTemplate([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-template.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/search-template.html[the elasticsearch docs] for more about this method. // no examples @@ -834,7 +834,7 @@ Optimistic concurrency control is performed, when the `version` argument is spec By default, the document will be available for `get()` actions immediately, but will only be available for searching after an index refresh (which can happen automatically or manually). See <>. -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/docs-index_.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html[the elasticsearch docs] for more about this method. .Create or update a document [source,js] @@ -921,7 +921,7 @@ client.mget([params, [callback]]) Get multiple documents based on an index, type (optional) and ids. The body required by mget can take two forms: an array of document locations, or an array of document ids. -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/docs-multi-get.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-multi-get.html[the elasticsearch docs] for more about this method. .An array of doc locations. Useful for getting documents from different indices. [source,js] @@ -988,7 +988,7 @@ client.mpercolate([params, [callback]]) // no description -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-percolate.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/search-percolate.html[the elasticsearch docs] for more about this method. // no examples @@ -1025,7 +1025,7 @@ client.msearch([params, [callback]]) Execute several search requests within the same request. -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-multi-search.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/search-multi-search.html[the elasticsearch docs] for more about this method. .Perform multiple different searches, the body is made up of meta/data pairs [source,js] @@ -1075,7 +1075,7 @@ client.mtermvectors([params, [callback]]) // no description -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/docs-multi-termvectors.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-multi-termvectors.html[the elasticsearch docs] for more about this method. // no examples @@ -1132,7 +1132,7 @@ client.percolate([params, [callback]]) Match a document against registered percolator queries. -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-percolate.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/search-percolate.html[the elasticsearch docs] for more about this method. .First, Register queries named “alert-1” and “alert-2” for the “myindex” index [source,js] @@ -1287,7 +1287,7 @@ client.putScript([params, [callback]]) // no description -The default method is `PUT` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/modules-scripting.html[the elasticsearch docs] for more about this method. +The default method is `PUT` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html[the elasticsearch docs] for more about this method. // no examples @@ -1328,7 +1328,7 @@ client.putTemplate([params, [callback]]) // no description -The default method is `PUT` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-template.html[the elasticsearch docs] for more about this method. +The default method is `PUT` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/search-template.html[the elasticsearch docs] for more about this method. // no examples @@ -1357,6 +1357,40 @@ Options::: link:#[back to top] +[[api-reindex]] +=== `reindex` + +[source,js] +-------- +client.reindex([params, [callback]]) +-------- + +// no description + +The default method is `POST` and the usual <> apply. See https://www.elastic.co/guide/en/elasticsearch/plugins/master/plugins-reindex.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`refresh`:: +`Boolean` -- Should the effected indexes be refreshed? +`[timeout=1m]`:: +`Date, Number` -- Time each individual bulk request should wait for shards that are unavailable. +`consistency`:: +`String` -- Explicit write consistency setting for the operation +Options::: + * `"one"` + * `"quorum"` + * `"all"` + +`waitForCompletion`:: +`Boolean` -- Should the request should block until the reindex is complete. + +link:#[back to top] + [[api-rendersearchtemplate]] === `renderSearchTemplate` @@ -1367,7 +1401,7 @@ client.renderSearchTemplate([params, [callback]]) // no description -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-template.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-template.html[the elasticsearch docs] for more about this method. // no examples @@ -1390,7 +1424,7 @@ client.scroll([params, [callback]]) Scroll a search request (retrieve the next set of results) after specifying the scroll parameter in a `search()` call. -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-request-scroll.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/search-request-scroll.html[the elasticsearch docs] for more about this method. .Collect every title in the index that contains the word "test" [source,js] @@ -1449,7 +1483,7 @@ TIP: https://github.com/fullscale/elastic.js[elastic.js], https://github.com/hol -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-search.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/search-search.html[the elasticsearch docs] for more about this method. .Search with a simple query string query [source,js] @@ -1594,7 +1628,7 @@ client.searchExists([params, [callback]]) // no description -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-exists.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/search-exists.html[the elasticsearch docs] for more about this method. // no examples @@ -1655,7 +1689,7 @@ client.searchShards([params, [callback]]) // no description -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-shards.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/search-shards.html[the elasticsearch docs] for more about this method. // no examples @@ -1751,7 +1785,7 @@ client.suggest([params, [callback]]) The suggest feature suggests similar looking terms based on a provided text by using a specific suggester. -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-suggesters.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/search-suggesters.html[the elasticsearch docs] for more about this method. .Return query terms suggestions (“auto-correction”) [source,js] @@ -1823,7 +1857,7 @@ client.termvectors([params, [callback]]) // no description -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/docs-termvectors.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-termvectors.html[the elasticsearch docs] for more about this method. // no examples @@ -1885,7 +1919,7 @@ Update parts of a document. The required body parameter can contain one of two t * a partial document, which will be merged with the existing one. * a `script` which will update the document content -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/docs-update.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-update.html[the elasticsearch docs] for more about this method. .Update document title using partial document [source,js] @@ -2009,6 +2043,139 @@ Options::: link:#[back to top] +[[api-updatebyquery]] +=== `updateByQuery` + +[source,js] +-------- +client.updateByQuery([params, [callback]]) +-------- + +// no description + +The default method is `POST` and the usual <> apply. See https://www.elastic.co/guide/en/elasticsearch/plugins/master/plugins-reindex.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`analyzer`:: +`String` -- The analyzer to use for the query string +`analyzeWildcard`:: +`Boolean` -- Specify whether wildcard and prefix queries should be analyzed (default: false) +`[defaultOperator=OR]`:: +`String` -- The default operator for query string query (AND or OR) +Options::: + * `"AND"` + * `"OR"` + +`df`:: +`String` -- The field to use as default where no field prefix is given in the query string +`explain`:: +`Boolean` -- Specify whether to return detailed information about score computation as part of a hit +`fields`:: +`String, String[], Boolean` -- A comma-separated list of fields to return as part of a hit +`fielddataFields`:: +`String, String[], Boolean` -- A comma-separated list of fields to return as the field data representation of a field for each hit +`from`:: +`Number` -- Starting offset (default: 0) +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[conflicts=abort]`:: +`String` -- What to do when the reindex hits version conflicts? +Options::: + * `"abort"` + * `"proceed"` + +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`lenient`:: +`Boolean` -- Specify whether format-based query failures (such as providing text to a numeric field) should be ignored +`lowercaseExpandedTerms`:: +`Boolean` -- Specify whether query terms should be lowercased +`preference`:: +`String` -- Specify the node or shard the operation should be performed on (default: random) +`q`:: +`String` -- Query in the Lucene query string syntax +`routing`:: +`String, String[], Boolean` -- A comma-separated list of specific routing values +`scroll`:: +`Duration` -- Specify how long a consistent view of the index should be maintained for scrolled search +`searchType`:: +`String` -- Search operation type +Options::: + * `"query_then_fetch"` + * `"dfs_query_then_fetch"` + +`searchTimeout`:: +`Date, Number` -- Explicit timeout for each search request. Defaults to no timeout. +`size`:: +`Number` -- Number of hits to return (default: 10) +`sort`:: +`String, String[], Boolean` -- A comma-separated list of : pairs +`_source`:: +`String, String[], Boolean` -- True or false to return the _source field or not, or a list of fields to return +`_sourceExclude`:: +`String, String[], Boolean` -- A list of fields to exclude from the returned _source field +`_sourceInclude`:: +`String, String[], Boolean` -- A list of fields to extract and return from the _source field +`terminateAfter`:: +`Number` -- The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early. +`stats`:: +`String, String[], Boolean` -- Specific 'tag' of the request for logging and statistical purposes +`suggestField`:: +`String` -- Specify which field to use for suggestions +`[suggestMode=missing]`:: +`String` -- Specify suggest mode +Options::: + * `"missing"` + * `"popular"` + * `"always"` + +`suggestSize`:: +`Number` -- How many suggestions to return in response +`suggestText`:: +`Text` -- The source text for which the suggestions should be returned +`[timeout=1m]`:: +`Date, Number` -- Time each individual bulk request should wait for shards that are unavailable. +`trackScores`:: +`Boolean` -- Whether to calculate and return scores even if they are not used for sorting +`version`:: +`Boolean` -- Specify whether to return document version as part of a hit +`versionType`:: +`Boolean` -- Should the document increment the version number (internal) on hit or not (reindex) +`requestCache`:: +`Boolean` -- Specify if request cache should be used for this request or not, defaults to index level setting +`refresh`:: +`Boolean` -- Should the effected indexes be refreshed? +`consistency`:: +`String` -- Explicit write consistency setting for the operation +Options::: + * `"one"` + * `"quorum"` + * `"all"` + +`scrollSize`:: +`Integer` -- Size on the scroll request powering the update_by_query +`waitForCompletion`:: +`Boolean` -- Should the request should block until the reindex is complete. +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices +`type`:: +`String, String[], Boolean` -- A comma-separated list of document types to search; leave empty to perform the operation on all types + +link:#[back to top] + [[api-cat-aliases]] === `cat.aliases` @@ -2052,7 +2219,7 @@ client.cat.allocation([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-allocation.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-allocation.html[the elasticsearch docs] for more about this method. // no examples @@ -2093,7 +2260,7 @@ client.cat.count([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-count.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-count.html[the elasticsearch docs] for more about this method. // no examples @@ -2126,7 +2293,7 @@ client.cat.fielddata([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-fielddata.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-fielddata.html[the elasticsearch docs] for more about this method. // no examples @@ -2167,7 +2334,7 @@ client.cat.health([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-health.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-health.html[the elasticsearch docs] for more about this method. // no examples @@ -2200,7 +2367,7 @@ client.cat.help([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/cat.html[the elasticsearch docs] for more about this method. // no examples @@ -2223,7 +2390,7 @@ client.cat.indices([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-indices.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-indices.html[the elasticsearch docs] for more about this method. // no examples @@ -2266,7 +2433,7 @@ client.cat.master([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-master.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-master.html[the elasticsearch docs] for more about this method. // no examples @@ -2297,7 +2464,7 @@ client.cat.nodeattrs([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-nodeattrs.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-nodeattrs.html[the elasticsearch docs] for more about this method. // no examples @@ -2328,7 +2495,7 @@ client.cat.nodes([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-nodes.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-nodes.html[the elasticsearch docs] for more about this method. // no examples @@ -2359,7 +2526,7 @@ client.cat.pendingTasks([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-pending-tasks.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-pending-tasks.html[the elasticsearch docs] for more about this method. // no examples @@ -2390,7 +2557,7 @@ client.cat.plugins([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-plugins.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-plugins.html[the elasticsearch docs] for more about this method. // no examples @@ -2421,7 +2588,7 @@ client.cat.recovery([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-recovery.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-recovery.html[the elasticsearch docs] for more about this method. // no examples @@ -2491,7 +2658,7 @@ client.cat.segments([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-segments.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-segments.html[the elasticsearch docs] for more about this method. // no examples @@ -2520,7 +2687,7 @@ client.cat.shards([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-shards.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-shards.html[the elasticsearch docs] for more about this method. // no examples @@ -2561,6 +2728,8 @@ The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-thread-pool.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-thread-pool.html[the elasticsearch docs] for more about this method. // no examples @@ -2617,7 +2786,7 @@ client.cluster.getSettings([params, [callback]]) Get cluster settings (previously set with `putSettings()`) -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cluster-update-settings.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-update-settings.html[the elasticsearch docs] for more about this method. // no examples @@ -2644,7 +2813,7 @@ client.cluster.health([params, [callback]]) Get a very simple status on the health of the cluster. -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cluster-health.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-health.html[the elasticsearch docs] for more about this method. // no examples @@ -2693,7 +2862,7 @@ client.cluster.pendingTasks([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cluster-pending.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-pending.html[the elasticsearch docs] for more about this method. // no examples @@ -2718,7 +2887,7 @@ client.cluster.putSettings([params, [callback]]) Update cluster wide specific settings. -The default method is `PUT` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cluster-update-settings.html[the elasticsearch docs] for more about this method. +The default method is `PUT` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-update-settings.html[the elasticsearch docs] for more about this method. // no examples @@ -2745,7 +2914,7 @@ client.cluster.reroute([params, [callback]]) Explicitly execute a cluster reroute allocation command including specific commands. -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cluster-reroute.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-reroute.html[the elasticsearch docs] for more about this method. // no examples @@ -2776,7 +2945,7 @@ client.cluster.state([params, [callback]]) Get comprehensive details about the state of the whole cluster (indices settings, allocations, etc). -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cluster-state.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-state.html[the elasticsearch docs] for more about this method. // no examples @@ -2819,7 +2988,7 @@ client.cluster.stats([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cluster-stats.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-stats.html[the elasticsearch docs] for more about this method. // no examples @@ -2848,7 +3017,7 @@ client.indices.analyze([params, [callback]]) Perform the analysis process on a text and return the tokens breakdown of the text. -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-analyze.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-analyze.html[the elasticsearch docs] for more about this method. // no examples @@ -2872,6 +3041,10 @@ The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-clearcache.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-clearcache.html[the elasticsearch docs] for more about this method. // no examples @@ -2939,7 +3112,7 @@ client.indices.close([params, [callback]]) Close an index to remove its overhead from the cluster. Closed index is blocked for read/write operations. -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-open-close.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-open-close.html[the elasticsearch docs] for more about this method. // no examples @@ -2978,7 +3151,7 @@ client.indices.create([params, [callback]]) Create an index in Elasticsearch. -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-create-index.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-create-index.html[the elasticsearch docs] for more about this method. // no examples @@ -3007,7 +3180,7 @@ client.indices.delete([params, [callback]]) Delete an index in Elasticsearch -The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-delete-index.html[the elasticsearch docs] for more about this method. +The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-delete-index.html[the elasticsearch docs] for more about this method. // no examples @@ -3034,7 +3207,7 @@ client.indices.deleteAlias([params, [callback]]) Delete a specific alias. -The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-aliases.html[the elasticsearch docs] for more about this method. +The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html[the elasticsearch docs] for more about this method. // no examples @@ -3063,7 +3236,7 @@ client.indices.deleteTemplate([params, [callback]]) Delete an index template by its name. -The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-templates.html[the elasticsearch docs] for more about this method. +The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html[the elasticsearch docs] for more about this method. // no examples @@ -3090,7 +3263,7 @@ client.indices.deleteWarmer([params, [callback]]) Delete an index warmer. -The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-warmers.html[the elasticsearch docs] for more about this method. +The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-warmers.html[the elasticsearch docs] for more about this method. // no examples @@ -3117,7 +3290,7 @@ client.indices.exists([params, [callback]]) Return a boolean indicating whether given index exists. -The default method is `HEAD` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-exists.html[the elasticsearch docs] for more about this method. +The default method is `HEAD` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-exists.html[the elasticsearch docs] for more about this method. // no examples @@ -3154,7 +3327,7 @@ client.indices.existsAlias([params, [callback]]) Return a boolean indicating whether given alias exists. -The default method is `HEAD` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-aliases.html[the elasticsearch docs] for more about this method. +The default method is `HEAD` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html[the elasticsearch docs] for more about this method. // no examples @@ -3193,7 +3366,7 @@ client.indices.existsTemplate([params, [callback]]) // no description -The default method is `HEAD` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-templates.html[the elasticsearch docs] for more about this method. +The default method is `HEAD` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html[the elasticsearch docs] for more about this method. // no examples @@ -3220,7 +3393,7 @@ client.indices.existsType([params, [callback]]) Check if a type/types exists in an index/indices. -The default method is `HEAD` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-types-exists.html[the elasticsearch docs] for more about this method. +The default method is `HEAD` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-types-exists.html[the elasticsearch docs] for more about this method. // no examples @@ -3259,7 +3432,7 @@ client.indices.flush([params, [callback]]) Explicitly flush one or more indices. -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-flush.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-flush.html[the elasticsearch docs] for more about this method. // no examples @@ -3298,7 +3471,7 @@ client.indices.flushSynced([params, [callback]]) // no description -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-synced-flush.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-synced-flush.html[the elasticsearch docs] for more about this method. // no examples @@ -3333,7 +3506,7 @@ client.indices.forcemerge([params, [callback]]) // no description -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-forcemerge.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-forcemerge.html[the elasticsearch docs] for more about this method. // no examples @@ -3378,7 +3551,7 @@ client.indices.get([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-get-index.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-index.html[the elasticsearch docs] for more about this method. // no examples @@ -3421,7 +3594,7 @@ client.indices.getAlias([params, [callback]]) Retrieve a specified alias. -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-aliases.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html[the elasticsearch docs] for more about this method. // no examples @@ -3460,7 +3633,7 @@ client.indices.getAliases([params, [callback]]) Retrieve specified aliases -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-aliases.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html[the elasticsearch docs] for more about this method. // no examples @@ -3489,7 +3662,7 @@ client.indices.getFieldMapping([params, [callback]]) Retrieve mapping definition of a specific field. -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-get-field-mapping.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-field-mapping.html[the elasticsearch docs] for more about this method. // no examples @@ -3532,7 +3705,7 @@ client.indices.getMapping([params, [callback]]) Retrieve mapping definition of index or index/type. -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-get-mapping.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-mapping.html[the elasticsearch docs] for more about this method. // no examples @@ -3571,7 +3744,7 @@ client.indices.getSettings([params, [callback]]) Retrieve settings for one or more (or all) indices. -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-get-settings.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-settings.html[the elasticsearch docs] for more about this method. // no examples @@ -3614,7 +3787,7 @@ client.indices.getTemplate([params, [callback]]) Retrieve an index template by its name. -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-templates.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html[the elasticsearch docs] for more about this method. // no examples @@ -3643,7 +3816,7 @@ client.indices.getUpgrade([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-upgrade.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-upgrade.html[the elasticsearch docs] for more about this method. // no examples @@ -3680,7 +3853,7 @@ client.indices.getWarmer([params, [callback]]) Retreieve an index warmer. -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-warmers.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-warmers.html[the elasticsearch docs] for more about this method. // no examples @@ -3721,7 +3894,7 @@ client.indices.open([params, [callback]]) Open a closed index, making it available for search. -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-open-close.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-open-close.html[the elasticsearch docs] for more about this method. // no examples @@ -3760,7 +3933,7 @@ client.indices.optimize([params, [callback]]) Explicitly optimize one or more indices. -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-optimize.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-optimize.html[the elasticsearch docs] for more about this method. // no examples @@ -3805,7 +3978,7 @@ client.indices.putAlias([params, [callback]]) Create an alias for a specific index/indices. -The default method is `PUT` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-aliases.html[the elasticsearch docs] for more about this method. +The default method is `PUT` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html[the elasticsearch docs] for more about this method. // no examples @@ -3834,7 +4007,7 @@ client.indices.putMapping([params, [callback]]) Register specific mapping definition for a specific type. -The default method is `PUT` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-put-mapping.html[the elasticsearch docs] for more about this method. +The default method is `PUT` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-put-mapping.html[the elasticsearch docs] for more about this method. // no examples @@ -3877,7 +4050,7 @@ client.indices.putSettings([params, [callback]]) Change specific index level settings in real time. -The default method is `PUT` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-update-settings.html[the elasticsearch docs] for more about this method. +The default method is `PUT` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-update-settings.html[the elasticsearch docs] for more about this method. // no examples @@ -3916,7 +4089,7 @@ client.indices.putTemplate([params, [callback]]) Create an index template that will automatically be applied to new indices created. -The default method is `PUT` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-templates.html[the elasticsearch docs] for more about this method. +The default method is `PUT` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html[the elasticsearch docs] for more about this method. // no examples @@ -3949,7 +4122,7 @@ client.indices.putWarmer([params, [callback]]) Create an index warmer to run registered search requests to warm up the index before it is available for search. -The default method is `PUT` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-warmers.html[the elasticsearch docs] for more about this method. +The default method is `PUT` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-warmers.html[the elasticsearch docs] for more about this method. // no examples @@ -3992,7 +4165,7 @@ client.indices.recovery([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-recovery.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-recovery.html[the elasticsearch docs] for more about this method. // no examples @@ -4021,7 +4194,7 @@ client.indices.refresh([params, [callback]]) Explicitly refresh one or more index, making all operations performed since the last refresh available for search. -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-refresh.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-refresh.html[the elasticsearch docs] for more about this method. // no examples @@ -4060,7 +4233,7 @@ client.indices.segments([params, [callback]]) Retrieve low level segments information that a Lucene index (shard level) is built with. -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-segments.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-segments.html[the elasticsearch docs] for more about this method. // no examples @@ -4101,7 +4274,7 @@ client.indices.shardStores([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-shards-stores.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-shards-stores.html[the elasticsearch docs] for more about this method. // no examples @@ -4140,7 +4313,7 @@ client.indices.stats([params, [callback]]) Retrieve statistics on different operations happening on an index. -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-stats.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-stats.html[the elasticsearch docs] for more about this method. // no examples @@ -4184,7 +4357,7 @@ client.indices.updateAliases([params, [callback]]) Update specified aliases. -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-aliases.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html[the elasticsearch docs] for more about this method. .Perform an atomic alias swap, for a rotating index [source,js] @@ -4222,7 +4395,7 @@ client.indices.upgrade([params, [callback]]) // no description -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-upgrade.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-upgrade.html[the elasticsearch docs] for more about this method. // no examples @@ -4261,7 +4434,7 @@ client.indices.validateQuery([params, [callback]]) Validate a potentially expensive query without executing it. -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-validate.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/search-validate.html[the elasticsearch docs] for more about this method. // no examples @@ -4322,7 +4495,7 @@ client.nodes.hotThreads([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cluster-nodes-hot-threads.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-nodes-hot-threads.html[the elasticsearch docs] for more about this method. // no examples @@ -4362,7 +4535,7 @@ client.nodes.info([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cluster-nodes-info.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-nodes-info.html[the elasticsearch docs] for more about this method. // no examples @@ -4393,7 +4566,7 @@ client.nodes.stats([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cluster-nodes-stats.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-nodes-stats.html[the elasticsearch docs] for more about this method. // no examples @@ -4441,7 +4614,7 @@ client.snapshot.create([params, [callback]]) // no description -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/modules-snapshots.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html[the elasticsearch docs] for more about this method. // no examples @@ -4470,7 +4643,7 @@ client.snapshot.createRepository([params, [callback]]) // no description -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/modules-snapshots.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html[the elasticsearch docs] for more about this method. // no examples @@ -4499,7 +4672,7 @@ client.snapshot.delete([params, [callback]]) // no description -The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/modules-snapshots.html[the elasticsearch docs] for more about this method. +The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html[the elasticsearch docs] for more about this method. // no examples @@ -4526,7 +4699,7 @@ client.snapshot.deleteRepository([params, [callback]]) // no description -The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/modules-snapshots.html[the elasticsearch docs] for more about this method. +The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html[the elasticsearch docs] for more about this method. // no examples @@ -4553,7 +4726,7 @@ client.snapshot.get([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/modules-snapshots.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html[the elasticsearch docs] for more about this method. // no examples @@ -4580,7 +4753,7 @@ client.snapshot.getRepository([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/modules-snapshots.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html[the elasticsearch docs] for more about this method. // no examples @@ -4607,7 +4780,7 @@ client.snapshot.restore([params, [callback]]) // no description -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/modules-snapshots.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html[the elasticsearch docs] for more about this method. // no examples @@ -4636,7 +4809,7 @@ client.snapshot.status([params, [callback]]) // no description -The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/modules-snapshots.html[the elasticsearch docs] for more about this method. +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html[the elasticsearch docs] for more about this method. // no examples @@ -4663,7 +4836,7 @@ client.snapshot.verifyRepository([params, [callback]]) // no description -The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/modules-snapshots.html[the elasticsearch docs] for more about this method. +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html[the elasticsearch docs] for more about this method. // no examples @@ -4679,3 +4852,69 @@ The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/tasks-cancel.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`nodeId`:: +`String, String[], Boolean` -- A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes +`actions`:: +`String, String[], Boolean` -- A comma-separated list of actions that should be cancelled. Leave empty to cancel all. +`parentNode`:: +`String` -- Cancel tasks with specified parent node. +`parentTask`:: +`Number` -- Cancel tasks with specified parent task id. Set to -1 to cancel all. +`taskId`:: +`Number` -- Cancel the task with specified id + +link:#[back to top] + +[[api-tasks-list]] +=== `tasks.list` + +[source,js] +-------- +client.tasks.list([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/tasks-list.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`nodeId`:: +`String, String[], Boolean` -- A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes +`actions`:: +`String, String[], Boolean` -- A comma-separated list of actions that should be returned. Leave empty to return all. +`detailed`:: +`Boolean` -- Return detailed task information (default: false) +`parentNode`:: +`String` -- Return tasks with specified parent node. +`parentTask`:: +`Number` -- Return tasks with specified parent task id. Set to -1 to return all. +`waitForCompletion`:: +`Boolean` -- Wait for the matching tasks to complete (default: false) +`taskId`:: +`Number` -- Return the task with specified id + +link:#[back to top] diff --git a/docs/api_methods_2_1.asciidoc b/docs/api_methods_2_1.asciidoc new file mode 100644 index 000000000..d7a39b435 --- /dev/null +++ b/docs/api_methods_2_1.asciidoc @@ -0,0 +1,4681 @@ +[[api-reference-2-1]] +== 2.1 API + + +NOTE: At this time, you must opt into the 2.1 API by setting the `apiVersion` config parameter. + + +[[api-bulk-2-1]] +=== `bulk` + +[source,js] +-------- +client.bulk([params, [callback]]) +-------- + +Perform many index/delete operations in a single API call. + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/docs-bulk.html[the elasticsearch docs] for more about this method. + +.Perform three operations in a single request +[source,js] +--------- +client.bulk({ + body: [ + // action description + { index: { _index: 'myindex', _type: 'mytype', _id: 1 } }, + // the document to index + { title: 'foo' }, + // action description + { update: { _index: 'myindex', _type: 'mytype', _id: 2 } }, + // the document to update + { doc: { title: 'foo' } }, + // action description + { delete: { _index: 'myindex', _type: 'mytype', _id: 3 } }, + // no document needed for this delete + ] +}, function (err, resp) { + // ... +}); +--------- + + +*Params* + +[horizontal] +`consistency`:: +`String` -- Explicit write consistency setting for the operation +Options::: + * `"one"` + * `"quorum"` + * `"all"` + +`refresh`:: +`Boolean` -- Refresh the index after performing the operation +`routing`:: +`String` -- Specific routing value +`timeout`:: +`Date, Number` -- Explicit operation timeout +`type`:: +`String` -- Default document type for items which don't provide one +`fields`:: +`String, String[], Boolean` -- Default comma-separated list of fields to return in the response for updates +`index`:: +`String` -- Default index for items which don't provide one + +link:#[back to top] + +[[api-clearscroll-2-1]] +=== `clearScroll` + +[source,js] +-------- +client.clearScroll([params, [callback]]) +-------- + +Clear the scroll request created by specifying the scroll parameter to search. + +The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-request-scroll.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`scrollId`:: +`String, String[], Boolean` -- A comma-separated list of scroll IDs to clear + +link:#[back to top] + +[[api-count-2-1]] +=== `count` + +[source,js] +-------- +client.count([params, [callback]]) +-------- + +Get the number of documents for the cluster, index, type, or a query. + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-count.html[the elasticsearch docs] for more about this method. + +.Get the number of all documents in the cluster +[source,js] +--------- +client.count(function (error, response, status) { + // check for and handle error + var count = response.count; +}); +--------- + +.Get the number of documents in an index +[source,js] +--------- +client.count({ + index: 'index_name' +}, function (error, response) { + // ... +}); +--------- + +.Get the number of documents matching a query +[source,js] +--------- +client.count({ + index: 'index_name', + body: { + query: { + filtered: { + filter: { + terms: { + foo: ['bar'] + } + } + } + } + } +}, function (err, response) { + // ... +}); +--------- + + + +*Params* + +[horizontal] +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`minScore`:: +`Number` -- Include only documents with a specific `_score` value in the result +`preference`:: +`String` -- Specify the node or shard the operation should be performed on (default: random) +`routing`:: +`String` -- Specific routing value +`q`:: +`String` -- Query in the Lucene query string syntax +`analyzer`:: +`String` -- The analyzer to use for the query string +`analyzeWildcard`:: +`Boolean` -- Specify whether wildcard and prefix queries should be analyzed (default: false) +`[defaultOperator=OR]`:: +`String` -- The default operator for query string query (AND or OR) +Options::: + * `"AND"` + * `"OR"` + +`df`:: +`String` -- The field to use as default where no field prefix is given in the query string +`lenient`:: +`Boolean` -- Specify whether format-based query failures (such as providing text to a numeric field) should be ignored +`lowercaseExpandedTerms`:: +`Boolean` -- Specify whether query terms should be lowercased +`index`:: +`String, String[], Boolean` -- A comma-separated list of indices to restrict the results +`type`:: +`String, String[], Boolean` -- A comma-separated list of types to restrict the results + +link:#[back to top] + +[[api-countpercolate-2-1]] +=== `countPercolate` + +[source,js] +-------- +client.countPercolate([params, [callback]]) +-------- + +// no description + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-percolate.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`routing`:: +`String, String[], Boolean` -- A comma-separated list of specific routing values +`preference`:: +`String` -- Specify the node or shard the operation should be performed on (default: random) +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`percolateIndex`:: +`String` -- The index to count percolate the document into. Defaults to index. +`percolateType`:: +`String` -- The type to count percolate document into. Defaults to type. +`version`:: +`Number` -- Explicit version number for concurrency control +`versionType`:: +`String` -- Specific version type +Options::: + * `"internal"` + * `"external"` + * `"external_gte"` + * `"force"` + +`index`:: +`String` -- The index of the document being count percolated. +`type`:: +`String` -- The type of the document being count percolated. +`id`:: +`String` -- Substitute the document in the request body with a document that is known by the specified id. On top of the id, the index and type parameter will be used to retrieve the document from within the cluster. + +link:#[back to top] + +[[api-create-2-1]] +=== `create` + +[source,js] +-------- +client.create([params, [callback]]) +-------- + +Adds a typed JSON document in a specific index, making it searchable. If a document with the same `index`, `type`, and `id` already exists, an error will occur. + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/docs-index_.html[the elasticsearch docs] for more about this method. + +.Create a document +[source,js] +--------- +client.create({ + index: 'myindex', + type: 'mytype', + id: '1', + body: { + title: 'Test 1', + tags: ['y', 'z'], + published: true, + published_at: '2013-01-01', + counter: 1 + } +}, function (error, response) { + // ... +}); +--------- + + +*Params* + +[horizontal] +`consistency`:: +`String` -- Explicit write consistency setting for the operation +Options::: + * `"one"` + * `"quorum"` + * `"all"` + +`parent`:: +`String` -- ID of the parent document +`refresh`:: +`Boolean` -- Refresh the index after performing the operation +`routing`:: +`String` -- Specific routing value +`timeout`:: +`Date, Number` -- Explicit operation timeout +`timestamp`:: +`Date, Number` -- Explicit timestamp for the document +`ttl`:: +`Duration` -- Expiration time for the document +`version`:: +`Number` -- Explicit version number for concurrency control +`versionType`:: +`String` -- Specific version type +Options::: + * `"internal"` + * `"external"` + * `"external_gte"` + * `"force"` + +`id`:: +`String` -- Document ID +`index`:: +`String` -- The name of the index +`type`:: +`String` -- The type of the document + +link:#[back to top] + +[[api-delete-2-1]] +=== `delete` + +[source,js] +-------- +client.delete([params, [callback]]) +-------- + +Delete a typed JSON document from a specific index based on its id. + +The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/docs-delete.html[the elasticsearch docs] for more about this method. + +.Delete the document `/myindex/mytype/1` +[source,js] +--------- +client.delete({ + index: 'myindex', + type: 'mytype', + id: '1' +}, function (error, response) { + // ... +}); +--------- + + +*Params* + +[horizontal] +`consistency`:: +`String` -- Specific write consistency setting for the operation +Options::: + * `"one"` + * `"quorum"` + * `"all"` + +`parent`:: +`String` -- ID of parent document +`refresh`:: +`Boolean` -- Refresh the index after performing the operation +`routing`:: +`String` -- Specific routing value +`timeout`:: +`Date, Number` -- Explicit operation timeout +`version`:: +`Number` -- Explicit version number for concurrency control +`versionType`:: +`String` -- Specific version type +Options::: + * `"internal"` + * `"external"` + * `"external_gte"` + * `"force"` + +`id`:: +`String` -- The document ID +`index`:: +`String` -- The name of the index +`type`:: +`String` -- The type of the document + +link:#[back to top] + +[[api-deletescript-2-1]] +=== `deleteScript` + +[source,js] +-------- +client.deleteScript([params, [callback]]) +-------- + +// no description + +The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/modules-scripting.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`version`:: +`Number` -- Explicit version number for concurrency control +`versionType`:: +`String` -- Specific version type +Options::: + * `"internal"` + * `"external"` + * `"external_gte"` + * `"force"` + +`id`:: +`String` -- Script ID +`lang`:: +`String` -- Script language + +link:#[back to top] + +[[api-deletetemplate-2-1]] +=== `deleteTemplate` + +[source,js] +-------- +client.deleteTemplate([params, [callback]]) +-------- + +// no description + +The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-template.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`version`:: +`Number` -- Explicit version number for concurrency control +`versionType`:: +`String` -- Specific version type +Options::: + * `"internal"` + * `"external"` + * `"external_gte"` + * `"force"` + +`id`:: +`String` -- Template ID + +link:#[back to top] + +[[api-exists-2-1]] +=== `exists` + +[source,js] +-------- +client.exists([params, [callback]]) +-------- + +Returns a boolean indicating whether or not a given document exists. + +The default method is `HEAD` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/docs-get.html[the elasticsearch docs] for more about this method. + +.Check that the document `/myindex/mytype/1` exist +[source,js] +--------- +client.exists({ + index: 'myindex', + type: 'mytype', + id: 1 +}, function (error, exists) { + if (exists === true) { + // ... + } else { + // ... + } +}); +--------- + + +*Params* + +[horizontal] +`parent`:: +`String` -- The ID of the parent document +`preference`:: +`String` -- Specify the node or shard the operation should be performed on (default: random) +`realtime`:: +`Boolean` -- Specify whether to perform the operation in realtime or search mode +`refresh`:: +`Boolean` -- Refresh the shard containing the document before performing the operation +`routing`:: +`String` -- Specific routing value +`id`:: +`String` -- The document ID +`index`:: +`String` -- The name of the index +`type`:: +`String` -- The type of the document (use `_all` to fetch the first document matching the ID across all types) + +link:#[back to top] + +[[api-explain-2-1]] +=== `explain` + +[source,js] +-------- +client.explain([params, [callback]]) +-------- + +Provides details about a specific document's score in relation to a specific query. It will also tell you if the document matches the specified query. Also check out http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-percolate.html[percolaters]. + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-explain.html[the elasticsearch docs] for more about this method. + +.See how a document is scored against a simple query +[source,js] +--------- +client.explain({ + // the document to test + index: 'myindex', + type: 'mytype', + id: '1', + + // the query to score it against + q: 'field:value' +}, function (error, response) { + // ... +}); +--------- + +.See how a document is scored against a query written in the Query DSL +[source,js] +--------- +client.explain({ + index: 'myindex', + type: 'mytype', + id: '1', + body: { + query: { + match: { title: 'test' } + } + } +}, function (error, response) { + // ... +}); +--------- + + +*Params* + +[horizontal] +`analyzeWildcard`:: +`Boolean` -- Specify whether wildcards and prefix queries in the query string query should be analyzed (default: false) +`analyzer`:: +`String` -- The analyzer for the query string query +`[defaultOperator=OR]`:: +`String` -- The default operator for query string query (AND or OR) +Options::: + * `"AND"` + * `"OR"` + +`df`:: +`String` -- The default field for query string query (default: _all) +`fields`:: +`String, String[], Boolean` -- A comma-separated list of fields to return in the response +`lenient`:: +`Boolean` -- Specify whether format-based query failures (such as providing text to a numeric field) should be ignored +`lowercaseExpandedTerms`:: +`Boolean` -- Specify whether query terms should be lowercased +`parent`:: +`String` -- The ID of the parent document +`preference`:: +`String` -- Specify the node or shard the operation should be performed on (default: random) +`q`:: +`String` -- Query in the Lucene query string syntax +`routing`:: +`String` -- Specific routing value +`_source`:: +`String, String[], Boolean` -- True or false to return the _source field or not, or a list of fields to return +`_sourceExclude`:: +`String, String[], Boolean` -- A list of fields to exclude from the returned _source field +`_sourceInclude`:: +`String, String[], Boolean` -- A list of fields to extract and return from the _source field +`id`:: +`String` -- The document ID +`index`:: +`String` -- The name of the index +`type`:: +`String` -- The type of the document + +link:#[back to top] + +[[api-fieldstats-2-1]] +=== `fieldStats` + +[source,js] +-------- +client.fieldStats([params, [callback]]) +-------- + +// no description + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-field-stats.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`fields`:: +`String, String[], Boolean` -- A comma-separated list of fields for to get field statistics for (min value, max value, and more) +`[level=cluster]`:: +`String` -- Defines if field stats should be returned on a per index level or on a cluster wide level +Options::: + * `"indices"` + * `"cluster"` + +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices + +link:#[back to top] + +[[api-get-2-1]] +=== `get` + +[source,js] +-------- +client.get([params, [callback]]) +-------- + +Get a typed JSON document from the index based on its id. + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/docs-get.html[the elasticsearch docs] for more about this method. + +.Get `/myindex/mytype/1` +[source,js] +--------- +client.get({ + index: 'myindex', + type: 'mytype', + id: 1 +}, function (error, response) { + // ... +}); +--------- + + +*Params* + +[horizontal] +`fields`:: +`String, String[], Boolean` -- A comma-separated list of fields to return in the response +`parent`:: +`String` -- The ID of the parent document +`preference`:: +`String` -- Specify the node or shard the operation should be performed on (default: random) +`realtime`:: +`Boolean` -- Specify whether to perform the operation in realtime or search mode +`refresh`:: +`Boolean` -- Refresh the shard containing the document before performing the operation +`routing`:: +`String` -- Specific routing value +`_source`:: +`String, String[], Boolean` -- True or false to return the _source field or not, or a list of fields to return +`_sourceExclude`:: +`String, String[], Boolean` -- A list of fields to exclude from the returned _source field +`_sourceInclude`:: +`String, String[], Boolean` -- A list of fields to extract and return from the _source field +`version`:: +`Number` -- Explicit version number for concurrency control +`versionType`:: +`String` -- Specific version type +Options::: + * `"internal"` + * `"external"` + * `"external_gte"` + * `"force"` + +`id`:: +`String` -- The document ID +`index`:: +`String` -- The name of the index +`type`:: +`String` -- The type of the document (use `_all` to fetch the first document matching the ID across all types) + +link:#[back to top] + +[[api-getscript-2-1]] +=== `getScript` + +[source,js] +-------- +client.getScript([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/modules-scripting.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`version`:: +`Number` -- Explicit version number for concurrency control +`versionType`:: +`String` -- Specific version type +Options::: + * `"internal"` + * `"external"` + * `"external_gte"` + * `"force"` + +`id`:: +`String` -- Script ID +`lang`:: +`String` -- Script language + +link:#[back to top] + +[[api-getsource-2-1]] +=== `getSource` + +[source,js] +-------- +client.getSource([params, [callback]]) +-------- + +Get the source of a document by its index, type and id. + + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/docs-get.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`parent`:: +`String` -- The ID of the parent document +`preference`:: +`String` -- Specify the node or shard the operation should be performed on (default: random) +`realtime`:: +`Boolean` -- Specify whether to perform the operation in realtime or search mode +`refresh`:: +`Boolean` -- Refresh the shard containing the document before performing the operation +`routing`:: +`String` -- Specific routing value +`_source`:: +`String, String[], Boolean` -- True or false to return the _source field or not, or a list of fields to return +`_sourceExclude`:: +`String, String[], Boolean` -- A list of fields to exclude from the returned _source field +`_sourceInclude`:: +`String, String[], Boolean` -- A list of fields to extract and return from the _source field +`version`:: +`Number` -- Explicit version number for concurrency control +`versionType`:: +`String` -- Specific version type +Options::: + * `"internal"` + * `"external"` + * `"external_gte"` + * `"force"` + +`id`:: +`String` -- The document ID +`index`:: +`String` -- The name of the index +`type`:: +`String` -- The type of the document; use `_all` to fetch the first document matching the ID across all types + +link:#[back to top] + +[[api-gettemplate-2-1]] +=== `getTemplate` + +[source,js] +-------- +client.getTemplate([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-template.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`version`:: +`Number` -- Explicit version number for concurrency control +`versionType`:: +`String` -- Specific version type +Options::: + * `"internal"` + * `"external"` + * `"external_gte"` + * `"force"` + +`id`:: +`String` -- Template ID + +link:#[back to top] + +[[api-index-2-1]] +=== `index` + +[source,js] +-------- +client.index([params, [callback]]) +-------- + +Stores a typed JSON document in an index, making it searchable. When the `id` param is not set, a unique id will be auto-generated. When you specify an `id` either a new document will be created, or an existing document will be updated. To enforce "put-if-absent" behavior set the `opType` to `"create"` or use the `create()` method. + +Optimistic concurrency control is performed, when the `version` argument is specified. By default, no version checks are performed. + +By default, the document will be available for `get()` actions immediately, but will only be available for searching after an index refresh (which can happen automatically or manually). See <>. + + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/docs-index_.html[the elasticsearch docs] for more about this method. + +.Create or update a document +[source,js] +--------- +client.index({ + index: 'myindex', + type: 'mytype', + id: '1', + body: { + title: 'Test 1', + tags: ['y', 'z'], + published: true, + } +}, function (error, response) { + +}); +--------- + + +*Params* + +[horizontal] +`consistency`:: +`String` -- Explicit write consistency setting for the operation +Options::: + * `"one"` + * `"quorum"` + * `"all"` + +`parent`:: +`String` -- ID of the parent document +`refresh`:: +`Boolean` -- Refresh the index after performing the operation +`routing`:: +`String` -- Specific routing value +`timeout`:: +`Date, Number` -- Explicit operation timeout +`timestamp`:: +`Date, Number` -- Explicit timestamp for the document +`ttl`:: +`Duration` -- Expiration time for the document +`version`:: +`Number` -- Explicit version number for concurrency control +`versionType`:: +`String` -- Specific version type +Options::: + * `"internal"` + * `"external"` + * `"external_gte"` + * `"force"` + +`id`:: +`String` -- Document ID +`index`:: +`String` -- The name of the index +`type`:: +`String` -- The type of the document + +link:#[back to top] + +[[api-info-2-1]] +=== `info` + +[source,js] +-------- +client.info([params, [callback]]) +-------- + +Get basic info from the current cluster. + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/[the elasticsearch docs] for more about this method. + +// no examples + + + +[[api-mget-2-1]] +=== `mget` + +[source,js] +-------- +client.mget([params, [callback]]) +-------- + +Get multiple documents based on an index, type (optional) and ids. The body required by mget can take two forms: an array of document locations, or an array of document ids. + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/docs-multi-get.html[the elasticsearch docs] for more about this method. + +.An array of doc locations. Useful for getting documents from different indices. +[source,js] +--------- +client.mget({ + body: { + docs: [ + { _index: 'indexA', _type: 'typeA', _id: '1' }, + { _index: 'indexB', _type: 'typeB', _id: '1' }, + { _index: 'indexC', _type: 'typeC', _id: '1' } + ] + } +}, function(error, response){ + // ... +}); +--------- + +.An array of ids. You must also specify the `index` and `type` that apply to all of the ids. +[source,js] +--------- +client.mget({ + index: 'myindex', + type: 'mytype', + body: { + ids: [1, 2, 3] + } +}, function(error, response){ + // ... +}); +--------- + + +*Params* + +[horizontal] +`fields`:: +`String, String[], Boolean` -- A comma-separated list of fields to return in the response +`preference`:: +`String` -- Specify the node or shard the operation should be performed on (default: random) +`realtime`:: +`Boolean` -- Specify whether to perform the operation in realtime or search mode +`refresh`:: +`Boolean` -- Refresh the shard containing the document before performing the operation +`_source`:: +`String, String[], Boolean` -- True or false to return the _source field or not, or a list of fields to return +`_sourceExclude`:: +`String, String[], Boolean` -- A list of fields to exclude from the returned _source field +`_sourceInclude`:: +`String, String[], Boolean` -- A list of fields to extract and return from the _source field +`index`:: +`String` -- The name of the index +`type`:: +`String` -- The type of the document + +link:#[back to top] + +[[api-mpercolate-2-1]] +=== `mpercolate` + +[source,js] +-------- +client.mpercolate([params, [callback]]) +-------- + +// no description + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-percolate.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`index`:: +`String` -- The index of the document being count percolated to use as default +`type`:: +`String` -- The type of the document being percolated to use as default. + +link:#[back to top] + +[[api-msearch-2-1]] +=== `msearch` + +[source,js] +-------- +client.msearch([params, [callback]]) +-------- + +Execute several search requests within the same request. + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-multi-search.html[the elasticsearch docs] for more about this method. + +.Perform multiple different searches, the body is made up of meta/data pairs +[source,js] +--------- +client.msearch({ + body: [ + // match all query, on all indices and types + {}, + { query: { match_all: {} } }, + + // query_string query, on index/mytype + { index: 'myindex', type: 'mytype' }, + { query: { query_string: { query: '"Test 1"' } } } + ] +}); +--------- + + + +*Params* + +[horizontal] +`searchType`:: +`String` -- Search operation type +Options::: + * `"query_then_fetch"` + * `"query_and_fetch"` + * `"dfs_query_then_fetch"` + * `"dfs_query_and_fetch"` + * `"count"` + * `"scan"` + +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names to use as default +`type`:: +`String, String[], Boolean` -- A comma-separated list of document types to use as default + +link:#[back to top] + +[[api-mtermvectors-2-1]] +=== `mtermvectors` + +[source,js] +-------- +client.mtermvectors([params, [callback]]) +-------- + +// no description + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/docs-multi-termvectors.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`ids`:: +`String, String[], Boolean` -- A comma-separated list of documents ids. You must define ids as parameter or set "ids" or "docs" in the request body +`termStatistics`:: +`Boolean` -- Specifies if total term frequency and document frequency should be returned. Applies to all returned documents unless otherwise specified in body "params" or "docs". +`[fieldStatistics=true]`:: +`Boolean` -- Specifies if document count, sum of document frequencies and sum of total term frequencies should be returned. Applies to all returned documents unless otherwise specified in body "params" or "docs". +`fields`:: +`String, String[], Boolean` -- A comma-separated list of fields to return. Applies to all returned documents unless otherwise specified in body "params" or "docs". +`[offsets=true]`:: +`Boolean` -- Specifies if term offsets should be returned. Applies to all returned documents unless otherwise specified in body "params" or "docs". +`[positions=true]`:: +`Boolean` -- Specifies if term positions should be returned. Applies to all returned documents unless otherwise specified in body "params" or "docs". +`[payloads=true]`:: +`Boolean` -- Specifies if term payloads should be returned. Applies to all returned documents unless otherwise specified in body "params" or "docs". +`preference`:: +`String` -- Specify the node or shard the operation should be performed on (default: random) .Applies to all returned documents unless otherwise specified in body "params" or "docs". +`routing`:: +`String` -- Specific routing value. Applies to all returned documents unless otherwise specified in body "params" or "docs". +`parent`:: +`String` -- Parent id of documents. Applies to all returned documents unless otherwise specified in body "params" or "docs". +`realtime`:: +`Boolean` -- Specifies if requests are real-time as opposed to near-real-time (default: true). +`version`:: +`Number` -- Explicit version number for concurrency control +`versionType`:: +`String` -- Specific version type +Options::: + * `"internal"` + * `"external"` + * `"external_gte"` + * `"force"` + +`index`:: +`String` -- The index in which the document resides. +`type`:: +`String` -- The type of the document. + +link:#[back to top] + +[[api-percolate-2-1]] +=== `percolate` + +[source,js] +-------- +client.percolate([params, [callback]]) +-------- + +Match a document against registered percolator queries. + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-percolate.html[the elasticsearch docs] for more about this method. + +.First, Register queries named “alert-1” and “alert-2” for the “myindex” index +[source,js] +--------- +client.index({ + index: 'myindex', + type: '.percolator', + id: 'alert-1', + body: { + // This query will be run against documents sent to percolate + query: { + query_string: { + query: 'foo' + } + } + } +}, function (error, response) { + // ... +}); + +client.index({ + index: 'myindex', + type: '.percolator', + id: 'alert-2', + body: { + // This query will also be run against documents sent to percolate + query: { + query_string: { + query: 'bar' + } + } + } +}, function (error, response) { + // ... +}); +--------- + +.Then you can send documents to learn which query `_percolator` queries they match +[source,js] +--------- +client.percolate({ + index: 'myindex', + type: 'mytype', + body: { + doc: { + title: "Foo" + } + } +}, function (error, response) { + // response would equal + // { + // total: 1, + // matches: [ { _index: 'myindex', _id: 'alert-1' } ] + // } +}); + +client.percolate({ + index: 'myindex', + type: 'mytype', + body: { + doc: { + title: "Foo Bar" + } + } +}, function (error, response) { + // response would equal + // { + // total: 2, + // matches: [ + // { _index: 'myindex', _id: 'alert-1' }, + // { _index: 'myindex', _id: 'alert-2' } + // ] + // } +}); +--------- + + +*Params* + +[horizontal] +`routing`:: +`String, String[], Boolean` -- A comma-separated list of specific routing values +`preference`:: +`String` -- Specify the node or shard the operation should be performed on (default: random) +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`percolateIndex`:: +`String` -- The index to percolate the document into. Defaults to index. +`percolateType`:: +`String` -- The type to percolate document into. Defaults to type. +`percolateRouting`:: +`String` -- The routing value to use when percolating the existing document. +`percolatePreference`:: +`String` -- Which shard to prefer when executing the percolate request. +`percolateFormat`:: +`String` -- Return an array of matching query IDs instead of objects +Options::: + * `"ids"` + +`version`:: +`Number` -- Explicit version number for concurrency control +`versionType`:: +`String` -- Specific version type +Options::: + * `"internal"` + * `"external"` + * `"external_gte"` + * `"force"` + +`index`:: +`String` -- The index of the document being percolated. +`type`:: +`String` -- The type of the document being percolated. +`id`:: +`String` -- Substitute the document in the request body with a document that is known by the specified id. On top of the id, the index and type parameter will be used to retrieve the document from within the cluster. + +link:#[back to top] + +[[api-ping-2-1]] +=== `ping` + +[source,js] +-------- +client.ping([params, [callback]]) +-------- + +// no description + +The default method is `HEAD` and the usual <> apply. See http://www.elastic.co/guide/[the elasticsearch docs] for more about this method. + +// no examples + + + +[[api-putscript-2-1]] +=== `putScript` + +[source,js] +-------- +client.putScript([params, [callback]]) +-------- + +// no description + +The default method is `PUT` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/modules-scripting.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`[opType=index]`:: +`String` -- Explicit operation type +Options::: + * `"index"` + * `"create"` + +`version`:: +`Number` -- Explicit version number for concurrency control +`versionType`:: +`String` -- Specific version type +Options::: + * `"internal"` + * `"external"` + * `"external_gte"` + * `"force"` + +`id`:: +`String` -- Script ID +`lang`:: +`String` -- Script language + +link:#[back to top] + +[[api-puttemplate-2-1]] +=== `putTemplate` + +[source,js] +-------- +client.putTemplate([params, [callback]]) +-------- + +// no description + +The default method is `PUT` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-template.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`[opType=index]`:: +`String` -- Explicit operation type +Options::: + * `"index"` + * `"create"` + +`version`:: +`Number` -- Explicit version number for concurrency control +`versionType`:: +`String` -- Specific version type +Options::: + * `"internal"` + * `"external"` + * `"external_gte"` + * `"force"` + +`id`:: +`String` -- Template ID + +link:#[back to top] + +[[api-rendersearchtemplate-2-1]] +=== `renderSearchTemplate` + +[source,js] +-------- +client.renderSearchTemplate([params, [callback]]) +-------- + +// no description + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-template.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`id`:: +`String` -- The id of the stored search template + +link:#[back to top] + +[[api-scroll-2-1]] +=== `scroll` + +[source,js] +-------- +client.scroll([params, [callback]]) +-------- + +Scroll a search request (retrieve the next set of results) after specifying the scroll parameter in a `search()` call. + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-request-scroll.html[the elasticsearch docs] for more about this method. + +.Collect every title in the index that contains the word "test" +[source,js] +--------- +var allTitles = []; + +// first we do a search, and specify a scroll timeout +client.search({ + index: 'myindex', + // Set to 30 seconds because we are calling right back + scroll: '30s', + search_type: 'scan', + fields: ['title'], + q: 'title:test' +}, function getMoreUntilDone(error, response) { + // collect the title from each response + response.hits.hits.forEach(function (hit) { + allTitles.push(hit.fields.title); + }); + + if (response.hits.total !== allTitles.length) { + // now we can call scroll over and over + client.scroll({ + scrollId: response._scroll_id, + scroll: '30s' + }, getMoreUntilDone); + } else { + console.log('every "test" title', allTitles); + } +}); +--------- + + + +*Params* + +[horizontal] +`scroll`:: +`Duration` -- Specify how long a consistent view of the index should be maintained for scrolled search +`scrollId`:: +`String` -- The scroll ID + +link:#[back to top] + +[[api-search-2-1]] +=== `search` + +[source,js] +-------- +client.search([params, [callback]]) +-------- + +Return documents matching a query, aggregations/facets, highlighted snippets, suggestions, and more. Write your queries as either http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-uri-request.html[simple query strings] in the `q` parameter, or by specifying a http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-body.html[full request definition] using the http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl.html[Elasticsearch Query DSL] in the `body` parameter. + +TIP: https://github.com/fullscale/elastic.js[elastic.js], https://github.com/holidayextras/esq[esq], or https://github.com/danpaz/bodybuilder[bodybuilder] can be used to make building query bodies easier. + + + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-search.html[the elasticsearch docs] for more about this method. + +.Search with a simple query string query +[source,js] +--------- +client.search({ + index: 'myindex', + q: 'title:test' +}, function (error, response) { + // ... +}); +--------- + +.Passing a full request definition in the Elasticsearch's Query DSL as a `Hash` +[source,js] +--------- +client.search({ + index: 'myindex', + body: { + query: { + match: { + title: 'test' + } + }, + facets: { + tags: { + terms: { + field: 'tags' + } + } + } + } +}, function (error, response) { + // ... +}); +--------- + + +*Params* + +[horizontal] +`analyzer`:: +`String` -- The analyzer to use for the query string +`analyzeWildcard`:: +`Boolean` -- Specify whether wildcard and prefix queries should be analyzed (default: false) +`[defaultOperator=OR]`:: +`String` -- The default operator for query string query (AND or OR) +Options::: + * `"AND"` + * `"OR"` + +`df`:: +`String` -- The field to use as default where no field prefix is given in the query string +`explain`:: +`Boolean` -- Specify whether to return detailed information about score computation as part of a hit +`fields`:: +`String, String[], Boolean` -- A comma-separated list of fields to return as part of a hit +`fielddataFields`:: +`String, String[], Boolean` -- A comma-separated list of fields to return as the field data representation of a field for each hit +`from`:: +`Number` -- Starting offset (default: 0) +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`lenient`:: +`Boolean` -- Specify whether format-based query failures (such as providing text to a numeric field) should be ignored +`lowercaseExpandedTerms`:: +`Boolean` -- Specify whether query terms should be lowercased +`preference`:: +`String` -- Specify the node or shard the operation should be performed on (default: random) +`q`:: +`String` -- Query in the Lucene query string syntax +`routing`:: +`String, String[], Boolean` -- A comma-separated list of specific routing values +`scroll`:: +`Duration` -- Specify how long a consistent view of the index should be maintained for scrolled search +`searchType`:: +`String` -- Search operation type +Options::: + * `"query_then_fetch"` + * `"dfs_query_then_fetch"` + * `"count"` + * `"scan"` + +`size`:: +`Number` -- Number of hits to return (default: 10) +`sort`:: +`String, String[], Boolean` -- A comma-separated list of : pairs +`_source`:: +`String, String[], Boolean` -- True or false to return the _source field or not, or a list of fields to return +`_sourceExclude`:: +`String, String[], Boolean` -- A list of fields to exclude from the returned _source field +`_sourceInclude`:: +`String, String[], Boolean` -- A list of fields to extract and return from the _source field +`terminateAfter`:: +`Number` -- The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early. +`stats`:: +`String, String[], Boolean` -- Specific 'tag' of the request for logging and statistical purposes +`suggestField`:: +`String` -- Specify which field to use for suggestions +`[suggestMode=missing]`:: +`String` -- Specify suggest mode +Options::: + * `"missing"` + * `"popular"` + * `"always"` + +`suggestSize`:: +`Number` -- How many suggestions to return in response +`suggestText`:: +`Text` -- The source text for which the suggestions should be returned +`timeout`:: +`Date, Number` -- Explicit operation timeout +`trackScores`:: +`Boolean` -- Whether to calculate and return scores even if they are not used for sorting +`version`:: +`Boolean` -- Specify whether to return document version as part of a hit +`requestCache`:: +`Boolean` -- Specify if request cache should be used for this request or not, defaults to index level setting +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices +`type`:: +`String, String[], Boolean` -- A comma-separated list of document types to search; leave empty to perform the operation on all types + +link:#[back to top] + +[[api-searchexists-2-1]] +=== `searchExists` + +[source,js] +-------- +client.searchExists([params, [callback]]) +-------- + +// no description + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-exists.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`minScore`:: +`Number` -- Include only documents with a specific `_score` value in the result +`preference`:: +`String` -- Specify the node or shard the operation should be performed on (default: random) +`routing`:: +`String` -- Specific routing value +`q`:: +`String` -- Query in the Lucene query string syntax +`analyzer`:: +`String` -- The analyzer to use for the query string +`analyzeWildcard`:: +`Boolean` -- Specify whether wildcard and prefix queries should be analyzed (default: false) +`[defaultOperator=OR]`:: +`String` -- The default operator for query string query (AND or OR) +Options::: + * `"AND"` + * `"OR"` + +`df`:: +`String` -- The field to use as default where no field prefix is given in the query string +`lenient`:: +`Boolean` -- Specify whether format-based query failures (such as providing text to a numeric field) should be ignored +`lowercaseExpandedTerms`:: +`Boolean` -- Specify whether query terms should be lowercased +`index`:: +`String, String[], Boolean` -- A comma-separated list of indices to restrict the results +`type`:: +`String, String[], Boolean` -- A comma-separated list of types to restrict the results + +link:#[back to top] + +[[api-searchshards-2-1]] +=== `searchShards` + +[source,js] +-------- +client.searchShards([params, [callback]]) +-------- + +// no description + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-shards.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`preference`:: +`String` -- Specify the node or shard the operation should be performed on (default: random) +`routing`:: +`String` -- Specific routing value +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices +`type`:: +`String, String[], Boolean` -- A comma-separated list of document types to search; leave empty to perform the operation on all types + +link:#[back to top] + +[[api-searchtemplate-2-1]] +=== `searchTemplate` + +[source,js] +-------- +client.searchTemplate([params, [callback]]) +-------- + +// no description + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`preference`:: +`String` -- Specify the node or shard the operation should be performed on (default: random) +`routing`:: +`String, String[], Boolean` -- A comma-separated list of specific routing values +`scroll`:: +`Duration` -- Specify how long a consistent view of the index should be maintained for scrolled search +`searchType`:: +`String` -- Search operation type +Options::: + * `"query_then_fetch"` + * `"query_and_fetch"` + * `"dfs_query_then_fetch"` + * `"dfs_query_and_fetch"` + * `"count"` + * `"scan"` + +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices +`type`:: +`String, String[], Boolean` -- A comma-separated list of document types to search; leave empty to perform the operation on all types + +link:#[back to top] + +[[api-suggest-2-1]] +=== `suggest` + +[source,js] +-------- +client.suggest([params, [callback]]) +-------- + +The suggest feature suggests similar looking terms based on a provided text by using a specific suggester. + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-suggesters.html[the elasticsearch docs] for more about this method. + +.Return query terms suggestions (“auto-correction”) +[source,js] +--------- +client.suggest({ +index: 'myindex', +body: { + mysuggester: { + text: 'tset', + term: { + field: 'title' + } + } +} +}, function (error, response) { +// response will be formatted like so: +// +// { +// ... +// mysuggester: [ +// { +// text: "tset", +// ... +// options: [ +// { +// text: "test", +// score: 0.75, +// freq: 5 +// } +// ] +// } +// ] +// } +}); +--------- + + +*Params* + +[horizontal] +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`preference`:: +`String` -- Specify the node or shard the operation should be performed on (default: random) +`routing`:: +`String` -- Specific routing value +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names to restrict the operation; use `_all` or empty string to perform the operation on all indices + +link:#[back to top] + +[[api-termvectors-2-1]] +=== `termvectors` + +[source,js] +-------- +client.termvectors([params, [callback]]) +-------- + +// no description + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/docs-termvectors.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`termStatistics`:: +`Boolean` -- Specifies if total term frequency and document frequency should be returned. +`[fieldStatistics=true]`:: +`Boolean` -- Specifies if document count, sum of document frequencies and sum of total term frequencies should be returned. +`dfs`:: +`Boolean` -- Specifies if distributed frequencies should be returned instead shard frequencies. +`fields`:: +`String, String[], Boolean` -- A comma-separated list of fields to return. +`[offsets=true]`:: +`Boolean` -- Specifies if term offsets should be returned. +`[positions=true]`:: +`Boolean` -- Specifies if term positions should be returned. +`[payloads=true]`:: +`Boolean` -- Specifies if term payloads should be returned. +`preference`:: +`String` -- Specify the node or shard the operation should be performed on (default: random). +`routing`:: +`String` -- Specific routing value. +`parent`:: +`String` -- Parent id of documents. +`realtime`:: +`Boolean` -- Specifies if request is real-time as opposed to near-real-time (default: true). +`version`:: +`Number` -- Explicit version number for concurrency control +`versionType`:: +`String` -- Specific version type +Options::: + * `"internal"` + * `"external"` + * `"external_gte"` + * `"force"` + +`index`:: +`String` -- The index in which the document resides. +`type`:: +`String` -- The type of the document. +`id`:: +`String` -- The id of the document, when not specified a doc param should be supplied. + +link:#[back to top] + +[[api-update-2-1]] +=== `update` + +[source,js] +-------- +client.update([params, [callback]]) +-------- + +Update parts of a document. The required body parameter can contain one of two things: + + * a partial document, which will be merged with the existing one. + * a `script` which will update the document content + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/docs-update.html[the elasticsearch docs] for more about this method. + +.Update document title using partial document +[source,js] +--------- +client.update({ + index: 'myindex', + type: 'mytype', + id: '1', + body: { + // put the partial document under the `doc` key + doc: { + title: 'Updated' + } + } +}, function (error, response) { + // ... +}) +--------- + +.Add a tag to document `tags` property using a `script` +[source,js] +--------- +client.update({ + index: 'myindex', + type: 'mytype', + id: '1', + body: { + script: 'ctx._source.tags += tag', + params: { tag: 'some new tag' } + } +}, function (error, response) { + // ... +}); +--------- + +.Increment a document counter by 1 or initialize it, when the document does not exist +[source,js] +--------- +client.update({ + index: 'myindex', + type: 'mytype', + id: '777', + body: { + script: 'ctx._source.counter += 1', + upsert: { + counter: 1 + } + } +}, function (error, response) { + // ... +}) +--------- + +.Delete a document if it's tagged “to-delete” +[source,js] +--------- +client.update({ + index: 'myindex', + type: 'mytype', + id: '1', + body: { + script: 'ctx._source.tags.contains(tag) ? ctx.op = "delete" : ctx.op = "none"', + params: { + tag: 'to-delete' + } + } +}, function (error, response) { + // ... +}); +--------- + + +*Params* + +[horizontal] +`consistency`:: +`String` -- Explicit write consistency setting for the operation +Options::: + * `"one"` + * `"quorum"` + * `"all"` + +`fields`:: +`String, String[], Boolean` -- A comma-separated list of fields to return in the response +`lang`:: +`String` -- The script language (default: groovy) +`parent`:: +`String` -- ID of the parent document. Is is only used for routing and when for the upsert request +`refresh`:: +`Boolean` -- Refresh the index after performing the operation +`retryOnConflict`:: +`Number` -- Specify how many times should the operation be retried when a conflict occurs (default: 0) +`routing`:: +`String` -- Specific routing value +`script`:: +`Anything` -- The URL-encoded script definition (instead of using request body) +`scriptId`:: +`Anything` -- The id of a stored script +`scriptedUpsert`:: +`Boolean` -- True if the script referenced in script or script_id should be called to perform inserts - defaults to false +`timeout`:: +`Date, Number` -- Explicit operation timeout +`timestamp`:: +`Date, Number` -- Explicit timestamp for the document +`ttl`:: +`Duration` -- Expiration time for the document +`version`:: +`Number` -- Explicit version number for concurrency control +`versionType`:: +`String` -- Specific version type +Options::: + * `"internal"` + * `"force"` + +`id`:: +`String` -- Document ID +`index`:: +`String` -- The name of the index +`type`:: +`String` -- The type of the document + +link:#[back to top] + +[[api-cat-aliases-2-1]] +=== `cat.aliases` + +[source,js] +-------- +client.cat.aliases([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/cat.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`h`:: +`String, String[], Boolean` -- Comma-separated list of column names to display +`help`:: +`Boolean` -- Return help information +`v`:: +`Boolean` -- Verbose mode. Display column headers +`name`:: +`String, String[], Boolean` -- A comma-separated list of alias names to return + +link:#[back to top] + +[[api-cat-allocation-2-1]] +=== `cat.allocation` + +[source,js] +-------- +client.cat.allocation([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-allocation.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`bytes`:: +`String` -- The unit in which to display byte values +Options::: + * `"b"` + * `"k"` + * `"m"` + * `"g"` + +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`h`:: +`String, String[], Boolean` -- Comma-separated list of column names to display +`help`:: +`Boolean` -- Return help information +`v`:: +`Boolean` -- Verbose mode. Display column headers +`nodeId`:: +`String, String[], Boolean` -- A comma-separated list of node IDs or names to limit the returned information + +link:#[back to top] + +[[api-cat-count-2-1]] +=== `cat.count` + +[source,js] +-------- +client.cat.count([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-count.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`h`:: +`String, String[], Boolean` -- Comma-separated list of column names to display +`help`:: +`Boolean` -- Return help information +`v`:: +`Boolean` -- Verbose mode. Display column headers +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names to limit the returned information + +link:#[back to top] + +[[api-cat-fielddata-2-1]] +=== `cat.fielddata` + +[source,js] +-------- +client.cat.fielddata([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-fielddata.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`bytes`:: +`String` -- The unit in which to display byte values +Options::: + * `"b"` + * `"k"` + * `"m"` + * `"g"` + +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`h`:: +`String, String[], Boolean` -- Comma-separated list of column names to display +`help`:: +`Boolean` -- Return help information +`v`:: +`Boolean` -- Verbose mode. Display column headers +`fields`:: +`String, String[], Boolean` -- A comma-separated list of fields to return the fielddata size + +link:#[back to top] + +[[api-cat-health-2-1]] +=== `cat.health` + +[source,js] +-------- +client.cat.health([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-health.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`h`:: +`String, String[], Boolean` -- Comma-separated list of column names to display +`help`:: +`Boolean` -- Return help information +`[ts=true]`:: +`Boolean` -- Set to false to disable timestamping +`v`:: +`Boolean` -- Verbose mode. Display column headers + +link:#[back to top] + +[[api-cat-help-2-1]] +=== `cat.help` + +[source,js] +-------- +client.cat.help([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`help`:: +`Boolean` -- Return help information + +link:#[back to top] + +[[api-cat-indices-2-1]] +=== `cat.indices` + +[source,js] +-------- +client.cat.indices([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-indices.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`bytes`:: +`String` -- The unit in which to display byte values +Options::: + * `"b"` + * `"k"` + * `"m"` + * `"g"` + +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`h`:: +`String, String[], Boolean` -- Comma-separated list of column names to display +`help`:: +`Boolean` -- Return help information +`pri`:: +`Boolean` -- Set to true to return stats only for primary shards +`v`:: +`Boolean` -- Verbose mode. Display column headers +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names to limit the returned information + +link:#[back to top] + +[[api-cat-master-2-1]] +=== `cat.master` + +[source,js] +-------- +client.cat.master([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-master.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`h`:: +`String, String[], Boolean` -- Comma-separated list of column names to display +`help`:: +`Boolean` -- Return help information +`v`:: +`Boolean` -- Verbose mode. Display column headers + +link:#[back to top] + +[[api-cat-nodeattrs-2-1]] +=== `cat.nodeattrs` + +[source,js] +-------- +client.cat.nodeattrs([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-nodeattrs.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`h`:: +`String, String[], Boolean` -- Comma-separated list of column names to display +`help`:: +`Boolean` -- Return help information +`v`:: +`Boolean` -- Verbose mode. Display column headers + +link:#[back to top] + +[[api-cat-nodes-2-1]] +=== `cat.nodes` + +[source,js] +-------- +client.cat.nodes([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-nodes.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`h`:: +`String, String[], Boolean` -- Comma-separated list of column names to display +`help`:: +`Boolean` -- Return help information +`v`:: +`Boolean` -- Verbose mode. Display column headers + +link:#[back to top] + +[[api-cat-pendingtasks-2-1]] +=== `cat.pendingTasks` + +[source,js] +-------- +client.cat.pendingTasks([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-pending-tasks.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`h`:: +`String, String[], Boolean` -- Comma-separated list of column names to display +`help`:: +`Boolean` -- Return help information +`v`:: +`Boolean` -- Verbose mode. Display column headers + +link:#[back to top] + +[[api-cat-plugins-2-1]] +=== `cat.plugins` + +[source,js] +-------- +client.cat.plugins([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-plugins.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`h`:: +`String, String[], Boolean` -- Comma-separated list of column names to display +`help`:: +`Boolean` -- Return help information +`v`:: +`Boolean` -- Verbose mode. Display column headers + +link:#[back to top] + +[[api-cat-recovery-2-1]] +=== `cat.recovery` + +[source,js] +-------- +client.cat.recovery([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-recovery.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`bytes`:: +`String` -- The unit in which to display byte values +Options::: + * `"b"` + * `"k"` + * `"m"` + * `"g"` + +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`h`:: +`String, String[], Boolean` -- Comma-separated list of column names to display +`help`:: +`Boolean` -- Return help information +`v`:: +`Boolean` -- Verbose mode. Display column headers +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names to limit the returned information + +link:#[back to top] + +[[api-cat-repositories-2-1]] +=== `cat.repositories` + +[source,js] +-------- +client.cat.repositories([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-repositories.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`h`:: +`String, String[], Boolean` -- Comma-separated list of column names to display +`help`:: +`Boolean` -- Return help information +`v`:: +`Boolean` -- Verbose mode. Display column headers + +link:#[back to top] + +[[api-cat-segments-2-1]] +=== `cat.segments` + +[source,js] +-------- +client.cat.segments([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-segments.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`h`:: +`String, String[], Boolean` -- Comma-separated list of column names to display +`help`:: +`Boolean` -- Return help information +`v`:: +`Boolean` -- Verbose mode. Display column headers +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names to limit the returned information + +link:#[back to top] + +[[api-cat-shards-2-1]] +=== `cat.shards` + +[source,js] +-------- +client.cat.shards([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-shards.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`h`:: +`String, String[], Boolean` -- Comma-separated list of column names to display +`help`:: +`Boolean` -- Return help information +`v`:: +`Boolean` -- Verbose mode. Display column headers +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names to limit the returned information + +link:#[back to top] + +[[api-cat-snapshots-2-1]] +=== `cat.snapshots` + +[source,js] +-------- +client.cat.snapshots([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-snapshots.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`h`:: +`String, String[], Boolean` -- Comma-separated list of column names to display +`help`:: +`Boolean` -- Return help information +`v`:: +`Boolean` -- Verbose mode. Display column headers +`repository`:: +`String, String[], Boolean` -- Name of repository from which to fetch the snapshot information + +link:#[back to top] + +[[api-cat-threadpool-2-1]] +=== `cat.threadPool` + +[source,js] +-------- +client.cat.threadPool([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cat-thread-pool.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`h`:: +`String, String[], Boolean` -- Comma-separated list of column names to display +`help`:: +`Boolean` -- Return help information +`v`:: +`Boolean` -- Verbose mode. Display column headers +`fullId`:: +`Boolean` -- Enables displaying the complete node ids + +link:#[back to top] + +[[api-cluster-getsettings-2-1]] +=== `cluster.getSettings` + +[source,js] +-------- +client.cluster.getSettings([params, [callback]]) +-------- + +Get cluster settings (previously set with `putSettings()`) + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cluster-update-settings.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`flatSettings`:: +`Boolean` -- Return settings in flat format (default: false) +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`timeout`:: +`Date, Number` -- Explicit operation timeout + +link:#[back to top] + +[[api-cluster-health-2-1]] +=== `cluster.health` + +[source,js] +-------- +client.cluster.health([params, [callback]]) +-------- + +Get a very simple status on the health of the cluster. + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cluster-health.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`[level=cluster]`:: +`String` -- Specify the level of detail for returned information +Options::: + * `"cluster"` + * `"indices"` + * `"shards"` + +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`timeout`:: +`Date, Number` -- Explicit operation timeout +`waitForActiveShards`:: +`Number` -- Wait until the specified number of shards is active +`waitForNodes`:: +`String` -- Wait until the specified number of nodes is available +`waitForRelocatingShards`:: +`Number` -- Wait until the specified number of relocating shards is finished +`waitForStatus`:: +`String` -- Wait until cluster is in a specific state +Options::: + * `"green"` + * `"yellow"` + * `"red"` + +`index`:: +`String, String[], Boolean` -- Limit the information returned to a specific index + +link:#[back to top] + +[[api-cluster-pendingtasks-2-1]] +=== `cluster.pendingTasks` + +[source,js] +-------- +client.cluster.pendingTasks([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cluster-pending.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`masterTimeout`:: +`Date, Number` -- Specify timeout for connection to master + +link:#[back to top] + +[[api-cluster-putsettings-2-1]] +=== `cluster.putSettings` + +[source,js] +-------- +client.cluster.putSettings([params, [callback]]) +-------- + +Update cluster wide specific settings. + +The default method is `PUT` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cluster-update-settings.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`flatSettings`:: +`Boolean` -- Return settings in flat format (default: false) +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`timeout`:: +`Date, Number` -- Explicit operation timeout + +link:#[back to top] + +[[api-cluster-reroute-2-1]] +=== `cluster.reroute` + +[source,js] +-------- +client.cluster.reroute([params, [callback]]) +-------- + +Explicitly execute a cluster reroute allocation command including specific commands. + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cluster-reroute.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`dryRun`:: +`Boolean` -- Simulate the operation only and return the resulting state +`explain`:: +`Boolean` -- Return an explanation of why the commands can or cannot be executed +`metric`:: +`String, String[], Boolean` -- Limit the information returned to the specified metrics. Defaults to all but metadata +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`timeout`:: +`Date, Number` -- Explicit operation timeout + +link:#[back to top] + +[[api-cluster-state-2-1]] +=== `cluster.state` + +[source,js] +-------- +client.cluster.state([params, [callback]]) +-------- + +Get comprehensive details about the state of the whole cluster (indices settings, allocations, etc). + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cluster-state.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`masterTimeout`:: +`Date, Number` -- Specify timeout for connection to master +`flatSettings`:: +`Boolean` -- Return settings in flat format (default: false) +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices +`metric`:: +`String, String[], Boolean` -- Limit the information returned to the specified metrics + +link:#[back to top] + +[[api-cluster-stats-2-1]] +=== `cluster.stats` + +[source,js] +-------- +client.cluster.stats([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cluster-stats.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`flatSettings`:: +`Boolean` -- Return settings in flat format (default: false) +`human`:: +`Boolean` -- Whether to return time and byte values in human-readable format. +`timeout`:: +`Date, Number` -- Explicit operation timeout +`nodeId`:: +`String, String[], Boolean` -- A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes + +link:#[back to top] + +[[api-indices-analyze-2-1]] +=== `indices.analyze` + +[source,js] +-------- +client.indices.analyze([params, [callback]]) +-------- + +Perform the analysis process on a text and return the tokens breakdown of the text. + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-analyze.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`analyzer`:: +`String` -- The name of the analyzer to use +`charFilters`:: +`String, String[], Boolean` -- A comma-separated list of character filters to use for the analysis +`field`:: +`String` -- Use the analyzer configured for this field (instead of passing the analyzer name) +`filters`:: +`String, String[], Boolean` -- A comma-separated list of filters to use for the analysis +`index`:: +`String` -- The name of the index to scope the operation +`preferLocal`:: +`Boolean` -- With `true`, specify that a local shard should be used if available, with `false`, use a random shard (default: true) +`text`:: +`String, String[], Boolean` -- The text on which the analysis should be performed (when request body is not used) +`tokenizer`:: +`String` -- The name of the tokenizer to use for the analysis +`[format=detailed]`:: +`String` -- Format of the output +Options::: + * `"detailed"` + * `"text"` + + +link:#[back to top] + +[[api-indices-clearcache-2-1]] +=== `indices.clearCache` + +[source,js] +-------- +client.indices.clearCache([params, [callback]]) +-------- + +Clear either all caches or specific cached associated with one ore more indices. + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-clearcache.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`fieldData`:: +`Boolean` -- Clear field data +`fielddata`:: +`Boolean` -- Clear field data +`fields`:: +`String, String[], Boolean` -- A comma-separated list of fields to clear when using the `field_data` parameter (default: all) +`query`:: +`Boolean` -- Clear query caches +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`index`:: +`String, String[], Boolean` -- A comma-separated list of index name to limit the operation +`recycler`:: +`Boolean` -- Clear the recycler cache +`request`:: +`Boolean` -- Clear request cache + +link:#[back to top] + +[[api-indices-close-2-1]] +=== `indices.close` + +[source,js] +-------- +client.indices.close([params, [callback]]) +-------- + +Close an index to remove its overhead from the cluster. Closed index is blocked for read/write operations. + + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-open-close.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`timeout`:: +`Date, Number` -- Explicit operation timeout +`masterTimeout`:: +`Date, Number` -- Specify timeout for connection to master +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`index`:: +`String, String[], Boolean` -- A comma separated list of indices to close + +link:#[back to top] + +[[api-indices-create-2-1]] +=== `indices.create` + +[source,js] +-------- +client.indices.create([params, [callback]]) +-------- + +Create an index in Elasticsearch. + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-create-index.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`timeout`:: +`Date, Number` -- Explicit operation timeout +`masterTimeout`:: +`Date, Number` -- Specify timeout for connection to master +`updateAllTypes`:: +`Boolean` -- Whether to update the mapping for all fields with the same name across all types or not +`index`:: +`String` -- The name of the index + +link:#[back to top] + +[[api-indices-delete-2-1]] +=== `indices.delete` + +[source,js] +-------- +client.indices.delete([params, [callback]]) +-------- + +Delete an index in Elasticsearch + +The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-delete-index.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`timeout`:: +`Date, Number` -- Explicit operation timeout +`masterTimeout`:: +`Date, Number` -- Specify timeout for connection to master +`index`:: +`String, String[], Boolean` -- A comma-separated list of indices to delete; use `_all` or `*` string to delete all indices + +link:#[back to top] + +[[api-indices-deletealias-2-1]] +=== `indices.deleteAlias` + +[source,js] +-------- +client.indices.deleteAlias([params, [callback]]) +-------- + +Delete a specific alias. + +The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-aliases.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`timeout`:: +`Date, Number` -- Explicit timestamp for the document +`masterTimeout`:: +`Date, Number` -- Specify timeout for connection to master +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names (supports wildcards); use `_all` for all indices +`name`:: +`String, String[], Boolean` -- A comma-separated list of aliases to delete (supports wildcards); use `_all` to delete all aliases for the specified indices. + +link:#[back to top] + +[[api-indices-deletetemplate-2-1]] +=== `indices.deleteTemplate` + +[source,js] +-------- +client.indices.deleteTemplate([params, [callback]]) +-------- + +Delete an index template by its name. + +The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-templates.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`timeout`:: +`Date, Number` -- Explicit operation timeout +`masterTimeout`:: +`Date, Number` -- Specify timeout for connection to master +`name`:: +`String` -- The name of the template + +link:#[back to top] + +[[api-indices-deletewarmer-2-1]] +=== `indices.deleteWarmer` + +[source,js] +-------- +client.indices.deleteWarmer([params, [callback]]) +-------- + +Delete an index warmer. + +The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-warmers.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`masterTimeout`:: +`Date, Number` -- Specify timeout for connection to master +`name`:: +`String, String[], Boolean` -- A comma-separated list of warmer names to delete (supports wildcards); use `_all` to delete all warmers in the specified indices. You must specify a name either in the uri or in the parameters. +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names to delete warmers from (supports wildcards); use `_all` to perform the operation on all indices. + +link:#[back to top] + +[[api-indices-exists-2-1]] +=== `indices.exists` + +[source,js] +-------- +client.indices.exists([params, [callback]]) +-------- + +Return a boolean indicating whether given index exists. + +The default method is `HEAD` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-exists.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`index`:: +`String, String[], Boolean` -- A comma-separated list of indices to check + +link:#[back to top] + +[[api-indices-existsalias-2-1]] +=== `indices.existsAlias` + +[source,js] +-------- +client.indices.existsAlias([params, [callback]]) +-------- + +Return a boolean indicating whether given alias exists. + +The default method is `HEAD` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-aliases.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open,closed]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names to filter aliases +`name`:: +`String, String[], Boolean` -- A comma-separated list of alias names to return + +link:#[back to top] + +[[api-indices-existstemplate-2-1]] +=== `indices.existsTemplate` + +[source,js] +-------- +client.indices.existsTemplate([params, [callback]]) +-------- + +// no description + +The default method is `HEAD` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-templates.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`name`:: +`String` -- The name of the template + +link:#[back to top] + +[[api-indices-existstype-2-1]] +=== `indices.existsType` + +[source,js] +-------- +client.indices.existsType([params, [callback]]) +-------- + +Check if a type/types exists in an index/indices. + +The default method is `HEAD` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-types-exists.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names; use `_all` to check the types across all indices +`type`:: +`String, String[], Boolean` -- A comma-separated list of document types to check + +link:#[back to top] + +[[api-indices-flush-2-1]] +=== `indices.flush` + +[source,js] +-------- +client.indices.flush([params, [callback]]) +-------- + +Explicitly flush one or more indices. + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-flush.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`force`:: +`Boolean` -- Whether a flush should be forced even if it is not necessarily needed ie. if no changes will be committed to the index. This is useful if transaction log IDs should be incremented even if no uncommitted changes are present. (This setting can be considered as internal) +`waitIfOngoing`:: +`Boolean` -- If set to true the flush operation will block until the flush can be executed if another flush operation is already executing. The default is false and will cause an exception to be thrown on the shard level if another flush operation is already running. +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names; use `_all` or empty string for all indices + +link:#[back to top] + +[[api-indices-flushsynced-2-1]] +=== `indices.flushSynced` + +[source,js] +-------- +client.indices.flushSynced([params, [callback]]) +-------- + +// no description + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-synced-flush.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names; use `_all` or empty string for all indices + +link:#[back to top] + +[[api-indices-forcemerge-2-1]] +=== `indices.forcemerge` + +[source,js] +-------- +client.indices.forcemerge([params, [callback]]) +-------- + +// no description + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-forcemerge.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`flush`:: +`Boolean` -- Specify whether the index should be flushed after performing the operation (default: true) +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`maxNumSegments`:: +`Number` -- The number of segments the index should be merged into (default: dynamic) +`onlyExpungeDeletes`:: +`Boolean` -- Specify whether the operation should only expunge deleted documents +`operationThreading`:: +`Anything` -- TODO: ? +`waitForMerge`:: +`Boolean` -- Specify whether the request should block until the merge process is finished (default: true) +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices + +link:#[back to top] + +[[api-indices-get-2-1]] +=== `indices.get` + +[source,js] +-------- +client.indices.get([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-get-index.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`ignoreUnavailable`:: +`Boolean` -- Ignore unavailable indexes (default: false) +`allowNoIndices`:: +`Boolean` -- Ignore if a wildcard expression resolves to no concrete indices (default: false) +`[expandWildcards=open]`:: +`String` -- Whether wildcard expressions should get expanded to open or closed indices (default: open) +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`flatSettings`:: +`Boolean` -- Return settings in flat format (default: false) +`human`:: +`Boolean` -- Whether to return version and creation date values in human-readable format. +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names +`feature`:: +`String, String[], Boolean` -- A comma-separated list of features + +link:#[back to top] + +[[api-indices-getalias-2-1]] +=== `indices.getAlias` + +[source,js] +-------- +client.indices.getAlias([params, [callback]]) +-------- + +Retrieve a specified alias. + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-aliases.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names to filter aliases +`name`:: +`String, String[], Boolean` -- A comma-separated list of alias names to return + +link:#[back to top] + +[[api-indices-getaliases-2-1]] +=== `indices.getAliases` + +[source,js] +-------- +client.indices.getAliases([params, [callback]]) +-------- + +Retrieve specified aliases + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-aliases.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`timeout`:: +`Date, Number` -- Explicit operation timeout +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names to filter aliases +`name`:: +`String, String[], Boolean` -- A comma-separated list of alias names to filter + +link:#[back to top] + +[[api-indices-getfieldmapping-2-1]] +=== `indices.getFieldMapping` + +[source,js] +-------- +client.indices.getFieldMapping([params, [callback]]) +-------- + +Retrieve mapping definition of a specific field. + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-get-field-mapping.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`includeDefaults`:: +`Boolean` -- Whether the default mapping values should be returned as well +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names +`type`:: +`String, String[], Boolean` -- A comma-separated list of document types +`fields`:: +`String, String[], Boolean` -- A comma-separated list of fields + +link:#[back to top] + +[[api-indices-getmapping-2-1]] +=== `indices.getMapping` + +[source,js] +-------- +client.indices.getMapping([params, [callback]]) +-------- + +Retrieve mapping definition of index or index/type. + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-get-mapping.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names +`type`:: +`String, String[], Boolean` -- A comma-separated list of document types + +link:#[back to top] + +[[api-indices-getsettings-2-1]] +=== `indices.getSettings` + +[source,js] +-------- +client.indices.getSettings([params, [callback]]) +-------- + +Retrieve settings for one or more (or all) indices. + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-get-settings.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open,closed]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`flatSettings`:: +`Boolean` -- Return settings in flat format (default: false) +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`human`:: +`Boolean` -- Whether to return version and creation date values in human-readable format. +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices +`name`:: +`String, String[], Boolean` -- The name of the settings that should be included + +link:#[back to top] + +[[api-indices-gettemplate-2-1]] +=== `indices.getTemplate` + +[source,js] +-------- +client.indices.getTemplate([params, [callback]]) +-------- + +Retrieve an index template by its name. + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-templates.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`flatSettings`:: +`Boolean` -- Return settings in flat format (default: false) +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`name`:: +`String, String[], Boolean` -- The comma separated names of the index templates + +link:#[back to top] + +[[api-indices-getupgrade-2-1]] +=== `indices.getUpgrade` + +[source,js] +-------- +client.indices.getUpgrade([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-upgrade.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`human`:: +`Boolean` -- Whether to return time and byte values in human-readable format. +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices + +link:#[back to top] + +[[api-indices-getwarmer-2-1]] +=== `indices.getWarmer` + +[source,js] +-------- +client.indices.getWarmer([params, [callback]]) +-------- + +Retreieve an index warmer. + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-warmers.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names to restrict the operation; use `_all` to perform the operation on all indices +`name`:: +`String, String[], Boolean` -- The name of the warmer (supports wildcards); leave empty to get all warmers +`type`:: +`String, String[], Boolean` -- A comma-separated list of document types to restrict the operation; leave empty to perform the operation on all types + +link:#[back to top] + +[[api-indices-open-2-1]] +=== `indices.open` + +[source,js] +-------- +client.indices.open([params, [callback]]) +-------- + +Open a closed index, making it available for search. + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-open-close.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`timeout`:: +`Date, Number` -- Explicit operation timeout +`masterTimeout`:: +`Date, Number` -- Specify timeout for connection to master +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=closed]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`index`:: +`String, String[], Boolean` -- A comma separated list of indices to open + +link:#[back to top] + +[[api-indices-optimize-2-1]] +=== `indices.optimize` + +[source,js] +-------- +client.indices.optimize([params, [callback]]) +-------- + +Explicitly optimize one or more indices. + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-optimize.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`flush`:: +`Boolean` -- Specify whether the index should be flushed after performing the operation (default: true) +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`maxNumSegments`:: +`Number` -- The number of segments the index should be merged into (default: dynamic) +`onlyExpungeDeletes`:: +`Boolean` -- Specify whether the operation should only expunge deleted documents +`operationThreading`:: +`Anything` -- TODO: ? +`waitForMerge`:: +`Boolean` -- Specify whether the request should block until the merge process is finished (default: true) +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices + +link:#[back to top] + +[[api-indices-putalias-2-1]] +=== `indices.putAlias` + +[source,js] +-------- +client.indices.putAlias([params, [callback]]) +-------- + +Create an alias for a specific index/indices. + +The default method is `PUT` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-aliases.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`timeout`:: +`Date, Number` -- Explicit timestamp for the document +`masterTimeout`:: +`Date, Number` -- Specify timeout for connection to master +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names the alias should point to (supports wildcards); use `_all` to perform the operation on all indices. +`name`:: +`String` -- The name of the alias to be created or updated + +link:#[back to top] + +[[api-indices-putmapping-2-1]] +=== `indices.putMapping` + +[source,js] +-------- +client.indices.putMapping([params, [callback]]) +-------- + +Register specific mapping definition for a specific type. + +The default method is `PUT` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-put-mapping.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`timeout`:: +`Date, Number` -- Explicit operation timeout +`masterTimeout`:: +`Date, Number` -- Specify timeout for connection to master +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`updateAllTypes`:: +`Boolean` -- Whether to update the mapping for all fields with the same name across all types or not +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names the mapping should be added to (supports wildcards); use `_all` or omit to add the mapping on all indices. +`type`:: +`String` -- The name of the document type + +link:#[back to top] + +[[api-indices-putsettings-2-1]] +=== `indices.putSettings` + +[source,js] +-------- +client.indices.putSettings([params, [callback]]) +-------- + +Change specific index level settings in real time. + +The default method is `PUT` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-update-settings.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`masterTimeout`:: +`Date, Number` -- Specify timeout for connection to master +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`flatSettings`:: +`Boolean` -- Return settings in flat format (default: false) +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices + +link:#[back to top] + +[[api-indices-puttemplate-2-1]] +=== `indices.putTemplate` + +[source,js] +-------- +client.indices.putTemplate([params, [callback]]) +-------- + +Create an index template that will automatically be applied to new indices created. + +The default method is `PUT` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-templates.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`order`:: +`Number` -- The order for this template when merging multiple matching ones (higher numbers are merged later, overriding the lower numbers) +`create`:: +`Boolean` -- Whether the index template should only be added if new or can also replace an existing one +`timeout`:: +`Date, Number` -- Explicit operation timeout +`masterTimeout`:: +`Date, Number` -- Specify timeout for connection to master +`flatSettings`:: +`Boolean` -- Return settings in flat format (default: false) +`name`:: +`String` -- The name of the template + +link:#[back to top] + +[[api-indices-putwarmer-2-1]] +=== `indices.putWarmer` + +[source,js] +-------- +client.indices.putWarmer([params, [callback]]) +-------- + +Create an index warmer to run registered search requests to warm up the index before it is available for search. + +The default method is `PUT` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-warmers.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`masterTimeout`:: +`Date, Number` -- Specify timeout for connection to master +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) in the search request to warm +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices in the search request to warm. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both, in the search request to warm. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`requestCache`:: +`Boolean` -- Specify whether the request to be warmed should use the request cache, defaults to index level setting +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names to register the warmer for; use `_all` or omit to perform the operation on all indices +`name`:: +`String` -- The name of the warmer +`type`:: +`String, String[], Boolean` -- A comma-separated list of document types to register the warmer for; leave empty to perform the operation on all types + +link:#[back to top] + +[[api-indices-recovery-2-1]] +=== `indices.recovery` + +[source,js] +-------- +client.indices.recovery([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-recovery.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`detailed`:: +`Boolean` -- Whether to display detailed information about shard recovery +`activeOnly`:: +`Boolean` -- Display only those recoveries that are currently on-going +`human`:: +`Boolean` -- Whether to return time and byte values in human-readable format. +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices + +link:#[back to top] + +[[api-indices-refresh-2-1]] +=== `indices.refresh` + +[source,js] +-------- +client.indices.refresh([params, [callback]]) +-------- + +Explicitly refresh one or more index, making all operations performed since the last refresh available for search. + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-refresh.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`force`:: +`Boolean` -- Force a refresh even if not required +`operationThreading`:: +`Anything` -- TODO: ? +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices + +link:#[back to top] + +[[api-indices-segments-2-1]] +=== `indices.segments` + +[source,js] +-------- +client.indices.segments([params, [callback]]) +-------- + +Retrieve low level segments information that a Lucene index (shard level) is built with. + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-segments.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`human`:: +`Boolean` -- Whether to return time and byte values in human-readable format. +`operationThreading`:: +`Anything` -- TODO: ? +`verbose`:: +`Boolean` -- Includes detailed memory usage by Lucene. +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices + +link:#[back to top] + +[[api-indices-shardstores-2-1]] +=== `indices.shardStores` + +[source,js] +-------- +client.indices.shardStores([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-shards-stores.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`status`:: +`String, String[], Boolean` -- A comma-separated list of statuses used to filter on shards to get store information for +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`operationThreading`:: +`Anything` -- TODO: ? +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices + +link:#[back to top] + +[[api-indices-stats-2-1]] +=== `indices.stats` + +[source,js] +-------- +client.indices.stats([params, [callback]]) +-------- + +Retrieve statistics on different operations happening on an index. + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-stats.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`completionFields`:: +`String, String[], Boolean` -- A comma-separated list of fields for `fielddata` and `suggest` index metric (supports wildcards) +`fielddataFields`:: +`String, String[], Boolean` -- A comma-separated list of fields for `fielddata` index metric (supports wildcards) +`fields`:: +`String, String[], Boolean` -- A comma-separated list of fields for `fielddata` and `completion` index metric (supports wildcards) +`groups`:: +`String, String[], Boolean` -- A comma-separated list of search groups for `search` index metric +`human`:: +`Boolean` -- Whether to return time and byte values in human-readable format. +`[level=indices]`:: +`String` -- Return stats aggregated at cluster, index or shard level +Options::: + * `"cluster"` + * `"indices"` + * `"shards"` + +`types`:: +`String, String[], Boolean` -- A comma-separated list of document types for the `indexing` index metric +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices +`metric`:: +`String, String[], Boolean` -- Limit the information returned the specific metrics. + +link:#[back to top] + +[[api-indices-updatealiases-2-1]] +=== `indices.updateAliases` + +[source,js] +-------- +client.indices.updateAliases([params, [callback]]) +-------- + +Update specified aliases. + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-aliases.html[the elasticsearch docs] for more about this method. + +.Perform an atomic alias swap, for a rotating index +[source,js] +--------- +client.indices.updateAliases({ + body: { + actions: [ + { remove: { index: 'logstash-2014.04', alias: 'logstash-current' } }, + { add: { index: 'logstash-2014.05', alias: 'logstash-current' } } + ] + } +}).then(function (response) { + // ... +}, errorHandler); +--------- + + +*Params* + +[horizontal] +`timeout`:: +`Date, Number` -- Request timeout +`masterTimeout`:: +`Date, Number` -- Specify timeout for connection to master + +link:#[back to top] + +[[api-indices-upgrade-2-1]] +=== `indices.upgrade` + +[source,js] +-------- +client.indices.upgrade([params, [callback]]) +-------- + +// no description + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/indices-upgrade.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`waitForCompletion`:: +`Boolean` -- Specify whether the request should block until the all segments are upgraded (default: false) +`onlyAncientSegments`:: +`Boolean` -- If true, only ancient (an older Lucene major release) segments will be upgraded +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices + +link:#[back to top] + +[[api-indices-validatequery-2-1]] +=== `indices.validateQuery` + +[source,js] +-------- +client.indices.validateQuery([params, [callback]]) +-------- + +Validate a potentially expensive query without executing it. + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-validate.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`explain`:: +`Boolean` -- Return detailed information about the error +`ignoreUnavailable`:: +`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed) +`allowNoIndices`:: +`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) +`[expandWildcards=open]`:: +`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both. +Options::: + * `"open"` + * `"closed"` + * `"none"` + * `"all"` + +`operationThreading`:: +`Anything` -- TODO: ? +`q`:: +`String` -- Query in the Lucene query string syntax +`analyzer`:: +`String` -- The analyzer to use for the query string +`analyzeWildcard`:: +`Boolean` -- Specify whether wildcard and prefix queries should be analyzed (default: false) +`[defaultOperator=OR]`:: +`String` -- The default operator for query string query (AND or OR) +Options::: + * `"AND"` + * `"OR"` + +`df`:: +`String` -- The field to use as default where no field prefix is given in the query string +`lenient`:: +`Boolean` -- Specify whether format-based query failures (such as providing text to a numeric field) should be ignored +`lowercaseExpandedTerms`:: +`Boolean` -- Specify whether query terms should be lowercased +`rewrite`:: +`Boolean` -- Provide a more detailed explanation showing the actual Lucene query that will be executed. +`index`:: +`String, String[], Boolean` -- A comma-separated list of index names to restrict the operation; use `_all` or empty string to perform the operation on all indices +`type`:: +`String, String[], Boolean` -- A comma-separated list of document types to restrict the operation; leave empty to perform the operation on all types + +link:#[back to top] + +[[api-nodes-hotthreads-2-1]] +=== `nodes.hotThreads` + +[source,js] +-------- +client.nodes.hotThreads([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cluster-nodes-hot-threads.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`interval`:: +`Date, Number` -- The interval for the second sampling of threads +`snapshots`:: +`Number` -- Number of samples of thread stacktrace (default: 10) +`threads`:: +`Number` -- Specify the number of threads to provide information for (default: 3) +`ignoreIdleThreads`:: +`Boolean` -- Don't show threads that are in known-idle places, such as waiting on a socket select or pulling from an empty task queue (default: true) +`type`:: +`String` -- The type to sample (default: cpu) +Options::: + * `"cpu"` + * `"wait"` + * `"block"` + +`timeout`:: +`Date, Number` -- Explicit operation timeout +`nodeId`:: +`String, String[], Boolean` -- A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes + +link:#[back to top] + +[[api-nodes-info-2-1]] +=== `nodes.info` + +[source,js] +-------- +client.nodes.info([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cluster-nodes-info.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`flatSettings`:: +`Boolean` -- Return settings in flat format (default: false) +`human`:: +`Boolean` -- Whether to return time and byte values in human-readable format. +`timeout`:: +`Date, Number` -- Explicit operation timeout +`nodeId`:: +`String, String[], Boolean` -- A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes +`metric`:: +`String, String[], Boolean` -- A comma-separated list of metrics you wish returned. Leave empty to return all. + +link:#[back to top] + +[[api-nodes-stats-2-1]] +=== `nodes.stats` + +[source,js] +-------- +client.nodes.stats([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/cluster-nodes-stats.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`completionFields`:: +`String, String[], Boolean` -- A comma-separated list of fields for `fielddata` and `suggest` index metric (supports wildcards) +`fielddataFields`:: +`String, String[], Boolean` -- A comma-separated list of fields for `fielddata` index metric (supports wildcards) +`fields`:: +`String, String[], Boolean` -- A comma-separated list of fields for `fielddata` and `completion` index metric (supports wildcards) +`groups`:: +`Boolean` -- A comma-separated list of search groups for `search` index metric +`human`:: +`Boolean` -- Whether to return time and byte values in human-readable format. +`[level=node]`:: +`String` -- Return indices stats aggregated at node, index or shard level +Options::: + * `"node"` + * `"indices"` + * `"shards"` + +`types`:: +`String, String[], Boolean` -- A comma-separated list of document types for the `indexing` index metric +`timeout`:: +`Date, Number` -- Explicit operation timeout +`metric`:: +`String, String[], Boolean` -- Limit the information returned to the specified metrics +`indexMetric`:: +`String, String[], Boolean` -- Limit the information returned for `indices` metric to the specific index metrics. Isn't used if `indices` (or `all`) metric isn't specified. +`nodeId`:: +`String, String[], Boolean` -- A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes + +link:#[back to top] + +[[api-snapshot-create-2-1]] +=== `snapshot.create` + +[source,js] +-------- +client.snapshot.create([params, [callback]]) +-------- + +// no description + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/modules-snapshots.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`waitForCompletion`:: +`Boolean` -- Should this request wait until the operation has completed before returning +`repository`:: +`String` -- A repository name +`snapshot`:: +`String` -- A snapshot name + +link:#[back to top] + +[[api-snapshot-createrepository-2-1]] +=== `snapshot.createRepository` + +[source,js] +-------- +client.snapshot.createRepository([params, [callback]]) +-------- + +// no description + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/modules-snapshots.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`timeout`:: +`Date, Number` -- Explicit operation timeout +`verify`:: +`Boolean` -- Whether to verify the repository after creation +`repository`:: +`String` -- A repository name + +link:#[back to top] + +[[api-snapshot-delete-2-1]] +=== `snapshot.delete` + +[source,js] +-------- +client.snapshot.delete([params, [callback]]) +-------- + +// no description + +The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/modules-snapshots.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`repository`:: +`String` -- A repository name +`snapshot`:: +`String` -- A snapshot name + +link:#[back to top] + +[[api-snapshot-deleterepository-2-1]] +=== `snapshot.deleteRepository` + +[source,js] +-------- +client.snapshot.deleteRepository([params, [callback]]) +-------- + +// no description + +The default method is `DELETE` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/modules-snapshots.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`timeout`:: +`Date, Number` -- Explicit operation timeout +`repository`:: +`String, String[], Boolean` -- A comma-separated list of repository names + +link:#[back to top] + +[[api-snapshot-get-2-1]] +=== `snapshot.get` + +[source,js] +-------- +client.snapshot.get([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/modules-snapshots.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`repository`:: +`String` -- A repository name +`snapshot`:: +`String, String[], Boolean` -- A comma-separated list of snapshot names + +link:#[back to top] + +[[api-snapshot-getrepository-2-1]] +=== `snapshot.getRepository` + +[source,js] +-------- +client.snapshot.getRepository([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/modules-snapshots.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`local`:: +`Boolean` -- Return local information, do not retrieve the state from master node (default: false) +`repository`:: +`String, String[], Boolean` -- A comma-separated list of repository names + +link:#[back to top] + +[[api-snapshot-restore-2-1]] +=== `snapshot.restore` + +[source,js] +-------- +client.snapshot.restore([params, [callback]]) +-------- + +// no description + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/modules-snapshots.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`waitForCompletion`:: +`Boolean` -- Should this request wait until the operation has completed before returning +`repository`:: +`String` -- A repository name +`snapshot`:: +`String` -- A snapshot name + +link:#[back to top] + +[[api-snapshot-status-2-1]] +=== `snapshot.status` + +[source,js] +-------- +client.snapshot.status([params, [callback]]) +-------- + +// no description + +The default method is `GET` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/modules-snapshots.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`repository`:: +`String` -- A repository name +`snapshot`:: +`String, String[], Boolean` -- A comma-separated list of snapshot names + +link:#[back to top] + +[[api-snapshot-verifyrepository-2-1]] +=== `snapshot.verifyRepository` + +[source,js] +-------- +client.snapshot.verifyRepository([params, [callback]]) +-------- + +// no description + +The default method is `POST` and the usual <> apply. See http://www.elastic.co/guide/en/elasticsearch/reference/2.1/modules-snapshots.html[the elasticsearch docs] for more about this method. + +// no examples + + +*Params* + +[horizontal] +`masterTimeout`:: +`Date, Number` -- Explicit operation timeout for connection to master node +`timeout`:: +`Date, Number` -- Explicit operation timeout +`repository`:: +`String` -- A repository name + +link:#[back to top] diff --git a/docs/configuration.asciidoc b/docs/configuration.asciidoc index 520881f15..b5ad70a8a 100644 --- a/docs/configuration.asciidoc +++ b/docs/configuration.asciidoc @@ -51,9 +51,10 @@ Default in Node::: + WARNING: This default will track the latest version of Elasticsearch, and is only intended to be used during development. It is highly recommended that you set this parameter in all code that is headed to production. -Default ::: `'2.1'` +Default ::: `'2.3'` Options in node ::: + * `'2.3'` * `'2.2'` * `'2.1'` * `'2.0'` @@ -70,11 +71,11 @@ Options in node ::: * `'master'` (unstable) Options in the browser ::: + * `'2.3'` * `'2.2'` * `'2.1'` * `'2.0'` * `'1.7'` - * `'1.6'` * `'2.x'` (unstable) * `'master'` (unstable) diff --git a/docs/index.asciidoc b/docs/index.asciidoc index 5b2d04b8d..682c87ac1 100644 --- a/docs/index.asciidoc +++ b/docs/index.asciidoc @@ -20,9 +20,11 @@ include::logging.asciidoc[] include::development.asciidoc[] +include::api_methods.asciidoc[] + include::api_methods_2_2.asciidoc[] -include::api_methods.asciidoc[] +include::api_methods_2_1.asciidoc[] include::api_methods_2_0.asciidoc[] diff --git a/package.json b/package.json index d62a9acef..7d60e3742 100644 --- a/package.json +++ b/package.json @@ -19,8 +19,9 @@ "blanket": { "pattern": "specified in test/unit/coverage.js" }, - "default_api_branch": "2.1", + "default_api_branch": "2.3", "supported_es_branches": [ + "2.3", "2.2", "2.1", "2.0", diff --git a/src/lib/apis/2_3.js b/src/lib/apis/2_3.js new file mode 100644 index 000000000..04e865496 --- /dev/null +++ b/src/lib/apis/2_3.js @@ -0,0 +1,6723 @@ +var ca = require('../client_action').makeFactoryWithModifier(function (spec) { + return require('../utils').merge(spec, { + params: { + filterPath: { + type: 'list', + name: 'filter_path' + } + } + }); +}); +var namespace = require('../client_action').namespaceFactory; +var api = module.exports = {}; + +api._namespaces = ['cat', 'cluster', 'indices', 'nodes', 'snapshot', 'tasks']; + +/** + * Perform a [bulk](http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-bulk.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.consistency - Explicit write consistency setting for the operation + * @param {Boolean} params.refresh - Refresh the index after performing the operation + * @param {String} params.routing - Specific routing value + * @param {Date, Number} params.timeout - Explicit operation timeout + * @param {String} params.type - Default document type for items which don't provide one + * @param {String, String[], Boolean} params.fields - Default comma-separated list of fields to return in the response for updates + * @param {String} params.index - Default index for items which don't provide one + */ +api.bulk = ca({ + params: { + consistency: { + type: 'enum', + options: [ + 'one', + 'quorum', + 'all' + ] + }, + refresh: { + type: 'boolean' + }, + routing: { + type: 'string' + }, + timeout: { + type: 'time' + }, + type: { + type: 'string' + }, + fields: { + type: 'list' + } + }, + urls: [ + { + fmt: '/<%=index%>/<%=type%>/_bulk', + req: { + index: { + type: 'string' + }, + type: { + type: 'string' + } + } + }, + { + fmt: '/<%=index%>/_bulk', + req: { + index: { + type: 'string' + } + } + }, + { + fmt: '/_bulk' + } + ], + needBody: true, + bulkBody: true, + method: 'POST' +}); + +api.cat = namespace(); + +/** + * Perform a [cat.aliases](http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/cat.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display + * @param {Boolean} params.help - Return help information + * @param {Boolean} params.v - Verbose mode. Display column headers + * @param {String, String[], Boolean} params.name - A comma-separated list of alias names to return + */ +api.cat.prototype.aliases = ca({ + params: { + local: { + type: 'boolean' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + h: { + type: 'list' + }, + help: { + type: 'boolean', + 'default': false + }, + v: { + type: 'boolean', + 'default': false + } + }, + urls: [ + { + fmt: '/_cat/aliases/<%=name%>', + req: { + name: { + type: 'list' + } + } + }, + { + fmt: '/_cat/aliases' + } + ] +}); + +/** + * Perform a [cat.allocation](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-allocation.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.bytes - The unit in which to display byte values + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display + * @param {Boolean} params.help - Return help information + * @param {Boolean} params.v - Verbose mode. Display column headers + * @param {String, String[], Boolean} params.nodeId - A comma-separated list of node IDs or names to limit the returned information + */ +api.cat.prototype.allocation = ca({ + params: { + bytes: { + type: 'enum', + options: [ + 'b', + 'k', + 'm', + 'g' + ] + }, + local: { + type: 'boolean' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + h: { + type: 'list' + }, + help: { + type: 'boolean', + 'default': false + }, + v: { + type: 'boolean', + 'default': false + } + }, + urls: [ + { + fmt: '/_cat/allocation/<%=nodeId%>', + req: { + nodeId: { + type: 'list' + } + } + }, + { + fmt: '/_cat/allocation' + } + ] +}); + +/** + * Perform a [cat.count](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-count.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display + * @param {Boolean} params.help - Return help information + * @param {Boolean} params.v - Verbose mode. Display column headers + * @param {String, String[], Boolean} params.index - A comma-separated list of index names to limit the returned information + */ +api.cat.prototype.count = ca({ + params: { + local: { + type: 'boolean' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + h: { + type: 'list' + }, + help: { + type: 'boolean', + 'default': false + }, + v: { + type: 'boolean', + 'default': false + } + }, + urls: [ + { + fmt: '/_cat/count/<%=index%>', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_cat/count' + } + ] +}); + +/** + * Perform a [cat.fielddata](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-fielddata.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.bytes - The unit in which to display byte values + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display + * @param {Boolean} params.help - Return help information + * @param {Boolean} params.v - Verbose mode. Display column headers + * @param {String, String[], Boolean} params.fields - A comma-separated list of fields to return the fielddata size + */ +api.cat.prototype.fielddata = ca({ + params: { + bytes: { + type: 'enum', + options: [ + 'b', + 'k', + 'm', + 'g' + ] + }, + local: { + type: 'boolean' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + h: { + type: 'list' + }, + help: { + type: 'boolean', + 'default': false + }, + v: { + type: 'boolean', + 'default': false + }, + fields: { + type: 'list' + } + }, + urls: [ + { + fmt: '/_cat/fielddata/<%=fields%>', + req: { + fields: { + type: 'list' + } + } + }, + { + fmt: '/_cat/fielddata' + } + ] +}); + +/** + * Perform a [cat.health](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-health.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display + * @param {Boolean} params.help - Return help information + * @param {Boolean} [params.ts=true] - Set to false to disable timestamping + * @param {Boolean} params.v - Verbose mode. Display column headers + */ +api.cat.prototype.health = ca({ + params: { + local: { + type: 'boolean' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + h: { + type: 'list' + }, + help: { + type: 'boolean', + 'default': false + }, + ts: { + type: 'boolean', + 'default': true + }, + v: { + type: 'boolean', + 'default': false + } + }, + url: { + fmt: '/_cat/health' + } +}); + +/** + * Perform a [cat.help](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.help - Return help information + */ +api.cat.prototype.help = ca({ + params: { + help: { + type: 'boolean', + 'default': false + } + }, + url: { + fmt: '/_cat' + } +}); + +/** + * Perform a [cat.indices](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-indices.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.bytes - The unit in which to display byte values + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display + * @param {Boolean} params.help - Return help information + * @param {Boolean} params.pri - Set to true to return stats only for primary shards + * @param {Boolean} params.v - Verbose mode. Display column headers + * @param {String, String[], Boolean} params.index - A comma-separated list of index names to limit the returned information + */ +api.cat.prototype.indices = ca({ + params: { + bytes: { + type: 'enum', + options: [ + 'b', + 'k', + 'm', + 'g' + ] + }, + local: { + type: 'boolean' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + h: { + type: 'list' + }, + help: { + type: 'boolean', + 'default': false + }, + pri: { + type: 'boolean', + 'default': false + }, + v: { + type: 'boolean', + 'default': false + } + }, + urls: [ + { + fmt: '/_cat/indices/<%=index%>', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_cat/indices' + } + ] +}); + +/** + * Perform a [cat.master](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-master.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display + * @param {Boolean} params.help - Return help information + * @param {Boolean} params.v - Verbose mode. Display column headers + */ +api.cat.prototype.master = ca({ + params: { + local: { + type: 'boolean' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + h: { + type: 'list' + }, + help: { + type: 'boolean', + 'default': false + }, + v: { + type: 'boolean', + 'default': false + } + }, + url: { + fmt: '/_cat/master' + } +}); + +/** + * Perform a [cat.nodeattrs](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-nodeattrs.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display + * @param {Boolean} params.help - Return help information + * @param {Boolean} params.v - Verbose mode. Display column headers + */ +api.cat.prototype.nodeattrs = ca({ + params: { + local: { + type: 'boolean' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + h: { + type: 'list' + }, + help: { + type: 'boolean', + 'default': false + }, + v: { + type: 'boolean', + 'default': false + } + }, + url: { + fmt: '/_cat/nodeattrs' + } +}); + +/** + * Perform a [cat.nodes](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-nodes.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display + * @param {Boolean} params.help - Return help information + * @param {Boolean} params.v - Verbose mode. Display column headers + */ +api.cat.prototype.nodes = ca({ + params: { + local: { + type: 'boolean' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + h: { + type: 'list' + }, + help: { + type: 'boolean', + 'default': false + }, + v: { + type: 'boolean', + 'default': false + } + }, + url: { + fmt: '/_cat/nodes' + } +}); + +/** + * Perform a [cat.pendingTasks](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-pending-tasks.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display + * @param {Boolean} params.help - Return help information + * @param {Boolean} params.v - Verbose mode. Display column headers + */ +api.cat.prototype.pendingTasks = ca({ + params: { + local: { + type: 'boolean' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + h: { + type: 'list' + }, + help: { + type: 'boolean', + 'default': false + }, + v: { + type: 'boolean', + 'default': false + } + }, + url: { + fmt: '/_cat/pending_tasks' + } +}); + +/** + * Perform a [cat.plugins](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-plugins.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display + * @param {Boolean} params.help - Return help information + * @param {Boolean} params.v - Verbose mode. Display column headers + */ +api.cat.prototype.plugins = ca({ + params: { + local: { + type: 'boolean' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + h: { + type: 'list' + }, + help: { + type: 'boolean', + 'default': false + }, + v: { + type: 'boolean', + 'default': false + } + }, + url: { + fmt: '/_cat/plugins' + } +}); + +/** + * Perform a [cat.recovery](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-recovery.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.bytes - The unit in which to display byte values + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display + * @param {Boolean} params.help - Return help information + * @param {Boolean} params.v - Verbose mode. Display column headers + * @param {String, String[], Boolean} params.index - A comma-separated list of index names to limit the returned information + */ +api.cat.prototype.recovery = ca({ + params: { + bytes: { + type: 'enum', + options: [ + 'b', + 'k', + 'm', + 'g' + ] + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + h: { + type: 'list' + }, + help: { + type: 'boolean', + 'default': false + }, + v: { + type: 'boolean', + 'default': false + } + }, + urls: [ + { + fmt: '/_cat/recovery/<%=index%>', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_cat/recovery' + } + ] +}); + +/** + * Perform a [cat.repositories](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-repositories.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display + * @param {Boolean} params.help - Return help information + * @param {Boolean} params.v - Verbose mode. Display column headers + */ +api.cat.prototype.repositories = ca({ + params: { + local: { + type: 'boolean', + 'default': false + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + h: { + type: 'list' + }, + help: { + type: 'boolean', + 'default': false + }, + v: { + type: 'boolean', + 'default': false + } + }, + url: { + fmt: '/_cat/repositories' + } +}); + +/** + * Perform a [cat.segments](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-segments.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display + * @param {Boolean} params.help - Return help information + * @param {Boolean} params.v - Verbose mode. Display column headers + * @param {String, String[], Boolean} params.index - A comma-separated list of index names to limit the returned information + */ +api.cat.prototype.segments = ca({ + params: { + h: { + type: 'list' + }, + help: { + type: 'boolean', + 'default': false + }, + v: { + type: 'boolean', + 'default': false + } + }, + urls: [ + { + fmt: '/_cat/segments/<%=index%>', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_cat/segments' + } + ] +}); + +/** + * Perform a [cat.shards](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-shards.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display + * @param {Boolean} params.help - Return help information + * @param {Boolean} params.v - Verbose mode. Display column headers + * @param {String, String[], Boolean} params.index - A comma-separated list of index names to limit the returned information + */ +api.cat.prototype.shards = ca({ + params: { + local: { + type: 'boolean' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + h: { + type: 'list' + }, + help: { + type: 'boolean', + 'default': false + }, + v: { + type: 'boolean', + 'default': false + } + }, + urls: [ + { + fmt: '/_cat/shards/<%=index%>', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_cat/shards' + } + ] +}); + +/** + * Perform a [cat.snapshots](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-snapshots.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.ignoreUnavailable - Set to true to ignore unavailable snapshots + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display + * @param {Boolean} params.help - Return help information + * @param {Boolean} params.v - Verbose mode. Display column headers + * @param {String, String[], Boolean} params.repository - Name of repository from which to fetch the snapshot information + */ +api.cat.prototype.snapshots = ca({ + params: { + ignoreUnavailable: { + type: 'boolean', + 'default': false, + name: 'ignore_unavailable' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + h: { + type: 'list' + }, + help: { + type: 'boolean', + 'default': false + }, + v: { + type: 'boolean', + 'default': false + } + }, + url: { + fmt: '/_cat/snapshots/<%=repository%>', + req: { + repository: { + type: 'list' + } + } + } +}); + +/** + * Perform a [cat.threadPool](http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-thread-pool.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {String, String[], Boolean} params.h - Comma-separated list of column names to display + * @param {Boolean} params.help - Return help information + * @param {Boolean} params.v - Verbose mode. Display column headers + * @param {Boolean} params.fullId - Enables displaying the complete node ids + */ +api.cat.prototype.threadPool = ca({ + params: { + local: { + type: 'boolean' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + h: { + type: 'list' + }, + help: { + type: 'boolean', + 'default': false + }, + v: { + type: 'boolean', + 'default': false + }, + fullId: { + type: 'boolean', + 'default': false, + name: 'full_id' + } + }, + url: { + fmt: '/_cat/thread_pool' + } +}); + +/** + * Perform a [clearScroll](http://www.elastic.co/guide/en/elasticsearch/reference/master/search-request-scroll.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String, String[], Boolean} params.scrollId - A comma-separated list of scroll IDs to clear + */ +api.clearScroll = ca({ + urls: [ + { + fmt: '/_search/scroll/<%=scrollId%>', + req: { + scrollId: { + type: 'list' + } + } + }, + { + fmt: '/_search/scroll' + } + ], + method: 'DELETE' +}); + +api.cluster = namespace(); + +/** + * Perform a [cluster.getSettings](http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-update-settings.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.flatSettings - Return settings in flat format (default: false) + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {Date, Number} params.timeout - Explicit operation timeout + */ +api.cluster.prototype.getSettings = ca({ + params: { + flatSettings: { + type: 'boolean', + name: 'flat_settings' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + timeout: { + type: 'time' + } + }, + url: { + fmt: '/_cluster/settings' + } +}); + +/** + * Perform a [cluster.health](http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-health.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String} [params.level=cluster] - Specify the level of detail for returned information + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {Date, Number} params.timeout - Explicit operation timeout + * @param {Number} params.waitForActiveShards - Wait until the specified number of shards is active + * @param {String} params.waitForNodes - Wait until the specified number of nodes is available + * @param {Number} params.waitForRelocatingShards - Wait until the specified number of relocating shards is finished + * @param {String} params.waitForStatus - Wait until cluster is in a specific state + * @param {String, String[], Boolean} params.index - Limit the information returned to a specific index + */ +api.cluster.prototype.health = ca({ + params: { + level: { + type: 'enum', + 'default': 'cluster', + options: [ + 'cluster', + 'indices', + 'shards' + ] + }, + local: { + type: 'boolean' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + timeout: { + type: 'time' + }, + waitForActiveShards: { + type: 'number', + name: 'wait_for_active_shards' + }, + waitForNodes: { + type: 'string', + name: 'wait_for_nodes' + }, + waitForRelocatingShards: { + type: 'number', + name: 'wait_for_relocating_shards' + }, + waitForStatus: { + type: 'enum', + 'default': null, + options: [ + 'green', + 'yellow', + 'red' + ], + name: 'wait_for_status' + } + }, + urls: [ + { + fmt: '/_cluster/health/<%=index%>', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_cluster/health' + } + ] +}); + +/** + * Perform a [cluster.pendingTasks](http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-pending.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {Date, Number} params.masterTimeout - Specify timeout for connection to master + */ +api.cluster.prototype.pendingTasks = ca({ + params: { + local: { + type: 'boolean' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + } + }, + url: { + fmt: '/_cluster/pending_tasks' + } +}); + +/** + * Perform a [cluster.putSettings](http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-update-settings.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.flatSettings - Return settings in flat format (default: false) + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {Date, Number} params.timeout - Explicit operation timeout + */ +api.cluster.prototype.putSettings = ca({ + params: { + flatSettings: { + type: 'boolean', + name: 'flat_settings' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + timeout: { + type: 'time' + } + }, + url: { + fmt: '/_cluster/settings' + }, + method: 'PUT' +}); + +/** + * Perform a [cluster.reroute](http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-reroute.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.dryRun - Simulate the operation only and return the resulting state + * @param {Boolean} params.explain - Return an explanation of why the commands can or cannot be executed + * @param {String, String[], Boolean} params.metric - Limit the information returned to the specified metrics. Defaults to all but metadata + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {Date, Number} params.timeout - Explicit operation timeout + */ +api.cluster.prototype.reroute = ca({ + params: { + dryRun: { + type: 'boolean', + name: 'dry_run' + }, + explain: { + type: 'boolean' + }, + metric: { + type: 'list', + options: [ + '_all', + 'blocks', + 'metadata', + 'nodes', + 'routing_table', + 'master_node', + 'version' + ] + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + timeout: { + type: 'time' + } + }, + url: { + fmt: '/_cluster/reroute' + }, + method: 'POST' +}); + +/** + * Perform a [cluster.state](http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-state.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {Date, Number} params.masterTimeout - Specify timeout for connection to master + * @param {Boolean} params.flatSettings - Return settings in flat format (default: false) + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {String, String[], Boolean} params.index - A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices + * @param {String, String[], Boolean} params.metric - Limit the information returned to the specified metrics + */ +api.cluster.prototype.state = ca({ + params: { + local: { + type: 'boolean' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + flatSettings: { + type: 'boolean', + name: 'flat_settings' + }, + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + } + }, + urls: [ + { + fmt: '/_cluster/state/<%=metric%>/<%=index%>', + req: { + metric: { + type: 'list', + options: [ + '_all', + 'blocks', + 'metadata', + 'nodes', + 'routing_table', + 'routing_nodes', + 'master_node', + 'version' + ] + }, + index: { + type: 'list' + } + } + }, + { + fmt: '/_cluster/state/<%=metric%>', + req: { + metric: { + type: 'list', + options: [ + '_all', + 'blocks', + 'metadata', + 'nodes', + 'routing_table', + 'routing_nodes', + 'master_node', + 'version' + ] + } + } + }, + { + fmt: '/_cluster/state' + } + ] +}); + +/** + * Perform a [cluster.stats](http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-stats.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.flatSettings - Return settings in flat format (default: false) + * @param {Boolean} params.human - Whether to return time and byte values in human-readable format. + * @param {Date, Number} params.timeout - Explicit operation timeout + * @param {String, String[], Boolean} params.nodeId - A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes + */ +api.cluster.prototype.stats = ca({ + params: { + flatSettings: { + type: 'boolean', + name: 'flat_settings' + }, + human: { + type: 'boolean', + 'default': false + }, + timeout: { + type: 'time' + } + }, + urls: [ + { + fmt: '/_cluster/stats/nodes/<%=nodeId%>', + req: { + nodeId: { + type: 'list' + } + } + }, + { + fmt: '/_cluster/stats' + } + ] +}); + +/** + * Perform a [count](http://www.elastic.co/guide/en/elasticsearch/reference/master/search-count.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {Number} params.minScore - Include only documents with a specific `_score` value in the result + * @param {String} params.preference - Specify the node or shard the operation should be performed on (default: random) + * @param {String} params.routing - Specific routing value + * @param {String} params.q - Query in the Lucene query string syntax + * @param {String} params.analyzer - The analyzer to use for the query string + * @param {Boolean} params.analyzeWildcard - Specify whether wildcard and prefix queries should be analyzed (default: false) + * @param {String} [params.defaultOperator=OR] - The default operator for query string query (AND or OR) + * @param {String} params.df - The field to use as default where no field prefix is given in the query string + * @param {Boolean} params.lenient - Specify whether format-based query failures (such as providing text to a numeric field) should be ignored + * @param {Boolean} params.lowercaseExpandedTerms - Specify whether query terms should be lowercased + * @param {String, String[], Boolean} params.index - A comma-separated list of indices to restrict the results + * @param {String, String[], Boolean} params.type - A comma-separated list of types to restrict the results + */ +api.count = ca({ + params: { + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + minScore: { + type: 'number', + name: 'min_score' + }, + preference: { + type: 'string' + }, + routing: { + type: 'string' + }, + q: { + type: 'string' + }, + analyzer: { + type: 'string' + }, + analyzeWildcard: { + type: 'boolean', + name: 'analyze_wildcard' + }, + defaultOperator: { + type: 'enum', + 'default': 'OR', + options: [ + 'AND', + 'OR' + ], + name: 'default_operator' + }, + df: { + type: 'string' + }, + lenient: { + type: 'boolean' + }, + lowercaseExpandedTerms: { + type: 'boolean', + name: 'lowercase_expanded_terms' + } + }, + urls: [ + { + fmt: '/<%=index%>/<%=type%>/_count', + req: { + index: { + type: 'list' + }, + type: { + type: 'list' + } + } + }, + { + fmt: '/<%=index%>/_count', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_count' + } + ], + method: 'POST' +}); + +/** + * Perform a [countPercolate](http://www.elastic.co/guide/en/elasticsearch/reference/master/search-percolate.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String, String[], Boolean} params.routing - A comma-separated list of specific routing values + * @param {String} params.preference - Specify the node or shard the operation should be performed on (default: random) + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {String} params.percolateIndex - The index to count percolate the document into. Defaults to index. + * @param {String} params.percolateType - The type to count percolate document into. Defaults to type. + * @param {Number} params.version - Explicit version number for concurrency control + * @param {String} params.versionType - Specific version type + * @param {String} params.index - The index of the document being count percolated. + * @param {String} params.type - The type of the document being count percolated. + * @param {String} params.id - Substitute the document in the request body with a document that is known by the specified id. On top of the id, the index and type parameter will be used to retrieve the document from within the cluster. + */ +api.countPercolate = ca({ + params: { + routing: { + type: 'list' + }, + preference: { + type: 'string' + }, + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + percolateIndex: { + type: 'string', + name: 'percolate_index' + }, + percolateType: { + type: 'string', + name: 'percolate_type' + }, + version: { + type: 'number' + }, + versionType: { + type: 'enum', + options: [ + 'internal', + 'external', + 'external_gte', + 'force' + ], + name: 'version_type' + } + }, + urls: [ + { + fmt: '/<%=index%>/<%=type%>/<%=id%>/_percolate/count', + req: { + index: { + type: 'string' + }, + type: { + type: 'string' + }, + id: { + type: 'string' + } + } + }, + { + fmt: '/<%=index%>/<%=type%>/_percolate/count', + req: { + index: { + type: 'string' + }, + type: { + type: 'string' + } + } + } + ], + method: 'POST' +}); + +/** + * Perform a [delete](http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-delete.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.consistency - Specific write consistency setting for the operation + * @param {String} params.parent - ID of parent document + * @param {Boolean} params.refresh - Refresh the index after performing the operation + * @param {String} params.routing - Specific routing value + * @param {Date, Number} params.timeout - Explicit operation timeout + * @param {Number} params.version - Explicit version number for concurrency control + * @param {String} params.versionType - Specific version type + * @param {String} params.id - The document ID + * @param {String} params.index - The name of the index + * @param {String} params.type - The type of the document + */ +api['delete'] = ca({ + params: { + consistency: { + type: 'enum', + options: [ + 'one', + 'quorum', + 'all' + ] + }, + parent: { + type: 'string' + }, + refresh: { + type: 'boolean' + }, + routing: { + type: 'string' + }, + timeout: { + type: 'time' + }, + version: { + type: 'number' + }, + versionType: { + type: 'enum', + options: [ + 'internal', + 'external', + 'external_gte', + 'force' + ], + name: 'version_type' + } + }, + url: { + fmt: '/<%=index%>/<%=type%>/<%=id%>', + req: { + index: { + type: 'string' + }, + type: { + type: 'string' + }, + id: { + type: 'string' + } + } + }, + method: 'DELETE' +}); + +/** + * Perform a [deleteScript](http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Number} params.version - Explicit version number for concurrency control + * @param {String} params.versionType - Specific version type + * @param {String} params.id - Script ID + * @param {String} params.lang - Script language + */ +api.deleteScript = ca({ + params: { + version: { + type: 'number' + }, + versionType: { + type: 'enum', + options: [ + 'internal', + 'external', + 'external_gte', + 'force' + ], + name: 'version_type' + } + }, + url: { + fmt: '/_scripts/<%=lang%>/<%=id%>', + req: { + lang: { + type: 'string' + }, + id: { + type: 'string' + } + } + }, + method: 'DELETE' +}); + +/** + * Perform a [deleteTemplate](http://www.elastic.co/guide/en/elasticsearch/reference/master/search-template.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Number} params.version - Explicit version number for concurrency control + * @param {String} params.versionType - Specific version type + * @param {String} params.id - Template ID + */ +api.deleteTemplate = ca({ + params: { + version: { + type: 'number' + }, + versionType: { + type: 'enum', + options: [ + 'internal', + 'external', + 'external_gte', + 'force' + ], + name: 'version_type' + } + }, + url: { + fmt: '/_search/template/<%=id%>', + req: { + id: { + type: 'string' + } + } + }, + method: 'DELETE' +}); + +/** + * Perform a [exists](http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.parent - The ID of the parent document + * @param {String} params.preference - Specify the node or shard the operation should be performed on (default: random) + * @param {Boolean} params.realtime - Specify whether to perform the operation in realtime or search mode + * @param {Boolean} params.refresh - Refresh the shard containing the document before performing the operation + * @param {String} params.routing - Specific routing value + * @param {String} params.id - The document ID + * @param {String} params.index - The name of the index + * @param {String} params.type - The type of the document (use `_all` to fetch the first document matching the ID across all types) + */ +api.exists = ca({ + params: { + parent: { + type: 'string' + }, + preference: { + type: 'string' + }, + realtime: { + type: 'boolean' + }, + refresh: { + type: 'boolean' + }, + routing: { + type: 'string' + } + }, + url: { + fmt: '/<%=index%>/<%=type%>/<%=id%>', + req: { + index: { + type: 'string' + }, + type: { + type: 'string' + }, + id: { + type: 'string' + } + } + }, + method: 'HEAD' +}); + +/** + * Perform a [explain](http://www.elastic.co/guide/en/elasticsearch/reference/master/search-explain.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.analyzeWildcard - Specify whether wildcards and prefix queries in the query string query should be analyzed (default: false) + * @param {String} params.analyzer - The analyzer for the query string query + * @param {String} [params.defaultOperator=OR] - The default operator for query string query (AND or OR) + * @param {String} params.df - The default field for query string query (default: _all) + * @param {String, String[], Boolean} params.fields - A comma-separated list of fields to return in the response + * @param {Boolean} params.lenient - Specify whether format-based query failures (such as providing text to a numeric field) should be ignored + * @param {Boolean} params.lowercaseExpandedTerms - Specify whether query terms should be lowercased + * @param {String} params.parent - The ID of the parent document + * @param {String} params.preference - Specify the node or shard the operation should be performed on (default: random) + * @param {String} params.q - Query in the Lucene query string syntax + * @param {String} params.routing - Specific routing value + * @param {String, String[], Boolean} params._source - True or false to return the _source field or not, or a list of fields to return + * @param {String, String[], Boolean} params._sourceExclude - A list of fields to exclude from the returned _source field + * @param {String, String[], Boolean} params._sourceInclude - A list of fields to extract and return from the _source field + * @param {String} params.id - The document ID + * @param {String} params.index - The name of the index + * @param {String} params.type - The type of the document + */ +api.explain = ca({ + params: { + analyzeWildcard: { + type: 'boolean', + name: 'analyze_wildcard' + }, + analyzer: { + type: 'string' + }, + defaultOperator: { + type: 'enum', + 'default': 'OR', + options: [ + 'AND', + 'OR' + ], + name: 'default_operator' + }, + df: { + type: 'string' + }, + fields: { + type: 'list' + }, + lenient: { + type: 'boolean' + }, + lowercaseExpandedTerms: { + type: 'boolean', + name: 'lowercase_expanded_terms' + }, + parent: { + type: 'string' + }, + preference: { + type: 'string' + }, + q: { + type: 'string' + }, + routing: { + type: 'string' + }, + _source: { + type: 'list' + }, + _sourceExclude: { + type: 'list', + name: '_source_exclude' + }, + _sourceInclude: { + type: 'list', + name: '_source_include' + } + }, + url: { + fmt: '/<%=index%>/<%=type%>/<%=id%>/_explain', + req: { + index: { + type: 'string' + }, + type: { + type: 'string' + }, + id: { + type: 'string' + } + } + }, + method: 'POST' +}); + +/** + * Perform a [fieldStats](http://www.elastic.co/guide/en/elasticsearch/reference/master/search-field-stats.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String, String[], Boolean} params.fields - A comma-separated list of fields for to get field statistics for (min value, max value, and more) + * @param {String} [params.level=cluster] - Defines if field stats should be returned on a per index level or on a cluster wide level + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {String, String[], Boolean} params.index - A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices + */ +api.fieldStats = ca({ + params: { + fields: { + type: 'list' + }, + level: { + type: 'enum', + 'default': 'cluster', + options: [ + 'indices', + 'cluster' + ] + }, + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + } + }, + urls: [ + { + fmt: '/<%=index%>/_field_stats', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_field_stats' + } + ], + method: 'POST' +}); + +/** + * Perform a [get](http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String, String[], Boolean} params.fields - A comma-separated list of fields to return in the response + * @param {String} params.parent - The ID of the parent document + * @param {String} params.preference - Specify the node or shard the operation should be performed on (default: random) + * @param {Boolean} params.realtime - Specify whether to perform the operation in realtime or search mode + * @param {Boolean} params.refresh - Refresh the shard containing the document before performing the operation + * @param {String} params.routing - Specific routing value + * @param {String, String[], Boolean} params._source - True or false to return the _source field or not, or a list of fields to return + * @param {String, String[], Boolean} params._sourceExclude - A list of fields to exclude from the returned _source field + * @param {String, String[], Boolean} params._sourceInclude - A list of fields to extract and return from the _source field + * @param {Number} params.version - Explicit version number for concurrency control + * @param {String} params.versionType - Specific version type + * @param {String} params.id - The document ID + * @param {String} params.index - The name of the index + * @param {String} params.type - The type of the document (use `_all` to fetch the first document matching the ID across all types) + */ +api.get = ca({ + params: { + fields: { + type: 'list' + }, + parent: { + type: 'string' + }, + preference: { + type: 'string' + }, + realtime: { + type: 'boolean' + }, + refresh: { + type: 'boolean' + }, + routing: { + type: 'string' + }, + _source: { + type: 'list' + }, + _sourceExclude: { + type: 'list', + name: '_source_exclude' + }, + _sourceInclude: { + type: 'list', + name: '_source_include' + }, + version: { + type: 'number' + }, + versionType: { + type: 'enum', + options: [ + 'internal', + 'external', + 'external_gte', + 'force' + ], + name: 'version_type' + } + }, + url: { + fmt: '/<%=index%>/<%=type%>/<%=id%>', + req: { + index: { + type: 'string' + }, + type: { + type: 'string' + }, + id: { + type: 'string' + } + } + } +}); + +/** + * Perform a [getScript](http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Number} params.version - Explicit version number for concurrency control + * @param {String} params.versionType - Specific version type + * @param {String} params.id - Script ID + * @param {String} params.lang - Script language + */ +api.getScript = ca({ + params: { + version: { + type: 'number' + }, + versionType: { + type: 'enum', + options: [ + 'internal', + 'external', + 'external_gte', + 'force' + ], + name: 'version_type' + } + }, + url: { + fmt: '/_scripts/<%=lang%>/<%=id%>', + req: { + lang: { + type: 'string' + }, + id: { + type: 'string' + } + } + } +}); + +/** + * Perform a [getSource](http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.parent - The ID of the parent document + * @param {String} params.preference - Specify the node or shard the operation should be performed on (default: random) + * @param {Boolean} params.realtime - Specify whether to perform the operation in realtime or search mode + * @param {Boolean} params.refresh - Refresh the shard containing the document before performing the operation + * @param {String} params.routing - Specific routing value + * @param {String, String[], Boolean} params._source - True or false to return the _source field or not, or a list of fields to return + * @param {String, String[], Boolean} params._sourceExclude - A list of fields to exclude from the returned _source field + * @param {String, String[], Boolean} params._sourceInclude - A list of fields to extract and return from the _source field + * @param {Number} params.version - Explicit version number for concurrency control + * @param {String} params.versionType - Specific version type + * @param {String} params.id - The document ID + * @param {String} params.index - The name of the index + * @param {String} params.type - The type of the document; use `_all` to fetch the first document matching the ID across all types + */ +api.getSource = ca({ + params: { + parent: { + type: 'string' + }, + preference: { + type: 'string' + }, + realtime: { + type: 'boolean' + }, + refresh: { + type: 'boolean' + }, + routing: { + type: 'string' + }, + _source: { + type: 'list' + }, + _sourceExclude: { + type: 'list', + name: '_source_exclude' + }, + _sourceInclude: { + type: 'list', + name: '_source_include' + }, + version: { + type: 'number' + }, + versionType: { + type: 'enum', + options: [ + 'internal', + 'external', + 'external_gte', + 'force' + ], + name: 'version_type' + } + }, + url: { + fmt: '/<%=index%>/<%=type%>/<%=id%>/_source', + req: { + index: { + type: 'string' + }, + type: { + type: 'string' + }, + id: { + type: 'string' + } + } + } +}); + +/** + * Perform a [getTemplate](http://www.elastic.co/guide/en/elasticsearch/reference/master/search-template.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Number} params.version - Explicit version number for concurrency control + * @param {String} params.versionType - Specific version type + * @param {String} params.id - Template ID + */ +api.getTemplate = ca({ + params: { + version: { + type: 'number' + }, + versionType: { + type: 'enum', + options: [ + 'internal', + 'external', + 'external_gte', + 'force' + ], + name: 'version_type' + } + }, + url: { + fmt: '/_search/template/<%=id%>', + req: { + id: { + type: 'string' + } + } + } +}); + +/** + * Perform a [index](http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.consistency - Explicit write consistency setting for the operation + * @param {String} params.parent - ID of the parent document + * @param {Boolean} params.refresh - Refresh the index after performing the operation + * @param {String} params.routing - Specific routing value + * @param {Date, Number} params.timeout - Explicit operation timeout + * @param {Date, Number} params.timestamp - Explicit timestamp for the document + * @param {Duration} params.ttl - Expiration time for the document + * @param {Number} params.version - Explicit version number for concurrency control + * @param {String} params.versionType - Specific version type + * @param {String} params.id - Document ID + * @param {String} params.index - The name of the index + * @param {String} params.type - The type of the document + */ +api.index = ca({ + params: { + consistency: { + type: 'enum', + options: [ + 'one', + 'quorum', + 'all' + ] + }, + opType: { + type: 'enum', + 'default': 'index', + options: [ + 'index', + 'create' + ], + name: 'op_type' + }, + parent: { + type: 'string' + }, + refresh: { + type: 'boolean' + }, + routing: { + type: 'string' + }, + timeout: { + type: 'time' + }, + timestamp: { + type: 'time' + }, + ttl: { + type: 'duration' + }, + version: { + type: 'number' + }, + versionType: { + type: 'enum', + options: [ + 'internal', + 'external', + 'external_gte', + 'force' + ], + name: 'version_type' + } + }, + urls: [ + { + fmt: '/<%=index%>/<%=type%>/<%=id%>', + req: { + index: { + type: 'string' + }, + type: { + type: 'string' + }, + id: { + type: 'string' + } + } + }, + { + fmt: '/<%=index%>/<%=type%>', + req: { + index: { + type: 'string' + }, + type: { + type: 'string' + } + } + } + ], + needBody: true, + method: 'POST' +}); + +api.indices = namespace(); + +/** + * Perform a [indices.analyze](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-analyze.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.analyzer - The name of the analyzer to use + * @param {String, String[], Boolean} params.charFilters - A comma-separated list of character filters to use for the analysis + * @param {String} params.field - Use the analyzer configured for this field (instead of passing the analyzer name) + * @param {String, String[], Boolean} params.filters - A comma-separated list of filters to use for the analysis + * @param {String} params.index - The name of the index to scope the operation + * @param {Boolean} params.preferLocal - With `true`, specify that a local shard should be used if available, with `false`, use a random shard (default: true) + * @param {String, String[], Boolean} params.text - The text on which the analysis should be performed (when request body is not used) + * @param {String} params.tokenizer - The name of the tokenizer to use for the analysis + * @param {Boolean} params.explain - With `true`, outputs more advanced details. (default: false) + * @param {String, String[], Boolean} params.attributes - A comma-separated list of token attributes to output, this parameter works only with `explain=true` + * @param {String} [params.format=detailed] - Format of the output + */ +api.indices.prototype.analyze = ca({ + params: { + analyzer: { + type: 'string' + }, + charFilters: { + type: 'list', + name: 'char_filters' + }, + field: { + type: 'string' + }, + filters: { + type: 'list' + }, + index: { + type: 'string' + }, + preferLocal: { + type: 'boolean', + name: 'prefer_local' + }, + text: { + type: 'list' + }, + tokenizer: { + type: 'string' + }, + explain: { + type: 'boolean' + }, + attributes: { + type: 'list' + }, + format: { + type: 'enum', + 'default': 'detailed', + options: [ + 'detailed', + 'text' + ] + } + }, + urls: [ + { + fmt: '/<%=index%>/_analyze', + req: { + index: { + type: 'string' + } + } + }, + { + fmt: '/_analyze' + } + ], + method: 'POST' +}); + +/** + * Perform a [indices.clearCache](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-clearcache.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.fieldData - Clear field data + * @param {Boolean} params.fielddata - Clear field data + * @param {String, String[], Boolean} params.fields - A comma-separated list of fields to clear when using the `field_data` parameter (default: all) + * @param {Boolean} params.query - Clear query caches + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {String, String[], Boolean} params.index - A comma-separated list of index name to limit the operation + * @param {Boolean} params.recycler - Clear the recycler cache + * @param {Boolean} params.request - Clear request cache + */ +api.indices.prototype.clearCache = ca({ + params: { + fieldData: { + type: 'boolean', + name: 'field_data' + }, + fielddata: { + type: 'boolean' + }, + fields: { + type: 'list' + }, + query: { + type: 'boolean' + }, + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + index: { + type: 'list' + }, + recycler: { + type: 'boolean' + }, + request: { + type: 'boolean' + } + }, + urls: [ + { + fmt: '/<%=index%>/_cache/clear', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_cache/clear' + } + ], + method: 'POST' +}); + +/** + * Perform a [indices.close](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-open-close.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Date, Number} params.timeout - Explicit operation timeout + * @param {Date, Number} params.masterTimeout - Specify timeout for connection to master + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {String, String[], Boolean} params.index - A comma separated list of indices to close + */ +api.indices.prototype.close = ca({ + params: { + timeout: { + type: 'time' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + } + }, + url: { + fmt: '/<%=index%>/_close', + req: { + index: { + type: 'list' + } + } + }, + method: 'POST' +}); + +/** + * Perform a [indices.create](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-create-index.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Date, Number} params.timeout - Explicit operation timeout + * @param {Date, Number} params.masterTimeout - Specify timeout for connection to master + * @param {Boolean} params.updateAllTypes - Whether to update the mapping for all fields with the same name across all types or not + * @param {String} params.index - The name of the index + */ +api.indices.prototype.create = ca({ + params: { + timeout: { + type: 'time' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + updateAllTypes: { + type: 'boolean', + name: 'update_all_types' + } + }, + url: { + fmt: '/<%=index%>', + req: { + index: { + type: 'string' + } + } + }, + method: 'POST' +}); + +/** + * Perform a [indices.delete](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-delete-index.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Date, Number} params.timeout - Explicit operation timeout + * @param {Date, Number} params.masterTimeout - Specify timeout for connection to master + * @param {String, String[], Boolean} params.index - A comma-separated list of indices to delete; use `_all` or `*` string to delete all indices + */ +api.indices.prototype['delete'] = ca({ + params: { + timeout: { + type: 'time' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + } + }, + url: { + fmt: '/<%=index%>', + req: { + index: { + type: 'list' + } + } + }, + method: 'DELETE' +}); + +/** + * Perform a [indices.deleteAlias](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Date, Number} params.timeout - Explicit timestamp for the document + * @param {Date, Number} params.masterTimeout - Specify timeout for connection to master + * @param {String, String[], Boolean} params.index - A comma-separated list of index names (supports wildcards); use `_all` for all indices + * @param {String, String[], Boolean} params.name - A comma-separated list of aliases to delete (supports wildcards); use `_all` to delete all aliases for the specified indices. + */ +api.indices.prototype.deleteAlias = ca({ + params: { + timeout: { + type: 'time' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + } + }, + url: { + fmt: '/<%=index%>/_alias/<%=name%>', + req: { + index: { + type: 'list' + }, + name: { + type: 'list' + } + } + }, + method: 'DELETE' +}); + +/** + * Perform a [indices.deleteTemplate](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Date, Number} params.timeout - Explicit operation timeout + * @param {Date, Number} params.masterTimeout - Specify timeout for connection to master + * @param {String} params.name - The name of the template + */ +api.indices.prototype.deleteTemplate = ca({ + params: { + timeout: { + type: 'time' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + } + }, + url: { + fmt: '/_template/<%=name%>', + req: { + name: { + type: 'string' + } + } + }, + method: 'DELETE' +}); + +/** + * Perform a [indices.deleteWarmer](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-warmers.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Date, Number} params.masterTimeout - Specify timeout for connection to master + * @param {String, String[], Boolean} params.name - A comma-separated list of warmer names to delete (supports wildcards); use `_all` to delete all warmers in the specified indices. You must specify a name either in the uri or in the parameters. + * @param {String, String[], Boolean} params.index - A comma-separated list of index names to delete warmers from (supports wildcards); use `_all` to perform the operation on all indices. + */ +api.indices.prototype.deleteWarmer = ca({ + params: { + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + name: { + type: 'list' + } + }, + url: { + fmt: '/<%=index%>/_warmer/<%=name%>', + req: { + index: { + type: 'list' + }, + name: { + type: 'list' + } + } + }, + method: 'DELETE' +}); + +/** + * Perform a [indices.exists](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-exists.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {String, String[], Boolean} params.index - A comma-separated list of indices to check + */ +api.indices.prototype.exists = ca({ + params: { + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + local: { + type: 'boolean' + } + }, + url: { + fmt: '/<%=index%>', + req: { + index: { + type: 'list' + } + } + }, + method: 'HEAD' +}); + +/** + * Perform a [indices.existsAlias](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open,closed] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {String, String[], Boolean} params.index - A comma-separated list of index names to filter aliases + * @param {String, String[], Boolean} params.name - A comma-separated list of alias names to return + */ +api.indices.prototype.existsAlias = ca({ + params: { + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': [ + 'open', + 'closed' + ], + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + local: { + type: 'boolean' + } + }, + urls: [ + { + fmt: '/<%=index%>/_alias/<%=name%>', + req: { + index: { + type: 'list' + }, + name: { + type: 'list' + } + } + }, + { + fmt: '/_alias/<%=name%>', + req: { + name: { + type: 'list' + } + } + }, + { + fmt: '/<%=index%>/_alias', + req: { + index: { + type: 'list' + } + } + } + ], + method: 'HEAD' +}); + +/** + * Perform a [indices.existsTemplate](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {String} params.name - The name of the template + */ +api.indices.prototype.existsTemplate = ca({ + params: { + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + local: { + type: 'boolean' + } + }, + url: { + fmt: '/_template/<%=name%>', + req: { + name: { + type: 'string' + } + } + }, + method: 'HEAD' +}); + +/** + * Perform a [indices.existsType](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-types-exists.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {String, String[], Boolean} params.index - A comma-separated list of index names; use `_all` to check the types across all indices + * @param {String, String[], Boolean} params.type - A comma-separated list of document types to check + */ +api.indices.prototype.existsType = ca({ + params: { + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + local: { + type: 'boolean' + } + }, + url: { + fmt: '/<%=index%>/<%=type%>', + req: { + index: { + type: 'list' + }, + type: { + type: 'list' + } + } + }, + method: 'HEAD' +}); + +/** + * Perform a [indices.flush](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-flush.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.force - Whether a flush should be forced even if it is not necessarily needed ie. if no changes will be committed to the index. This is useful if transaction log IDs should be incremented even if no uncommitted changes are present. (This setting can be considered as internal) + * @param {Boolean} params.waitIfOngoing - If set to true the flush operation will block until the flush can be executed if another flush operation is already executing. The default is false and will cause an exception to be thrown on the shard level if another flush operation is already running. + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {String, String[], Boolean} params.index - A comma-separated list of index names; use `_all` or empty string for all indices + */ +api.indices.prototype.flush = ca({ + params: { + force: { + type: 'boolean' + }, + waitIfOngoing: { + type: 'boolean', + name: 'wait_if_ongoing' + }, + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + } + }, + urls: [ + { + fmt: '/<%=index%>/_flush', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_flush' + } + ], + method: 'POST' +}); + +/** + * Perform a [indices.flushSynced](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-synced-flush.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {String, String[], Boolean} params.index - A comma-separated list of index names; use `_all` or empty string for all indices + */ +api.indices.prototype.flushSynced = ca({ + params: { + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + } + }, + urls: [ + { + fmt: '/<%=index%>/_flush/synced', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_flush/synced' + } + ], + method: 'POST' +}); + +/** + * Perform a [indices.forcemerge](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-forcemerge.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.flush - Specify whether the index should be flushed after performing the operation (default: true) + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {Number} params.maxNumSegments - The number of segments the index should be merged into (default: dynamic) + * @param {Boolean} params.onlyExpungeDeletes - Specify whether the operation should only expunge deleted documents + * @param {Anything} params.operationThreading - TODO: ? + * @param {Boolean} params.waitForMerge - Specify whether the request should block until the merge process is finished (default: true) + * @param {String, String[], Boolean} params.index - A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices + */ +api.indices.prototype.forcemerge = ca({ + params: { + flush: { + type: 'boolean' + }, + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + maxNumSegments: { + type: 'number', + name: 'max_num_segments' + }, + onlyExpungeDeletes: { + type: 'boolean', + name: 'only_expunge_deletes' + }, + operationThreading: { + name: 'operation_threading' + }, + waitForMerge: { + type: 'boolean', + name: 'wait_for_merge' + } + }, + urls: [ + { + fmt: '/<%=index%>/_forcemerge', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_forcemerge' + } + ], + method: 'POST' +}); + +/** + * Perform a [indices.get](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-index.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {Boolean} params.ignoreUnavailable - Ignore unavailable indexes (default: false) + * @param {Boolean} params.allowNoIndices - Ignore if a wildcard expression resolves to no concrete indices (default: false) + * @param {String} [params.expandWildcards=open] - Whether wildcard expressions should get expanded to open or closed indices (default: open) + * @param {Boolean} params.flatSettings - Return settings in flat format (default: false) + * @param {Boolean} params.human - Whether to return version and creation date values in human-readable format. + * @param {String, String[], Boolean} params.index - A comma-separated list of index names + * @param {String, String[], Boolean} params.feature - A comma-separated list of features + */ +api.indices.prototype.get = ca({ + params: { + local: { + type: 'boolean' + }, + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + flatSettings: { + type: 'boolean', + name: 'flat_settings' + }, + human: { + type: 'boolean', + 'default': false + } + }, + urls: [ + { + fmt: '/<%=index%>/<%=feature%>', + req: { + index: { + type: 'list' + }, + feature: { + type: 'list', + options: [ + '_settings', + '_mappings', + '_warmers', + '_aliases' + ] + } + } + }, + { + fmt: '/<%=index%>', + req: { + index: { + type: 'list' + } + } + } + ] +}); + +/** + * Perform a [indices.getAlias](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {String, String[], Boolean} params.index - A comma-separated list of index names to filter aliases + * @param {String, String[], Boolean} params.name - A comma-separated list of alias names to return + */ +api.indices.prototype.getAlias = ca({ + params: { + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + local: { + type: 'boolean' + } + }, + urls: [ + { + fmt: '/<%=index%>/_alias/<%=name%>', + req: { + index: { + type: 'list' + }, + name: { + type: 'list' + } + } + }, + { + fmt: '/_alias/<%=name%>', + req: { + name: { + type: 'list' + } + } + }, + { + fmt: '/<%=index%>/_alias', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_alias' + } + ] +}); + +/** + * Perform a [indices.getAliases](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Date, Number} params.timeout - Explicit operation timeout + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {String, String[], Boolean} params.index - A comma-separated list of index names to filter aliases + * @param {String, String[], Boolean} params.name - A comma-separated list of alias names to filter + */ +api.indices.prototype.getAliases = ca({ + params: { + timeout: { + type: 'time' + }, + local: { + type: 'boolean' + } + }, + urls: [ + { + fmt: '/<%=index%>/_aliases/<%=name%>', + req: { + index: { + type: 'list' + }, + name: { + type: 'list' + } + } + }, + { + fmt: '/<%=index%>/_aliases', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_aliases/<%=name%>', + req: { + name: { + type: 'list' + } + } + }, + { + fmt: '/_aliases' + } + ] +}); + +/** + * Perform a [indices.getFieldMapping](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-field-mapping.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.includeDefaults - Whether the default mapping values should be returned as well + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {String, String[], Boolean} params.index - A comma-separated list of index names + * @param {String, String[], Boolean} params.type - A comma-separated list of document types + * @param {String, String[], Boolean} params.fields - A comma-separated list of fields + */ +api.indices.prototype.getFieldMapping = ca({ + params: { + includeDefaults: { + type: 'boolean', + name: 'include_defaults' + }, + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + local: { + type: 'boolean' + } + }, + urls: [ + { + fmt: '/<%=index%>/_mapping/<%=type%>/field/<%=fields%>', + req: { + index: { + type: 'list' + }, + type: { + type: 'list' + }, + fields: { + type: 'list' + } + } + }, + { + fmt: '/<%=index%>/_mapping/field/<%=fields%>', + req: { + index: { + type: 'list' + }, + fields: { + type: 'list' + } + } + }, + { + fmt: '/_mapping/<%=type%>/field/<%=fields%>', + req: { + type: { + type: 'list' + }, + fields: { + type: 'list' + } + } + }, + { + fmt: '/_mapping/field/<%=fields%>', + req: { + fields: { + type: 'list' + } + } + } + ] +}); + +/** + * Perform a [indices.getMapping](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-mapping.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {String, String[], Boolean} params.index - A comma-separated list of index names + * @param {String, String[], Boolean} params.type - A comma-separated list of document types + */ +api.indices.prototype.getMapping = ca({ + params: { + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + local: { + type: 'boolean' + } + }, + urls: [ + { + fmt: '/<%=index%>/_mapping/<%=type%>', + req: { + index: { + type: 'list' + }, + type: { + type: 'list' + } + } + }, + { + fmt: '/<%=index%>/_mapping', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_mapping/<%=type%>', + req: { + type: { + type: 'list' + } + } + }, + { + fmt: '/_mapping' + } + ] +}); + +/** + * Perform a [indices.getSettings](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-settings.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open,closed] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {Boolean} params.flatSettings - Return settings in flat format (default: false) + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {Boolean} params.human - Whether to return version and creation date values in human-readable format. + * @param {String, String[], Boolean} params.index - A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices + * @param {String, String[], Boolean} params.name - The name of the settings that should be included + */ +api.indices.prototype.getSettings = ca({ + params: { + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': [ + 'open', + 'closed' + ], + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + flatSettings: { + type: 'boolean', + name: 'flat_settings' + }, + local: { + type: 'boolean' + }, + human: { + type: 'boolean', + 'default': false + } + }, + urls: [ + { + fmt: '/<%=index%>/_settings/<%=name%>', + req: { + index: { + type: 'list' + }, + name: { + type: 'list' + } + } + }, + { + fmt: '/<%=index%>/_settings', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_settings/<%=name%>', + req: { + name: { + type: 'list' + } + } + }, + { + fmt: '/_settings' + } + ] +}); + +/** + * Perform a [indices.getTemplate](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.flatSettings - Return settings in flat format (default: false) + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {String, String[], Boolean} params.name - The comma separated names of the index templates + */ +api.indices.prototype.getTemplate = ca({ + params: { + flatSettings: { + type: 'boolean', + name: 'flat_settings' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + local: { + type: 'boolean' + } + }, + urls: [ + { + fmt: '/_template/<%=name%>', + req: { + name: { + type: 'list' + } + } + }, + { + fmt: '/_template' + } + ] +}); + +/** + * Perform a [indices.getUpgrade](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-upgrade.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {Boolean} params.human - Whether to return time and byte values in human-readable format. + * @param {String, String[], Boolean} params.index - A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices + */ +api.indices.prototype.getUpgrade = ca({ + params: { + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + human: { + type: 'boolean', + 'default': false + } + }, + urls: [ + { + fmt: '/<%=index%>/_upgrade', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_upgrade' + } + ] +}); + +/** + * Perform a [indices.getWarmer](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-warmers.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {String, String[], Boolean} params.index - A comma-separated list of index names to restrict the operation; use `_all` to perform the operation on all indices + * @param {String, String[], Boolean} params.name - The name of the warmer (supports wildcards); leave empty to get all warmers + * @param {String, String[], Boolean} params.type - A comma-separated list of document types to restrict the operation; leave empty to perform the operation on all types + */ +api.indices.prototype.getWarmer = ca({ + params: { + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + local: { + type: 'boolean' + } + }, + urls: [ + { + fmt: '/<%=index%>/<%=type%>/_warmer/<%=name%>', + req: { + index: { + type: 'list' + }, + type: { + type: 'list' + }, + name: { + type: 'list' + } + } + }, + { + fmt: '/<%=index%>/_warmer/<%=name%>', + req: { + index: { + type: 'list' + }, + name: { + type: 'list' + } + } + }, + { + fmt: '/<%=index%>/_warmer', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_warmer/<%=name%>', + req: { + name: { + type: 'list' + } + } + }, + { + fmt: '/_warmer' + } + ] +}); + +/** + * Perform a [indices.open](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-open-close.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Date, Number} params.timeout - Explicit operation timeout + * @param {Date, Number} params.masterTimeout - Specify timeout for connection to master + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=closed] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {String, String[], Boolean} params.index - A comma separated list of indices to open + */ +api.indices.prototype.open = ca({ + params: { + timeout: { + type: 'time' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'closed', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + } + }, + url: { + fmt: '/<%=index%>/_open', + req: { + index: { + type: 'list' + } + } + }, + method: 'POST' +}); + +/** + * Perform a [indices.optimize](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-optimize.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.flush - Specify whether the index should be flushed after performing the operation (default: true) + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {Number} params.maxNumSegments - The number of segments the index should be merged into (default: dynamic) + * @param {Boolean} params.onlyExpungeDeletes - Specify whether the operation should only expunge deleted documents + * @param {Anything} params.operationThreading - TODO: ? + * @param {Boolean} params.waitForMerge - Specify whether the request should block until the merge process is finished (default: true) + * @param {String, String[], Boolean} params.index - A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices + */ +api.indices.prototype.optimize = ca({ + params: { + flush: { + type: 'boolean' + }, + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + maxNumSegments: { + type: 'number', + name: 'max_num_segments' + }, + onlyExpungeDeletes: { + type: 'boolean', + name: 'only_expunge_deletes' + }, + operationThreading: { + name: 'operation_threading' + }, + waitForMerge: { + type: 'boolean', + name: 'wait_for_merge' + } + }, + urls: [ + { + fmt: '/<%=index%>/_optimize', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_optimize' + } + ], + method: 'POST' +}); + +/** + * Perform a [indices.putAlias](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Date, Number} params.timeout - Explicit timestamp for the document + * @param {Date, Number} params.masterTimeout - Specify timeout for connection to master + * @param {String, String[], Boolean} params.index - A comma-separated list of index names the alias should point to (supports wildcards); use `_all` to perform the operation on all indices. + * @param {String} params.name - The name of the alias to be created or updated + */ +api.indices.prototype.putAlias = ca({ + params: { + timeout: { + type: 'time' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + } + }, + url: { + fmt: '/<%=index%>/_alias/<%=name%>', + req: { + index: { + type: 'list' + }, + name: { + type: 'string' + } + } + }, + method: 'PUT' +}); + +/** + * Perform a [indices.putMapping](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-put-mapping.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Date, Number} params.timeout - Explicit operation timeout + * @param {Date, Number} params.masterTimeout - Specify timeout for connection to master + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {Boolean} params.updateAllTypes - Whether to update the mapping for all fields with the same name across all types or not + * @param {String, String[], Boolean} params.index - A comma-separated list of index names the mapping should be added to (supports wildcards); use `_all` or omit to add the mapping on all indices. + * @param {String} params.type - The name of the document type + */ +api.indices.prototype.putMapping = ca({ + params: { + timeout: { + type: 'time' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + updateAllTypes: { + type: 'boolean', + name: 'update_all_types' + } + }, + urls: [ + { + fmt: '/<%=index%>/_mapping/<%=type%>', + req: { + index: { + type: 'list' + }, + type: { + type: 'string' + } + } + }, + { + fmt: '/_mapping/<%=type%>', + req: { + type: { + type: 'string' + } + } + } + ], + needBody: true, + method: 'PUT' +}); + +/** + * Perform a [indices.putSettings](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-update-settings.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Date, Number} params.masterTimeout - Specify timeout for connection to master + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {Boolean} params.flatSettings - Return settings in flat format (default: false) + * @param {String, String[], Boolean} params.index - A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices + */ +api.indices.prototype.putSettings = ca({ + params: { + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + flatSettings: { + type: 'boolean', + name: 'flat_settings' + } + }, + urls: [ + { + fmt: '/<%=index%>/_settings', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_settings' + } + ], + needBody: true, + method: 'PUT' +}); + +/** + * Perform a [indices.putTemplate](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Number} params.order - The order for this template when merging multiple matching ones (higher numbers are merged later, overriding the lower numbers) + * @param {Boolean} params.create - Whether the index template should only be added if new or can also replace an existing one + * @param {Date, Number} params.timeout - Explicit operation timeout + * @param {Date, Number} params.masterTimeout - Specify timeout for connection to master + * @param {Boolean} params.flatSettings - Return settings in flat format (default: false) + * @param {String} params.name - The name of the template + */ +api.indices.prototype.putTemplate = ca({ + params: { + order: { + type: 'number' + }, + create: { + type: 'boolean', + 'default': false + }, + timeout: { + type: 'time' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + flatSettings: { + type: 'boolean', + name: 'flat_settings' + } + }, + url: { + fmt: '/_template/<%=name%>', + req: { + name: { + type: 'string' + } + } + }, + needBody: true, + method: 'PUT' +}); + +/** + * Perform a [indices.putWarmer](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-warmers.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Date, Number} params.masterTimeout - Specify timeout for connection to master + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) in the search request to warm + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices in the search request to warm. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both, in the search request to warm. + * @param {Boolean} params.requestCache - Specify whether the request to be warmed should use the request cache, defaults to index level setting + * @param {String, String[], Boolean} params.index - A comma-separated list of index names to register the warmer for; use `_all` or omit to perform the operation on all indices + * @param {String} params.name - The name of the warmer + * @param {String, String[], Boolean} params.type - A comma-separated list of document types to register the warmer for; leave empty to perform the operation on all types + */ +api.indices.prototype.putWarmer = ca({ + params: { + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + requestCache: { + type: 'boolean', + name: 'request_cache' + } + }, + urls: [ + { + fmt: '/<%=index%>/<%=type%>/_warmer/<%=name%>', + req: { + index: { + type: 'list' + }, + type: { + type: 'list' + }, + name: { + type: 'string' + } + } + }, + { + fmt: '/<%=index%>/_warmer/<%=name%>', + req: { + index: { + type: 'list' + }, + name: { + type: 'string' + } + } + }, + { + fmt: '/_warmer/<%=name%>', + req: { + name: { + type: 'string' + } + } + } + ], + needBody: true, + method: 'PUT' +}); + +/** + * Perform a [indices.recovery](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-recovery.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.detailed - Whether to display detailed information about shard recovery + * @param {Boolean} params.activeOnly - Display only those recoveries that are currently on-going + * @param {Boolean} params.human - Whether to return time and byte values in human-readable format. + * @param {String, String[], Boolean} params.index - A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices + */ +api.indices.prototype.recovery = ca({ + params: { + detailed: { + type: 'boolean', + 'default': false + }, + activeOnly: { + type: 'boolean', + 'default': false, + name: 'active_only' + }, + human: { + type: 'boolean', + 'default': false + } + }, + urls: [ + { + fmt: '/<%=index%>/_recovery', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_recovery' + } + ] +}); + +/** + * Perform a [indices.refresh](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-refresh.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {Boolean} params.force - Force a refresh even if not required + * @param {Anything} params.operationThreading - TODO: ? + * @param {String, String[], Boolean} params.index - A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices + */ +api.indices.prototype.refresh = ca({ + params: { + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + force: { + type: 'boolean', + 'default': false + }, + operationThreading: { + name: 'operation_threading' + } + }, + urls: [ + { + fmt: '/<%=index%>/_refresh', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_refresh' + } + ], + method: 'POST' +}); + +/** + * Perform a [indices.segments](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-segments.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {Boolean} params.human - Whether to return time and byte values in human-readable format. + * @param {Anything} params.operationThreading - TODO: ? + * @param {Boolean} params.verbose - Includes detailed memory usage by Lucene. + * @param {String, String[], Boolean} params.index - A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices + */ +api.indices.prototype.segments = ca({ + params: { + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + human: { + type: 'boolean', + 'default': false + }, + operationThreading: { + name: 'operation_threading' + }, + verbose: { + type: 'boolean', + 'default': false + } + }, + urls: [ + { + fmt: '/<%=index%>/_segments', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_segments' + } + ] +}); + +/** + * Perform a [indices.shardStores](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-shards-stores.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String, String[], Boolean} params.status - A comma-separated list of statuses used to filter on shards to get store information for + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {Anything} params.operationThreading - TODO: ? + * @param {String, String[], Boolean} params.index - A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices + */ +api.indices.prototype.shardStores = ca({ + params: { + status: { + type: 'list', + options: [ + 'green', + 'yellow', + 'red', + 'all' + ] + }, + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + operationThreading: { + name: 'operation_threading' + } + }, + urls: [ + { + fmt: '/<%=index%>/_shard_stores', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_shard_stores' + } + ] +}); + +/** + * Perform a [indices.stats](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-stats.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String, String[], Boolean} params.completionFields - A comma-separated list of fields for `fielddata` and `suggest` index metric (supports wildcards) + * @param {String, String[], Boolean} params.fielddataFields - A comma-separated list of fields for `fielddata` index metric (supports wildcards) + * @param {String, String[], Boolean} params.fields - A comma-separated list of fields for `fielddata` and `completion` index metric (supports wildcards) + * @param {String, String[], Boolean} params.groups - A comma-separated list of search groups for `search` index metric + * @param {Boolean} params.human - Whether to return time and byte values in human-readable format. + * @param {String} [params.level=indices] - Return stats aggregated at cluster, index or shard level + * @param {String, String[], Boolean} params.types - A comma-separated list of document types for the `indexing` index metric + * @param {String, String[], Boolean} params.index - A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices + * @param {String, String[], Boolean} params.metric - Limit the information returned the specific metrics. + */ +api.indices.prototype.stats = ca({ + params: { + completionFields: { + type: 'list', + name: 'completion_fields' + }, + fielddataFields: { + type: 'list', + name: 'fielddata_fields' + }, + fields: { + type: 'list' + }, + groups: { + type: 'list' + }, + human: { + type: 'boolean', + 'default': false + }, + level: { + type: 'enum', + 'default': 'indices', + options: [ + 'cluster', + 'indices', + 'shards' + ] + }, + types: { + type: 'list' + } + }, + urls: [ + { + fmt: '/<%=index%>/_stats/<%=metric%>', + req: { + index: { + type: 'list' + }, + metric: { + type: 'list', + options: [ + '_all', + 'completion', + 'docs', + 'fielddata', + 'query_cache', + 'flush', + 'get', + 'indexing', + 'merge', + 'percolate', + 'request_cache', + 'refresh', + 'search', + 'segments', + 'store', + 'warmer', + 'suggest' + ] + } + } + }, + { + fmt: '/_stats/<%=metric%>', + req: { + metric: { + type: 'list', + options: [ + '_all', + 'completion', + 'docs', + 'fielddata', + 'query_cache', + 'flush', + 'get', + 'indexing', + 'merge', + 'percolate', + 'request_cache', + 'refresh', + 'search', + 'segments', + 'store', + 'warmer', + 'suggest' + ] + } + } + }, + { + fmt: '/<%=index%>/_stats', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_stats' + } + ] +}); + +/** + * Perform a [indices.updateAliases](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Date, Number} params.timeout - Request timeout + * @param {Date, Number} params.masterTimeout - Specify timeout for connection to master + */ +api.indices.prototype.updateAliases = ca({ + params: { + timeout: { + type: 'time' + }, + masterTimeout: { + type: 'time', + name: 'master_timeout' + } + }, + url: { + fmt: '/_aliases' + }, + needBody: true, + method: 'POST' +}); + +/** + * Perform a [indices.upgrade](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-upgrade.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.waitForCompletion - Specify whether the request should block until the all segments are upgraded (default: false) + * @param {Boolean} params.onlyAncientSegments - If true, only ancient (an older Lucene major release) segments will be upgraded + * @param {String, String[], Boolean} params.index - A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices + */ +api.indices.prototype.upgrade = ca({ + params: { + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + waitForCompletion: { + type: 'boolean', + name: 'wait_for_completion' + }, + onlyAncientSegments: { + type: 'boolean', + name: 'only_ancient_segments' + } + }, + urls: [ + { + fmt: '/<%=index%>/_upgrade', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_upgrade' + } + ], + method: 'POST' +}); + +/** + * Perform a [indices.validateQuery](http://www.elastic.co/guide/en/elasticsearch/reference/master/search-validate.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.explain - Return detailed information about the error + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {Anything} params.operationThreading - TODO: ? + * @param {String} params.q - Query in the Lucene query string syntax + * @param {String} params.analyzer - The analyzer to use for the query string + * @param {Boolean} params.analyzeWildcard - Specify whether wildcard and prefix queries should be analyzed (default: false) + * @param {String} [params.defaultOperator=OR] - The default operator for query string query (AND or OR) + * @param {String} params.df - The field to use as default where no field prefix is given in the query string + * @param {Boolean} params.lenient - Specify whether format-based query failures (such as providing text to a numeric field) should be ignored + * @param {Boolean} params.lowercaseExpandedTerms - Specify whether query terms should be lowercased + * @param {Boolean} params.rewrite - Provide a more detailed explanation showing the actual Lucene query that will be executed. + * @param {String, String[], Boolean} params.index - A comma-separated list of index names to restrict the operation; use `_all` or empty string to perform the operation on all indices + * @param {String, String[], Boolean} params.type - A comma-separated list of document types to restrict the operation; leave empty to perform the operation on all types + */ +api.indices.prototype.validateQuery = ca({ + params: { + explain: { + type: 'boolean' + }, + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + operationThreading: { + name: 'operation_threading' + }, + q: { + type: 'string' + }, + analyzer: { + type: 'string' + }, + analyzeWildcard: { + type: 'boolean', + name: 'analyze_wildcard' + }, + defaultOperator: { + type: 'enum', + 'default': 'OR', + options: [ + 'AND', + 'OR' + ], + name: 'default_operator' + }, + df: { + type: 'string' + }, + lenient: { + type: 'boolean' + }, + lowercaseExpandedTerms: { + type: 'boolean', + name: 'lowercase_expanded_terms' + }, + rewrite: { + type: 'boolean' + } + }, + urls: [ + { + fmt: '/<%=index%>/<%=type%>/_validate/query', + req: { + index: { + type: 'list' + }, + type: { + type: 'list' + } + } + }, + { + fmt: '/<%=index%>/_validate/query', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_validate/query' + } + ], + method: 'POST' +}); + +/** + * Perform a [info](http://www.elastic.co/guide/) request + * + * @param {Object} params - An object with parameters used to carry out this action + */ +api.info = ca({ + url: { + fmt: '/' + } +}); + +/** + * Perform a [mget](http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-multi-get.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String, String[], Boolean} params.fields - A comma-separated list of fields to return in the response + * @param {String} params.preference - Specify the node or shard the operation should be performed on (default: random) + * @param {Boolean} params.realtime - Specify whether to perform the operation in realtime or search mode + * @param {Boolean} params.refresh - Refresh the shard containing the document before performing the operation + * @param {String, String[], Boolean} params._source - True or false to return the _source field or not, or a list of fields to return + * @param {String, String[], Boolean} params._sourceExclude - A list of fields to exclude from the returned _source field + * @param {String, String[], Boolean} params._sourceInclude - A list of fields to extract and return from the _source field + * @param {String} params.index - The name of the index + * @param {String} params.type - The type of the document + */ +api.mget = ca({ + params: { + fields: { + type: 'list' + }, + preference: { + type: 'string' + }, + realtime: { + type: 'boolean' + }, + refresh: { + type: 'boolean' + }, + _source: { + type: 'list' + }, + _sourceExclude: { + type: 'list', + name: '_source_exclude' + }, + _sourceInclude: { + type: 'list', + name: '_source_include' + } + }, + urls: [ + { + fmt: '/<%=index%>/<%=type%>/_mget', + req: { + index: { + type: 'string' + }, + type: { + type: 'string' + } + } + }, + { + fmt: '/<%=index%>/_mget', + req: { + index: { + type: 'string' + } + } + }, + { + fmt: '/_mget' + } + ], + needBody: true, + method: 'POST' +}); + +/** + * Perform a [mpercolate](http://www.elastic.co/guide/en/elasticsearch/reference/master/search-percolate.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {String} params.index - The index of the document being count percolated to use as default + * @param {String} params.type - The type of the document being percolated to use as default. + */ +api.mpercolate = ca({ + params: { + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + } + }, + urls: [ + { + fmt: '/<%=index%>/<%=type%>/_mpercolate', + req: { + index: { + type: 'string' + }, + type: { + type: 'string' + } + } + }, + { + fmt: '/<%=index%>/_mpercolate', + req: { + index: { + type: 'string' + } + } + }, + { + fmt: '/_mpercolate' + } + ], + needBody: true, + bulkBody: true, + method: 'POST' +}); + +/** + * Perform a [msearch](http://www.elastic.co/guide/en/elasticsearch/reference/master/search-multi-search.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.searchType - Search operation type + * @param {String, String[], Boolean} params.index - A comma-separated list of index names to use as default + * @param {String, String[], Boolean} params.type - A comma-separated list of document types to use as default + */ +api.msearch = ca({ + params: { + searchType: { + type: 'enum', + options: [ + 'query_then_fetch', + 'query_and_fetch', + 'dfs_query_then_fetch', + 'dfs_query_and_fetch', + 'count', + 'scan' + ], + name: 'search_type' + } + }, + urls: [ + { + fmt: '/<%=index%>/<%=type%>/_msearch', + req: { + index: { + type: 'list' + }, + type: { + type: 'list' + } + } + }, + { + fmt: '/<%=index%>/_msearch', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_msearch' + } + ], + needBody: true, + bulkBody: true, + method: 'POST' +}); + +/** + * Perform a [mtermvectors](http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-multi-termvectors.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String, String[], Boolean} params.ids - A comma-separated list of documents ids. You must define ids as parameter or set "ids" or "docs" in the request body + * @param {Boolean} params.termStatistics - Specifies if total term frequency and document frequency should be returned. Applies to all returned documents unless otherwise specified in body "params" or "docs". + * @param {Boolean} [params.fieldStatistics=true] - Specifies if document count, sum of document frequencies and sum of total term frequencies should be returned. Applies to all returned documents unless otherwise specified in body "params" or "docs". + * @param {String, String[], Boolean} params.fields - A comma-separated list of fields to return. Applies to all returned documents unless otherwise specified in body "params" or "docs". + * @param {Boolean} [params.offsets=true] - Specifies if term offsets should be returned. Applies to all returned documents unless otherwise specified in body "params" or "docs". + * @param {Boolean} [params.positions=true] - Specifies if term positions should be returned. Applies to all returned documents unless otherwise specified in body "params" or "docs". + * @param {Boolean} [params.payloads=true] - Specifies if term payloads should be returned. Applies to all returned documents unless otherwise specified in body "params" or "docs". + * @param {String} params.preference - Specify the node or shard the operation should be performed on (default: random) .Applies to all returned documents unless otherwise specified in body "params" or "docs". + * @param {String} params.routing - Specific routing value. Applies to all returned documents unless otherwise specified in body "params" or "docs". + * @param {String} params.parent - Parent id of documents. Applies to all returned documents unless otherwise specified in body "params" or "docs". + * @param {Boolean} params.realtime - Specifies if requests are real-time as opposed to near-real-time (default: true). + * @param {Number} params.version - Explicit version number for concurrency control + * @param {String} params.versionType - Specific version type + * @param {String} params.index - The index in which the document resides. + * @param {String} params.type - The type of the document. + */ +api.mtermvectors = ca({ + params: { + ids: { + type: 'list', + required: false + }, + termStatistics: { + type: 'boolean', + 'default': false, + required: false, + name: 'term_statistics' + }, + fieldStatistics: { + type: 'boolean', + 'default': true, + required: false, + name: 'field_statistics' + }, + fields: { + type: 'list', + required: false + }, + offsets: { + type: 'boolean', + 'default': true, + required: false + }, + positions: { + type: 'boolean', + 'default': true, + required: false + }, + payloads: { + type: 'boolean', + 'default': true, + required: false + }, + preference: { + type: 'string', + required: false + }, + routing: { + type: 'string', + required: false + }, + parent: { + type: 'string', + required: false + }, + realtime: { + type: 'boolean', + required: false + }, + version: { + type: 'number' + }, + versionType: { + type: 'enum', + options: [ + 'internal', + 'external', + 'external_gte', + 'force' + ], + name: 'version_type' + } + }, + urls: [ + { + fmt: '/<%=index%>/<%=type%>/_mtermvectors', + req: { + index: { + type: 'string' + }, + type: { + type: 'string' + } + } + }, + { + fmt: '/<%=index%>/_mtermvectors', + req: { + index: { + type: 'string' + } + } + }, + { + fmt: '/_mtermvectors' + } + ], + method: 'POST' +}); + +api.nodes = namespace(); + +/** + * Perform a [nodes.hotThreads](http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-nodes-hot-threads.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Date, Number} params.interval - The interval for the second sampling of threads + * @param {Number} params.snapshots - Number of samples of thread stacktrace (default: 10) + * @param {Number} params.threads - Specify the number of threads to provide information for (default: 3) + * @param {Boolean} params.ignoreIdleThreads - Don't show threads that are in known-idle places, such as waiting on a socket select or pulling from an empty task queue (default: true) + * @param {String} params.type - The type to sample (default: cpu) + * @param {Date, Number} params.timeout - Explicit operation timeout + * @param {String, String[], Boolean} params.nodeId - A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes + */ +api.nodes.prototype.hotThreads = ca({ + params: { + interval: { + type: 'time' + }, + snapshots: { + type: 'number' + }, + threads: { + type: 'number' + }, + ignoreIdleThreads: { + type: 'boolean', + name: 'ignore_idle_threads' + }, + type: { + type: 'enum', + options: [ + 'cpu', + 'wait', + 'block' + ] + }, + timeout: { + type: 'time' + } + }, + urls: [ + { + fmt: '/_nodes/<%=nodeId%>/hotthreads', + req: { + nodeId: { + type: 'list' + } + } + }, + { + fmt: '/_nodes/hotthreads' + } + ] +}); + +/** + * Perform a [nodes.info](http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-nodes-info.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.flatSettings - Return settings in flat format (default: false) + * @param {Boolean} params.human - Whether to return time and byte values in human-readable format. + * @param {Date, Number} params.timeout - Explicit operation timeout + * @param {String, String[], Boolean} params.nodeId - A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes + * @param {String, String[], Boolean} params.metric - A comma-separated list of metrics you wish returned. Leave empty to return all. + */ +api.nodes.prototype.info = ca({ + params: { + flatSettings: { + type: 'boolean', + name: 'flat_settings' + }, + human: { + type: 'boolean', + 'default': false + }, + timeout: { + type: 'time' + } + }, + urls: [ + { + fmt: '/_nodes/<%=nodeId%>/<%=metric%>', + req: { + nodeId: { + type: 'list' + }, + metric: { + type: 'list', + options: [ + 'settings', + 'os', + 'process', + 'jvm', + 'thread_pool', + 'transport', + 'http', + 'plugins' + ] + } + } + }, + { + fmt: '/_nodes/<%=nodeId%>', + req: { + nodeId: { + type: 'list' + } + } + }, + { + fmt: '/_nodes/<%=metric%>', + req: { + metric: { + type: 'list', + options: [ + 'settings', + 'os', + 'process', + 'jvm', + 'thread_pool', + 'transport', + 'http', + 'plugins' + ] + } + } + }, + { + fmt: '/_nodes' + } + ] +}); + +/** + * Perform a [nodes.stats](http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-nodes-stats.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String, String[], Boolean} params.completionFields - A comma-separated list of fields for `fielddata` and `suggest` index metric (supports wildcards) + * @param {String, String[], Boolean} params.fielddataFields - A comma-separated list of fields for `fielddata` index metric (supports wildcards) + * @param {String, String[], Boolean} params.fields - A comma-separated list of fields for `fielddata` and `completion` index metric (supports wildcards) + * @param {Boolean} params.groups - A comma-separated list of search groups for `search` index metric + * @param {Boolean} params.human - Whether to return time and byte values in human-readable format. + * @param {String} [params.level=node] - Return indices stats aggregated at node, index or shard level + * @param {String, String[], Boolean} params.types - A comma-separated list of document types for the `indexing` index metric + * @param {Date, Number} params.timeout - Explicit operation timeout + * @param {String, String[], Boolean} params.metric - Limit the information returned to the specified metrics + * @param {String, String[], Boolean} params.indexMetric - Limit the information returned for `indices` metric to the specific index metrics. Isn't used if `indices` (or `all`) metric isn't specified. + * @param {String, String[], Boolean} params.nodeId - A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes + */ +api.nodes.prototype.stats = ca({ + params: { + completionFields: { + type: 'list', + name: 'completion_fields' + }, + fielddataFields: { + type: 'list', + name: 'fielddata_fields' + }, + fields: { + type: 'list' + }, + groups: { + type: 'boolean' + }, + human: { + type: 'boolean', + 'default': false + }, + level: { + type: 'enum', + 'default': 'node', + options: [ + 'node', + 'indices', + 'shards' + ] + }, + types: { + type: 'list' + }, + timeout: { + type: 'time' + } + }, + urls: [ + { + fmt: '/_nodes/<%=nodeId%>/stats/<%=metric%>/<%=indexMetric%>', + req: { + nodeId: { + type: 'list' + }, + metric: { + type: 'list', + options: [ + '_all', + 'breaker', + 'fs', + 'http', + 'indices', + 'jvm', + 'os', + 'process', + 'thread_pool', + 'transport' + ] + }, + indexMetric: { + type: 'list', + options: [ + '_all', + 'completion', + 'docs', + 'fielddata', + 'query_cache', + 'flush', + 'get', + 'indexing', + 'merge', + 'percolate', + 'request_cache', + 'refresh', + 'search', + 'segments', + 'store', + 'warmer', + 'suggest' + ] + } + } + }, + { + fmt: '/_nodes/<%=nodeId%>/stats/<%=metric%>', + req: { + nodeId: { + type: 'list' + }, + metric: { + type: 'list', + options: [ + '_all', + 'breaker', + 'fs', + 'http', + 'indices', + 'jvm', + 'os', + 'process', + 'thread_pool', + 'transport' + ] + } + } + }, + { + fmt: '/_nodes/stats/<%=metric%>/<%=indexMetric%>', + req: { + metric: { + type: 'list', + options: [ + '_all', + 'breaker', + 'fs', + 'http', + 'indices', + 'jvm', + 'os', + 'process', + 'thread_pool', + 'transport' + ] + }, + indexMetric: { + type: 'list', + options: [ + '_all', + 'completion', + 'docs', + 'fielddata', + 'query_cache', + 'flush', + 'get', + 'indexing', + 'merge', + 'percolate', + 'request_cache', + 'refresh', + 'search', + 'segments', + 'store', + 'warmer', + 'suggest' + ] + } + } + }, + { + fmt: '/_nodes/<%=nodeId%>/stats', + req: { + nodeId: { + type: 'list' + } + } + }, + { + fmt: '/_nodes/stats/<%=metric%>', + req: { + metric: { + type: 'list', + options: [ + '_all', + 'breaker', + 'fs', + 'http', + 'indices', + 'jvm', + 'os', + 'process', + 'thread_pool', + 'transport' + ] + } + } + }, + { + fmt: '/_nodes/stats' + } + ] +}); + +/** + * Perform a [percolate](http://www.elastic.co/guide/en/elasticsearch/reference/master/search-percolate.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String, String[], Boolean} params.routing - A comma-separated list of specific routing values + * @param {String} params.preference - Specify the node or shard the operation should be performed on (default: random) + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {String} params.percolateIndex - The index to percolate the document into. Defaults to index. + * @param {String} params.percolateType - The type to percolate document into. Defaults to type. + * @param {String} params.percolateRouting - The routing value to use when percolating the existing document. + * @param {String} params.percolatePreference - Which shard to prefer when executing the percolate request. + * @param {String} params.percolateFormat - Return an array of matching query IDs instead of objects + * @param {Number} params.version - Explicit version number for concurrency control + * @param {String} params.versionType - Specific version type + * @param {String} params.index - The index of the document being percolated. + * @param {String} params.type - The type of the document being percolated. + * @param {String} params.id - Substitute the document in the request body with a document that is known by the specified id. On top of the id, the index and type parameter will be used to retrieve the document from within the cluster. + */ +api.percolate = ca({ + params: { + routing: { + type: 'list' + }, + preference: { + type: 'string' + }, + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + percolateIndex: { + type: 'string', + name: 'percolate_index' + }, + percolateType: { + type: 'string', + name: 'percolate_type' + }, + percolateRouting: { + type: 'string', + name: 'percolate_routing' + }, + percolatePreference: { + type: 'string', + name: 'percolate_preference' + }, + percolateFormat: { + type: 'enum', + options: [ + 'ids' + ], + name: 'percolate_format' + }, + version: { + type: 'number' + }, + versionType: { + type: 'enum', + options: [ + 'internal', + 'external', + 'external_gte', + 'force' + ], + name: 'version_type' + } + }, + urls: [ + { + fmt: '/<%=index%>/<%=type%>/<%=id%>/_percolate', + req: { + index: { + type: 'string' + }, + type: { + type: 'string' + }, + id: { + type: 'string' + } + } + }, + { + fmt: '/<%=index%>/<%=type%>/_percolate', + req: { + index: { + type: 'string' + }, + type: { + type: 'string' + } + } + } + ], + method: 'POST' +}); + +/** + * Perform a [ping](http://www.elastic.co/guide/) request + * + * @param {Object} params - An object with parameters used to carry out this action + */ +api.ping = ca({ + url: { + fmt: '/' + }, + requestTimeout: 3000, + method: 'HEAD' +}); + +/** + * Perform a [putScript](http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String} [params.opType=index] - Explicit operation type + * @param {Number} params.version - Explicit version number for concurrency control + * @param {String} params.versionType - Specific version type + * @param {String} params.id - Script ID + * @param {String} params.lang - Script language + */ +api.putScript = ca({ + params: { + opType: { + type: 'enum', + 'default': 'index', + options: [ + 'index', + 'create' + ], + name: 'op_type' + }, + version: { + type: 'number' + }, + versionType: { + type: 'enum', + options: [ + 'internal', + 'external', + 'external_gte', + 'force' + ], + name: 'version_type' + } + }, + url: { + fmt: '/_scripts/<%=lang%>/<%=id%>', + req: { + lang: { + type: 'string' + }, + id: { + type: 'string' + } + } + }, + needBody: true, + method: 'PUT' +}); + +/** + * Perform a [putTemplate](http://www.elastic.co/guide/en/elasticsearch/reference/master/search-template.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String} [params.opType=index] - Explicit operation type + * @param {Number} params.version - Explicit version number for concurrency control + * @param {String} params.versionType - Specific version type + * @param {String} params.id - Template ID + */ +api.putTemplate = ca({ + params: { + opType: { + type: 'enum', + 'default': 'index', + options: [ + 'index', + 'create' + ], + name: 'op_type' + }, + version: { + type: 'number' + }, + versionType: { + type: 'enum', + options: [ + 'internal', + 'external', + 'external_gte', + 'force' + ], + name: 'version_type' + } + }, + url: { + fmt: '/_search/template/<%=id%>', + req: { + id: { + type: 'string' + } + } + }, + needBody: true, + method: 'PUT' +}); + +/** + * Perform a [reindex](https://www.elastic.co/guide/en/elasticsearch/plugins/master/plugins-reindex.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.refresh - Should the effected indexes be refreshed? + * @param {Date, Number} [params.timeout=1m] - Time each individual bulk request should wait for shards that are unavailable. + * @param {String} params.consistency - Explicit write consistency setting for the operation + * @param {Boolean} params.waitForCompletion - Should the request should block until the reindex is complete. + */ +api.reindex = ca({ + params: { + refresh: { + type: 'boolean' + }, + timeout: { + type: 'time', + 'default': '1m' + }, + consistency: { + type: 'enum', + options: [ + 'one', + 'quorum', + 'all' + ] + }, + waitForCompletion: { + type: 'boolean', + 'default': false, + name: 'wait_for_completion' + } + }, + url: { + fmt: '/_reindex' + }, + needBody: true, + method: 'POST' +}); + +/** + * Perform a [renderSearchTemplate](http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-template.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.id - The id of the stored search template + */ +api.renderSearchTemplate = ca({ + urls: [ + { + fmt: '/_render/template/<%=id%>', + req: { + id: { + type: 'string' + } + } + }, + { + fmt: '/_render/template' + } + ], + method: 'POST' +}); + +/** + * Perform a [scroll](http://www.elastic.co/guide/en/elasticsearch/reference/master/search-request-scroll.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Duration} params.scroll - Specify how long a consistent view of the index should be maintained for scrolled search + * @param {String} params.scrollId - The scroll ID + */ +api.scroll = ca({ + params: { + scroll: { + type: 'duration' + }, + scrollId: { + type: 'string', + name: 'scroll_id' + } + }, + urls: [ + { + fmt: '/_search/scroll/<%=scrollId%>', + req: { + scrollId: { + type: 'string' + } + } + }, + { + fmt: '/_search/scroll' + } + ], + paramAsBody: 'scrollId', + method: 'POST' +}); + +/** + * Perform a [search](http://www.elastic.co/guide/en/elasticsearch/reference/master/search-search.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.analyzer - The analyzer to use for the query string + * @param {Boolean} params.analyzeWildcard - Specify whether wildcard and prefix queries should be analyzed (default: false) + * @param {String} [params.defaultOperator=OR] - The default operator for query string query (AND or OR) + * @param {String} params.df - The field to use as default where no field prefix is given in the query string + * @param {Boolean} params.explain - Specify whether to return detailed information about score computation as part of a hit + * @param {String, String[], Boolean} params.fields - A comma-separated list of fields to return as part of a hit + * @param {String, String[], Boolean} params.fielddataFields - A comma-separated list of fields to return as the field data representation of a field for each hit + * @param {Number} params.from - Starting offset (default: 0) + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {Boolean} params.lenient - Specify whether format-based query failures (such as providing text to a numeric field) should be ignored + * @param {Boolean} params.lowercaseExpandedTerms - Specify whether query terms should be lowercased + * @param {String} params.preference - Specify the node or shard the operation should be performed on (default: random) + * @param {String} params.q - Query in the Lucene query string syntax + * @param {String, String[], Boolean} params.routing - A comma-separated list of specific routing values + * @param {Duration} params.scroll - Specify how long a consistent view of the index should be maintained for scrolled search + * @param {String} params.searchType - Search operation type + * @param {Number} params.size - Number of hits to return (default: 10) + * @param {String, String[], Boolean} params.sort - A comma-separated list of : pairs + * @param {String, String[], Boolean} params._source - True or false to return the _source field or not, or a list of fields to return + * @param {String, String[], Boolean} params._sourceExclude - A list of fields to exclude from the returned _source field + * @param {String, String[], Boolean} params._sourceInclude - A list of fields to extract and return from the _source field + * @param {Number} params.terminateAfter - The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early. + * @param {String, String[], Boolean} params.stats - Specific 'tag' of the request for logging and statistical purposes + * @param {String} params.suggestField - Specify which field to use for suggestions + * @param {String} [params.suggestMode=missing] - Specify suggest mode + * @param {Number} params.suggestSize - How many suggestions to return in response + * @param {Text} params.suggestText - The source text for which the suggestions should be returned + * @param {Date, Number} params.timeout - Explicit operation timeout + * @param {Boolean} params.trackScores - Whether to calculate and return scores even if they are not used for sorting + * @param {Boolean} params.version - Specify whether to return document version as part of a hit + * @param {Boolean} params.requestCache - Specify if request cache should be used for this request or not, defaults to index level setting + * @param {String, String[], Boolean} params.index - A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices + * @param {String, String[], Boolean} params.type - A comma-separated list of document types to search; leave empty to perform the operation on all types + */ +api.search = ca({ + params: { + analyzer: { + type: 'string' + }, + analyzeWildcard: { + type: 'boolean', + name: 'analyze_wildcard' + }, + defaultOperator: { + type: 'enum', + 'default': 'OR', + options: [ + 'AND', + 'OR' + ], + name: 'default_operator' + }, + df: { + type: 'string' + }, + explain: { + type: 'boolean' + }, + fields: { + type: 'list' + }, + fielddataFields: { + type: 'list', + name: 'fielddata_fields' + }, + from: { + type: 'number' + }, + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + lenient: { + type: 'boolean' + }, + lowercaseExpandedTerms: { + type: 'boolean', + name: 'lowercase_expanded_terms' + }, + preference: { + type: 'string' + }, + q: { + type: 'string' + }, + routing: { + type: 'list' + }, + scroll: { + type: 'duration' + }, + searchType: { + type: 'enum', + options: [ + 'query_then_fetch', + 'dfs_query_then_fetch', + 'count', + 'scan' + ], + name: 'search_type' + }, + size: { + type: 'number' + }, + sort: { + type: 'list' + }, + _source: { + type: 'list' + }, + _sourceExclude: { + type: 'list', + name: '_source_exclude' + }, + _sourceInclude: { + type: 'list', + name: '_source_include' + }, + terminateAfter: { + type: 'number', + name: 'terminate_after' + }, + stats: { + type: 'list' + }, + suggestField: { + type: 'string', + name: 'suggest_field' + }, + suggestMode: { + type: 'enum', + 'default': 'missing', + options: [ + 'missing', + 'popular', + 'always' + ], + name: 'suggest_mode' + }, + suggestSize: { + type: 'number', + name: 'suggest_size' + }, + suggestText: { + type: 'text', + name: 'suggest_text' + }, + timeout: { + type: 'time' + }, + trackScores: { + type: 'boolean', + name: 'track_scores' + }, + version: { + type: 'boolean' + }, + requestCache: { + type: 'boolean', + name: 'request_cache' + } + }, + urls: [ + { + fmt: '/<%=index%>/<%=type%>/_search', + req: { + index: { + type: 'list' + }, + type: { + type: 'list' + } + } + }, + { + fmt: '/<%=index%>/_search', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_search' + } + ], + method: 'POST' +}); + +/** + * Perform a [searchExists](http://www.elastic.co/guide/en/elasticsearch/reference/master/search-exists.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {Number} params.minScore - Include only documents with a specific `_score` value in the result + * @param {String} params.preference - Specify the node or shard the operation should be performed on (default: random) + * @param {String} params.routing - Specific routing value + * @param {String} params.q - Query in the Lucene query string syntax + * @param {String} params.analyzer - The analyzer to use for the query string + * @param {Boolean} params.analyzeWildcard - Specify whether wildcard and prefix queries should be analyzed (default: false) + * @param {String} [params.defaultOperator=OR] - The default operator for query string query (AND or OR) + * @param {String} params.df - The field to use as default where no field prefix is given in the query string + * @param {Boolean} params.lenient - Specify whether format-based query failures (such as providing text to a numeric field) should be ignored + * @param {Boolean} params.lowercaseExpandedTerms - Specify whether query terms should be lowercased + * @param {String, String[], Boolean} params.index - A comma-separated list of indices to restrict the results + * @param {String, String[], Boolean} params.type - A comma-separated list of types to restrict the results + */ +api.searchExists = ca({ + params: { + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + minScore: { + type: 'number', + name: 'min_score' + }, + preference: { + type: 'string' + }, + routing: { + type: 'string' + }, + q: { + type: 'string' + }, + analyzer: { + type: 'string' + }, + analyzeWildcard: { + type: 'boolean', + name: 'analyze_wildcard' + }, + defaultOperator: { + type: 'enum', + 'default': 'OR', + options: [ + 'AND', + 'OR' + ], + name: 'default_operator' + }, + df: { + type: 'string' + }, + lenient: { + type: 'boolean' + }, + lowercaseExpandedTerms: { + type: 'boolean', + name: 'lowercase_expanded_terms' + } + }, + urls: [ + { + fmt: '/<%=index%>/<%=type%>/_search/exists', + req: { + index: { + type: 'list' + }, + type: { + type: 'list' + } + } + }, + { + fmt: '/<%=index%>/_search/exists', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_search/exists' + } + ], + method: 'POST' +}); + +/** + * Perform a [searchShards](http://www.elastic.co/guide/en/elasticsearch/reference/master/search-shards.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.preference - Specify the node or shard the operation should be performed on (default: random) + * @param {String} params.routing - Specific routing value + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {String, String[], Boolean} params.index - A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices + * @param {String, String[], Boolean} params.type - A comma-separated list of document types to search; leave empty to perform the operation on all types + */ +api.searchShards = ca({ + params: { + preference: { + type: 'string' + }, + routing: { + type: 'string' + }, + local: { + type: 'boolean' + }, + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + } + }, + urls: [ + { + fmt: '/<%=index%>/<%=type%>/_search_shards', + req: { + index: { + type: 'list' + }, + type: { + type: 'list' + } + } + }, + { + fmt: '/<%=index%>/_search_shards', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_search_shards' + } + ], + method: 'POST' +}); + +/** + * Perform a [searchTemplate](http://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {String} params.preference - Specify the node or shard the operation should be performed on (default: random) + * @param {String, String[], Boolean} params.routing - A comma-separated list of specific routing values + * @param {Duration} params.scroll - Specify how long a consistent view of the index should be maintained for scrolled search + * @param {String} params.searchType - Search operation type + * @param {String, String[], Boolean} params.index - A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices + * @param {String, String[], Boolean} params.type - A comma-separated list of document types to search; leave empty to perform the operation on all types + */ +api.searchTemplate = ca({ + params: { + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + preference: { + type: 'string' + }, + routing: { + type: 'list' + }, + scroll: { + type: 'duration' + }, + searchType: { + type: 'enum', + options: [ + 'query_then_fetch', + 'query_and_fetch', + 'dfs_query_then_fetch', + 'dfs_query_and_fetch', + 'count', + 'scan' + ], + name: 'search_type' + } + }, + urls: [ + { + fmt: '/<%=index%>/<%=type%>/_search/template', + req: { + index: { + type: 'list' + }, + type: { + type: 'list' + } + } + }, + { + fmt: '/<%=index%>/_search/template', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_search/template' + } + ], + method: 'POST' +}); + +api.snapshot = namespace(); + +/** + * Perform a [snapshot.create](http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {Boolean} params.waitForCompletion - Should this request wait until the operation has completed before returning + * @param {String} params.repository - A repository name + * @param {String} params.snapshot - A snapshot name + */ +api.snapshot.prototype.create = ca({ + params: { + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + waitForCompletion: { + type: 'boolean', + 'default': false, + name: 'wait_for_completion' + } + }, + url: { + fmt: '/_snapshot/<%=repository%>/<%=snapshot%>', + req: { + repository: { + type: 'string' + }, + snapshot: { + type: 'string' + } + } + }, + method: 'POST' +}); + +/** + * Perform a [snapshot.createRepository](http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {Date, Number} params.timeout - Explicit operation timeout + * @param {Boolean} params.verify - Whether to verify the repository after creation + * @param {String} params.repository - A repository name + */ +api.snapshot.prototype.createRepository = ca({ + params: { + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + timeout: { + type: 'time' + }, + verify: { + type: 'boolean' + } + }, + url: { + fmt: '/_snapshot/<%=repository%>', + req: { + repository: { + type: 'string' + } + } + }, + needBody: true, + method: 'POST' +}); + +/** + * Perform a [snapshot.delete](http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {String} params.repository - A repository name + * @param {String} params.snapshot - A snapshot name + */ +api.snapshot.prototype['delete'] = ca({ + params: { + masterTimeout: { + type: 'time', + name: 'master_timeout' + } + }, + url: { + fmt: '/_snapshot/<%=repository%>/<%=snapshot%>', + req: { + repository: { + type: 'string' + }, + snapshot: { + type: 'string' + } + } + }, + method: 'DELETE' +}); + +/** + * Perform a [snapshot.deleteRepository](http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {Date, Number} params.timeout - Explicit operation timeout + * @param {String, String[], Boolean} params.repository - A comma-separated list of repository names + */ +api.snapshot.prototype.deleteRepository = ca({ + params: { + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + timeout: { + type: 'time' + } + }, + url: { + fmt: '/_snapshot/<%=repository%>', + req: { + repository: { + type: 'list' + } + } + }, + method: 'DELETE' +}); + +/** + * Perform a [snapshot.get](http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {String} params.repository - A repository name + * @param {String, String[], Boolean} params.snapshot - A comma-separated list of snapshot names + */ +api.snapshot.prototype.get = ca({ + params: { + masterTimeout: { + type: 'time', + name: 'master_timeout' + } + }, + url: { + fmt: '/_snapshot/<%=repository%>/<%=snapshot%>', + req: { + repository: { + type: 'string' + }, + snapshot: { + type: 'list' + } + } + } +}); + +/** + * Perform a [snapshot.getRepository](http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) + * @param {String, String[], Boolean} params.repository - A comma-separated list of repository names + */ +api.snapshot.prototype.getRepository = ca({ + params: { + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + local: { + type: 'boolean' + } + }, + urls: [ + { + fmt: '/_snapshot/<%=repository%>', + req: { + repository: { + type: 'list' + } + } + }, + { + fmt: '/_snapshot' + } + ] +}); + +/** + * Perform a [snapshot.restore](http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {Boolean} params.waitForCompletion - Should this request wait until the operation has completed before returning + * @param {String} params.repository - A repository name + * @param {String} params.snapshot - A snapshot name + */ +api.snapshot.prototype.restore = ca({ + params: { + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + waitForCompletion: { + type: 'boolean', + 'default': false, + name: 'wait_for_completion' + } + }, + url: { + fmt: '/_snapshot/<%=repository%>/<%=snapshot%>/_restore', + req: { + repository: { + type: 'string' + }, + snapshot: { + type: 'string' + } + } + }, + method: 'POST' +}); + +/** + * Perform a [snapshot.status](http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {String} params.repository - A repository name + * @param {String, String[], Boolean} params.snapshot - A comma-separated list of snapshot names + */ +api.snapshot.prototype.status = ca({ + params: { + masterTimeout: { + type: 'time', + name: 'master_timeout' + } + }, + urls: [ + { + fmt: '/_snapshot/<%=repository%>/<%=snapshot%>/_status', + req: { + repository: { + type: 'string' + }, + snapshot: { + type: 'list' + } + } + }, + { + fmt: '/_snapshot/<%=repository%>/_status', + req: { + repository: { + type: 'string' + } + } + }, + { + fmt: '/_snapshot/_status' + } + ] +}); + +/** + * Perform a [snapshot.verifyRepository](http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node + * @param {Date, Number} params.timeout - Explicit operation timeout + * @param {String} params.repository - A repository name + */ +api.snapshot.prototype.verifyRepository = ca({ + params: { + masterTimeout: { + type: 'time', + name: 'master_timeout' + }, + timeout: { + type: 'time' + } + }, + url: { + fmt: '/_snapshot/<%=repository%>/_verify', + req: { + repository: { + type: 'string' + } + } + }, + method: 'POST' +}); + +/** + * Perform a [suggest](http://www.elastic.co/guide/en/elasticsearch/reference/master/search-suggesters.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {String} params.preference - Specify the node or shard the operation should be performed on (default: random) + * @param {String} params.routing - Specific routing value + * @param {String, String[], Boolean} params.index - A comma-separated list of index names to restrict the operation; use `_all` or empty string to perform the operation on all indices + */ +api.suggest = ca({ + params: { + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + preference: { + type: 'string' + }, + routing: { + type: 'string' + } + }, + urls: [ + { + fmt: '/<%=index%>/_suggest', + req: { + index: { + type: 'list' + } + } + }, + { + fmt: '/_suggest' + } + ], + needBody: true, + method: 'POST' +}); + +api.tasks = namespace(); + +/** + * Perform a [tasks.cancel](http://www.elastic.co/guide/en/elasticsearch/reference/master/tasks-cancel.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String, String[], Boolean} params.nodeId - A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes + * @param {String, String[], Boolean} params.actions - A comma-separated list of actions that should be cancelled. Leave empty to cancel all. + * @param {String} params.parentNode - Cancel tasks with specified parent node. + * @param {Number} params.parentTask - Cancel tasks with specified parent task id. Set to -1 to cancel all. + * @param {Number} params.taskId - Cancel the task with specified id + */ +api.tasks.prototype.cancel = ca({ + params: { + nodeId: { + type: 'list', + name: 'node_id' + }, + actions: { + type: 'list' + }, + parentNode: { + type: 'string', + name: 'parent_node' + }, + parentTask: { + type: 'number', + name: 'parent_task' + } + }, + urls: [ + { + fmt: '/_tasks/<%=taskId%>/_cancel', + req: { + taskId: { + type: 'number' + } + } + }, + { + fmt: '/_tasks/_cancel' + } + ], + method: 'POST' +}); + +/** + * Perform a [tasks.list](http://www.elastic.co/guide/en/elasticsearch/reference/master/tasks-list.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String, String[], Boolean} params.nodeId - A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes + * @param {String, String[], Boolean} params.actions - A comma-separated list of actions that should be returned. Leave empty to return all. + * @param {Boolean} params.detailed - Return detailed task information (default: false) + * @param {String} params.parentNode - Return tasks with specified parent node. + * @param {Number} params.parentTask - Return tasks with specified parent task id. Set to -1 to return all. + * @param {Boolean} params.waitForCompletion - Wait for the matching tasks to complete (default: false) + * @param {Number} params.taskId - Return the task with specified id + */ +api.tasks.prototype.list = ca({ + params: { + nodeId: { + type: 'list', + name: 'node_id' + }, + actions: { + type: 'list' + }, + detailed: { + type: 'boolean' + }, + parentNode: { + type: 'string', + name: 'parent_node' + }, + parentTask: { + type: 'number', + name: 'parent_task' + }, + waitForCompletion: { + type: 'boolean', + name: 'wait_for_completion' + } + }, + urls: [ + { + fmt: '/_tasks/<%=taskId%>', + req: { + taskId: { + type: 'number' + } + } + }, + { + fmt: '/_tasks' + } + ] +}); + +/** + * Perform a [termvectors](http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-termvectors.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.termStatistics - Specifies if total term frequency and document frequency should be returned. + * @param {Boolean} [params.fieldStatistics=true] - Specifies if document count, sum of document frequencies and sum of total term frequencies should be returned. + * @param {Boolean} params.dfs - Specifies if distributed frequencies should be returned instead shard frequencies. + * @param {String, String[], Boolean} params.fields - A comma-separated list of fields to return. + * @param {Boolean} [params.offsets=true] - Specifies if term offsets should be returned. + * @param {Boolean} [params.positions=true] - Specifies if term positions should be returned. + * @param {Boolean} [params.payloads=true] - Specifies if term payloads should be returned. + * @param {String} params.preference - Specify the node or shard the operation should be performed on (default: random). + * @param {String} params.routing - Specific routing value. + * @param {String} params.parent - Parent id of documents. + * @param {Boolean} params.realtime - Specifies if request is real-time as opposed to near-real-time (default: true). + * @param {Number} params.version - Explicit version number for concurrency control + * @param {String} params.versionType - Specific version type + * @param {String} params.index - The index in which the document resides. + * @param {String} params.type - The type of the document. + * @param {String} params.id - The id of the document, when not specified a doc param should be supplied. + */ +api.termvectors = ca({ + params: { + termStatistics: { + type: 'boolean', + 'default': false, + required: false, + name: 'term_statistics' + }, + fieldStatistics: { + type: 'boolean', + 'default': true, + required: false, + name: 'field_statistics' + }, + dfs: { + type: 'boolean', + 'default': false, + required: false + }, + fields: { + type: 'list', + required: false + }, + offsets: { + type: 'boolean', + 'default': true, + required: false + }, + positions: { + type: 'boolean', + 'default': true, + required: false + }, + payloads: { + type: 'boolean', + 'default': true, + required: false + }, + preference: { + type: 'string', + required: false + }, + routing: { + type: 'string', + required: false + }, + parent: { + type: 'string', + required: false + }, + realtime: { + type: 'boolean', + required: false + }, + version: { + type: 'number' + }, + versionType: { + type: 'enum', + options: [ + 'internal', + 'external', + 'external_gte', + 'force' + ], + name: 'version_type' + } + }, + urls: [ + { + fmt: '/<%=index%>/<%=type%>/<%=id%>/_termvectors', + req: { + index: { + type: 'string' + }, + type: { + type: 'string' + }, + id: { + type: 'string' + } + } + }, + { + fmt: '/<%=index%>/<%=type%>/_termvectors', + req: { + index: { + type: 'string' + }, + type: { + type: 'string' + } + } + } + ], + method: 'POST' +}); + +/** + * Perform a [update](http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-update.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.consistency - Explicit write consistency setting for the operation + * @param {String, String[], Boolean} params.fields - A comma-separated list of fields to return in the response + * @param {String} params.lang - The script language (default: groovy) + * @param {String} params.parent - ID of the parent document. Is is only used for routing and when for the upsert request + * @param {Boolean} params.refresh - Refresh the index after performing the operation + * @param {Number} params.retryOnConflict - Specify how many times should the operation be retried when a conflict occurs (default: 0) + * @param {String} params.routing - Specific routing value + * @param {Anything} params.script - The URL-encoded script definition (instead of using request body) + * @param {Anything} params.scriptId - The id of a stored script + * @param {Boolean} params.scriptedUpsert - True if the script referenced in script or script_id should be called to perform inserts - defaults to false + * @param {Date, Number} params.timeout - Explicit operation timeout + * @param {Date, Number} params.timestamp - Explicit timestamp for the document + * @param {Duration} params.ttl - Expiration time for the document + * @param {Number} params.version - Explicit version number for concurrency control + * @param {String} params.versionType - Specific version type + * @param {String} params.id - Document ID + * @param {String} params.index - The name of the index + * @param {String} params.type - The type of the document + */ +api.update = ca({ + params: { + consistency: { + type: 'enum', + options: [ + 'one', + 'quorum', + 'all' + ] + }, + fields: { + type: 'list' + }, + lang: { + type: 'string' + }, + parent: { + type: 'string' + }, + refresh: { + type: 'boolean' + }, + retryOnConflict: { + type: 'number', + name: 'retry_on_conflict' + }, + routing: { + type: 'string' + }, + script: {}, + scriptId: { + name: 'script_id' + }, + scriptedUpsert: { + type: 'boolean', + name: 'scripted_upsert' + }, + timeout: { + type: 'time' + }, + timestamp: { + type: 'time' + }, + ttl: { + type: 'duration' + }, + version: { + type: 'number' + }, + versionType: { + type: 'enum', + options: [ + 'internal', + 'force' + ], + name: 'version_type' + } + }, + url: { + fmt: '/<%=index%>/<%=type%>/<%=id%>/_update', + req: { + index: { + type: 'string' + }, + type: { + type: 'string' + }, + id: { + type: 'string' + } + } + }, + method: 'POST' +}); + +/** + * Perform a [updateByQuery](https://www.elastic.co/guide/en/elasticsearch/plugins/master/plugins-reindex.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.analyzer - The analyzer to use for the query string + * @param {Boolean} params.analyzeWildcard - Specify whether wildcard and prefix queries should be analyzed (default: false) + * @param {String} [params.defaultOperator=OR] - The default operator for query string query (AND or OR) + * @param {String} params.df - The field to use as default where no field prefix is given in the query string + * @param {Boolean} params.explain - Specify whether to return detailed information about score computation as part of a hit + * @param {String, String[], Boolean} params.fields - A comma-separated list of fields to return as part of a hit + * @param {String, String[], Boolean} params.fielddataFields - A comma-separated list of fields to return as the field data representation of a field for each hit + * @param {Number} params.from - Starting offset (default: 0) + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.conflicts=abort] - What to do when the reindex hits version conflicts? + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {Boolean} params.lenient - Specify whether format-based query failures (such as providing text to a numeric field) should be ignored + * @param {Boolean} params.lowercaseExpandedTerms - Specify whether query terms should be lowercased + * @param {String} params.preference - Specify the node or shard the operation should be performed on (default: random) + * @param {String} params.q - Query in the Lucene query string syntax + * @param {String, String[], Boolean} params.routing - A comma-separated list of specific routing values + * @param {Duration} params.scroll - Specify how long a consistent view of the index should be maintained for scrolled search + * @param {String} params.searchType - Search operation type + * @param {Date, Number} params.searchTimeout - Explicit timeout for each search request. Defaults to no timeout. + * @param {Number} params.size - Number of hits to return (default: 10) + * @param {String, String[], Boolean} params.sort - A comma-separated list of : pairs + * @param {String, String[], Boolean} params._source - True or false to return the _source field or not, or a list of fields to return + * @param {String, String[], Boolean} params._sourceExclude - A list of fields to exclude from the returned _source field + * @param {String, String[], Boolean} params._sourceInclude - A list of fields to extract and return from the _source field + * @param {Number} params.terminateAfter - The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early. + * @param {String, String[], Boolean} params.stats - Specific 'tag' of the request for logging and statistical purposes + * @param {String} params.suggestField - Specify which field to use for suggestions + * @param {String} [params.suggestMode=missing] - Specify suggest mode + * @param {Number} params.suggestSize - How many suggestions to return in response + * @param {Text} params.suggestText - The source text for which the suggestions should be returned + * @param {Date, Number} [params.timeout=1m] - Time each individual bulk request should wait for shards that are unavailable. + * @param {Boolean} params.trackScores - Whether to calculate and return scores even if they are not used for sorting + * @param {Boolean} params.version - Specify whether to return document version as part of a hit + * @param {Boolean} params.versionType - Should the document increment the version number (internal) on hit or not (reindex) + * @param {Boolean} params.requestCache - Specify if request cache should be used for this request or not, defaults to index level setting + * @param {Boolean} params.refresh - Should the effected indexes be refreshed? + * @param {String} params.consistency - Explicit write consistency setting for the operation + * @param {Integer} params.scrollSize - Size on the scroll request powering the update_by_query + * @param {Boolean} params.waitForCompletion - Should the request should block until the reindex is complete. + * @param {String, String[], Boolean} params.index - A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices + * @param {String, String[], Boolean} params.type - A comma-separated list of document types to search; leave empty to perform the operation on all types + */ +api.updateByQuery = ca({ + params: { + analyzer: { + type: 'string' + }, + analyzeWildcard: { + type: 'boolean', + name: 'analyze_wildcard' + }, + defaultOperator: { + type: 'enum', + 'default': 'OR', + options: [ + 'AND', + 'OR' + ], + name: 'default_operator' + }, + df: { + type: 'string' + }, + explain: { + type: 'boolean' + }, + fields: { + type: 'list' + }, + fielddataFields: { + type: 'list', + name: 'fielddata_fields' + }, + from: { + type: 'number' + }, + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + conflicts: { + type: 'enum', + 'default': 'abort', + options: [ + 'abort', + 'proceed' + ] + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + lenient: { + type: 'boolean' + }, + lowercaseExpandedTerms: { + type: 'boolean', + name: 'lowercase_expanded_terms' + }, + preference: { + type: 'string' + }, + q: { + type: 'string' + }, + routing: { + type: 'list' + }, + scroll: { + type: 'duration' + }, + searchType: { + type: 'enum', + options: [ + 'query_then_fetch', + 'dfs_query_then_fetch' + ], + name: 'search_type' + }, + searchTimeout: { + type: 'time', + name: 'search_timeout' + }, + size: { + type: 'number' + }, + sort: { + type: 'list' + }, + _source: { + type: 'list' + }, + _sourceExclude: { + type: 'list', + name: '_source_exclude' + }, + _sourceInclude: { + type: 'list', + name: '_source_include' + }, + terminateAfter: { + type: 'number', + name: 'terminate_after' + }, + stats: { + type: 'list' + }, + suggestField: { + type: 'string', + name: 'suggest_field' + }, + suggestMode: { + type: 'enum', + 'default': 'missing', + options: [ + 'missing', + 'popular', + 'always' + ], + name: 'suggest_mode' + }, + suggestSize: { + type: 'number', + name: 'suggest_size' + }, + suggestText: { + type: 'text', + name: 'suggest_text' + }, + timeout: { + type: 'time', + 'default': '1m' + }, + trackScores: { + type: 'boolean', + name: 'track_scores' + }, + version: { + type: 'boolean' + }, + versionType: { + type: 'boolean', + name: 'version_type' + }, + requestCache: { + type: 'boolean', + name: 'request_cache' + }, + refresh: { + type: 'boolean' + }, + consistency: { + type: 'enum', + options: [ + 'one', + 'quorum', + 'all' + ] + }, + scrollSize: { + type: 'integer', + name: 'scroll_size' + }, + waitForCompletion: { + type: 'boolean', + 'default': false, + name: 'wait_for_completion' + } + }, + urls: [ + { + fmt: '/<%=index%>/<%=type%>/_update_by_query', + req: { + index: { + type: 'list' + }, + type: { + type: 'list' + } + } + }, + { + fmt: '/<%=index%>/_update_by_query', + req: { + index: { + type: 'list' + } + } + } + ], + method: 'POST' +}); + +/** + * Perform a [create](http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.consistency - Explicit write consistency setting for the operation + * @param {String} params.parent - ID of the parent document + * @param {Boolean} params.refresh - Refresh the index after performing the operation + * @param {String} params.routing - Specific routing value + * @param {Date, Number} params.timeout - Explicit operation timeout + * @param {Date, Number} params.timestamp - Explicit timestamp for the document + * @param {Duration} params.ttl - Expiration time for the document + * @param {Number} params.version - Explicit version number for concurrency control + * @param {String} params.versionType - Specific version type + * @param {String} params.id - Document ID + * @param {String} params.index - The name of the index + * @param {String} params.type - The type of the document + */ +api.create = ca.proxy(api.index, { + transform: function (params) { + params.op_type = 'create'; + } +}); diff --git a/src/lib/apis/2_x.js b/src/lib/apis/2_x.js index 221346276..04e865496 100644 --- a/src/lib/apis/2_x.js +++ b/src/lib/apis/2_x.js @@ -11,7 +11,7 @@ var ca = require('../client_action').makeFactoryWithModifier(function (spec) { var namespace = require('../client_action').namespaceFactory; var api = module.exports = {}; -api._namespaces = ['cat', 'cluster', 'indices', 'nodes', 'snapshot']; +api._namespaces = ['cat', 'cluster', 'indices', 'nodes', 'snapshot', 'tasks']; /** * Perform a [bulk](http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-bulk.html) request @@ -2094,8 +2094,8 @@ api.indices = namespace(); * @param {Boolean} params.preferLocal - With `true`, specify that a local shard should be used if available, with `false`, use a random shard (default: true) * @param {String, String[], Boolean} params.text - The text on which the analysis should be performed (when request body is not used) * @param {String} params.tokenizer - The name of the tokenizer to use for the analysis - * @param {Boolean} params.detail - With `true`, outputs more advanced details. (default: false) - * @param {String, String[], Boolean} params.attributes - A comma-separated list of token attributes to output, this parameter works only with `detail=true` + * @param {Boolean} params.explain - With `true`, outputs more advanced details. (default: false) + * @param {String, String[], Boolean} params.attributes - A comma-separated list of token attributes to output, this parameter works only with `explain=true` * @param {String} [params.format=detailed] - Format of the output */ api.indices.prototype.analyze = ca({ @@ -2126,7 +2126,7 @@ api.indices.prototype.analyze = ca({ tokenizer: { type: 'string' }, - detail: { + explain: { type: 'boolean' }, attributes: { @@ -5215,6 +5215,45 @@ api.putTemplate = ca({ method: 'PUT' }); +/** + * Perform a [reindex](https://www.elastic.co/guide/en/elasticsearch/plugins/master/plugins-reindex.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.refresh - Should the effected indexes be refreshed? + * @param {Date, Number} [params.timeout=1m] - Time each individual bulk request should wait for shards that are unavailable. + * @param {String} params.consistency - Explicit write consistency setting for the operation + * @param {Boolean} params.waitForCompletion - Should the request should block until the reindex is complete. + */ +api.reindex = ca({ + params: { + refresh: { + type: 'boolean' + }, + timeout: { + type: 'time', + 'default': '1m' + }, + consistency: { + type: 'enum', + options: [ + 'one', + 'quorum', + 'all' + ] + }, + waitForCompletion: { + type: 'boolean', + 'default': false, + name: 'wait_for_completion' + } + }, + url: { + fmt: '/_reindex' + }, + needBody: true, + method: 'POST' +}); + /** * Perform a [renderSearchTemplate](http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-template.html) request * @@ -6096,6 +6135,104 @@ api.suggest = ca({ method: 'POST' }); +api.tasks = namespace(); + +/** + * Perform a [tasks.cancel](http://www.elastic.co/guide/en/elasticsearch/reference/master/tasks-cancel.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String, String[], Boolean} params.nodeId - A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes + * @param {String, String[], Boolean} params.actions - A comma-separated list of actions that should be cancelled. Leave empty to cancel all. + * @param {String} params.parentNode - Cancel tasks with specified parent node. + * @param {Number} params.parentTask - Cancel tasks with specified parent task id. Set to -1 to cancel all. + * @param {Number} params.taskId - Cancel the task with specified id + */ +api.tasks.prototype.cancel = ca({ + params: { + nodeId: { + type: 'list', + name: 'node_id' + }, + actions: { + type: 'list' + }, + parentNode: { + type: 'string', + name: 'parent_node' + }, + parentTask: { + type: 'number', + name: 'parent_task' + } + }, + urls: [ + { + fmt: '/_tasks/<%=taskId%>/_cancel', + req: { + taskId: { + type: 'number' + } + } + }, + { + fmt: '/_tasks/_cancel' + } + ], + method: 'POST' +}); + +/** + * Perform a [tasks.list](http://www.elastic.co/guide/en/elasticsearch/reference/master/tasks-list.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String, String[], Boolean} params.nodeId - A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes + * @param {String, String[], Boolean} params.actions - A comma-separated list of actions that should be returned. Leave empty to return all. + * @param {Boolean} params.detailed - Return detailed task information (default: false) + * @param {String} params.parentNode - Return tasks with specified parent node. + * @param {Number} params.parentTask - Return tasks with specified parent task id. Set to -1 to return all. + * @param {Boolean} params.waitForCompletion - Wait for the matching tasks to complete (default: false) + * @param {Number} params.taskId - Return the task with specified id + */ +api.tasks.prototype.list = ca({ + params: { + nodeId: { + type: 'list', + name: 'node_id' + }, + actions: { + type: 'list' + }, + detailed: { + type: 'boolean' + }, + parentNode: { + type: 'string', + name: 'parent_node' + }, + parentTask: { + type: 'number', + name: 'parent_task' + }, + waitForCompletion: { + type: 'boolean', + name: 'wait_for_completion' + } + }, + urls: [ + { + fmt: '/_tasks/<%=taskId%>', + req: { + taskId: { + type: 'number' + } + } + }, + { + fmt: '/_tasks' + } + ] +}); + /** * Perform a [termvectors](http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-termvectors.html) request * @@ -6313,6 +6450,255 @@ api.update = ca({ method: 'POST' }); +/** + * Perform a [updateByQuery](https://www.elastic.co/guide/en/elasticsearch/plugins/master/plugins-reindex.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.analyzer - The analyzer to use for the query string + * @param {Boolean} params.analyzeWildcard - Specify whether wildcard and prefix queries should be analyzed (default: false) + * @param {String} [params.defaultOperator=OR] - The default operator for query string query (AND or OR) + * @param {String} params.df - The field to use as default where no field prefix is given in the query string + * @param {Boolean} params.explain - Specify whether to return detailed information about score computation as part of a hit + * @param {String, String[], Boolean} params.fields - A comma-separated list of fields to return as part of a hit + * @param {String, String[], Boolean} params.fielddataFields - A comma-separated list of fields to return as the field data representation of a field for each hit + * @param {Number} params.from - Starting offset (default: 0) + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.conflicts=abort] - What to do when the reindex hits version conflicts? + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {Boolean} params.lenient - Specify whether format-based query failures (such as providing text to a numeric field) should be ignored + * @param {Boolean} params.lowercaseExpandedTerms - Specify whether query terms should be lowercased + * @param {String} params.preference - Specify the node or shard the operation should be performed on (default: random) + * @param {String} params.q - Query in the Lucene query string syntax + * @param {String, String[], Boolean} params.routing - A comma-separated list of specific routing values + * @param {Duration} params.scroll - Specify how long a consistent view of the index should be maintained for scrolled search + * @param {String} params.searchType - Search operation type + * @param {Date, Number} params.searchTimeout - Explicit timeout for each search request. Defaults to no timeout. + * @param {Number} params.size - Number of hits to return (default: 10) + * @param {String, String[], Boolean} params.sort - A comma-separated list of : pairs + * @param {String, String[], Boolean} params._source - True or false to return the _source field or not, or a list of fields to return + * @param {String, String[], Boolean} params._sourceExclude - A list of fields to exclude from the returned _source field + * @param {String, String[], Boolean} params._sourceInclude - A list of fields to extract and return from the _source field + * @param {Number} params.terminateAfter - The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early. + * @param {String, String[], Boolean} params.stats - Specific 'tag' of the request for logging and statistical purposes + * @param {String} params.suggestField - Specify which field to use for suggestions + * @param {String} [params.suggestMode=missing] - Specify suggest mode + * @param {Number} params.suggestSize - How many suggestions to return in response + * @param {Text} params.suggestText - The source text for which the suggestions should be returned + * @param {Date, Number} [params.timeout=1m] - Time each individual bulk request should wait for shards that are unavailable. + * @param {Boolean} params.trackScores - Whether to calculate and return scores even if they are not used for sorting + * @param {Boolean} params.version - Specify whether to return document version as part of a hit + * @param {Boolean} params.versionType - Should the document increment the version number (internal) on hit or not (reindex) + * @param {Boolean} params.requestCache - Specify if request cache should be used for this request or not, defaults to index level setting + * @param {Boolean} params.refresh - Should the effected indexes be refreshed? + * @param {String} params.consistency - Explicit write consistency setting for the operation + * @param {Integer} params.scrollSize - Size on the scroll request powering the update_by_query + * @param {Boolean} params.waitForCompletion - Should the request should block until the reindex is complete. + * @param {String, String[], Boolean} params.index - A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices + * @param {String, String[], Boolean} params.type - A comma-separated list of document types to search; leave empty to perform the operation on all types + */ +api.updateByQuery = ca({ + params: { + analyzer: { + type: 'string' + }, + analyzeWildcard: { + type: 'boolean', + name: 'analyze_wildcard' + }, + defaultOperator: { + type: 'enum', + 'default': 'OR', + options: [ + 'AND', + 'OR' + ], + name: 'default_operator' + }, + df: { + type: 'string' + }, + explain: { + type: 'boolean' + }, + fields: { + type: 'list' + }, + fielddataFields: { + type: 'list', + name: 'fielddata_fields' + }, + from: { + type: 'number' + }, + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + conflicts: { + type: 'enum', + 'default': 'abort', + options: [ + 'abort', + 'proceed' + ] + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + lenient: { + type: 'boolean' + }, + lowercaseExpandedTerms: { + type: 'boolean', + name: 'lowercase_expanded_terms' + }, + preference: { + type: 'string' + }, + q: { + type: 'string' + }, + routing: { + type: 'list' + }, + scroll: { + type: 'duration' + }, + searchType: { + type: 'enum', + options: [ + 'query_then_fetch', + 'dfs_query_then_fetch' + ], + name: 'search_type' + }, + searchTimeout: { + type: 'time', + name: 'search_timeout' + }, + size: { + type: 'number' + }, + sort: { + type: 'list' + }, + _source: { + type: 'list' + }, + _sourceExclude: { + type: 'list', + name: '_source_exclude' + }, + _sourceInclude: { + type: 'list', + name: '_source_include' + }, + terminateAfter: { + type: 'number', + name: 'terminate_after' + }, + stats: { + type: 'list' + }, + suggestField: { + type: 'string', + name: 'suggest_field' + }, + suggestMode: { + type: 'enum', + 'default': 'missing', + options: [ + 'missing', + 'popular', + 'always' + ], + name: 'suggest_mode' + }, + suggestSize: { + type: 'number', + name: 'suggest_size' + }, + suggestText: { + type: 'text', + name: 'suggest_text' + }, + timeout: { + type: 'time', + 'default': '1m' + }, + trackScores: { + type: 'boolean', + name: 'track_scores' + }, + version: { + type: 'boolean' + }, + versionType: { + type: 'boolean', + name: 'version_type' + }, + requestCache: { + type: 'boolean', + name: 'request_cache' + }, + refresh: { + type: 'boolean' + }, + consistency: { + type: 'enum', + options: [ + 'one', + 'quorum', + 'all' + ] + }, + scrollSize: { + type: 'integer', + name: 'scroll_size' + }, + waitForCompletion: { + type: 'boolean', + 'default': false, + name: 'wait_for_completion' + } + }, + urls: [ + { + fmt: '/<%=index%>/<%=type%>/_update_by_query', + req: { + index: { + type: 'list' + }, + type: { + type: 'list' + } + } + }, + { + fmt: '/<%=index%>/_update_by_query', + req: { + index: { + type: 'list' + } + } + } + ], + method: 'POST' +}); + /** * Perform a [create](http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html) request * diff --git a/src/lib/apis/browser_index.js b/src/lib/apis/browser_index.js index c939d23e5..28428793f 100644 --- a/src/lib/apis/browser_index.js +++ b/src/lib/apis/browser_index.js @@ -1,10 +1,10 @@ module.exports = { + '_default': require('./2_3'), + '2.3': require('./2_3'), '2.2': require('./2_2'), - '_default': require('./2_1'), '2.1': require('./2_1'), '2.0': require('./2_0'), '1.7': require('./1_7'), - '1.6': require('./1_6'), '2.x': require('./2_x'), 'master': require('./master') }; diff --git a/src/lib/apis/index.js b/src/lib/apis/index.js index d965f6307..99315a702 100644 --- a/src/lib/apis/index.js +++ b/src/lib/apis/index.js @@ -1,6 +1,7 @@ module.exports = { + '_default': require('./2_3'), + '2.3': require('./2_3'), '2.2': require('./2_2'), - '_default': require('./2_1'), '2.1': require('./2_1'), '2.0': require('./2_0'), '1.7': require('./1_7'), diff --git a/src/lib/apis/master.js b/src/lib/apis/master.js index f6f280548..acd090eb6 100644 --- a/src/lib/apis/master.js +++ b/src/lib/apis/master.js @@ -952,6 +952,25 @@ api.clearScroll = ca({ api.cluster = namespace(); +/** + * Perform a [cluster.allocationExplain](http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-allocation-explain.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.includeYesDecisions - Return 'YES' decisions in explanation (default: false) + */ +api.cluster.prototype.allocationExplain = ca({ + params: { + includeYesDecisions: { + type: 'boolean', + name: 'include_yes_decisions' + } + }, + url: { + fmt: '/_cluster/allocation/explain' + }, + method: 'POST' +}); + /** * Perform a [cluster.getSettings](http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-update-settings.html) request * @@ -2176,8 +2195,8 @@ api.indices = namespace(); * @param {Boolean} params.preferLocal - With `true`, specify that a local shard should be used if available, with `false`, use a random shard (default: true) * @param {String, String[], Boolean} params.text - The text on which the analysis should be performed (when request body is not used) * @param {String} params.tokenizer - The name of the tokenizer to use for the analysis - * @param {Boolean} params.detail - With `true`, outputs more advanced details. (default: false) - * @param {String, String[], Boolean} params.attributes - A comma-separated list of token attributes to output, this parameter works only with `detail=true` + * @param {Boolean} params.explain - With `true`, outputs more advanced details. (default: false) + * @param {String, String[], Boolean} params.attributes - A comma-separated list of token attributes to output, this parameter works only with `explain=true` * @param {String} [params.format=detailed] - Format of the output */ api.indices.prototype.analyze = ca({ @@ -2208,7 +2227,7 @@ api.indices.prototype.analyze = ca({ tokenizer: { type: 'string' }, - detail: { + explain: { type: 'boolean' }, attributes: { @@ -3559,6 +3578,7 @@ api.indices.prototype.putMapping = ca({ * * @param {Object} params - An object with parameters used to carry out this action * @param {Date, Number} params.masterTimeout - Specify timeout for connection to master + * @param {Boolean} params.preserveExisting - Whether to update existing settings. If set to `true` existing settings on an index remain unchanged, the default is `false` * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. @@ -3571,6 +3591,10 @@ api.indices.prototype.putSettings = ca({ type: 'time', name: 'master_timeout' }, + preserveExisting: { + type: 'boolean', + name: 'preserve_existing' + }, ignoreUnavailable: { type: 'boolean', name: 'ignore_unavailable' @@ -4696,7 +4720,8 @@ api.nodes.prototype.info = ca({ 'thread_pool', 'transport', 'http', - 'plugins' + 'plugins', + 'ingest' ] } } @@ -4722,7 +4747,8 @@ api.nodes.prototype.info = ca({ 'thread_pool', 'transport', 'http', - 'plugins' + 'plugins', + 'ingest' ] } } @@ -5157,6 +5183,51 @@ api.putTemplate = ca({ method: 'PUT' }); +/** + * Perform a [reindex](https://www.elastic.co/guide/en/elasticsearch/plugins/master/plugins-reindex.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Boolean} params.refresh - Should the effected indexes be refreshed? + * @param {Date, Number} [params.timeout=1m] - Time each individual bulk request should wait for shards that are unavailable. + * @param {String} params.consistency - Explicit write consistency setting for the operation + * @param {Boolean} params.waitForCompletion - Should the request should block until the reindex is complete. + * @param {Float} params.requestsPerSecond - The throttle for this request in sub-requests per second. 0 means set no throttle. + */ +api.reindex = ca({ + params: { + refresh: { + type: 'boolean' + }, + timeout: { + type: 'time', + 'default': '1m' + }, + consistency: { + type: 'enum', + options: [ + 'one', + 'quorum', + 'all' + ] + }, + waitForCompletion: { + type: 'boolean', + 'default': false, + name: 'wait_for_completion' + }, + requestsPerSecond: { + type: 'float', + 'default': 0, + name: 'requests_per_second' + } + }, + url: { + fmt: '/_reindex' + }, + needBody: true, + method: 'POST' +}); + /** * Perform a [renderSearchTemplate](http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-template.html) request * @@ -5932,14 +6003,18 @@ api.tasks = namespace(); * Perform a [tasks.cancel](http://www.elastic.co/guide/en/elasticsearch/reference/master/tasks-cancel.html) request * * @param {Object} params - An object with parameters used to carry out this action + * @param {String, String[], Boolean} params.nodeId - A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes * @param {String, String[], Boolean} params.actions - A comma-separated list of actions that should be cancelled. Leave empty to cancel all. * @param {String} params.parentNode - Cancel tasks with specified parent node. * @param {Number} params.parentTask - Cancel tasks with specified parent task id. Set to -1 to cancel all. - * @param {String, String[], Boolean} params.nodeId - A comma-separated list of node IDs or names to limit the request; use `_local` to cancel only tasks on the node you're connecting to, leave empty to cancel tasks on all nodes * @param {Number} params.taskId - Cancel the task with specified id */ api.tasks.prototype.cancel = ca({ params: { + nodeId: { + type: 'list', + name: 'node_id' + }, actions: { type: 'list' }, @@ -5954,24 +6029,13 @@ api.tasks.prototype.cancel = ca({ }, urls: [ { - fmt: '/_tasks/<%=nodeId%>/<%=taskId%>/_cancel', + fmt: '/_tasks/<%=taskId%>/_cancel', req: { - nodeId: { - type: 'list' - }, taskId: { type: 'number' } } }, - { - fmt: '/_tasks/<%=nodeId%>/_cancel', - req: { - nodeId: { - type: 'list' - } - } - }, { fmt: '/_tasks/_cancel' } @@ -5983,15 +6047,20 @@ api.tasks.prototype.cancel = ca({ * Perform a [tasks.list](http://www.elastic.co/guide/en/elasticsearch/reference/master/tasks-list.html) request * * @param {Object} params - An object with parameters used to carry out this action + * @param {String, String[], Boolean} params.nodeId - A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes * @param {String, String[], Boolean} params.actions - A comma-separated list of actions that should be returned. Leave empty to return all. * @param {Boolean} params.detailed - Return detailed task information (default: false) * @param {String} params.parentNode - Return tasks with specified parent node. * @param {Number} params.parentTask - Return tasks with specified parent task id. Set to -1 to return all. - * @param {String, String[], Boolean} params.nodeId - A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes + * @param {Boolean} params.waitForCompletion - Wait for the matching tasks to complete (default: false) * @param {Number} params.taskId - Return the task with specified id */ api.tasks.prototype.list = ca({ params: { + nodeId: { + type: 'list', + name: 'node_id' + }, actions: { type: 'list' }, @@ -6005,28 +6074,21 @@ api.tasks.prototype.list = ca({ parentTask: { type: 'number', name: 'parent_task' + }, + waitForCompletion: { + type: 'boolean', + name: 'wait_for_completion' } }, urls: [ { - fmt: '/_tasks/<%=nodeId%>/<%=taskId%>', + fmt: '/_tasks/<%=taskId%>', req: { - nodeId: { - type: 'list' - }, taskId: { type: 'number' } } }, - { - fmt: '/_tasks/<%=nodeId%>', - req: { - nodeId: { - type: 'list' - } - } - }, { fmt: '/_tasks' } @@ -6244,6 +6306,265 @@ api.update = ca({ method: 'POST' }); +/** + * Perform a [updateByQuery](https://www.elastic.co/guide/en/elasticsearch/plugins/master/plugins-reindex.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {String} params.analyzer - The analyzer to use for the query string + * @param {Boolean} params.analyzeWildcard - Specify whether wildcard and prefix queries should be analyzed (default: false) + * @param {String} [params.defaultOperator=OR] - The default operator for query string query (AND or OR) + * @param {String} params.df - The field to use as default where no field prefix is given in the query string + * @param {Boolean} params.explain - Specify whether to return detailed information about score computation as part of a hit + * @param {String, String[], Boolean} params.fields - A comma-separated list of fields to return as part of a hit + * @param {String, String[], Boolean} params.fielddataFields - A comma-separated list of fields to return as the field data representation of a field for each hit + * @param {Number} params.from - Starting offset (default: 0) + * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) + * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + * @param {String} [params.conflicts=abort] - What to do when the reindex hits version conflicts? + * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {Boolean} params.lenient - Specify whether format-based query failures (such as providing text to a numeric field) should be ignored + * @param {Boolean} params.lowercaseExpandedTerms - Specify whether query terms should be lowercased + * @param {String} params.pipeline - Ingest pipeline to set on index requests made by this action. (default: none) + * @param {String} params.preference - Specify the node or shard the operation should be performed on (default: random) + * @param {String} params.q - Query in the Lucene query string syntax + * @param {String, String[], Boolean} params.routing - A comma-separated list of specific routing values + * @param {Duration} params.scroll - Specify how long a consistent view of the index should be maintained for scrolled search + * @param {String} params.searchType - Search operation type + * @param {Date, Number} params.searchTimeout - Explicit timeout for each search request. Defaults to no timeout. + * @param {Number} params.size - Number of hits to return (default: 10) + * @param {String, String[], Boolean} params.sort - A comma-separated list of : pairs + * @param {String, String[], Boolean} params._source - True or false to return the _source field or not, or a list of fields to return + * @param {String, String[], Boolean} params._sourceExclude - A list of fields to exclude from the returned _source field + * @param {String, String[], Boolean} params._sourceInclude - A list of fields to extract and return from the _source field + * @param {Number} params.terminateAfter - The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early. + * @param {String, String[], Boolean} params.stats - Specific 'tag' of the request for logging and statistical purposes + * @param {String} params.suggestField - Specify which field to use for suggestions + * @param {String} [params.suggestMode=missing] - Specify suggest mode + * @param {Number} params.suggestSize - How many suggestions to return in response + * @param {Text} params.suggestText - The source text for which the suggestions should be returned + * @param {Date, Number} [params.timeout=1m] - Time each individual bulk request should wait for shards that are unavailable. + * @param {Boolean} params.trackScores - Whether to calculate and return scores even if they are not used for sorting + * @param {Boolean} params.version - Specify whether to return document version as part of a hit + * @param {Boolean} params.versionType - Should the document increment the version number (internal) on hit or not (reindex) + * @param {Boolean} params.requestCache - Specify if request cache should be used for this request or not, defaults to index level setting + * @param {Boolean} params.refresh - Should the effected indexes be refreshed? + * @param {String} params.consistency - Explicit write consistency setting for the operation + * @param {Integer} params.scrollSize - Size on the scroll request powering the update_by_query + * @param {Boolean} params.waitForCompletion - Should the request should block until the reindex is complete. + * @param {Float} params.requestsPerSecond - The throttle for this request in sub-requests per second. 0 means set no throttle. + * @param {String, String[], Boolean} params.index - A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices + * @param {String, String[], Boolean} params.type - A comma-separated list of document types to search; leave empty to perform the operation on all types + */ +api.updateByQuery = ca({ + params: { + analyzer: { + type: 'string' + }, + analyzeWildcard: { + type: 'boolean', + name: 'analyze_wildcard' + }, + defaultOperator: { + type: 'enum', + 'default': 'OR', + options: [ + 'AND', + 'OR' + ], + name: 'default_operator' + }, + df: { + type: 'string' + }, + explain: { + type: 'boolean' + }, + fields: { + type: 'list' + }, + fielddataFields: { + type: 'list', + name: 'fielddata_fields' + }, + from: { + type: 'number' + }, + ignoreUnavailable: { + type: 'boolean', + name: 'ignore_unavailable' + }, + allowNoIndices: { + type: 'boolean', + name: 'allow_no_indices' + }, + conflicts: { + type: 'enum', + 'default': 'abort', + options: [ + 'abort', + 'proceed' + ] + }, + expandWildcards: { + type: 'enum', + 'default': 'open', + options: [ + 'open', + 'closed', + 'none', + 'all' + ], + name: 'expand_wildcards' + }, + lenient: { + type: 'boolean' + }, + lowercaseExpandedTerms: { + type: 'boolean', + name: 'lowercase_expanded_terms' + }, + pipeline: { + type: 'string' + }, + preference: { + type: 'string' + }, + q: { + type: 'string' + }, + routing: { + type: 'list' + }, + scroll: { + type: 'duration' + }, + searchType: { + type: 'enum', + options: [ + 'query_then_fetch', + 'dfs_query_then_fetch' + ], + name: 'search_type' + }, + searchTimeout: { + type: 'time', + name: 'search_timeout' + }, + size: { + type: 'number' + }, + sort: { + type: 'list' + }, + _source: { + type: 'list' + }, + _sourceExclude: { + type: 'list', + name: '_source_exclude' + }, + _sourceInclude: { + type: 'list', + name: '_source_include' + }, + terminateAfter: { + type: 'number', + name: 'terminate_after' + }, + stats: { + type: 'list' + }, + suggestField: { + type: 'string', + name: 'suggest_field' + }, + suggestMode: { + type: 'enum', + 'default': 'missing', + options: [ + 'missing', + 'popular', + 'always' + ], + name: 'suggest_mode' + }, + suggestSize: { + type: 'number', + name: 'suggest_size' + }, + suggestText: { + type: 'text', + name: 'suggest_text' + }, + timeout: { + type: 'time', + 'default': '1m' + }, + trackScores: { + type: 'boolean', + name: 'track_scores' + }, + version: { + type: 'boolean' + }, + versionType: { + type: 'boolean', + name: 'version_type' + }, + requestCache: { + type: 'boolean', + name: 'request_cache' + }, + refresh: { + type: 'boolean' + }, + consistency: { + type: 'enum', + options: [ + 'one', + 'quorum', + 'all' + ] + }, + scrollSize: { + type: 'integer', + name: 'scroll_size' + }, + waitForCompletion: { + type: 'boolean', + 'default': false, + name: 'wait_for_completion' + }, + requestsPerSecond: { + type: 'float', + 'default': 0, + name: 'requests_per_second' + } + }, + urls: [ + { + fmt: '/<%=index%>/<%=type%>/_update_by_query', + req: { + index: { + type: 'list' + }, + type: { + type: 'list' + } + } + }, + { + fmt: '/<%=index%>/_update_by_query', + req: { + index: { + type: 'list' + } + } + } + ], + method: 'POST' +}); + /** * Perform a [create](http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html) request * From 5b0be45cb9171853c9bd6c982bf94fd771efaffa Mon Sep 17 00:00:00 2001 From: spalger Date: Wed, 30 Mar 2016 12:10:21 -0700 Subject: [PATCH 23/30] [esvm] update config to work for master --- grunt/config/esvm.js | 19 ++++++++++++------- scripts/Version.js | 2 +- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/grunt/config/esvm.js b/grunt/config/esvm.js index efd5d3c28..4002bbefb 100644 --- a/grunt/config/esvm.js +++ b/grunt/config/esvm.js @@ -42,21 +42,26 @@ var versionedOpts = [ 'script.disable_dynamic': false } }, + { + version: '>=1.6 <5.0', + config: { + 'node.bench': true + } + }, + { + version: '>2.0 <5.0', + config: { + 'node.testattr': 'test' + } + }, { version: '>=1.6', config: { - 'node.bench': true, 'script.inline': true, 'script.indexed': true, 'path.repo': process.env.ES_PATH_REPO || fromRoot('.es-snapshot-repos'), 'repositories.url.allowed_urls': 'http://snapshot.*' } - }, - { - version: '>2.0', - config: { - 'node.testattr': 'test' - } } ]; diff --git a/scripts/Version.js b/scripts/Version.js index 27ab596db..93efcd599 100644 --- a/scripts/Version.js +++ b/scripts/Version.js @@ -19,7 +19,7 @@ Version.fromBranch = function (branch) { var m; // master === the highest version number - if (branch === 'master') return new Version('3.0.0'); + if (branch === 'master') return new Version('5.0.0'); // n.m -> n.m.0 if (m = branch.match(/^\d+\.\d+$/)) return new Version(branch + '.0'); From 106c23be784bc5a978ee0c415670550eb9732e55 Mon Sep 17 00:00:00 2001 From: spalger Date: Tue, 5 Apr 2016 08:40:22 -0700 Subject: [PATCH 24/30] [esvm] include the testattr necessary for many tests --- grunt/config/esvm.js | 6 ++++++ package.json | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/grunt/config/esvm.js b/grunt/config/esvm.js index 4002bbefb..fe69686d5 100644 --- a/grunt/config/esvm.js +++ b/grunt/config/esvm.js @@ -54,6 +54,12 @@ var versionedOpts = [ 'node.testattr': 'test' } }, + { + version: '>=5.0', + config: { + 'node.attr.testattr': 'test' + } + }, { version: '>=1.6', config: { diff --git a/package.json b/package.json index 7d60e3742..c4ea06166 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "grunt-contrib-copy": "~0.4.1", "grunt-contrib-uglify": "^0.11.0", "grunt-contrib-watch": "~0.5.3", - "grunt-esvm": "^2.1.1", + "grunt-esvm": "^3.1.1", "grunt-mocha-cov": "^0.4.0", "grunt-open": "~0.2.2", "grunt-prompt": "~0.1.2", From a55ed2f2ba7722dadc28dc2375617d4b978f8c78 Mon Sep 17 00:00:00 2001 From: spalger Date: Tue, 5 Apr 2016 08:56:26 -0700 Subject: [PATCH 25/30] [client/config/logger/test] added test to ensure stream log could be configured --- src/lib/log.js | 2 +- test/.eslintrc | 4 ++ test/unit/specs/client.js | 116 +++++++++++++++++++++++--------------- 3 files changed, 76 insertions(+), 46 deletions(-) create mode 100644 test/.eslintrc diff --git a/src/lib/log.js b/src/lib/log.js index 664ea3b14..ea3e916d2 100644 --- a/src/lib/log.js +++ b/src/lib/log.js @@ -57,7 +57,7 @@ Log.loggers = require('./loggers'); Log.prototype.close = function () { this.emit('closing'); if (this.listenerCount()) { - console.error('Something is still listening for log events, but the logger is closing.'); + console.error('Something is still listening for log events, but the logger is closing.'); // eslint-disable-line no-console this.clearAllListeners(); } }; diff --git a/test/.eslintrc b/test/.eslintrc new file mode 100644 index 000000000..8e7cc14b9 --- /dev/null +++ b/test/.eslintrc @@ -0,0 +1,4 @@ +--- +extends: ../.eslintrc +env: + mocha: true diff --git a/test/unit/specs/client.js b/test/unit/specs/client.js index 7bbe6a78e..4d7c59275 100644 --- a/test/unit/specs/client.js +++ b/test/unit/specs/client.js @@ -1,59 +1,85 @@ describe('Client instances creation', function () { - var path = require('path'); + var stream = require('stream'); + var util = require('util'); + var es = require('../../../src/elasticsearch'); var apis = require('../../../src/lib/apis'); var expect = require('expect.js'); var stub = require('../../utils/auto_release_stub').make(); var client; - beforeEach(function () { - client = new es.Client(); - }); - - afterEach(function () { - client.close(); - }); - - it('throws an error linking to the es module when you try to instanciate the exports', function () { - var Es = es; - expect(function () { - var c = new Es(); - }).to.throwError(/previous "elasticsearch" module/); - }); - - var pkg = require('../../../package.json'); - var def = pkg.config.default_api_branch; - var prev = pkg.config.supported_es_branches[pkg.config.supported_es_branches.indexOf(def) + 1]; - - it('inherits the ' + def + ' API by default', function () { - expect(client.bulk).to.be(apis[def].bulk); - expect(client.nodes.stats).to.be(apis[def].nodes.prototype.stats); - }); - - it('inherits the ' + prev + ' API when specified', function () { - client.close(); - client = es.Client({ - apiVersion: prev + describe('', function () { + beforeEach(function () { + client = new es.Client(); + }); + + afterEach(function () { + client.close(); + }); + + it('throws an error linking to the es module when you try to instanciate the exports', function () { + var Es = es; + expect(function () { + var c = new Es(); + return c + }).to.throwError(/previous "elasticsearch" module/); + }); + + var pkg = require('../../../package.json'); + var def = pkg.config.default_api_branch; + var prev = pkg.config.supported_es_branches[pkg.config.supported_es_branches.indexOf(def) + 1]; + + it('inherits the ' + def + ' API by default', function () { + expect(client.bulk).to.be(apis[def].bulk); + expect(client.nodes.stats).to.be(apis[def].nodes.prototype.stats); + }); + + it('inherits the ' + prev + ' API when specified', function () { + client.close(); + client = es.Client({ + apiVersion: prev + }); + expect(client.bulk).to.be(apis[prev].bulk); + expect(client.cluster.nodeStats).to.be(apis[prev].cluster.prototype.nodeStats); + }); + + it('closing the client causes it\'s transport to be closed', function () { + var called = false; + client.transport.close = function () { + called = true; + }; + client.close(); + expect(called).to.be(true); + }); + + it('creates a warning level logger by default', function () { + expect(client.transport.log.listenerCount('error')).to.eql(1); + expect(client.transport.log.listenerCount('warning')).to.eql(1); + expect(client.transport.log.listenerCount('info')).to.eql(0); + expect(client.transport.log.listenerCount('debug')).to.eql(0); + expect(client.transport.log.listenerCount('trace')).to.eql(0); }); - expect(client.bulk).to.be(apis[prev].bulk); - expect(client.cluster.nodeStats).to.be(apis[prev].cluster.prototype.nodeStats); }); - it('closing the client causes it\'s transport to be closed', function () { - var called = false; - client.transport.close = function () { - called = true; - }; - client.close(); - expect(called).to.be(true); - }); + describe('config', function () { + it('accepts a stream type logger', function (done) { + function NullStream() { + stream.Writable.call(this); + } + util.inherits(NullStream, stream.Writable); - it('creates a warning level logger by default', function () { - expect(client.transport.log.listenerCount('error')).to.eql(1); - expect(client.transport.log.listenerCount('warning')).to.eql(1); - expect(client.transport.log.listenerCount('info')).to.eql(0); - expect(client.transport.log.listenerCount('debug')).to.eql(0); - expect(client.transport.log.listenerCount('trace')).to.eql(0); + NullStream.prototype._write = function(/* chunk, encoding, next */) { + done(); + }; + + var client = new es.Client({ + log: [ + { type: 'stream', stream: new NullStream() } + ] + }); + + client.transport.log.error(new Error()); + }); }); describe('#ping', function () { From bac139aec2aefc03458976d231209384f4ac4834 Mon Sep 17 00:00:00 2001 From: spalger Date: Tue, 5 Apr 2016 09:21:06 -0700 Subject: [PATCH 26/30] [api] ignore an alias in reindex.rethrottle() --- scripts/generate/overrides.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/scripts/generate/overrides.js b/scripts/generate/overrides.js index 95c1d37d1..31c277c80 100644 --- a/scripts/generate/overrides.js +++ b/scripts/generate/overrides.js @@ -199,5 +199,13 @@ function (spec) { }); } + }, + { + version: '>=2.0.0', + aliases: { + 'reindex.rethrottle': [ + '/_update_by_query/{task_id}/_rethrottle' + ] + } } ]; From 85776df630854678bad58b88c4089744e4d480cc Mon Sep 17 00:00:00 2001 From: spalger Date: Tue, 5 Apr 2016 09:22:43 -0700 Subject: [PATCH 27/30] [api] regenerate --- docs/api_methods.asciidoc | 8 +-- src/lib/apis/2_3.js | 14 ++--- src/lib/apis/2_x.js | 14 ++--- src/lib/apis/master.js | 112 +++++++++++++++++--------------------- 4 files changed, 67 insertions(+), 81 deletions(-) diff --git a/docs/api_methods.asciidoc b/docs/api_methods.asciidoc index e0a114297..50787c45b 100644 --- a/docs/api_methods.asciidoc +++ b/docs/api_methods.asciidoc @@ -4878,9 +4878,9 @@ The default method is `POST` and the usual <', req: { taskId: { - type: 'number' + type: 'string' } } }, diff --git a/src/lib/apis/2_x.js b/src/lib/apis/2_x.js index 04e865496..9b3f98575 100644 --- a/src/lib/apis/2_x.js +++ b/src/lib/apis/2_x.js @@ -6144,8 +6144,8 @@ api.tasks = namespace(); * @param {String, String[], Boolean} params.nodeId - A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes * @param {String, String[], Boolean} params.actions - A comma-separated list of actions that should be cancelled. Leave empty to cancel all. * @param {String} params.parentNode - Cancel tasks with specified parent node. - * @param {Number} params.parentTask - Cancel tasks with specified parent task id. Set to -1 to cancel all. - * @param {Number} params.taskId - Cancel the task with specified id + * @param {String} params.parentTask - Cancel tasks with specified parent task id (node_id:task_number). Set to -1 to cancel all. + * @param {Number} params.taskId - Cancel the task with specified task id (node_id:task_number) */ api.tasks.prototype.cancel = ca({ params: { @@ -6161,7 +6161,7 @@ api.tasks.prototype.cancel = ca({ name: 'parent_node' }, parentTask: { - type: 'number', + type: 'string', name: 'parent_task' } }, @@ -6189,9 +6189,9 @@ api.tasks.prototype.cancel = ca({ * @param {String, String[], Boolean} params.actions - A comma-separated list of actions that should be returned. Leave empty to return all. * @param {Boolean} params.detailed - Return detailed task information (default: false) * @param {String} params.parentNode - Return tasks with specified parent node. - * @param {Number} params.parentTask - Return tasks with specified parent task id. Set to -1 to return all. + * @param {String} params.parentTask - Return tasks with specified parent task id (node_id:task_number). Set to -1 to return all. * @param {Boolean} params.waitForCompletion - Wait for the matching tasks to complete (default: false) - * @param {Number} params.taskId - Return the task with specified id + * @param {String} params.taskId - Return the task with specified id (node_id:task_number) */ api.tasks.prototype.list = ca({ params: { @@ -6210,7 +6210,7 @@ api.tasks.prototype.list = ca({ name: 'parent_node' }, parentTask: { - type: 'number', + type: 'string', name: 'parent_task' }, waitForCompletion: { @@ -6223,7 +6223,7 @@ api.tasks.prototype.list = ca({ fmt: '/_tasks/<%=taskId%>', req: { taskId: { - type: 'number' + type: 'string' } } }, diff --git a/src/lib/apis/master.js b/src/lib/apis/master.js index acd090eb6..72ff03e7a 100644 --- a/src/lib/apis/master.js +++ b/src/lib/apis/master.js @@ -11,7 +11,7 @@ var ca = require('../client_action').makeFactoryWithModifier(function (spec) { var namespace = require('../client_action').namespaceFactory; var api = module.exports = {}; -api._namespaces = ['cat', 'cluster', 'indices', 'ingest', 'nodes', 'snapshot', 'tasks']; +api._namespaces = ['cat', 'cluster', 'indices', 'ingest', 'nodes', 'reindex', 'snapshot', 'tasks']; /** * Perform a [bulk](http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-bulk.html) request @@ -2964,7 +2964,7 @@ api.indices.prototype.get = ca({ * @param {Object} params - An object with parameters used to carry out this action * @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed) * @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) - * @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both. + * @param {String} [params.expandWildcards=all] - Whether to expand wildcard expression to concrete indices that are open, closed or both. * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) * @param {String, String[], Boolean} params.index - A comma-separated list of index names to filter aliases * @param {String, String[], Boolean} params.name - A comma-separated list of alias names to return @@ -2981,7 +2981,7 @@ api.indices.prototype.getAlias = ca({ }, expandWildcards: { type: 'enum', - 'default': 'open', + 'default': 'all', options: [ 'open', 'closed', @@ -3028,58 +3028,6 @@ api.indices.prototype.getAlias = ca({ ] }); -/** - * Perform a [indices.getAliases](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html) request - * - * @param {Object} params - An object with parameters used to carry out this action - * @param {Date, Number} params.timeout - Explicit operation timeout - * @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false) - * @param {String, String[], Boolean} params.index - A comma-separated list of index names to filter aliases - * @param {String, String[], Boolean} params.name - A comma-separated list of alias names to filter - */ -api.indices.prototype.getAliases = ca({ - params: { - timeout: { - type: 'time' - }, - local: { - type: 'boolean' - } - }, - urls: [ - { - fmt: '/<%=index%>/_aliases/<%=name%>', - req: { - index: { - type: 'list' - }, - name: { - type: 'list' - } - } - }, - { - fmt: '/<%=index%>/_aliases', - req: { - index: { - type: 'list' - } - } - }, - { - fmt: '/_aliases/<%=name%>', - req: { - name: { - type: 'list' - } - } - }, - { - fmt: '/_aliases' - } - ] -}); - /** * Perform a [indices.getFieldMapping](http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-field-mapping.html) request * @@ -5183,6 +5131,8 @@ api.putTemplate = ca({ method: 'PUT' }); +api.reindex = namespace(); + /** * Perform a [reindex](https://www.elastic.co/guide/en/elasticsearch/plugins/master/plugins-reindex.html) request * @@ -5228,6 +5178,32 @@ api.reindex = ca({ method: 'POST' }); +/** + * Perform a [reindex.rethrottle](https://www.elastic.co/guide/en/elasticsearch/plugins/master/plugins-reindex.html) request + * + * @param {Object} params - An object with parameters used to carry out this action + * @param {Float} params.requestsPerSecond - The throttle to set on this request in sub-requests per second. 0 means set no throttle. As does "unlimited". Otherwise it must be a float. + * @param {String} params.taskId - The task id to rethrottle + */ +api.reindex.prototype.rethrottle = ca({ + params: { + requestsPerSecond: { + type: 'float', + 'default': 0, + name: 'requests_per_second' + } + }, + url: { + fmt: '/_reindex/<%=taskId%>/_rethrottle', + req: { + taskId: { + type: 'string' + } + } + }, + method: 'POST' +}); + /** * Perform a [renderSearchTemplate](http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-template.html) request * @@ -6006,8 +5982,8 @@ api.tasks = namespace(); * @param {String, String[], Boolean} params.nodeId - A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes * @param {String, String[], Boolean} params.actions - A comma-separated list of actions that should be cancelled. Leave empty to cancel all. * @param {String} params.parentNode - Cancel tasks with specified parent node. - * @param {Number} params.parentTask - Cancel tasks with specified parent task id. Set to -1 to cancel all. - * @param {Number} params.taskId - Cancel the task with specified id + * @param {String} params.parentTask - Cancel tasks with specified parent task id (node_id:task_number). Set to -1 to cancel all. + * @param {String} params.taskId - Cancel the task with specified task id (node_id:task_number) */ api.tasks.prototype.cancel = ca({ params: { @@ -6023,7 +5999,7 @@ api.tasks.prototype.cancel = ca({ name: 'parent_node' }, parentTask: { - type: 'number', + type: 'string', name: 'parent_task' } }, @@ -6032,7 +6008,7 @@ api.tasks.prototype.cancel = ca({ fmt: '/_tasks/<%=taskId%>/_cancel', req: { taskId: { - type: 'number' + type: 'string' } } }, @@ -6051,9 +6027,10 @@ api.tasks.prototype.cancel = ca({ * @param {String, String[], Boolean} params.actions - A comma-separated list of actions that should be returned. Leave empty to return all. * @param {Boolean} params.detailed - Return detailed task information (default: false) * @param {String} params.parentNode - Return tasks with specified parent node. - * @param {Number} params.parentTask - Return tasks with specified parent task id. Set to -1 to return all. + * @param {String} params.parentTask - Return tasks with specified parent task id (node_id:task_number). Set to -1 to return all. * @param {Boolean} params.waitForCompletion - Wait for the matching tasks to complete (default: false) - * @param {Number} params.taskId - Return the task with specified id + * @param {String} [params.groupBy=nodes] - Group tasks by nodes or parent/child relationships + * @param {String} params.taskId - Return the task with specified id (node_id:task_number) */ api.tasks.prototype.list = ca({ params: { @@ -6072,12 +6049,21 @@ api.tasks.prototype.list = ca({ name: 'parent_node' }, parentTask: { - type: 'number', + type: 'string', name: 'parent_task' }, waitForCompletion: { type: 'boolean', name: 'wait_for_completion' + }, + groupBy: { + type: 'enum', + 'default': 'nodes', + options: [ + 'nodes', + 'parents' + ], + name: 'group_by' } }, urls: [ @@ -6085,7 +6071,7 @@ api.tasks.prototype.list = ca({ fmt: '/_tasks/<%=taskId%>', req: { taskId: { - type: 'number' + type: 'string' } } }, From f9743b4e21b16926ce045d79b5d4828613b4015b Mon Sep 17 00:00:00 2001 From: spalger Date: Tue, 5 Apr 2016 09:38:58 -0700 Subject: [PATCH 28/30] [jenkinsReporter] hook into stdio earlier, to capture output from more sources --- test/utils/jenkins-reporter.js | 69 +++++++++++++++++++++++----------- 1 file changed, 47 insertions(+), 22 deletions(-) diff --git a/test/utils/jenkins-reporter.js b/test/utils/jenkins-reporter.js index 818e30bb6..ba17e5133 100644 --- a/test/utils/jenkins-reporter.js +++ b/test/utils/jenkins-reporter.js @@ -14,6 +14,47 @@ var fs = require('fs'); var path = require('path'); var inspect = require('util').inspect; +var stdioHook = { + interceptors: [], + + // overload the write methods on stdout and stderr + wraps: ['stdout', 'stderr'].map(function (name) { + var obj = process[name]; + + var orig = obj.write; + + obj.write = function (chunk) { + if (!stdioHook.interceptors.length) { + return orig.apply(obj, arguments); + } else { + stdioHook.interceptors.forEach(function (intercept) { + intercept(name, chunk); + }); + } + }; + + obj.__restore = function () { + obj.write = orig; + }; + + return obj; + }), + + restore: function () { + stdioHook.wraps.splice(0).forEach(function (stream) { + stream.__restore(); + }); + }, + + intercept: function (handler) { + stdioHook.interceptors.push(handler); + return function () { + var i = stdioHook.interceptors.indexOf(handler); + if (i > -1) stdioHook.interceptors.splice(i, 1); + }; + } +} + var log = (function () { var locked = _.bind(process.stdout.write, process.stdout); return function (str) { @@ -153,6 +194,12 @@ function JenkinsReporter(runner) { } }); + var restoreStdio = stdioHook.intercept(function (name, chunk) { + if (stack[0]) { + stack[0][name] = (stack[0][name] || '') + chunk; + } + }); + runner.on('end', function () { restoreStdio(); var xml = makeJUnitXml('node ' + process.version, { @@ -183,26 +230,4 @@ function JenkinsReporter(runner) { ' pending: ' + chalk.grey(stats.pending) ].join('\n')); }); - - // overload the write methods on stdout and stderr - ['stdout', 'stderr'].forEach(function (name) { - var obj = process[name]; - var orig = obj.write; - obj.write = function (chunk) { - if (stack[0]) { - stack[0][name] = (stack[0][name] || '') + chunk; - } - - // orig.apply(obj, arguments); - }; - obj.__restore = function () { - this.write = orig; - }; - }); - - function restoreStdio() { - process.stdout.__restore(); - process.stderr.__restore(); - } - } From 003c27a9d5354fb5eec6c04d97825d2a8670bcb2 Mon Sep 17 00:00:00 2001 From: spalger Date: Tue, 5 Apr 2016 10:27:19 -0700 Subject: [PATCH 29/30] Revert "Merge pull request #386 from spalger/implement/betterStdioInterception" This reverts commit e285f375f77eee4cf325eb7518649413d56b5529, reversing changes made to 3a54441be1094c947a8b87907405923624834485. --- test/utils/jenkins-reporter.js | 69 +++++++++++----------------------- 1 file changed, 22 insertions(+), 47 deletions(-) diff --git a/test/utils/jenkins-reporter.js b/test/utils/jenkins-reporter.js index ba17e5133..818e30bb6 100644 --- a/test/utils/jenkins-reporter.js +++ b/test/utils/jenkins-reporter.js @@ -14,47 +14,6 @@ var fs = require('fs'); var path = require('path'); var inspect = require('util').inspect; -var stdioHook = { - interceptors: [], - - // overload the write methods on stdout and stderr - wraps: ['stdout', 'stderr'].map(function (name) { - var obj = process[name]; - - var orig = obj.write; - - obj.write = function (chunk) { - if (!stdioHook.interceptors.length) { - return orig.apply(obj, arguments); - } else { - stdioHook.interceptors.forEach(function (intercept) { - intercept(name, chunk); - }); - } - }; - - obj.__restore = function () { - obj.write = orig; - }; - - return obj; - }), - - restore: function () { - stdioHook.wraps.splice(0).forEach(function (stream) { - stream.__restore(); - }); - }, - - intercept: function (handler) { - stdioHook.interceptors.push(handler); - return function () { - var i = stdioHook.interceptors.indexOf(handler); - if (i > -1) stdioHook.interceptors.splice(i, 1); - }; - } -} - var log = (function () { var locked = _.bind(process.stdout.write, process.stdout); return function (str) { @@ -194,12 +153,6 @@ function JenkinsReporter(runner) { } }); - var restoreStdio = stdioHook.intercept(function (name, chunk) { - if (stack[0]) { - stack[0][name] = (stack[0][name] || '') + chunk; - } - }); - runner.on('end', function () { restoreStdio(); var xml = makeJUnitXml('node ' + process.version, { @@ -230,4 +183,26 @@ function JenkinsReporter(runner) { ' pending: ' + chalk.grey(stats.pending) ].join('\n')); }); + + // overload the write methods on stdout and stderr + ['stdout', 'stderr'].forEach(function (name) { + var obj = process[name]; + var orig = obj.write; + obj.write = function (chunk) { + if (stack[0]) { + stack[0][name] = (stack[0][name] || '') + chunk; + } + + // orig.apply(obj, arguments); + }; + obj.__restore = function () { + this.write = orig; + }; + }); + + function restoreStdio() { + process.stdout.__restore(); + process.stderr.__restore(); + } + } From 4feba4ab9757f08bb975c8a4c8c4eaf657454acb Mon Sep 17 00:00:00 2001 From: spalger Date: Tue, 5 Apr 2016 12:30:35 -0700 Subject: [PATCH 30/30] [readme] update es support badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2768b2b30..1d34c6af4 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ You can probably find help in [#kibana](https://kiwiirc.com/client/irc.freenode. ## Supported Elasticsearch Versions -[![Supporting Elasticsearch Version 0.90 to 2.0](http://img.shields.io/badge/elasticsearch-0.90--2.0-green.svg?style=flat-square)](http://build-eu-00.elasticsearch.org/job/es-js_nightly/) +![Supporting Elasticsearch Version 0.90 to 5.0-alpha1](https://img.shields.io/badge/elasticsearch-0.90%20to%205.0--alpha1-green.svg?style=flat-square) Elasticsearch.js provides support for, and is regularly tested against, Elasticsearch releases 0.90.12 and greater. We also test against the latest changes in several branches in the Elasticsearch repository. To tell the client which version of Elastisearch you are using, and therefore the API it should provide, set the `apiVersion` config param. [More info](http://www.elastic.co/guide/en/elasticsearch/client/javascript-api/current/configuration.html#config-options)