elasticsearch-api 6.8.0 → 7.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (379) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +26 -5
  3. data/LICENSE +202 -0
  4. data/README.md +24 -21
  5. data/Rakefile +43 -45
  6. data/elasticsearch-api.gemspec +56 -55
  7. data/lib/elasticsearch/api/actions/abort_benchmark.rb +19 -3
  8. data/lib/elasticsearch/api/actions/benchmark.rb +21 -5
  9. data/lib/elasticsearch/api/actions/bulk.rb +54 -69
  10. data/lib/elasticsearch/api/actions/cat/aliases.rb +45 -45
  11. data/lib/elasticsearch/api/actions/cat/allocation.rb +45 -41
  12. data/lib/elasticsearch/api/actions/cat/count.rb +38 -39
  13. data/lib/elasticsearch/api/actions/cat/fielddata.rb +42 -29
  14. data/lib/elasticsearch/api/actions/cat/health.rb +37 -29
  15. data/lib/elasticsearch/api/actions/cat/help.rb +31 -9
  16. data/lib/elasticsearch/api/actions/cat/indices.rb +51 -51
  17. data/lib/elasticsearch/api/actions/cat/master.rb +36 -26
  18. data/lib/elasticsearch/api/actions/cat/nodeattrs.rb +36 -14
  19. data/lib/elasticsearch/api/actions/cat/nodes.rb +43 -39
  20. data/lib/elasticsearch/api/actions/cat/params_registry.rb +20 -4
  21. data/lib/elasticsearch/api/actions/cat/pending_tasks.rb +38 -26
  22. data/lib/elasticsearch/api/actions/cat/plugins.rb +36 -14
  23. data/lib/elasticsearch/api/actions/cat/recovery.rb +47 -47
  24. data/lib/elasticsearch/api/actions/cat/repositories.rb +36 -22
  25. data/lib/elasticsearch/api/actions/cat/segments.rb +42 -19
  26. data/lib/elasticsearch/api/actions/cat/shards.rb +45 -50
  27. data/lib/elasticsearch/api/actions/cat/snapshots.rb +44 -25
  28. data/lib/elasticsearch/api/actions/cat/tasks.rb +40 -16
  29. data/lib/elasticsearch/api/actions/cat/templates.rb +43 -16
  30. data/lib/elasticsearch/api/actions/cat/thread_pool.rb +46 -35
  31. data/lib/elasticsearch/api/actions/clear_scroll.rb +40 -17
  32. data/lib/elasticsearch/api/actions/cluster/allocation_explain.rb +38 -11
  33. data/lib/elasticsearch/api/actions/cluster/delete_component_template.rb +62 -0
  34. data/lib/elasticsearch/api/actions/cluster/delete_voting_config_exclusions.rb +51 -0
  35. data/lib/elasticsearch/api/actions/cluster/exists_component_template.rb +63 -0
  36. data/lib/elasticsearch/api/actions/cluster/get_component_template.rb +64 -0
  37. data/lib/elasticsearch/api/actions/cluster/get_settings.rb +33 -15
  38. data/lib/elasticsearch/api/actions/cluster/health.rb +46 -27
  39. data/lib/elasticsearch/api/actions/cluster/params_registry.rb +20 -4
  40. data/lib/elasticsearch/api/actions/cluster/pending_tasks.rb +32 -14
  41. data/lib/elasticsearch/api/actions/cluster/post_voting_config_exclusions.rb +55 -0
  42. data/lib/elasticsearch/api/actions/cluster/put_component_template.rb +66 -0
  43. data/lib/elasticsearch/api/actions/cluster/put_settings.rb +35 -15
  44. data/lib/elasticsearch/api/actions/cluster/remote_info.rb +27 -12
  45. data/lib/elasticsearch/api/actions/cluster/reroute.rb +38 -33
  46. data/lib/elasticsearch/api/actions/cluster/state.rb +53 -44
  47. data/lib/elasticsearch/api/actions/cluster/stats.rb +38 -19
  48. data/lib/elasticsearch/api/actions/count.rb +60 -36
  49. data/lib/elasticsearch/api/actions/create.rb +37 -25
  50. data/lib/elasticsearch/api/actions/dangling_indices/delete_dangling_index.rb +60 -0
  51. data/lib/elasticsearch/api/actions/dangling_indices/import_dangling_index.rb +60 -0
  52. data/lib/elasticsearch/api/actions/dangling_indices/list_dangling_indices.rb +43 -0
  53. data/lib/elasticsearch/api/actions/dangling_indices/params_registry.rb +60 -0
  54. data/lib/elasticsearch/api/actions/delete.rb +62 -47
  55. data/lib/elasticsearch/api/actions/delete_by_query.rb +82 -57
  56. data/lib/elasticsearch/api/actions/delete_by_query_rethrottle.rb +36 -11
  57. data/lib/elasticsearch/api/actions/delete_by_rethrottle.rb +47 -0
  58. data/lib/elasticsearch/api/actions/delete_script.rb +37 -12
  59. data/lib/elasticsearch/api/actions/exists.rb +61 -34
  60. data/lib/elasticsearch/api/actions/exists_source.rb +60 -24
  61. data/lib/elasticsearch/api/actions/explain.rb +68 -44
  62. data/lib/elasticsearch/api/actions/field_caps.rb +49 -19
  63. data/lib/elasticsearch/api/actions/get.rb +60 -40
  64. data/lib/elasticsearch/api/actions/get_script.rb +37 -13
  65. data/lib/elasticsearch/api/actions/get_script_context.rb +45 -0
  66. data/lib/elasticsearch/api/actions/get_script_languages.rb +45 -0
  67. data/lib/elasticsearch/api/actions/get_source.rb +57 -38
  68. data/lib/elasticsearch/api/actions/index.rb +67 -74
  69. data/lib/elasticsearch/api/actions/indices/add_block.rb +68 -0
  70. data/lib/elasticsearch/api/actions/indices/analyze.rb +41 -34
  71. data/lib/elasticsearch/api/actions/indices/clear_cache.rb +44 -41
  72. data/lib/elasticsearch/api/actions/indices/clone.rb +65 -0
  73. data/lib/elasticsearch/api/actions/indices/close.rb +41 -21
  74. data/lib/elasticsearch/api/actions/indices/create.rb +39 -69
  75. data/lib/elasticsearch/api/actions/indices/delete.rb +41 -34
  76. data/lib/elasticsearch/api/actions/indices/delete_alias.rb +41 -19
  77. data/lib/elasticsearch/api/actions/indices/delete_index_template.rb +62 -0
  78. data/lib/elasticsearch/api/actions/indices/delete_template.rb +36 -20
  79. data/lib/elasticsearch/api/actions/indices/exists.rb +43 -21
  80. data/lib/elasticsearch/api/actions/indices/exists_alias.rb +46 -18
  81. data/lib/elasticsearch/api/actions/indices/exists_index_template.rb +65 -0
  82. data/lib/elasticsearch/api/actions/indices/exists_template.rb +37 -14
  83. data/lib/elasticsearch/api/actions/indices/exists_type.rb +42 -17
  84. data/lib/elasticsearch/api/actions/indices/flush.rb +41 -19
  85. data/lib/elasticsearch/api/actions/indices/flush_synced.rb +45 -11
  86. data/lib/elasticsearch/api/actions/indices/forcemerge.rb +42 -40
  87. data/lib/elasticsearch/api/actions/indices/freeze.rb +24 -7
  88. data/lib/elasticsearch/api/actions/indices/get.rb +42 -18
  89. data/lib/elasticsearch/api/actions/indices/get_alias.rb +47 -22
  90. data/lib/elasticsearch/api/actions/indices/get_field_mapping.rb +59 -37
  91. data/lib/elasticsearch/api/actions/indices/get_index_template.rb +66 -0
  92. data/lib/elasticsearch/api/actions/indices/get_mapping.rb +57 -32
  93. data/lib/elasticsearch/api/actions/indices/get_settings.rb +50 -36
  94. data/lib/elasticsearch/api/actions/indices/get_template.rb +40 -22
  95. data/lib/elasticsearch/api/actions/indices/get_upgrade.rb +62 -0
  96. data/lib/elasticsearch/api/actions/indices/open.rb +40 -20
  97. data/lib/elasticsearch/api/actions/indices/params_registry.rb +20 -4
  98. data/lib/elasticsearch/api/actions/indices/put_alias.rb +43 -26
  99. data/lib/elasticsearch/api/actions/indices/put_index_template.rb +66 -0
  100. data/lib/elasticsearch/api/actions/indices/put_mapping.rb +58 -40
  101. data/lib/elasticsearch/api/actions/indices/put_settings.rb +46 -36
  102. data/lib/elasticsearch/api/actions/indices/put_template.rb +40 -24
  103. data/lib/elasticsearch/api/actions/indices/recovery.rb +38 -22
  104. data/lib/elasticsearch/api/actions/indices/refresh.rb +39 -25
  105. data/lib/elasticsearch/api/actions/indices/resolve_index.rb +60 -0
  106. data/lib/elasticsearch/api/actions/indices/rollover.rb +47 -18
  107. data/lib/elasticsearch/api/actions/indices/segments.rb +40 -16
  108. data/lib/elasticsearch/api/actions/indices/shard_stores.rb +41 -13
  109. data/lib/elasticsearch/api/actions/indices/shrink.rb +40 -17
  110. data/lib/elasticsearch/api/actions/indices/simulate_index_template.rb +65 -0
  111. data/lib/elasticsearch/api/actions/indices/simulate_template.rb +67 -0
  112. data/lib/elasticsearch/api/actions/indices/split.rb +40 -18
  113. data/lib/elasticsearch/api/actions/indices/stats.rb +68 -104
  114. data/lib/elasticsearch/api/actions/indices/unfreeze.rb +24 -7
  115. data/lib/elasticsearch/api/actions/indices/update_aliases.rb +33 -31
  116. data/lib/elasticsearch/api/actions/indices/upgrade.rb +42 -14
  117. data/lib/elasticsearch/api/actions/indices/validate_query.rb +64 -57
  118. data/lib/elasticsearch/api/actions/info.rb +29 -13
  119. data/lib/elasticsearch/api/actions/ingest/delete_pipeline.rb +36 -11
  120. data/lib/elasticsearch/api/actions/ingest/get_pipeline.rb +37 -9
  121. data/lib/elasticsearch/api/actions/ingest/params_registry.rb +20 -4
  122. data/lib/elasticsearch/api/actions/ingest/processor_grok.rb +27 -13
  123. data/lib/elasticsearch/api/actions/ingest/put_pipeline.rb +37 -13
  124. data/lib/elasticsearch/api/actions/ingest/simulate.rb +39 -10
  125. data/lib/elasticsearch/api/actions/mget.rb +55 -43
  126. data/lib/elasticsearch/api/actions/msearch.rb +67 -50
  127. data/lib/elasticsearch/api/actions/msearch_template.rb +62 -29
  128. data/lib/elasticsearch/api/actions/mtermvectors.rb +59 -32
  129. data/lib/elasticsearch/api/actions/nodes/hot_threads.rb +46 -22
  130. data/lib/elasticsearch/api/actions/nodes/info.rb +43 -40
  131. data/lib/elasticsearch/api/actions/nodes/params_registry.rb +20 -4
  132. data/lib/elasticsearch/api/actions/nodes/reload_secure_settings.rb +37 -21
  133. data/lib/elasticsearch/api/actions/nodes/shutdown.rb +22 -5
  134. data/lib/elasticsearch/api/actions/nodes/stats.rb +53 -33
  135. data/lib/elasticsearch/api/actions/nodes/usage.rb +46 -12
  136. data/lib/elasticsearch/api/actions/params_registry.rb +20 -4
  137. data/lib/elasticsearch/api/actions/ping.rb +30 -18
  138. data/lib/elasticsearch/api/actions/put_script.rb +44 -31
  139. data/lib/elasticsearch/api/actions/rank_eval.rb +49 -16
  140. data/lib/elasticsearch/api/actions/reindex.rb +45 -48
  141. data/lib/elasticsearch/api/actions/reindex_rethrottle.rb +36 -11
  142. data/lib/elasticsearch/api/actions/remote/info.rb +18 -2
  143. data/lib/elasticsearch/api/actions/render_search_template.rb +41 -15
  144. data/lib/elasticsearch/api/actions/scripts_painless_execute.rb +38 -14
  145. data/lib/elasticsearch/api/actions/scroll.rb +51 -51
  146. data/lib/elasticsearch/api/actions/search.rb +96 -121
  147. data/lib/elasticsearch/api/actions/search_shards.rb +43 -15
  148. data/lib/elasticsearch/api/actions/search_template.rb +64 -37
  149. data/lib/elasticsearch/api/actions/snapshot/cleanup_repository.rb +58 -0
  150. data/lib/elasticsearch/api/actions/snapshot/clone.rb +66 -0
  151. data/lib/elasticsearch/api/actions/snapshot/create.rb +39 -26
  152. data/lib/elasticsearch/api/actions/snapshot/create_repository.rb +37 -23
  153. data/lib/elasticsearch/api/actions/snapshot/delete.rb +38 -21
  154. data/lib/elasticsearch/api/actions/snapshot/delete_repository.rb +35 -17
  155. data/lib/elasticsearch/api/actions/snapshot/get.rb +40 -29
  156. data/lib/elasticsearch/api/actions/snapshot/get_repository.rb +38 -20
  157. data/lib/elasticsearch/api/actions/snapshot/params_registry.rb +20 -4
  158. data/lib/elasticsearch/api/actions/snapshot/restore.rb +39 -31
  159. data/lib/elasticsearch/api/actions/snapshot/status.rb +41 -21
  160. data/lib/elasticsearch/api/actions/snapshot/verify_repository.rb +36 -12
  161. data/lib/elasticsearch/api/actions/tasks/cancel.rb +39 -12
  162. data/lib/elasticsearch/api/actions/tasks/get.rb +34 -12
  163. data/lib/elasticsearch/api/actions/tasks/list.rb +35 -16
  164. data/lib/elasticsearch/api/actions/tasks/params_registry.rb +20 -4
  165. data/lib/elasticsearch/api/actions/termvectors.rb +71 -65
  166. data/lib/elasticsearch/api/actions/update.rb +68 -72
  167. data/lib/elasticsearch/api/actions/update_by_query.rb +84 -62
  168. data/lib/elasticsearch/api/actions/update_by_query_rethrottle.rb +36 -11
  169. data/lib/elasticsearch/api/namespace/cat.rb +17 -1
  170. data/lib/elasticsearch/api/namespace/cluster.rb +17 -0
  171. data/lib/elasticsearch/api/namespace/common.rb +17 -0
  172. data/lib/elasticsearch/api/namespace/dangling_indices.rb +35 -0
  173. data/lib/elasticsearch/api/namespace/indices.rb +17 -0
  174. data/lib/elasticsearch/api/namespace/ingest.rb +17 -0
  175. data/lib/elasticsearch/api/namespace/nodes.rb +17 -0
  176. data/lib/elasticsearch/api/namespace/remote.rb +17 -0
  177. data/lib/elasticsearch/api/namespace/snapshot.rb +17 -0
  178. data/lib/elasticsearch/api/namespace/tasks.rb +17 -0
  179. data/lib/elasticsearch/api/utils.rb +17 -0
  180. data/lib/elasticsearch/api/version.rb +18 -1
  181. data/lib/elasticsearch/api.rb +22 -2
  182. data/lib/elasticsearch-api.rb +17 -0
  183. data/spec/elasticsearch/api/actions/abort_benchmark_spec.rb +17 -0
  184. data/spec/elasticsearch/api/actions/benchmark_spec.rb +17 -0
  185. data/spec/elasticsearch/api/actions/bulk_spec.rb +17 -0
  186. data/spec/elasticsearch/api/actions/cat/aliases_spec.rb +18 -1
  187. data/spec/elasticsearch/api/actions/cat/allocation_spec.rb +18 -1
  188. data/spec/elasticsearch/api/actions/cat/count_spec.rb +18 -1
  189. data/spec/elasticsearch/api/actions/cat/fielddata_spec.rb +19 -2
  190. data/spec/elasticsearch/api/actions/cat/health_spec.rb +18 -1
  191. data/spec/elasticsearch/api/actions/cat/help_spec.rb +18 -1
  192. data/spec/elasticsearch/api/actions/cat/indices_spec.rb +18 -1
  193. data/spec/elasticsearch/api/actions/cat/master_spec.rb +18 -1
  194. data/spec/elasticsearch/api/actions/cat/nodeattrs_spec.rb +18 -1
  195. data/spec/elasticsearch/api/actions/cat/nodes_spec.rb +18 -1
  196. data/spec/elasticsearch/api/actions/cat/pending_tasks_spec.rb +18 -1
  197. data/spec/elasticsearch/api/actions/cat/plugins_spec.rb +18 -1
  198. data/spec/elasticsearch/api/actions/cat/recovery_spec.rb +18 -1
  199. data/spec/elasticsearch/api/actions/cat/repositories_spec.rb +18 -1
  200. data/spec/elasticsearch/api/actions/cat/segments_spec.rb +36 -5
  201. data/spec/elasticsearch/api/actions/cat/shards_spec.rb +18 -1
  202. data/spec/elasticsearch/api/actions/cat/snapshot_spec.rb +18 -1
  203. data/spec/elasticsearch/api/actions/cat/tasks_spec.rb +18 -1
  204. data/spec/elasticsearch/api/actions/cat/templates_spec.rb +18 -1
  205. data/spec/elasticsearch/api/actions/cat/thread_pool_spec.rb +18 -1
  206. data/spec/elasticsearch/api/actions/clear_scroll_spec.rb +21 -2
  207. data/spec/elasticsearch/api/actions/cluster/allocation_explain_spec.rb +18 -1
  208. data/spec/elasticsearch/api/actions/cluster/get_settings_spec.rb +18 -1
  209. data/spec/elasticsearch/api/actions/cluster/health_spec.rb +20 -3
  210. data/spec/elasticsearch/api/actions/cluster/pending_tasks_spec.rb +18 -1
  211. data/spec/elasticsearch/api/actions/cluster/put_settings_spec.rb +19 -2
  212. data/spec/elasticsearch/api/actions/cluster/remote_info_spec.rb +18 -1
  213. data/spec/elasticsearch/api/actions/cluster/reroute_spec.rb +19 -2
  214. data/spec/elasticsearch/api/actions/cluster/state_spec.rb +19 -2
  215. data/spec/elasticsearch/api/actions/cluster/stats_spec.rb +18 -18
  216. data/spec/elasticsearch/api/actions/count_spec.rb +30 -10
  217. data/spec/elasticsearch/api/actions/create_document_spec.rb +25 -4
  218. data/spec/elasticsearch/api/actions/dangling_indices/delete_dangling_indices_spec.rb +48 -0
  219. data/spec/elasticsearch/api/actions/dangling_indices/import_dangling_indices_spec.rb +48 -0
  220. data/spec/elasticsearch/api/actions/dangling_indices/list_dangling_indices_spec.rb +36 -0
  221. data/spec/elasticsearch/api/actions/delete_by_query_spec.rb +33 -8
  222. data/spec/elasticsearch/api/actions/delete_document_spec.rb +21 -8
  223. data/spec/elasticsearch/api/actions/delete_script_spec.rb +19 -15
  224. data/spec/elasticsearch/api/actions/exists_document_spec.rb +20 -2
  225. data/spec/elasticsearch/api/actions/explain_document_spec.rb +26 -15
  226. data/spec/elasticsearch/api/actions/field_caps_spec.rb +19 -1
  227. data/spec/elasticsearch/api/actions/get_document_source_spec.rb +24 -4
  228. data/spec/elasticsearch/api/actions/get_document_spec.rb +20 -2
  229. data/spec/elasticsearch/api/actions/get_script_spec.rb +25 -14
  230. data/spec/elasticsearch/api/actions/hashie_spec.rb +17 -0
  231. data/spec/elasticsearch/api/actions/index_document_spec.rb +25 -22
  232. data/spec/elasticsearch/api/actions/indices/add_block_spec.rb +63 -0
  233. data/spec/elasticsearch/api/actions/indices/analyze_spec.rb +24 -12
  234. data/spec/elasticsearch/api/actions/indices/clear_cache_spec.rb +8 -8
  235. data/spec/elasticsearch/api/actions/indices/clone_spec.rb +122 -0
  236. data/spec/elasticsearch/api/actions/indices/close_spec.rb +18 -1
  237. data/spec/elasticsearch/api/actions/indices/create_spec.rb +18 -1
  238. data/spec/elasticsearch/api/actions/indices/delete_alias_spec.rb +20 -3
  239. data/spec/elasticsearch/api/actions/indices/delete_spec.rb +18 -1
  240. data/spec/elasticsearch/api/actions/indices/delete_template_spec.rb +18 -1
  241. data/spec/elasticsearch/api/actions/indices/exists_alias_spec.rb +18 -1
  242. data/spec/elasticsearch/api/actions/indices/exists_spec.rb +18 -1
  243. data/spec/elasticsearch/api/actions/indices/exists_template_spec.rb +18 -1
  244. data/spec/elasticsearch/api/actions/indices/exists_type_spec.rb +18 -1
  245. data/spec/elasticsearch/api/actions/indices/flush_spec.rb +18 -1
  246. data/spec/elasticsearch/api/actions/indices/flush_synced_spec.rb +18 -1
  247. data/spec/elasticsearch/api/actions/indices/forcemerge_spec.rb +18 -1
  248. data/spec/elasticsearch/api/actions/indices/freeze_spec.rb +85 -0
  249. data/spec/elasticsearch/api/actions/indices/get_alias_spec.rb +18 -1
  250. data/spec/elasticsearch/api/actions/indices/get_field_mapping_spec.rb +18 -1
  251. data/spec/elasticsearch/api/actions/indices/get_mapping_spec.rb +18 -1
  252. data/spec/elasticsearch/api/actions/indices/get_settings_spec.rb +18 -1
  253. data/spec/elasticsearch/api/actions/indices/get_spec.rb +18 -12
  254. data/spec/elasticsearch/api/actions/indices/open_spec.rb +18 -1
  255. data/spec/elasticsearch/api/actions/indices/put_alias_spec.rb +21 -4
  256. data/spec/elasticsearch/api/actions/indices/put_mapping_spec.rb +21 -4
  257. data/spec/elasticsearch/api/actions/indices/put_settings_spec.rb +33 -1
  258. data/spec/elasticsearch/api/actions/indices/put_template_spec.rb +18 -1
  259. data/spec/elasticsearch/api/actions/indices/recovery_spec.rb +18 -1
  260. data/spec/elasticsearch/api/actions/indices/refresh_spec.rb +18 -1
  261. data/spec/elasticsearch/api/actions/indices/rollover_spec.rb +18 -1
  262. data/spec/elasticsearch/api/actions/indices/segments_spec.rb +18 -1
  263. data/spec/elasticsearch/api/actions/indices/shard_stores_spec.rb +18 -1
  264. data/spec/elasticsearch/api/actions/indices/shrink_spec.rb +18 -1
  265. data/spec/elasticsearch/api/actions/indices/split_spec.rb +18 -1
  266. data/spec/elasticsearch/api/actions/indices/stats_spec.rb +124 -0
  267. data/spec/elasticsearch/api/actions/indices/unfreeze_spec.rb +85 -0
  268. data/spec/elasticsearch/api/actions/indices/update_aliases_spec.rb +18 -1
  269. data/spec/elasticsearch/api/actions/indices/upgrade_spec.rb +18 -1
  270. data/spec/elasticsearch/api/actions/indices/validate_query_spec.rb +24 -13
  271. data/spec/elasticsearch/api/actions/info_spec.rb +19 -1
  272. data/spec/elasticsearch/api/actions/ingest/delete_pipeline_spec.rb +18 -1
  273. data/spec/elasticsearch/api/actions/ingest/get_pipeline_spec.rb +18 -1
  274. data/spec/elasticsearch/api/actions/ingest/put_pipeline_spec.rb +18 -1
  275. data/spec/elasticsearch/api/actions/ingest/simulate_spec.rb +23 -7
  276. data/spec/elasticsearch/api/actions/json_builders_spec.rb +27 -11
  277. data/spec/elasticsearch/api/actions/mget_spec.rb +22 -5
  278. data/spec/elasticsearch/api/actions/msearch_spec.rb +38 -39
  279. data/spec/elasticsearch/api/actions/msearch_template_spec.rb +22 -6
  280. data/spec/elasticsearch/api/actions/mtermvectors_spec.rb +24 -6
  281. data/spec/elasticsearch/api/actions/nodes/hot_threads_spec.rb +21 -4
  282. data/spec/elasticsearch/api/actions/nodes/info_spec.rb +18 -1
  283. data/spec/elasticsearch/api/actions/nodes/reload_secure_settings_spec.rb +24 -10
  284. data/spec/elasticsearch/api/actions/nodes/shutdown_spec.rb +17 -0
  285. data/spec/elasticsearch/api/actions/nodes/stats_spec.rb +18 -1
  286. data/spec/elasticsearch/api/actions/ping_spec.rb +20 -2
  287. data/spec/elasticsearch/api/actions/put_script_spec.rb +39 -15
  288. data/spec/elasticsearch/api/actions/reindex_spec.rb +20 -2
  289. data/spec/elasticsearch/api/actions/remote/info_spec.rb +17 -0
  290. data/spec/elasticsearch/api/actions/render_search_template_spec.rb +44 -9
  291. data/spec/elasticsearch/api/actions/scroll_spec.rb +52 -0
  292. data/spec/elasticsearch/api/actions/search_shards_spec.rb +20 -2
  293. data/spec/elasticsearch/api/actions/search_spec.rb +24 -6
  294. data/spec/elasticsearch/api/actions/search_template_spec.rb +22 -5
  295. data/spec/elasticsearch/api/actions/snapshot/clone_spec.rb +67 -0
  296. data/spec/elasticsearch/api/actions/snapshot/create_repository_spec.rb +18 -1
  297. data/spec/elasticsearch/api/actions/snapshot/create_spec.rb +18 -1
  298. data/spec/elasticsearch/api/actions/snapshot/delete_repository_spec.rb +18 -1
  299. data/spec/elasticsearch/api/actions/snapshot/delete_spec.rb +18 -1
  300. data/spec/elasticsearch/api/actions/snapshot/get_repository_spec.rb +18 -1
  301. data/spec/elasticsearch/api/actions/snapshot/get_spec.rb +18 -1
  302. data/spec/elasticsearch/api/actions/snapshot/restore_spec.rb +18 -1
  303. data/spec/elasticsearch/api/actions/snapshot/status_spec.rb +18 -1
  304. data/spec/elasticsearch/api/actions/snapshot/verify_repository_spec.rb +18 -1
  305. data/spec/elasticsearch/api/actions/tasks/cancel_spec.rb +18 -1
  306. data/spec/elasticsearch/api/actions/tasks/get_spec.rb +18 -1
  307. data/spec/elasticsearch/api/actions/tasks/list_spec.rb +18 -12
  308. data/spec/elasticsearch/api/actions/termvectors_spec.rb +22 -12
  309. data/spec/elasticsearch/api/actions/update_by_query_spec.rb +20 -2
  310. data/spec/elasticsearch/api/actions/update_document_spec.rb +22 -14
  311. data/spec/elasticsearch/api/api_spec.rb +17 -0
  312. data/spec/elasticsearch/api/client_spec.rb +17 -0
  313. data/spec/elasticsearch/api/rest_api_yaml_spec.rb +138 -0
  314. data/spec/elasticsearch/api/utils_spec.rb +18 -1
  315. data/spec/rest_yaml_tests_helper.rb +107 -0
  316. data/spec/spec_helper.rb +33 -34
  317. data/utils/Gemfile +18 -0
  318. data/utils/README.md +41 -0
  319. data/utils/Thorfile +4 -1
  320. data/utils/thor/.rubocop.yml +2 -0
  321. data/utils/thor/generate_source.rb +248 -81
  322. data/utils/thor/generator/endpoint_specifics.rb +181 -0
  323. data/utils/thor/generator/files_helper.rb +60 -0
  324. data/utils/thor/lister.rb +20 -4
  325. data/utils/thor/templates/_documentation_top.erb +39 -0
  326. data/utils/thor/templates/_method_setup.erb +35 -0
  327. data/utils/thor/templates/_params_registry.erb +12 -0
  328. data/utils/thor/templates/_perform_request.erb +38 -0
  329. data/utils/thor/templates/method.erb +73 -0
  330. data/utils/thor/templates/{ruby/test.erb → test.erb} +4 -0
  331. data/utils/thor/templates/{ruby/test_helper.rb → test_helper.rb} +17 -1
  332. metadata +123 -124
  333. data/LICENSE.txt +0 -13
  334. data/lib/elasticsearch/api/actions/count_percolate.rb +0 -82
  335. data/lib/elasticsearch/api/actions/delete_template.rb +0 -21
  336. data/lib/elasticsearch/api/actions/field_stats.rb +0 -36
  337. data/lib/elasticsearch/api/actions/get_template.rb +0 -27
  338. data/lib/elasticsearch/api/actions/indices/delete_mapping.rb +0 -26
  339. data/lib/elasticsearch/api/actions/indices/delete_warmer.rb +0 -32
  340. data/lib/elasticsearch/api/actions/indices/get_aliases.rb +0 -37
  341. data/lib/elasticsearch/api/actions/indices/get_warmer.rb +0 -62
  342. data/lib/elasticsearch/api/actions/indices/optimize.rb +0 -77
  343. data/lib/elasticsearch/api/actions/indices/put_warmer.rb +0 -65
  344. data/lib/elasticsearch/api/actions/indices/seal.rb +0 -24
  345. data/lib/elasticsearch/api/actions/indices/snapshot_index.rb +0 -44
  346. data/lib/elasticsearch/api/actions/indices/status.rb +0 -63
  347. data/lib/elasticsearch/api/actions/list_benchmarks.rb +0 -27
  348. data/lib/elasticsearch/api/actions/mlt.rb +0 -130
  349. data/lib/elasticsearch/api/actions/mpercolate.rb +0 -62
  350. data/lib/elasticsearch/api/actions/percolate.rb +0 -73
  351. data/lib/elasticsearch/api/actions/put_template.rb +0 -25
  352. data/lib/elasticsearch/api/actions/search_exists.rb +0 -63
  353. data/lib/elasticsearch/api/actions/suggest.rb +0 -49
  354. data/spec/elasticsearch/api/actions/count_percolate_spec.rb +0 -17
  355. data/spec/elasticsearch/api/actions/delete_template_spec.rb +0 -17
  356. data/spec/elasticsearch/api/actions/field_stats_spec.rb +0 -17
  357. data/spec/elasticsearch/api/actions/get_template_spec.rb +0 -52
  358. data/spec/elasticsearch/api/actions/indices/delete_mapping_spec.rb +0 -77
  359. data/spec/elasticsearch/api/actions/indices/delete_warmer_spec.rb +0 -86
  360. data/spec/elasticsearch/api/actions/indices/get_aliases_spec.rb +0 -55
  361. data/spec/elasticsearch/api/actions/indices/get_template_spec.rb +0 -59
  362. data/spec/elasticsearch/api/actions/indices/get_warmer_spec.rb +0 -48
  363. data/spec/elasticsearch/api/actions/indices/optimize_spec.rb +0 -63
  364. data/spec/elasticsearch/api/actions/indices/put_warmer_spec.rb +0 -101
  365. data/spec/elasticsearch/api/actions/indices/seal_spec.rb +0 -18
  366. data/spec/elasticsearch/api/actions/indices/snapshot_index_spec.rb +0 -89
  367. data/spec/elasticsearch/api/actions/indices/status_spec.rb +0 -92
  368. data/spec/elasticsearch/api/actions/list_benchmarks_spec.rb +0 -17
  369. data/spec/elasticsearch/api/actions/mlt_spec.rb +0 -130
  370. data/spec/elasticsearch/api/actions/mpercolate_spec.rb +0 -49
  371. data/spec/elasticsearch/api/actions/percolate_spec.rb +0 -67
  372. data/spec/elasticsearch/api/actions/put_template_spec.rb +0 -17
  373. data/spec/elasticsearch/api/actions/scoll_spec.rb +0 -17
  374. data/spec/elasticsearch/api/actions/search_exists_spec.rb +0 -63
  375. data/spec/elasticsearch/api/actions/suggest_spec.rb +0 -77
  376. data/test/integration/yaml_test_runner.rb +0 -546
  377. data/test/test_helper.rb +0 -42
  378. data/utils/thor/generate_api.rb +0 -189
  379. data/utils/thor/templates/ruby/method.erb +0 -60
@@ -1,35 +1,59 @@
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
1
18
  module Elasticsearch
2
19
  module API
3
20
  module Ingest
4
21
  module Actions
5
-
6
- # Add or update a specified pipeline
22
+ # Creates or updates a pipeline.
7
23
  #
8
- # @option arguments [String] :id Pipeline ID (*Required*)
9
- # @option arguments [Hash] :body The ingest definition (*Required*)
24
+ # @option arguments [String] :id Pipeline ID
10
25
  # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
11
26
  # @option arguments [Time] :timeout Explicit operation timeout
27
+ # @option arguments [Hash] :headers Custom HTTP headers
28
+ # @option arguments [Hash] :body The ingest definition (*Required*)
12
29
  #
13
- # @see https://www.elastic.co/guide/en/elasticsearch/plugins/current/ingest.html
30
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.10/put-pipeline-api.html
14
31
  #
15
- def put_pipeline(arguments={})
16
- raise ArgumentError, "Required argument 'id' missing" unless arguments[:id]
32
+ def put_pipeline(arguments = {})
17
33
  raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]
18
- method = 'PUT'
19
- path = Utils.__pathify "_ingest/pipeline", Utils.__escape(arguments[:id])
34
+ raise ArgumentError, "Required argument 'id' missing" unless arguments[:id]
35
+
36
+ headers = arguments.delete(:headers) || {}
37
+
38
+ arguments = arguments.clone
39
+
40
+ _id = arguments.delete(:id)
20
41
 
42
+ method = Elasticsearch::API::HTTP_PUT
43
+ path = "_ingest/pipeline/#{Utils.__listify(_id)}"
21
44
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
22
- body = arguments[:body]
23
45
 
24
- perform_request(method, path, params, body).body
46
+ body = arguments[:body]
47
+ perform_request(method, path, params, body, headers).body
25
48
  end
26
49
 
27
50
  # Register this action with its valid params when the module is loaded.
28
51
  #
29
52
  # @since 6.2.0
30
53
  ParamsRegistry.register(:put_pipeline, [
31
- :master_timeout,
32
- :timeout ].freeze)
54
+ :master_timeout,
55
+ :timeout
56
+ ].freeze)
33
57
  end
34
58
  end
35
59
  end
@@ -1,31 +1,60 @@
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
1
18
  module Elasticsearch
2
19
  module API
3
20
  module Ingest
4
21
  module Actions
5
-
6
- # Execute a specific pipeline against the set of documents provided in the body of the request
22
+ # Allows to simulate a pipeline with example documents.
7
23
  #
8
24
  # @option arguments [String] :id Pipeline ID
9
- # @option arguments [Hash] :body The simulate definition (*Required*)
10
25
  # @option arguments [Boolean] :verbose Verbose mode. Display data output for each processor in executed pipeline
26
+ # @option arguments [Hash] :headers Custom HTTP headers
27
+ # @option arguments [Hash] :body The simulate definition (*Required*)
11
28
  #
12
- # @see https://www.elastic.co/guide/en/elasticsearch/plugins/current/ingest.html
29
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.10/simulate-pipeline-api.html
13
30
  #
14
- def simulate(arguments={})
31
+ def simulate(arguments = {})
15
32
  raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]
16
- method = 'GET'
17
- path = Utils.__pathify "_ingest/pipeline", Utils.__escape(arguments[:id]), '_simulate'
33
+
34
+ headers = arguments.delete(:headers) || {}
35
+
36
+ arguments = arguments.clone
37
+
38
+ _id = arguments.delete(:id)
39
+
40
+ method = Elasticsearch::API::HTTP_POST
41
+ path = if _id
42
+ "_ingest/pipeline/#{Utils.__listify(_id)}/_simulate"
43
+ else
44
+ "_ingest/pipeline/_simulate"
45
+ end
18
46
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
19
- body = arguments[:body]
20
47
 
21
- perform_request(method, path, params, body).body
48
+ body = arguments[:body]
49
+ perform_request(method, path, params, body, headers).body
22
50
  end
23
51
 
24
52
  # Register this action with its valid params when the module is loaded.
25
53
  #
26
54
  # @since 6.2.0
27
55
  ParamsRegistry.register(:simulate, [
28
- :verbose ].freeze)
56
+ :verbose
57
+ ].freeze)
29
58
  end
30
59
  end
31
60
  end
@@ -1,33 +1,27 @@
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
1
18
  module Elasticsearch
2
19
  module API
3
20
  module Actions
4
-
5
- # Return multiple documents from one or more indices in a single request.
6
- #
7
- # Pass the request definition in the `:body` argument, either as an Array of `docs` specifications,
8
- # or `ids`, when the `:index` and document `:type` are specified.
9
- #
10
- # @example Get multiple documents fully specified in the `docs` definition
11
- #
12
- # client.mget body: {
13
- # docs: [
14
- # { _index: 'myindex', _type: 'mytype', _id: '1' },
15
- # { _index: 'myindex', _type: 'mytype', _id: '2' },
16
- # { _index: 'myindex', _type: 'mytype', _id: '3' }
17
- # ]
18
- # }
19
- #
20
- # @example Get multiple documents specified by `ids` while passing `:index` and `:type`
21
- #
22
- # client.mget index: 'myindex', type: 'mytype', body: { ids: ['1', '2', '3'] }
23
- #
24
- # @example Get only specific fields from documents
25
- #
26
- # client.mget index: 'myindex', type: 'mytype', body: { ids: ['1', '2', '3'] }, fields: ['title']
21
+ # Allows to get multiple documents in one request.
27
22
  #
28
23
  # @option arguments [String] :index The name of the index
29
- # @option arguments [String] :type The type of the document
30
- # @option arguments [Hash] :body Document identifiers; can be either `docs` (containing full document information) or `ids` (when index and type is provided in the URL. (*Required*)
24
+ # @option arguments [String] :type The type of the document *Deprecated*
31
25
  # @option arguments [List] :stored_fields A comma-separated list of stored fields to return in the response
32
26
  # @option arguments [String] :preference Specify the node or shard the operation should be performed on (default: random)
33
27
  # @option arguments [Boolean] :realtime Specify whether to perform the operation in realtime or search mode
@@ -36,36 +30,54 @@ module Elasticsearch
36
30
  # @option arguments [List] :_source True or false to return the _source field or not, or a list of fields to return
37
31
  # @option arguments [List] :_source_excludes A list of fields to exclude from the returned _source field
38
32
  # @option arguments [List] :_source_includes A list of fields to extract and return from the _source field
33
+ # @option arguments [Hash] :headers Custom HTTP headers
34
+ # @option arguments [Hash] :body Document identifiers; can be either `docs` (containing full document information) or `ids` (when index and type is provided in the URL. (*Required*)
35
+ #
36
+ # *Deprecation notice*:
37
+ # Specifying types in urls has been deprecated
38
+ # Deprecated since version 7.0.0
39
39
  #
40
- # @see http://elasticsearch.org/guide/reference/api/multi-get/
41
40
  #
42
- def mget(arguments={})
41
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.10/docs-multi-get.html
42
+ #
43
+ def mget(arguments = {})
43
44
  raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]
44
- method = HTTP_GET
45
- path = Utils.__pathify Utils.__escape(arguments[:index]),
46
- Utils.__escape(arguments[:type]),
47
- '_mget'
48
45
 
49
- params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
50
- body = arguments[:body]
46
+ headers = arguments.delete(:headers) || {}
51
47
 
52
- params[:fields] = Utils.__listify(params[:fields]) if params[:fields]
48
+ arguments = arguments.clone
49
+
50
+ _index = arguments.delete(:index)
51
+
52
+ _type = arguments.delete(:type)
53
+
54
+ method = Elasticsearch::API::HTTP_POST
55
+ path = if _index && _type
56
+ "#{Utils.__listify(_index)}/#{Utils.__listify(_type)}/_mget"
57
+ elsif _index
58
+ "#{Utils.__listify(_index)}/_mget"
59
+ else
60
+ "_mget"
61
+ end
62
+ params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
53
63
 
54
- perform_request(method, path, params, body).body
64
+ body = arguments[:body]
65
+ perform_request(method, path, params, body, headers).body
55
66
  end
56
67
 
57
68
  # Register this action with its valid params when the module is loaded.
58
69
  #
59
70
  # @since 6.2.0
60
71
  ParamsRegistry.register(:mget, [
61
- :stored_fields,
62
- :preference,
63
- :realtime,
64
- :refresh,
65
- :routing,
66
- :_source,
67
- :_source_excludes,
68
- :_source_includes ].freeze)
72
+ :stored_fields,
73
+ :preference,
74
+ :realtime,
75
+ :refresh,
76
+ :routing,
77
+ :_source,
78
+ :_source_excludes,
79
+ :_source_includes
80
+ ].freeze)
69
81
  end
70
82
  end
71
83
  end
@@ -1,63 +1,78 @@
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
1
18
  module Elasticsearch
2
19
  module API
3
20
  module Actions
4
-
5
- # Perform multiple search operations in a single request.
6
- #
7
- # Pass the search definitions in the `:body` argument
8
- #
9
- # @example Perform multiple different searches as `:search`
10
- #
11
- # client.msearch \
12
- # body: [
13
- # { search: { query: { match_all: {} } } },
14
- # { index: 'myindex', type: 'mytype', search: { query: { query_string: { query: '"Test 1"' } } } },
15
- # { search_type: 'count', search: { aggregations: { published: { terms: { field: 'published' } } } } }
16
- # ]
17
- #
18
- # @example Perform multiple different searches as an array of meta/data pairs
19
- #
20
- # client.msearch \
21
- # body: [
22
- # { query: { match_all: {} } },
23
- # { index: 'myindex', type: 'mytype' },
24
- # { query: { query_string: { query: '"Test 1"' } } },
25
- # { search_type: 'query_then_fetch' },
26
- # { aggregations: { published: { terms: { field: 'published' } } } }
27
- # ]
21
+ # Allows to execute several search operations in one request.
28
22
  #
29
23
  # @option arguments [List] :index A comma-separated list of index names to use as default
30
24
  # @option arguments [List] :type A comma-separated list of document types to use as default
31
- # @option arguments [Hash] :body The request definitions (metadata-search request definition pairs), separated by newlines (*Required*)
32
25
  # @option arguments [String] :search_type Search operation type (options: query_then_fetch, query_and_fetch, dfs_query_then_fetch, dfs_query_and_fetch)
33
26
  # @option arguments [Number] :max_concurrent_searches Controls the maximum number of concurrent searches the multi search api will execute
34
27
  # @option arguments [Boolean] :typed_keys Specify whether aggregation and suggester names should be prefixed by their respective types in the response
35
- # @option arguments [Number] :pre_filter_shard_size A threshold that enforces a pre-filter roundtrip to prefilter search shards based on query rewriting if the number of shards the search request expands to exceeds the threshold. This filter roundtrip can limit the number of shards significantly if for instance a shard can not match any documents based on it's rewrite method ie. if date filters are mandatory to match but the shard bounds and the query are disjoint.
36
- # @option arguments [Number] :max_concurrent_shard_requests The number of concurrent shard requests each sub search executes concurrently. This value should be used to limit the impact of the search on the cluster in order to limit the number of concurrent shard requests
37
- # @option arguments [Boolean] :rest_total_hits_as_int This parameter is ignored in this version. It is used in the next major version to control whether the rest response should render the total.hits as an object or a number
28
+ # @option arguments [Number] :pre_filter_shard_size A threshold that enforces a pre-filter roundtrip to prefilter search shards based on query rewriting if the number of shards the search request expands to exceeds the threshold. This filter roundtrip can limit the number of shards significantly if for instance a shard can not match any documents based on its rewrite method ie. if date filters are mandatory to match but the shard bounds and the query are disjoint.
29
+ # @option arguments [Number] :max_concurrent_shard_requests The number of concurrent shard requests each sub search executes concurrently per node. This value should be used to limit the impact of the search on the cluster in order to limit the number of concurrent shard requests
30
+ # @option arguments [Boolean] :rest_total_hits_as_int Indicates whether hits.total should be rendered as an integer or an object in the rest search response
31
+ # @option arguments [Boolean] :ccs_minimize_roundtrips Indicates whether network round-trips should be minimized as part of cross-cluster search requests execution
32
+ # @option arguments [Hash] :headers Custom HTTP headers
33
+ # @option arguments [Hash] :body The request definitions (metadata-search request definition pairs), separated by newlines (*Required*)
38
34
  #
39
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-multi-search.html
35
+ # *Deprecation notice*:
36
+ # Specifying types in urls has been deprecated
37
+ # Deprecated since version 7.0.0
40
38
  #
41
- def msearch(arguments={})
39
+ #
40
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-multi-search.html
41
+ #
42
+ def msearch(arguments = {})
42
43
  raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]
43
- method = HTTP_GET
44
- path = Utils.__pathify( Utils.__listify(arguments[:index]), Utils.__listify(arguments[:type]), '_msearch' )
45
44
 
45
+ headers = arguments.delete(:headers) || {}
46
+
47
+ arguments = arguments.clone
48
+
49
+ _index = arguments.delete(:index)
50
+
51
+ _type = arguments.delete(:type)
52
+
53
+ method = Elasticsearch::API::HTTP_POST
54
+ path = if _index && _type
55
+ "#{Utils.__listify(_index)}/#{Utils.__listify(_type)}/_msearch"
56
+ elsif _index
57
+ "#{Utils.__listify(_index)}/_msearch"
58
+ else
59
+ "_msearch"
60
+ end
46
61
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
47
- body = arguments[:body]
48
62
 
63
+ body = arguments[:body]
49
64
  case
50
65
  when body.is_a?(Array) && body.any? { |d| d.has_key? :search }
51
- payload = body.
52
- inject([]) do |sum, item|
53
- meta = item
54
- data = meta.delete(:search)
66
+ payload = body
67
+ .inject([]) do |sum, item|
68
+ meta = item
69
+ data = meta.delete(:search)
55
70
 
56
- sum << meta
57
- sum << data
58
- sum
59
- end.
60
- map { |item| Elasticsearch::API.serializer.dump(item) }
71
+ sum << meta
72
+ sum << data
73
+ sum
74
+ end
75
+ .map { |item| Elasticsearch::API.serializer.dump(item) }
61
76
  payload << "" unless payload.empty?
62
77
  payload = payload.join("\n")
63
78
  when body.is_a?(Array)
@@ -68,20 +83,22 @@ module Elasticsearch
68
83
  payload = body
69
84
  end
70
85
 
71
- perform_request(method, path, params, payload, {"Content-Type" => "application/x-ndjson"}).body
86
+ headers.merge!("Content-Type" => "application/x-ndjson")
87
+ perform_request(method, path, params, payload, headers).body
72
88
  end
73
89
 
74
-
75
90
  # Register this action with its valid params when the module is loaded.
76
91
  #
77
92
  # @since 6.2.0
78
93
  ParamsRegistry.register(:msearch, [
79
- :search_type,
80
- :max_concurrent_searches,
81
- :typed_keys,
82
- :pre_filter_shard_size,
83
- :max_concurrent_shard_requests,
84
- :rest_total_hits_as_int ].freeze)
94
+ :search_type,
95
+ :max_concurrent_searches,
96
+ :typed_keys,
97
+ :pre_filter_shard_size,
98
+ :max_concurrent_shard_requests,
99
+ :rest_total_hits_as_int,
100
+ :ccs_minimize_roundtrips
101
+ ].freeze)
85
102
  end
86
103
  end
87
104
  end
@@ -1,55 +1,88 @@
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
1
18
  module Elasticsearch
2
19
  module API
3
20
  module Actions
4
-
5
- # Execute several search requests using templates (inline, indexed or stored in a file)
6
- #
7
- # @example Search with an inline script
8
- #
9
- # client.msearch_template body: [
10
- # { index: 'test' },
11
- # { inline: { query: { match: { title: '{{q}}' } } }, params: { q: 'foo'} }
12
- # ]
21
+ # Allows to execute several search template operations in one request.
13
22
  #
14
23
  # @option arguments [List] :index A comma-separated list of index names to use as default
15
24
  # @option arguments [List] :type A comma-separated list of document types to use as default
16
- # @option arguments [Hash] :body The request definitions (metadata-search request definition pairs), separated by newlines (*Required*)
17
25
  # @option arguments [String] :search_type Search operation type (options: query_then_fetch, query_and_fetch, dfs_query_then_fetch, dfs_query_and_fetch)
18
26
  # @option arguments [Boolean] :typed_keys Specify whether aggregation and suggester names should be prefixed by their respective types in the response
19
27
  # @option arguments [Number] :max_concurrent_searches Controls the maximum number of concurrent searches the multi search api will execute
20
- # @option arguments [Boolean] :rest_total_hits_as_int This parameter is ignored in this version. It is used in the next major version to control whether the rest response should render the total.hits as an object or a number
28
+ # @option arguments [Boolean] :rest_total_hits_as_int Indicates whether hits.total should be rendered as an integer or an object in the rest search response
29
+ # @option arguments [Boolean] :ccs_minimize_roundtrips Indicates whether network round-trips should be minimized as part of cross-cluster search requests execution
30
+ # @option arguments [Hash] :headers Custom HTTP headers
31
+ # @option arguments [Hash] :body The request definitions (metadata-search request definition pairs), separated by newlines (*Required*)
32
+ #
33
+ # *Deprecation notice*:
34
+ # Specifying types in urls has been deprecated
35
+ # Deprecated since version 7.0.0
21
36
  #
22
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/multi-search-template.html
23
37
  #
24
- def msearch_template(arguments={})
38
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-multi-search.html
39
+ #
40
+ def msearch_template(arguments = {})
25
41
  raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]
26
- method = HTTP_GET
27
- path = Utils.__pathify Utils.__listify(arguments[:index]),
28
- Utils.__listify(arguments[:type]),
29
- '_msearch/template'
42
+
43
+ headers = arguments.delete(:headers) || {}
44
+
45
+ arguments = arguments.clone
46
+
47
+ _index = arguments.delete(:index)
48
+
49
+ _type = arguments.delete(:type)
50
+
51
+ method = Elasticsearch::API::HTTP_POST
52
+ path = if _index && _type
53
+ "#{Utils.__listify(_index)}/#{Utils.__listify(_type)}/_msearch/template"
54
+ elsif _index
55
+ "#{Utils.__listify(_index)}/_msearch/template"
56
+ else
57
+ "_msearch/template"
58
+ end
30
59
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
31
- body = arguments[:body]
32
60
 
61
+ body = arguments[:body]
33
62
  case
34
- when body.is_a?(Array)
35
- payload = body.map { |d| d.is_a?(String) ? d : Elasticsearch::API.serializer.dump(d) }
36
- payload << "" unless payload.empty?
37
- payload = payload.join("\n")
38
- else
39
- payload = body
63
+ when body.is_a?(Array)
64
+ payload = body.map { |d| d.is_a?(String) ? d : Elasticsearch::API.serializer.dump(d) }
65
+ payload << "" unless payload.empty?
66
+ payload = payload.join("
67
+ ")
68
+ else
69
+ payload = body
40
70
  end
41
71
 
42
- perform_request(method, path, params, payload, {"Content-Type" => "application/x-ndjson"}).body
72
+ headers.merge!("Content-Type" => "application/x-ndjson")
73
+ perform_request(method, path, params, payload, headers).body
43
74
  end
44
75
 
45
76
  # Register this action with its valid params when the module is loaded.
46
77
  #
47
78
  # @since 6.2.0
48
79
  ParamsRegistry.register(:msearch_template, [
49
- :search_type,
50
- :typed_keys,
51
- :max_concurrent_searches,
52
- :rest_total_hits_as_int ].freeze)
80
+ :search_type,
81
+ :typed_keys,
82
+ :max_concurrent_searches,
83
+ :rest_total_hits_as_int,
84
+ :ccs_minimize_roundtrips
85
+ ].freeze)
53
86
  end
54
87
  end
55
88
  end