1 <?php
2 /**
3  * Elasticsearch PHP client
4  *
5  * @link      https://github.com/elastic/elasticsearch-php/
6  * @copyright Copyright (c) Elasticsearch B.V (https://www.elastic.co)
7  * @license   http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
8  * @license   https://www.gnu.org/licenses/lgpl-2.1.html GNU Lesser General Public License, Version 2.1
9  *
10  * Licensed to Elasticsearch B.V under one or more agreements.
11  * Elasticsearch B.V licenses this file to you under the Apache 2.0 License or
12  * the GNU Lesser General Public License, Version 2.1, at your option.
13  * See the LICENSE file in the project root for more information.
14  */
15 declare(strict_types = 1);
16 
17 namespace Elasticsearch\Namespaces;
18 
19 use Elasticsearch\Namespaces\AbstractNamespace;
20 
21 /**
22  * Class IndicesNamespace
23  *
24  * NOTE: this file is autogenerated using util/GenerateEndpoints.php
25  * and Elasticsearch 7.16.0-SNAPSHOT (dfc9a8e7563ed5f24b5210ed21ed92ae182cd0ee)
26  */
27 class IndicesNamespace extends AbstractNamespace
28 {
29 
30     /**
31      * Adds a block to an index.
32      *
33      * $params['index']              = (list) A comma separated list of indices to add a block to
34      * $params['block']              = (string) The block to add (one of read, write, read_only or metadata)
35      * $params['timeout']            = (time) Explicit operation timeout
36      * $params['master_timeout']     = (time) Specify timeout for connection to master
37      * $params['ignore_unavailable'] = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
38      * $params['allow_no_indices']   = (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)
39      * $params['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,hidden,none,all) (Default = open)
40      *
41      * @param array $params Associative array of parameters
42      * @return array
43      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/index-modules-blocks.html
44      */
45     public function addBlock(array $params = [])
46     {
47         $index = $this->extractArgument($params, 'index');
48         $block = $this->extractArgument($params, 'block');
49 
50         $endpointBuilder = $this->endpoints;
51         $endpoint = $endpointBuilder('Indices\AddBlock');
52         $endpoint->setParams($params);
53         $endpoint->setIndex($index);
54         $endpoint->setBlock($block);
55 
56         return $this->performRequest($endpoint);
57     }
58     /**
59      * Performs the analysis process on a text and return the tokens breakdown of the text.
60      *
61      * $params['index'] = (string) The name of the index to scope the operation
62      * $params['body']  = (array) Define analyzer/tokenizer parameters and the text on which the analysis should be performed
63      *
64      * @param array $params Associative array of parameters
65      * @return array
66      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-analyze.html
67      */
68     public function analyze(array $params = [])
69     {
70         $index = $this->extractArgument($params, 'index');
71         $body = $this->extractArgument($params, 'body');
72 
73         $endpointBuilder = $this->endpoints;
74         $endpoint = $endpointBuilder('Indices\Analyze');
75         $endpoint->setParams($params);
76         $endpoint->setIndex($index);
77         $endpoint->setBody($body);
78 
79         return $this->performRequest($endpoint);
80     }
81     /**
82      * Clears all or specific caches for one or more indices.
83      *
84      * $params['index']              = (list) A comma-separated list of index name to limit the operation
85      * $params['fielddata']          = (boolean) Clear field data
86      * $params['fields']             = (list) A comma-separated list of fields to clear when using the `fielddata` parameter (default: all)
87      * $params['query']              = (boolean) Clear query caches
88      * $params['ignore_unavailable'] = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
89      * $params['allow_no_indices']   = (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)
90      * $params['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,hidden,none,all) (Default = open)
91      * $params['request']            = (boolean) Clear request cache
92      *
93      * @param array $params Associative array of parameters
94      * @return array
95      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-clearcache.html
96      */
97     public function clearCache(array $params = [])
98     {
99         $index = $this->extractArgument($params, 'index');
100 
101         $endpointBuilder = $this->endpoints;
102         $endpoint = $endpointBuilder('Indices\ClearCache');
103         $endpoint->setParams($params);
104         $endpoint->setIndex($index);
105 
106         return $this->performRequest($endpoint);
107     }
108     /**
109      * Clones an index
110      *
111      * $params['index']                  = (string) The name of the source index to clone
112      * $params['target']                 = (string) The name of the target index to clone into
113      * $params['timeout']                = (time) Explicit operation timeout
114      * $params['master_timeout']         = (time) Specify timeout for connection to master
115      * $params['wait_for_active_shards'] = (string) Set the number of active shards to wait for on the cloned index before the operation returns.
116      * $params['body']                   = (array) The configuration for the target index (`settings` and `aliases`)
117      *
118      * @param array $params Associative array of parameters
119      * @return array
120      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-clone-index.html
121      */
122     public function clone(array $params = [])
123     {
124         $index = $this->extractArgument($params, 'index');
125         $target = $this->extractArgument($params, 'target');
126         $body = $this->extractArgument($params, 'body');
127 
128         $endpointBuilder = $this->endpoints;
129         $endpoint = $endpointBuilder('Indices\CloneIndices');
130         $endpoint->setParams($params);
131         $endpoint->setIndex($index);
132         $endpoint->setTarget($target);
133         $endpoint->setBody($body);
134 
135         return $this->performRequest($endpoint);
136     }
137     /**
138      * Closes an index.
139      *
140      * $params['index']                  = (list) A comma separated list of indices to close
141      * $params['timeout']                = (time) Explicit operation timeout
142      * $params['master_timeout']         = (time) Specify timeout for connection to master
143      * $params['ignore_unavailable']     = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
144      * $params['allow_no_indices']       = (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)
145      * $params['expand_wildcards']       = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,hidden,none,all) (Default = open)
146      * $params['wait_for_active_shards'] = (string) Sets the number of active shards to wait for before the operation returns. Set to `index-setting` to wait according to the index setting `index.write.wait_for_active_shards`, or `all` to wait for all shards, or an integer. Defaults to `0`.
147      *
148      * @param array $params Associative array of parameters
149      * @return array
150      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-open-close.html
151      */
152     public function close(array $params = [])
153     {
154         $index = $this->extractArgument($params, 'index');
155 
156         $endpointBuilder = $this->endpoints;
157         $endpoint = $endpointBuilder('Indices\Close');
158         $endpoint->setParams($params);
159         $endpoint->setIndex($index);
160 
161         return $this->performRequest($endpoint);
162     }
163     /**
164      * Creates an index with optional settings and mappings.
165      *
166      * $params['index']                  = (string) The name of the index
167      * $params['include_type_name']      = (boolean) Whether a type should be expected in the body of the mappings.
168      * $params['wait_for_active_shards'] = (string) Set the number of active shards to wait for before the operation returns.
169      * $params['timeout']                = (time) Explicit operation timeout
170      * $params['master_timeout']         = (time) Specify timeout for connection to master
171      * $params['body']                   = (array) The configuration for the index (`settings` and `mappings`)
172      *
173      * @param array $params Associative array of parameters
174      * @return array
175      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-create-index.html
176      */
177     public function create(array $params = [])
178     {
179         $index = $this->extractArgument($params, 'index');
180         $body = $this->extractArgument($params, 'body');
181 
182         $endpointBuilder = $this->endpoints;
183         $endpoint = $endpointBuilder('Indices\Create');
184         $endpoint->setParams($params);
185         $endpoint->setIndex($index);
186         $endpoint->setBody($body);
187 
188         return $this->performRequest($endpoint);
189     }
190     /**
191      * Creates a data stream
192      *
193      * $params['name'] = (string) The name of the data stream
194      *
195      * @param array $params Associative array of parameters
196      * @return array
197      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html
198      */
199     public function createDataStream(array $params = [])
200     {
201         $name = $this->extractArgument($params, 'name');
202 
203         $endpointBuilder = $this->endpoints;
204         $endpoint = $endpointBuilder('Indices\CreateDataStream');
205         $endpoint->setParams($params);
206         $endpoint->setName($name);
207 
208         return $this->performRequest($endpoint);
209     }
210     /**
211      * Provides statistics on operations happening in a data stream.
212      *
213      * $params['name'] = (list) A comma-separated list of data stream names; use `_all` or empty string to perform the operation on all data streams
214      *
215      * @param array $params Associative array of parameters
216      * @return array
217      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html
218      */
219     public function dataStreamsStats(array $params = [])
220     {
221         $name = $this->extractArgument($params, 'name');
222 
223         $endpointBuilder = $this->endpoints;
224         $endpoint = $endpointBuilder('Indices\DataStreamsStats');
225         $endpoint->setParams($params);
226         $endpoint->setName($name);
227 
228         return $this->performRequest($endpoint);
229     }
230     /**
231      * Deletes an index.
232      *
233      * $params['index']              = (list) A comma-separated list of indices to delete; use `_all` or `*` string to delete all indices
234      * $params['timeout']            = (time) Explicit operation timeout
235      * $params['master_timeout']     = (time) Specify timeout for connection to master
236      * $params['ignore_unavailable'] = (boolean) Ignore unavailable indexes (default: false)
237      * $params['allow_no_indices']   = (boolean) Ignore if a wildcard expression resolves to no concrete indices (default: false)
238      * $params['expand_wildcards']   = (enum) Whether wildcard expressions should get expanded to open, closed, or hidden indices (Options = open,closed,hidden,none,all) (Default = open,closed)
239      *
240      * @param array $params Associative array of parameters
241      * @return array
242      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-delete-index.html
243      */
244     public function delete(array $params = [])
245     {
246         $index = $this->extractArgument($params, 'index');
247 
248         $endpointBuilder = $this->endpoints;
249         $endpoint = $endpointBuilder('Indices\Delete');
250         $endpoint->setParams($params);
251         $endpoint->setIndex($index);
252 
253         return $this->performRequest($endpoint);
254     }
255     /**
256      * Deletes an alias.
257      *
258      * $params['index']          = (list) A comma-separated list of index names (supports wildcards); use `_all` for all indices (Required)
259      * $params['name']           = (list) A comma-separated list of aliases to delete (supports wildcards); use `_all` to delete all aliases for the specified indices. (Required)
260      * $params['timeout']        = (time) Explicit timestamp for the document
261      * $params['master_timeout'] = (time) Specify timeout for connection to master
262      *
263      * @param array $params Associative array of parameters
264      * @return array
265      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html
266      */
267     public function deleteAlias(array $params = [])
268     {
269         $index = $this->extractArgument($params, 'index');
270         $name = $this->extractArgument($params, 'name');
271 
272         $endpointBuilder = $this->endpoints;
273         $endpoint = $endpointBuilder('Indices\DeleteAlias');
274         $endpoint->setParams($params);
275         $endpoint->setIndex($index);
276         $endpoint->setName($name);
277 
278         return $this->performRequest($endpoint);
279     }
280     /**
281      * Deletes a data stream.
282      *
283      * $params['name']             = (list) A comma-separated list of data streams to delete; use `*` to delete all data streams
284      * $params['expand_wildcards'] = (enum) Whether wildcard expressions should get expanded to open or closed indices (default: open) (Options = open,closed,hidden,none,all) (Default = open)
285      *
286      * @param array $params Associative array of parameters
287      * @return array
288      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html
289      */
290     public function deleteDataStream(array $params = [])
291     {
292         $name = $this->extractArgument($params, 'name');
293 
294         $endpointBuilder = $this->endpoints;
295         $endpoint = $endpointBuilder('Indices\DeleteDataStream');
296         $endpoint->setParams($params);
297         $endpoint->setName($name);
298 
299         return $this->performRequest($endpoint);
300     }
301     /**
302      * Deletes an index template.
303      *
304      * $params['name']           = (string) The name of the template
305      * $params['timeout']        = (time) Explicit operation timeout
306      * $params['master_timeout'] = (time) Specify timeout for connection to master
307      *
308      * @param array $params Associative array of parameters
309      * @return array
310      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html
311      */
312     public function deleteIndexTemplate(array $params = [])
313     {
314         $name = $this->extractArgument($params, 'name');
315 
316         $endpointBuilder = $this->endpoints;
317         $endpoint = $endpointBuilder('Indices\DeleteIndexTemplate');
318         $endpoint->setParams($params);
319         $endpoint->setName($name);
320 
321         return $this->performRequest($endpoint);
322     }
323     /**
324      * Deletes an index template.
325      *
326      * $params['name']           = (string) The name of the template
327      * $params['timeout']        = (time) Explicit operation timeout
328      * $params['master_timeout'] = (time) Specify timeout for connection to master
329      *
330      * @param array $params Associative array of parameters
331      * @return array
332      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html
333      */
334     public function deleteTemplate(array $params = [])
335     {
336         $name = $this->extractArgument($params, 'name');
337 
338         $endpointBuilder = $this->endpoints;
339         $endpoint = $endpointBuilder('Indices\DeleteTemplate');
340         $endpoint->setParams($params);
341         $endpoint->setName($name);
342 
343         return $this->performRequest($endpoint);
344     }
345     /**
346      * Analyzes the disk usage of each field of an index or data stream
347      *
348      * $params['index']               = (string) Comma-separated list of indices or data streams to analyze the disk usage
349      * $params['run_expensive_tasks'] = (boolean) Must be set to [true] in order for the task to be performed. Defaults to false.
350      * $params['flush']               = (boolean) Whether flush or not before analyzing the index disk usage. Defaults to true
351      * $params['ignore_unavailable']  = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
352      * $params['allow_no_indices']    = (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)
353      * $params['expand_wildcards']    = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,hidden,none,all) (Default = open)
354      *
355      * @param array $params Associative array of parameters
356      * @return array
357      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-disk-usage.html
358      *
359      * @note This API is EXPERIMENTAL and may be changed or removed completely in a future release
360      *
361      */
362     public function diskUsage(array $params = [])
363     {
364         $index = $this->extractArgument($params, 'index');
365 
366         $endpointBuilder = $this->endpoints;
367         $endpoint = $endpointBuilder('Indices\DiskUsage');
368         $endpoint->setParams($params);
369         $endpoint->setIndex($index);
370 
371         return $this->performRequest($endpoint);
372     }
373     /**
374      * Returns information about whether a particular index exists.
375      *
376      * $params['index']              = (list) A comma-separated list of index names
377      * $params['local']              = (boolean) Return local information, do not retrieve the state from master node (default: false)
378      * $params['ignore_unavailable'] = (boolean) Ignore unavailable indexes (default: false)
379      * $params['allow_no_indices']   = (boolean) Ignore if a wildcard expression resolves to no concrete indices (default: false)
380      * $params['expand_wildcards']   = (enum) Whether wildcard expressions should get expanded to open or closed indices (default: open) (Options = open,closed,hidden,none,all) (Default = open)
381      * $params['flat_settings']      = (boolean) Return settings in flat format (default: false)
382      * $params['include_defaults']   = (boolean) Whether to return all default setting for each of the indices. (Default = false)
383      *
384      * @param array $params Associative array of parameters
385      * @return bool
386      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-exists.html
387      */
388     public function exists(array $params = []): bool
389     {
390         $index = $this->extractArgument($params, 'index');
391 
392         // manually make this verbose so we can check status code
393         $params['client']['verbose'] = true;
394 
395         $endpointBuilder = $this->endpoints;
396         $endpoint = $endpointBuilder('Indices\Exists');
397         $endpoint->setParams($params);
398         $endpoint->setIndex($index);
399 
400         return BooleanRequestWrapper::performRequest($endpoint, $this->transport);
401     }
402     /**
403      * Returns information about whether a particular alias exists.
404      *
405      * $params['name']               = (list) A comma-separated list of alias names to return (Required)
406      * $params['index']              = (list) A comma-separated list of index names to filter aliases
407      * $params['ignore_unavailable'] = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
408      * $params['allow_no_indices']   = (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)
409      * $params['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,hidden,none,all) (Default = all)
410      * $params['local']              = (boolean) Return local information, do not retrieve the state from master node (default: false)
411      *
412      * @param array $params Associative array of parameters
413      * @return bool
414      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html
415      */
416     public function existsAlias(array $params = []): bool
417     {
418         $name = $this->extractArgument($params, 'name');
419         $index = $this->extractArgument($params, 'index');
420 
421         // manually make this verbose so we can check status code
422         $params['client']['verbose'] = true;
423 
424         $endpointBuilder = $this->endpoints;
425         $endpoint = $endpointBuilder('Indices\ExistsAlias');
426         $endpoint->setParams($params);
427         $endpoint->setName($name);
428         $endpoint->setIndex($index);
429 
430         return BooleanRequestWrapper::performRequest($endpoint, $this->transport);
431     }
432     /**
433      * Returns information about whether a particular index template exists.
434      *
435      * $params['name']           = (string) The name of the template
436      * $params['flat_settings']  = (boolean) Return settings in flat format (default: false)
437      * $params['master_timeout'] = (time) Explicit operation timeout for connection to master node
438      * $params['local']          = (boolean) Return local information, do not retrieve the state from master node (default: false)
439      *
440      * @param array $params Associative array of parameters
441      * @return bool
442      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html
443      */
444     public function existsIndexTemplate(array $params = []): bool
445     {
446         $name = $this->extractArgument($params, 'name');
447 
448         // manually make this verbose so we can check status code
449         $params['client']['verbose'] = true;
450 
451         $endpointBuilder = $this->endpoints;
452         $endpoint = $endpointBuilder('Indices\ExistsIndexTemplate');
453         $endpoint->setParams($params);
454         $endpoint->setName($name);
455 
456         return BooleanRequestWrapper::performRequest($endpoint, $this->transport);
457     }
458     /**
459      * Returns information about whether a particular index template exists.
460      *
461      * $params['name']           = (list) The comma separated names of the index templates
462      * $params['flat_settings']  = (boolean) Return settings in flat format (default: false)
463      * $params['master_timeout'] = (time) Explicit operation timeout for connection to master node
464      * $params['local']          = (boolean) Return local information, do not retrieve the state from master node (default: false)
465      *
466      * @param array $params Associative array of parameters
467      * @return bool
468      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html
469      */
470     public function existsTemplate(array $params = []): bool
471     {
472         $name = $this->extractArgument($params, 'name');
473 
474         // manually make this verbose so we can check status code
475         $params['client']['verbose'] = true;
476 
477         $endpointBuilder = $this->endpoints;
478         $endpoint = $endpointBuilder('Indices\ExistsTemplate');
479         $endpoint->setParams($params);
480         $endpoint->setName($name);
481 
482         return BooleanRequestWrapper::performRequest($endpoint, $this->transport);
483     }
484     /**
485      * Returns information about whether a particular document type exists. (DEPRECATED)
486      *
487      * $params['index']              = (list) A comma-separated list of index names; use `_all` to check the types across all indices
488      * $params['type']               = DEPRECATED (list) A comma-separated list of document types to check
489      * $params['ignore_unavailable'] = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
490      * $params['allow_no_indices']   = (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)
491      * $params['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,hidden,none,all) (Default = open)
492      * $params['local']              = (boolean) Return local information, do not retrieve the state from master node (default: false)
493      *
494      * @param array $params Associative array of parameters
495      * @return bool
496      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-types-exists.html
497      */
498     public function existsType(array $params = []): bool
499     {
500         $index = $this->extractArgument($params, 'index');
501         $type = $this->extractArgument($params, 'type');
502 
503         // manually make this verbose so we can check status code
504         $params['client']['verbose'] = true;
505 
506         $endpointBuilder = $this->endpoints;
507         $endpoint = $endpointBuilder('Indices\ExistsType');
508         $endpoint->setParams($params);
509         $endpoint->setIndex($index);
510         $endpoint->setType($type);
511 
512         return BooleanRequestWrapper::performRequest($endpoint, $this->transport);
513     }
514     /**
515      * Returns the field usage stats for each field of an index
516      *
517      * $params['index']              = (string) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
518      * $params['fields']             = (list) A comma-separated list of fields to include in the stats if only a subset of fields should be returned (supports wildcards)
519      * $params['ignore_unavailable'] = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
520      * $params['allow_no_indices']   = (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)
521      * $params['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,hidden,none,all) (Default = open)
522      *
523      * @param array $params Associative array of parameters
524      * @return array
525      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/field-usage-stats.html
526      *
527      * @note This API is EXPERIMENTAL and may be changed or removed completely in a future release
528      *
529      */
530     public function fieldUsageStats(array $params = [])
531     {
532         $index = $this->extractArgument($params, 'index');
533 
534         $endpointBuilder = $this->endpoints;
535         $endpoint = $endpointBuilder('Indices\FieldUsageStats');
536         $endpoint->setParams($params);
537         $endpoint->setIndex($index);
538 
539         return $this->performRequest($endpoint);
540     }
541     /**
542      * Performs the flush operation on one or more indices.
543      *
544      * $params['index']              = (list) A comma-separated list of index names; use `_all` or empty string for all indices
545      * $params['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)
546      * $params['wait_if_ongoing']    = (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 true. If set to false the flush will be skipped iff if another flush operation is already running.
547      * $params['ignore_unavailable'] = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
548      * $params['allow_no_indices']   = (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)
549      * $params['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,hidden,none,all) (Default = open)
550      *
551      * @param array $params Associative array of parameters
552      * @return array
553      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-flush.html
554      */
555     public function flush(array $params = [])
556     {
557         $index = $this->extractArgument($params, 'index');
558 
559         $endpointBuilder = $this->endpoints;
560         $endpoint = $endpointBuilder('Indices\Flush');
561         $endpoint->setParams($params);
562         $endpoint->setIndex($index);
563 
564         return $this->performRequest($endpoint);
565     }
566     /**
567      * Performs a synced flush operation on one or more indices. Synced flush is deprecated and will be removed in 8.0. Use flush instead
568      *
569      * $params['index']              = (list) A comma-separated list of index names; use `_all` or empty string for all indices
570      * $params['ignore_unavailable'] = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
571      * $params['allow_no_indices']   = (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)
572      * $params['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,none,all) (Default = open)
573      *
574      * @param array $params Associative array of parameters
575      * @return array
576      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-synced-flush-api.html
577      */
578     public function flushSynced(array $params = [])
579     {
580         $index = $this->extractArgument($params, 'index');
581 
582         $endpointBuilder = $this->endpoints;
583         $endpoint = $endpointBuilder('Indices\FlushSynced');
584         $endpoint->setParams($params);
585         $endpoint->setIndex($index);
586 
587         return $this->performRequest($endpoint);
588     }
589     /**
590      * Performs the force merge operation on one or more indices.
591      *
592      * $params['index']                = (list) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
593      * $params['flush']                = (boolean) Specify whether the index should be flushed after performing the operation (default: true)
594      * $params['ignore_unavailable']   = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
595      * $params['allow_no_indices']     = (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)
596      * $params['expand_wildcards']     = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,hidden,none,all) (Default = open)
597      * $params['max_num_segments']     = (number) The number of segments the index should be merged into (default: dynamic)
598      * $params['only_expunge_deletes'] = (boolean) Specify whether the operation should only expunge deleted documents
599      *
600      * @param array $params Associative array of parameters
601      * @return array
602      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-forcemerge.html
603      */
604     public function forcemerge(array $params = [])
605     {
606         $index = $this->extractArgument($params, 'index');
607 
608         $endpointBuilder = $this->endpoints;
609         $endpoint = $endpointBuilder('Indices\ForceMerge');
610         $endpoint->setParams($params);
611         $endpoint->setIndex($index);
612 
613         return $this->performRequest($endpoint);
614     }
615     /**
616      * Freezes an index. A frozen index has almost no overhead on the cluster (except for maintaining its metadata in memory) and is read-only.
617      *
618      * $params['index']                  = (string) The name of the index to freeze
619      * $params['timeout']                = (time) Explicit operation timeout
620      * $params['master_timeout']         = (time) Specify timeout for connection to master
621      * $params['ignore_unavailable']     = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
622      * $params['allow_no_indices']       = (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)
623      * $params['expand_wildcards']       = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,hidden,none,all) (Default = closed)
624      * $params['wait_for_active_shards'] = (string) Sets the number of active shards to wait for before the operation returns.
625      *
626      * @param array $params Associative array of parameters
627      * @return array
628      * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/freeze-index-api.html
629      */
630     public function freeze(array $params = [])
631     {
632         $index = $this->extractArgument($params, 'index');
633 
634         $endpointBuilder = $this->endpoints;
635         $endpoint = $endpointBuilder('Indices\Freeze');
636         $endpoint->setParams($params);
637         $endpoint->setIndex($index);
638 
639         return $this->performRequest($endpoint);
640     }
641     /**
642      * Returns information about one or more indices.
643      *
644      * $params['index']              = (list) A comma-separated list of index names
645      * $params['include_type_name']  = (boolean) Whether to add the type name to the response (default: false)
646      * $params['local']              = (boolean) Return local information, do not retrieve the state from master node (default: false)
647      * $params['ignore_unavailable'] = (boolean) Ignore unavailable indexes (default: false)
648      * $params['allow_no_indices']   = (boolean) Ignore if a wildcard expression resolves to no concrete indices (default: false)
649      * $params['expand_wildcards']   = (enum) Whether wildcard expressions should get expanded to open or closed indices (default: open) (Options = open,closed,hidden,none,all) (Default = open)
650      * $params['flat_settings']      = (boolean) Return settings in flat format (default: false)
651      * $params['include_defaults']   = (boolean) Whether to return all default setting for each of the indices. (Default = false)
652      * $params['master_timeout']     = (time) Specify timeout for connection to master
653      *
654      * @param array $params Associative array of parameters
655      * @return array
656      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-index.html
657      */
658     public function get(array $params = [])
659     {
660         $index = $this->extractArgument($params, 'index');
661 
662         $endpointBuilder = $this->endpoints;
663         $endpoint = $endpointBuilder('Indices\Get');
664         $endpoint->setParams($params);
665         $endpoint->setIndex($index);
666 
667         return $this->performRequest($endpoint);
668     }
669     /**
670      * Returns an alias.
671      *
672      * $params['name']               = (list) A comma-separated list of alias names to return
673      * $params['index']              = (list) A comma-separated list of index names to filter aliases
674      * $params['ignore_unavailable'] = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
675      * $params['allow_no_indices']   = (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)
676      * $params['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,hidden,none,all) (Default = all)
677      * $params['local']              = (boolean) Return local information, do not retrieve the state from master node (default: false)
678      *
679      * @param array $params Associative array of parameters
680      * @return array
681      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html
682      */
683     public function getAlias(array $params = [])
684     {
685         $name = $this->extractArgument($params, 'name');
686         $index = $this->extractArgument($params, 'index');
687 
688         $endpointBuilder = $this->endpoints;
689         $endpoint = $endpointBuilder('Indices\GetAlias');
690         $endpoint->setParams($params);
691         $endpoint->setName($name);
692         $endpoint->setIndex($index);
693 
694         return $this->performRequest($endpoint);
695     }
696     /**
697      * Returns data streams.
698      *
699      * $params['name']             = (list) A comma-separated list of data streams to get; use `*` to get all data streams
700      * $params['expand_wildcards'] = (enum) Whether wildcard expressions should get expanded to open or closed indices (default: open) (Options = open,closed,hidden,none,all) (Default = open)
701      *
702      * @param array $params Associative array of parameters
703      * @return array
704      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html
705      */
706     public function getDataStream(array $params = [])
707     {
708         $name = $this->extractArgument($params, 'name');
709 
710         $endpointBuilder = $this->endpoints;
711         $endpoint = $endpointBuilder('Indices\GetDataStream');
712         $endpoint->setParams($params);
713         $endpoint->setName($name);
714 
715         return $this->performRequest($endpoint);
716     }
717     /**
718      * Returns mapping for one or more fields.
719      *
720      * $params['fields']             = (list) A comma-separated list of fields (Required)
721      * $params['index']              = (list) A comma-separated list of index names
722      * $params['type']               = DEPRECATED (list) A comma-separated list of document types
723      * $params['include_type_name']  = (boolean) Whether a type should be returned in the body of the mappings.
724      * $params['include_defaults']   = (boolean) Whether the default mapping values should be returned as well
725      * $params['ignore_unavailable'] = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
726      * $params['allow_no_indices']   = (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)
727      * $params['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,hidden,none,all) (Default = open)
728      * $params['local']              = (boolean) Return local information, do not retrieve the state from master node (default: false)
729      *
730      * @param array $params Associative array of parameters
731      * @return array
732      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-field-mapping.html
733      */
734     public function getFieldMapping(array $params = [])
735     {
736         $fields = $this->extractArgument($params, 'fields');
737         $index = $this->extractArgument($params, 'index');
738         $type = $this->extractArgument($params, 'type');
739 
740         $endpointBuilder = $this->endpoints;
741         $endpoint = $endpointBuilder('Indices\GetFieldMapping');
742         $endpoint->setParams($params);
743         $endpoint->setFields($fields);
744         $endpoint->setIndex($index);
745         $endpoint->setType($type);
746 
747         return $this->performRequest($endpoint);
748     }
749     /**
750      * Returns an index template.
751      *
752      * $params['name']           = (list) The comma separated names of the index templates
753      * $params['flat_settings']  = (boolean) Return settings in flat format (default: false)
754      * $params['master_timeout'] = (time) Explicit operation timeout for connection to master node
755      * $params['local']          = (boolean) Return local information, do not retrieve the state from master node (default: false)
756      *
757      * @param array $params Associative array of parameters
758      * @return array
759      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html
760      */
761     public function getIndexTemplate(array $params = [])
762     {
763         $name = $this->extractArgument($params, 'name');
764 
765         $endpointBuilder = $this->endpoints;
766         $endpoint = $endpointBuilder('Indices\GetIndexTemplate');
767         $endpoint->setParams($params);
768         $endpoint->setName($name);
769 
770         return $this->performRequest($endpoint);
771     }
772     /**
773      * Returns mappings for one or more indices.
774      *
775      * $params['index']              = (list) A comma-separated list of index names
776      * $params['type']               = DEPRECATED (list) A comma-separated list of document types
777      * $params['include_type_name']  = (boolean) Whether to add the type name to the response (default: false)
778      * $params['ignore_unavailable'] = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
779      * $params['allow_no_indices']   = (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)
780      * $params['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,hidden,none,all) (Default = open)
781      * $params['master_timeout']     = (time) Specify timeout for connection to master
782      * $params['local']              = (boolean) Return local information, do not retrieve the state from master node (default: false)
783      *
784      * @param array $params Associative array of parameters
785      * @return array
786      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-mapping.html
787      */
788     public function getMapping(array $params = [])
789     {
790         $index = $this->extractArgument($params, 'index');
791         $type = $this->extractArgument($params, 'type');
792 
793         $endpointBuilder = $this->endpoints;
794         $endpoint = $endpointBuilder('Indices\GetMapping');
795         $endpoint->setParams($params);
796         $endpoint->setIndex($index);
797         $endpoint->setType($type);
798 
799         return $this->performRequest($endpoint);
800     }
801     /**
802      * Returns settings for one or more indices.
803      *
804      * $params['index']              = (list) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
805      * $params['name']               = (list) The name of the settings that should be included
806      * $params['master_timeout']     = (time) Specify timeout for connection to master
807      * $params['ignore_unavailable'] = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
808      * $params['allow_no_indices']   = (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)
809      * $params['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,hidden,none,all) (Default = all)
810      * $params['flat_settings']      = (boolean) Return settings in flat format (default: false)
811      * $params['local']              = (boolean) Return local information, do not retrieve the state from master node (default: false)
812      * $params['include_defaults']   = (boolean) Whether to return all default setting for each of the indices. (Default = false)
813      *
814      * @param array $params Associative array of parameters
815      * @return array
816      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-settings.html
817      */
818     public function getSettings(array $params = [])
819     {
820         $index = $this->extractArgument($params, 'index');
821         $name = $this->extractArgument($params, 'name');
822 
823         $endpointBuilder = $this->endpoints;
824         $endpoint = $endpointBuilder('Indices\GetSettings');
825         $endpoint->setParams($params);
826         $endpoint->setIndex($index);
827         $endpoint->setName($name);
828 
829         return $this->performRequest($endpoint);
830     }
831     /**
832      * Returns an index template.
833      *
834      * $params['name']              = (list) The comma separated names of the index templates
835      * $params['include_type_name'] = (boolean) Whether a type should be returned in the body of the mappings.
836      * $params['flat_settings']     = (boolean) Return settings in flat format (default: false)
837      * $params['master_timeout']    = (time) Explicit operation timeout for connection to master node
838      * $params['local']             = (boolean) Return local information, do not retrieve the state from master node (default: false)
839      *
840      * @param array $params Associative array of parameters
841      * @return array
842      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html
843      */
844     public function getTemplate(array $params = [])
845     {
846         $name = $this->extractArgument($params, 'name');
847 
848         $endpointBuilder = $this->endpoints;
849         $endpoint = $endpointBuilder('Indices\GetTemplate');
850         $endpoint->setParams($params);
851         $endpoint->setName($name);
852 
853         return $this->performRequest($endpoint);
854     }
855     /**
856      * DEPRECATED Returns a progress status of current upgrade.
857      *
858      * $params['index']              = (list) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
859      * $params['ignore_unavailable'] = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
860      * $params['allow_no_indices']   = (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)
861      * $params['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,hidden,none,all) (Default = open)
862      *
863      * @param array $params Associative array of parameters
864      * @return array
865      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-upgrade.html
866      */
867     public function getUpgrade(array $params = [])
868     {
869         $index = $this->extractArgument($params, 'index');
870 
871         $endpointBuilder = $this->endpoints;
872         $endpoint = $endpointBuilder('Indices\GetUpgrade');
873         $endpoint->setParams($params);
874         $endpoint->setIndex($index);
875 
876         return $this->performRequest($endpoint);
877     }
878     /**
879      * Migrates an alias to a data stream
880      *
881      * $params['name'] = (string) The name of the alias to migrate
882      *
883      * @param array $params Associative array of parameters
884      * @return array
885      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html
886      */
887     public function migrateToDataStream(array $params = [])
888     {
889         $name = $this->extractArgument($params, 'name');
890 
891         $endpointBuilder = $this->endpoints;
892         $endpoint = $endpointBuilder('Indices\MigrateToDataStream');
893         $endpoint->setParams($params);
894         $endpoint->setName($name);
895 
896         return $this->performRequest($endpoint);
897     }
898     /**
899      * Opens an index.
900      *
901      * $params['index']                  = (list) A comma separated list of indices to open
902      * $params['timeout']                = (time) Explicit operation timeout
903      * $params['master_timeout']         = (time) Specify timeout for connection to master
904      * $params['ignore_unavailable']     = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
905      * $params['allow_no_indices']       = (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)
906      * $params['expand_wildcards']       = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,hidden,none,all) (Default = closed)
907      * $params['wait_for_active_shards'] = (string) Sets the number of active shards to wait for before the operation returns.
908      *
909      * @param array $params Associative array of parameters
910      * @return array
911      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-open-close.html
912      */
913     public function open(array $params = [])
914     {
915         $index = $this->extractArgument($params, 'index');
916 
917         $endpointBuilder = $this->endpoints;
918         $endpoint = $endpointBuilder('Indices\Open');
919         $endpoint->setParams($params);
920         $endpoint->setIndex($index);
921 
922         return $this->performRequest($endpoint);
923     }
924     /**
925      * Promotes a data stream from a replicated data stream managed by CCR to a regular data stream
926      *
927      * $params['name'] = (string) The name of the data stream
928      *
929      * @param array $params Associative array of parameters
930      * @return array
931      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html
932      */
933     public function promoteDataStream(array $params = [])
934     {
935         $name = $this->extractArgument($params, 'name');
936 
937         $endpointBuilder = $this->endpoints;
938         $endpoint = $endpointBuilder('Indices\PromoteDataStream');
939         $endpoint->setParams($params);
940         $endpoint->setName($name);
941 
942         return $this->performRequest($endpoint);
943     }
944     /**
945      * Creates or updates an alias.
946      *
947      * $params['index']          = (list) A comma-separated list of index names the alias should point to (supports wildcards); use `_all` to perform the operation on all indices. (Required)
948      * $params['name']           = (string) The name of the alias to be created or updated (Required)
949      * $params['timeout']        = (time) Explicit timestamp for the document
950      * $params['master_timeout'] = (time) Specify timeout for connection to master
951      * $params['body']           = (array) The settings for the alias, such as `routing` or `filter`
952      *
953      * @param array $params Associative array of parameters
954      * @return array
955      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html
956      */
957     public function putAlias(array $params = [])
958     {
959         $index = $this->extractArgument($params, 'index');
960         $name = $this->extractArgument($params, 'name');
961         $body = $this->extractArgument($params, 'body');
962 
963         $endpointBuilder = $this->endpoints;
964         $endpoint = $endpointBuilder('Indices\PutAlias');
965         $endpoint->setParams($params);
966         $endpoint->setIndex($index);
967         $endpoint->setName($name);
968         $endpoint->setBody($body);
969 
970         return $this->performRequest($endpoint);
971     }
972     /**
973      * Creates or updates an index template.
974      *
975      * $params['name']           = (string) The name of the template
976      * $params['create']         = (boolean) Whether the index template should only be added if new or can also replace an existing one (Default = false)
977      * $params['cause']          = (string) User defined reason for creating/updating the index template (Default = )
978      * $params['master_timeout'] = (time) Specify timeout for connection to master
979      * $params['body']           = (array) The template definition (Required)
980      *
981      * @param array $params Associative array of parameters
982      * @return array
983      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html
984      */
985     public function putIndexTemplate(array $params = [])
986     {
987         $name = $this->extractArgument($params, 'name');
988         $body = $this->extractArgument($params, 'body');
989 
990         $endpointBuilder = $this->endpoints;
991         $endpoint = $endpointBuilder('Indices\PutIndexTemplate');
992         $endpoint->setParams($params);
993         $endpoint->setName($name);
994         $endpoint->setBody($body);
995 
996         return $this->performRequest($endpoint);
997     }
998     /**
999      * Updates the index mappings.
1000      *
1001      * $params['index']              = (list) 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.
1002      * $params['type']               = DEPRECATED (string) The name of the document type
1003      * $params['include_type_name']  = (boolean) Whether a type should be expected in the body of the mappings.
1004      * $params['timeout']            = (time) Explicit operation timeout
1005      * $params['master_timeout']     = (time) Specify timeout for connection to master
1006      * $params['ignore_unavailable'] = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
1007      * $params['allow_no_indices']   = (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)
1008      * $params['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,hidden,none,all) (Default = open)
1009      * $params['write_index_only']   = (boolean) When true, applies mappings only to the write index of an alias or data stream (Default = false)
1010      * $params['body']               = (array) The mapping definition (Required)
1011      *
1012      * @param array $params Associative array of parameters
1013      * @return array
1014      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-put-mapping.html
1015      */
1016     public function putMapping(array $params = [])
1017     {
1018         $index = $this->extractArgument($params, 'index');
1019         $type = $this->extractArgument($params, 'type');
1020         $body = $this->extractArgument($params, 'body');
1021 
1022         $endpointBuilder = $this->endpoints;
1023         $endpoint = $endpointBuilder('Indices\PutMapping');
1024         $endpoint->setParams($params);
1025         $endpoint->setIndex($index);
1026         $endpoint->setType($type);
1027         $endpoint->setBody($body);
1028 
1029         return $this->performRequest($endpoint);
1030     }
1031     /**
1032      * Updates the index settings.
1033      *
1034      * $params['index']              = (list) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
1035      * $params['master_timeout']     = (time) Specify timeout for connection to master
1036      * $params['timeout']            = (time) Explicit operation timeout
1037      * $params['preserve_existing']  = (boolean) Whether to update existing settings. If set to `true` existing settings on an index remain unchanged, the default is `false`
1038      * $params['ignore_unavailable'] = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
1039      * $params['allow_no_indices']   = (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)
1040      * $params['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,hidden,none,all) (Default = open)
1041      * $params['flat_settings']      = (boolean) Return settings in flat format (default: false)
1042      * $params['body']               = (array) The index settings to be updated (Required)
1043      *
1044      * @param array $params Associative array of parameters
1045      * @return array
1046      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-update-settings.html
1047      */
1048     public function putSettings(array $params = [])
1049     {
1050         $index = $this->extractArgument($params, 'index');
1051         $body = $this->extractArgument($params, 'body');
1052 
1053         $endpointBuilder = $this->endpoints;
1054         $endpoint = $endpointBuilder('Indices\PutSettings');
1055         $endpoint->setParams($params);
1056         $endpoint->setIndex($index);
1057         $endpoint->setBody($body);
1058 
1059         return $this->performRequest($endpoint);
1060     }
1061     /**
1062      * Creates or updates an index template.
1063      *
1064      * $params['name']              = (string) The name of the template
1065      * $params['include_type_name'] = (boolean) Whether a type should be returned in the body of the mappings.
1066      * $params['order']             = (number) The order for this template when merging multiple matching ones (higher numbers are merged later, overriding the lower numbers)
1067      * $params['create']            = (boolean) Whether the index template should only be added if new or can also replace an existing one (Default = false)
1068      * $params['master_timeout']    = (time) Specify timeout for connection to master
1069      * $params['body']              = (array) The template definition (Required)
1070      *
1071      * @param array $params Associative array of parameters
1072      * @return array
1073      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html
1074      */
1075     public function putTemplate(array $params = [])
1076     {
1077         $name = $this->extractArgument($params, 'name');
1078         $body = $this->extractArgument($params, 'body');
1079 
1080         $endpointBuilder = $this->endpoints;
1081         $endpoint = $endpointBuilder('Indices\PutTemplate');
1082         $endpoint->setParams($params);
1083         $endpoint->setName($name);
1084         $endpoint->setBody($body);
1085 
1086         return $this->performRequest($endpoint);
1087     }
1088     /**
1089      * Returns information about ongoing index shard recoveries.
1090      *
1091      * $params['index']       = (list) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
1092      * $params['detailed']    = (boolean) Whether to display detailed information about shard recovery (Default = false)
1093      * $params['active_only'] = (boolean) Display only those recoveries that are currently on-going (Default = false)
1094      *
1095      * @param array $params Associative array of parameters
1096      * @return array
1097      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-recovery.html
1098      */
1099     public function recovery(array $params = [])
1100     {
1101         $index = $this->extractArgument($params, 'index');
1102 
1103         $endpointBuilder = $this->endpoints;
1104         $endpoint = $endpointBuilder('Indices\Recovery');
1105         $endpoint->setParams($params);
1106         $endpoint->setIndex($index);
1107 
1108         return $this->performRequest($endpoint);
1109     }
1110     /**
1111      * Performs the refresh operation in one or more indices.
1112      *
1113      * $params['index']              = (list) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
1114      * $params['ignore_unavailable'] = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
1115      * $params['allow_no_indices']   = (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)
1116      * $params['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,hidden,none,all) (Default = open)
1117      *
1118      * @param array $params Associative array of parameters
1119      * @return array
1120      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-refresh.html
1121      */
1122     public function refresh(array $params = [])
1123     {
1124         $index = $this->extractArgument($params, 'index');
1125 
1126         $endpointBuilder = $this->endpoints;
1127         $endpoint = $endpointBuilder('Indices\Refresh');
1128         $endpoint->setParams($params);
1129         $endpoint->setIndex($index);
1130 
1131         return $this->performRequest($endpoint);
1132     }
1133     /**
1134      * Reloads an index's search analyzers and their resources.
1135      *
1136      * $params['index']              = (list) A comma-separated list of index names to reload analyzers for
1137      * $params['ignore_unavailable'] = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
1138      * $params['allow_no_indices']   = (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)
1139      * $params['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,hidden,none,all) (Default = open)
1140      *
1141      * @param array $params Associative array of parameters
1142      * @return array
1143      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-reload-analyzers.html
1144      */
1145     public function reloadSearchAnalyzers(array $params = [])
1146     {
1147         $index = $this->extractArgument($params, 'index');
1148 
1149         $endpointBuilder = $this->endpoints;
1150         $endpoint = $endpointBuilder('Indices\ReloadSearchAnalyzers');
1151         $endpoint->setParams($params);
1152         $endpoint->setIndex($index);
1153 
1154         return $this->performRequest($endpoint);
1155     }
1156     /**
1157      * Returns information about any matching indices, aliases, and data streams
1158      *
1159      * $params['name']             = (list) A comma-separated list of names or wildcard expressions
1160      * $params['expand_wildcards'] = (enum) Whether wildcard expressions should get expanded to open or closed indices (default: open) (Options = open,closed,hidden,none,all) (Default = open)
1161      *
1162      * @param array $params Associative array of parameters
1163      * @return array
1164      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-resolve-index-api.html
1165      *
1166      * @note This API is EXPERIMENTAL and may be changed or removed completely in a future release
1167      *
1168      */
1169     public function resolveIndex(array $params = [])
1170     {
1171         $name = $this->extractArgument($params, 'name');
1172 
1173         $endpointBuilder = $this->endpoints;
1174         $endpoint = $endpointBuilder('Indices\ResolveIndex');
1175         $endpoint->setParams($params);
1176         $endpoint->setName($name);
1177 
1178         return $this->performRequest($endpoint);
1179     }
1180     /**
1181      * Updates an alias to point to a new index when the existing indexis considered to be too large or too old.
1182      *
1183      * $params['alias']                  = (string) The name of the alias to rollover (Required)
1184      * $params['new_index']              = (string) The name of the rollover index
1185      * $params['include_type_name']      = (boolean) Whether a type should be included in the body of the mappings.
1186      * $params['timeout']                = (time) Explicit operation timeout
1187      * $params['dry_run']                = (boolean) If set to true the rollover action will only be validated but not actually performed even if a condition matches. The default is false
1188      * $params['master_timeout']         = (time) Specify timeout for connection to master
1189      * $params['wait_for_active_shards'] = (string) Set the number of active shards to wait for on the newly created rollover index before the operation returns.
1190      * $params['body']                   = (array) The conditions that needs to be met for executing rollover
1191      *
1192      * @param array $params Associative array of parameters
1193      * @return array
1194      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-rollover-index.html
1195      */
1196     public function rollover(array $params = [])
1197     {
1198         $alias = $this->extractArgument($params, 'alias');
1199         $new_index = $this->extractArgument($params, 'new_index');
1200         $body = $this->extractArgument($params, 'body');
1201 
1202         $endpointBuilder = $this->endpoints;
1203         $endpoint = $endpointBuilder('Indices\Rollover');
1204         $endpoint->setParams($params);
1205         $endpoint->setAlias($alias);
1206         $endpoint->setNewIndex($new_index);
1207         $endpoint->setBody($body);
1208 
1209         return $this->performRequest($endpoint);
1210     }
1211     /**
1212      * Provides low-level information about segments in a Lucene index.
1213      *
1214      * $params['index']              = (list) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
1215      * $params['ignore_unavailable'] = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
1216      * $params['allow_no_indices']   = (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)
1217      * $params['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,hidden,none,all) (Default = open)
1218      * $params['verbose']            = (boolean) Includes detailed memory usage by Lucene. (Default = false)
1219      *
1220      * @param array $params Associative array of parameters
1221      * @return array
1222      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-segments.html
1223      */
1224     public function segments(array $params = [])
1225     {
1226         $index = $this->extractArgument($params, 'index');
1227 
1228         $endpointBuilder = $this->endpoints;
1229         $endpoint = $endpointBuilder('Indices\Segments');
1230         $endpoint->setParams($params);
1231         $endpoint->setIndex($index);
1232 
1233         return $this->performRequest($endpoint);
1234     }
1235     /**
1236      * Provides store information for shard copies of indices.
1237      *
1238      * $params['index']              = (list) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
1239      * $params['status']             = (list) A comma-separated list of statuses used to filter on shards to get store information for (Options = green,yellow,red,all)
1240      * $params['ignore_unavailable'] = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
1241      * $params['allow_no_indices']   = (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)
1242      * $params['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,hidden,none,all) (Default = open)
1243      *
1244      * @param array $params Associative array of parameters
1245      * @return array
1246      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-shards-stores.html
1247      */
1248     public function shardStores(array $params = [])
1249     {
1250         $index = $this->extractArgument($params, 'index');
1251 
1252         $endpointBuilder = $this->endpoints;
1253         $endpoint = $endpointBuilder('Indices\ShardStores');
1254         $endpoint->setParams($params);
1255         $endpoint->setIndex($index);
1256 
1257         return $this->performRequest($endpoint);
1258     }
1259     /**
1260      * Allow to shrink an existing index into a new index with fewer primary shards.
1261      *
1262      * $params['index']                  = (string) The name of the source index to shrink
1263      * $params['target']                 = (string) The name of the target index to shrink into
1264      * $params['copy_settings']          = (boolean) whether or not to copy settings from the source index (defaults to false)
1265      * $params['timeout']                = (time) Explicit operation timeout
1266      * $params['master_timeout']         = (time) Specify timeout for connection to master
1267      * $params['wait_for_active_shards'] = (string) Set the number of active shards to wait for on the shrunken index before the operation returns.
1268      * $params['body']                   = (array) The configuration for the target index (`settings` and `aliases`)
1269      *
1270      * @param array $params Associative array of parameters
1271      * @return array
1272      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-shrink-index.html
1273      */
1274     public function shrink(array $params = [])
1275     {
1276         $index = $this->extractArgument($params, 'index');
1277         $target = $this->extractArgument($params, 'target');
1278         $body = $this->extractArgument($params, 'body');
1279 
1280         $endpointBuilder = $this->endpoints;
1281         $endpoint = $endpointBuilder('Indices\Shrink');
1282         $endpoint->setParams($params);
1283         $endpoint->setIndex($index);
1284         $endpoint->setTarget($target);
1285         $endpoint->setBody($body);
1286 
1287         return $this->performRequest($endpoint);
1288     }
1289     /**
1290      * Simulate matching the given index name against the index templates in the system
1291      *
1292      * $params['name']           = (string) The name of the index (it must be a concrete index name)
1293      * $params['create']         = (boolean) Whether the index template we optionally defined in the body should only be dry-run added if new or can also replace an existing one (Default = false)
1294      * $params['cause']          = (string) User defined reason for dry-run creating the new template for simulation purposes (Default = )
1295      * $params['master_timeout'] = (time) Specify timeout for connection to master
1296      * $params['body']           = (array) New index template definition, which will be included in the simulation, as if it already exists in the system
1297      *
1298      * @param array $params Associative array of parameters
1299      * @return array
1300      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html
1301      */
1302     public function simulateIndexTemplate(array $params = [])
1303     {
1304         $name = $this->extractArgument($params, 'name');
1305         $body = $this->extractArgument($params, 'body');
1306 
1307         $endpointBuilder = $this->endpoints;
1308         $endpoint = $endpointBuilder('Indices\SimulateIndexTemplate');
1309         $endpoint->setParams($params);
1310         $endpoint->setName($name);
1311         $endpoint->setBody($body);
1312 
1313         return $this->performRequest($endpoint);
1314     }
1315     /**
1316      * Simulate resolving the given template name or body
1317      *
1318      * $params['name']           = (string) The name of the index template
1319      * $params['create']         = (boolean) Whether the index template we optionally defined in the body should only be dry-run added if new or can also replace an existing one (Default = false)
1320      * $params['cause']          = (string) User defined reason for dry-run creating the new template for simulation purposes (Default = )
1321      * $params['master_timeout'] = (time) Specify timeout for connection to master
1322      * $params['body']           = (array) New index template definition to be simulated, if no index template name is specified
1323      *
1324      * @param array $params Associative array of parameters
1325      * @return array
1326      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html
1327      */
1328     public function simulateTemplate(array $params = [])
1329     {
1330         $name = $this->extractArgument($params, 'name');
1331         $body = $this->extractArgument($params, 'body');
1332 
1333         $endpointBuilder = $this->endpoints;
1334         $endpoint = $endpointBuilder('Indices\SimulateTemplate');
1335         $endpoint->setParams($params);
1336         $endpoint->setName($name);
1337         $endpoint->setBody($body);
1338 
1339         return $this->performRequest($endpoint);
1340     }
1341     /**
1342      * Allows you to split an existing index into a new index with more primary shards.
1343      *
1344      * $params['index']                  = (string) The name of the source index to split
1345      * $params['target']                 = (string) The name of the target index to split into
1346      * $params['copy_settings']          = (boolean) whether or not to copy settings from the source index (defaults to false)
1347      * $params['timeout']                = (time) Explicit operation timeout
1348      * $params['master_timeout']         = (time) Specify timeout for connection to master
1349      * $params['wait_for_active_shards'] = (string) Set the number of active shards to wait for on the shrunken index before the operation returns.
1350      * $params['body']                   = (array) The configuration for the target index (`settings` and `aliases`)
1351      *
1352      * @param array $params Associative array of parameters
1353      * @return array
1354      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-split-index.html
1355      */
1356     public function split(array $params = [])
1357     {
1358         $index = $this->extractArgument($params, 'index');
1359         $target = $this->extractArgument($params, 'target');
1360         $body = $this->extractArgument($params, 'body');
1361 
1362         $endpointBuilder = $this->endpoints;
1363         $endpoint = $endpointBuilder('Indices\Split');
1364         $endpoint->setParams($params);
1365         $endpoint->setIndex($index);
1366         $endpoint->setTarget($target);
1367         $endpoint->setBody($body);
1368 
1369         return $this->performRequest($endpoint);
1370     }
1371     /**
1372      * Provides statistics on operations happening in an index.
1373      *
1374      * $params['metric']                     = (list) Limit the information returned the specific metrics.
1375      * $params['index']                      = (list) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
1376      * $params['completion_fields']          = (list) A comma-separated list of fields for `fielddata` and `suggest` index metric (supports wildcards)
1377      * $params['fielddata_fields']           = (list) A comma-separated list of fields for `fielddata` index metric (supports wildcards)
1378      * $params['fields']                     = (list) A comma-separated list of fields for `fielddata` and `completion` index metric (supports wildcards)
1379      * $params['groups']                     = (list) A comma-separated list of search groups for `search` index metric
1380      * $params['level']                      = (enum) Return stats aggregated at cluster, index or shard level (Options = cluster,indices,shards) (Default = indices)
1381      * $params['types']                      = (list) A comma-separated list of document types for the `indexing` index metric
1382      * $params['include_segment_file_sizes'] = (boolean) Whether to report the aggregated disk usage of each one of the Lucene index files (only applies if segment stats are requested) (Default = false)
1383      * $params['include_unloaded_segments']  = (boolean) If set to true segment stats will include stats for segments that are not currently loaded into memory (Default = false)
1384      * $params['expand_wildcards']           = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,hidden,none,all) (Default = open)
1385      * $params['forbid_closed_indices']      = (boolean) If set to false stats will also collected from closed indices if explicitly specified or if expand_wildcards expands to closed indices (Default = true)
1386      *
1387      * @param array $params Associative array of parameters
1388      * @return array
1389      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-stats.html
1390      */
1391     public function stats(array $params = [])
1392     {
1393         $metric = $this->extractArgument($params, 'metric');
1394         $index = $this->extractArgument($params, 'index');
1395 
1396         $endpointBuilder = $this->endpoints;
1397         $endpoint = $endpointBuilder('Indices\Stats');
1398         $endpoint->setParams($params);
1399         $endpoint->setMetric($metric);
1400         $endpoint->setIndex($index);
1401 
1402         return $this->performRequest($endpoint);
1403     }
1404     /**
1405      * Unfreezes an index. When a frozen index is unfrozen, the index goes through the normal recovery process and becomes writeable again.
1406      *
1407      * $params['index']                  = (string) The name of the index to unfreeze
1408      * $params['timeout']                = (time) Explicit operation timeout
1409      * $params['master_timeout']         = (time) Specify timeout for connection to master
1410      * $params['ignore_unavailable']     = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
1411      * $params['allow_no_indices']       = (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)
1412      * $params['expand_wildcards']       = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,hidden,none,all) (Default = closed)
1413      * $params['wait_for_active_shards'] = (string) Sets the number of active shards to wait for before the operation returns.
1414      *
1415      * @param array $params Associative array of parameters
1416      * @return array
1417      * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/unfreeze-index-api.html
1418      */
1419     public function unfreeze(array $params = [])
1420     {
1421         $index = $this->extractArgument($params, 'index');
1422 
1423         $endpointBuilder = $this->endpoints;
1424         $endpoint = $endpointBuilder('Indices\Unfreeze');
1425         $endpoint->setParams($params);
1426         $endpoint->setIndex($index);
1427 
1428         return $this->performRequest($endpoint);
1429     }
1430     /**
1431      * Updates index aliases.
1432      *
1433      * $params['timeout']        = (time) Request timeout
1434      * $params['master_timeout'] = (time) Specify timeout for connection to master
1435      * $params['body']           = (array) The definition of `actions` to perform (Required)
1436      *
1437      * @param array $params Associative array of parameters
1438      * @return array
1439      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html
1440      */
1441     public function updateAliases(array $params = [])
1442     {
1443         $body = $this->extractArgument($params, 'body');
1444 
1445         $endpointBuilder = $this->endpoints;
1446         $endpoint = $endpointBuilder('Indices\UpdateAliases');
1447         $endpoint->setParams($params);
1448         $endpoint->setBody($body);
1449 
1450         return $this->performRequest($endpoint);
1451     }
1452     /**
1453      * DEPRECATED Upgrades to the current version of Lucene.
1454      *
1455      * $params['index']                 = (list) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
1456      * $params['allow_no_indices']      = (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)
1457      * $params['expand_wildcards']      = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,hidden,none,all) (Default = open)
1458      * $params['ignore_unavailable']    = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
1459      * $params['wait_for_completion']   = (boolean) Specify whether the request should block until the all segments are upgraded (default: false)
1460      * $params['only_ancient_segments'] = (boolean) If true, only ancient (an older Lucene major release) segments will be upgraded
1461      *
1462      * @param array $params Associative array of parameters
1463      * @return array
1464      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-upgrade.html
1465      */
1466     public function upgrade(array $params = [])
1467     {
1468         $index = $this->extractArgument($params, 'index');
1469 
1470         $endpointBuilder = $this->endpoints;
1471         $endpoint = $endpointBuilder('Indices\Upgrade');
1472         $endpoint->setParams($params);
1473         $endpoint->setIndex($index);
1474 
1475         return $this->performRequest($endpoint);
1476     }
1477     /**
1478      * Allows a user to validate a potentially expensive query without executing it.
1479      *
1480      * $params['index']              = (list) A comma-separated list of index names to restrict the operation; use `_all` or empty string to perform the operation on all indices
1481      * $params['type']               = DEPRECATED (list) A comma-separated list of document types to restrict the operation; leave empty to perform the operation on all types
1482      * $params['explain']            = (boolean) Return detailed information about the error
1483      * $params['ignore_unavailable'] = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
1484      * $params['allow_no_indices']   = (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)
1485      * $params['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,hidden,none,all) (Default = open)
1486      * $params['q']                  = (string) Query in the Lucene query string syntax
1487      * $params['analyzer']           = (string) The analyzer to use for the query string
1488      * $params['analyze_wildcard']   = (boolean) Specify whether wildcard and prefix queries should be analyzed (default: false)
1489      * $params['default_operator']   = (enum) The default operator for query string query (AND or OR) (Options = AND,OR) (Default = OR)
1490      * $params['df']                 = (string) The field to use as default where no field prefix is given in the query string
1491      * $params['lenient']            = (boolean) Specify whether format-based query failures (such as providing text to a numeric field) should be ignored
1492      * $params['rewrite']            = (boolean) Provide a more detailed explanation showing the actual Lucene query that will be executed.
1493      * $params['all_shards']         = (boolean) Execute validation on all shards instead of one random shard per index
1494      * $params['body']               = (array) The query definition specified with the Query DSL
1495      *
1496      * @param array $params Associative array of parameters
1497      * @return array
1498      * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/search-validate.html
1499      */
1500     public function validateQuery(array $params = [])
1501     {
1502         $index = $this->extractArgument($params, 'index');
1503         $type = $this->extractArgument($params, 'type');
1504         $body = $this->extractArgument($params, 'body');
1505 
1506         $endpointBuilder = $this->endpoints;
1507         $endpoint = $endpointBuilder('Indices\ValidateQuery');
1508         $endpoint->setParams($params);
1509         $endpoint->setIndex($index);
1510         $endpoint->setType($type);
1511         $endpoint->setBody($body);
1512 
1513         return $this->performRequest($endpoint);
1514     }
1515     /**
1516      * Alias function to getAlias()
1517      *
1518      * @deprecated added to prevent BC break introduced in 7.2.0
1519      * @see https://github.com/elastic/elasticsearch-php/issues/940
1520      */
1521     public function getAliases(array $params = [])
1522     {
1523         return $this->getAlias($params);
1524     }
1525 }
1526