elasticsearch-api 7.2.0 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (798) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +8 -12
  3. data/README.md +30 -43
  4. data/Rakefile +35 -107
  5. data/api-spec-testing/README.md +118 -0
  6. data/api-spec-testing/logging.rb +28 -0
  7. data/api-spec-testing/rspec_matchers.rb +312 -0
  8. data/api-spec-testing/test_file/action.rb +179 -0
  9. data/api-spec-testing/test_file/task_group.rb +340 -0
  10. data/api-spec-testing/test_file/test.rb +295 -0
  11. data/api-spec-testing/test_file.rb +173 -0
  12. data/api-spec-testing/wipe_cluster.rb +389 -0
  13. data/elasticsearch-api.gemspec +42 -53
  14. data/lib/elasticsearch/api/actions/async_search/delete.rb +51 -0
  15. data/lib/elasticsearch/api/actions/async_search/get.rb +54 -0
  16. data/lib/elasticsearch/api/actions/async_search/status.rb +51 -0
  17. data/lib/elasticsearch/api/actions/async_search/submit.rb +95 -0
  18. data/lib/elasticsearch/api/actions/autoscaling/delete_autoscaling_policy.rb +51 -0
  19. data/lib/elasticsearch/api/actions/autoscaling/get_autoscaling_capacity.rb +46 -0
  20. data/lib/elasticsearch/api/actions/autoscaling/get_autoscaling_policy.rb +51 -0
  21. data/lib/elasticsearch/api/actions/autoscaling/put_autoscaling_policy.rb +53 -0
  22. data/lib/elasticsearch/api/actions/bulk.rb +28 -76
  23. data/lib/elasticsearch/api/actions/cat/aliases.rb +30 -58
  24. data/lib/elasticsearch/api/actions/cat/allocation.rb +30 -55
  25. data/lib/elasticsearch/api/actions/cat/count.rb +23 -50
  26. data/lib/elasticsearch/api/actions/cat/fielddata.rb +25 -38
  27. data/lib/elasticsearch/api/actions/cat/health.rb +21 -41
  28. data/lib/elasticsearch/api/actions/cat/help.rb +16 -15
  29. data/lib/elasticsearch/api/actions/cat/indices.rb +31 -67
  30. data/lib/elasticsearch/api/actions/cat/master.rb +21 -39
  31. data/lib/elasticsearch/api/actions/cat/ml_data_frame_analytics.rb +61 -0
  32. data/lib/elasticsearch/api/actions/cat/ml_datafeeds.rb +61 -0
  33. data/lib/elasticsearch/api/actions/cat/ml_jobs.rb +62 -0
  34. data/lib/elasticsearch/api/actions/cat/ml_trained_models.rb +63 -0
  35. data/lib/elasticsearch/api/actions/cat/nodeattrs.rb +18 -22
  36. data/lib/elasticsearch/api/actions/cat/nodes.rb +23 -50
  37. data/lib/elasticsearch/api/actions/cat/pending_tasks.rb +22 -39
  38. data/lib/elasticsearch/api/actions/cat/plugins.rb +20 -24
  39. data/lib/elasticsearch/api/actions/cat/recovery.rb +29 -61
  40. data/lib/elasticsearch/api/actions/cat/repositories.rb +19 -30
  41. data/lib/elasticsearch/api/actions/cat/segments.rb +25 -27
  42. data/lib/elasticsearch/api/actions/cat/shards.rb +28 -64
  43. data/lib/elasticsearch/api/actions/cat/snapshots.rb +27 -33
  44. data/lib/elasticsearch/api/actions/cat/tasks.rb +24 -27
  45. data/lib/elasticsearch/api/actions/cat/templates.rb +24 -24
  46. data/lib/elasticsearch/api/actions/cat/thread_pool.rb +31 -52
  47. data/lib/elasticsearch/api/actions/cat/transforms.rb +62 -0
  48. data/lib/elasticsearch/api/actions/clear_scroll.rb +27 -9
  49. data/lib/elasticsearch/api/actions/close_point_in_time.rb +45 -0
  50. data/lib/elasticsearch/api/actions/cluster/allocation_explain.rb +23 -19
  51. data/lib/elasticsearch/api/actions/cluster/delete_component_template.rb +53 -0
  52. data/lib/elasticsearch/api/actions/cluster/delete_voting_config_exclusions.rb +47 -0
  53. data/lib/elasticsearch/api/actions/cluster/exists_component_template.rb +55 -0
  54. data/lib/elasticsearch/api/actions/cluster/get_component_template.rb +55 -0
  55. data/lib/elasticsearch/api/actions/cluster/get_settings.rb +19 -24
  56. data/lib/elasticsearch/api/actions/cluster/health.rb +31 -52
  57. data/lib/elasticsearch/api/actions/cluster/pending_tasks.rb +17 -22
  58. data/lib/elasticsearch/api/actions/cluster/post_voting_config_exclusions.rb +49 -0
  59. data/lib/elasticsearch/api/actions/cluster/put_component_template.rb +56 -0
  60. data/lib/elasticsearch/api/actions/cluster/put_settings.rb +22 -23
  61. data/lib/elasticsearch/api/actions/cluster/remote_info.rb +14 -7
  62. data/lib/elasticsearch/api/actions/cluster/reroute.rb +22 -43
  63. data/lib/elasticsearch/api/actions/cluster/state.rb +31 -47
  64. data/lib/elasticsearch/api/actions/cluster/stats.rb +23 -18
  65. data/lib/elasticsearch/api/actions/count.rb +29 -45
  66. data/lib/elasticsearch/api/actions/create.rb +17 -28
  67. data/lib/elasticsearch/api/actions/cross_cluster_replication/delete_auto_follow_pattern.rb +51 -0
  68. data/lib/elasticsearch/api/actions/cross_cluster_replication/follow.rb +54 -0
  69. data/lib/elasticsearch/api/actions/cross_cluster_replication/follow_info.rb +51 -0
  70. data/lib/elasticsearch/api/actions/cross_cluster_replication/follow_stats.rb +51 -0
  71. data/lib/elasticsearch/api/actions/cross_cluster_replication/forget_follower.rb +53 -0
  72. data/lib/elasticsearch/api/actions/cross_cluster_replication/get_auto_follow_pattern.rb +53 -0
  73. data/lib/elasticsearch/api/actions/cross_cluster_replication/pause_auto_follow_pattern.rb +51 -0
  74. data/lib/elasticsearch/api/actions/cross_cluster_replication/pause_follow.rb +51 -0
  75. data/lib/elasticsearch/api/actions/cross_cluster_replication/put_auto_follow_pattern.rb +53 -0
  76. data/lib/elasticsearch/api/actions/cross_cluster_replication/resume_auto_follow_pattern.rb +51 -0
  77. data/lib/elasticsearch/api/actions/cross_cluster_replication/resume_follow.rb +52 -0
  78. data/lib/elasticsearch/api/actions/cross_cluster_replication/stats.rb +46 -0
  79. data/lib/elasticsearch/api/actions/cross_cluster_replication/unfollow.rb +51 -0
  80. data/lib/elasticsearch/api/actions/dangling_indices/delete_dangling_index.rb +54 -0
  81. data/lib/elasticsearch/api/actions/dangling_indices/import_dangling_index.rb +54 -0
  82. data/lib/elasticsearch/api/actions/dangling_indices/list_dangling_indices.rb +46 -0
  83. data/lib/elasticsearch/api/actions/data_frame_transform_deprecated/delete_transform.rb +59 -0
  84. data/lib/elasticsearch/api/actions/data_frame_transform_deprecated/get_transform.rb +64 -0
  85. data/lib/elasticsearch/api/actions/data_frame_transform_deprecated/get_transform_stats.rb +61 -0
  86. data/lib/elasticsearch/api/actions/data_frame_transform_deprecated/preview_transform.rb +56 -0
  87. data/lib/elasticsearch/api/actions/data_frame_transform_deprecated/put_transform.rb +61 -0
  88. data/lib/elasticsearch/api/actions/data_frame_transform_deprecated/start_transform.rb +59 -0
  89. data/lib/elasticsearch/api/actions/data_frame_transform_deprecated/stop_transform.rb +61 -0
  90. data/lib/elasticsearch/api/actions/data_frame_transform_deprecated/update_transform.rb +61 -0
  91. data/lib/elasticsearch/api/actions/delete.rb +30 -43
  92. data/lib/elasticsearch/api/actions/delete_by_query.rb +25 -69
  93. data/lib/elasticsearch/api/actions/{delete_by_rethrottle.rb → delete_by_query_rethrottle.rb} +20 -16
  94. data/lib/elasticsearch/api/actions/delete_script.rb +21 -18
  95. data/lib/elasticsearch/api/actions/enrich/delete_policy.rb +51 -0
  96. data/lib/elasticsearch/api/actions/enrich/execute_policy.rb +52 -0
  97. data/lib/elasticsearch/api/actions/enrich/get_policy.rb +53 -0
  98. data/lib/elasticsearch/api/actions/enrich/put_policy.rb +53 -0
  99. data/lib/elasticsearch/api/actions/enrich/stats.rb +46 -0
  100. data/lib/elasticsearch/api/actions/eql/delete.rb +51 -0
  101. data/lib/elasticsearch/api/actions/eql/get.rb +53 -0
  102. data/lib/elasticsearch/api/actions/eql/get_status.rb +51 -0
  103. data/lib/elasticsearch/api/actions/eql/search.rb +57 -0
  104. data/lib/elasticsearch/api/actions/exists.rb +24 -40
  105. data/lib/elasticsearch/api/actions/exists_source.rb +26 -30
  106. data/lib/elasticsearch/api/actions/explain.rb +28 -55
  107. data/lib/elasticsearch/api/actions/features/get_features.rb +47 -0
  108. data/lib/elasticsearch/api/actions/features/reset_features.rb +50 -0
  109. data/lib/elasticsearch/api/actions/field_caps.rb +31 -26
  110. data/lib/elasticsearch/api/actions/fleet/global_checkpoints.rb +55 -0
  111. data/lib/elasticsearch/api/actions/get.rb +28 -47
  112. data/lib/elasticsearch/api/actions/get_script.rb +22 -19
  113. data/lib/elasticsearch/api/actions/get_script_context.rb +44 -0
  114. data/lib/elasticsearch/api/actions/{abort_benchmark.rb → get_script_languages.rb} +16 -14
  115. data/lib/elasticsearch/api/actions/get_source.rb +21 -50
  116. data/lib/elasticsearch/api/actions/graph/explore.rb +59 -0
  117. data/lib/elasticsearch/api/actions/index.rb +40 -97
  118. data/lib/elasticsearch/api/actions/index_lifecycle_management/delete_lifecycle.rb +51 -0
  119. data/lib/elasticsearch/api/actions/index_lifecycle_management/explain_lifecycle.rb +53 -0
  120. data/lib/elasticsearch/api/actions/index_lifecycle_management/get_lifecycle.rb +53 -0
  121. data/lib/elasticsearch/api/actions/index_lifecycle_management/get_status.rb +46 -0
  122. data/lib/elasticsearch/api/actions/index_lifecycle_management/migrate_to_data_tiers.rb +48 -0
  123. data/lib/elasticsearch/api/actions/index_lifecycle_management/move_to_step.rb +52 -0
  124. data/lib/elasticsearch/api/actions/index_lifecycle_management/put_lifecycle.rb +52 -0
  125. data/lib/elasticsearch/api/actions/index_lifecycle_management/remove_policy.rb +51 -0
  126. data/lib/elasticsearch/api/actions/index_lifecycle_management/retry.rb +51 -0
  127. data/lib/elasticsearch/api/actions/index_lifecycle_management/start.rb +46 -0
  128. data/lib/elasticsearch/api/actions/index_lifecycle_management/stop.rb +46 -0
  129. data/lib/elasticsearch/api/actions/indices/add_block.rb +60 -0
  130. data/lib/elasticsearch/api/actions/indices/analyze.rb +27 -54
  131. data/lib/elasticsearch/api/actions/indices/clear_cache.rb +23 -47
  132. data/lib/elasticsearch/api/actions/indices/clone.rb +59 -0
  133. data/lib/elasticsearch/api/actions/indices/close.rb +25 -38
  134. data/lib/elasticsearch/api/actions/indices/create.rb +23 -77
  135. data/lib/elasticsearch/api/actions/indices/create_data_stream.rb +51 -0
  136. data/lib/elasticsearch/api/actions/indices/data_streams_stats.rb +53 -0
  137. data/lib/elasticsearch/api/actions/indices/delete.rb +27 -42
  138. data/lib/elasticsearch/api/actions/indices/delete_alias.rb +27 -26
  139. data/lib/elasticsearch/api/actions/indices/delete_data_stream.rb +52 -0
  140. data/lib/elasticsearch/api/actions/indices/delete_index_template.rb +53 -0
  141. data/lib/elasticsearch/api/actions/indices/delete_template.rb +25 -26
  142. data/lib/elasticsearch/api/actions/indices/disk_usage.rb +60 -0
  143. data/lib/elasticsearch/api/actions/indices/exists.rb +26 -39
  144. data/lib/elasticsearch/api/actions/indices/exists_alias.rb +29 -34
  145. data/lib/elasticsearch/api/actions/indices/exists_index_template.rb +56 -0
  146. data/lib/elasticsearch/api/actions/indices/exists_template.rb +19 -20
  147. data/lib/elasticsearch/api/actions/indices/exists_type.rb +25 -34
  148. data/lib/elasticsearch/api/actions/indices/field_usage_stats.rb +59 -0
  149. data/lib/elasticsearch/api/actions/indices/flush.rb +26 -33
  150. data/lib/elasticsearch/api/actions/indices/forcemerge.rb +22 -46
  151. data/lib/elasticsearch/api/actions/indices/get.rb +18 -24
  152. data/lib/elasticsearch/api/actions/indices/get_alias.rb +30 -29
  153. data/lib/elasticsearch/api/actions/indices/get_data_stream.rb +54 -0
  154. data/lib/elasticsearch/api/actions/indices/get_field_mapping.rb +27 -45
  155. data/lib/elasticsearch/api/actions/indices/get_index_template.rb +56 -0
  156. data/lib/elasticsearch/api/actions/indices/get_mapping.rb +24 -38
  157. data/lib/elasticsearch/api/actions/indices/get_settings.rb +30 -43
  158. data/lib/elasticsearch/api/actions/indices/get_template.rb +22 -30
  159. data/lib/elasticsearch/api/actions/indices/migrate_to_data_stream.rb +51 -0
  160. data/lib/elasticsearch/api/actions/indices/modify_data_stream.rb +49 -0
  161. data/lib/elasticsearch/api/actions/indices/open.rb +20 -26
  162. data/lib/elasticsearch/api/actions/indices/promote_data_stream.rb +51 -0
  163. data/lib/elasticsearch/api/actions/indices/put_alias.rb +28 -33
  164. data/lib/elasticsearch/api/actions/indices/put_index_template.rb +56 -0
  165. data/lib/elasticsearch/api/actions/indices/put_mapping.rb +24 -46
  166. data/lib/elasticsearch/api/actions/indices/put_settings.rb +26 -43
  167. data/lib/elasticsearch/api/actions/indices/put_template.rb +22 -32
  168. data/lib/elasticsearch/api/actions/indices/recovery.rb +22 -28
  169. data/lib/elasticsearch/api/actions/indices/refresh.rb +23 -32
  170. data/lib/elasticsearch/api/actions/indices/{flush_synced.rb → reload_search_analyzers.rb} +23 -23
  171. data/lib/elasticsearch/api/actions/indices/resolve_index.rb +52 -0
  172. data/lib/elasticsearch/api/actions/indices/rollover.rb +29 -27
  173. data/lib/elasticsearch/api/actions/indices/segments.rb +23 -23
  174. data/lib/elasticsearch/api/actions/indices/shard_stores.rb +24 -20
  175. data/lib/elasticsearch/api/actions/indices/shrink.rb +23 -23
  176. data/lib/elasticsearch/api/actions/indices/simulate_index_template.rb +55 -0
  177. data/lib/elasticsearch/api/actions/indices/simulate_template.rb +57 -0
  178. data/lib/elasticsearch/api/actions/indices/split.rb +22 -22
  179. data/lib/elasticsearch/api/actions/indices/stats.rb +39 -117
  180. data/lib/elasticsearch/api/actions/indices/unfreeze.rb +41 -18
  181. data/lib/elasticsearch/api/actions/indices/update_aliases.rb +18 -38
  182. data/lib/elasticsearch/api/actions/indices/validate_query.rb +29 -64
  183. data/lib/elasticsearch/api/actions/info.rb +16 -8
  184. data/lib/elasticsearch/api/actions/ingest/delete_pipeline.rb +21 -18
  185. data/lib/elasticsearch/api/actions/ingest/geo_ip_stats.rb +46 -0
  186. data/lib/elasticsearch/api/actions/ingest/get_pipeline.rb +25 -16
  187. data/lib/elasticsearch/api/actions/ingest/processor_grok.rb +30 -13
  188. data/lib/elasticsearch/api/actions/ingest/put_pipeline.rb +22 -20
  189. data/lib/elasticsearch/api/actions/ingest/simulate.rb +25 -17
  190. data/lib/elasticsearch/api/actions/knn_search.rb +60 -0
  191. data/lib/elasticsearch/api/actions/license/delete.rb +46 -0
  192. data/lib/elasticsearch/api/actions/license/get.rb +48 -0
  193. data/lib/elasticsearch/api/actions/license/get_basic_status.rb +46 -0
  194. data/lib/elasticsearch/api/actions/license/get_trial_status.rb +46 -0
  195. data/lib/elasticsearch/api/actions/license/post.rb +48 -0
  196. data/lib/elasticsearch/api/actions/license/post_start_basic.rb +47 -0
  197. data/lib/elasticsearch/api/actions/license/post_start_trial.rb +48 -0
  198. data/lib/elasticsearch/api/actions/logstash/delete_pipeline.rb +51 -0
  199. data/lib/elasticsearch/api/actions/logstash/get_pipeline.rb +51 -0
  200. data/lib/elasticsearch/api/actions/logstash/put_pipeline.rb +53 -0
  201. data/lib/elasticsearch/api/actions/machine_learning/close_job.rb +56 -0
  202. data/lib/elasticsearch/api/actions/machine_learning/delete_calendar.rb +51 -0
  203. data/lib/elasticsearch/api/actions/machine_learning/delete_calendar_event.rb +55 -0
  204. data/lib/elasticsearch/api/actions/machine_learning/delete_calendar_job.rb +55 -0
  205. data/lib/elasticsearch/api/actions/machine_learning/delete_data_frame_analytics.rb +53 -0
  206. data/lib/elasticsearch/api/actions/machine_learning/delete_datafeed.rb +52 -0
  207. data/lib/elasticsearch/api/actions/machine_learning/delete_expired_data.rb +56 -0
  208. data/lib/elasticsearch/api/actions/machine_learning/delete_filter.rb +51 -0
  209. data/lib/elasticsearch/api/actions/machine_learning/delete_forecast.rb +60 -0
  210. data/lib/elasticsearch/api/actions/machine_learning/delete_job.rb +53 -0
  211. data/lib/elasticsearch/api/actions/machine_learning/delete_model_snapshot.rb +55 -0
  212. data/lib/elasticsearch/api/actions/machine_learning/delete_trained_model.rb +51 -0
  213. data/lib/elasticsearch/api/actions/machine_learning/delete_trained_model_alias.rb +55 -0
  214. data/lib/elasticsearch/api/actions/machine_learning/estimate_model_memory.rb +49 -0
  215. data/lib/elasticsearch/api/actions/machine_learning/evaluate_data_frame.rb +49 -0
  216. data/lib/elasticsearch/api/actions/machine_learning/explain_data_frame_analytics.rb +59 -0
  217. data/lib/elasticsearch/api/actions/machine_learning/flush_job.rb +57 -0
  218. data/lib/elasticsearch/api/actions/machine_learning/forecast.rb +55 -0
  219. data/lib/elasticsearch/api/actions/machine_learning/get_buckets.rb +73 -0
  220. data/lib/elasticsearch/api/actions/machine_learning/get_calendar_events.rb +56 -0
  221. data/lib/elasticsearch/api/actions/machine_learning/get_calendars.rb +61 -0
  222. data/lib/elasticsearch/api/actions/machine_learning/get_categories.rb +67 -0
  223. data/lib/elasticsearch/api/actions/machine_learning/get_data_frame_analytics.rb +57 -0
  224. data/lib/elasticsearch/api/actions/machine_learning/get_data_frame_analytics_stats.rb +57 -0
  225. data/lib/elasticsearch/api/actions/machine_learning/get_datafeed_stats.rb +55 -0
  226. data/lib/elasticsearch/api/actions/machine_learning/get_datafeeds.rb +56 -0
  227. data/lib/elasticsearch/api/actions/machine_learning/get_filters.rb +55 -0
  228. data/lib/elasticsearch/api/actions/machine_learning/get_influencers.rb +65 -0
  229. data/lib/elasticsearch/api/actions/machine_learning/get_job_stats.rb +55 -0
  230. data/lib/elasticsearch/api/actions/machine_learning/get_jobs.rb +56 -0
  231. data/lib/elasticsearch/api/actions/machine_learning/get_model_snapshot_upgrade_stats.rb +56 -0
  232. data/lib/elasticsearch/api/actions/machine_learning/get_model_snapshots.rb +70 -0
  233. data/lib/elasticsearch/api/actions/machine_learning/get_overall_buckets.rb +65 -0
  234. data/lib/elasticsearch/api/actions/machine_learning/get_records.rb +65 -0
  235. data/lib/elasticsearch/api/actions/machine_learning/get_trained_model_deployment_stats.rb +51 -0
  236. data/lib/elasticsearch/api/actions/machine_learning/get_trained_models.rb +61 -0
  237. data/lib/elasticsearch/api/actions/machine_learning/get_trained_models_stats.rb +56 -0
  238. data/lib/elasticsearch/api/actions/machine_learning/infer_trained_model_deployment.rb +58 -0
  239. data/lib/elasticsearch/api/actions/machine_learning/info.rb +46 -0
  240. data/lib/elasticsearch/api/actions/machine_learning/open_job.rb +52 -0
  241. data/lib/elasticsearch/api/actions/machine_learning/post_calendar_events.rb +53 -0
  242. data/lib/elasticsearch/api/actions/machine_learning/post_data.rb +55 -0
  243. data/lib/elasticsearch/api/actions/machine_learning/preview_data_frame_analytics.rb +59 -0
  244. data/lib/elasticsearch/api/actions/machine_learning/preview_datafeed.rb +59 -0
  245. data/lib/elasticsearch/api/actions/machine_learning/put_calendar.rb +52 -0
  246. data/lib/elasticsearch/api/actions/machine_learning/put_calendar_job.rb +55 -0
  247. data/lib/elasticsearch/api/actions/machine_learning/put_data_frame_analytics.rb +53 -0
  248. data/lib/elasticsearch/api/actions/machine_learning/put_datafeed.rb +57 -0
  249. data/lib/elasticsearch/api/actions/machine_learning/put_filter.rb +53 -0
  250. data/lib/elasticsearch/api/actions/machine_learning/put_job.rb +57 -0
  251. data/lib/elasticsearch/api/actions/machine_learning/put_trained_model.rb +54 -0
  252. data/lib/elasticsearch/api/actions/machine_learning/put_trained_model_alias.rb +56 -0
  253. data/lib/elasticsearch/api/actions/machine_learning/put_trained_model_definition_part.rb +61 -0
  254. data/lib/elasticsearch/api/actions/machine_learning/put_trained_model_vocabulary.rb +57 -0
  255. data/lib/elasticsearch/api/actions/machine_learning/reset_job.rb +52 -0
  256. data/lib/elasticsearch/api/actions/machine_learning/revert_model_snapshot.rb +57 -0
  257. data/lib/elasticsearch/api/actions/machine_learning/set_upgrade_mode.rb +48 -0
  258. data/lib/elasticsearch/api/actions/machine_learning/start_data_frame_analytics.rb +53 -0
  259. data/lib/elasticsearch/api/actions/machine_learning/start_datafeed.rb +55 -0
  260. data/lib/elasticsearch/api/actions/machine_learning/start_trained_model_deployment.rb +57 -0
  261. data/lib/elasticsearch/api/actions/machine_learning/stop_data_frame_analytics.rb +55 -0
  262. data/lib/elasticsearch/api/actions/machine_learning/stop_datafeed.rb +56 -0
  263. data/lib/elasticsearch/api/actions/machine_learning/stop_trained_model_deployment.rb +55 -0
  264. data/lib/elasticsearch/api/actions/machine_learning/update_data_frame_analytics.rb +53 -0
  265. data/lib/elasticsearch/api/actions/machine_learning/update_datafeed.rb +57 -0
  266. data/lib/elasticsearch/api/actions/machine_learning/update_filter.rb +53 -0
  267. data/lib/elasticsearch/api/actions/machine_learning/update_job.rb +53 -0
  268. data/lib/elasticsearch/api/actions/machine_learning/update_model_snapshot.rb +57 -0
  269. data/lib/elasticsearch/api/actions/machine_learning/upgrade_job_snapshot.rb +57 -0
  270. data/lib/elasticsearch/api/actions/machine_learning/validate.rb +49 -0
  271. data/lib/elasticsearch/api/actions/machine_learning/validate_detector.rb +49 -0
  272. data/lib/elasticsearch/api/actions/mget.rb +23 -49
  273. data/lib/elasticsearch/api/actions/migration/deprecations.rb +53 -0
  274. data/lib/elasticsearch/api/actions/migration/get_feature_upgrade_status.rb +46 -0
  275. data/lib/elasticsearch/api/actions/migration/post_feature_upgrade.rb +46 -0
  276. data/lib/elasticsearch/api/actions/monitoring/bulk.rb +72 -0
  277. data/lib/elasticsearch/api/actions/msearch.rb +37 -58
  278. data/lib/elasticsearch/api/actions/msearch_template.rb +34 -38
  279. data/lib/elasticsearch/api/actions/mtermvectors.rb +30 -46
  280. data/lib/elasticsearch/api/actions/nodes/clear_repositories_metering_archive.rb +61 -0
  281. data/lib/elasticsearch/api/actions/nodes/get_repositories_metering_info.rb +55 -0
  282. data/lib/elasticsearch/api/actions/nodes/hot_threads.rb +21 -30
  283. data/lib/elasticsearch/api/actions/nodes/info.rb +28 -67
  284. data/lib/elasticsearch/api/actions/nodes/reload_secure_settings.rb +24 -23
  285. data/lib/elasticsearch/api/actions/nodes/stats.rb +33 -40
  286. data/lib/elasticsearch/api/actions/nodes/usage.rb +45 -15
  287. data/lib/elasticsearch/api/actions/open_point_in_time.rb +54 -0
  288. data/lib/elasticsearch/api/actions/ping.rb +14 -12
  289. data/lib/elasticsearch/api/actions/put_script.rb +27 -36
  290. data/lib/elasticsearch/api/actions/rank_eval.rb +27 -22
  291. data/lib/elasticsearch/api/actions/reindex.rb +23 -55
  292. data/lib/elasticsearch/api/actions/reindex_rethrottle.rb +22 -18
  293. data/lib/elasticsearch/api/actions/render_search_template.rb +28 -16
  294. data/lib/elasticsearch/api/actions/rollup/delete_job.rb +55 -0
  295. data/lib/elasticsearch/api/actions/rollup/get_jobs.rb +57 -0
  296. data/lib/elasticsearch/api/actions/rollup/get_rollup_caps.rb +57 -0
  297. data/lib/elasticsearch/api/actions/rollup/get_rollup_index_caps.rb +55 -0
  298. data/lib/elasticsearch/api/actions/rollup/put_job.rb +57 -0
  299. data/lib/elasticsearch/api/actions/rollup/rollup.rb +61 -0
  300. data/lib/elasticsearch/api/actions/rollup/rollup_search.rb +59 -0
  301. data/lib/elasticsearch/api/actions/rollup/start_job.rb +55 -0
  302. data/lib/elasticsearch/api/actions/rollup/stop_job.rb +57 -0
  303. data/lib/elasticsearch/api/actions/scripts_painless_execute.rb +23 -7
  304. data/lib/elasticsearch/api/actions/scroll.rb +35 -58
  305. data/lib/elasticsearch/api/actions/search.rb +54 -170
  306. data/lib/elasticsearch/api/actions/search_mvt.rb +76 -0
  307. data/lib/elasticsearch/api/actions/search_shards.rb +28 -33
  308. data/lib/elasticsearch/api/actions/search_template.rb +27 -45
  309. data/lib/elasticsearch/api/actions/searchable_snapshots/cache_stats.rb +57 -0
  310. data/lib/elasticsearch/api/actions/{indices/upgrade.rb → searchable_snapshots/clear_cache.rb} +30 -26
  311. data/lib/elasticsearch/api/actions/searchable_snapshots/mount.rb +60 -0
  312. data/lib/elasticsearch/api/actions/searchable_snapshots/stats.rb +54 -0
  313. data/lib/elasticsearch/api/actions/security/authenticate.rb +46 -0
  314. data/lib/elasticsearch/api/actions/security/change_password.rb +57 -0
  315. data/lib/elasticsearch/api/actions/security/clear_api_key_cache.rb +51 -0
  316. data/lib/elasticsearch/api/actions/security/clear_cached_privileges.rb +51 -0
  317. data/lib/elasticsearch/api/actions/security/clear_cached_realms.rb +52 -0
  318. data/lib/elasticsearch/api/actions/security/clear_cached_roles.rb +51 -0
  319. data/lib/elasticsearch/api/actions/security/clear_cached_service_tokens.rb +59 -0
  320. data/lib/elasticsearch/api/actions/security/create_api_key.rb +50 -0
  321. data/lib/elasticsearch/api/actions/security/create_service_token.rb +63 -0
  322. data/lib/elasticsearch/api/actions/security/delete_privileges.rb +56 -0
  323. data/lib/elasticsearch/api/actions/security/delete_role.rb +52 -0
  324. data/lib/elasticsearch/api/actions/security/delete_role_mapping.rb +52 -0
  325. data/lib/elasticsearch/api/actions/security/delete_service_token.rb +60 -0
  326. data/lib/elasticsearch/api/actions/security/delete_user.rb +52 -0
  327. data/lib/elasticsearch/api/actions/security/disable_user.rb +52 -0
  328. data/lib/elasticsearch/api/actions/security/enable_user.rb +52 -0
  329. data/lib/elasticsearch/api/actions/security/enroll_kibana.rb +46 -0
  330. data/lib/elasticsearch/api/actions/security/enroll_node.rb +46 -0
  331. data/lib/elasticsearch/api/actions/security/get_api_key.rb +51 -0
  332. data/lib/elasticsearch/api/actions/security/get_builtin_privileges.rb +46 -0
  333. data/lib/elasticsearch/api/actions/security/get_privileges.rb +58 -0
  334. data/lib/elasticsearch/api/actions/security/get_role.rb +61 -0
  335. data/lib/elasticsearch/api/actions/security/get_role_mapping.rb +53 -0
  336. data/lib/elasticsearch/api/actions/security/get_service_accounts.rb +58 -0
  337. data/lib/elasticsearch/api/actions/security/get_service_credentials.rb +55 -0
  338. data/lib/elasticsearch/api/actions/security/get_token.rb +49 -0
  339. data/lib/elasticsearch/api/actions/security/get_user.rb +61 -0
  340. data/lib/elasticsearch/api/actions/security/get_user_privileges.rb +46 -0
  341. data/lib/elasticsearch/api/actions/security/grant_api_key.rb +50 -0
  342. data/lib/elasticsearch/api/actions/security/has_privileges.rb +56 -0
  343. data/lib/elasticsearch/api/actions/security/invalidate_api_key.rb +49 -0
  344. data/lib/elasticsearch/api/actions/security/invalidate_token.rb +49 -0
  345. data/lib/elasticsearch/api/actions/security/put_privileges.rb +50 -0
  346. data/lib/elasticsearch/api/actions/security/put_role.rb +54 -0
  347. data/lib/elasticsearch/api/actions/security/put_role_mapping.rb +54 -0
  348. data/lib/elasticsearch/api/actions/security/put_user.rb +54 -0
  349. data/lib/elasticsearch/api/actions/security/query_api_keys.rb +52 -0
  350. data/lib/elasticsearch/api/actions/security/saml_authenticate.rb +49 -0
  351. data/lib/elasticsearch/api/actions/security/saml_complete_logout.rb +49 -0
  352. data/lib/elasticsearch/api/actions/security/saml_invalidate.rb +49 -0
  353. data/lib/elasticsearch/api/actions/security/saml_logout.rb +49 -0
  354. data/lib/elasticsearch/api/actions/security/saml_prepare_authentication.rb +49 -0
  355. data/lib/elasticsearch/api/actions/security/saml_service_provider_metadata.rb +51 -0
  356. data/lib/elasticsearch/api/actions/shutdown/delete_node.rb +51 -0
  357. data/lib/elasticsearch/api/actions/shutdown/get_node.rb +53 -0
  358. data/lib/elasticsearch/api/actions/shutdown/put_node.rb +53 -0
  359. data/lib/elasticsearch/api/actions/snapshot/cleanup_repository.rb +53 -0
  360. data/lib/elasticsearch/api/actions/snapshot/clone.rb +62 -0
  361. data/lib/elasticsearch/api/actions/snapshot/create.rb +25 -35
  362. data/lib/elasticsearch/api/actions/snapshot/create_repository.rb +21 -30
  363. data/lib/elasticsearch/api/actions/snapshot/delete.rb +27 -27
  364. data/lib/elasticsearch/api/actions/snapshot/delete_repository.rb +23 -24
  365. data/lib/elasticsearch/api/actions/snapshot/get.rb +30 -37
  366. data/lib/elasticsearch/api/actions/snapshot/get_repository.rb +28 -31
  367. data/lib/elasticsearch/api/actions/snapshot/repository_analyze.rb +62 -0
  368. data/lib/elasticsearch/api/actions/snapshot/restore.rb +23 -37
  369. data/lib/elasticsearch/api/actions/snapshot/status.rb +31 -31
  370. data/lib/elasticsearch/api/actions/snapshot/verify_repository.rb +20 -18
  371. data/lib/elasticsearch/api/actions/snapshot_lifecycle_management/delete_lifecycle.rb +51 -0
  372. data/lib/elasticsearch/api/actions/snapshot_lifecycle_management/execute_lifecycle.rb +51 -0
  373. data/lib/elasticsearch/api/actions/snapshot_lifecycle_management/execute_retention.rb +46 -0
  374. data/lib/elasticsearch/api/actions/snapshot_lifecycle_management/get_lifecycle.rb +53 -0
  375. data/lib/elasticsearch/api/actions/snapshot_lifecycle_management/get_stats.rb +46 -0
  376. data/lib/elasticsearch/api/actions/snapshot_lifecycle_management/get_status.rb +46 -0
  377. data/lib/elasticsearch/api/actions/snapshot_lifecycle_management/put_lifecycle.rb +52 -0
  378. data/lib/elasticsearch/api/actions/snapshot_lifecycle_management/start.rb +46 -0
  379. data/lib/elasticsearch/api/actions/snapshot_lifecycle_management/stop.rb +46 -0
  380. data/lib/elasticsearch/api/actions/sql/clear_cursor.rb +49 -0
  381. data/lib/elasticsearch/api/actions/sql/delete_async.rb +51 -0
  382. data/lib/elasticsearch/api/actions/sql/get_async.rb +55 -0
  383. data/lib/elasticsearch/api/actions/sql/get_async_status.rb +51 -0
  384. data/lib/elasticsearch/api/actions/sql/query.rb +50 -0
  385. data/lib/elasticsearch/api/actions/sql/translate.rb +49 -0
  386. data/lib/elasticsearch/api/actions/ssl/certificates.rb +46 -0
  387. data/lib/elasticsearch/api/actions/tasks/cancel.rb +26 -19
  388. data/lib/elasticsearch/api/actions/tasks/get.rb +23 -19
  389. data/lib/elasticsearch/api/actions/tasks/list.rb +19 -23
  390. data/lib/elasticsearch/api/actions/terms_enum.rb +55 -0
  391. data/lib/elasticsearch/api/actions/termvectors.rb +35 -74
  392. data/lib/elasticsearch/api/actions/text_structure/find_structure.rb +70 -0
  393. data/lib/elasticsearch/api/actions/transform/delete_transform.rb +53 -0
  394. data/lib/elasticsearch/api/actions/transform/get_transform.rb +57 -0
  395. data/lib/elasticsearch/api/actions/transform/get_transform_stats.rb +54 -0
  396. data/lib/elasticsearch/api/actions/transform/preview_transform.rb +60 -0
  397. data/lib/elasticsearch/api/actions/transform/put_transform.rb +55 -0
  398. data/lib/elasticsearch/api/actions/transform/start_transform.rb +52 -0
  399. data/lib/elasticsearch/api/actions/transform/stop_transform.rb +56 -0
  400. data/lib/elasticsearch/api/actions/transform/update_transform.rb +55 -0
  401. data/lib/elasticsearch/api/actions/transform/upgrade_transforms.rb +48 -0
  402. data/lib/elasticsearch/api/actions/update.rb +41 -107
  403. data/lib/elasticsearch/api/actions/update_by_query.rb +23 -72
  404. data/lib/elasticsearch/api/actions/update_by_query_rethrottle.rb +20 -16
  405. data/lib/elasticsearch/api/actions/watcher/ack_watch.rb +58 -0
  406. data/lib/elasticsearch/api/actions/watcher/activate_watch.rb +51 -0
  407. data/lib/elasticsearch/api/actions/watcher/deactivate_watch.rb +51 -0
  408. data/lib/elasticsearch/api/actions/watcher/delete_watch.rb +59 -0
  409. data/lib/elasticsearch/api/actions/watcher/execute_watch.rb +55 -0
  410. data/lib/elasticsearch/api/actions/watcher/get_watch.rb +51 -0
  411. data/lib/elasticsearch/api/actions/watcher/put_watch.rb +56 -0
  412. data/lib/elasticsearch/api/actions/watcher/query_watches.rb +52 -0
  413. data/lib/elasticsearch/api/actions/watcher/start.rb +46 -0
  414. data/lib/elasticsearch/api/actions/watcher/stats.rb +54 -0
  415. data/lib/elasticsearch/api/actions/watcher/stop.rb +46 -0
  416. data/lib/elasticsearch/api/actions/xpack/info.rb +48 -0
  417. data/lib/elasticsearch/api/actions/xpack/usage.rb +47 -0
  418. data/lib/elasticsearch/api/namespace/async_search.rb +36 -0
  419. data/lib/elasticsearch/api/{actions/remote/info.rb → namespace/autoscaling.rb} +12 -14
  420. data/lib/elasticsearch/api/namespace/cat.rb +1 -2
  421. data/lib/elasticsearch/api/namespace/cluster.rb +1 -1
  422. data/lib/elasticsearch/api/namespace/common.rb +1 -1
  423. data/lib/elasticsearch/api/namespace/cross_cluster_replication.rb +38 -0
  424. data/lib/elasticsearch/api/namespace/dangling_indices.rb +35 -0
  425. data/lib/elasticsearch/api/namespace/data_frame_transform_deprecated.rb +36 -0
  426. data/lib/elasticsearch/api/namespace/enrich.rb +36 -0
  427. data/lib/elasticsearch/api/namespace/eql.rb +36 -0
  428. data/lib/elasticsearch/api/namespace/features.rb +36 -0
  429. data/lib/elasticsearch/api/namespace/fleet.rb +36 -0
  430. data/lib/elasticsearch/api/namespace/graph.rb +36 -0
  431. data/lib/elasticsearch/api/namespace/index_lifecycle_management.rb +38 -0
  432. data/lib/elasticsearch/api/namespace/indices.rb +1 -1
  433. data/lib/elasticsearch/api/namespace/ingest.rb +1 -2
  434. data/lib/elasticsearch/api/namespace/license.rb +36 -0
  435. data/lib/elasticsearch/api/namespace/logstash.rb +36 -0
  436. data/lib/elasticsearch/api/namespace/machine_learning.rb +38 -0
  437. data/lib/elasticsearch/api/namespace/migration.rb +36 -0
  438. data/lib/elasticsearch/api/namespace/monitoring.rb +36 -0
  439. data/lib/elasticsearch/api/namespace/nodes.rb +1 -1
  440. data/lib/elasticsearch/api/namespace/remote.rb +1 -1
  441. data/lib/elasticsearch/api/namespace/rollup.rb +36 -0
  442. data/lib/elasticsearch/api/namespace/searchable_snapshots.rb +36 -0
  443. data/lib/elasticsearch/api/namespace/security.rb +36 -0
  444. data/lib/elasticsearch/api/namespace/shutdown.rb +37 -0
  445. data/lib/elasticsearch/api/namespace/snapshot.rb +1 -1
  446. data/lib/elasticsearch/api/namespace/snapshot_lifecycle_management.rb +38 -0
  447. data/lib/elasticsearch/api/namespace/sql.rb +36 -0
  448. data/lib/elasticsearch/api/namespace/ssl.rb +36 -0
  449. data/lib/elasticsearch/api/namespace/tasks.rb +1 -1
  450. data/lib/elasticsearch/api/namespace/text_structure.rb +36 -0
  451. data/lib/elasticsearch/api/namespace/transform.rb +36 -0
  452. data/lib/elasticsearch/api/namespace/watcher.rb +36 -0
  453. data/lib/elasticsearch/api/namespace/xpack.rb +36 -0
  454. data/lib/elasticsearch/api/response.rb +48 -0
  455. data/lib/elasticsearch/api/utils.rb +7 -57
  456. data/lib/elasticsearch/api/version.rb +2 -2
  457. data/lib/elasticsearch/api.rb +30 -21
  458. data/lib/elasticsearch-api.rb +1 -1
  459. data/spec/elasticsearch/api/actions/bulk_spec.rb +18 -37
  460. data/spec/elasticsearch/api/actions/cat/aliases_spec.rb +3 -3
  461. data/spec/elasticsearch/api/actions/cat/allocation_spec.rb +3 -3
  462. data/spec/elasticsearch/api/actions/cat/count_spec.rb +3 -3
  463. data/spec/elasticsearch/api/actions/cat/fielddata_spec.rb +5 -5
  464. data/spec/elasticsearch/api/actions/cat/health_spec.rb +3 -3
  465. data/spec/elasticsearch/api/actions/cat/help_spec.rb +3 -3
  466. data/spec/elasticsearch/api/actions/cat/indices_spec.rb +3 -3
  467. data/spec/elasticsearch/api/actions/cat/master_spec.rb +3 -3
  468. data/spec/elasticsearch/api/actions/cat/nodeattrs_spec.rb +3 -3
  469. data/spec/elasticsearch/api/actions/cat/nodes_spec.rb +3 -3
  470. data/spec/elasticsearch/api/actions/cat/pending_tasks_spec.rb +3 -3
  471. data/spec/elasticsearch/api/actions/cat/plugins_spec.rb +3 -3
  472. data/spec/elasticsearch/api/actions/cat/recovery_spec.rb +3 -3
  473. data/spec/elasticsearch/api/actions/cat/repositories_spec.rb +3 -3
  474. data/spec/elasticsearch/api/actions/cat/segments_spec.rb +12 -14
  475. data/spec/elasticsearch/api/actions/cat/shards_spec.rb +3 -3
  476. data/spec/elasticsearch/api/actions/cat/snapshot_spec.rb +3 -3
  477. data/spec/elasticsearch/api/actions/cat/tasks_spec.rb +3 -3
  478. data/spec/elasticsearch/api/actions/cat/templates_spec.rb +3 -3
  479. data/spec/elasticsearch/api/actions/cat/thread_pool_spec.rb +3 -3
  480. data/spec/elasticsearch/api/actions/clear_scroll_spec.rb +7 -5
  481. data/spec/elasticsearch/api/actions/{benchmark_spec.rb → close_point_in_time_spec.rb} +7 -7
  482. data/spec/elasticsearch/api/actions/cluster/allocation_explain_spec.rb +3 -3
  483. data/spec/elasticsearch/api/actions/cluster/get_settings_spec.rb +3 -3
  484. data/spec/elasticsearch/api/actions/cluster/health_spec.rb +7 -7
  485. data/spec/elasticsearch/api/actions/cluster/pending_tasks_spec.rb +3 -3
  486. data/spec/elasticsearch/api/actions/cluster/put_settings_spec.rb +3 -3
  487. data/spec/elasticsearch/api/actions/cluster/remote_info_spec.rb +3 -3
  488. data/spec/elasticsearch/api/actions/cluster/reroute_spec.rb +5 -5
  489. data/spec/elasticsearch/api/actions/cluster/state_spec.rb +5 -5
  490. data/spec/elasticsearch/api/actions/cluster/stats_spec.rb +3 -3
  491. data/spec/elasticsearch/api/actions/count_spec.rb +16 -16
  492. data/spec/elasticsearch/api/actions/create_document_spec.rb +17 -13
  493. data/spec/elasticsearch/api/actions/dangling_indices/delete_dangling_indices_spec.rb +48 -0
  494. data/spec/elasticsearch/api/actions/dangling_indices/import_dangling_indices_spec.rb +48 -0
  495. data/spec/elasticsearch/api/actions/dangling_indices/list_dangling_indices_spec.rb +36 -0
  496. data/spec/elasticsearch/api/actions/data_frame/update_data_frame_transform_spec.rb +81 -0
  497. data/spec/elasticsearch/api/actions/delete_by_query_spec.rb +16 -25
  498. data/spec/elasticsearch/api/actions/delete_document_spec.rb +14 -25
  499. data/spec/elasticsearch/api/actions/delete_script_spec.rb +4 -17
  500. data/spec/elasticsearch/api/actions/exists_document_spec.rb +13 -23
  501. data/spec/elasticsearch/api/actions/explain_document_spec.rb +18 -18
  502. data/spec/elasticsearch/api/actions/{scoll_spec.rb → features/get_features_spec.rb} +11 -7
  503. data/spec/elasticsearch/api/actions/features/reset_features_spec.rb +38 -0
  504. data/spec/elasticsearch/api/actions/field_caps_spec.rb +4 -3
  505. data/spec/elasticsearch/api/actions/fleet/global_checkpoints_spec.rb +44 -0
  506. data/spec/elasticsearch/api/actions/get_document_source_spec.rb +9 -20
  507. data/spec/elasticsearch/api/actions/get_document_spec.rb +9 -33
  508. data/spec/elasticsearch/api/actions/get_script_spec.rb +4 -3
  509. data/spec/elasticsearch/api/actions/hashie_spec.rb +1 -1
  510. data/spec/elasticsearch/api/actions/index_document_spec.rb +14 -40
  511. data/spec/elasticsearch/api/actions/index_lifecycle_management/migrate_to_data_tiers_spec.rb +36 -0
  512. data/spec/elasticsearch/api/actions/indices/add_block_spec.rb +63 -0
  513. data/spec/elasticsearch/api/actions/indices/analyze_spec.rb +11 -16
  514. data/spec/elasticsearch/api/actions/indices/clear_cache_spec.rb +8 -12
  515. data/spec/elasticsearch/api/actions/indices/clone_spec.rb +122 -0
  516. data/spec/elasticsearch/api/actions/indices/close_spec.rb +5 -5
  517. data/spec/elasticsearch/api/actions/indices/create_spec.rb +5 -5
  518. data/spec/elasticsearch/api/actions/{nodes/shutdown_spec.rb → indices/data_streams_stats_spec.rb} +15 -33
  519. data/spec/elasticsearch/api/actions/indices/delete_alias_spec.rb +6 -6
  520. data/spec/elasticsearch/api/actions/indices/delete_spec.rb +6 -6
  521. data/spec/elasticsearch/api/actions/indices/delete_template_spec.rb +4 -4
  522. data/spec/elasticsearch/api/actions/indices/disk_usage_spec.rb +48 -0
  523. data/spec/elasticsearch/api/actions/indices/exists_alias_spec.rb +2 -2
  524. data/spec/elasticsearch/api/actions/indices/exists_spec.rb +2 -2
  525. data/spec/elasticsearch/api/actions/indices/exists_template_spec.rb +2 -2
  526. data/spec/elasticsearch/api/actions/indices/exists_type_spec.rb +2 -2
  527. data/spec/elasticsearch/api/actions/indices/field_usage_stats_spec.rb +46 -0
  528. data/spec/elasticsearch/api/actions/indices/flush_spec.rb +7 -7
  529. data/spec/elasticsearch/api/actions/indices/forcemerge_spec.rb +3 -3
  530. data/spec/elasticsearch/api/actions/indices/get_alias_spec.rb +5 -5
  531. data/spec/elasticsearch/api/actions/indices/get_field_mapping_spec.rb +4 -15
  532. data/spec/elasticsearch/api/actions/indices/get_mapping_spec.rb +9 -24
  533. data/spec/elasticsearch/api/actions/indices/get_settings_spec.rb +6 -6
  534. data/spec/elasticsearch/api/actions/indices/get_spec.rb +4 -15
  535. data/spec/elasticsearch/api/actions/indices/open_spec.rb +5 -5
  536. data/spec/elasticsearch/api/actions/indices/put_alias_spec.rb +9 -9
  537. data/spec/elasticsearch/api/actions/indices/put_mapping_spec.rb +10 -16
  538. data/spec/elasticsearch/api/actions/indices/put_settings_spec.rb +7 -7
  539. data/spec/elasticsearch/api/actions/indices/put_template_spec.rb +5 -5
  540. data/spec/elasticsearch/api/actions/indices/recovery_spec.rb +3 -3
  541. data/spec/elasticsearch/api/actions/indices/refresh_spec.rb +7 -7
  542. data/spec/elasticsearch/api/actions/indices/rollover_spec.rb +4 -4
  543. data/spec/elasticsearch/api/actions/indices/segments_spec.rb +7 -7
  544. data/spec/elasticsearch/api/actions/indices/shard_stores_spec.rb +3 -3
  545. data/spec/elasticsearch/api/actions/indices/shrink_spec.rb +3 -3
  546. data/spec/elasticsearch/api/actions/indices/split_spec.rb +3 -3
  547. data/spec/elasticsearch/api/actions/indices/stats_spec.rb +9 -15
  548. data/spec/elasticsearch/api/actions/indices/unfreeze_spec.rb +21 -4
  549. data/spec/elasticsearch/api/actions/indices/update_aliases_spec.rb +4 -4
  550. data/spec/elasticsearch/api/actions/indices/validate_query_spec.rb +15 -31
  551. data/spec/elasticsearch/api/actions/info_spec.rb +4 -3
  552. data/spec/elasticsearch/api/actions/ingest/delete_pipeline_spec.rb +4 -4
  553. data/spec/elasticsearch/api/actions/ingest/geo_ip_stats_spec.rb +38 -0
  554. data/spec/elasticsearch/api/actions/ingest/get_pipeline_spec.rb +4 -4
  555. data/spec/elasticsearch/api/actions/ingest/put_pipeline_spec.rb +4 -4
  556. data/spec/elasticsearch/api/actions/ingest/simulate_spec.rb +9 -10
  557. data/spec/elasticsearch/api/actions/json_builders_spec.rb +13 -14
  558. data/spec/elasticsearch/api/actions/machine_learning/get_model_snapshot_upgrade_stats_spec.rb +56 -0
  559. data/spec/elasticsearch/api/actions/machine_learning/get_trained_model_deployment_stats_spec.rb +46 -0
  560. data/spec/elasticsearch/api/actions/machine_learning/infer_trained_model_deployment_spec.rb +46 -0
  561. data/spec/elasticsearch/api/actions/machine_learning/put_trained_model_definition_part_spec.rb +62 -0
  562. data/spec/elasticsearch/api/actions/machine_learning/put_trained_model_vocabulary_spec.rb +54 -0
  563. data/spec/elasticsearch/api/actions/machine_learning/reset_job_spec.rb +46 -0
  564. data/spec/elasticsearch/api/actions/machine_learning/set_upgrade_mode_spec.rb +51 -0
  565. data/spec/elasticsearch/api/actions/machine_learning/start_trained_model_deployment_spec.rb +46 -0
  566. data/spec/elasticsearch/api/actions/machine_learning/stop_trained_model_deployment_spec.rb +46 -0
  567. data/spec/elasticsearch/api/actions/mget_spec.rb +11 -26
  568. data/spec/elasticsearch/api/actions/migration/get_feature_upgrade_status_spec.rb +34 -0
  569. data/spec/elasticsearch/api/actions/migration/post_feature_upgrade_spec.rb +34 -0
  570. data/spec/elasticsearch/api/actions/msearch_spec.rb +13 -29
  571. data/spec/elasticsearch/api/actions/msearch_template_spec.rb +8 -9
  572. data/spec/elasticsearch/api/actions/mtermvectors_spec.rb +8 -9
  573. data/spec/elasticsearch/api/actions/nodes/clear_repositories_metering_archive_spec.rb +51 -0
  574. data/spec/elasticsearch/api/actions/nodes/get_repositories_metering_info_spec.rb +44 -0
  575. data/spec/elasticsearch/api/actions/nodes/hot_threads_spec.rb +5 -5
  576. data/spec/elasticsearch/api/actions/nodes/info_spec.rb +8 -8
  577. data/spec/elasticsearch/api/actions/nodes/reload_secure_settings_spec.rb +13 -16
  578. data/spec/elasticsearch/api/actions/nodes/stats_spec.rb +6 -6
  579. data/spec/elasticsearch/api/actions/{abort_benchmark_spec.rb → open_point_in_time_spec.rb} +6 -6
  580. data/spec/elasticsearch/api/actions/ping_spec.rb +4 -3
  581. data/spec/elasticsearch/api/actions/put_script_spec.rb +24 -17
  582. data/spec/elasticsearch/api/actions/rank_eval_spec.rb +127 -0
  583. data/spec/elasticsearch/api/actions/reindex_spec.rb +5 -4
  584. data/spec/elasticsearch/api/actions/render_search_template_spec.rb +28 -10
  585. data/spec/elasticsearch/api/actions/scroll_spec.rb +52 -0
  586. data/spec/elasticsearch/api/actions/search_mvt_spec.rb +53 -0
  587. data/spec/elasticsearch/api/actions/search_shards_spec.rb +5 -4
  588. data/spec/elasticsearch/api/actions/search_spec.rb +10 -62
  589. data/spec/elasticsearch/api/actions/search_template_spec.rb +7 -7
  590. data/spec/elasticsearch/api/actions/searchable_snapshots/cache_stats_spec.rb +44 -0
  591. data/spec/elasticsearch/api/actions/searchable_snapshots/clear_cache_spec.rb +44 -0
  592. data/spec/elasticsearch/api/actions/searchable_snapshots/mount_spec.rb +56 -0
  593. data/spec/elasticsearch/api/actions/searchable_snapshots/stats_spec.rb +43 -0
  594. data/spec/elasticsearch/api/actions/security/clear_cached_service_tokens_spec.rb +58 -0
  595. data/spec/elasticsearch/api/actions/security/create_api_key_spec.rb +79 -0
  596. data/spec/elasticsearch/api/actions/security/create_service_token_spec.rb +54 -0
  597. data/spec/elasticsearch/api/actions/security/delete_service_token_spec.rb +60 -0
  598. data/spec/elasticsearch/api/actions/{indices/upgrade_spec.rb → security/enroll_kibana_spec.rb} +8 -9
  599. data/spec/elasticsearch/api/actions/security/get_api_key_spec.rb +56 -0
  600. data/spec/elasticsearch/api/actions/{remote/info_spec.rb → security/get_builtin_privileges_spec.rb} +5 -5
  601. data/spec/elasticsearch/api/actions/security/get_service_accounts_spec.rb +58 -0
  602. data/spec/elasticsearch/api/actions/security/get_service_credentials_spec.rb +53 -0
  603. data/spec/elasticsearch/api/actions/security/invalidate_api_key_spec.rb +38 -0
  604. data/spec/elasticsearch/api/actions/security/query_api_keys_spec.rb +48 -0
  605. data/spec/elasticsearch/api/actions/security/saml_authenticate_spec.rb +44 -0
  606. data/spec/elasticsearch/api/actions/security/saml_complete_logout_spec.rb +44 -0
  607. data/spec/elasticsearch/api/actions/security/saml_invalidate_spec.rb +44 -0
  608. data/spec/elasticsearch/api/actions/security/saml_logout_spec.rb +44 -0
  609. data/spec/elasticsearch/api/actions/security/saml_prepare_authentication_spec.rb +44 -0
  610. data/spec/elasticsearch/api/actions/security/saml_service_provider_metadata_spec.rb +46 -0
  611. data/spec/elasticsearch/api/actions/shutdown/delete_node_spec.rb +44 -0
  612. data/spec/elasticsearch/api/actions/shutdown/get_node_spec.rb +46 -0
  613. data/spec/elasticsearch/api/actions/shutdown/put_node_spec.rb +50 -0
  614. data/spec/elasticsearch/api/actions/snapshot/clone_spec.rb +67 -0
  615. data/spec/elasticsearch/api/actions/snapshot/create_repository_spec.rb +3 -3
  616. data/spec/elasticsearch/api/actions/snapshot/create_spec.rb +3 -3
  617. data/spec/elasticsearch/api/actions/snapshot/delete_repository_spec.rb +4 -4
  618. data/spec/elasticsearch/api/actions/snapshot/delete_spec.rb +3 -3
  619. data/spec/elasticsearch/api/actions/snapshot/get_repository_spec.rb +3 -3
  620. data/spec/elasticsearch/api/actions/snapshot/get_spec.rb +3 -3
  621. data/spec/elasticsearch/api/actions/snapshot/repository_analize_spec.rb +46 -0
  622. data/spec/elasticsearch/api/actions/snapshot/restore_spec.rb +8 -11
  623. data/spec/elasticsearch/api/actions/snapshot/status_spec.rb +4 -5
  624. data/spec/elasticsearch/api/actions/snapshot/verify_repository_spec.rb +7 -8
  625. data/spec/elasticsearch/api/actions/sql/delete_async_spec.rb +46 -0
  626. data/spec/elasticsearch/api/actions/sql/get_async_spec.rb +46 -0
  627. data/spec/elasticsearch/api/actions/sql/get_async_stats_spec.rb +46 -0
  628. data/spec/elasticsearch/api/actions/tasks/cancel_spec.rb +8 -9
  629. data/spec/elasticsearch/api/actions/tasks/get_spec.rb +3 -3
  630. data/spec/elasticsearch/api/actions/tasks/list_spec.rb +7 -19
  631. data/spec/elasticsearch/api/actions/terms_enum_spec.rb +52 -0
  632. data/spec/elasticsearch/api/actions/termvectors_spec.rb +11 -12
  633. data/spec/elasticsearch/api/actions/update_by_query_spec.rb +7 -7
  634. data/spec/elasticsearch/api/actions/update_document_spec.rb +16 -33
  635. data/spec/elasticsearch/api/api_response_spec.rb +64 -0
  636. data/spec/elasticsearch/api/api_spec.rb +1 -4
  637. data/spec/elasticsearch/api/client_spec.rb +1 -5
  638. data/spec/elasticsearch/api/rest_api_yaml_spec.rb +91 -101
  639. data/spec/elasticsearch/api/utils_spec.rb +15 -90
  640. data/spec/rest_api_tests_helper.rb +91 -0
  641. data/spec/skipped_tests_free.yml +32 -0
  642. data/spec/skipped_tests_platinum.yml +59 -0
  643. data/spec/spec_helper.rb +21 -17
  644. data/spec/unit_tests_platinum/test_helper.rb +72 -0
  645. data/spec/unit_tests_platinum/unit/async_search/delete_test.rb +39 -0
  646. data/spec/unit_tests_platinum/unit/async_search/get_test.rb +39 -0
  647. data/spec/unit_tests_platinum/unit/async_search/status_test.rb +39 -0
  648. data/spec/unit_tests_platinum/unit/async_search/submit_test.rb +50 -0
  649. data/spec/unit_tests_platinum/unit/autoscaling/delete_autoscaling_policy_test.rb +46 -0
  650. data/spec/unit_tests_platinum/unit/autoscaling/get_autoscaling_capacity_test.rb +40 -0
  651. data/spec/unit_tests_platinum/unit/autoscaling/get_autoscaling_policy_test.rb +46 -0
  652. data/spec/unit_tests_platinum/unit/autoscaling/put_autoscaling_policy_test.rb +52 -0
  653. data/spec/unit_tests_platinum/unit/enrich/delete_policy_test.rb +43 -0
  654. data/spec/unit_tests_platinum/unit/eql/delete_test.rb +46 -0
  655. data/spec/unit_tests_platinum/unit/eql/get_status_test.rb +46 -0
  656. data/spec/unit_tests_platinum/unit/eql/get_test.rb +46 -0
  657. data/spec/unit_tests_platinum/unit/eql/search_test.rb +52 -0
  658. data/spec/unit_tests_platinum/unit/graph/explore_test.rb +43 -0
  659. data/spec/unit_tests_platinum/unit/index_lifecycle_management/explain_test.rb +43 -0
  660. data/spec/unit_tests_platinum/unit/index_lifecycle_management/get_status_test.rb +43 -0
  661. data/spec/unit_tests_platinum/unit/index_lifecycle_management/move_to_step.rb +43 -0
  662. data/spec/unit_tests_platinum/unit/index_lifecycle_management/remove_policy_test.rb +43 -0
  663. data/spec/unit_tests_platinum/unit/index_lifecycle_management/retry_policy_test.rb +43 -0
  664. data/spec/unit_tests_platinum/unit/index_lifecycle_management/start_test.rb +43 -0
  665. data/spec/unit_tests_platinum/unit/index_lifecycle_management/stop_test.rb +43 -0
  666. data/spec/unit_tests_platinum/unit/indices/create_data_stream_test.rb +46 -0
  667. data/spec/unit_tests_platinum/unit/indices/data_stream_stats_test.rb +54 -0
  668. data/spec/unit_tests_platinum/unit/indices/delete_data_stream_test.rb +46 -0
  669. data/spec/unit_tests_platinum/unit/indices/get_data_stream_test.rb +50 -0
  670. data/spec/unit_tests_platinum/unit/indices/migrate_to_data_stream_test.rb +46 -0
  671. data/spec/unit_tests_platinum/unit/indices/modify_data_stream_test.rb +46 -0
  672. data/spec/unit_tests_platinum/unit/indices/promote_data_stream_test.rb +46 -0
  673. data/spec/unit_tests_platinum/unit/info_test.rb +40 -0
  674. data/spec/unit_tests_platinum/unit/knn_search_test.rb +40 -0
  675. data/spec/unit_tests_platinum/unit/license/delete_test.rb +43 -0
  676. data/spec/unit_tests_platinum/unit/license/get_test.rb +43 -0
  677. data/spec/unit_tests_platinum/unit/license/post_test.rb +43 -0
  678. data/spec/unit_tests_platinum/unit/logstash/delete_pipeline_test.rb +46 -0
  679. data/spec/unit_tests_platinum/unit/logstash/get_pipeline_test.rb +46 -0
  680. data/spec/unit_tests_platinum/unit/logstash/put_pipeline_test.rb +46 -0
  681. data/spec/unit_tests_platinum/unit/machine_learning/close_job_test.rb +43 -0
  682. data/spec/unit_tests_platinum/unit/machine_learning/delete_datafeed_test.rb +43 -0
  683. data/spec/unit_tests_platinum/unit/machine_learning/delete_expired_data_test.rb +43 -0
  684. data/spec/unit_tests_platinum/unit/machine_learning/delete_filter_test.rb +43 -0
  685. data/spec/unit_tests_platinum/unit/machine_learning/delete_forecast_test.rb +43 -0
  686. data/spec/unit_tests_platinum/unit/machine_learning/delete_job_test.rb +43 -0
  687. data/spec/unit_tests_platinum/unit/machine_learning/delete_model_alias_test.rb +40 -0
  688. data/spec/unit_tests_platinum/unit/machine_learning/delete_model_snapshot_test.rb +43 -0
  689. data/spec/unit_tests_platinum/unit/machine_learning/flush_job_test.rb +43 -0
  690. data/spec/unit_tests_platinum/unit/machine_learning/forecast_test.rb +43 -0
  691. data/spec/unit_tests_platinum/unit/machine_learning/get_buckets_test.rb +43 -0
  692. data/spec/unit_tests_platinum/unit/machine_learning/get_categories_test.rb +43 -0
  693. data/spec/unit_tests_platinum/unit/machine_learning/get_datafeed_stats_test.rb +43 -0
  694. data/spec/unit_tests_platinum/unit/machine_learning/get_datafeeds_test.rb +43 -0
  695. data/spec/unit_tests_platinum/unit/machine_learning/get_filters_test.rb +43 -0
  696. data/spec/unit_tests_platinum/unit/machine_learning/get_influencers_test.rb +43 -0
  697. data/spec/unit_tests_platinum/unit/machine_learning/get_job_stats_test.rb +43 -0
  698. data/spec/unit_tests_platinum/unit/machine_learning/get_jobs_test.rb +43 -0
  699. data/spec/unit_tests_platinum/unit/machine_learning/get_model_snapshots_test.rb +43 -0
  700. data/spec/unit_tests_platinum/unit/machine_learning/get_overall_buckets_test.rb +43 -0
  701. data/spec/unit_tests_platinum/unit/machine_learning/get_records_test.rb +43 -0
  702. data/spec/unit_tests_platinum/unit/machine_learning/open_job_test.rb +43 -0
  703. data/spec/unit_tests_platinum/unit/machine_learning/post_data_test.rb +43 -0
  704. data/spec/unit_tests_platinum/unit/machine_learning/preview_data_frame_analytics_test.rb +64 -0
  705. data/spec/unit_tests_platinum/unit/machine_learning/preview_datafeed_test.rb +43 -0
  706. data/spec/unit_tests_platinum/unit/machine_learning/put_datafeed_test.rb +43 -0
  707. data/spec/unit_tests_platinum/unit/machine_learning/put_filter_test.rb +43 -0
  708. data/spec/unit_tests_platinum/unit/machine_learning/put_job_test.rb +43 -0
  709. data/spec/unit_tests_platinum/unit/machine_learning/put_trained_model_alias_test.rb +40 -0
  710. data/spec/unit_tests_platinum/unit/machine_learning/revert_model_snapshot_test.rb +43 -0
  711. data/spec/unit_tests_platinum/unit/machine_learning/start_datafeed_test.rb +43 -0
  712. data/spec/unit_tests_platinum/unit/machine_learning/stop_datafeed_test.rb +43 -0
  713. data/spec/unit_tests_platinum/unit/machine_learning/update_data_frame_analytics_test.rb +40 -0
  714. data/spec/unit_tests_platinum/unit/machine_learning/update_datafeed_test.rb +43 -0
  715. data/spec/unit_tests_platinum/unit/machine_learning/update_filter_test.rb +43 -0
  716. data/spec/unit_tests_platinum/unit/machine_learning/update_job_test.rb +43 -0
  717. data/spec/unit_tests_platinum/unit/machine_learning/update_model_snapshot_test.rb +43 -0
  718. data/spec/unit_tests_platinum/unit/machine_learning/upgrade_job_snapshot_test.rb +43 -0
  719. data/spec/unit_tests_platinum/unit/machine_learning/validate_detector_test.rb +43 -0
  720. data/spec/unit_tests_platinum/unit/machine_learning/validate_test.rb +43 -0
  721. data/spec/unit_tests_platinum/unit/migration/deprecations_test.rb +42 -0
  722. data/spec/unit_tests_platinum/unit/monitoring/bulk_test.rb +43 -0
  723. data/spec/unit_tests_platinum/unit/rollup/get_rollup_index_caps_test.rb +40 -0
  724. data/spec/unit_tests_platinum/unit/rollup/rollup_test.rb +58 -0
  725. data/spec/unit_tests_platinum/unit/security/authenticate_test.rb +43 -0
  726. data/spec/unit_tests_platinum/unit/security/change_password_test.rb +55 -0
  727. data/spec/unit_tests_platinum/unit/security/clear_api_key_cache_test.rb +40 -0
  728. data/spec/unit_tests_platinum/unit/security/clear_cached_privileges_test.rb +40 -0
  729. data/spec/unit_tests_platinum/unit/security/clear_cached_realms_test.rb +43 -0
  730. data/spec/unit_tests_platinum/unit/security/clear_cached_roles_test.rb +43 -0
  731. data/spec/unit_tests_platinum/unit/security/delete_privileges_test.rb +43 -0
  732. data/spec/unit_tests_platinum/unit/security/delete_role_mapping_test.rb +43 -0
  733. data/spec/unit_tests_platinum/unit/security/delete_role_test.rb +43 -0
  734. data/spec/unit_tests_platinum/unit/security/delete_user_test.rb +43 -0
  735. data/spec/unit_tests_platinum/unit/security/disable_user_test.rb +43 -0
  736. data/spec/unit_tests_platinum/unit/security/enable_user_test.rb +43 -0
  737. data/spec/unit_tests_platinum/unit/security/get_privileges_test.rb +78 -0
  738. data/spec/unit_tests_platinum/unit/security/get_role_mapping_test.rb +54 -0
  739. data/spec/unit_tests_platinum/unit/security/get_role_test.rb +62 -0
  740. data/spec/unit_tests_platinum/unit/security/get_token_test.rb +43 -0
  741. data/spec/unit_tests_platinum/unit/security/get_user_privileges_test.rb +43 -0
  742. data/spec/unit_tests_platinum/unit/security/get_user_test.rb +61 -0
  743. data/spec/unit_tests_platinum/unit/security/grant_api_key_test.rb +41 -0
  744. data/spec/unit_tests_platinum/unit/security/has_privileges_test.rb +55 -0
  745. data/spec/unit_tests_platinum/unit/security/invalidate_token_test.rb +43 -0
  746. data/spec/unit_tests_platinum/unit/security/put_privileges_test.rb +43 -0
  747. data/spec/unit_tests_platinum/unit/security/put_role_mapping_test.rb +43 -0
  748. data/spec/unit_tests_platinum/unit/security/put_role_test.rb +43 -0
  749. data/spec/unit_tests_platinum/unit/security/put_user_test.rb +43 -0
  750. data/spec/unit_tests_platinum/unit/ssl/certificates_test.rb +43 -0
  751. data/spec/unit_tests_platinum/unit/text_structure/find_structure_test.rb +40 -0
  752. data/spec/unit_tests_platinum/unit/transform/upgrade_transforms_spec.rb +34 -0
  753. data/spec/unit_tests_platinum/unit/usage_test.rb +40 -0
  754. data/spec/unit_tests_platinum/unit/watcher/ack_watch_test.rb +55 -0
  755. data/spec/unit_tests_platinum/unit/watcher/activate_watch_test.rb +43 -0
  756. data/spec/unit_tests_platinum/unit/watcher/deactivate_watch_test.rb +43 -0
  757. data/spec/unit_tests_platinum/unit/watcher/delete_watch_test.rb +43 -0
  758. data/spec/unit_tests_platinum/unit/watcher/execute_watch_test.rb +55 -0
  759. data/spec/unit_tests_platinum/unit/watcher/get_watch_test.rb +43 -0
  760. data/spec/unit_tests_platinum/unit/watcher/put_watch_test.rb +43 -0
  761. data/spec/unit_tests_platinum/unit/watcher/query_watches_test.rb +52 -0
  762. data/spec/unit_tests_platinum/unit/watcher/start_test.rb +41 -0
  763. data/spec/unit_tests_platinum/unit/watcher/stats_test.rb +43 -0
  764. data/spec/unit_tests_platinum/unit/watcher/stop_test.rb +43 -0
  765. data/utils/Gemfile +6 -4
  766. data/utils/README.md +38 -0
  767. data/utils/Thorfile +3 -17
  768. data/utils/thor/.rubocop.yml +2 -0
  769. data/utils/thor/generate_source.rb +223 -87
  770. data/utils/thor/generator/endpoint_specifics.rb +159 -0
  771. data/utils/thor/generator/files_helper.rb +65 -0
  772. data/utils/thor/lister.rb +4 -5
  773. data/utils/thor/templates/_body.erb +34 -0
  774. data/utils/thor/templates/_documentation_top.erb +57 -0
  775. data/utils/thor/templates/_method_setup.erb +41 -0
  776. data/utils/thor/templates/_perform_request.erb +50 -0
  777. data/utils/thor/templates/method.erb +68 -0
  778. data/utils/thor/templates/{ruby/test.erb → test.erb} +1 -1
  779. data/utils/thor/templates/{ruby/test_helper.rb → test_helper.rb} +1 -5
  780. metadata +727 -89
  781. data/lib/elasticsearch/api/actions/benchmark.rb +0 -82
  782. data/lib/elasticsearch/api/actions/cat/params_registry.rb +0 -61
  783. data/lib/elasticsearch/api/actions/cluster/params_registry.rb +0 -61
  784. data/lib/elasticsearch/api/actions/indices/freeze.rb +0 -40
  785. data/lib/elasticsearch/api/actions/indices/params_registry.rb +0 -61
  786. data/lib/elasticsearch/api/actions/ingest/params_registry.rb +0 -61
  787. data/lib/elasticsearch/api/actions/nodes/params_registry.rb +0 -61
  788. data/lib/elasticsearch/api/actions/nodes/shutdown.rb +0 -56
  789. data/lib/elasticsearch/api/actions/params_registry.rb +0 -59
  790. data/lib/elasticsearch/api/actions/snapshot/params_registry.rb +0 -61
  791. data/lib/elasticsearch/api/actions/tasks/params_registry.rb +0 -61
  792. data/spec/elasticsearch/api/actions/indices/flush_synced_spec.rb +0 -90
  793. data/spec/elasticsearch/api/actions/indices/freeze_spec.rb +0 -68
  794. data/spec/rest_yaml_tests_helper.rb +0 -94
  795. data/test/integration/yaml_test_runner.rb +0 -592
  796. data/test/test_helper.rb +0 -118
  797. data/utils/thor/generate_api.rb +0 -206
  798. data/utils/thor/templates/ruby/method.erb +0 -75
@@ -0,0 +1,340 @@
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
+
18
+ module Elasticsearch
19
+ module RestAPIYAMLTests
20
+ class TestFile
21
+ class Test
22
+ # Representation of a block of actions consisting of some 'do' actions and their verifications.
23
+ #
24
+ # For example, this is a task group:
25
+ #
26
+ # - do:
27
+ # xpack.security.get_role:
28
+ # name: "admin_role"
29
+ # - match: { admin_role.cluster.0: "all" }
30
+ # - match: { admin_role.metadata.key1: "val1" }
31
+ # - match: { admin_role.metadata.key2: "val2" }
32
+ #
33
+ # @since 6.2.0
34
+ class TaskGroup
35
+ attr_reader :exception, :response, :test
36
+
37
+ # Initialize a TaskGroup object.
38
+ #
39
+ # @example Create a TaskGroup
40
+ # TaskGroup.new(test)
41
+ #
42
+ # @param [ Test ] test The test this task group is part of.
43
+ #
44
+ # @since 6.2.0
45
+ def initialize(test)
46
+ @actions = []
47
+ @exception = nil
48
+ @response = nil
49
+ @variables = {}
50
+ @test = test
51
+ end
52
+
53
+ # Add an action to the task group definition.
54
+ #
55
+ # @example Add an action
56
+ # task_group.add_action(action)
57
+ #
58
+ # @param [ Hash ] action The hash representation of an action.
59
+ #
60
+ # @return [ self ]
61
+ #
62
+ # @since 6.2.0
63
+ def add_action(action)
64
+ @actions << action if ACTIONS.any? { |a| action[a] }
65
+ self
66
+ end
67
+
68
+ # Run the actions in the task group.
69
+ #
70
+ # @example Run the actions
71
+ # task_group.run(client)
72
+ #
73
+ # @param [ Elasticsearch::Client ] client The client to use to run the actions.
74
+ #
75
+ # @return [ self ]
76
+ #
77
+ # @since 6.2.0
78
+ def run(client)
79
+ # Allow the actions to be execute only once.
80
+ return if @executed
81
+ @executed = true
82
+
83
+ do_actions.inject(client) do |_client, action|
84
+ action.execute(_client, test)
85
+ # Cache the result of the action, if a set action is defined.
86
+ set_variable(action)
87
+ transform_and_set_variable(action)
88
+ _client
89
+ end
90
+ self
91
+ rescue => ex
92
+ raise ex unless catch_exception?
93
+ # Cache the exception raised as a result of the operation, if the task group has a 'catch' defined.
94
+ @exception = ex
95
+ end
96
+
97
+ # Consider the response of interest the one resulting from the last action.
98
+ #
99
+ # @return [ Hash ] The response from the last action.
100
+ #
101
+ # @since 6.2.0
102
+ def response
103
+ @response ||= begin
104
+ if do_actions.any? { |a| a.yaml_response? }
105
+ YAML.load(do_actions[-1].response)
106
+ else
107
+ do_actions[-1].response
108
+ end
109
+ end
110
+ end
111
+
112
+ # Does this task group expect to raise an exception for an action?
113
+ #
114
+ # @return [ true, false ] If the task group contains an action expected to raise an exception.
115
+ #
116
+ # @since 6.2.0
117
+ def catch_exception?
118
+ !!expected_exception_message
119
+ end
120
+
121
+ # Does this task group have match clauses.
122
+ #
123
+ # @return [ true, false ] If the task group has match clauses.
124
+ #
125
+ # @since 6.2.0
126
+ def has_match_clauses?
127
+ !!match_clauses
128
+ end
129
+
130
+ # Does this task group have match clauses on field value length.
131
+ #
132
+ # @return [ true, false ] If the task group has match clauses on field value length.
133
+ #
134
+ # @since 6.2.0
135
+ def has_length_match_clauses?
136
+ !!length_match_clauses
137
+ end
138
+
139
+ # Does this task group have match clauses on a field value being true.
140
+ #
141
+ # @return [ true, false ] If the task group has match clauses on a field value being true.
142
+ #
143
+ # @since 6.2.0
144
+ def has_true_clauses?
145
+ !!true_clauses
146
+ end
147
+
148
+ # Does this task group have match clauses on a field value being false.
149
+ #
150
+ # @return [ true, false ] If the task group has match clauses on a field value being false.
151
+ #
152
+ # @since 6.2.0
153
+ def has_false_clauses?
154
+ !!false_clauses
155
+ end
156
+
157
+ # Does this task group have clauses on a field value being gte.
158
+ #
159
+ # @return [ true, false ] If the task group has clauses on a field value being gte.
160
+ #
161
+ # @since 6.2.0
162
+ def has_gte_clauses?
163
+ !!gte_clauses
164
+ end
165
+
166
+ # Does this task group have clauses on a field value being gt.
167
+ #
168
+ # @return [ true, false ] If the task group has clauses on a field value being gt.
169
+ #
170
+ # @since 6.2.0
171
+ def has_gt_clauses?
172
+ !!gt_clauses
173
+ end
174
+
175
+ # Does this task group have clauses on a field value being lte.
176
+ #
177
+ # @return [ true, false ] If the task group has clauses on a field value being lte.
178
+ #
179
+ # @since 6.2.0
180
+ def has_lte_clauses?
181
+ !!lte_clauses
182
+ end
183
+
184
+ # Does this task group have clauses on a field value being lt.
185
+ #
186
+ # @return [ true, false ] If the task group has clauses on a field value being lt.
187
+ #
188
+ # @since 6.2.0
189
+ def has_lt_clauses?
190
+ !!lt_clauses
191
+ end
192
+
193
+ # The expected exception message.
194
+ #
195
+ # @return [ String ] The expected exception message.
196
+ #
197
+ # @since 6.2.0
198
+ def expected_exception_message
199
+ @expected_exception_message ||= begin
200
+ if do_definitions = @actions.group_by { |a| a.keys.first }['do']
201
+ if catch_exception = do_definitions.find { |a| a['do']['catch'] }
202
+ catch_exception['do']['catch']
203
+ end
204
+ end
205
+ end
206
+ end
207
+
208
+ # The match clauses.
209
+ #
210
+ # @return [ Array<Hash> ] The match clauses.
211
+ #
212
+ # @since 6.2.0
213
+ def match_clauses
214
+ @match_actions ||= @actions.group_by { |a| a.keys.first }['match']
215
+ end
216
+
217
+ # The true match clauses.
218
+ #
219
+ # @return [ Array<Hash> ] The true match clauses.
220
+ #
221
+ # @since 6.2.0
222
+ def true_clauses
223
+ @true_clauses ||= @actions.group_by { |a| a.keys.first }['is_true']
224
+ end
225
+
226
+ # The false match clauses.
227
+ #
228
+ # @return [ Array<Hash> ] The false match clauses.
229
+ #
230
+ # @since 6.2.0
231
+ def false_clauses
232
+ @false_clauses ||= @actions.group_by { |a| a.keys.first }['is_false']
233
+ end
234
+
235
+ # The gte clauses.
236
+ #
237
+ # @return [ Array<Hash> ] The gte clauses.
238
+ #
239
+ # @since 6.2.0
240
+ def gte_clauses
241
+ @gte_clauses ||= @actions.group_by { |a| a.keys.first }['gte']
242
+ end
243
+
244
+ # The gt clauses.
245
+ #
246
+ # @return [ Array<Hash> ] The gt clauses.
247
+ #
248
+ # @since 6.2.0
249
+ def gt_clauses
250
+ @gt_clauses ||= @actions.group_by { |a| a.keys.first }['gt']
251
+ end
252
+
253
+ # The lte clauses.
254
+ #
255
+ # @return [ Array<Hash> ] The lte clauses.
256
+ #
257
+ # @since 6.2.0
258
+ def lte_clauses
259
+ @lte_clauses ||= @actions.group_by { |a| a.keys.first }['lte']
260
+ end
261
+
262
+ # The lt clauses.
263
+ #
264
+ # @return [ Array<Hash> ] The lt clauses.
265
+ #
266
+ # @since 6.2.0
267
+ def lt_clauses
268
+ @lt_clauses ||= @actions.group_by { |a| a.keys.first }['lt']
269
+ end
270
+
271
+ # The field length match clauses.
272
+ #
273
+ # @return [ Array<Hash> ] The field length match clauses.
274
+ #
275
+ # @since 6.2.0
276
+ def length_match_clauses
277
+ @match_length ||= @actions.group_by { |a| a.keys.first }['length']
278
+ end
279
+
280
+ private
281
+
282
+ ACTIONS = (Test::GROUP_TERMINATORS + ['do']).freeze
283
+
284
+ def do_actions
285
+ @do_actions ||= @actions.group_by { |a| a.keys.first }['do'].map { |definition| Action.new(definition['do']) }
286
+ end
287
+
288
+ def variables_to_set
289
+ @variables_to_set ||= (@actions.group_by { |a| a.keys.first }['set'] || [])
290
+ end
291
+
292
+ def variables_to_transform_and_set
293
+ @variables_to_transform_and_set ||= (@actions.group_by { |a| a.keys.first }['transform_and_set'] || [])
294
+ end
295
+
296
+ def transform_and_set_variable(action)
297
+ variables_to_transform_and_set.each do |set_definition|
298
+ set_definition['transform_and_set'].each do |response_key, transform_description|
299
+ match_base_64_transform = /(\#base64EncodeCredentials\()(\S*)\)/
300
+ matches = match_base_64_transform.match(transform_description)
301
+ fields = matches[2].split(',') if matches.length > 0
302
+
303
+ values_to_encode = action.response.select do |key|
304
+ fields.include?(key)
305
+ end.values if fields
306
+
307
+ to_set = Base64.strict_encode64(values_to_encode.join(':'))
308
+ @test.cache_value(response_key, to_set)
309
+ end
310
+ end
311
+ end
312
+
313
+ def set_variable(action)
314
+ variables_to_set.each do |set_definition|
315
+ set_definition['set'].each do |response_key, variable_name|
316
+ nested_key_chain = response_key.split('.').map do |key|
317
+ # If there's a variable in the set key, get the value:
318
+ key.gsub!(key, @test.cached_values[key.gsub('$', '')]) if key.match?(/\$.+/)
319
+
320
+ (key =~ /\A[-+]?[0-9]+\z/) ? key.to_i: key
321
+ end
322
+
323
+ if to_set = find_value(nested_key_chain, action.response)
324
+ @test.cache_value(variable_name, to_set)
325
+ end
326
+ end
327
+ end
328
+ end
329
+
330
+ def find_value(chain, document)
331
+ # Return the first key if an 'arbitrary key' should be returned
332
+ return document.keys[0] if chain[0] == '_arbitrary_key_'
333
+ return document[chain[0]] unless chain.size > 1
334
+ find_value(chain[1..-1], document[chain[0]]) if document[chain[0]]
335
+ end
336
+ end
337
+ end
338
+ end
339
+ end
340
+ end
@@ -0,0 +1,295 @@
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
+
18
+ module Elasticsearch
19
+ module RestAPIYAMLTests
20
+ class TestFile
21
+ # Represents a single test in a test file. A single test can have many operations and validations.
22
+ #
23
+ # @since 6.2.0
24
+ class Test
25
+ class << self
26
+ # Given a list of keys, find the value in a recursively nested document.
27
+ #
28
+ # @param [ Array<String> ] chain The list of nested document keys.
29
+ # @param [ Hash ] document The document to find the value in.
30
+ #
31
+ # @return [ Object ] The value at the nested key.
32
+ #
33
+ # @since 6.2.0
34
+ def find_value_in_document(chain, document)
35
+ return document[chain] unless chain.is_a?(Array)
36
+ return document[chain[0]] unless chain.size > 1
37
+
38
+ # a number can be a string key in a Hash or indicate an element in a list
39
+ if document.is_a?(Hash)
40
+ find_value_in_document(chain[1..-1], document[chain[0].to_s]) if document[chain[0].to_s]
41
+ elsif document[chain[0]]
42
+ find_value_in_document(chain[1..-1], document[chain[0]]) if document[chain[0]]
43
+ end
44
+ end
45
+
46
+ # Given a string representing a nested document key using dot notation,
47
+ # split it, keeping escaped dots as part of a key name and replacing
48
+ # numerics with a Ruby Integer.
49
+ #
50
+ # For example:
51
+ # "joe.metadata.2.key2" => ['joe', 'metadata', 2, 'key2']
52
+ # "jobs.0.node.attributes.ml\\.enabled" => ["jobs", 0, "node", "attributes", "ml\\.enabled"]
53
+ #
54
+ # @param [ String ] chain The list of nested document keys.
55
+ # @param [ Hash ] document The document to find the value in.
56
+ #
57
+ # @return [ Array<Object> ] A list of the nested keys.
58
+ #
59
+ # @since 6.2.0
60
+ def split_and_parse_key(key)
61
+ key.split(/(?<!\\)\./).reject { |k| k.empty? }.map do |key_part|
62
+ case key_part
63
+ when /^\.\$/ # For keys in the form of .$key
64
+ key_part.gsub(/^\./, '')
65
+ when /\A[-+]?[0-9]+\z/
66
+ key_part.to_i
67
+ else
68
+ key_part.gsub('\\', '')
69
+ end
70
+ end.reject { |k| k == '$body' }
71
+ end
72
+ end
73
+
74
+ attr_reader :description, :test_file, :cached_values, :file_basename
75
+
76
+ # Actions that if followed by a 'do' action, indicate that they complete their task group.
77
+ # For example, consider this sequence of actions:
78
+ # do, do, match, match, do, match
79
+ # The second match indicates that the task group is complete and can be run as a unit.
80
+ # That sequence becomes two task groups:
81
+ # do, do, match, match
82
+ # do, match
83
+ #
84
+ # @since 6.2.0
85
+ GROUP_TERMINATORS = [
86
+ 'length',
87
+ 'gt',
88
+ 'gte',
89
+ 'lt',
90
+ 'lte',
91
+ 'set',
92
+ 'transform_and_set',
93
+ 'match',
94
+ 'is_false',
95
+ 'is_true'
96
+ ].freeze
97
+
98
+ # The maximum Elasticsearch version this client version can successfully run tests against.
99
+ #
100
+ # @since 6.2.0
101
+ MAX_REQUIRED_VERSION = nil
102
+
103
+ # The minimum Elasticsearch version this client version can successfully run tests against.
104
+ #
105
+ # @since 6.2.0
106
+ MIN_REQUIRED_VERSION = nil
107
+
108
+ # Initialize the Test object.
109
+ #
110
+ # @example Create a test object
111
+ # Test.new(file, definition)
112
+ #
113
+ # @param [ String ] test_file The name of the test file.
114
+ # @param [ Hash ] test_definition A hash corresponding to the parsed YAML containing the test definition.
115
+ #
116
+ # @since 6.2.0
117
+ def initialize(test_file, test_definition)
118
+ @test_file = test_file
119
+ @file_basename = test_file.name.gsub("#{YAML_FILES_DIRECTORY}/", '')
120
+ @description = test_definition.keys.first
121
+ @definition = test_definition[description].select { |doc| !doc.key?('skip') }
122
+ @definition.delete_if { |doc| doc['skip'] }
123
+ @cached_values = {}
124
+ skip_definitions = test_definition[description].select { |doc| doc['skip'] }.compact
125
+ @skip = skip_definitions unless skip_definitions.empty?
126
+ end
127
+
128
+ # Get the list of task groups in this test.
129
+ #
130
+ # @example
131
+ # test.task_groups
132
+ #
133
+ # @return [ Array<TaskGroup> ] The list of task groups.
134
+ #
135
+ # @since 6.2.0
136
+ def task_groups
137
+ @task_groups ||= begin
138
+ @definition.each_with_index.inject([]) do |task_groups, (action, i)|
139
+ # the action has a catch, it's a singular task group
140
+ if action['do'] && action['do']['catch']
141
+ task_groups << TaskGroup.new(self)
142
+ elsif action['do'] && i > 0 && is_a_validation?(@definition[i-1])
143
+ task_groups << TaskGroup.new(self)
144
+ elsif i == 0
145
+ task_groups << TaskGroup.new(self)
146
+ end
147
+
148
+ task_groups[-1].add_action(action) && task_groups
149
+ end
150
+ end
151
+ end
152
+
153
+ # Cache a value on this test object.
154
+ #
155
+ # @example
156
+ # test.cache_value(cache_key, value)
157
+ #
158
+ # @param [ String ] cache_key The cache key for the value.
159
+ # @param [ Object ] value The value to cache.
160
+ #
161
+ # @return [ Hash ] The cached values.
162
+ #
163
+ # @since 6.2.0
164
+ def cache_value(cache_key, value)
165
+ @cached_values[cache_key] = value
166
+ @cached_values
167
+ end
168
+
169
+ # Get a cached value.
170
+ #
171
+ # @example
172
+ # test.get_cached_value('$watch_count_active')
173
+ #
174
+ # @param [ String ] key The key of the cached value.
175
+ #
176
+ # @return [ Hash ] The cached value at the key or the key if it's not found.
177
+ #
178
+ # @since 6.2.0
179
+ def get_cached_value(key)
180
+ case key
181
+ when String
182
+ key =~ /^\$/ ? @cached_values.fetch(key.gsub(/[\$\{\}]/, ''), key) : key
183
+ when Hash
184
+ key.inject({}) do |hash, (k, v)|
185
+ if v.is_a?(String)
186
+ hash.merge(@cached_values.fetch(k.gsub(/[\$\{\}]/, ''), k) => @cached_values.fetch(v.gsub(/[\$\{\}]/, ''), v))
187
+ else
188
+ hash.merge(@cached_values.fetch(k.gsub(/[\$\{\}]/, ''), k) => v)
189
+ end
190
+ end
191
+ when Array
192
+ key.collect do |k|
193
+ k.is_a?(String) ? @cached_values.fetch(k.gsub(/[\$\{\}]/, ''), k) : k
194
+ end
195
+ else
196
+ key
197
+ end
198
+ end
199
+
200
+ # Run all the tasks in this test.
201
+ #
202
+ # @example
203
+ # test.run(client)
204
+ #
205
+ # @param [ Elasticsearch::Client ] client The client to use when executing operations.
206
+ #
207
+ # @return [ self ]
208
+ #
209
+ # @since 6.2.0
210
+ def run(client)
211
+ task_groups.each { |task_group| task_group.run(client) }
212
+ self
213
+ end
214
+
215
+ # Determine whether this test should be skipped, given a list of unsupported features.
216
+ #
217
+ # @example
218
+ # test.skip_test?(['warnings'])
219
+ #
220
+ # @param [ Array<String> ] features_to_skip A list of the features to skip.
221
+ #
222
+ # @return [ true, false ] Whether this test should be skipped, given a list of unsupported features.
223
+ #
224
+ # @since 6.2.0
225
+ def skip_test?(client, features_to_skip = test_file.features_to_skip)
226
+ return true if pre_defined_skip?
227
+
228
+ if @skip
229
+ @skip.collect { |s| s['skip'] }.any? do |skip_definition|
230
+ contains_features_to_skip?(features_to_skip, skip_definition) || test_file.skip_version?(client, skip_definition)
231
+ end
232
+ end
233
+ end
234
+
235
+ # Replace the `$master` substring in a key with the cached master node's id.
236
+ #
237
+ # @param [ String ] expected_key The expected key, containing the substring `$master` that needs to be replaced.
238
+ #
239
+ # See test xpack/10_basic.yml
240
+
241
+ # @return [ String ] The altered key.
242
+ #
243
+ # @since 7.2.0
244
+ def inject_master_node_id(expected_key)
245
+ if cached_values['master']
246
+ expected_key.gsub(/\$master/, cached_values['master'])
247
+ else
248
+ expected_key
249
+ end
250
+ end
251
+
252
+ private
253
+
254
+ def contains_features_to_skip?(features_to_skip, skip_definition)
255
+ !(features_to_skip & ([skip_definition['features']].flatten || [])).empty?
256
+ end
257
+
258
+ def pre_defined_skip?
259
+ SKIPPED_TESTS.find do |t|
260
+ file_basename == t[:file] && (description == t[:description] || t[:description] == '*')
261
+ end
262
+ end
263
+
264
+ # Given the server version and the skip definition version, returns if a
265
+ # test should be skipped. It will return true if the server version is
266
+ # contained in the range of the test's skip definition version.
267
+ #
268
+ def skip_version?(client, skip_definition)
269
+ return true if skip_definition['version'] == 'all'
270
+
271
+ range_partition = /\s*-\s*/
272
+ if versions = skip_definition['version'] &&
273
+ skip_definition['version'].partition(range_partition)
274
+ low, high = __parse_versions(versions)
275
+ range = low..high
276
+ begin
277
+ server_version = client.info['version']['number']
278
+ rescue
279
+ warn('Could not determine Elasticsearch version when checking if test should be skipped.')
280
+ end
281
+ range.cover?(server_version)
282
+ end
283
+ end
284
+
285
+ def is_a_validation?(action)
286
+ GROUP_TERMINATORS.any? { |validation| action[validation] } || expects_exception?(action)
287
+ end
288
+
289
+ def expects_exception?(action)
290
+ action['do'] && action['do']['catch']
291
+ end
292
+ end
293
+ end
294
+ end
295
+ end