elasticsearch-api 7.13.3 → 7.17.11

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 (198) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +5 -5
  3. data/README.md +18 -39
  4. data/Rakefile +2 -16
  5. data/elasticsearch-api.gemspec +14 -8
  6. data/lib/elasticsearch/api/actions/bulk.rb +2 -2
  7. data/lib/elasticsearch/api/actions/cat/aliases.rb +1 -1
  8. data/lib/elasticsearch/api/actions/cat/allocation.rb +1 -1
  9. data/lib/elasticsearch/api/actions/cat/count.rb +1 -1
  10. data/lib/elasticsearch/api/actions/cat/fielddata.rb +1 -1
  11. data/lib/elasticsearch/api/actions/cat/health.rb +1 -1
  12. data/lib/elasticsearch/api/actions/cat/help.rb +1 -1
  13. data/lib/elasticsearch/api/actions/cat/indices.rb +1 -1
  14. data/lib/elasticsearch/api/actions/cat/master.rb +1 -1
  15. data/lib/elasticsearch/api/actions/cat/nodeattrs.rb +1 -1
  16. data/lib/elasticsearch/api/actions/cat/nodes.rb +1 -1
  17. data/lib/elasticsearch/api/actions/cat/pending_tasks.rb +1 -1
  18. data/lib/elasticsearch/api/actions/cat/plugins.rb +1 -1
  19. data/lib/elasticsearch/api/actions/cat/recovery.rb +1 -1
  20. data/lib/elasticsearch/api/actions/cat/repositories.rb +1 -1
  21. data/lib/elasticsearch/api/actions/cat/segments.rb +1 -1
  22. data/lib/elasticsearch/api/actions/cat/shards.rb +1 -1
  23. data/lib/elasticsearch/api/actions/cat/snapshots.rb +1 -1
  24. data/lib/elasticsearch/api/actions/cat/tasks.rb +1 -1
  25. data/lib/elasticsearch/api/actions/cat/templates.rb +1 -1
  26. data/lib/elasticsearch/api/actions/cat/thread_pool.rb +1 -1
  27. data/lib/elasticsearch/api/actions/clear_scroll.rb +1 -1
  28. data/lib/elasticsearch/api/actions/close_point_in_time.rb +1 -1
  29. data/lib/elasticsearch/api/actions/cluster/allocation_explain.rb +3 -3
  30. data/lib/elasticsearch/api/actions/cluster/delete_component_template.rb +1 -1
  31. data/lib/elasticsearch/api/actions/cluster/delete_voting_config_exclusions.rb +1 -1
  32. data/lib/elasticsearch/api/actions/cluster/exists_component_template.rb +2 -1
  33. data/lib/elasticsearch/api/actions/cluster/get_component_template.rb +1 -1
  34. data/lib/elasticsearch/api/actions/cluster/get_settings.rb +1 -1
  35. data/lib/elasticsearch/api/actions/cluster/health.rb +1 -1
  36. data/lib/elasticsearch/api/actions/cluster/pending_tasks.rb +1 -1
  37. data/lib/elasticsearch/api/actions/cluster/post_voting_config_exclusions.rb +1 -1
  38. data/lib/elasticsearch/api/actions/cluster/put_component_template.rb +1 -1
  39. data/lib/elasticsearch/api/actions/cluster/put_settings.rb +1 -1
  40. data/lib/elasticsearch/api/actions/cluster/remote_info.rb +1 -1
  41. data/lib/elasticsearch/api/actions/cluster/reroute.rb +1 -1
  42. data/lib/elasticsearch/api/actions/cluster/state.rb +1 -1
  43. data/lib/elasticsearch/api/actions/cluster/stats.rb +1 -1
  44. data/lib/elasticsearch/api/actions/count.rb +7 -2
  45. data/lib/elasticsearch/api/actions/create.rb +1 -1
  46. data/lib/elasticsearch/api/actions/dangling_indices/delete_dangling_index.rb +1 -1
  47. data/lib/elasticsearch/api/actions/dangling_indices/import_dangling_index.rb +1 -1
  48. data/lib/elasticsearch/api/actions/dangling_indices/list_dangling_indices.rb +1 -1
  49. data/lib/elasticsearch/api/actions/delete.rb +1 -1
  50. data/lib/elasticsearch/api/actions/delete_by_query.rb +1 -7
  51. data/lib/elasticsearch/api/actions/delete_by_query_rethrottle.rb +1 -1
  52. data/lib/elasticsearch/api/actions/delete_script.rb +1 -1
  53. data/lib/elasticsearch/api/actions/exists.rb +2 -1
  54. data/lib/elasticsearch/api/actions/exists_source.rb +2 -1
  55. data/lib/elasticsearch/api/actions/explain.rb +6 -6
  56. data/lib/elasticsearch/api/actions/features/get_features.rb +1 -1
  57. data/lib/elasticsearch/api/actions/features/reset_features.rb +1 -1
  58. data/lib/elasticsearch/api/actions/field_caps.rb +6 -6
  59. data/lib/elasticsearch/api/actions/get.rb +1 -1
  60. data/lib/elasticsearch/api/actions/get_script.rb +1 -1
  61. data/lib/elasticsearch/api/actions/get_script_context.rb +1 -5
  62. data/lib/elasticsearch/api/actions/get_script_languages.rb +1 -5
  63. data/lib/elasticsearch/api/actions/get_source.rb +1 -1
  64. data/lib/elasticsearch/api/actions/index.rb +1 -1
  65. data/lib/elasticsearch/api/actions/indices/add_block.rb +1 -1
  66. data/lib/elasticsearch/api/actions/indices/analyze.rb +6 -6
  67. data/lib/elasticsearch/api/actions/indices/clear_cache.rb +1 -1
  68. data/lib/elasticsearch/api/actions/indices/clone.rb +1 -1
  69. data/lib/elasticsearch/api/actions/indices/close.rb +1 -1
  70. data/lib/elasticsearch/api/actions/indices/create.rb +1 -1
  71. data/lib/elasticsearch/api/actions/indices/delete.rb +2 -2
  72. data/lib/elasticsearch/api/actions/indices/delete_alias.rb +1 -1
  73. data/lib/elasticsearch/api/actions/indices/delete_index_template.rb +6 -2
  74. data/lib/elasticsearch/api/actions/indices/delete_template.rb +1 -1
  75. data/lib/elasticsearch/api/actions/indices/disk_usage.rb +68 -0
  76. data/lib/elasticsearch/api/actions/indices/exists.rb +2 -1
  77. data/lib/elasticsearch/api/actions/indices/exists_alias.rb +2 -1
  78. data/lib/elasticsearch/api/actions/indices/exists_index_template.rb +6 -2
  79. data/lib/elasticsearch/api/actions/indices/exists_template.rb +2 -1
  80. data/lib/elasticsearch/api/actions/indices/exists_type.rb +2 -1
  81. data/lib/elasticsearch/api/actions/indices/field_usage_stats.rb +66 -0
  82. data/lib/elasticsearch/api/actions/indices/flush.rb +1 -1
  83. data/lib/elasticsearch/api/actions/indices/flush_synced.rb +1 -1
  84. data/lib/elasticsearch/api/actions/indices/forcemerge.rb +1 -1
  85. data/lib/elasticsearch/api/actions/indices/get.rb +1 -1
  86. data/lib/elasticsearch/api/actions/indices/get_alias.rb +1 -1
  87. data/lib/elasticsearch/api/actions/indices/get_field_mapping.rb +1 -1
  88. data/lib/elasticsearch/api/actions/indices/get_index_template.rb +2 -2
  89. data/lib/elasticsearch/api/actions/indices/get_mapping.rb +1 -1
  90. data/lib/elasticsearch/api/actions/indices/get_settings.rb +1 -1
  91. data/lib/elasticsearch/api/actions/indices/get_template.rb +1 -1
  92. data/lib/elasticsearch/api/actions/indices/get_upgrade.rb +1 -1
  93. data/lib/elasticsearch/api/actions/indices/open.rb +1 -1
  94. data/lib/elasticsearch/api/actions/indices/put_alias.rb +1 -1
  95. data/lib/elasticsearch/api/actions/indices/put_index_template.rb +1 -1
  96. data/lib/elasticsearch/api/actions/indices/put_mapping.rb +1 -1
  97. data/lib/elasticsearch/api/actions/indices/put_settings.rb +1 -1
  98. data/lib/elasticsearch/api/actions/indices/put_template.rb +1 -1
  99. data/lib/elasticsearch/api/actions/indices/recovery.rb +1 -1
  100. data/lib/elasticsearch/api/actions/indices/refresh.rb +1 -1
  101. data/lib/elasticsearch/api/actions/indices/resolve_index.rb +1 -5
  102. data/lib/elasticsearch/api/actions/indices/rollover.rb +1 -1
  103. data/lib/elasticsearch/api/actions/indices/segments.rb +1 -1
  104. data/lib/elasticsearch/api/actions/indices/shard_stores.rb +1 -1
  105. data/lib/elasticsearch/api/actions/indices/shrink.rb +1 -1
  106. data/lib/elasticsearch/api/actions/indices/simulate_index_template.rb +1 -1
  107. data/lib/elasticsearch/api/actions/indices/simulate_template.rb +1 -1
  108. data/lib/elasticsearch/api/actions/indices/split.rb +1 -1
  109. data/lib/elasticsearch/api/actions/indices/stats.rb +1 -1
  110. data/lib/elasticsearch/api/actions/indices/update_aliases.rb +1 -1
  111. data/lib/elasticsearch/api/actions/indices/upgrade.rb +1 -1
  112. data/lib/elasticsearch/api/actions/indices/validate_query.rb +8 -8
  113. data/lib/elasticsearch/api/actions/info.rb +1 -1
  114. data/lib/elasticsearch/api/actions/ingest/delete_pipeline.rb +1 -1
  115. data/lib/elasticsearch/api/actions/ingest/geo_ip_stats.rb +1 -1
  116. data/lib/elasticsearch/api/actions/ingest/get_pipeline.rb +1 -1
  117. data/lib/elasticsearch/api/actions/ingest/processor_grok.rb +1 -1
  118. data/lib/elasticsearch/api/actions/ingest/put_pipeline.rb +3 -1
  119. data/lib/elasticsearch/api/actions/ingest/simulate.rb +1 -1
  120. data/lib/elasticsearch/api/actions/mget.rb +1 -1
  121. data/lib/elasticsearch/api/actions/msearch.rb +3 -3
  122. data/lib/elasticsearch/api/actions/msearch_template.rb +3 -3
  123. data/lib/elasticsearch/api/actions/mtermvectors.rb +8 -8
  124. data/lib/elasticsearch/api/actions/nodes/clear_repositories_metering_archive.rb +56 -0
  125. data/lib/elasticsearch/api/actions/{snapshot/get_features.rb → nodes/get_repositories_metering_info.rb} +15 -14
  126. data/lib/elasticsearch/api/actions/nodes/hot_threads.rb +4 -2
  127. data/lib/elasticsearch/api/actions/nodes/info.rb +2 -2
  128. data/lib/elasticsearch/api/actions/nodes/reload_secure_settings.rb +1 -1
  129. data/lib/elasticsearch/api/actions/nodes/stats.rb +2 -2
  130. data/lib/elasticsearch/api/actions/nodes/usage.rb +1 -1
  131. data/lib/elasticsearch/api/actions/open_point_in_time.rb +5 -7
  132. data/lib/elasticsearch/api/actions/ping.rb +3 -3
  133. data/lib/elasticsearch/api/actions/put_script.rb +1 -1
  134. data/lib/elasticsearch/api/actions/rank_eval.rb +1 -5
  135. data/lib/elasticsearch/api/actions/reindex.rb +1 -1
  136. data/lib/elasticsearch/api/actions/reindex_rethrottle.rb +1 -1
  137. data/lib/elasticsearch/api/actions/render_search_template.rb +6 -6
  138. data/lib/elasticsearch/api/actions/scripts_painless_execute.rb +2 -2
  139. data/lib/elasticsearch/api/actions/scroll.rb +6 -6
  140. data/lib/elasticsearch/api/actions/search.rb +8 -8
  141. data/lib/elasticsearch/api/actions/search_mvt.rb +85 -0
  142. data/lib/elasticsearch/api/actions/search_shards.rb +1 -1
  143. data/lib/elasticsearch/api/actions/search_template.rb +2 -2
  144. data/lib/elasticsearch/api/actions/shutdown/delete_node.rb +1 -5
  145. data/lib/elasticsearch/api/actions/shutdown/get_node.rb +1 -5
  146. data/lib/elasticsearch/api/actions/shutdown/put_node.rb +1 -5
  147. data/lib/elasticsearch/api/actions/snapshot/cleanup_repository.rb +1 -1
  148. data/lib/elasticsearch/api/actions/snapshot/clone.rb +1 -1
  149. data/lib/elasticsearch/api/actions/snapshot/create.rb +1 -1
  150. data/lib/elasticsearch/api/actions/snapshot/create_repository.rb +1 -1
  151. data/lib/elasticsearch/api/actions/snapshot/delete.rb +1 -1
  152. data/lib/elasticsearch/api/actions/snapshot/delete_repository.rb +1 -1
  153. data/lib/elasticsearch/api/actions/snapshot/get.rb +17 -1
  154. data/lib/elasticsearch/api/actions/snapshot/get_repository.rb +1 -1
  155. data/lib/elasticsearch/api/actions/snapshot/repository_analyze.rb +76 -0
  156. data/lib/elasticsearch/api/actions/snapshot/restore.rb +1 -1
  157. data/lib/elasticsearch/api/actions/snapshot/status.rb +1 -1
  158. data/lib/elasticsearch/api/actions/snapshot/verify_repository.rb +1 -1
  159. data/lib/elasticsearch/api/actions/tasks/cancel.rb +1 -1
  160. data/lib/elasticsearch/api/actions/tasks/get.rb +1 -1
  161. data/lib/elasticsearch/api/actions/tasks/list.rb +1 -1
  162. data/lib/elasticsearch/api/actions/termvectors.rb +11 -10
  163. data/lib/elasticsearch/api/actions/update.rb +1 -1
  164. data/lib/elasticsearch/api/actions/update_by_query.rb +1 -7
  165. data/lib/elasticsearch/api/actions/update_by_query_rethrottle.rb +1 -1
  166. data/lib/elasticsearch/api/{actions/remote/info.rb → namespace/security.rb} +12 -13
  167. data/lib/elasticsearch/api/utils.rb +7 -3
  168. data/lib/elasticsearch/api/version.rb +1 -1
  169. data/spec/elasticsearch/api/actions/count_spec.rb +2 -5
  170. data/spec/elasticsearch/api/actions/indices/clear_cache_spec.rb +16 -3
  171. data/spec/elasticsearch/api/actions/{abort_benchmark_spec.rb → indices/disk_usage_spec.rb} +19 -5
  172. data/spec/elasticsearch/api/actions/{benchmark_spec.rb → indices/field_usage_stats_spec.rb} +18 -6
  173. data/spec/elasticsearch/api/actions/nodes/clear_repositories_metering_archive_spec.rb +51 -0
  174. data/spec/elasticsearch/api/actions/{remote/info_spec.rb → nodes/get_repositories_metering_info_spec.rb} +17 -8
  175. data/spec/elasticsearch/api/actions/open_point_in_time_spec.rb +2 -12
  176. data/spec/elasticsearch/api/actions/search_mvt_spec.rb +52 -0
  177. data/spec/elasticsearch/api/actions/snapshot/{get_features_spec.rb → repository_analize_spec.rb} +15 -5
  178. data/spec/elasticsearch/api/rest_api_yaml_spec.rb +18 -6
  179. data/spec/elasticsearch/api/utils_spec.rb +9 -21
  180. data/spec/rest_yaml_tests_helper.rb +64 -10
  181. data/spec/spec_helper.rb +13 -2
  182. data/utils/README.md +6 -1
  183. data/utils/thor/.rubocop.yml +2 -0
  184. data/utils/thor/generate_source.rb +17 -11
  185. data/utils/thor/generator/endpoint_specifics.rb +3 -1
  186. data/utils/thor/generator/files_helper.rb +1 -1
  187. data/utils/thor/templates/_documentation_top.erb +19 -0
  188. data/utils/thor/templates/_method_setup.erb +18 -0
  189. data/utils/thor/templates/_params_registry.erb +19 -0
  190. data/utils/thor/templates/_perform_request.erb +19 -1
  191. data/utils/thor/templates/test.erb +16 -3
  192. data/utils/thor/templates/test_helper.rb +0 -4
  193. metadata +38 -41
  194. data/lib/elasticsearch/api/actions/abort_benchmark.rb +0 -41
  195. data/lib/elasticsearch/api/actions/benchmark.rb +0 -81
  196. data/lib/elasticsearch/api/actions/delete_by_rethrottle.rb +0 -47
  197. data/lib/elasticsearch/api/actions/nodes/shutdown.rb +0 -56
  198. data/spec/elasticsearch/api/actions/nodes/shutdown_spec.rb +0 -76
@@ -26,7 +26,7 @@ module Elasticsearch
26
26
  # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
27
27
  # @option arguments [Hash] :headers Custom HTTP headers
28
28
  #
29
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/modules-snapshots.html
29
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.17/modules-snapshots.html
30
30
  #
31
31
  def delete(arguments = {})
32
32
  raise ArgumentError, "Required argument 'repository' missing" unless arguments[:repository]
@@ -26,7 +26,7 @@ module Elasticsearch
26
26
  # @option arguments [Time] :timeout Explicit operation timeout
27
27
  # @option arguments [Hash] :headers Custom HTTP headers
28
28
  #
29
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/modules-snapshots.html
29
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.17/modules-snapshots.html
30
30
  #
31
31
  def delete_repository(arguments = {})
32
32
  raise ArgumentError, "Required argument 'repository' missing" unless arguments[:repository]
@@ -26,10 +26,18 @@ module Elasticsearch
26
26
  # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
27
27
  # @option arguments [Boolean] :ignore_unavailable Whether to ignore unavailable snapshots, defaults to false which means a SnapshotMissingException is thrown
28
28
  # @option arguments [Boolean] :index_details Whether to include details of each index in the snapshot, if those details are available. Defaults to false.
29
+ # @option arguments [Boolean] :include_repository Whether to include the repository name in the snapshot info. Defaults to true.
30
+ # @option arguments [String] :sort Allows setting a sort order for the result. Defaults to start_time (options: start_time, duration, name, repository, index_count, shard_count, failed_shard_count)
31
+ # @option arguments [Integer] :size Maximum number of snapshots to return. Defaults to 0 which means return all that match without limit.
32
+ # @option arguments [String] :order Sort order (options: asc, desc)
33
+ # @option arguments [String] :from_sort_value Value of the current sort column at which to start retrieval.
34
+ # @option arguments [String] :after Offset identifier to start pagination from as returned by the 'next' field in the response body.
35
+ # @option arguments [Integer] :offset Numeric offset to start pagination based on the snapshots matching the request. Defaults to 0
36
+ # @option arguments [String] :slm_policy_filter Filter snapshots by a comma-separated list of SLM policy names that snapshots belong to. Accepts wildcards. Use the special pattern '_none' to match snapshots without an SLM policy
29
37
  # @option arguments [Boolean] :verbose Whether to show verbose snapshot info or only show the basic info found in the repository index blob
30
38
  # @option arguments [Hash] :headers Custom HTTP headers
31
39
  #
32
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/modules-snapshots.html
40
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.17/modules-snapshots.html
33
41
  #
34
42
  def get(arguments = {})
35
43
  raise ArgumentError, "Required argument 'repository' missing" unless arguments[:repository]
@@ -62,6 +70,14 @@ module Elasticsearch
62
70
  :master_timeout,
63
71
  :ignore_unavailable,
64
72
  :index_details,
73
+ :include_repository,
74
+ :sort,
75
+ :size,
76
+ :order,
77
+ :from_sort_value,
78
+ :after,
79
+ :offset,
80
+ :slm_policy_filter,
65
81
  :verbose
66
82
  ].freeze)
67
83
  end
@@ -26,7 +26,7 @@ module Elasticsearch
26
26
  # @option arguments [Boolean] :local Return local information, do not retrieve the state from master node (default: false)
27
27
  # @option arguments [Hash] :headers Custom HTTP headers
28
28
  #
29
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/modules-snapshots.html
29
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.17/modules-snapshots.html
30
30
  #
31
31
  def get_repository(arguments = {})
32
32
  headers = arguments.delete(:headers) || {}
@@ -0,0 +1,76 @@
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ module Elasticsearch
19
+ module API
20
+ module Snapshot
21
+ module Actions
22
+ # Analyzes a repository for correctness and performance
23
+ #
24
+ # @option arguments [String] :repository A repository name
25
+ # @option arguments [Number] :blob_count Number of blobs to create during the test. Defaults to 100.
26
+ # @option arguments [Number] :concurrency Number of operations to run concurrently during the test. Defaults to 10.
27
+ # @option arguments [Number] :read_node_count Number of nodes on which to read a blob after writing. Defaults to 10.
28
+ # @option arguments [Number] :early_read_node_count Number of nodes on which to perform an early read on a blob, i.e. before writing has completed. Early reads are rare actions so the 'rare_action_probability' parameter is also relevant. Defaults to 2.
29
+ # @option arguments [Number] :seed Seed for the random number generator used to create the test workload. Defaults to a random value.
30
+ # @option arguments [Number] :rare_action_probability Probability of taking a rare action such as an early read or an overwrite. Defaults to 0.02.
31
+ # @option arguments [String] :max_blob_size Maximum size of a blob to create during the test, e.g '1gb' or '100mb'. Defaults to '10mb'.
32
+ # @option arguments [String] :max_total_data_size Maximum total size of all blobs to create during the test, e.g '1tb' or '100gb'. Defaults to '1gb'.
33
+ # @option arguments [Time] :timeout Explicit operation timeout. Defaults to '30s'.
34
+ # @option arguments [Boolean] :detailed Whether to return detailed results or a summary. Defaults to 'false' so that only the summary is returned.
35
+ # @option arguments [Boolean] :rarely_abort_writes Whether to rarely abort writes before they complete. Defaults to 'true'.
36
+ # @option arguments [Hash] :headers Custom HTTP headers
37
+ #
38
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.17/modules-snapshots.html
39
+ #
40
+ def repository_analyze(arguments = {})
41
+ raise ArgumentError, "Required argument 'repository' missing" unless arguments[:repository]
42
+
43
+ headers = arguments.delete(:headers) || {}
44
+
45
+ arguments = arguments.clone
46
+
47
+ _repository = arguments.delete(:repository)
48
+
49
+ method = Elasticsearch::API::HTTP_POST
50
+ path = "_snapshot/#{Utils.__listify(_repository)}/_analyze"
51
+ params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
52
+
53
+ body = nil
54
+ perform_request(method, path, params, body, headers).body
55
+ end
56
+
57
+ # Register this action with its valid params when the module is loaded.
58
+ #
59
+ # @since 6.2.0
60
+ ParamsRegistry.register(:repository_analyze, [
61
+ :blob_count,
62
+ :concurrency,
63
+ :read_node_count,
64
+ :early_read_node_count,
65
+ :seed,
66
+ :rare_action_probability,
67
+ :max_blob_size,
68
+ :max_total_data_size,
69
+ :timeout,
70
+ :detailed,
71
+ :rarely_abort_writes
72
+ ].freeze)
73
+ end
74
+ end
75
+ end
76
+ end
@@ -28,7 +28,7 @@ module Elasticsearch
28
28
  # @option arguments [Hash] :headers Custom HTTP headers
29
29
  # @option arguments [Hash] :body Details of what to restore
30
30
  #
31
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/modules-snapshots.html
31
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.17/modules-snapshots.html
32
32
  #
33
33
  def restore(arguments = {})
34
34
  raise ArgumentError, "Required argument 'repository' missing" unless arguments[:repository]
@@ -27,7 +27,7 @@ module Elasticsearch
27
27
  # @option arguments [Boolean] :ignore_unavailable Whether to ignore unavailable snapshots, defaults to false which means a SnapshotMissingException is thrown
28
28
  # @option arguments [Hash] :headers Custom HTTP headers
29
29
  #
30
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/modules-snapshots.html
30
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.17/modules-snapshots.html
31
31
  #
32
32
  def status(arguments = {})
33
33
  headers = arguments.delete(:headers) || {}
@@ -26,7 +26,7 @@ module Elasticsearch
26
26
  # @option arguments [Time] :timeout Explicit operation timeout
27
27
  # @option arguments [Hash] :headers Custom HTTP headers
28
28
  #
29
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/modules-snapshots.html
29
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.17/modules-snapshots.html
30
30
  #
31
31
  def verify_repository(arguments = {})
32
32
  raise ArgumentError, "Required argument 'repository' missing" unless arguments[:repository]
@@ -32,7 +32,7 @@ module Elasticsearch
32
32
  # @option arguments [Boolean] :wait_for_completion Should the request block until the cancellation of the task and its descendant tasks is completed. Defaults to false
33
33
  # @option arguments [Hash] :headers Custom HTTP headers
34
34
  #
35
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/tasks.html
35
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.17/tasks.html
36
36
  #
37
37
  def cancel(arguments = {})
38
38
  headers = arguments.delete(:headers) || {}
@@ -30,7 +30,7 @@ module Elasticsearch
30
30
  # @option arguments [Time] :timeout Explicit operation timeout
31
31
  # @option arguments [Hash] :headers Custom HTTP headers
32
32
  #
33
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/tasks.html
33
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.17/tasks.html
34
34
  #
35
35
  def get(arguments = {})
36
36
  headers = arguments.delete(:headers) || {}
@@ -34,7 +34,7 @@ module Elasticsearch
34
34
  # @option arguments [Time] :timeout Explicit operation timeout
35
35
  # @option arguments [Hash] :headers Custom HTTP headers
36
36
  #
37
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/tasks.html
37
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.17/tasks.html
38
38
  #
39
39
  def list(arguments = {})
40
40
  headers = arguments.delete(:headers) || {}
@@ -42,7 +42,7 @@ module Elasticsearch
42
42
  # Deprecated since version 7.0.0
43
43
  #
44
44
  #
45
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/docs-termvectors.html
45
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.17/docs-termvectors.html
46
46
  #
47
47
  def termvectors(arguments = {})
48
48
  raise ArgumentError, "Required argument 'index' missing" unless arguments[:index]
@@ -64,15 +64,15 @@ module Elasticsearch
64
64
  end
65
65
 
66
66
  endpoint = arguments.delete(:endpoint) || '_termvectors'
67
- path = if _index && _type && _id
68
- "#{Utils.__listify(_index)}/#{Utils.__listify(_type)}/#{Utils.__listify(_id)}/#{endpoint}"
69
- elsif _index && _type
70
- "#{Utils.__listify(_index)}/#{Utils.__listify(_type)}/#{endpoint}"
71
- elsif _index && _id
72
- "#{Utils.__listify(_index)}/#{endpoint}/#{Utils.__listify(_id)}"
73
- else
74
- "#{Utils.__listify(_index)}/#{endpoint}"
75
- end
67
+ path = if _index && _type && _id
68
+ "#{Utils.__listify(_index)}/#{Utils.__listify(_type)}/#{Utils.__listify(_id)}/#{endpoint}"
69
+ elsif _index && _type
70
+ "#{Utils.__listify(_index)}/#{Utils.__listify(_type)}/#{endpoint}"
71
+ elsif _index && _id
72
+ "#{Utils.__listify(_index)}/#{endpoint}/#{Utils.__listify(_id)}"
73
+ else
74
+ "#{Utils.__listify(_index)}/#{endpoint}"
75
+ end
76
76
 
77
77
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
78
78
 
@@ -85,6 +85,7 @@ module Elasticsearch
85
85
  def termvector(arguments = {})
86
86
  termvectors(arguments.merge endpoint: '_termvector')
87
87
  end
88
+
88
89
  # Register this action with its valid params when the module is loaded.
89
90
  #
90
91
  # @since 6.2.0
@@ -43,7 +43,7 @@ module Elasticsearch
43
43
  # Deprecated since version 7.0.0
44
44
  #
45
45
  #
46
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/docs-update.html
46
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.17/docs-update.html
47
47
  #
48
48
  def update(arguments = {})
49
49
  raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]
@@ -43,9 +43,6 @@ module Elasticsearch
43
43
  # @option arguments [Number] :size Deprecated, please use `max_docs` instead
44
44
  # @option arguments [Number] :max_docs Maximum number of documents to process (default: all documents)
45
45
  # @option arguments [List] :sort A comma-separated list of <field>:<direction> pairs
46
- # @option arguments [List] :_source True or false to return the _source field or not, or a list of fields to return
47
- # @option arguments [List] :_source_excludes A list of fields to exclude from the returned _source field
48
- # @option arguments [List] :_source_includes A list of fields to extract and return from the _source field
49
46
  # @option arguments [Number] :terminate_after The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early.
50
47
  # @option arguments [List] :stats Specific 'tag' of the request for logging and statistical purposes
51
48
  # @option arguments [Boolean] :version Specify whether to return document version as part of a hit
@@ -66,7 +63,7 @@ module Elasticsearch
66
63
  # Deprecated since version 7.0.0
67
64
  #
68
65
  #
69
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/docs-update-by-query.html
66
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.17/docs-update-by-query.html
70
67
  #
71
68
  def update_by_query(arguments = {})
72
69
  raise ArgumentError, "Required argument 'index' missing" unless arguments[:index]
@@ -115,9 +112,6 @@ module Elasticsearch
115
112
  :size,
116
113
  :max_docs,
117
114
  :sort,
118
- :_source,
119
- :_source_excludes,
120
- :_source_includes,
121
115
  :terminate_after,
122
116
  :stats,
123
117
  :version,
@@ -24,7 +24,7 @@ module Elasticsearch
24
24
  # @option arguments [Number] :requests_per_second The throttle to set on this request in floating sub-requests per second. -1 means set no throttle. (*Required*)
25
25
  # @option arguments [Hash] :headers Custom HTTP headers
26
26
  #
27
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/docs-update-by-query.html
27
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.17/docs-update-by-query.html
28
28
  #
29
29
  def update_by_query_rethrottle(arguments = {})
30
30
  raise ArgumentError, "Required argument 'task_id' missing" unless arguments[:task_id]
@@ -17,20 +17,19 @@
17
17
 
18
18
  module Elasticsearch
19
19
  module API
20
- module Remote
21
- module Actions
22
- # Returns all of the configured remote cluster information
23
- #
24
- # @see http://www.elastic.co/guide/en/elasticsearch/reference/master/remote-info.html
25
- #
26
- def info(arguments = {})
27
- method = HTTP_GET
28
- path = "_remote/info"
29
- params = {}
30
- body = nil
20
+ module Security
21
+ module Actions; end
31
22
 
32
- perform_request(method, path, params, body).body
33
- end
23
+ # Client for the "security" namespace (includes the {Security::Actions} methods)
24
+ #
25
+ class SecurityClient
26
+ include Common::Client, Common::Client::Base, Security::Actions
27
+ end
28
+
29
+ # Proxy method for {SecurityClient}, available in the receiving object
30
+ #
31
+ def security
32
+ @security ||= SecurityClient.new(self)
34
33
  end
35
34
  end
36
35
  end
@@ -14,14 +14,13 @@
14
14
  # KIND, either express or implied. See the License for the
15
15
  # specific language governing permissions and limitations
16
16
  # under the License.
17
+ require 'erb'
17
18
 
18
19
  module Elasticsearch
19
20
  module API
20
-
21
21
  # Generic utility methods
22
22
  #
23
23
  module Utils
24
-
25
24
  # URL-escape a string
26
25
  #
27
26
  # @example
@@ -31,7 +30,7 @@ module Elasticsearch
31
30
  # @api private
32
31
  def __escape(string)
33
32
  return string if string == '*'
34
- defined?(EscapeUtils) ? EscapeUtils.escape_url(string.to_s) : CGI.escape(string.to_s)
33
+ ERB::Util.url_encode(string.to_s)
35
34
  end
36
35
 
37
36
  # Create a "list" of values from arguments, ignoring nil values and encoding special characters.
@@ -282,6 +281,11 @@ module Elasticsearch
282
281
  end
283
282
  end
284
283
 
284
+ def ndjson_headers(headers)
285
+ headers.merge!('Content-Type' => 'application/x-ndjson') unless ['1', 'true'].include?(ENV['ELASTIC_CLIENT_APIVERSIONING'])
286
+ headers
287
+ end
288
+
285
289
  extend self
286
290
  end
287
291
  end
@@ -17,6 +17,6 @@
17
17
 
18
18
  module Elasticsearch
19
19
  module API
20
- VERSION = '7.13.3'.freeze
20
+ VERSION = '7.17.11'.freeze
21
21
  end
22
22
  end
@@ -18,10 +18,9 @@
18
18
  require 'spec_helper'
19
19
 
20
20
  describe 'client#count' do
21
-
22
21
  let(:expected_args) do
23
22
  [
24
- 'POST',
23
+ 'GET',
25
24
  '_count',
26
25
  {},
27
26
  nil,
@@ -34,10 +33,9 @@ describe 'client#count' do
34
33
  end
35
34
 
36
35
  context 'when an index and type are specified' do
37
-
38
36
  let(:expected_args) do
39
37
  [
40
- 'POST',
38
+ 'GET',
41
39
  'foo,bar/t1,t2/_count',
42
40
  {},
43
41
  nil,
@@ -51,7 +49,6 @@ describe 'client#count' do
51
49
  end
52
50
 
53
51
  context 'when there is a query provided' do
54
-
55
52
  let(:expected_args) do
56
53
  [
57
54
  'POST',
@@ -1,7 +1,20 @@
1
- # Licensed to Elasticsearch B.V under one or more agreements.
2
- # Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
3
- # See the LICENSE file in the project root for more information
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
4
8
  #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
5
18
  require 'spec_helper'
6
19
 
7
20
  describe 'client.indices#clear_cache' do
@@ -17,18 +17,32 @@
17
17
 
18
18
  require 'spec_helper'
19
19
 
20
- describe 'client#abort_benchmark' do
21
-
20
+ describe 'client.indices#disk_usage' do
22
21
  let(:expected_args) do
23
22
  [
24
23
  'POST',
25
- '_bench/abort/foo',
24
+ "#{index}/_disk_usage",
26
25
  {},
27
- nil
26
+ nil,
27
+ {}
28
28
  ]
29
29
  end
30
30
 
31
+ let(:index) { 'foo' }
32
+
31
33
  it 'performs the request' do
32
- expect(client_double.abort_benchmark(name: 'foo'))
34
+ expect(client_double.indices.disk_usage(index: index)).to eq({})
35
+ end
36
+
37
+ context 'when there is no index specified' do
38
+ let(:client) do
39
+ Class.new { include Elasticsearch::API }.new
40
+ end
41
+
42
+ it 'raises an exception' do
43
+ expect do
44
+ client.indices.disk_usage
45
+ end.to raise_exception(ArgumentError)
46
+ end
33
47
  end
34
48
  end
@@ -17,18 +17,30 @@
17
17
 
18
18
  require 'spec_helper'
19
19
 
20
- describe 'client#benchmark' do
21
-
20
+ describe 'client.indices#field_usage_stats' do
22
21
  let(:expected_args) do
23
22
  [
24
- 'PUT',
25
- '_bench',
23
+ 'GET',
24
+ 'foo/_field_usage_stats',
26
25
  {},
27
- { name: 'foo' }
26
+ nil,
27
+ {}
28
28
  ]
29
29
  end
30
30
 
31
31
  it 'performs the request' do
32
- expect(client_double.benchmark(body: { name: 'foo' }))
32
+ expect(client_double.indices.field_usage_stats(index: 'foo')).to eq({})
33
+ end
34
+
35
+ context 'when there is no index specified' do
36
+ let(:client) do
37
+ Class.new { include Elasticsearch::API }.new
38
+ end
39
+
40
+ it 'raises an exception' do
41
+ expect {
42
+ client.indices.field_usage_stats
43
+ }.to raise_exception(ArgumentError)
44
+ end
33
45
  end
34
46
  end
@@ -0,0 +1,51 @@
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ require 'spec_helper'
19
+
20
+
21
+ describe 'client.nodes#clear_metering_archive' do
22
+ let(:expected_args) do
23
+ [
24
+ 'DELETE',
25
+ '_nodes/foo/_repositories_metering/bar',
26
+ {},
27
+ nil,
28
+ {}
29
+ ]
30
+ end
31
+
32
+ it 'performs the request' do
33
+ expect(client_double.nodes.clear_repositories_metering_archive(node_id: 'foo', max_archive_version: 'bar')).to eq({})
34
+ end
35
+
36
+ let(:client) do
37
+ Class.new { include Elasticsearch::API }.new
38
+ end
39
+
40
+ it 'raises an error if no node_id is provided' do
41
+ expect do
42
+ client.nodes.clear_repositories_metering_archive(max_archive_version: 'bar')
43
+ end.to raise_exception(ArgumentError)
44
+ end
45
+
46
+ it 'raises an error if no max_archive_version is provided' do
47
+ expect do
48
+ client.nodes.clear_repositories_metering_archive(node_id: 'foo')
49
+ end.to raise_exception(ArgumentError)
50
+ end
51
+ end
@@ -17,19 +17,28 @@
17
17
 
18
18
  require 'spec_helper'
19
19
 
20
- describe 'client.remote#info' do
21
-
20
+ describe 'client.nodes#get_metering_info' do
22
21
  let(:expected_args) do
23
22
  [
24
- 'GET',
25
- '_remote/info',
26
- {},
27
- nil,
28
- nil
23
+ 'GET',
24
+ '_nodes/foo/_repositories_metering',
25
+ {},
26
+ nil,
27
+ {}
29
28
  ]
30
29
  end
31
30
 
32
31
  it 'performs the request' do
33
- expect(client_double.remote.info).to eq({})
32
+ expect(client_double.nodes.get_repositories_metering_info(node_id: 'foo', max_archive_version: 'bar')).to eq({})
33
+ end
34
+
35
+ let(:client) do
36
+ Class.new { include Elasticsearch::API }.new
37
+ end
38
+
39
+ it 'raises an error if no node_id is provided' do
40
+ expect do
41
+ client.nodes.get_repositories_metering_info
42
+ end.to raise_exception(ArgumentError)
34
43
  end
35
44
  end
@@ -21,24 +21,14 @@ describe 'client#open_point_in_time' do
21
21
  let(:expected_args) do
22
22
  [
23
23
  'POST',
24
- url,
24
+ 'foo/_pit',
25
25
  {},
26
26
  nil,
27
27
  {}
28
28
  ]
29
29
  end
30
30
 
31
- let (:url) { '_pit'}
32
-
33
31
  it 'performs the request' do
34
- expect(client_double.open_point_in_time).to eq({})
35
- end
36
-
37
- context 'with index' do
38
- let (:url) { 'foo/_pit'}
39
-
40
- it 'performs the request' do
41
- expect(client_double.open_point_in_time(index: 'foo')).to eq({})
42
- end
32
+ expect(client_double.open_point_in_time(index: 'foo')).to eq({})
43
33
  end
44
34
  end