elasticsearch-api 7.11.1 → 7.13.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (185) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +6 -8
  3. data/Rakefile +46 -62
  4. data/lib/elasticsearch/api.rb +3 -1
  5. data/lib/elasticsearch/api/actions/bulk.rb +1 -1
  6. data/lib/elasticsearch/api/actions/cat/aliases.rb +1 -1
  7. data/lib/elasticsearch/api/actions/cat/allocation.rb +1 -1
  8. data/lib/elasticsearch/api/actions/cat/count.rb +1 -1
  9. data/lib/elasticsearch/api/actions/cat/fielddata.rb +1 -1
  10. data/lib/elasticsearch/api/actions/cat/health.rb +1 -1
  11. data/lib/elasticsearch/api/actions/cat/help.rb +1 -1
  12. data/lib/elasticsearch/api/actions/cat/indices.rb +1 -1
  13. data/lib/elasticsearch/api/actions/cat/master.rb +1 -1
  14. data/lib/elasticsearch/api/actions/cat/nodeattrs.rb +1 -1
  15. data/lib/elasticsearch/api/actions/cat/nodes.rb +4 -2
  16. data/lib/elasticsearch/api/actions/cat/pending_tasks.rb +1 -1
  17. data/lib/elasticsearch/api/actions/cat/plugins.rb +3 -1
  18. data/lib/elasticsearch/api/actions/cat/recovery.rb +1 -1
  19. data/lib/elasticsearch/api/actions/cat/repositories.rb +1 -1
  20. data/lib/elasticsearch/api/actions/cat/segments.rb +1 -1
  21. data/lib/elasticsearch/api/actions/cat/shards.rb +1 -1
  22. data/lib/elasticsearch/api/actions/cat/snapshots.rb +1 -1
  23. data/lib/elasticsearch/api/actions/cat/tasks.rb +1 -1
  24. data/lib/elasticsearch/api/actions/cat/templates.rb +1 -1
  25. data/lib/elasticsearch/api/actions/cat/thread_pool.rb +1 -1
  26. data/lib/elasticsearch/api/actions/clear_scroll.rb +1 -1
  27. data/lib/elasticsearch/api/actions/close_point_in_time.rb +42 -0
  28. data/lib/elasticsearch/api/actions/cluster/allocation_explain.rb +1 -1
  29. data/lib/elasticsearch/api/actions/cluster/delete_component_template.rb +1 -1
  30. data/lib/elasticsearch/api/actions/cluster/delete_voting_config_exclusions.rb +1 -1
  31. data/lib/elasticsearch/api/actions/cluster/exists_component_template.rb +1 -1
  32. data/lib/elasticsearch/api/actions/cluster/get_component_template.rb +1 -1
  33. data/lib/elasticsearch/api/actions/cluster/get_settings.rb +1 -1
  34. data/lib/elasticsearch/api/actions/cluster/health.rb +1 -1
  35. data/lib/elasticsearch/api/actions/cluster/pending_tasks.rb +1 -1
  36. data/lib/elasticsearch/api/actions/cluster/post_voting_config_exclusions.rb +1 -1
  37. data/lib/elasticsearch/api/actions/cluster/put_component_template.rb +1 -1
  38. data/lib/elasticsearch/api/actions/cluster/put_settings.rb +1 -1
  39. data/lib/elasticsearch/api/actions/cluster/remote_info.rb +1 -1
  40. data/lib/elasticsearch/api/actions/cluster/reroute.rb +1 -1
  41. data/lib/elasticsearch/api/actions/cluster/state.rb +1 -1
  42. data/lib/elasticsearch/api/actions/cluster/stats.rb +1 -1
  43. data/lib/elasticsearch/api/actions/count.rb +1 -1
  44. data/lib/elasticsearch/api/actions/create.rb +1 -1
  45. data/lib/elasticsearch/api/actions/dangling_indices/delete_dangling_index.rb +1 -1
  46. data/lib/elasticsearch/api/actions/dangling_indices/import_dangling_index.rb +1 -1
  47. data/lib/elasticsearch/api/actions/dangling_indices/list_dangling_indices.rb +1 -1
  48. data/lib/elasticsearch/api/actions/delete.rb +1 -1
  49. data/lib/elasticsearch/api/actions/delete_by_query.rb +1 -1
  50. data/lib/elasticsearch/api/actions/delete_by_query_rethrottle.rb +1 -1
  51. data/lib/elasticsearch/api/actions/delete_script.rb +1 -1
  52. data/lib/elasticsearch/api/actions/exists.rb +1 -1
  53. data/lib/elasticsearch/api/actions/exists_source.rb +1 -1
  54. data/lib/elasticsearch/api/actions/explain.rb +1 -1
  55. data/lib/elasticsearch/api/actions/features/get_features.rb +51 -0
  56. data/lib/elasticsearch/api/actions/features/params_registry.rb +60 -0
  57. data/lib/elasticsearch/api/actions/features/reset_features.rb +47 -0
  58. data/lib/elasticsearch/api/actions/field_caps.rb +1 -1
  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 -1
  62. data/lib/elasticsearch/api/actions/get_script_languages.rb +1 -1
  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 +1 -1
  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 +2 -2
  70. data/lib/elasticsearch/api/actions/indices/create.rb +1 -1
  71. data/lib/elasticsearch/api/actions/indices/delete.rb +1 -1
  72. data/lib/elasticsearch/api/actions/indices/delete_alias.rb +1 -1
  73. data/lib/elasticsearch/api/actions/indices/delete_index_template.rb +1 -1
  74. data/lib/elasticsearch/api/actions/indices/delete_template.rb +1 -1
  75. data/lib/elasticsearch/api/actions/indices/exists.rb +1 -1
  76. data/lib/elasticsearch/api/actions/indices/exists_alias.rb +1 -1
  77. data/lib/elasticsearch/api/actions/indices/exists_index_template.rb +1 -1
  78. data/lib/elasticsearch/api/actions/indices/exists_template.rb +1 -1
  79. data/lib/elasticsearch/api/actions/indices/exists_type.rb +1 -1
  80. data/lib/elasticsearch/api/actions/indices/flush.rb +1 -1
  81. data/lib/elasticsearch/api/actions/indices/flush_synced.rb +1 -1
  82. data/lib/elasticsearch/api/actions/indices/forcemerge.rb +1 -1
  83. data/lib/elasticsearch/api/actions/indices/get.rb +1 -1
  84. data/lib/elasticsearch/api/actions/indices/get_alias.rb +1 -1
  85. data/lib/elasticsearch/api/actions/indices/get_field_mapping.rb +1 -1
  86. data/lib/elasticsearch/api/actions/indices/get_index_template.rb +1 -1
  87. data/lib/elasticsearch/api/actions/indices/get_mapping.rb +1 -1
  88. data/lib/elasticsearch/api/actions/indices/get_settings.rb +1 -1
  89. data/lib/elasticsearch/api/actions/indices/get_template.rb +1 -1
  90. data/lib/elasticsearch/api/actions/indices/get_upgrade.rb +1 -1
  91. data/lib/elasticsearch/api/actions/indices/open.rb +1 -1
  92. data/lib/elasticsearch/api/actions/indices/put_alias.rb +1 -1
  93. data/lib/elasticsearch/api/actions/indices/put_index_template.rb +1 -1
  94. data/lib/elasticsearch/api/actions/indices/put_mapping.rb +1 -1
  95. data/lib/elasticsearch/api/actions/indices/put_settings.rb +1 -1
  96. data/lib/elasticsearch/api/actions/indices/put_template.rb +1 -1
  97. data/lib/elasticsearch/api/actions/indices/recovery.rb +1 -1
  98. data/lib/elasticsearch/api/actions/indices/refresh.rb +1 -1
  99. data/lib/elasticsearch/api/actions/indices/resolve_index.rb +1 -1
  100. data/lib/elasticsearch/api/actions/indices/rollover.rb +1 -1
  101. data/lib/elasticsearch/api/actions/indices/segments.rb +1 -1
  102. data/lib/elasticsearch/api/actions/indices/shard_stores.rb +1 -1
  103. data/lib/elasticsearch/api/actions/indices/shrink.rb +1 -1
  104. data/lib/elasticsearch/api/actions/indices/simulate_index_template.rb +1 -1
  105. data/lib/elasticsearch/api/actions/indices/simulate_template.rb +1 -1
  106. data/lib/elasticsearch/api/actions/indices/split.rb +1 -1
  107. data/lib/elasticsearch/api/actions/indices/stats.rb +1 -1
  108. data/lib/elasticsearch/api/actions/indices/update_aliases.rb +1 -1
  109. data/lib/elasticsearch/api/actions/indices/upgrade.rb +1 -1
  110. data/lib/elasticsearch/api/actions/indices/validate_query.rb +1 -1
  111. data/lib/elasticsearch/api/actions/info.rb +1 -1
  112. data/lib/elasticsearch/api/actions/ingest/delete_pipeline.rb +1 -1
  113. data/lib/elasticsearch/api/actions/ingest/geo_ip_stats.rb +43 -0
  114. data/lib/elasticsearch/api/actions/ingest/get_pipeline.rb +3 -1
  115. data/lib/elasticsearch/api/actions/ingest/processor_grok.rb +1 -1
  116. data/lib/elasticsearch/api/actions/ingest/put_pipeline.rb +1 -1
  117. data/lib/elasticsearch/api/actions/ingest/simulate.rb +1 -1
  118. data/lib/elasticsearch/api/actions/mget.rb +1 -1
  119. data/lib/elasticsearch/api/actions/msearch.rb +1 -1
  120. data/lib/elasticsearch/api/actions/msearch_template.rb +1 -1
  121. data/lib/elasticsearch/api/actions/mtermvectors.rb +1 -1
  122. data/lib/elasticsearch/api/actions/nodes/hot_threads.rb +1 -1
  123. data/lib/elasticsearch/api/actions/nodes/info.rb +1 -1
  124. data/lib/elasticsearch/api/actions/nodes/reload_secure_settings.rb +1 -1
  125. data/lib/elasticsearch/api/actions/nodes/stats.rb +4 -2
  126. data/lib/elasticsearch/api/actions/nodes/usage.rb +1 -1
  127. data/lib/elasticsearch/api/actions/open_point_in_time.rb +64 -0
  128. data/lib/elasticsearch/api/actions/ping.rb +1 -1
  129. data/lib/elasticsearch/api/actions/put_script.rb +1 -1
  130. data/lib/elasticsearch/api/actions/rank_eval.rb +1 -1
  131. data/lib/elasticsearch/api/actions/reindex.rb +1 -1
  132. data/lib/elasticsearch/api/actions/reindex_rethrottle.rb +1 -1
  133. data/lib/elasticsearch/api/actions/render_search_template.rb +1 -1
  134. data/lib/elasticsearch/api/actions/scripts_painless_execute.rb +1 -1
  135. data/lib/elasticsearch/api/actions/scroll.rb +1 -1
  136. data/lib/elasticsearch/api/actions/search.rb +4 -2
  137. data/lib/elasticsearch/api/actions/search_shards.rb +1 -1
  138. data/lib/elasticsearch/api/actions/search_template.rb +1 -1
  139. data/lib/elasticsearch/api/actions/shutdown/delete_node.rb +52 -0
  140. data/lib/elasticsearch/api/actions/shutdown/get_node.rb +54 -0
  141. data/lib/elasticsearch/api/actions/shutdown/params_registry.rb +60 -0
  142. data/lib/elasticsearch/api/actions/shutdown/put_node.rb +54 -0
  143. data/lib/elasticsearch/api/actions/snapshot/cleanup_repository.rb +1 -1
  144. data/lib/elasticsearch/api/actions/snapshot/clone.rb +1 -1
  145. data/lib/elasticsearch/api/actions/snapshot/create.rb +1 -1
  146. data/lib/elasticsearch/api/actions/snapshot/create_repository.rb +1 -1
  147. data/lib/elasticsearch/api/actions/snapshot/delete.rb +1 -1
  148. data/lib/elasticsearch/api/actions/snapshot/delete_repository.rb +1 -1
  149. data/lib/elasticsearch/api/actions/snapshot/get.rb +3 -1
  150. data/lib/elasticsearch/api/actions/snapshot/get_features.rb +51 -0
  151. data/lib/elasticsearch/api/actions/snapshot/get_repository.rb +1 -1
  152. data/lib/elasticsearch/api/actions/snapshot/restore.rb +1 -1
  153. data/lib/elasticsearch/api/actions/snapshot/status.rb +1 -1
  154. data/lib/elasticsearch/api/actions/snapshot/verify_repository.rb +1 -1
  155. data/lib/elasticsearch/api/actions/tasks/cancel.rb +1 -1
  156. data/lib/elasticsearch/api/actions/tasks/get.rb +1 -1
  157. data/lib/elasticsearch/api/actions/tasks/list.rb +1 -1
  158. data/lib/elasticsearch/api/actions/termvectors.rb +1 -1
  159. data/lib/elasticsearch/api/actions/update.rb +1 -1
  160. data/lib/elasticsearch/api/actions/update_by_query.rb +1 -1
  161. data/lib/elasticsearch/api/actions/update_by_query_rethrottle.rb +1 -1
  162. data/lib/elasticsearch/api/namespace/features.rb +36 -0
  163. data/lib/elasticsearch/api/namespace/shutdown.rb +37 -0
  164. data/lib/elasticsearch/api/version.rb +1 -1
  165. data/spec/elasticsearch/api/actions/close_point_in_time_spec.rb +34 -0
  166. data/spec/elasticsearch/api/actions/features/get_features_spec.rb +34 -0
  167. data/spec/elasticsearch/api/actions/features/reset_features_spec.rb +34 -0
  168. data/spec/elasticsearch/api/actions/ingest/geo_ip_stats_spec.rb +34 -0
  169. data/spec/elasticsearch/api/actions/open_point_in_time_spec.rb +44 -0
  170. data/spec/elasticsearch/api/actions/shutdown/delete_node_spec.rb +44 -0
  171. data/spec/elasticsearch/api/actions/{indices/freeze_spec.rb → shutdown/get_node_spec.rb} +12 -51
  172. data/spec/elasticsearch/api/actions/shutdown/put_node_spec.rb +50 -0
  173. data/spec/elasticsearch/api/actions/snapshot/get_features_spec.rb +38 -0
  174. data/spec/elasticsearch/api/rest_api_yaml_spec.rb +7 -0
  175. data/spec/rest_yaml_tests_helper.rb +16 -52
  176. data/spec/skipped_tests.yml +29 -0
  177. data/utils/Gemfile +4 -3
  178. data/utils/thor/generate_source.rb +1 -2
  179. data/utils/thor/generator/endpoint_specifics.rb +4 -0
  180. data/utils/thor/generator/files_helper.rb +38 -20
  181. data/utils/thor/templates/_perform_request.erb +1 -1
  182. metadata +36 -9
  183. data/lib/elasticsearch/api/actions/indices/freeze.rb +0 -56
  184. data/lib/elasticsearch/api/actions/indices/unfreeze.rb +0 -56
  185. data/spec/elasticsearch/api/actions/indices/unfreeze_spec.rb +0 -85
@@ -31,7 +31,7 @@ module Elasticsearch
31
31
  # Deprecated since version 7.0.0
32
32
  #
33
33
  #
34
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.11/search-request-body.html#request-body-search-scroll
34
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/search-request-body.html#request-body-search-scroll
35
35
  #
36
36
  def scroll(arguments = {})
37
37
  headers = arguments.delete(:headers) || {}
@@ -64,6 +64,7 @@ module Elasticsearch
64
64
  # @option arguments [Number] :max_concurrent_shard_requests The number of concurrent shard requests per node this search executes concurrently. This value should be used to limit the impact of the search on the cluster in order to limit the number of concurrent shard requests
65
65
  # @option arguments [Number] :pre_filter_shard_size A threshold that enforces a pre-filter roundtrip to prefilter search shards based on query rewriting if the number of shards the search request expands to exceeds the threshold. This filter roundtrip can limit the number of shards significantly if for instance a shard can not match any documents based on its rewrite method ie. if date filters are mandatory to match but the shard bounds and the query are disjoint.
66
66
  # @option arguments [Boolean] :rest_total_hits_as_int Indicates whether hits.total should be rendered as an integer or an object in the rest search response
67
+ # @option arguments [String] :min_compatible_shard_node The minimum compatible version that all shards involved in search should have for this request to be successful
67
68
  # @option arguments [Hash] :headers Custom HTTP headers
68
69
  # @option arguments [Hash] :body The search definition using the Query DSL
69
70
  #
@@ -72,7 +73,7 @@ module Elasticsearch
72
73
  # Deprecated since version 7.0.0
73
74
  #
74
75
  #
75
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.11/search-search.html
76
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/search-search.html
76
77
  #
77
78
  def search(arguments = {})
78
79
  headers = arguments.delete(:headers) || {}
@@ -148,7 +149,8 @@ module Elasticsearch
148
149
  :batched_reduce_size,
149
150
  :max_concurrent_shard_requests,
150
151
  :pre_filter_shard_size,
151
- :rest_total_hits_as_int
152
+ :rest_total_hits_as_int,
153
+ :min_compatible_shard_node
152
154
  ].freeze)
153
155
  end
154
156
  end
@@ -29,7 +29,7 @@ module Elasticsearch
29
29
  # @option arguments [String] :expand_wildcards Whether to expand wildcard expression to concrete indices that are open, closed or both. (options: open, closed, hidden, none, all)
30
30
  # @option arguments [Hash] :headers Custom HTTP headers
31
31
  #
32
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.11/search-shards.html
32
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/search-shards.html
33
33
  #
34
34
  def search_shards(arguments = {})
35
35
  headers = arguments.delete(:headers) || {}
@@ -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.11/search-template.html
46
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/search-template.html
47
47
  #
48
48
  def search_template(arguments = {})
49
49
  raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]
@@ -0,0 +1,52 @@
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 Shutdown
21
+ module Actions
22
+ # Removes a node from the shutdown list
23
+ # This functionality is Experimental and may be changed or removed
24
+ # completely in a future release. Elastic will take a best effort approach
25
+ # to fix any issues, but experimental features are not subject to the
26
+ # support SLA of official GA features.
27
+ #
28
+ # @option arguments [String] :node_id The node id of node to be removed from the shutdown state
29
+ # @option arguments [Hash] :headers Custom HTTP headers
30
+ #
31
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/current
32
+ #
33
+ def delete_node(arguments = {})
34
+ raise ArgumentError, "Required argument 'node_id' missing" unless arguments[:node_id]
35
+
36
+ headers = arguments.delete(:headers) || {}
37
+
38
+ arguments = arguments.clone
39
+
40
+ _node_id = arguments.delete(:node_id)
41
+
42
+ method = Elasticsearch::API::HTTP_DELETE
43
+ path = "_nodes/#{Utils.__listify(_node_id)}/shutdown"
44
+ params = {}
45
+
46
+ body = nil
47
+ perform_request(method, path, params, body, headers).body
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,54 @@
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 Shutdown
21
+ module Actions
22
+ # Retrieve status of a node or nodes that are currently marked as shutting down
23
+ # This functionality is Experimental and may be changed or removed
24
+ # completely in a future release. Elastic will take a best effort approach
25
+ # to fix any issues, but experimental features are not subject to the
26
+ # support SLA of official GA features.
27
+ #
28
+ # @option arguments [String] :node_id Which node for which to retrieve the shutdown status
29
+ # @option arguments [Hash] :headers Custom HTTP headers
30
+ #
31
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/current
32
+ #
33
+ def get_node(arguments = {})
34
+ headers = arguments.delete(:headers) || {}
35
+
36
+ arguments = arguments.clone
37
+
38
+ _node_id = arguments.delete(:node_id)
39
+
40
+ method = Elasticsearch::API::HTTP_GET
41
+ path = if _node_id
42
+ "_nodes/#{Utils.__listify(_node_id)}/shutdown"
43
+ else
44
+ "_nodes/shutdown"
45
+ end
46
+ params = {}
47
+
48
+ body = nil
49
+ perform_request(method, path, params, body, headers).body
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,60 @@
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 Shutdown
21
+ module Actions
22
+ module ParamsRegistry
23
+ extend self
24
+
25
+ # A Mapping of all the actions to their list of valid params.
26
+ #
27
+ # @since 6.1.1
28
+ PARAMS = {}
29
+
30
+ # Register an action with its list of valid params.
31
+ #
32
+ # @example Register the action.
33
+ # ParamsRegistry.register(:benchmark, [ :verbose ])
34
+ #
35
+ # @param [ Symbol ] action The action to register.
36
+ # @param [ Array[Symbol] ] valid_params The list of valid params.
37
+ #
38
+ # @since 6.1.1
39
+ def register(action, valid_params)
40
+ PARAMS[action.to_sym] = valid_params
41
+ end
42
+
43
+ # Get the list of valid params for a given action.
44
+ #
45
+ # @example Get the list of valid params.
46
+ # ParamsRegistry.get(:benchmark)
47
+ #
48
+ # @param [ Symbol ] action The action.
49
+ #
50
+ # @return [ Array<Symbol> ] The list of valid params for the action.
51
+ #
52
+ # @since 6.1.1
53
+ def get(action)
54
+ PARAMS.fetch(action, [])
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,54 @@
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 Shutdown
21
+ module Actions
22
+ # Adds a node to be shut down
23
+ # This functionality is Experimental and may be changed or removed
24
+ # completely in a future release. Elastic will take a best effort approach
25
+ # to fix any issues, but experimental features are not subject to the
26
+ # support SLA of official GA features.
27
+ #
28
+ # @option arguments [String] :node_id The node id of node to be shut down
29
+ # @option arguments [Hash] :headers Custom HTTP headers
30
+ # @option arguments [Hash] :body The shutdown type definition to register (*Required*)
31
+ #
32
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/current
33
+ #
34
+ def put_node(arguments = {})
35
+ raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]
36
+ raise ArgumentError, "Required argument 'node_id' missing" unless arguments[:node_id]
37
+
38
+ headers = arguments.delete(:headers) || {}
39
+
40
+ arguments = arguments.clone
41
+
42
+ _node_id = arguments.delete(:node_id)
43
+
44
+ method = Elasticsearch::API::HTTP_PUT
45
+ path = "_nodes/#{Utils.__listify(_node_id)}/shutdown"
46
+ params = {}
47
+
48
+ body = arguments[:body]
49
+ perform_request(method, path, params, body, headers).body
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
@@ -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.11/clean-up-snapshot-repo-api.html
29
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/clean-up-snapshot-repo-api.html
30
30
  #
31
31
  def cleanup_repository(arguments = {})
32
32
  raise ArgumentError, "Required argument 'repository' missing" unless arguments[:repository]
@@ -28,7 +28,7 @@ module Elasticsearch
28
28
  # @option arguments [Hash] :headers Custom HTTP headers
29
29
  # @option arguments [Hash] :body The snapshot clone definition (*Required*)
30
30
  #
31
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.11/modules-snapshots.html
31
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/modules-snapshots.html
32
32
  #
33
33
  def clone(arguments = {})
34
34
  raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]
@@ -28,7 +28,7 @@ module Elasticsearch
28
28
  # @option arguments [Hash] :headers Custom HTTP headers
29
29
  # @option arguments [Hash] :body The snapshot definition
30
30
  #
31
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.11/modules-snapshots.html
31
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/modules-snapshots.html
32
32
  #
33
33
  def create(arguments = {})
34
34
  raise ArgumentError, "Required argument 'repository' missing" unless arguments[:repository]
@@ -28,7 +28,7 @@ module Elasticsearch
28
28
  # @option arguments [Hash] :headers Custom HTTP headers
29
29
  # @option arguments [Hash] :body The repository definition (*Required*)
30
30
  #
31
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.11/modules-snapshots.html
31
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/modules-snapshots.html
32
32
  #
33
33
  def create_repository(arguments = {})
34
34
  raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]
@@ -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.11/modules-snapshots.html
29
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/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.11/modules-snapshots.html
29
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/modules-snapshots.html
30
30
  #
31
31
  def delete_repository(arguments = {})
32
32
  raise ArgumentError, "Required argument 'repository' missing" unless arguments[:repository]
@@ -25,10 +25,11 @@ module Elasticsearch
25
25
  # @option arguments [List] :snapshot A comma-separated list of snapshot names
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
+ # @option arguments [Boolean] :index_details Whether to include details of each index in the snapshot, if those details are available. Defaults to false.
28
29
  # @option arguments [Boolean] :verbose Whether to show verbose snapshot info or only show the basic info found in the repository index blob
29
30
  # @option arguments [Hash] :headers Custom HTTP headers
30
31
  #
31
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.11/modules-snapshots.html
32
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/modules-snapshots.html
32
33
  #
33
34
  def get(arguments = {})
34
35
  raise ArgumentError, "Required argument 'repository' missing" unless arguments[:repository]
@@ -60,6 +61,7 @@ module Elasticsearch
60
61
  ParamsRegistry.register(:get, [
61
62
  :master_timeout,
62
63
  :ignore_unavailable,
64
+ :index_details,
63
65
  :verbose
64
66
  ].freeze)
65
67
  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
+ module Elasticsearch
19
+ module API
20
+ module Snapshot
21
+ module Actions
22
+ # Returns a list of features which can be snapshotted in this cluster.
23
+ #
24
+ # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
25
+ # @option arguments [Hash] :headers Custom HTTP headers
26
+ #
27
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.x/modules-snapshots.html
28
+ #
29
+ def get_features(arguments = {})
30
+ headers = arguments.delete(:headers) || {}
31
+
32
+ arguments = arguments.clone
33
+
34
+ method = Elasticsearch::API::HTTP_GET
35
+ path = "_snapshottable_features"
36
+ params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
37
+
38
+ body = nil
39
+ perform_request(method, path, params, body, headers).body
40
+ end
41
+
42
+ # Register this action with its valid params when the module is loaded.
43
+ #
44
+ # @since 6.2.0
45
+ ParamsRegistry.register(:get_features, [
46
+ :master_timeout
47
+ ].freeze)
48
+ end
49
+ end
50
+ end
51
+ 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.11/modules-snapshots.html
29
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/modules-snapshots.html
30
30
  #
31
31
  def get_repository(arguments = {})
32
32
  headers = arguments.delete(:headers) || {}
@@ -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.11/modules-snapshots.html
31
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/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.11/modules-snapshots.html
30
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.13/modules-snapshots.html
31
31
  #
32
32
  def status(arguments = {})
33
33
  headers = arguments.delete(:headers) || {}