opensearch-ruby 2.1.0 → 3.0.1

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 (432) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/README.md +80 -46
  4. data/USER_GUIDE.md +146 -0
  5. data/bin/opensearch_ruby_console +4 -34
  6. data/lib/opensearch/api/actions/abort_benchmark.rb +49 -0
  7. data/lib/opensearch/api/actions/benchmark.rb +88 -0
  8. data/lib/opensearch/api/actions/bulk.rb +91 -0
  9. data/lib/opensearch/api/actions/cat/aliases.rb +79 -0
  10. data/lib/opensearch/api/actions/cat/all_pit_segments.rb +45 -0
  11. data/lib/opensearch/api/actions/cat/allocation.rb +83 -0
  12. data/lib/opensearch/api/actions/cat/cluster_manager.rb +54 -0
  13. data/lib/opensearch/api/actions/cat/count.rb +75 -0
  14. data/lib/opensearch/api/actions/cat/fielddata.rb +77 -0
  15. data/lib/opensearch/api/actions/cat/health.rb +72 -0
  16. data/lib/opensearch/api/actions/cat/help.rb +61 -0
  17. data/lib/opensearch/api/actions/cat/indices.rb +93 -0
  18. data/lib/opensearch/api/actions/cat/master.rb +73 -0
  19. data/lib/opensearch/api/actions/cat/nodeattrs.rb +73 -0
  20. data/lib/opensearch/api/actions/cat/nodes.rb +82 -0
  21. data/lib/opensearch/api/actions/cat/params_registry.rb +69 -0
  22. data/lib/opensearch/api/actions/cat/pending_tasks.rb +76 -0
  23. data/lib/opensearch/api/actions/cat/pit_segments.rb +48 -0
  24. data/lib/opensearch/api/actions/cat/plugins.rb +75 -0
  25. data/lib/opensearch/api/actions/cat/recovery.rb +84 -0
  26. data/lib/opensearch/api/actions/cat/repositories.rb +73 -0
  27. data/lib/opensearch/api/actions/cat/segments.rb +76 -0
  28. data/lib/opensearch/api/actions/cat/shards.rb +85 -0
  29. data/lib/opensearch/api/actions/cat/snapshots.rb +82 -0
  30. data/lib/opensearch/api/actions/cat/tasks.rb +77 -0
  31. data/lib/opensearch/api/actions/cat/templates.rb +80 -0
  32. data/lib/opensearch/api/actions/cat/thread_pool.rb +84 -0
  33. data/lib/opensearch/api/actions/clear_scroll.rb +62 -0
  34. data/lib/opensearch/api/actions/cluster/allocation_explain.rb +67 -0
  35. data/lib/opensearch/api/actions/cluster/delete_component_template.rb +68 -0
  36. data/lib/opensearch/api/actions/cluster/delete_voting_config_exclusions.rb +59 -0
  37. data/lib/opensearch/api/actions/cluster/exists_component_template.rb +70 -0
  38. data/lib/opensearch/api/actions/cluster/get_component_template.rb +70 -0
  39. data/lib/opensearch/api/actions/cluster/get_settings.rb +67 -0
  40. data/lib/opensearch/api/actions/cluster/health.rb +88 -0
  41. data/lib/opensearch/api/actions/cluster/params_registry.rb +69 -0
  42. data/lib/opensearch/api/actions/cluster/pending_tasks.rb +64 -0
  43. data/lib/opensearch/api/actions/cluster/post_voting_config_exclusions.rb +63 -0
  44. data/lib/opensearch/api/actions/cluster/put_component_template.rb +72 -0
  45. data/lib/opensearch/api/actions/cluster/put_settings.rb +68 -0
  46. data/{spec/unit/wrapper_gem_spec.rb → lib/opensearch/api/actions/cluster/remote_info.rb} +20 -17
  47. data/lib/opensearch/api/actions/cluster/reroute.rb +72 -0
  48. data/lib/opensearch/api/actions/cluster/state.rb +87 -0
  49. data/lib/opensearch/api/actions/cluster/stats.rb +68 -0
  50. data/lib/opensearch/api/actions/count.rb +96 -0
  51. data/lib/opensearch/api/actions/create.rb +60 -0
  52. data/lib/opensearch/api/actions/create_pit.rb +45 -0
  53. data/lib/opensearch/api/actions/dangling_indices/delete_dangling_index.rb +70 -0
  54. data/lib/opensearch/api/actions/dangling_indices/import_dangling_index.rb +69 -0
  55. data/lib/opensearch/api/actions/dangling_indices/list_dangling_indices.rb +51 -0
  56. data/lib/opensearch/api/actions/dangling_indices/params_registry.rb +69 -0
  57. data/lib/opensearch/api/actions/delete.rb +89 -0
  58. data/lib/opensearch/api/actions/delete_all_pits.rb +26 -0
  59. data/lib/opensearch/api/actions/delete_by_query.rb +133 -0
  60. data/lib/opensearch/api/actions/delete_by_query_rethrottle.rb +62 -0
  61. data/lib/opensearch/api/actions/delete_by_rethrottle.rb +55 -0
  62. data/lib/opensearch/api/actions/delete_pit.rb +30 -0
  63. data/lib/opensearch/api/actions/delete_script.rb +66 -0
  64. data/lib/opensearch/api/actions/exists.rb +94 -0
  65. data/lib/opensearch/api/actions/exists_source.rb +89 -0
  66. data/lib/opensearch/api/actions/explain.rb +99 -0
  67. data/lib/opensearch/api/actions/features/get_features.rb +61 -0
  68. data/lib/opensearch/api/actions/features/params_registry.rb +69 -0
  69. data/lib/opensearch/api/actions/features/reset_features.rb +55 -0
  70. data/lib/opensearch/api/actions/field_caps.rb +78 -0
  71. data/lib/opensearch/api/actions/get.rb +93 -0
  72. data/lib/opensearch/api/actions/get_all_pits.rb +26 -0
  73. data/lib/opensearch/api/actions/get_script.rb +64 -0
  74. data/lib/opensearch/api/actions/get_script_context.rb +53 -0
  75. data/lib/opensearch/api/actions/get_script_languages.rb +53 -0
  76. data/lib/opensearch/api/actions/get_source.rb +87 -0
  77. data/lib/opensearch/api/actions/index.rb +96 -0
  78. data/lib/opensearch/api/actions/indices/add_block.rb +78 -0
  79. data/lib/opensearch/api/actions/indices/analyze.rb +71 -0
  80. data/lib/opensearch/api/actions/indices/clear_cache.rb +79 -0
  81. data/lib/opensearch/api/actions/indices/clone.rb +75 -0
  82. data/lib/opensearch/api/actions/indices/close.rb +76 -0
  83. data/lib/opensearch/api/actions/indices/create.rb +71 -0
  84. data/lib/opensearch/api/actions/indices/delete.rb +78 -0
  85. data/lib/opensearch/api/actions/indices/delete_alias.rb +72 -0
  86. data/lib/opensearch/api/actions/indices/delete_index_template.rb +68 -0
  87. data/lib/opensearch/api/actions/indices/delete_template.rb +72 -0
  88. data/lib/opensearch/api/actions/indices/disk_usage.rb +76 -0
  89. data/lib/opensearch/api/actions/indices/exists.rb +79 -0
  90. data/lib/opensearch/api/actions/indices/exists_alias.rb +82 -0
  91. data/lib/opensearch/api/actions/indices/exists_index_template.rb +72 -0
  92. data/lib/opensearch/api/actions/indices/exists_template.rb +75 -0
  93. data/lib/opensearch/api/actions/indices/field_usage_stats.rb +74 -0
  94. data/lib/opensearch/api/actions/indices/flush.rb +74 -0
  95. data/lib/opensearch/api/actions/indices/forcemerge.rb +76 -0
  96. data/lib/opensearch/api/actions/indices/get.rb +78 -0
  97. data/lib/opensearch/api/actions/indices/get_alias.rb +79 -0
  98. data/lib/opensearch/api/actions/indices/get_field_mapping.rb +83 -0
  99. data/lib/opensearch/api/actions/indices/get_index_template.rb +72 -0
  100. data/lib/opensearch/api/actions/indices/get_mapping.rb +81 -0
  101. data/lib/opensearch/api/actions/indices/get_settings.rb +87 -0
  102. data/lib/opensearch/api/actions/indices/get_template.rb +72 -0
  103. data/lib/opensearch/api/actions/indices/get_upgrade.rb +75 -0
  104. data/lib/opensearch/api/actions/indices/open.rb +76 -0
  105. data/lib/opensearch/api/actions/indices/params_registry.rb +69 -0
  106. data/lib/opensearch/api/actions/indices/put_alias.rb +73 -0
  107. data/lib/opensearch/api/actions/indices/put_index_template.rb +72 -0
  108. data/lib/opensearch/api/actions/indices/put_mapping.rb +82 -0
  109. data/lib/opensearch/api/actions/indices/put_settings.rb +83 -0
  110. data/lib/opensearch/api/actions/indices/put_template.rb +72 -0
  111. data/lib/opensearch/api/actions/indices/recovery.rb +68 -0
  112. data/lib/opensearch/api/actions/indices/refresh.rb +70 -0
  113. data/lib/opensearch/api/actions/indices/resolve_index.rb +68 -0
  114. data/lib/opensearch/api/actions/indices/rollover.rb +81 -0
  115. data/lib/opensearch/api/actions/indices/segments.rb +72 -0
  116. data/lib/opensearch/api/actions/indices/shard_stores.rb +72 -0
  117. data/lib/opensearch/api/actions/indices/shrink.rb +77 -0
  118. data/lib/opensearch/api/actions/indices/simulate_index_template.rb +71 -0
  119. data/lib/opensearch/api/actions/indices/simulate_template.rb +73 -0
  120. data/lib/opensearch/api/actions/indices/split.rb +77 -0
  121. data/lib/opensearch/api/actions/indices/stats.rb +100 -0
  122. data/lib/opensearch/api/actions/indices/update_aliases.rb +66 -0
  123. data/lib/opensearch/api/actions/indices/upgrade.rb +79 -0
  124. data/lib/opensearch/api/actions/indices/validate_query.rb +99 -0
  125. data/{Gemfile → lib/opensearch/api/actions/info.rb} +19 -8
  126. data/lib/opensearch/api/actions/ingest/delete_pipeline.rb +68 -0
  127. data/lib/opensearch/api/actions/ingest/geo_ip_stats.rb +51 -0
  128. data/lib/opensearch/api/actions/ingest/get_pipeline.rb +70 -0
  129. data/lib/opensearch/api/actions/ingest/params_registry.rb +69 -0
  130. data/lib/opensearch/api/actions/ingest/processor_grok.rb +51 -0
  131. data/lib/opensearch/api/actions/ingest/put_pipeline.rb +70 -0
  132. data/lib/opensearch/api/actions/ingest/simulate.rb +69 -0
  133. data/lib/opensearch/api/actions/mget.rb +86 -0
  134. data/lib/opensearch/api/actions/msearch.rb +105 -0
  135. data/lib/opensearch/api/actions/msearch_template.rb +89 -0
  136. data/lib/opensearch/api/actions/mtermvectors.rb +102 -0
  137. data/lib/opensearch/api/actions/nodes/hot_threads.rb +81 -0
  138. data/lib/opensearch/api/actions/nodes/info.rb +75 -0
  139. data/lib/opensearch/api/actions/nodes/params_registry.rb +69 -0
  140. data/lib/opensearch/api/actions/nodes/reload_secure_settings.rb +67 -0
  141. data/lib/opensearch/api/actions/nodes/shutdown.rb +65 -0
  142. data/lib/opensearch/api/actions/nodes/stats.rb +96 -0
  143. data/lib/opensearch/api/actions/nodes/usage.rb +73 -0
  144. data/lib/opensearch/api/actions/params_registry.rb +67 -0
  145. data/lib/opensearch/api/actions/ping.rb +54 -0
  146. data/lib/opensearch/api/actions/put_script.rb +76 -0
  147. data/lib/opensearch/api/actions/rank_eval.rb +77 -0
  148. data/lib/opensearch/api/actions/reindex.rb +76 -0
  149. data/lib/opensearch/api/actions/reindex_rethrottle.rb +62 -0
  150. data/{spec/integration/security_disabled/validation_integration_spec.rb → lib/opensearch/api/actions/remote/info.rb} +17 -11
  151. data/lib/opensearch/api/actions/remote_store/restore.rb +43 -0
  152. data/lib/opensearch/api/actions/render_search_template.rb +62 -0
  153. data/lib/opensearch/api/actions/scripts_painless_execute.rb +59 -0
  154. data/lib/opensearch/api/actions/scroll.rb +78 -0
  155. data/lib/opensearch/api/actions/search.rb +159 -0
  156. data/lib/opensearch/api/actions/search_shards.rb +74 -0
  157. data/lib/opensearch/api/actions/search_template.rb +96 -0
  158. data/lib/opensearch/api/actions/security/change_password.rb +39 -0
  159. data/lib/opensearch/api/actions/security/create_action_group.rb +42 -0
  160. data/lib/opensearch/api/actions/security/create_role.rb +43 -0
  161. data/lib/opensearch/api/actions/security/create_role_mapping.rb +43 -0
  162. data/lib/opensearch/api/actions/security/create_tenant.rb +42 -0
  163. data/lib/opensearch/api/actions/security/create_user.rb +43 -0
  164. data/lib/opensearch/api/actions/security/delete_action_group.rb +41 -0
  165. data/lib/opensearch/api/actions/security/delete_distinguished_names.rb +41 -0
  166. data/lib/opensearch/api/actions/security/delete_role.rb +41 -0
  167. data/lib/opensearch/api/actions/security/delete_role_mapping.rb +41 -0
  168. data/lib/opensearch/api/actions/security/delete_tenant.rb +41 -0
  169. data/lib/opensearch/api/actions/security/delete_user.rb +41 -0
  170. data/lib/opensearch/api/actions/security/flush_cache.rb +36 -0
  171. data/lib/opensearch/api/actions/security/get_account_details.rb +36 -0
  172. data/lib/opensearch/api/actions/security/get_action_group.rb +41 -0
  173. data/lib/opensearch/api/actions/security/get_action_groups.rb +36 -0
  174. data/lib/opensearch/api/actions/security/get_audit_configuration.rb +36 -0
  175. data/lib/opensearch/api/actions/security/get_certificates.rb +36 -0
  176. data/lib/opensearch/api/actions/security/get_configuration.rb +36 -0
  177. data/lib/opensearch/api/actions/security/get_distinguished_names.rb +39 -0
  178. data/lib/opensearch/api/actions/security/get_role.rb +41 -0
  179. data/lib/opensearch/api/actions/security/get_role_mapping.rb +41 -0
  180. data/lib/opensearch/api/actions/security/get_role_mappings.rb +36 -0
  181. data/lib/opensearch/api/actions/security/get_roles.rb +36 -0
  182. data/lib/opensearch/api/actions/security/get_tenant.rb +41 -0
  183. data/lib/opensearch/api/actions/security/get_tenants.rb +36 -0
  184. data/lib/opensearch/api/actions/security/get_user.rb +41 -0
  185. data/lib/opensearch/api/actions/security/get_users.rb +36 -0
  186. data/lib/opensearch/api/actions/security/health.rb +36 -0
  187. data/lib/opensearch/api/actions/security/patch_action_group.rb +42 -0
  188. data/lib/opensearch/api/actions/security/patch_action_groups.rb +37 -0
  189. data/lib/opensearch/api/actions/security/patch_audit_configuration.rb +39 -0
  190. data/lib/opensearch/api/actions/security/patch_configuration.rb +39 -0
  191. data/lib/opensearch/api/actions/security/patch_distinguished_names.rb +39 -0
  192. data/lib/opensearch/api/actions/security/patch_role.rb +43 -0
  193. data/lib/opensearch/api/actions/security/patch_role_mapping.rb +43 -0
  194. data/lib/opensearch/api/actions/security/patch_role_mappings.rb +39 -0
  195. data/lib/opensearch/api/actions/security/patch_roles.rb +39 -0
  196. data/lib/opensearch/api/actions/security/patch_tenant.rb +43 -0
  197. data/lib/opensearch/api/actions/security/patch_tenants.rb +39 -0
  198. data/lib/opensearch/api/actions/security/patch_user.rb +43 -0
  199. data/lib/opensearch/api/actions/security/patch_users.rb +39 -0
  200. data/lib/opensearch/api/actions/security/reload_http_certificates.rb +36 -0
  201. data/lib/opensearch/api/actions/security/reload_transport_certificates.rb +36 -0
  202. data/lib/opensearch/api/actions/security/update_audit_configuration.rb +39 -0
  203. data/lib/opensearch/api/actions/security/update_configuration.rb +39 -0
  204. data/lib/opensearch/api/actions/security/update_distinguished_names.rb +42 -0
  205. data/lib/opensearch/api/actions/shutdown/delete_node.rb +60 -0
  206. data/lib/opensearch/api/actions/shutdown/get_node.rb +62 -0
  207. data/lib/opensearch/api/actions/shutdown/params_registry.rb +69 -0
  208. data/lib/opensearch/api/actions/shutdown/put_node.rb +62 -0
  209. data/lib/opensearch/api/actions/snapshot/cleanup_repository.rb +68 -0
  210. data/lib/opensearch/api/actions/snapshot/clone.rb +76 -0
  211. data/lib/opensearch/api/actions/snapshot/create.rb +73 -0
  212. data/lib/opensearch/api/actions/snapshot/create_repository.rb +72 -0
  213. data/lib/opensearch/api/actions/snapshot/delete.rb +74 -0
  214. data/lib/opensearch/api/actions/snapshot/delete_repository.rb +72 -0
  215. data/lib/opensearch/api/actions/snapshot/get.rb +82 -0
  216. data/lib/opensearch/api/actions/snapshot/get_features.rb +61 -0
  217. data/lib/opensearch/api/actions/snapshot/get_repository.rb +73 -0
  218. data/lib/opensearch/api/actions/snapshot/params_registry.rb +69 -0
  219. data/lib/opensearch/api/actions/snapshot/repository_analyze.rb +84 -0
  220. data/lib/opensearch/api/actions/snapshot/restore.rb +73 -0
  221. data/lib/opensearch/api/actions/snapshot/status.rb +79 -0
  222. data/lib/opensearch/api/actions/snapshot/verify_repository.rb +68 -0
  223. data/lib/opensearch/api/actions/tasks/cancel.rb +76 -0
  224. data/lib/opensearch/api/actions/tasks/get.rb +68 -0
  225. data/lib/opensearch/api/actions/tasks/list.rb +75 -0
  226. data/lib/opensearch/api/actions/tasks/params_registry.rb +69 -0
  227. data/lib/opensearch/api/actions/termvectors.rb +108 -0
  228. data/lib/opensearch/api/actions/update.rb +99 -0
  229. data/lib/opensearch/api/actions/update_by_query.rb +137 -0
  230. data/lib/opensearch/api/actions/update_by_query_rethrottle.rb +62 -0
  231. data/{spec/integration/security_enabled/validation_integration_spec.rb → lib/opensearch/api/namespace/cat.rb} +19 -12
  232. data/lib/opensearch/api/namespace/cluster.rb +47 -0
  233. data/lib/opensearch/api/namespace/common.rb +72 -0
  234. data/lib/opensearch/api/namespace/dangling_indices.rb +47 -0
  235. data/lib/opensearch/api/namespace/features.rb +47 -0
  236. data/lib/opensearch/api/namespace/indices.rb +47 -0
  237. data/lib/opensearch/api/namespace/ingest.rb +47 -0
  238. data/lib/opensearch/api/namespace/nodes.rb +47 -0
  239. data/lib/opensearch/api/namespace/remote.rb +47 -0
  240. data/lib/opensearch/api/namespace/remote_store.rb +30 -0
  241. data/lib/opensearch/api/namespace/security.rb +30 -0
  242. data/lib/opensearch/api/namespace/shutdown.rb +47 -0
  243. data/lib/opensearch/api/namespace/snapshot.rb +47 -0
  244. data/lib/opensearch/api/namespace/tasks.rb +47 -0
  245. data/lib/opensearch/api/utils.rb +296 -0
  246. data/lib/opensearch/api.rb +103 -0
  247. data/lib/opensearch/dsl/search/aggregation.rb +112 -0
  248. data/lib/opensearch/dsl/search/aggregations/avg.rb +49 -0
  249. data/lib/opensearch/dsl/search/aggregations/cardinality.rb +56 -0
  250. data/lib/opensearch/dsl/search/aggregations/children.rb +63 -0
  251. data/lib/opensearch/dsl/search/aggregations/composite.rb +68 -0
  252. data/lib/opensearch/dsl/search/aggregations/date_histogram.rb +64 -0
  253. data/lib/opensearch/dsl/search/aggregations/date_range.rb +59 -0
  254. data/lib/opensearch/dsl/search/aggregations/extended_stats.rb +48 -0
  255. data/lib/opensearch/dsl/search/aggregations/filter.rb +54 -0
  256. data/lib/opensearch/dsl/search/aggregations/filters.rb +59 -0
  257. data/lib/opensearch/dsl/search/aggregations/geo_bounds.rb +68 -0
  258. data/lib/opensearch/dsl/search/aggregations/geo_distance.rb +63 -0
  259. data/lib/opensearch/dsl/search/aggregations/geohash_grid.rb +59 -0
  260. data/lib/opensearch/dsl/search/aggregations/global.rb +52 -0
  261. data/{spec/integration/security_disabled/client_integration_spec.rb → lib/opensearch/dsl/search/aggregations/histogram.rb} +29 -29
  262. data/lib/opensearch/dsl/search/aggregations/ip_range.rb +55 -0
  263. data/lib/opensearch/dsl/search/aggregations/max.rb +49 -0
  264. data/lib/opensearch/dsl/search/aggregations/min.rb +49 -0
  265. data/lib/opensearch/dsl/search/aggregations/missing.rb +59 -0
  266. data/lib/opensearch/dsl/search/aggregations/nested.rb +57 -0
  267. data/lib/opensearch/dsl/search/aggregations/percentile_ranks.rb +58 -0
  268. data/lib/opensearch/dsl/search/aggregations/percentiles.rb +57 -0
  269. data/lib/opensearch/dsl/search/aggregations/pipeline/avg_bucket.rb +58 -0
  270. data/lib/opensearch/dsl/search/aggregations/pipeline/bucket_script.rb +60 -0
  271. data/lib/opensearch/dsl/search/aggregations/pipeline/bucket_selector.rb +59 -0
  272. data/lib/opensearch/dsl/search/aggregations/pipeline/bucket_sort.rb +111 -0
  273. data/lib/opensearch/dsl/search/aggregations/pipeline/cumulative_sum.rb +57 -0
  274. data/lib/opensearch/dsl/search/aggregations/pipeline/derivative.rb +58 -0
  275. data/lib/opensearch/dsl/search/aggregations/pipeline/extended_stats_bucket.rb +58 -0
  276. data/lib/opensearch/dsl/search/aggregations/pipeline/max_bucket.rb +58 -0
  277. data/lib/opensearch/dsl/search/aggregations/pipeline/min_bucket.rb +58 -0
  278. data/lib/opensearch/dsl/search/aggregations/pipeline/moving_avg.rb +66 -0
  279. data/lib/opensearch/dsl/search/aggregations/pipeline/percentiles_bucket.rb +60 -0
  280. data/lib/opensearch/dsl/search/aggregations/pipeline/serial_diff.rb +60 -0
  281. data/lib/opensearch/dsl/search/aggregations/pipeline/stats_bucket.rb +58 -0
  282. data/lib/opensearch/dsl/search/aggregations/pipeline/sum_bucket.rb +58 -0
  283. data/lib/opensearch/dsl/search/aggregations/range.rb +77 -0
  284. data/lib/opensearch/dsl/search/aggregations/reverse_nested.rb +61 -0
  285. data/lib/opensearch/dsl/search/aggregations/scripted_metric.rb +63 -0
  286. data/lib/opensearch/dsl/search/aggregations/significant_terms.rb +69 -0
  287. data/lib/opensearch/dsl/search/aggregations/stats.rb +61 -0
  288. data/lib/opensearch/dsl/search/aggregations/sum.rb +49 -0
  289. data/lib/opensearch/dsl/search/aggregations/terms.rb +66 -0
  290. data/lib/opensearch/dsl/search/aggregations/top_hits.rb +59 -0
  291. data/lib/opensearch/dsl/search/aggregations/value_count.rb +49 -0
  292. data/lib/opensearch/dsl/search/base_aggregation_component.rb +83 -0
  293. data/lib/opensearch/dsl/search/base_component.rb +191 -0
  294. data/lib/opensearch/dsl/search/base_compound_filter_component.rb +124 -0
  295. data/lib/opensearch/dsl/search/filter.rb +82 -0
  296. data/lib/opensearch/dsl/search/filters/and.rb +70 -0
  297. data/lib/opensearch/dsl/search/filters/bool.rb +103 -0
  298. data/lib/opensearch/dsl/search/filters/exists.rb +56 -0
  299. data/lib/opensearch/dsl/search/filters/geo_bounding_box.rb +69 -0
  300. data/lib/opensearch/dsl/search/filters/geo_distance.rb +81 -0
  301. data/lib/opensearch/dsl/search/filters/geo_distance_range.rb +56 -0
  302. data/lib/opensearch/dsl/search/filters/geo_polygon.rb +65 -0
  303. data/lib/opensearch/dsl/search/filters/geo_shape.rb +59 -0
  304. data/lib/opensearch/dsl/search/filters/geohash_cell.rb +71 -0
  305. data/lib/opensearch/dsl/search/filters/has_child.rb +98 -0
  306. data/lib/opensearch/dsl/search/filters/has_parent.rb +97 -0
  307. data/lib/opensearch/dsl/search/filters/ids.rb +56 -0
  308. data/lib/opensearch/dsl/search/filters/indices.rb +101 -0
  309. data/lib/opensearch/dsl/search/filters/limit.rb +55 -0
  310. data/lib/opensearch/dsl/search/filters/match_all.rb +52 -0
  311. data/lib/opensearch/dsl/search/filters/missing.rb +58 -0
  312. data/lib/opensearch/dsl/search/filters/nested.rb +91 -0
  313. data/lib/opensearch/dsl/search/filters/not.rb +98 -0
  314. data/lib/opensearch/dsl/search/filters/or.rb +70 -0
  315. data/lib/opensearch/dsl/search/filters/prefix.rb +53 -0
  316. data/lib/opensearch/dsl/search/filters/query.rb +77 -0
  317. data/lib/opensearch/dsl/search/filters/range.rb +63 -0
  318. data/lib/opensearch/dsl/search/filters/regexp.rb +58 -0
  319. data/lib/opensearch/dsl/search/filters/script.rb +56 -0
  320. data/lib/opensearch/dsl/search/filters/term.rb +55 -0
  321. data/lib/opensearch/dsl/search/filters/terms.rb +56 -0
  322. data/lib/opensearch/dsl/search/filters/type.rb +58 -0
  323. data/lib/opensearch/dsl/search/highlight.rb +117 -0
  324. data/lib/opensearch/dsl/search/options.rb +80 -0
  325. data/lib/opensearch/dsl/search/queries/bool.rb +110 -0
  326. data/lib/opensearch/dsl/search/queries/boosting.rb +57 -0
  327. data/lib/opensearch/dsl/search/queries/common.rb +62 -0
  328. data/lib/opensearch/dsl/search/queries/constant_score.rb +90 -0
  329. data/lib/opensearch/dsl/search/queries/dis_max.rb +59 -0
  330. data/lib/opensearch/dsl/search/queries/exists.rb +68 -0
  331. data/lib/opensearch/dsl/search/queries/filtered.rb +101 -0
  332. data/lib/opensearch/dsl/search/queries/function_score.rb +122 -0
  333. data/lib/opensearch/dsl/search/queries/fuzzy.rb +69 -0
  334. data/lib/opensearch/dsl/search/queries/fuzzy_like_this.rb +61 -0
  335. data/lib/opensearch/dsl/search/queries/fuzzy_like_this_field.rb +60 -0
  336. data/lib/opensearch/dsl/search/queries/geo_shape.rb +54 -0
  337. data/lib/opensearch/dsl/search/queries/has_child.rb +82 -0
  338. data/lib/opensearch/dsl/search/queries/has_parent.rb +82 -0
  339. data/lib/opensearch/dsl/search/queries/ids.rb +52 -0
  340. data/lib/opensearch/dsl/search/queries/indices.rb +58 -0
  341. data/lib/opensearch/dsl/search/queries/match.rb +67 -0
  342. data/lib/opensearch/dsl/search/queries/match_all.rb +50 -0
  343. data/lib/opensearch/dsl/search/queries/match_phrase.rb +56 -0
  344. data/lib/opensearch/dsl/search/queries/match_phrase_prefix.rb +55 -0
  345. data/lib/opensearch/dsl/search/queries/more_like_this.rb +88 -0
  346. data/lib/opensearch/dsl/search/queries/multi_match.rb +69 -0
  347. data/lib/opensearch/dsl/search/queries/nested.rb +80 -0
  348. data/lib/opensearch/dsl/search/queries/prefix.rb +54 -0
  349. data/lib/opensearch/dsl/search/queries/query_string.rb +75 -0
  350. data/lib/opensearch/dsl/search/queries/range.rb +71 -0
  351. data/lib/opensearch/dsl/search/queries/regexp.rb +55 -0
  352. data/lib/opensearch/dsl/search/queries/simple_query_string.rb +64 -0
  353. data/lib/opensearch/dsl/search/queries/span_first.rb +52 -0
  354. data/lib/opensearch/dsl/search/queries/span_multi.rb +52 -0
  355. data/lib/opensearch/dsl/search/queries/span_near.rb +56 -0
  356. data/lib/opensearch/dsl/search/queries/span_not.rb +57 -0
  357. data/lib/opensearch/dsl/search/queries/span_or.rb +52 -0
  358. data/lib/opensearch/dsl/search/queries/span_term.rb +50 -0
  359. data/lib/opensearch/dsl/search/queries/template.rb +55 -0
  360. data/lib/opensearch/dsl/search/queries/term.rb +50 -0
  361. data/lib/opensearch/dsl/search/queries/terms.rb +51 -0
  362. data/lib/opensearch/dsl/search/queries/top_children.rb +82 -0
  363. data/lib/opensearch/dsl/search/queries/wildcard.rb +54 -0
  364. data/lib/opensearch/dsl/search/query.rb +82 -0
  365. data/lib/opensearch/dsl/search/sort.rb +83 -0
  366. data/lib/opensearch/dsl/search/suggest.rb +52 -0
  367. data/lib/opensearch/dsl/search.rb +282 -0
  368. data/lib/opensearch/dsl/utils.rb +49 -0
  369. data/lib/opensearch/dsl.rb +69 -0
  370. data/lib/opensearch/transport/client.rb +362 -0
  371. data/lib/opensearch/transport/redacted.rb +82 -0
  372. data/lib/opensearch/transport/transport/base.rb +453 -0
  373. data/lib/opensearch/transport/transport/connections/collection.rb +134 -0
  374. data/lib/opensearch/transport/transport/connections/connection.rb +168 -0
  375. data/lib/opensearch/transport/transport/connections/selector.rb +100 -0
  376. data/lib/opensearch/transport/transport/errors.rb +97 -0
  377. data/lib/opensearch/transport/transport/http/curb.rb +139 -0
  378. data/lib/opensearch/transport/transport/http/faraday.rb +101 -0
  379. data/lib/opensearch/transport/transport/http/manticore.rb +188 -0
  380. data/lib/opensearch/transport/transport/loggable.rb +92 -0
  381. data/lib/opensearch/transport/transport/response.rb +47 -0
  382. data/lib/opensearch/transport/transport/serializer/multi_json.rb +61 -0
  383. data/lib/opensearch/transport/transport/sniffer.rb +110 -0
  384. data/lib/opensearch/transport.rb +44 -0
  385. data/lib/opensearch/version.rb +1 -1
  386. data/lib/opensearch-dsl.rb +27 -0
  387. data/lib/opensearch.rb +12 -12
  388. data/opensearch-ruby.gemspec +28 -40
  389. data/spec/spec_helper.rb +95 -4
  390. data/test/dsl/integration/search_aggregation_children_test.rb +91 -0
  391. data/test/dsl/integration/search_aggregation_geo_test.rb +112 -0
  392. data/test/dsl/integration/search_aggregation_nested_test.rb +129 -0
  393. data/test/dsl/integration/search_aggregations_test.rb +288 -0
  394. data/test/dsl/integration/search_filters_test.rb +290 -0
  395. data/test/dsl/integration/search_options_test.rb +54 -0
  396. data/test/dsl/integration/search_query_test.rb +98 -0
  397. data/test/dsl/integration/search_size_from_test.rb +71 -0
  398. data/test/dsl/integration/search_sort_test.rb +57 -0
  399. data/test/dsl/integration/search_suggest_test.rb +107 -0
  400. data/test/dsl/integration/search_test.rb +81 -0
  401. data/test/dsl/test_helper.rb +95 -0
  402. data/test/dsl/unit/dsl_test.rb +44 -0
  403. data/test/dsl/unit/search_aggregation_test.rb +96 -0
  404. data/test/dsl/unit/search_base_aggregation_component_test.rb +66 -0
  405. data/test/dsl/unit/search_base_component_test.rb +210 -0
  406. data/test/dsl/unit/search_filter_test.rb +84 -0
  407. data/test/dsl/unit/search_highlight_test.rb +103 -0
  408. data/test/dsl/unit/search_options_test.rb +114 -0
  409. data/test/dsl/unit/search_query_test.rb +88 -0
  410. data/test/dsl/unit/search_size_from_test.rb +68 -0
  411. data/test/dsl/unit/search_sort_test.rb +91 -0
  412. data/test/dsl/unit/search_suggest_test.rb +46 -0
  413. data/test/dsl/unit/search_test.rb +268 -0
  414. data/test/dsl/unit/utils_test.rb +47 -0
  415. data/test/transport/integration/transport_test.rb +117 -0
  416. data/test/transport/profile/client_benchmark_test.rb +141 -0
  417. data/test/transport/test_helper.rb +97 -0
  418. data/test/transport/unit/connection_test.rb +145 -0
  419. data/test/transport/unit/response_test.rb +41 -0
  420. data/test/transport/unit/serializer_test.rb +42 -0
  421. data/test/transport/unit/transport_base_test.rb +673 -0
  422. data/test/transport/unit/transport_curb_test.rb +143 -0
  423. data/test/transport/unit/transport_faraday_test.rb +237 -0
  424. data/test/transport/unit/transport_manticore_test.rb +191 -0
  425. data.tar.gz.sig +0 -0
  426. metadata +489 -189
  427. metadata.gz.sig +0 -0
  428. data/.gitignore +0 -21
  429. data/Rakefile +0 -69
  430. data/spec/integration/security_enabled/client_integration_spec.rb +0 -43
  431. data/spec/unit/opensearch_product_validation_spec.rb +0 -198
  432. /data/{LICENSE → LICENSE.txt} +0 -0
@@ -0,0 +1,108 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ #
3
+ # The OpenSearch Contributors require contributions made to
4
+ # this file be licensed under the Apache-2.0 license or a
5
+ # compatible open source license.
6
+ #
7
+ # Modifications Copyright OpenSearch Contributors. See
8
+ # GitHub history for details.
9
+ #
10
+ # Licensed to Elasticsearch B.V. under one or more contributor
11
+ # license agreements. See the NOTICE file distributed with
12
+ # this work for additional information regarding copyright
13
+ # ownership. Elasticsearch B.V. licenses this file to you under
14
+ # the Apache License, Version 2.0 (the "License"); you may
15
+ # not use this file except in compliance with the License.
16
+ # You may obtain a copy of the License at
17
+ #
18
+ # http://www.apache.org/licenses/LICENSE-2.0
19
+ #
20
+ # Unless required by applicable law or agreed to in writing,
21
+ # software distributed under the License is distributed on an
22
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
23
+ # KIND, either express or implied. See the License for the
24
+ # specific language governing permissions and limitations
25
+ # under the License.
26
+
27
+ module OpenSearch
28
+ module API
29
+ module Actions
30
+ # Returns information and statistics about terms in the fields of a particular document.
31
+ #
32
+ # @option arguments [String] :index The index in which the document resides. (*Required*)
33
+ # @option arguments [String] :id The id of the document, when not specified a doc param should be supplied.
34
+ # @option arguments [Boolean] :term_statistics Specifies if total term frequency and document frequency should be returned.
35
+ # @option arguments [Boolean] :field_statistics Specifies if document count, sum of document frequencies and sum of total term frequencies should be returned.
36
+ # @option arguments [List] :fields A comma-separated list of fields to return.
37
+ # @option arguments [Boolean] :offsets Specifies if term offsets should be returned.
38
+ # @option arguments [Boolean] :positions Specifies if term positions should be returned.
39
+ # @option arguments [Boolean] :payloads Specifies if term payloads should be returned.
40
+ # @option arguments [String] :preference Specify the node or shard the operation should be performed on (default: random).
41
+ # @option arguments [String] :routing Specific routing value.
42
+ # @option arguments [Boolean] :realtime Specifies if request is real-time as opposed to near-real-time (default: true).
43
+ # @option arguments [Number] :version Explicit version number for concurrency control
44
+ # @option arguments [String] :version_type Specific version type (options: internal, external, external_gte, force)
45
+ # @option arguments [Hash] :headers Custom HTTP headers
46
+ # @option arguments [Hash] :body Define parameters and or supply a document to get termvectors for. See documentation.
47
+ #
48
+ # *Deprecation notice*:
49
+ # Specifying types in urls has been deprecated
50
+ # Deprecated since version 7.0.0
51
+ #
52
+ #
53
+ #
54
+ def termvectors(arguments = {})
55
+ raise ArgumentError, "Required argument 'index' missing" unless arguments[:index]
56
+
57
+ headers = arguments.delete(:headers) || {}
58
+
59
+ arguments = arguments.clone
60
+
61
+ _index = arguments.delete(:index)
62
+
63
+ _id = arguments.delete(:id)
64
+
65
+ method = if arguments[:body]
66
+ OpenSearch::API::HTTP_POST
67
+ else
68
+ OpenSearch::API::HTTP_GET
69
+ end
70
+
71
+ endpoint = arguments.delete(:endpoint) || '_termvectors'
72
+ path = if _index && _id
73
+ "#{Utils.__listify(_index)}/#{endpoint}/#{Utils.__listify(_id)}"
74
+ else
75
+ "#{Utils.__listify(_index)}/#{endpoint}"
76
+ end
77
+
78
+ params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
79
+
80
+ body = arguments[:body]
81
+ perform_request(method, path, params, body, headers).body
82
+ end
83
+
84
+ # Deprecated: Use the plural version, {#termvectors}
85
+ #
86
+ def termvector(arguments = {})
87
+ termvectors(arguments.merge(endpoint: '_termvector'))
88
+ end
89
+
90
+ # Register this action with its valid params when the module is loaded.
91
+ #
92
+ # @since 6.2.0
93
+ ParamsRegistry.register(:termvectors, %i[
94
+ term_statistics
95
+ field_statistics
96
+ fields
97
+ offsets
98
+ positions
99
+ payloads
100
+ preference
101
+ routing
102
+ realtime
103
+ version
104
+ version_type
105
+ ].freeze)
106
+ end
107
+ end
108
+ end
@@ -0,0 +1,99 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ #
3
+ # The OpenSearch Contributors require contributions made to
4
+ # this file be licensed under the Apache-2.0 license or a
5
+ # compatible open source license.
6
+ #
7
+ # Modifications Copyright OpenSearch Contributors. See
8
+ # GitHub history for details.
9
+ #
10
+ # Licensed to Elasticsearch B.V. under one or more contributor
11
+ # license agreements. See the NOTICE file distributed with
12
+ # this work for additional information regarding copyright
13
+ # ownership. Elasticsearch B.V. licenses this file to you under
14
+ # the Apache License, Version 2.0 (the "License"); you may
15
+ # not use this file except in compliance with the License.
16
+ # You may obtain a copy of the License at
17
+ #
18
+ # http://www.apache.org/licenses/LICENSE-2.0
19
+ #
20
+ # Unless required by applicable law or agreed to in writing,
21
+ # software distributed under the License is distributed on an
22
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
23
+ # KIND, either express or implied. See the License for the
24
+ # specific language governing permissions and limitations
25
+ # under the License.
26
+
27
+ module OpenSearch
28
+ module API
29
+ module Actions
30
+ # Updates a document with a script or partial document.
31
+ #
32
+ # @option arguments [String] :id Document ID
33
+ # @option arguments [String] :index The name of the index
34
+ # @option arguments [String] :wait_for_active_shards Sets the number of shard copies that must be active before proceeding with the update operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)
35
+ # @option arguments [List] :_source True or false to return the _source field or not, or a list of fields to return
36
+ # @option arguments [List] :_source_excludes A list of fields to exclude from the returned _source field
37
+ # @option arguments [List] :_source_includes A list of fields to extract and return from the _source field
38
+ # @option arguments [String] :lang The script language (default: painless)
39
+ # @option arguments [String] :refresh If `true` then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` (the default) then do nothing with refreshes. (options: true, false, wait_for)
40
+ # @option arguments [Number] :retry_on_conflict Specify how many times should the operation be retried when a conflict occurs (default: 0)
41
+ # @option arguments [String] :routing Specific routing value
42
+ # @option arguments [Time] :timeout Explicit operation timeout
43
+ # @option arguments [Number] :if_seq_no only perform the update operation if the last operation that has changed the document has the specified sequence number
44
+ # @option arguments [Number] :if_primary_term only perform the update operation if the last operation that has changed the document has the specified primary term
45
+ # @option arguments [Boolean] :require_alias When true, requires destination is an alias. Default is false
46
+ # @option arguments [Hash] :headers Custom HTTP headers
47
+ # @option arguments [Hash] :body The request definition requires either `script` or partial `doc` (*Required*)
48
+ #
49
+ # *Deprecation notice*:
50
+ # Specifying types in urls has been deprecated
51
+ # Deprecated since version 7.0.0
52
+ #
53
+ #
54
+ #
55
+ def update(arguments = {})
56
+ raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]
57
+ raise ArgumentError, "Required argument 'index' missing" unless arguments[:index]
58
+ raise ArgumentError, "Required argument 'id' missing" unless arguments[:id]
59
+
60
+ headers = arguments.delete(:headers) || {}
61
+
62
+ arguments = arguments.clone
63
+
64
+ _id = arguments.delete(:id)
65
+
66
+ _index = arguments.delete(:index)
67
+
68
+ method = OpenSearch::API::HTTP_POST
69
+ path = "#{Utils.__listify(_index)}/_update/#{Utils.__listify(_id)}"
70
+ params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
71
+
72
+ body = arguments[:body]
73
+ if Array(arguments[:ignore]).include?(404)
74
+ Utils.__rescue_from_not_found { perform_request(method, path, params, body, headers).body }
75
+ else
76
+ perform_request(method, path, params, body, headers).body
77
+ end
78
+ end
79
+
80
+ # Register this action with its valid params when the module is loaded.
81
+ #
82
+ # @since 6.2.0
83
+ ParamsRegistry.register(:update, %i[
84
+ wait_for_active_shards
85
+ _source
86
+ _source_excludes
87
+ _source_includes
88
+ lang
89
+ refresh
90
+ retry_on_conflict
91
+ routing
92
+ timeout
93
+ if_seq_no
94
+ if_primary_term
95
+ require_alias
96
+ ].freeze)
97
+ end
98
+ end
99
+ end
@@ -0,0 +1,137 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ #
3
+ # The OpenSearch Contributors require contributions made to
4
+ # this file be licensed under the Apache-2.0 license or a
5
+ # compatible open source license.
6
+ #
7
+ # Modifications Copyright OpenSearch Contributors. See
8
+ # GitHub history for details.
9
+ #
10
+ # Licensed to Elasticsearch B.V. under one or more contributor
11
+ # license agreements. See the NOTICE file distributed with
12
+ # this work for additional information regarding copyright
13
+ # ownership. Elasticsearch B.V. licenses this file to you under
14
+ # the Apache License, Version 2.0 (the "License"); you may
15
+ # not use this file except in compliance with the License.
16
+ # You may obtain a copy of the License at
17
+ #
18
+ # http://www.apache.org/licenses/LICENSE-2.0
19
+ #
20
+ # Unless required by applicable law or agreed to in writing,
21
+ # software distributed under the License is distributed on an
22
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
23
+ # KIND, either express or implied. See the License for the
24
+ # specific language governing permissions and limitations
25
+ # under the License.
26
+
27
+ module OpenSearch
28
+ module API
29
+ module Actions
30
+ # Performs an update on every document in the index without changing the source,
31
+ # for example to pick up a mapping change.
32
+ #
33
+ # @option arguments [List] :index A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices (*Required*)
34
+ # @option arguments [String] :analyzer The analyzer to use for the query string
35
+ # @option arguments [Boolean] :analyze_wildcard Specify whether wildcard and prefix queries should be analyzed (default: false)
36
+ # @option arguments [String] :default_operator The default operator for query string query (AND or OR) (options: AND, OR)
37
+ # @option arguments [String] :df The field to use as default where no field prefix is given in the query string
38
+ # @option arguments [Number] :from Starting offset (default: 0)
39
+ # @option arguments [Boolean] :ignore_unavailable Whether specified concrete indices should be ignored when unavailable (missing or closed)
40
+ # @option arguments [Boolean] :allow_no_indices Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
41
+ # @option arguments [String] :conflicts What to do when the update by query hits version conflicts? (options: abort, proceed)
42
+ # @option arguments [String] :expand_wildcards Whether to expand wildcard expression to concrete indices that are open, closed or both. (options: open, closed, hidden, none, all)
43
+ # @option arguments [Boolean] :lenient Specify whether format-based query failures (such as providing text to a numeric field) should be ignored
44
+ # @option arguments [String] :pipeline Ingest pipeline to set on index requests made by this action. (default: none)
45
+ # @option arguments [String] :preference Specify the node or shard the operation should be performed on (default: random)
46
+ # @option arguments [String] :q Query in the Lucene query string syntax
47
+ # @option arguments [List] :routing A comma-separated list of specific routing values
48
+ # @option arguments [Time] :scroll Specify how long a consistent view of the index should be maintained for scrolled search
49
+ # @option arguments [String] :search_type Search operation type (options: query_then_fetch, dfs_query_then_fetch)
50
+ # @option arguments [Time] :search_timeout Explicit timeout for each search request. Defaults to no timeout.
51
+ # @option arguments [Number] :size Deprecated, please use `max_docs` instead
52
+ # @option arguments [Number] :max_docs Maximum number of documents to process (default: all documents)
53
+ # @option arguments [List] :sort A comma-separated list of <field>:<direction> pairs
54
+ # @option arguments [List] :_source True or false to return the _source field or not, or a list of fields to return
55
+ # @option arguments [List] :_source_excludes A list of fields to exclude from the returned _source field
56
+ # @option arguments [List] :_source_includes A list of fields to extract and return from the _source field
57
+ # @option arguments [Number] :terminate_after The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early.
58
+ # @option arguments [List] :stats Specific 'tag' of the request for logging and statistical purposes
59
+ # @option arguments [Boolean] :version Specify whether to return document version as part of a hit
60
+ # @option arguments [Boolean] :version_type Should the document increment the version number (internal) on hit or not (reindex)
61
+ # @option arguments [Boolean] :request_cache Specify if request cache should be used for this request or not, defaults to index level setting
62
+ # @option arguments [Boolean] :refresh Should the affected indexes be refreshed?
63
+ # @option arguments [Time] :timeout Time each individual bulk request should wait for shards that are unavailable.
64
+ # @option arguments [String] :wait_for_active_shards Sets the number of shard copies that must be active before proceeding with the update by query operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)
65
+ # @option arguments [Number] :scroll_size Size on the scroll request powering the update by query
66
+ # @option arguments [Boolean] :wait_for_completion Should the request should block until the update by query operation is complete.
67
+ # @option arguments [Number] :requests_per_second The throttle to set on this request in sub-requests per second. -1 means no throttle.
68
+ # @option arguments [Number|string] :slices The number of slices this task should be divided into. Defaults to 1, meaning the task isn't sliced into subtasks. Can be set to `auto`.
69
+ # @option arguments [Hash] :headers Custom HTTP headers
70
+ # @option arguments [Hash] :body The search definition using the Query DSL
71
+ #
72
+ # *Deprecation notice*:
73
+ # Specifying types in urls has been deprecated
74
+ # Deprecated since version 7.0.0
75
+ #
76
+ #
77
+ #
78
+ def update_by_query(arguments = {})
79
+ raise ArgumentError, "Required argument 'index' missing" unless arguments[:index]
80
+
81
+ headers = arguments.delete(:headers) || {}
82
+
83
+ arguments = arguments.clone
84
+
85
+ _index = arguments.delete(:index)
86
+
87
+ method = OpenSearch::API::HTTP_POST
88
+ path = "#{Utils.__listify(_index)}/_update_by_query"
89
+ params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
90
+
91
+ body = arguments[:body]
92
+ perform_request(method, path, params, body, headers).body
93
+ end
94
+
95
+ # Register this action with its valid params when the module is loaded.
96
+ #
97
+ # @since 6.2.0
98
+ ParamsRegistry.register(:update_by_query, %i[
99
+ analyzer
100
+ analyze_wildcard
101
+ default_operator
102
+ df
103
+ from
104
+ ignore_unavailable
105
+ allow_no_indices
106
+ conflicts
107
+ expand_wildcards
108
+ lenient
109
+ pipeline
110
+ preference
111
+ q
112
+ routing
113
+ scroll
114
+ search_type
115
+ search_timeout
116
+ size
117
+ max_docs
118
+ sort
119
+ _source
120
+ _source_excludes
121
+ _source_includes
122
+ terminate_after
123
+ stats
124
+ version
125
+ version_type
126
+ request_cache
127
+ refresh
128
+ timeout
129
+ wait_for_active_shards
130
+ scroll_size
131
+ wait_for_completion
132
+ requests_per_second
133
+ slices
134
+ ].freeze)
135
+ end
136
+ end
137
+ end
@@ -0,0 +1,62 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ #
3
+ # The OpenSearch Contributors require contributions made to
4
+ # this file be licensed under the Apache-2.0 license or a
5
+ # compatible open source license.
6
+ #
7
+ # Modifications Copyright OpenSearch Contributors. See
8
+ # GitHub history for details.
9
+ #
10
+ # Licensed to Elasticsearch B.V. under one or more contributor
11
+ # license agreements. See the NOTICE file distributed with
12
+ # this work for additional information regarding copyright
13
+ # ownership. Elasticsearch B.V. licenses this file to you under
14
+ # the Apache License, Version 2.0 (the "License"); you may
15
+ # not use this file except in compliance with the License.
16
+ # You may obtain a copy of the License at
17
+ #
18
+ # http://www.apache.org/licenses/LICENSE-2.0
19
+ #
20
+ # Unless required by applicable law or agreed to in writing,
21
+ # software distributed under the License is distributed on an
22
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
23
+ # KIND, either express or implied. See the License for the
24
+ # specific language governing permissions and limitations
25
+ # under the License.
26
+
27
+ module OpenSearch
28
+ module API
29
+ module Actions
30
+ # Changes the number of requests per second for a particular Update By Query operation.
31
+ #
32
+ # @option arguments [String] :task_id The task id to rethrottle
33
+ # @option arguments [Number] :requests_per_second The throttle to set on this request in floating sub-requests per second. -1 means set no throttle. (*Required*)
34
+ # @option arguments [Hash] :headers Custom HTTP headers
35
+ #
36
+ #
37
+ def update_by_query_rethrottle(arguments = {})
38
+ raise ArgumentError, "Required argument 'task_id' missing" unless arguments[:task_id]
39
+
40
+ headers = arguments.delete(:headers) || {}
41
+
42
+ arguments = arguments.clone
43
+
44
+ _task_id = arguments.delete(:task_id)
45
+
46
+ method = OpenSearch::API::HTTP_POST
47
+ path = "_update_by_query/#{Utils.__listify(_task_id)}/_rethrottle"
48
+ params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
49
+
50
+ body = nil
51
+ perform_request(method, path, params, body, headers).body
52
+ end
53
+
54
+ # Register this action with its valid params when the module is loaded.
55
+ #
56
+ # @since 6.2.0
57
+ ParamsRegistry.register(:update_by_query_rethrottle, [
58
+ :requests_per_second
59
+ ].freeze)
60
+ end
61
+ end
62
+ end
@@ -23,18 +23,25 @@
23
23
  # KIND, either express or implied. See the License for the
24
24
  # specific language governing permissions and limitations
25
25
  # under the License.
26
- require 'spec_helper'
27
- require 'logger'
28
26
 
29
- describe 'OpenSearch validation integration with security plugin enabled' do
30
- it 'Validates for OpenSearch' do
31
- client = OpenSearch::Client.new(
32
- host: OPENSEARCH_URL,
33
- logger: Logger.new($stderr),
34
- transport_options: { ssl: { verify: false } }
35
- )
36
- expect(client.instance_variable_get('@verified')).to be false
37
- client.count
38
- expect(client.instance_variable_get('@verified')).to be true
27
+ module OpenSearch
28
+ module API
29
+ module Cat
30
+ module Actions; end
31
+
32
+ # Client for the "cat" namespace (includes the {Cat::Actions} methods)
33
+ #
34
+ class CatClient
35
+ include Cat::Actions
36
+ include Common::Client::Base
37
+ include Common::Client
38
+ end
39
+
40
+ # Proxy method for {CatClient}, available in the receiving object
41
+ #
42
+ def cat
43
+ @cat ||= CatClient.new(self)
44
+ end
45
+ end
39
46
  end
40
47
  end
@@ -0,0 +1,47 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ #
3
+ # The OpenSearch Contributors require contributions made to
4
+ # this file be licensed under the Apache-2.0 license or a
5
+ # compatible open source license.
6
+ #
7
+ # Modifications Copyright OpenSearch Contributors. See
8
+ # GitHub history for details.
9
+ #
10
+ # Licensed to Elasticsearch B.V. under one or more contributor
11
+ # license agreements. See the NOTICE file distributed with
12
+ # this work for additional information regarding copyright
13
+ # ownership. Elasticsearch B.V. licenses this file to you under
14
+ # the Apache License, Version 2.0 (the "License"); you may
15
+ # not use this file except in compliance with the License.
16
+ # You may obtain a copy of the License at
17
+ #
18
+ # http://www.apache.org/licenses/LICENSE-2.0
19
+ #
20
+ # Unless required by applicable law or agreed to in writing,
21
+ # software distributed under the License is distributed on an
22
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
23
+ # KIND, either express or implied. See the License for the
24
+ # specific language governing permissions and limitations
25
+ # under the License.
26
+
27
+ module OpenSearch
28
+ module API
29
+ module Cluster
30
+ module Actions; end
31
+
32
+ # Client for the "cluster" namespace (includes the {Cluster::Actions} methods)
33
+ #
34
+ class ClusterClient
35
+ include Cluster::Actions
36
+ include Common::Client::Base
37
+ include Common::Client
38
+ end
39
+
40
+ # Proxy method for {ClusterClient}, available in the receiving object
41
+ #
42
+ def cluster
43
+ @cluster ||= ClusterClient.new(self)
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,72 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ #
3
+ # The OpenSearch Contributors require contributions made to
4
+ # this file be licensed under the Apache-2.0 license or a
5
+ # compatible open source license.
6
+ #
7
+ # Modifications Copyright OpenSearch Contributors. See
8
+ # GitHub history for details.
9
+ #
10
+ # Licensed to Elasticsearch B.V. under one or more contributor
11
+ # license agreements. See the NOTICE file distributed with
12
+ # this work for additional information regarding copyright
13
+ # ownership. Elasticsearch B.V. licenses this file to you under
14
+ # the Apache License, Version 2.0 (the "License"); you may
15
+ # not use this file except in compliance with the License.
16
+ # You may obtain a copy of the License at
17
+ #
18
+ # http://www.apache.org/licenses/LICENSE-2.0
19
+ #
20
+ # Unless required by applicable law or agreed to in writing,
21
+ # software distributed under the License is distributed on an
22
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
23
+ # KIND, either express or implied. See the License for the
24
+ # specific language governing permissions and limitations
25
+ # under the License.
26
+
27
+ module OpenSearch
28
+ module API
29
+ module Common
30
+ module Actions; end
31
+
32
+ module Client
33
+ # Base client wrapper
34
+ #
35
+ module Base
36
+ attr_reader :client
37
+
38
+ def initialize(client)
39
+ @client = client
40
+ end
41
+ end
42
+
43
+ # Delegates the `perform_request` method to the wrapped client
44
+ #
45
+ def perform_request(method, path, params = {}, body = nil, headers = nil)
46
+ client.perform_request method, path, params, body, headers
47
+ end
48
+
49
+ def perform_request_simple_ignore404(method, path, params, body, headers)
50
+ Utils.__rescue_from_not_found do
51
+ perform_request(method, path, params, body, headers).status == 200
52
+ end
53
+ end
54
+
55
+ def perform_request_complex_ignore404(method, path, params, body, headers, arguments)
56
+ if Array(arguments[:ignore]).include?(404)
57
+ Utils.__rescue_from_not_found { perform_request(method, path, params, body, headers).body }
58
+ else
59
+ perform_request(method, path, params, body, headers).body
60
+ end
61
+ end
62
+
63
+ def perform_request_ping(method, path, params, body, headers)
64
+ perform_request(method, path, params, body, headers).status == 200
65
+ rescue StandardError => e
66
+ raise e unless e.class.to_s =~ /NotFound|ConnectionFailed/ || e.message =~ /Not\s*Found|404|ConnectionFailed/i
67
+ false
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,47 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ #
3
+ # The OpenSearch Contributors require contributions made to
4
+ # this file be licensed under the Apache-2.0 license or a
5
+ # compatible open source license.
6
+ #
7
+ # Modifications Copyright OpenSearch Contributors. See
8
+ # GitHub history for details.
9
+ #
10
+ # Licensed to Elasticsearch B.V. under one or more contributor
11
+ # license agreements. See the NOTICE file distributed with
12
+ # this work for additional information regarding copyright
13
+ # ownership. Elasticsearch B.V. licenses this file to you under
14
+ # the Apache License, Version 2.0 (the "License"); you may
15
+ # not use this file except in compliance with the License.
16
+ # You may obtain a copy of the License at
17
+ #
18
+ # http://www.apache.org/licenses/LICENSE-2.0
19
+ #
20
+ # Unless required by applicable law or agreed to in writing,
21
+ # software distributed under the License is distributed on an
22
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
23
+ # KIND, either express or implied. See the License for the
24
+ # specific language governing permissions and limitations
25
+ # under the License.
26
+
27
+ module OpenSearch
28
+ module API
29
+ module DanglingIndices
30
+ module Actions; end
31
+
32
+ # Client for the "dangling_indices" namespace (includes the {DanglingIndices::Actions} methods)
33
+ #
34
+ class DanglingIndicesClient
35
+ include DanglingIndices::Actions
36
+ include Common::Client::Base
37
+ include Common::Client
38
+ end
39
+
40
+ # Proxy method for {DanglingIndicesClient}, available in the receiving object
41
+ #
42
+ def dangling_indices
43
+ @dangling_indices ||= DanglingIndicesClient.new(self)
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,47 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ #
3
+ # The OpenSearch Contributors require contributions made to
4
+ # this file be licensed under the Apache-2.0 license or a
5
+ # compatible open source license.
6
+ #
7
+ # Modifications Copyright OpenSearch Contributors. See
8
+ # GitHub history for details.
9
+ #
10
+ # Licensed to Elasticsearch B.V. under one or more contributor
11
+ # license agreements. See the NOTICE file distributed with
12
+ # this work for additional information regarding copyright
13
+ # ownership. Elasticsearch B.V. licenses this file to you under
14
+ # the Apache License, Version 2.0 (the "License"); you may
15
+ # not use this file except in compliance with the License.
16
+ # You may obtain a copy of the License at
17
+ #
18
+ # http://www.apache.org/licenses/LICENSE-2.0
19
+ #
20
+ # Unless required by applicable law or agreed to in writing,
21
+ # software distributed under the License is distributed on an
22
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
23
+ # KIND, either express or implied. See the License for the
24
+ # specific language governing permissions and limitations
25
+ # under the License.
26
+
27
+ module OpenSearch
28
+ module API
29
+ module Features
30
+ module Actions; end
31
+
32
+ # Client for the "features" namespace (includes the {Features::Actions} methods)
33
+ #
34
+ class FeaturesClient
35
+ include Features::Actions
36
+ include Common::Client::Base
37
+ include Common::Client
38
+ end
39
+
40
+ # Proxy method for {FeaturesClient}, available in the receiving object
41
+ #
42
+ def features
43
+ @features ||= FeaturesClient.new(self)
44
+ end
45
+ end
46
+ end
47
+ end