opensearch-api 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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