opensearch-api 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (347) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +0 -0
  3. data/.gitignore +17 -0
  4. data/Gemfile +48 -0
  5. data/LICENSE +202 -0
  6. data/README.md +194 -0
  7. data/Rakefile +131 -0
  8. data/lib/opensearch/api/actions/abort_benchmark.rb +49 -0
  9. data/lib/opensearch/api/actions/benchmark.rb +89 -0
  10. data/lib/opensearch/api/actions/bulk.rb +97 -0
  11. data/lib/opensearch/api/actions/cat/aliases.rb +79 -0
  12. data/lib/opensearch/api/actions/cat/allocation.rb +81 -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 +91 -0
  18. data/lib/opensearch/api/actions/cat/master.rb +71 -0
  19. data/lib/opensearch/api/actions/cat/nodeattrs.rb +71 -0
  20. data/lib/opensearch/api/actions/cat/nodes.rb +80 -0
  21. data/lib/opensearch/api/actions/cat/params_registry.rb +69 -0
  22. data/lib/opensearch/api/actions/cat/pending_tasks.rb +74 -0
  23. data/lib/opensearch/api/actions/cat/plugins.rb +73 -0
  24. data/lib/opensearch/api/actions/cat/recovery.rb +84 -0
  25. data/lib/opensearch/api/actions/cat/repositories.rb +72 -0
  26. data/lib/opensearch/api/actions/cat/segments.rb +76 -0
  27. data/lib/opensearch/api/actions/cat/shards.rb +83 -0
  28. data/lib/opensearch/api/actions/cat/snapshots.rb +80 -0
  29. data/lib/opensearch/api/actions/cat/tasks.rb +77 -0
  30. data/lib/opensearch/api/actions/cat/templates.rb +78 -0
  31. data/lib/opensearch/api/actions/cat/thread_pool.rb +82 -0
  32. data/lib/opensearch/api/actions/clear_scroll.rb +62 -0
  33. data/lib/opensearch/api/actions/close_point_in_time.rb +50 -0
  34. data/lib/opensearch/api/actions/cluster/allocation_explain.rb +67 -0
  35. data/lib/opensearch/api/actions/cluster/delete_component_template.rb +66 -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 +68 -0
  38. data/lib/opensearch/api/actions/cluster/get_component_template.rb +68 -0
  39. data/lib/opensearch/api/actions/cluster/get_settings.rb +65 -0
  40. data/lib/opensearch/api/actions/cluster/health.rb +86 -0
  41. data/lib/opensearch/api/actions/cluster/params_registry.rb +69 -0
  42. data/lib/opensearch/api/actions/cluster/pending_tasks.rb +62 -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 +70 -0
  45. data/lib/opensearch/api/actions/cluster/put_settings.rb +66 -0
  46. data/lib/opensearch/api/actions/cluster/remote_info.rb +51 -0
  47. data/lib/opensearch/api/actions/cluster/reroute.rb +70 -0
  48. data/lib/opensearch/api/actions/cluster/state.rb +85 -0
  49. data/lib/opensearch/api/actions/cluster/stats.rb +68 -0
  50. data/lib/opensearch/api/actions/count.rb +101 -0
  51. data/lib/opensearch/api/actions/create.rb +61 -0
  52. data/lib/opensearch/api/actions/dangling_indices/delete_dangling_index.rb +68 -0
  53. data/lib/opensearch/api/actions/dangling_indices/import_dangling_index.rb +67 -0
  54. data/lib/opensearch/api/actions/dangling_indices/list_dangling_indices.rb +51 -0
  55. data/lib/opensearch/api/actions/dangling_indices/params_registry.rb +69 -0
  56. data/lib/opensearch/api/actions/delete.rb +96 -0
  57. data/lib/opensearch/api/actions/delete_by_query.rb +140 -0
  58. data/lib/opensearch/api/actions/delete_by_query_rethrottle.rb +62 -0
  59. data/lib/opensearch/api/actions/delete_by_rethrottle.rb +55 -0
  60. data/lib/opensearch/api/actions/delete_script.rb +64 -0
  61. data/lib/opensearch/api/actions/exists.rb +101 -0
  62. data/lib/opensearch/api/actions/exists_source.rb +96 -0
  63. data/lib/opensearch/api/actions/explain.rb +106 -0
  64. data/lib/opensearch/api/actions/features/get_features.rb +59 -0
  65. data/lib/opensearch/api/actions/features/params_registry.rb +69 -0
  66. data/lib/opensearch/api/actions/features/reset_features.rb +55 -0
  67. data/lib/opensearch/api/actions/field_caps.rb +78 -0
  68. data/lib/opensearch/api/actions/get.rb +100 -0
  69. data/lib/opensearch/api/actions/get_script.rb +62 -0
  70. data/lib/opensearch/api/actions/get_script_context.rb +53 -0
  71. data/lib/opensearch/api/actions/get_script_languages.rb +53 -0
  72. data/lib/opensearch/api/actions/get_source.rb +94 -0
  73. data/lib/opensearch/api/actions/index.rb +103 -0
  74. data/lib/opensearch/api/actions/indices/add_block.rb +76 -0
  75. data/lib/opensearch/api/actions/indices/analyze.rb +71 -0
  76. data/lib/opensearch/api/actions/indices/clear_cache.rb +79 -0
  77. data/lib/opensearch/api/actions/indices/clone.rb +73 -0
  78. data/lib/opensearch/api/actions/indices/close.rb +74 -0
  79. data/lib/opensearch/api/actions/indices/create.rb +71 -0
  80. data/lib/opensearch/api/actions/indices/delete.rb +76 -0
  81. data/lib/opensearch/api/actions/indices/delete_alias.rb +72 -0
  82. data/lib/opensearch/api/actions/indices/delete_index_template.rb +66 -0
  83. data/lib/opensearch/api/actions/indices/delete_template.rb +70 -0
  84. data/lib/opensearch/api/actions/indices/disk_usage.rb +76 -0
  85. data/lib/opensearch/api/actions/indices/exists.rb +79 -0
  86. data/lib/opensearch/api/actions/indices/exists_alias.rb +82 -0
  87. data/lib/opensearch/api/actions/indices/exists_index_template.rb +70 -0
  88. data/lib/opensearch/api/actions/indices/exists_template.rb +73 -0
  89. data/lib/opensearch/api/actions/indices/exists_type.rb +79 -0
  90. data/lib/opensearch/api/actions/indices/field_usage_stats.rb +74 -0
  91. data/lib/opensearch/api/actions/indices/flush.rb +74 -0
  92. data/lib/opensearch/api/actions/indices/flush_synced.rb +79 -0
  93. data/lib/opensearch/api/actions/indices/forcemerge.rb +76 -0
  94. data/lib/opensearch/api/actions/indices/get.rb +78 -0
  95. data/lib/opensearch/api/actions/indices/get_alias.rb +79 -0
  96. data/lib/opensearch/api/actions/indices/get_field_mapping.rb +92 -0
  97. data/lib/opensearch/api/actions/indices/get_index_template.rb +70 -0
  98. data/lib/opensearch/api/actions/indices/get_mapping.rb +88 -0
  99. data/lib/opensearch/api/actions/indices/get_settings.rb +85 -0
  100. data/lib/opensearch/api/actions/indices/get_template.rb +72 -0
  101. data/lib/opensearch/api/actions/indices/get_upgrade.rb +75 -0
  102. data/lib/opensearch/api/actions/indices/open.rb +74 -0
  103. data/lib/opensearch/api/actions/indices/params_registry.rb +69 -0
  104. data/lib/opensearch/api/actions/indices/put_alias.rb +73 -0
  105. data/lib/opensearch/api/actions/indices/put_index_template.rb +70 -0
  106. data/lib/opensearch/api/actions/indices/put_mapping.rb +91 -0
  107. data/lib/opensearch/api/actions/indices/put_settings.rb +81 -0
  108. data/lib/opensearch/api/actions/indices/put_template.rb +72 -0
  109. data/lib/opensearch/api/actions/indices/recovery.rb +68 -0
  110. data/lib/opensearch/api/actions/indices/refresh.rb +70 -0
  111. data/lib/opensearch/api/actions/indices/resolve_index.rb +68 -0
  112. data/lib/opensearch/api/actions/indices/rollover.rb +81 -0
  113. data/lib/opensearch/api/actions/indices/segments.rb +72 -0
  114. data/lib/opensearch/api/actions/indices/shard_stores.rb +72 -0
  115. data/lib/opensearch/api/actions/indices/shrink.rb +75 -0
  116. data/lib/opensearch/api/actions/indices/simulate_index_template.rb +69 -0
  117. data/lib/opensearch/api/actions/indices/simulate_template.rb +71 -0
  118. data/lib/opensearch/api/actions/indices/split.rb +75 -0
  119. data/lib/opensearch/api/actions/indices/stats.rb +100 -0
  120. data/lib/opensearch/api/actions/indices/update_aliases.rb +64 -0
  121. data/lib/opensearch/api/actions/indices/upgrade.rb +79 -0
  122. data/lib/opensearch/api/actions/indices/validate_query.rb +104 -0
  123. data/lib/opensearch/api/actions/info.rb +49 -0
  124. data/lib/opensearch/api/actions/ingest/delete_pipeline.rb +66 -0
  125. data/lib/opensearch/api/actions/ingest/geo_ip_stats.rb +51 -0
  126. data/lib/opensearch/api/actions/ingest/get_pipeline.rb +68 -0
  127. data/lib/opensearch/api/actions/ingest/params_registry.rb +69 -0
  128. data/lib/opensearch/api/actions/ingest/processor_grok.rb +51 -0
  129. data/lib/opensearch/api/actions/ingest/put_pipeline.rb +68 -0
  130. data/lib/opensearch/api/actions/ingest/simulate.rb +69 -0
  131. data/lib/opensearch/api/actions/mget.rb +91 -0
  132. data/lib/opensearch/api/actions/msearch.rb +112 -0
  133. data/lib/opensearch/api/actions/msearch_template.rb +96 -0
  134. data/lib/opensearch/api/actions/mtermvectors.rb +107 -0
  135. data/lib/opensearch/api/actions/nodes/hot_threads.rb +81 -0
  136. data/lib/opensearch/api/actions/nodes/info.rb +75 -0
  137. data/lib/opensearch/api/actions/nodes/params_registry.rb +69 -0
  138. data/lib/opensearch/api/actions/nodes/reload_secure_settings.rb +67 -0
  139. data/lib/opensearch/api/actions/nodes/shutdown.rb +65 -0
  140. data/lib/opensearch/api/actions/nodes/stats.rb +96 -0
  141. data/lib/opensearch/api/actions/nodes/usage.rb +73 -0
  142. data/lib/opensearch/api/actions/open_point_in_time.rb +72 -0
  143. data/lib/opensearch/api/actions/params_registry.rb +67 -0
  144. data/lib/opensearch/api/actions/ping.rb +57 -0
  145. data/lib/opensearch/api/actions/put_script.rb +74 -0
  146. data/lib/opensearch/api/actions/rank_eval.rb +77 -0
  147. data/lib/opensearch/api/actions/reindex.rb +76 -0
  148. data/lib/opensearch/api/actions/reindex_rethrottle.rb +62 -0
  149. data/lib/opensearch/api/actions/remote/info.rb +45 -0
  150. data/lib/opensearch/api/actions/render_search_template.rb +62 -0
  151. data/lib/opensearch/api/actions/scripts_painless_execute.rb +59 -0
  152. data/lib/opensearch/api/actions/scroll.rb +78 -0
  153. data/lib/opensearch/api/actions/search.rb +165 -0
  154. data/lib/opensearch/api/actions/search_shards.rb +74 -0
  155. data/lib/opensearch/api/actions/search_template.rb +101 -0
  156. data/lib/opensearch/api/actions/shutdown/delete_node.rb +60 -0
  157. data/lib/opensearch/api/actions/shutdown/get_node.rb +62 -0
  158. data/lib/opensearch/api/actions/shutdown/params_registry.rb +69 -0
  159. data/lib/opensearch/api/actions/shutdown/put_node.rb +62 -0
  160. data/lib/opensearch/api/actions/snapshot/cleanup_repository.rb +66 -0
  161. data/lib/opensearch/api/actions/snapshot/clone.rb +74 -0
  162. data/lib/opensearch/api/actions/snapshot/create.rb +71 -0
  163. data/lib/opensearch/api/actions/snapshot/create_repository.rb +70 -0
  164. data/lib/opensearch/api/actions/snapshot/delete.rb +72 -0
  165. data/lib/opensearch/api/actions/snapshot/delete_repository.rb +70 -0
  166. data/lib/opensearch/api/actions/snapshot/get.rb +80 -0
  167. data/lib/opensearch/api/actions/snapshot/get_features.rb +59 -0
  168. data/lib/opensearch/api/actions/snapshot/get_repository.rb +72 -0
  169. data/lib/opensearch/api/actions/snapshot/params_registry.rb +69 -0
  170. data/lib/opensearch/api/actions/snapshot/repository_analyze.rb +84 -0
  171. data/lib/opensearch/api/actions/snapshot/restore.rb +71 -0
  172. data/lib/opensearch/api/actions/snapshot/status.rb +77 -0
  173. data/lib/opensearch/api/actions/snapshot/verify_repository.rb +66 -0
  174. data/lib/opensearch/api/actions/tasks/cancel.rb +76 -0
  175. data/lib/opensearch/api/actions/tasks/get.rb +68 -0
  176. data/lib/opensearch/api/actions/tasks/list.rb +75 -0
  177. data/lib/opensearch/api/actions/tasks/params_registry.rb +69 -0
  178. data/lib/opensearch/api/actions/termvectors.rb +115 -0
  179. data/lib/opensearch/api/actions/update.rb +106 -0
  180. data/lib/opensearch/api/actions/update_by_query.rb +144 -0
  181. data/lib/opensearch/api/actions/update_by_query_rethrottle.rb +62 -0
  182. data/lib/opensearch/api/namespace/cat.rb +45 -0
  183. data/lib/opensearch/api/namespace/cluster.rb +46 -0
  184. data/lib/opensearch/api/namespace/common.rb +53 -0
  185. data/lib/opensearch/api/namespace/dangling_indices.rb +44 -0
  186. data/lib/opensearch/api/namespace/features.rb +45 -0
  187. data/lib/opensearch/api/namespace/indices.rb +46 -0
  188. data/lib/opensearch/api/namespace/ingest.rb +46 -0
  189. data/lib/opensearch/api/namespace/nodes.rb +46 -0
  190. data/lib/opensearch/api/namespace/remote.rb +46 -0
  191. data/lib/opensearch/api/namespace/security.rb +45 -0
  192. data/lib/opensearch/api/namespace/shutdown.rb +46 -0
  193. data/lib/opensearch/api/namespace/snapshot.rb +46 -0
  194. data/lib/opensearch/api/namespace/tasks.rb +46 -0
  195. data/lib/opensearch/api/utils.rb +297 -0
  196. data/lib/opensearch/api/version.rb +31 -0
  197. data/lib/opensearch/api.rb +101 -0
  198. data/lib/opensearch-api.rb +27 -0
  199. data/opensearch-api.gemspec +92 -0
  200. data/spec/opensearch/api/actions/abort_benchmark_spec.rb +43 -0
  201. data/spec/opensearch/api/actions/benchmark_spec.rb +43 -0
  202. data/spec/opensearch/api/actions/bulk_spec.rb +148 -0
  203. data/spec/opensearch/api/actions/cat/aliases_spec.rb +44 -0
  204. data/spec/opensearch/api/actions/cat/allocation_spec.rb +44 -0
  205. data/spec/opensearch/api/actions/cat/count_spec.rb +44 -0
  206. data/spec/opensearch/api/actions/cat/fielddata_spec.rb +61 -0
  207. data/spec/opensearch/api/actions/cat/health_spec.rb +44 -0
  208. data/spec/opensearch/api/actions/cat/help_spec.rb +44 -0
  209. data/spec/opensearch/api/actions/cat/indices_spec.rb +44 -0
  210. data/spec/opensearch/api/actions/cat/master_spec.rb +44 -0
  211. data/spec/opensearch/api/actions/cat/nodeattrs_spec.rb +44 -0
  212. data/spec/opensearch/api/actions/cat/nodes_spec.rb +44 -0
  213. data/spec/opensearch/api/actions/cat/pending_tasks_spec.rb +44 -0
  214. data/spec/opensearch/api/actions/cat/plugins_spec.rb +44 -0
  215. data/spec/opensearch/api/actions/cat/recovery_spec.rb +44 -0
  216. data/spec/opensearch/api/actions/cat/repositories_spec.rb +44 -0
  217. data/spec/opensearch/api/actions/cat/segments_spec.rb +58 -0
  218. data/spec/opensearch/api/actions/cat/shards_spec.rb +44 -0
  219. data/spec/opensearch/api/actions/cat/snapshot_spec.rb +44 -0
  220. data/spec/opensearch/api/actions/cat/tasks_spec.rb +44 -0
  221. data/spec/opensearch/api/actions/cat/templates_spec.rb +44 -0
  222. data/spec/opensearch/api/actions/cat/thread_pool_spec.rb +44 -0
  223. data/spec/opensearch/api/actions/clear_scroll_spec.rb +61 -0
  224. data/spec/opensearch/api/actions/close_point_in_time_spec.rb +43 -0
  225. data/spec/opensearch/api/actions/cluster/allocation_explain_spec.rb +44 -0
  226. data/spec/opensearch/api/actions/cluster/get_settings_spec.rb +44 -0
  227. data/spec/opensearch/api/actions/cluster/health_spec.rb +78 -0
  228. data/spec/opensearch/api/actions/cluster/pending_tasks_spec.rb +44 -0
  229. data/spec/opensearch/api/actions/cluster/put_settings_spec.rb +44 -0
  230. data/spec/opensearch/api/actions/cluster/remote_info_spec.rb +44 -0
  231. data/spec/opensearch/api/actions/cluster/reroute_spec.rb +61 -0
  232. data/spec/opensearch/api/actions/cluster/state_spec.rb +61 -0
  233. data/spec/opensearch/api/actions/cluster/stats_spec.rb +44 -0
  234. data/spec/opensearch/api/actions/count_spec.rb +78 -0
  235. data/spec/opensearch/api/actions/create_document_spec.rb +95 -0
  236. data/spec/opensearch/api/actions/dangling_indices/delete_dangling_indices_spec.rb +57 -0
  237. data/spec/opensearch/api/actions/dangling_indices/import_dangling_indices_spec.rb +57 -0
  238. data/spec/opensearch/api/actions/dangling_indices/list_dangling_indices_spec.rb +45 -0
  239. data/spec/opensearch/api/actions/delete_by_query_spec.rb +89 -0
  240. data/spec/opensearch/api/actions/delete_document_spec.rb +121 -0
  241. data/spec/opensearch/api/actions/delete_script_spec.rb +46 -0
  242. data/spec/opensearch/api/actions/exists_document_spec.rb +136 -0
  243. data/spec/opensearch/api/actions/explain_document_spec.rb +108 -0
  244. data/spec/opensearch/api/actions/features/get_features_spec.rb +43 -0
  245. data/spec/opensearch/api/actions/features/reset_features_spec.rb +43 -0
  246. data/spec/opensearch/api/actions/field_caps_spec.rb +44 -0
  247. data/spec/opensearch/api/actions/get_document_source_spec.rb +110 -0
  248. data/spec/opensearch/api/actions/get_document_spec.rb +133 -0
  249. data/spec/opensearch/api/actions/get_script_spec.rb +59 -0
  250. data/spec/opensearch/api/actions/hashie_spec.rb +98 -0
  251. data/spec/opensearch/api/actions/index_document_spec.rb +146 -0
  252. data/spec/opensearch/api/actions/indices/add_block_spec.rb +72 -0
  253. data/spec/opensearch/api/actions/indices/analyze_spec.rb +77 -0
  254. data/spec/opensearch/api/actions/indices/clear_cache_spec.rb +89 -0
  255. data/spec/opensearch/api/actions/indices/clone_spec.rb +131 -0
  256. data/spec/opensearch/api/actions/indices/close_spec.rb +94 -0
  257. data/spec/opensearch/api/actions/indices/create_spec.rb +94 -0
  258. data/spec/opensearch/api/actions/indices/delete_alias_spec.rb +92 -0
  259. data/spec/opensearch/api/actions/indices/delete_spec.rb +117 -0
  260. data/spec/opensearch/api/actions/indices/delete_template_spec.rb +95 -0
  261. data/spec/opensearch/api/actions/indices/disk_usage_spec.rb +57 -0
  262. data/spec/opensearch/api/actions/indices/exists_alias_spec.rb +117 -0
  263. data/spec/opensearch/api/actions/indices/exists_spec.rb +117 -0
  264. data/spec/opensearch/api/actions/indices/exists_template_spec.rb +102 -0
  265. data/spec/opensearch/api/actions/indices/exists_type_spec.rb +117 -0
  266. data/spec/opensearch/api/actions/indices/field_usage_stats_spec.rb +55 -0
  267. data/spec/opensearch/api/actions/indices/flush_spec.rb +100 -0
  268. data/spec/opensearch/api/actions/indices/flush_synced_spec.rb +99 -0
  269. data/spec/opensearch/api/actions/indices/forcemerge_spec.rb +44 -0
  270. data/spec/opensearch/api/actions/indices/get_alias_spec.rb +70 -0
  271. data/spec/opensearch/api/actions/indices/get_field_mapping_spec.rb +70 -0
  272. data/spec/opensearch/api/actions/indices/get_mapping_spec.rb +92 -0
  273. data/spec/opensearch/api/actions/indices/get_settings_spec.rb +81 -0
  274. data/spec/opensearch/api/actions/indices/get_spec.rb +63 -0
  275. data/spec/opensearch/api/actions/indices/open_spec.rb +74 -0
  276. data/spec/opensearch/api/actions/indices/put_alias_spec.rb +98 -0
  277. data/spec/opensearch/api/actions/indices/put_mapping_spec.rb +111 -0
  278. data/spec/opensearch/api/actions/indices/put_settings_spec.rb +117 -0
  279. data/spec/opensearch/api/actions/indices/put_template_spec.rb +116 -0
  280. data/spec/opensearch/api/actions/indices/recovery_spec.rb +44 -0
  281. data/spec/opensearch/api/actions/indices/refresh_spec.rb +100 -0
  282. data/spec/opensearch/api/actions/indices/rollover_spec.rb +67 -0
  283. data/spec/opensearch/api/actions/indices/segments_spec.rb +100 -0
  284. data/spec/opensearch/api/actions/indices/shard_stores_spec.rb +44 -0
  285. data/spec/opensearch/api/actions/indices/shrink_spec.rb +51 -0
  286. data/spec/opensearch/api/actions/indices/split_spec.rb +44 -0
  287. data/spec/opensearch/api/actions/indices/stats_spec.rb +133 -0
  288. data/spec/opensearch/api/actions/indices/update_aliases_spec.rb +76 -0
  289. data/spec/opensearch/api/actions/indices/upgrade_spec.rb +44 -0
  290. data/spec/opensearch/api/actions/indices/validate_query_spec.rb +131 -0
  291. data/spec/opensearch/api/actions/info_spec.rb +44 -0
  292. data/spec/opensearch/api/actions/ingest/delete_pipeline_spec.rb +69 -0
  293. data/spec/opensearch/api/actions/ingest/geo_ip_stats_spec.rb +43 -0
  294. data/spec/opensearch/api/actions/ingest/get_pipeline_spec.rb +59 -0
  295. data/spec/opensearch/api/actions/ingest/put_pipeline_spec.rb +69 -0
  296. data/spec/opensearch/api/actions/ingest/simulate_spec.rb +58 -0
  297. data/spec/opensearch/api/actions/json_builders_spec.rb +93 -0
  298. data/spec/opensearch/api/actions/mget_spec.rb +111 -0
  299. data/spec/opensearch/api/actions/msearch_spec.rb +160 -0
  300. data/spec/opensearch/api/actions/msearch_template_spec.rb +102 -0
  301. data/spec/opensearch/api/actions/mtermvectors_spec.rb +55 -0
  302. data/spec/opensearch/api/actions/nodes/hot_threads_spec.rb +70 -0
  303. data/spec/opensearch/api/actions/nodes/info_spec.rb +111 -0
  304. data/spec/opensearch/api/actions/nodes/reload_secure_settings_spec.rb +93 -0
  305. data/spec/opensearch/api/actions/nodes/shutdown_spec.rb +85 -0
  306. data/spec/opensearch/api/actions/nodes/stats_spec.rb +85 -0
  307. data/spec/opensearch/api/actions/open_point_in_time_spec.rb +53 -0
  308. data/spec/opensearch/api/actions/ping_spec.rb +85 -0
  309. data/spec/opensearch/api/actions/put_script_spec.rb +65 -0
  310. data/spec/opensearch/api/actions/reindex_spec.rb +44 -0
  311. data/spec/opensearch/api/actions/remote/info_spec.rb +44 -0
  312. data/spec/opensearch/api/actions/render_search_template_spec.rb +61 -0
  313. data/spec/opensearch/api/actions/scroll_spec.rb +61 -0
  314. data/spec/opensearch/api/actions/search_shards_spec.rb +44 -0
  315. data/spec/opensearch/api/actions/search_spec.rb +143 -0
  316. data/spec/opensearch/api/actions/search_template_spec.rb +43 -0
  317. data/spec/opensearch/api/actions/shutdown/delete_node_spec.rb +53 -0
  318. data/spec/opensearch/api/actions/shutdown/get_node_spec.rb +55 -0
  319. data/spec/opensearch/api/actions/shutdown/put_node_spec.rb +59 -0
  320. data/spec/opensearch/api/actions/snapshot/clone_spec.rb +76 -0
  321. data/spec/opensearch/api/actions/snapshot/create_repository_spec.rb +60 -0
  322. data/spec/opensearch/api/actions/snapshot/create_spec.rb +60 -0
  323. data/spec/opensearch/api/actions/snapshot/delete_repository_spec.rb +59 -0
  324. data/spec/opensearch/api/actions/snapshot/delete_spec.rb +60 -0
  325. data/spec/opensearch/api/actions/snapshot/get_features_spec.rb +47 -0
  326. data/spec/opensearch/api/actions/snapshot/get_repository_spec.rb +44 -0
  327. data/spec/opensearch/api/actions/snapshot/get_spec.rb +60 -0
  328. data/spec/opensearch/api/actions/snapshot/repository_analize_spec.rb +57 -0
  329. data/spec/opensearch/api/actions/snapshot/restore_spec.rb +60 -0
  330. data/spec/opensearch/api/actions/snapshot/status_spec.rb +59 -0
  331. data/spec/opensearch/api/actions/snapshot/verify_repository_spec.rb +44 -0
  332. data/spec/opensearch/api/actions/tasks/cancel_spec.rb +59 -0
  333. data/spec/opensearch/api/actions/tasks/get_spec.rb +44 -0
  334. data/spec/opensearch/api/actions/tasks/list_spec.rb +48 -0
  335. data/spec/opensearch/api/actions/termvectors_spec.rb +75 -0
  336. data/spec/opensearch/api/actions/update_by_query_spec.rb +44 -0
  337. data/spec/opensearch/api/actions/update_document_spec.rb +131 -0
  338. data/spec/opensearch/api/api_spec.rb +52 -0
  339. data/spec/opensearch/api/client_spec.rb +55 -0
  340. data/spec/opensearch/api/rest_api_yaml_spec.rb +169 -0
  341. data/spec/opensearch/api/utils_spec.rb +439 -0
  342. data/spec/rest_yaml_tests_helper.rb +89 -0
  343. data/spec/skipped_tests.yml +29 -0
  344. data/spec/spec_helper.rb +84 -0
  345. data.tar.gz.sig +0 -0
  346. metadata +860 -0
  347. metadata.gz.sig +0 -0
@@ -0,0 +1,297 @@
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
+
30
+ # Generic utility methods
31
+ #
32
+ module Utils
33
+
34
+ # URL-escape a string
35
+ #
36
+ # @example
37
+ # __escape('foo/bar') # => 'foo%2Fbar'
38
+ # __escape('bar^bam') # => 'bar%5Ebam'
39
+ #
40
+ # @api private
41
+ def __escape(string)
42
+ return string if string == '*'
43
+ defined?(EscapeUtils) ? EscapeUtils.escape_url(string.to_s) : CGI.escape(string.to_s)
44
+ end
45
+
46
+ # Create a "list" of values from arguments, ignoring nil values and encoding special characters.
47
+ #
48
+ # @example Create a list from array
49
+ # __listify(['A','B']) # => 'A,B'
50
+ #
51
+ # @example Create a list from arguments
52
+ # __listify('A','B') # => 'A,B'
53
+ #
54
+ # @example Escape values
55
+ # __listify('foo','bar^bam') # => 'foo,bar%5Ebam'
56
+ #
57
+ # @example Do not escape the values
58
+ # __listify('foo','bar^bam', escape: false) # => 'foo,bar^bam'
59
+ #
60
+ # @api private
61
+ def __listify(*list)
62
+ options = list.last.is_a?(Hash) ? list.pop : {}
63
+
64
+ escape = options[:escape]
65
+ Array(list).
66
+ flat_map { |e| e.respond_to?(:split) ? e.split(',') : e }.
67
+ flatten.
68
+ compact.
69
+ map { |e| escape == false ? e : __escape(e) }.
70
+ join(',')
71
+ end
72
+
73
+ # Create a path (URL part) from arguments, ignoring nil values and empty strings.
74
+ #
75
+ # @example Create a path from array
76
+ # __pathify(['foo', '', nil, 'bar']) # => 'foo/bar'
77
+ #
78
+ # @example Create a path from arguments
79
+ # __pathify('foo', '', nil, 'bar') # => 'foo/bar'
80
+ #
81
+ # # @example Encode special characters
82
+ # __pathify(['foo', 'bar^bam']) # => 'foo/bar%5Ebam'
83
+ #
84
+ # @api private
85
+ def __pathify(*segments)
86
+ Array(segments).flatten.
87
+ compact.
88
+ reject { |s| s.to_s.strip.empty? }.
89
+ join('/').
90
+ squeeze('/')
91
+ end
92
+
93
+ # Convert an array of payloads into OpenSearch `header\ndata` format
94
+ #
95
+ # Supports various different formats of the payload: Array of Strings, Header/Data pairs,
96
+ # or the conveniency "combined" format where data is passed along with the header
97
+ # in a single item.
98
+ #
99
+ # OpenSearch::API::Utils.__bulkify [
100
+ # { :index => { :_index => 'myindexA', :_type => 'mytype', :_id => '1', :data => { :title => 'Test' } } },
101
+ # { :update => { :_index => 'myindexB', :_type => 'mytype', :_id => '2', :data => { :doc => { :title => 'Update' } } } }
102
+ # ]
103
+ #
104
+ # # => {"index":{"_index":"myindexA","_type":"mytype","_id":"1"}}
105
+ # # => {"title":"Test"}
106
+ # # => {"update":{"_index":"myindexB","_type":"mytype","_id":"2"}}
107
+ # # => {"doc":{"title":"Update"}}
108
+ #
109
+ def __bulkify(payload)
110
+ operations = %w[index create delete update]
111
+
112
+ case
113
+
114
+ # Hashes with `:data`
115
+ when payload.any? { |d| d.is_a?(Hash) && d.values.first.is_a?(Hash) && operations.include?(d.keys.first.to_s) && (d.values.first[:data] || d.values.first['data']) }
116
+ payload = payload.
117
+ inject([]) do |sum, item|
118
+ operation, meta = item.to_a.first
119
+ meta = meta.clone
120
+ data = meta.delete(:data) || meta.delete('data')
121
+
122
+ sum << { operation => meta }
123
+ sum << data if data
124
+ sum
125
+ end.
126
+ map { |item| OpenSearch::API.serializer.dump(item) }
127
+ payload << '' unless payload.empty?
128
+
129
+ # Array of strings
130
+ when payload.all? { |d| d.is_a? String }
131
+ payload << ''
132
+
133
+ # Header/Data pairs
134
+ else
135
+ payload = payload.map { |item| OpenSearch::API.serializer.dump(item) }
136
+ payload << ''
137
+ end
138
+
139
+ payload = payload.join("\n")
140
+ end
141
+
142
+ # Validates the argument Hash against common and valid API parameters
143
+ #
144
+ # @param arguments [Hash] Hash of arguments to verify and extract, **with symbolized keys**
145
+ # @param valid_params [Array<Symbol>] An array of symbols with valid keys
146
+ #
147
+ # @return [Hash] Return whitelisted Hash
148
+ # @raise [ArgumentError] If the arguments Hash contains invalid keys
149
+ #
150
+ # @example Extract parameters
151
+ # __validate_and_extract_params( { :foo => 'qux' }, [:foo, :bar] )
152
+ # # => { :foo => 'qux' }
153
+ #
154
+ # @example Raise an exception for invalid parameters
155
+ # __validate_and_extract_params( { :foo => 'qux', :bam => 'mux' }, [:foo, :bar] )
156
+ # # ArgumentError: "URL parameter 'bam' is not supported"
157
+ #
158
+ # @example Skip validating parameters
159
+ # __validate_and_extract_params( { :foo => 'q', :bam => 'm' }, [:foo, :bar], { skip_parameter_validation: true } )
160
+ # # => { :foo => "q", :bam => "m" }
161
+ #
162
+ # @example Skip validating parameters when the module setting is set
163
+ # OpenSearch::API.settings[:skip_parameter_validation] = true
164
+ # __validate_and_extract_params( { :foo => 'q', :bam => 'm' }, [:foo, :bar] )
165
+ # # => { :foo => "q", :bam => "m" }
166
+ #
167
+ # @api private
168
+ #
169
+ def __validate_and_extract_params(arguments, params=[], options={})
170
+ if options[:skip_parameter_validation] || OpenSearch::API.settings[:skip_parameter_validation]
171
+ arguments
172
+ else
173
+ __validate_params(arguments, params)
174
+ __extract_params(arguments, params, options.merge(:escape => false))
175
+ end
176
+ end
177
+
178
+ def __validate_params(arguments, valid_params=[])
179
+ arguments.each do |k,v|
180
+ raise ArgumentError, "URL parameter '#{k}' is not supported" \
181
+ unless COMMON_PARAMS.include?(k) || COMMON_QUERY_PARAMS.include?(k) || valid_params.include?(k)
182
+ end
183
+ end
184
+
185
+ def __extract_params(arguments, params=[], options={})
186
+ result = arguments.select { |k,v| COMMON_QUERY_PARAMS.include?(k) || params.include?(k) }
187
+ result = Hash[result] unless result.is_a?(Hash) # Normalize Ruby 1.8 and Ruby 1.9 Hash#select behaviour
188
+ result = Hash[result.map { |k,v| v.is_a?(Array) ? [k, __listify(v, options)] : [k,v] }] # Listify Arrays
189
+ result
190
+ end
191
+
192
+ # Extracts the valid parts of the URL from the arguments
193
+ #
194
+ # @note Mutates the `arguments` argument, to prevent failures in `__validate_and_extract_params`.
195
+ #
196
+ # @param arguments [Hash] Hash of arguments to verify and extract, **with symbolized keys**
197
+ # @param valid_parts [Array<Symbol>] An array of symbol with valid keys
198
+ #
199
+ # @return [Array<String>] Valid parts of the URL as an array of strings
200
+ #
201
+ # @example Extract parts
202
+ # __extract_parts { :foo => true }, [:foo, :bar]
203
+ # # => [:foo]
204
+ #
205
+ #
206
+ # @api private
207
+ #
208
+ def __extract_parts(arguments, valid_parts=[])
209
+ parts = Hash[arguments.select { |k,v| valid_parts.include?(k) }]
210
+ parts = parts.reduce([]) { |sum, item| k, v = item; v.is_a?(TrueClass) ? sum << k.to_s : sum << v }
211
+
212
+ arguments.delete_if { |k,v| valid_parts.include? k }
213
+ return parts
214
+ end
215
+
216
+ # Calls the given block, rescuing from `StandardError`.
217
+ #
218
+ # Primary use case is the `:ignore` parameter for API calls.
219
+ #
220
+ # Returns `false` if exception contains NotFound in its class name or message,
221
+ # else re-raises the exception.
222
+ #
223
+ # @yield [block] A block of code to be executed with exception handling.
224
+ #
225
+ # @api private
226
+ #
227
+ def __rescue_from_not_found(&block)
228
+ yield
229
+ rescue StandardError => e
230
+ if e.class.to_s =~ /NotFound/ || e.message =~ /Not\s*Found/i
231
+ false
232
+ else
233
+ raise e
234
+ end
235
+ end
236
+
237
+ def __report_unsupported_parameters(arguments, params=[])
238
+ messages = []
239
+ unsupported_params = params.select {|d| d.is_a?(Hash) ? arguments.include?(d.keys.first) : arguments.include?(d) }
240
+
241
+ unsupported_params.each do |param|
242
+ name = case param
243
+ when Symbol
244
+ param
245
+ when Hash
246
+ param.keys.first
247
+ else
248
+ raise ArgumentError, "The param must be a Symbol or a Hash"
249
+ end
250
+
251
+ explanation = if param.is_a?(Hash)
252
+ ". #{param.values.first[:explanation]}."
253
+ else
254
+ ". This parameter is not supported in the version you're using: #{OpenSearch::API::VERSION}, and will be removed in the next release."
255
+ end
256
+
257
+ message = "[!] You are using unsupported parameter [:#{name}]"
258
+
259
+ if source = caller && caller.last
260
+ message += " in `#{source}`"
261
+ end
262
+
263
+ message += explanation
264
+
265
+ messages << message
266
+ end
267
+
268
+ unless messages.empty?
269
+ messages << "Suppress this warning by the `-WO` command line flag."
270
+
271
+ if STDERR.tty?
272
+ Kernel.warn messages.map { |m| "\e[31;1m#{m}\e[0m" }.join("\n")
273
+ else
274
+ Kernel.warn messages.join("\n")
275
+ end
276
+ end
277
+ end
278
+
279
+ def __report_unsupported_method(name)
280
+ message = "[!] You are using unsupported method [#{name}]"
281
+ if source = caller && caller.last
282
+ message += " in `#{source}`"
283
+ end
284
+
285
+ message += ". This method is not supported in the version you're using: #{OpenSearch::API::VERSION}, and will be removed in the next release. Suppress this warning by the `-WO` command line flag."
286
+
287
+ if STDERR.tty?
288
+ Kernel.warn "\e[31;1m#{message}\e[0m"
289
+ else
290
+ Kernel.warn message
291
+ end
292
+ end
293
+
294
+ extend self
295
+ end
296
+ end
297
+ end
@@ -0,0 +1,31 @@
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
+ VERSION = '1.0.0'.freeze
30
+ end
31
+ end
@@ -0,0 +1,101 @@
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
+ require "cgi"
28
+ require "multi_json"
29
+
30
+ require "opensearch/api/version"
31
+ require "opensearch/api/namespace/common"
32
+ require "opensearch/api/utils"
33
+ require "opensearch/api/actions/params_registry"
34
+
35
+ Dir[ File.expand_path('../api/actions/**/params_registry.rb', __FILE__) ].each { |f| require f }
36
+ Dir[ File.expand_path('../api/actions/**/*.rb', __FILE__) ].each { |f| require f }
37
+ Dir[ File.expand_path('../api/namespace/**/*.rb', __FILE__) ].each { |f| require f }
38
+
39
+ module OpenSearch
40
+ module API
41
+ DEFAULT_SERIALIZER = MultiJson
42
+
43
+ COMMON_PARAMS = [
44
+ :ignore, # Client specific parameters
45
+ :index, :type, :id, # :index/:type/:id
46
+ :body, # Request body
47
+ :node_id, # Cluster
48
+ :name, # Alias, template, settings, warmer, ...
49
+ :field # Get field mapping
50
+ ]
51
+
52
+ COMMON_QUERY_PARAMS = [
53
+ :ignore, # Client specific parameters
54
+ :format, # Search, Cat, ...
55
+ :pretty, # Pretty-print the response
56
+ :human, # Return numeric values in human readable format
57
+ :filter_path, # Filter the JSON response
58
+ :opaque_id # Use X-Opaque-Id
59
+ ]
60
+
61
+ HTTP_GET = 'GET'.freeze
62
+ HTTP_HEAD = 'HEAD'.freeze
63
+ HTTP_POST = 'POST'.freeze
64
+ HTTP_PUT = 'PUT'.freeze
65
+ HTTP_DELETE = 'DELETE'.freeze
66
+ UNDERSCORE_SEARCH = '_search'.freeze
67
+ UNDERSCORE_ALL = '_all'.freeze
68
+ DEFAULT_DOC = '_doc'.freeze
69
+
70
+ # Auto-include all namespaces in the receiver
71
+ #
72
+ def self.included(base)
73
+ base.send :include,
74
+ OpenSearch::API::Common,
75
+ OpenSearch::API::Actions,
76
+ OpenSearch::API::Cluster,
77
+ OpenSearch::API::Nodes,
78
+ OpenSearch::API::Indices,
79
+ OpenSearch::API::Ingest,
80
+ OpenSearch::API::Snapshot,
81
+ OpenSearch::API::Tasks,
82
+ OpenSearch::API::Cat,
83
+ OpenSearch::API::Remote,
84
+ OpenSearch::API::DanglingIndices,
85
+ OpenSearch::API::Features,
86
+ OpenSearch::API::Shutdown
87
+ end
88
+
89
+ # The serializer class
90
+ #
91
+ def self.serializer
92
+ settings[:serializer] || DEFAULT_SERIALIZER
93
+ end
94
+
95
+ # Access the module settings
96
+ #
97
+ def self.settings
98
+ @settings ||= {}
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,27 @@
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
+ require 'opensearch/api'
@@ -0,0 +1,92 @@
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
+ # coding: utf-8
28
+ lib = File.expand_path('../lib', __FILE__)
29
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
30
+ require 'opensearch/api/version'
31
+
32
+ signing_key_path = File.expand_path("../gem-private_key.pem")
33
+
34
+ Gem::Specification.new do |s|
35
+ s.name = 'opensearch-api'
36
+ s.version = OpenSearch::API::VERSION
37
+ s.authors = ['Jayesh Hathila', 'Vamshi Vijay Nakkirtha', 'Vijayan Balasubramanian' , 'Yuvraj Jaiswal']
38
+ s.email = ['jayehh@amazon.com', 'vamshin@amazon.com', 'balasvij@amazon.com', 'jaiyuvra@amazon.com']
39
+ s.summary = 'Ruby API for OpenSearch.'
40
+ s.homepage = 'https://opensearch.org/docs/latest/'
41
+ s.license = 'Apache-2.0'
42
+ s.metadata = {
43
+ 'homepage_uri' => 'https://opensearch.org/docs/latest/',
44
+ 'source_code_uri' => 'https://github.com/opensearch-project/opensearch-ruby/tree/main/opensearch-api',
45
+ 'bug_tracker_uri' => 'https://github.com/opensearch-project/opensearch-ruby/issues'
46
+ }
47
+ s.files = `git ls-files`.split($/)
48
+ s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
49
+ s.test_files = s.files.grep(%r{^(test|spec|features)/})
50
+
51
+ if $PROGRAM_NAME.end_with?("gem") && ARGV == ["build", __FILE__] && File.exist?(signing_key_path)
52
+ s.signing_key = signing_key_path
53
+ s.cert_chain = ['../certs/opensearch-rubygems.pem']
54
+ end
55
+
56
+ s.require_paths = ['lib']
57
+
58
+ s.extra_rdoc_files = [ 'README.md', 'LICENSE' ]
59
+ s.rdoc_options = [ '--charset=UTF-8' ]
60
+
61
+ s.required_ruby_version = '>= 2.4'
62
+
63
+ s.add_dependency 'multi_json'
64
+
65
+ s.add_development_dependency 'ansi'
66
+ s.add_development_dependency 'bundler'
67
+ s.add_development_dependency 'opensearch'
68
+ s.add_development_dependency 'opensearch-transport'
69
+ s.add_development_dependency 'minitest'
70
+ s.add_development_dependency 'minitest-reporters'
71
+ s.add_development_dependency 'mocha'
72
+ s.add_development_dependency 'pry'
73
+ s.add_development_dependency 'rake', '~> 13'
74
+ s.add_development_dependency 'shoulda-context'
75
+ s.add_development_dependency 'yard'
76
+
77
+ # Gems for testing integrations
78
+ s.add_development_dependency 'jsonify'
79
+ s.add_development_dependency 'hashie'
80
+
81
+ s.add_development_dependency 'cane'
82
+ s.add_development_dependency 'escape_utils' unless defined? JRUBY_VERSION
83
+ s.add_development_dependency 'jbuilder'
84
+ s.add_development_dependency 'require-prof' unless defined?(JRUBY_VERSION) || defined?(Rubinius)
85
+ s.add_development_dependency 'simplecov'
86
+ s.add_development_dependency 'test-unit', '~> 2'
87
+ s.add_development_dependency 'ruby-prof' unless defined?(JRUBY_VERSION) || defined?(Rubinius)
88
+
89
+ s.description = <<-DESC.gsub(/^ /, '')
90
+ Ruby API for OpenSearch. See the `opensearch` gem for full integration.
91
+ DESC
92
+ end
@@ -0,0 +1,43 @@
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
+ require 'spec_helper'
28
+
29
+ describe 'client#abort_benchmark' do
30
+
31
+ let(:expected_args) do
32
+ [
33
+ 'POST',
34
+ '_bench/abort/foo',
35
+ {},
36
+ nil
37
+ ]
38
+ end
39
+
40
+ it 'performs the request' do
41
+ expect(client_double.abort_benchmark(name: 'foo'))
42
+ end
43
+ end
@@ -0,0 +1,43 @@
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
+ require 'spec_helper'
28
+
29
+ describe 'client#benchmark' do
30
+
31
+ let(:expected_args) do
32
+ [
33
+ 'PUT',
34
+ '_bench',
35
+ {},
36
+ { name: 'foo' }
37
+ ]
38
+ end
39
+
40
+ it 'performs the request' do
41
+ expect(client_double.benchmark(body: { name: 'foo' }))
42
+ end
43
+ end