diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml
index fb64720c28..cf0cc0171b 100644
--- a/.buildkite/pipeline.yml
+++ b/.buildkite/pipeline.yml
@@ -5,7 +5,7 @@ steps:
     env:
       RUBY_VERSION: "{{ matrix.ruby }}"
       TEST_SUITE: "{{ matrix.suite }}"
-      STACK_VERSION: 8.16.0-SNAPSHOT
+      STACK_VERSION: 8.18.4-SNAPSHOT
       TRANSPORT_VERSION: "{{ matrix.transport }}"
       RUBY_SOURCE: "{{ matrix.ruby_source }}"
       QUIET: false
@@ -15,49 +15,44 @@ steps:
           - "free"
           - "platinum"
         ruby:
+          - "3.4"
           - "3.3"
           - "3.2"
           - "3.1"
-          - "3.0"
         transport:
-          - "8.3"
+          - "8.4"
         ruby_source:
           - 'ruby'
       # Only run platinum once for the latest Ruby. You can use lots of combinations, check the
       # documentation on https://buildkite.com/docs/pipelines/build-matrix for more information.
       adjustments:
-        - with:
-            suite: "platinum"
-            ruby: "3.2"
-          skip: true
         - with:
             suite: "platinum"
             ruby: "3.1"
           skip: true
         - with:
             suite: "platinum"
-            ruby: "3.0"
+            ruby: "3.2"
           skip: true
         - with:
-            suite: "free"
+            suite: "platinum"
             ruby: "3.3"
-            ruby_source: "ruby"
-            transport: "8.1"
+          skip: true
         - with:
             suite: "free"
-            ruby: "3.3"
+            ruby: "3.4"
             ruby_source: "ruby"
             transport: "8.2"
         - with:
             suite: "free"
-            ruby: "3.3"
+            ruby: "3.4"
             ruby_source: "ruby"
             transport: "main"
         - with:
             suite: "free"
             ruby: "9.4"
             ruby_source: "jruby"
-            transport: "8.3"
+            transport: "8.4"
     command: ./.buildkite/run-tests.sh
     # I'm publishing test results to HTML and JUnit in this directory and this directive makes them
     # available in the Artifacts tab of a build in Buildkite.
@@ -66,9 +61,9 @@ steps:
     agents:
       provider: "gcp"
     env:
-      RUBY_VERSION: "3.3"
-      STACK_VERSION: 8.16.0-SNAPSHOT
-      ES_YAML_TESTS_BRANCH: main
+      RUBY_VERSION: "3.4"
+      STACK_VERSION: 8.18.4-SNAPSHOT
+      ES_YAML_TESTS_BRANCH: "8.18"
       TRANSPORT_VERSION: "8.3"
       RUBY_SOURCE: "ruby"
       TEST_SUITE: "platinum"
diff --git a/.github/workflows/main.yml b/.github/workflows/8.18.yml
similarity index 82%
rename from .github/workflows/main.yml
rename to .github/workflows/8.18.yml
index 766ef5fe2c..40ccce6adf 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/8.18.yml
@@ -1,11 +1,11 @@
-name: main
+name: 8.18
 on:
   push:
     branches:
-      - main
+      - 8.18
   pull_request:
     branches:
-      - main
+      - 8.18
 jobs:
   test-main:
     env:
@@ -14,7 +14,7 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        ruby: [ '3.0', '3.1', '3.2', '3.3', 'jruby-9.3', 'jruby-9.4' ]
+        ruby: ['3.1', '3.2', '3.3', '3.4', 'jruby-9.3', 'jruby-9.4']
     runs-on: ubuntu-latest
     steps:
     - uses: actions/checkout@v4
@@ -26,7 +26,7 @@ jobs:
         sudo sysctl -w vm.max_map_count=262144
     - uses: elastic/elastic-github-actions/elasticsearch@master
       with:
-        stack-version: 8.16.0-SNAPSHOT
+        stack-version: 8.18.4-SNAPSHOT
         security-enabled: false
     - uses: ruby/setup-ruby@v1
       with:
@@ -40,4 +40,4 @@ jobs:
     - name: elasticsearch
       run: cd elasticsearch && bundle exec rake test:all
     - name: elasticsearch-api
-      run: rake es:download_artifacts[8.16.0-SNAPSHOT] && cd elasticsearch-api && bundle exec rake test:spec test:platinum:unit
+      run: rake es:download_artifacts[8.18.4-SNAPSHOT] && cd elasticsearch-api && bundle exec rake test:spec test:platinum:unit
diff --git a/.github/workflows/license.yml b/.github/workflows/license.yml
index 8816ff40dd..e556b833ee 100644
--- a/.github/workflows/license.yml
+++ b/.github/workflows/license.yml
@@ -7,7 +7,7 @@ jobs:
     - uses: actions/checkout@v4
     - uses: ruby/setup-ruby@v1
       with:
-        ruby-version: '3.3'
+        ruby-version: '3.4'
     - name: Check license headers
       run: |
         ruby ./.github/check_license_headers.rb
diff --git a/.github/workflows/otel.yml b/.github/workflows/otel.yml
index 56d6b9a5fc..53365c4159 100644
--- a/.github/workflows/otel.yml
+++ b/.github/workflows/otel.yml
@@ -2,10 +2,10 @@ name: opentelemetry
 on:
   push:
     branches:
-      - main
+      - 8.18
   pull_request:
     branches:
-      - main
+      - 8.18
 jobs:
   test-otel:
     name: 'Test Open Telemetry'
@@ -16,7 +16,7 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        ruby: [ '3.3', 'jruby-9.4' ]
+        ruby: ['3.4', 'jruby-9.4']
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v4
@@ -28,7 +28,7 @@ jobs:
           sudo sysctl -w vm.max_map_count=262144
       - uses: elastic/elastic-github-actions/elasticsearch@master
         with:
-          stack-version: 8.16.0-SNAPSHOT
+          stack-version: 8.18.4-SNAPSHOT
           security-enabled: false
       - uses: ruby/setup-ruby@v1
         with:
@@ -42,4 +42,4 @@ jobs:
       - name: elasticsearch
         run: cd elasticsearch && bundle exec rake test:all
       - name: elasticsearch-api
-        run: rake es:download_artifacts[8.16.0-SNAPSHOT] && cd elasticsearch-api && bundle exec rake test:spec test:platinum:unit
+        run: rake es:download_artifacts[8.18.4-SNAPSHOT] && cd elasticsearch-api && bundle exec rake test:spec test:platinum:unit
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 257dcea000..332ba1d515 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,176 @@
 *See the full release notes on the official documentation website: https://www.elastic.co/guide/en/elasticsearch/client/ruby-api/current/release_notes.html*
 
+## 8.18.0 Release notes
+
+### API
+
+#### New APIs:
+
+* `esql.async_query_stop` - Stops a previously submitted async query request given its ID and collects the results.
+* `inference.chat_completion_unified` - Perform chat completion inference
+* `inference.completion` - Perform completion inference
+* `inference.put_alibabacloud` - Configure an AlibabaCloud AI Search inference endpoint
+* `inference.put_amazonbedrock` - Configure an Amazon Bedrock inference endpoint
+* `inference.put_anthropic` - Configure an Anthropic inference endpoint
+* `inference.put_azureaistudio` - Configure an Azure AI Studio inference endpoint
+* `inference.put_azureopenai` - Configure an Azure OpenAI inference endpoint
+* `inference.put_cohere` - Configure a Cohere inference endpoint
+* `inference.put_elasticsearch` - Configure an Elasticsearch inference endpoint
+* `inference.put_elser` - Configure an ELSER inference endpoint
+* `inference.put_googleaistudio` - Configure a Google AI Studio inference endpoint
+* `inference.put_googlevertexai` - Configure a Google Vertex AI inference endpoint
+* `inference.put_hugging_face` - Configure a HuggingFace inference endpoint
+* `inference.put_jinaai` - Configure a JinaAI inference endpoint
+* `inference.put_mistral` - Configure a Mistral inference endpoint
+* `inference.put_openai` - Configure an OpenAI inference endpoint
+* `inference.put_voyageai` - Configure a VoyageAI inference endpoint
+* `inference.put_watsonx` - Configure a Watsonx inference endpoint
+* `inference.rerank` - Perform reranking inference
+* `inference.sparse_embedding` - Perform sparse embedding inference
+* `inference.stream_inference` renamed to `inference.stream_completion` - Perform streaming completion inference.
+* `inference.text_embedding` - Perform text embedding inference
+
+#### Updated APIs:
+
+* `bulk`, `create`, `index`, `update` - Add Boolean parameter `:include_source_on_error`, if to include the document source in the error message in case of parsing errors (defaults to true).
+* `cat.segments`
+  * Adds  Boolean parameter `:local`, return local information, do not retrieve the state from master node (default: false).
+  * Adds Time parameter `:master_timeout`, explicit operation timeout for connection to master node.
+* `cat.tasks`
+  * Adds Time parameter `:timeout`, period to wait for a response. If no response is received before the timeout expires, the request fails and returns an error.
+  * Adds Boolean parameter `:wait_for_completion`, if `true`, the request blocks until the task has completed.
+* `eql.search`
+  * Adds Boolean parameter `:allow_partial_search_results`, control whether the query should keep running in case of shard failures, and return partial results.
+  * Adds Boolean parameter `:allow_partial_sequence_results`, control whether a sequence query should return partial results or no results at all in case of shard failures. This option has effect only if [allow_partial_search_results] is true.
+* `index_lifecycle_management.delete_lifecycle`, `index_lifecycle_management.explain_lifecycle`, `index_lifecycle_management.get_lifecycle`, `index_lifecycle_management.put_lifecycle`, `index_lifecycle_management.start`, `index_lifecycle_management.stop`, remove `:master_timeout`, `:timeout` parameters.
+* `indices.resolve_cluster` - Adds `:timeout` parameter, `:name` no longer a required parameter.
+* `indices.rollover` - Removes target_failure_store parameter.
+* `ingest.delete_geoip_database`, `ingest.delete_ip_location_database`, `put_geoip_database`, `put_ip_location_database` remove `:master_timeout`, `:timeout` parameters.
+* `machine_learning.start_trained_model_deployment` - Adds body request parameter, the settings for the trained model deployment.
+
+
+## 8.17.2 Release notes
+
+### API
+
+#### New APIs:
+
+* `esql.async_query_delete`
+* `indices.get_data_lifecycle_stats`
+* `inference.update`
+* `security.delegate_pki`
+
+#### Updated APIs:
+
+* `async_search.submit` - Adds `keep_alive` Time parameter.
+* `indices.put_template` - Adds `cause` String parameter.
+* `xpack.info` - Adds `human` parameter for human-readable information.
+* Timeout parameters updated:
+  * `:master_timeout` (Time), explicit operation timeout for connection to master node.
+  * `:timeout` (Time), explicit operation timeout.
+    * Added to:
+      * `index_lifecycle_management.delete_lifecycle` - adds both.
+      * `index_lifecycle_management.delete_lifecycle` - adds `master_timeout`.
+      * `index_lifecycle_management.get_lifecycle` - adds both.
+      * `index_lifecycle_management.put_lifecycle` - adds both.
+      * `index_lifecycle_management.start` - adds both.
+      * `index_lifecycle_management.stop` - adds both.
+      * `ingest.delete_geoip_database` - adds both.
+      * `ingest.delete_geoip_location_database` - adds both.
+      * `ingest.put_geoip_database` - adds both.
+      * `ingest.put_ip_location_database` - adds both.
+      * `license.post_start_trial` - removes `timeout`.
+      * `shutdown.delete_node` - adds both.
+      * `shutdown.put_node` - adds both.
+      * `snapshot_lifecycle_management.delete_lifecycle` - adds both.
+      * `snapshot_lifecycle_management.execute_lifecycle` - adds both.
+      * `snapshot_lifecycle_management.execute_retention` - adds both.
+      * `snapshot_lifecycle_management.get_lifecycle` - adds both.
+      * `snapshot_lifecycle_management.get_stats` - adds both.
+      * `snapshot_lifecycle_management.get_status` - adds both.
+      * `snapshot_lifecycle_management.put_lifecycle` - adds both.
+
+#### APIs promoted from Experimental to Stable:
+
+* `inference.delete`
+* `inference.get`
+* `inference.inference`
+* `inference.put`
+* `inference.stream_inference`
+
+## 8.17.1 Release notes
+
+### Client
+
+* Fixes ScrollHelper issue #2556 - There was a bug where an additional search (with scroll) request was made to Elasticsearch for each resulting hit. It was rewritten so that the docs are retrieved as needed and the Helper instance doesn't store documents internally, with big savings in memory and requests to Elasticsearch.
+
+## 8.17.0 Release notes
+
+### Client
+* Tested versions of Ruby for 8.17.0: Ruby (MRI) 3.1, 3.2 and 3.3. JRuby 9.3 and JRuby 9.4.
+
+### API
+
+#### API changes
+* `async_search.submit` - Removes `keep_alive` parameter. Adds:
+  * `ccs_minimize_roundtrips` (Boolean): When doing a cross-cluster search, setting it to true may improve overall search latency, particularly when searching clusters with a large number of shards. However, when set to true, the progress of searches on the remote clusters will not be received until the search finishes on all clusters.
+  * `rest_total_hits_as_int` (Boolean): Indicates whether hits.total should be rendered as an integer or an object in the rest search response.
+* `open_point_in_time` - Adds `allow_partial_search_results` (Boolean) parameter: Specify whether to tolerate shards missing when creating the point-in-time, or otherwise throw an exception (default: false).
+
+
+## 8.16.0 Release notes
+
+### Client
+* Tested versions of Ruby for 8.16.0: Ruby (MRI) 3.1, 3.2 and 3.3. JRuby 9.3 and JRuby 9.4.
+
+### API
+
+#### API changes
+
+* `capabilities` - Adds `local_only` boolean parameter: True if only the node being called should be considered.
+* `cluster.stats`- Removes `flat_settings` parameter, adds `include_remotes` boolean parameter: Include remote cluster data into the response (default: false)
+* `indices.get_data_stream` - Adds `verbose` boolean parameter: Whether the maximum timestamp for each data stream should be calculated and returned (default: false). Adds `master_timeout` (see below).
+* `query_rules.delete_ruleset` - Accepts `ignore: 404` common parameter.
+
+##### Timeout parameters:
+
+These parameters have been added to several APIs:
+
+* `master_timeout` timeout for processing on master node.
+* `timeout` timeout for acknowledgement of update from all nodes in cluster parameters.
+
+Added in:
+
+* `indices.create_data_stream` - both.
+* `indices.delete_data_stream` - `master_timeout`.
+* `indices.get_data_lifecycle` - `master_timeout`.
+* `indices.get_data_stream` - `master_timeout`.
+* `indices.migrate_to_data_stream` - both.
+* `indices.promote_data_stream` - `master_timeout`.
+* `search_shards` - `master_timeout`.
+
+#### APIs Promoted from Experimental to Stable:
+
+* `indices.delete_data_lifecycle`
+* `indices.explain_data_lifecycle`
+* `indices.get_data_lifecycle`
+* `indices.put_data_lifecycle`
+* `security.create_cross_cluster_api_key`
+* `security.update_cross_cluster_api_key`
+
+#### New APIs
+
+* `ingest.delete_ip_location_database` - Deletes an ip location database configuration.
+* `ingest.get_ip_location_database` - Returns the specified ip location database configuration.
+* `ingest.put_ip_location_database` - Puts the configuration for a ip location database to be downloaded.
+
+
+#### New Experimental APIs
+
+* `inference.stream_inference` - Perform streaming inference.
+* `query_rules.test` - Tests a query ruleset to identify the rules that would match input criteria.
+
+
 ## 8.15.0 Release notes
 
 ### Client
diff --git a/Gemfile b/Gemfile
index c618282910..a2263210df 100644
--- a/Gemfile
+++ b/Gemfile
@@ -38,5 +38,5 @@ end
 group :development, :test do
   gem 'debug' unless defined?(JRUBY_VERSION)
   gem 'rspec'
-  gem 'rubocop', '>= 1.51' unless defined?(JRUBY_VERSION) && Gem::Version.new(JRUBY_VERSION) <= Gem::Version.new('9.4')
+  gem 'rubocop', '>= 1.51' unless defined?(JRUBY_VERSION)
 end
diff --git a/docs/release_notes/816.asciidoc b/docs/release_notes/816.asciidoc
new file mode 100644
index 0000000000..c32e719f57
--- /dev/null
+++ b/docs/release_notes/816.asciidoc
@@ -0,0 +1,57 @@
+[[release_notes_8_16]]
+=== 8.16 Release notes
+
+[discrete]
+[[release_notes_8_16_0]]
+=== 8.16.0 Release notes
+
+[discrete]
+==== Client
+* Tested versions of Ruby for 8.16.0: Ruby (MRI) 3.1, 3.2 and 3.3. JRuby 9.3 and JRuby 9.4.
+
+[discrete]
+==== API
+
+[discrete]
+===== API changes
+
+* `capabilities` - Adds `local_only` boolean parameter: True if only the node being called should be considered.
+* `cluster.stats`- Removes `flat_settings` parameter, adds `include_remotes` boolean parameter: Include remote cluster data into the response (default: false).
+* `indices.get_data_stream` - Adds `verbose` boolean parameter: Whether the maximum timestamp for each data stream should be calculated and returned (default: false). Adds `master_timeout` (see below).
+* `query_rules.delete_ruleset` - Accepts `ignore: 404` common parameter.
+
+These parameters have been added to several APIs:
+
+* `master_timeout` timeout for processing on master node.
+* `timeout` timeout for acknowledgement of update from all nodes in cluster parameters.
+
+Added in:
+
+* `indices.create_data_stream` - both.
+* `indices.delete_data_stream` - `master_timeout`.
+* `indices.get_data_lifecycle` - `master_timeout`.
+* `indices.get_data_stream` - `master_timeout`.
+* `indices.migrate_to_data_stream` - both.
+* `indices.promote_data_stream` - `master_timeout`.
+* `search_shards` - `master_timeout`.
+
+**APIs Promoted from Experimental to Stable:**
+
+* `indices.delete_data_lifecycle`
+* `indices.explain_data_lifecycle`
+* `indices.get_data_lifecycle`
+* `indices.put_data_lifecycle`
+* `security.create_cross_cluster_api_key`
+* `security.update_cross_cluster_api_key`
+
+**New APIs**
+
+* `ingest.delete_ip_location_database` - Deletes an ip location database configuration.
+* `ingest.get_ip_location_database` - Returns the specified ip location database configuration.
+* `ingest.put_ip_location_database` - Puts the configuration for a ip location database to be downloaded.
+
+
+**New Experimental APIs**
+
+* `inference.stream_inference` - Perform streaming inference.
+* `query_rules.test` - Tests a query ruleset to identify the rules that would match input criteria.
diff --git a/docs/release_notes/817.asciidoc b/docs/release_notes/817.asciidoc
new file mode 100644
index 0000000000..6537a6c546
--- /dev/null
+++ b/docs/release_notes/817.asciidoc
@@ -0,0 +1,81 @@
+[[release_notes_8_17]]
+=== 8.17 Release notes
+
+[discrete]
+[[release_notes_8_17_2]]
+=== 8.17.2 Release notes
+
+[discrete]
+==== API
+
+New APIs:
+
+* `esql.async_query_delete`
+* `indices.get_data_lifecycle_stats`
+* `inference.update`
+* `security.delegate_pki`
+
+Updated APIs:
+
+* `async_search.submit` - Adds `keep_alive` Time parameter.
+* `indices.put_template` - Adds `cause` String parameter.
+* `xpack.info` - Adds `human` parameter for human-readable information.
+* Timeout parameters updated:
+** `:master_timeout` (Time), explicit operation timeout for connection to master node.
+** `:timeout` (Time), explicit operation timeout.
+*** Added to:
+**** `index_lifecycle_management.delete_lifecycle` - adds both.
+**** `index_lifecycle_management.delete_lifecycle` - adds `master_timeout`.
+**** `index_lifecycle_management.get_lifecycle` - adds both.
+**** `index_lifecycle_management.put_lifecycle` - adds both.
+**** `index_lifecycle_management.start` - adds both.
+**** `index_lifecycle_management.stop` - adds both.
+**** `ingest.delete_geoip_database` - adds both.
+**** `ingest.delete_geoip_location_database` - adds both.
+**** `ingest.put_geoip_database` - adds both.
+**** `ingest.put_ip_location_database` - adds both.
+**** `license.post_start_trial` - removes `timeout`.
+**** `shutdown.delete_node` - adds both.
+**** `shutdown.put_node` - adds both.
+**** `snapshot_lifecycle_management.delete_lifecycle` - adds both.
+**** `snapshot_lifecycle_management.execute_lifecycle` - adds both.
+**** `snapshot_lifecycle_management.execute_retention` - adds both.
+**** `snapshot_lifecycle_management.get_lifecycle` - adds both.
+**** `snapshot_lifecycle_management.get_stats` - adds both.
+**** `snapshot_lifecycle_management.get_status` - adds both.
+**** `snapshot_lifecycle_management.put_lifecycle` - adds both.
+
+APIs promoted from Experimental to Stable:
+
+* `inference.delete`
+* `inference.get`
+* `inference.inference`
+* `inference.put`
+* `inference.stream_inference`
+
+[discrete]
+[[release_notes_8_17_1]]
+=== 8.17.1 Release notes
+
+[discrete]
+==== Client
+
+* Fixes ScrollHelper issue https://github.com/elastic/elasticsearch-ruby/issues/2556[#2556] - There was a bug where an additional search (with scroll) request was made to Elasticsearch for each resulting hit. It was rewritten so that the docs are retrieved as needed and the Helper instance doesn't store documents internally, with big savings in memory and requests to Elasticsearch.
+
+[discrete]
+[[release_notes_8_17_0]]
+=== 8.17.0 Release notes
+
+[discrete]
+==== Client
+* Tested versions of Ruby for 8.17.0: Ruby (MRI) 3.1, 3.2 and 3.3. JRuby 9.3 and JRuby 9.4.
+
+[discrete]
+==== API
+
+[discrete]
+===== API changes
+* `async_search.submit` - Removes `keep_alive` parameter. Adds:
+** `ccs_minimize_roundtrips` (Boolean): When doing a cross-cluster search, setting it to true may improve overall search latency, particularly when searching clusters with a large number of shards. However, when set to true, the progress of searches on the remote clusters will not be received until the search finishes on all clusters.
+** `rest_total_hits_as_int` (Boolean): Indicates whether hits.total should be rendered as an integer or an object in the rest search response.
+* `open_point_in_time` - Adds `allow_partial_search_results` (Boolean) parameter: Specify whether to tolerate shards missing when creating the point-in-time, or otherwise throw an exception (default: false).
diff --git a/docs/release_notes/818.asciidoc b/docs/release_notes/818.asciidoc
new file mode 100644
index 0000000000..c03bba4081
--- /dev/null
+++ b/docs/release_notes/818.asciidoc
@@ -0,0 +1,54 @@
+[[release_notes_8_18]]
+=== 8.18 Release notes
+
+[discrete]
+[[release_notes_8_18_0]]
+=== 8.18.0 Release notes
+
+[discrete]
+==== API
+
+New APIs:
+
+* `esql.async_query_stop` - Stops a previously submitted async query request given its ID and collects the results.
+* `inference.chat_completion_unified` - Perform chat completion inference
+* `inference.completion` - Perform completion inference
+* `inference.put_alibabacloud` - Configure an AlibabaCloud AI Search inference endpoint
+* `inference.put_amazonbedrock` - Configure an Amazon Bedrock inference endpoint
+* `inference.put_anthropic` - Configure an Anthropic inference endpoint
+* `inference.put_azureaistudio` - Configure an Azure AI Studio inference endpoint
+* `inference.put_azureopenai` - Configure an Azure OpenAI inference endpoint
+* `inference.put_cohere` - Configure a Cohere inference endpoint
+* `inference.put_elasticsearch` - Configure an Elasticsearch inference endpoint
+* `inference.put_elser` - Configure an ELSER inference endpoint
+* `inference.put_googleaistudio` - Configure a Google AI Studio inference endpoint
+* `inference.put_googlevertexai` - Configure a Google Vertex AI inference endpoint
+* `inference.put_hugging_face` - Configure a HuggingFace inference endpoint
+* `inference.put_jinaai` - Configure a JinaAI inference endpoint
+* `inference.put_mistral` - Configure a Mistral inference endpoint
+* `inference.put_openai` - Configure an OpenAI inference endpoint
+* `inference.put_voyageai` - Configure a VoyageAI inference endpoint
+* `inference.put_watsonx` - Configure a Watsonx inference endpoint
+* `inference.rerank` - Perform reranking inference
+* `inference.sparse_embedding` - Perform sparse embedding inference
+* `inference.stream_inference` renamed to `inference.stream_completion` - Perform streaming completion inference.
+* `inference.text_embedding` - Perform text embedding inference
+
+
+Updated APIs:
+
+* `bulk`, `create`, `index`, `update` - Add Boolean parameter `:include_source_on_error`, if to include the document source in the error message in case of parsing errors (defaults to true).
+* `cat.segments`
+** Adds  Boolean parameter `:local`, return local information, do not retrieve the state from master node (default: false).
+** Adds Time parameter `:master_timeout`, explicit operation timeout for connection to master node.
+* `cat.tasks`
+** Adds Time parameter `:timeout`, period to wait for a response. If no response is received before the timeout expires, the request fails and returns an error.
+** Adds Boolean parameter `:wait_for_completion`, if `true`, the request blocks until the task has completed.
+* `eql.search`
+** Adds Boolean parameter `:allow_partial_search_results`, control whether the query should keep running in case of shard failures, and return partial results.
+** Adds Boolean parameter `:allow_partial_sequence_results`, control whether a sequence query should return partial results or no results at all in case of shard failures. This option has effect only if [allow_partial_search_results] is true.
+* `index_lifecycle_management.delete_lifecycle`, `index_lifecycle_management.explain_lifecycle`, `index_lifecycle_management.get_lifecycle`, `index_lifecycle_management.put_lifecycle`, `index_lifecycle_management.start`, `index_lifecycle_management.stop`, remove `:master_timeout`, `:timeout` parameters.
+* `indices.resolve_cluster` - Adds `:timeout` parameter, `:name` no longer a required parameter.
+* `indices.rollover` - Removes target_failure_store parameter.
+* `ingest.delete_geoip_database`, `ingest.delete_ip_location_database`, `put_geoip_database`, `put_ip_location_database` remove `:master_timeout`, `:timeout` parameters.
+* `machine_learning.start_trained_model_deployment` - Adds body request parameter, the settings for the trained model deployment.
diff --git a/docs/release_notes/index.asciidoc b/docs/release_notes/index.asciidoc
index 2c6223c830..3500e73326 100644
--- a/docs/release_notes/index.asciidoc
+++ b/docs/release_notes/index.asciidoc
@@ -3,6 +3,9 @@
 
 [discrete]
 === 8.x
+* <<release_notes_8_18, 8.18 Release Notes>>
+* <<release_notes_8_17, 8.17 Release Notes>>
+* <<release_notes_8_16, 8.16 Release Notes>>
 * <<release_notes_8_15, 8.15 Release Notes>>
 * <<release_notes_8_14, 8.14 Release Notes>>
 * <<release_notes_8_13, 8.13 Release Notes>>
@@ -37,6 +40,9 @@
 * <<release_notes_75, 7.5 Release Notes>>
 * <<release_notes_70, 7.0 Release Notes>>
 
+include::818.asciidoc[]
+include::817.asciidoc[]
+include::816.asciidoc[]
 include::815.asciidoc[]
 include::814.asciidoc[]
 include::813.asciidoc[]
diff --git a/elasticsearch-api/Gemfile b/elasticsearch-api/Gemfile
index d65c401d73..6f2646fa20 100644
--- a/elasticsearch-api/Gemfile
+++ b/elasticsearch-api/Gemfile
@@ -20,8 +20,8 @@ source 'https://rubygems.org'
 # Specify your gem's dependencies in elasticsearch-api.gemspec
 gemspec
 
-if File.exist? File.expand_path("../../elasticsearch/elasticsearch.gemspec", __dir__)
-  gem 'elasticsearch', path: File.expand_path('../../elasticsearch', __dir__), require: false
+if File.exist? File.expand_path('../elasticsearch/elasticsearch.gemspec', __dir__)
+  gem 'elasticsearch', path: File.expand_path('../elasticsearch', __dir__), require: false
 end
 
 group :development do
diff --git a/elasticsearch-api/api-spec-testing/rspec_matchers.rb b/elasticsearch-api/api-spec-testing/rspec_matchers.rb
index 410102af0e..cb8db34b5d 100644
--- a/elasticsearch-api/api-spec-testing/rspec_matchers.rb
+++ b/elasticsearch-api/api-spec-testing/rspec_matchers.rb
@@ -174,7 +174,7 @@
 
   failure_message do |response|
     "the expected response pair/value(s) #{@mismatched_pairs}" +
-        " does not match the pair/value(s) in the response #{response}"
+      " does not match the pair/value(s) in the response #{response}"
   end
 
   def sanitize_pairs(expected_pairs)
@@ -235,8 +235,14 @@ def compare_hash(expected_pairs, actual_hash, test)
       when Hash
         compare_hash(expected_value, actual_value, test)
       when Array
-        unless compare_array(expected_value, actual_value, test, actual_hash)
-          @mismatched_pairs.merge!(expected_key => expected_value)
+        begin
+          unless compare_array(expected_value.sort, actual_value.sort, test, actual_hash)
+            @mismatched_pairs.merge!(expected_key => expected_value)
+          end
+        rescue TypeError, ArgumentError
+          unless compare_array(expected_value, actual_value, test, actual_hash)
+            @mismatched_pairs.merge!(expected_key => expected_value)
+          end
         end
       when String
         unless compare_string(expected_value, actual_value, test, actual_hash)
@@ -283,6 +289,8 @@ def compare_array(expected, actual, test, response)
         return false unless compare_array(value, actual[i], test, response)
       when String
         return false unless compare_string(value, actual[i], test, response)
+      else
+        true
       end
     end
   end
diff --git a/elasticsearch-api/api-spec-testing/wipe_cluster.rb b/elasticsearch-api/api-spec-testing/wipe_cluster.rb
index 083a20dd6e..26fcab3473 100644
--- a/elasticsearch-api/api-spec-testing/wipe_cluster.rb
+++ b/elasticsearch-api/api-spec-testing/wipe_cluster.rb
@@ -30,7 +30,26 @@ module WipeCluster
         '.fleet-actions-results-ilm-policy', '.fleet-file-fromhost-data-ilm-policy',
         '.fleet-file-fromhost-meta-ilm-policy', '.fleet-file-tohost-data-ilm-policy',
         '.fleet-file-tohost-meta-ilm-policy', '.deprecation-indexing-ilm-policy',
-        '.monitoring-8-ilm-policy', 'behavioral_analytics-events-default_policy'
+        '.monitoring-8-ilm-policy', 'behavioral_analytics-events-default_policy',
+        'logs-apm.app_logs-default_policy',
+        'logs-apm.error_logs-default_policy',
+        'metrics-apm.app_metrics-default_policy',
+        'metrics-apm.internal_metrics-default_policy',
+        'metrics-apm.service_destination_10m_metrics-default_policy',
+        'metrics-apm.service_destination_1m_metrics-default_policy',
+        'metrics-apm.service_destination_60m_metrics-default_policy',
+        'metrics-apm.service_summary_10m_metrics-default_policy',
+        'metrics-apm.service_summary_1m_metrics-default_policy',
+        'metrics-apm.service_summary_60m_metrics-default_policy',
+        'metrics-apm.service_transaction_10m_metrics-default_policy',
+        'metrics-apm.service_transaction_1m_metrics-default_policy',
+        'metrics-apm.service_transaction_60m_metrics-default_policy',
+        'metrics-apm.transaction_10m_metrics-default_policy',
+        'metrics-apm.transaction_1m_metrics-default_policy',
+        'metrics-apm.transaction_60m_metrics-default_policy',
+        'traces-apm.rum_traces-default_policy',
+        'traces-apm.sampled_traces-default_policy',
+        'traces-apm.traces-default_policy'
       ].freeze
 
       PLATINUM_TEMPLATES = [
diff --git a/elasticsearch-api/elasticsearch-api.gemspec b/elasticsearch-api/elasticsearch-api.gemspec
index a458ed60d1..ebc59fcf0d 100644
--- a/elasticsearch-api/elasticsearch-api.gemspec
+++ b/elasticsearch-api/elasticsearch-api.gemspec
@@ -49,7 +49,7 @@ Gem::Specification.new do |s|
   s.add_development_dependency 'ansi'
   s.add_development_dependency 'bundler'
   s.add_development_dependency 'elasticsearch'
-  s.add_development_dependency 'elasticsearch-test-runner' unless defined?(JRUBY_VERSION) && JRUBY_VERSION <= "9.4"
+  s.add_development_dependency 'elasticsearch-test-runner' unless defined?(JRUBY_VERSION) && JRUBY_VERSION <= '9.4'
   s.add_development_dependency 'minitest'
   s.add_development_dependency 'minitest-reporters', '>= 1.6'
   s.add_development_dependency 'mocha'
@@ -59,6 +59,7 @@ Gem::Specification.new do |s|
   s.add_development_dependency 'yard'
 
   # Gems for testing integrations
+  s.add_development_dependency 'concurrent-ruby', '1.3.4' if defined? JRUBY_VERSION && JRUBY_VERSION < '9.4'
   s.add_development_dependency 'jsonify'
   s.add_development_dependency 'hashie'
   # Temporary support for Ruby 2.6, since it's EOL March 2022:
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/async_search/delete.rb b/elasticsearch-api/lib/elasticsearch/api/actions/async_search/delete.rb
index 21fefe4527..9e6f9f8908 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/async_search/delete.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/async_search/delete.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [String] :id The async search ID
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/async-search.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/async-search.html
         #
         def delete(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'async_search.delete' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/async_search/get.rb b/elasticsearch-api/lib/elasticsearch/api/actions/async_search/get.rb
index 92c26c5887..3df27efce2 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/async_search/get.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/async_search/get.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Boolean] :typed_keys Specify whether aggregation and suggester names should be prefixed by their respective types in the response
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/async-search.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/async-search.html
         #
         def get(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'async_search.get' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/async_search/status.rb b/elasticsearch-api/lib/elasticsearch/api/actions/async_search/status.rb
index 4b2008d03d..d6be529db0 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/async_search/status.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/async_search/status.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Time] :keep_alive Specify the time interval in which the results (partial or final) for this search will be available
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/async-search.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/async-search.html
         #
         def status(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'async_search.status' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/async_search/submit.rb b/elasticsearch-api/lib/elasticsearch/api/actions/async_search/submit.rb
index c782d56b3e..7302cd1e88 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/async_search/submit.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/async_search/submit.rb
@@ -32,6 +32,7 @@ module Actions
         # @option arguments [Boolean] :request_cache Specify if request cache should be used for this request or not, defaults to true
         # @option arguments [String] :analyzer The analyzer to use for the query string
         # @option arguments [Boolean] :analyze_wildcard Specify whether wildcard and prefix queries should be analyzed (default: false)
+        # @option arguments [Boolean] :ccs_minimize_roundtrips When doing a cross-cluster search, setting it to true may improve overall search latency, particularly when searching clusters with a large number of shards. However, when set to true, the progress of searches on the remote clusters will not be received until the search finishes on all clusters.
         # @option arguments [String] :default_operator The default operator for query string query (AND or OR) (options: AND, OR)
         # @option arguments [String] :df The field to use as default where no field prefix is given in the query string
         # @option arguments [Boolean] :explain Specify whether to return detailed information about score computation as part of a hit
@@ -44,6 +45,7 @@ module Actions
         # @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)
         # @option arguments [Boolean] :lenient Specify whether format-based query failures (such as providing text to a numeric field) should be ignored
         # @option arguments [String] :preference Specify the node or shard the operation should be performed on (default: random)
+        # @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
         # @option arguments [String] :q Query in the Lucene query string syntax
         # @option arguments [List] :routing A comma-separated list of specific routing values
         # @option arguments [String] :search_type Search operation type (options: query_then_fetch, dfs_query_then_fetch)
@@ -69,7 +71,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The search definition using the Query DSL
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/async-search.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/async-search.html
         #
         def submit(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'async_search.submit' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/autoscaling/delete_autoscaling_policy.rb b/elasticsearch-api/lib/elasticsearch/api/actions/autoscaling/delete_autoscaling_policy.rb
index 6672db4b28..5c48d54b68 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/autoscaling/delete_autoscaling_policy.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/autoscaling/delete_autoscaling_policy.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Time] :timeout Timeout for acknowledgement of update from all nodes in cluster
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/autoscaling-delete-autoscaling-policy.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/autoscaling-delete-autoscaling-policy.html
         #
         def delete_autoscaling_policy(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'autoscaling.delete_autoscaling_policy' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/autoscaling/get_autoscaling_capacity.rb b/elasticsearch-api/lib/elasticsearch/api/actions/autoscaling/get_autoscaling_capacity.rb
index 9fba921f3a..6c99b88f2f 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/autoscaling/get_autoscaling_capacity.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/autoscaling/get_autoscaling_capacity.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Time] :master_timeout Timeout for processing on master node
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/autoscaling-get-autoscaling-capacity.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/autoscaling-get-autoscaling-capacity.html
         #
         def get_autoscaling_capacity(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'autoscaling.get_autoscaling_capacity' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/autoscaling/get_autoscaling_policy.rb b/elasticsearch-api/lib/elasticsearch/api/actions/autoscaling/get_autoscaling_policy.rb
index 9090bdbc74..d76e7c3375 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/autoscaling/get_autoscaling_policy.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/autoscaling/get_autoscaling_policy.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Time] :master_timeout Timeout for processing on master node
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/autoscaling-get-autoscaling-policy.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/autoscaling-get-autoscaling-policy.html
         #
         def get_autoscaling_policy(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'autoscaling.get_autoscaling_policy' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/autoscaling/put_autoscaling_policy.rb b/elasticsearch-api/lib/elasticsearch/api/actions/autoscaling/put_autoscaling_policy.rb
index b453f52c9f..af2daf43d6 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/autoscaling/put_autoscaling_policy.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/autoscaling/put_autoscaling_policy.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body the specification of the autoscaling policy (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/autoscaling-put-autoscaling-policy.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/autoscaling-put-autoscaling-policy.html
         #
         def put_autoscaling_policy(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'autoscaling.put_autoscaling_policy' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/bulk.rb b/elasticsearch-api/lib/elasticsearch/api/actions/bulk.rb
index a78a1d3463..8170d6026d 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/bulk.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/bulk.rb
@@ -36,11 +36,12 @@ module Actions
       # @option arguments [Boolean] :require_alias Sets require_alias for all incoming documents. Defaults to unset (false)
       # @option arguments [Boolean] :require_data_stream When true, requires the destination to be a data stream (existing or to-be-created). Default is false
       # @option arguments [Boolean] :list_executed_pipelines Sets list_executed_pipelines for all incoming documents. Defaults to unset (false)
+      # @option arguments [Boolean] :include_source_on_error True or false if to include the document source in the error message in case of parsing errors. Defaults to true.
       # @option arguments [Hash] :headers Custom HTTP headers
       # @option arguments [String|Array] :body The operation definition and data (action-data pairs), separated by newlines. Array of Strings, Header/Data pairs,
       # or the conveniency "combined" format can be passed, refer to Elasticsearch::API::Utils.__bulkify documentation.
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/docs-bulk.html
       #
       def bulk(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'bulk' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/capabilities.rb b/elasticsearch-api/lib/elasticsearch/api/actions/capabilities.rb
index f769dce688..a572d5fe7f 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/capabilities.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/capabilities.rb
@@ -34,7 +34,7 @@ module Actions
       # @option arguments [Boolean] :local_only True if only the node being called should be considered
       # @option arguments [Hash] :headers Custom HTTP headers
       #
-      # @see https://github.com/elastic/elasticsearch/blob/current/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/README.asciidoc#require-or-skip-api-capabilities
+      # @see https://github.com/elastic/elasticsearch/blob/8.18/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/README.asciidoc#require-or-skip-api-capabilities
       #
       def capabilities(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'capabilities' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cat/aliases.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cat/aliases.rb
index 0b506b2ed0..981384fa38 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cat/aliases.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cat/aliases.rb
@@ -34,7 +34,7 @@ module Actions
         # @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)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-alias.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cat-alias.html
         #
         def aliases(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cat.aliases' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cat/allocation.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cat/allocation.rb
index f37b53e12d..48602d3276 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cat/allocation.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cat/allocation.rb
@@ -35,7 +35,7 @@ module Actions
         # @option arguments [Boolean] :v Verbose mode. Display column headers
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-allocation.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cat-allocation.html
         #
         def allocation(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cat.allocation' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cat/component_templates.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cat/component_templates.rb
index 0765a09a55..adbe360ebb 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cat/component_templates.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cat/component_templates.rb
@@ -34,7 +34,7 @@ module Actions
         # @option arguments [Boolean] :v Verbose mode. Display column headers
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-component-templates.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cat-component-templates.html
         #
         def component_templates(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cat.component_templates' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cat/count.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cat/count.rb
index 8afd4cade6..0619e55313 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cat/count.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cat/count.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Boolean] :v Verbose mode. Display column headers
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-count.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cat-count.html
         #
         def count(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cat.count' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cat/fielddata.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cat/fielddata.rb
index 592958c962..770f510a20 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cat/fielddata.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cat/fielddata.rb
@@ -33,7 +33,7 @@ module Actions
         # @option arguments [Boolean] :v Verbose mode. Display column headers
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-fielddata.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cat-fielddata.html
         #
         def fielddata(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cat.fielddata' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cat/health.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cat/health.rb
index 59309d5084..1ecaa83973 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cat/health.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cat/health.rb
@@ -33,7 +33,7 @@ module Actions
         # @option arguments [Boolean] :v Verbose mode. Display column headers
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-health.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cat-health.html
         #
         def health(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cat.health' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cat/help.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cat/help.rb
index 0d9f22f752..c59d4a524a 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cat/help.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cat/help.rb
@@ -24,11 +24,9 @@ module Cat
       module Actions
         # Returns help for the Cat APIs.
         #
-        # @option arguments [Boolean] :help Return help information
-        # @option arguments [List] :s Comma-separated list of column names or column aliases to sort by
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cat.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cat.html
         #
         def help(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cat.help' }
@@ -40,7 +38,7 @@ def help(arguments = {})
 
           method = Elasticsearch::API::HTTP_GET
           path   = '_cat'
-          params = Utils.process_params(arguments)
+          params = {}
 
           Elasticsearch::API::Response.new(
             perform_request(method, path, params, body, headers, request_opts)
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cat/indices.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cat/indices.rb
index accc79e8cb..5bfb44015f 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cat/indices.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cat/indices.rb
@@ -39,7 +39,7 @@ module Actions
         # @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)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-indices.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cat-indices.html
         #
         def indices(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cat.indices' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cat/master.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cat/master.rb
index f8512afd3b..acb07e0d45 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cat/master.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cat/master.rb
@@ -33,7 +33,7 @@ module Actions
         # @option arguments [Boolean] :v Verbose mode. Display column headers
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-master.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cat-master.html
         #
         def master(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cat.master' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cat/ml_data_frame_analytics.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cat/ml_data_frame_analytics.rb
index 72e1f69773..f2b0725eb9 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cat/ml_data_frame_analytics.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cat/ml_data_frame_analytics.rb
@@ -35,7 +35,7 @@ module Actions
         # @option arguments [Boolean] :v Verbose mode. Display column headers
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see http://www.elastic.co/guide/en/elasticsearch/reference/current/cat-dfanalytics.html
+        # @see http://www.elastic.co/guide/en/elasticsearch/reference/8.18/cat-dfanalytics.html
         #
         def ml_data_frame_analytics(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cat.ml_data_frame_analytics' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cat/ml_datafeeds.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cat/ml_datafeeds.rb
index c00d25ba2c..97f44ddb48 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cat/ml_datafeeds.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cat/ml_datafeeds.rb
@@ -34,7 +34,7 @@ module Actions
         # @option arguments [Boolean] :v Verbose mode. Display column headers
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see http://www.elastic.co/guide/en/elasticsearch/reference/current/cat-datafeeds.html
+        # @see http://www.elastic.co/guide/en/elasticsearch/reference/8.18/cat-datafeeds.html
         #
         def ml_datafeeds(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cat.ml_datafeeds' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cat/ml_jobs.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cat/ml_jobs.rb
index 0a9f41ff97..023ae229d2 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cat/ml_jobs.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cat/ml_jobs.rb
@@ -35,7 +35,7 @@ module Actions
         # @option arguments [Boolean] :v Verbose mode. Display column headers
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see http://www.elastic.co/guide/en/elasticsearch/reference/current/cat-anomaly-detectors.html
+        # @see http://www.elastic.co/guide/en/elasticsearch/reference/8.18/cat-anomaly-detectors.html
         #
         def ml_jobs(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cat.ml_jobs' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cat/ml_trained_models.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cat/ml_trained_models.rb
index 3af9c15a30..c2d3f56934 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cat/ml_trained_models.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cat/ml_trained_models.rb
@@ -37,7 +37,7 @@ module Actions
         # @option arguments [Boolean] :v Verbose mode. Display column headers
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-trained-model.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cat-trained-model.html
         #
         def ml_trained_models(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cat.ml_trained_models' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cat/nodeattrs.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cat/nodeattrs.rb
index 54102162ef..e41692524f 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cat/nodeattrs.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cat/nodeattrs.rb
@@ -33,7 +33,7 @@ module Actions
         # @option arguments [Boolean] :v Verbose mode. Display column headers
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-nodeattrs.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cat-nodeattrs.html
         #
         def nodeattrs(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cat.nodeattrs' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cat/nodes.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cat/nodes.rb
index 1411277c44..38c6455af3 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cat/nodes.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cat/nodes.rb
@@ -36,7 +36,7 @@ module Actions
         # @option arguments [Boolean] :include_unloaded_segments If set to true segment stats will include stats for segments that are not currently loaded into memory
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-nodes.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cat-nodes.html
         #
         def nodes(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cat.nodes' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cat/pending_tasks.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cat/pending_tasks.rb
index 67acfd7817..6501cc4dd6 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cat/pending_tasks.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cat/pending_tasks.rb
@@ -34,7 +34,7 @@ module Actions
         # @option arguments [Boolean] :v Verbose mode. Display column headers
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-pending-tasks.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cat-pending-tasks.html
         #
         def pending_tasks(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cat.pending_tasks' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cat/plugins.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cat/plugins.rb
index fbde5d60ed..73f16092c0 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cat/plugins.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cat/plugins.rb
@@ -34,7 +34,7 @@ module Actions
         # @option arguments [Boolean] :v Verbose mode. Display column headers
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-plugins.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cat-plugins.html
         #
         def plugins(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cat.plugins' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cat/recovery.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cat/recovery.rb
index 5e6865e47d..944ba44cc5 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cat/recovery.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cat/recovery.rb
@@ -36,7 +36,7 @@ module Actions
         # @option arguments [Boolean] :v Verbose mode. Display column headers
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-recovery.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cat-recovery.html
         #
         def recovery(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cat.recovery' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cat/repositories.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cat/repositories.rb
index 482ceff4b3..f855db2d60 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cat/repositories.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cat/repositories.rb
@@ -33,7 +33,7 @@ module Actions
         # @option arguments [Boolean] :v Verbose mode. Display column headers
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-repositories.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cat-repositories.html
         #
         def repositories(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cat.repositories' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cat/segments.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cat/segments.rb
index 8898f52e26..0c552f63fb 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cat/segments.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cat/segments.rb
@@ -26,6 +26,8 @@ module Actions
         #
         # @option arguments [List] :index A comma-separated list of index names to limit the returned information
         # @option arguments [String] :format a short version of the Accept header, e.g. json, yaml
+        # @option arguments [Boolean] :local Return local information, do not retrieve the state from master node (default: false)
+        # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
         # @option arguments [String] :bytes The unit in which to display byte values (options: b, k, kb, m, mb, g, gb, t, tb, p, pb)
         # @option arguments [List] :h Comma-separated list of column names to display
         # @option arguments [Boolean] :help Return help information
@@ -33,7 +35,7 @@ module Actions
         # @option arguments [Boolean] :v Verbose mode. Display column headers
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-segments.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cat-segments.html
         #
         def segments(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cat.segments' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cat/shards.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cat/shards.rb
index 4e4cae17d5..e1c318e67a 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cat/shards.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cat/shards.rb
@@ -35,7 +35,7 @@ module Actions
         # @option arguments [Boolean] :v Verbose mode. Display column headers
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-shards.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cat-shards.html
         #
         def shards(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cat.shards' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cat/snapshots.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cat/snapshots.rb
index 3ae1c00888..7d1e489b1b 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cat/snapshots.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cat/snapshots.rb
@@ -35,7 +35,7 @@ module Actions
         # @option arguments [Boolean] :v Verbose mode. Display column headers
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-snapshots.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cat-snapshots.html
         #
         def snapshots(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cat.snapshots' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cat/tasks.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cat/tasks.rb
index 4a60aea199..24e0bfffa2 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cat/tasks.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cat/tasks.rb
@@ -38,9 +38,11 @@ module Actions
         # @option arguments [List] :s Comma-separated list of column names or column aliases to sort by
         # @option arguments [String] :time The unit in which to display time values (options: d, h, m, s, ms, micros, nanos)
         # @option arguments [Boolean] :v Verbose mode. Display column headers
+        # @option arguments [Time] :timeout Period to wait for a response. If no response is received before the timeout expires, the request fails and returns an error.
+        # @option arguments [Boolean] :wait_for_completion If `true`, the request blocks until the task has completed.
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/tasks.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/tasks.html
         #
         def tasks(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cat.tasks' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cat/templates.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cat/templates.rb
index 42423d5f2b..1619259d96 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cat/templates.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cat/templates.rb
@@ -34,7 +34,7 @@ module Actions
         # @option arguments [Boolean] :v Verbose mode. Display column headers
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-templates.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cat-templates.html
         #
         def templates(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cat.templates' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cat/thread_pool.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cat/thread_pool.rb
index f3ffd705f2..e322c8b041 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cat/thread_pool.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cat/thread_pool.rb
@@ -36,7 +36,7 @@ module Actions
         # @option arguments [Boolean] :v Verbose mode. Display column headers
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-thread-pool.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cat-thread-pool.html
         #
         def thread_pool(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cat.thread_pool' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cat/transforms.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cat/transforms.rb
index 172e7445ae..c2f224591e 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cat/transforms.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cat/transforms.rb
@@ -36,7 +36,7 @@ module Actions
         # @option arguments [Boolean] :v Verbose mode. Display column headers
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-transforms.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cat-transforms.html
         #
         def transforms(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cat.transforms' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/clear_scroll.rb b/elasticsearch-api/lib/elasticsearch/api/actions/clear_scroll.rb
index 793bff1eab..2d26589464 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/clear_scroll.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/clear_scroll.rb
@@ -32,7 +32,7 @@ module Actions
       # Deprecated since version 7.0.0
       #
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/clear-scroll-api.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/clear-scroll-api.html
       #
       def clear_scroll(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'clear_scroll' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/close_point_in_time.rb b/elasticsearch-api/lib/elasticsearch/api/actions/close_point_in_time.rb
index 05b7b5935a..7c31f42e2f 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/close_point_in_time.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/close_point_in_time.rb
@@ -26,7 +26,7 @@ module Actions
       # @option arguments [Hash] :headers Custom HTTP headers
       # @option arguments [Hash] :body a point-in-time id to close
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/point-in-time-api.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/point-in-time-api.html
       #
       def close_point_in_time(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'close_point_in_time' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/allocation_explain.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/allocation_explain.rb
index 08abe8949a..ba6803538a 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/allocation_explain.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/allocation_explain.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The index, shard, and primary flag to explain. Empty means 'explain a randomly-chosen unassigned shard'
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-allocation-explain.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cluster-allocation-explain.html
         #
         def allocation_explain(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cluster.allocation_explain' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/delete_component_template.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/delete_component_template.rb
index a0a62dd669..74ac218728 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/delete_component_template.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/delete_component_template.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Time] :master_timeout Specify timeout for connection to master
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-component-template.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-component-template.html
         #
         def delete_component_template(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cluster.delete_component_template' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/delete_voting_config_exclusions.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/delete_voting_config_exclusions.rb
index 4609b743de..8671ce7240 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/delete_voting_config_exclusions.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/delete_voting_config_exclusions.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Time] :master_timeout Timeout for submitting request to master
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/voting-config-exclusions.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/voting-config-exclusions.html
         #
         def delete_voting_config_exclusions(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cluster.delete_voting_config_exclusions' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/exists_component_template.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/exists_component_template.rb
index b0ac619b26..efe5ea4706 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/exists_component_template.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/exists_component_template.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Boolean] :local Return local information, do not retrieve the state from master node (default: false)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-component-template.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-component-template.html
         #
         def exists_component_template(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cluster.exists_component_template' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/get_component_template.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/get_component_template.rb
index 51bb22bc01..469c33fbe1 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/get_component_template.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/get_component_template.rb
@@ -28,9 +28,11 @@ module Actions
         # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
         # @option arguments [Boolean] :local Return local information, do not retrieve the state from master node (default: false)
         # @option arguments [Boolean] :include_defaults Return all default configurations for the component template (default: false)
+        # @option arguments [Boolean] :flat_settings Return settings in flat format (default: false)
+        # @option arguments [String] :settings_filter Filter out results, for example to filter out sensitive information. Supports wildcards or full settings keys
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-component-template.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-component-template.html
         #
         def get_component_template(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cluster.get_component_template' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/get_settings.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/get_settings.rb
index 8cff9de9d4..37cdd468cc 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/get_settings.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/get_settings.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Boolean] :include_defaults Whether to return all default clusters setting.
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-get-settings.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cluster-get-settings.html
         #
         def get_settings(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cluster.get_settings' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/health.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/health.rb
index 3a585036b6..d6800c9faf 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/health.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/health.rb
@@ -38,7 +38,7 @@ module Actions
         # @option arguments [String] :wait_for_status Wait until cluster is in a specific state (options: green, yellow, red)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-health.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cluster-health.html
         #
         def health(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cluster.health' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/info.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/info.rb
index 83b2e81d83..ba9931b0ce 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/info.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/info.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [List] :target Limit the information returned to the specified target. (options: _all, http, ingest, thread_pool, script)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-info.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cluster-info.html
         #
         def info(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cluster.info' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/pending_tasks.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/pending_tasks.rb
index 783626ef7d..23f0475511 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/pending_tasks.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/pending_tasks.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Time] :master_timeout Specify timeout for connection to master
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-pending.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cluster-pending.html
         #
         def pending_tasks(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cluster.pending_tasks' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/post_voting_config_exclusions.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/post_voting_config_exclusions.rb
index dd9edf0cbe..31ba21a14a 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/post_voting_config_exclusions.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/post_voting_config_exclusions.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Time] :master_timeout Timeout for submitting request to master
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/voting-config-exclusions.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/voting-config-exclusions.html
         #
         def post_voting_config_exclusions(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cluster.post_voting_config_exclusions' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/put_component_template.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/put_component_template.rb
index e6cf352034..f34e5285c0 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/put_component_template.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/put_component_template.rb
@@ -26,12 +26,12 @@ module Actions
         #
         # @option arguments [String] :name The name of the template
         # @option arguments [Boolean] :create Whether the index template should only be added if new or can also replace an existing one
-        # @option arguments [Time] :timeout Explicit operation timeout
+        # @option arguments [String] :cause User defined reason for create the component template
         # @option arguments [Time] :master_timeout Specify timeout for connection to master
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The template definition (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-component-template.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-component-template.html
         #
         def put_component_template(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cluster.put_component_template' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/put_settings.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/put_settings.rb
index 22854aaf9b..9f2b65ce96 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/put_settings.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/put_settings.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The settings to be updated. Can be either `transient` or `persistent` (survives cluster restart). (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-update-settings.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cluster-update-settings.html
         #
         def put_settings(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cluster.put_settings' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/remote_info.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/remote_info.rb
index 63d1f824f7..4e1ee12b2a 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/remote_info.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/remote_info.rb
@@ -26,7 +26,7 @@ module Actions
         #
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-remote-info.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cluster-remote-info.html
         #
         def remote_info(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cluster.remote_info' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/reroute.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/reroute.rb
index 450384932f..1fd90f9a81 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/reroute.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/reroute.rb
@@ -33,7 +33,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The definition of `commands` to perform (`move`, `cancel`, `allocate`)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-reroute.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cluster-reroute.html
         #
         def reroute(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cluster.reroute' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/state.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/state.rb
index 24d7eb487f..0467ff7751 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/state.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/state.rb
@@ -36,7 +36,7 @@ module Actions
         # @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)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-state.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cluster-state.html
         #
         def state(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cluster.state' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/stats.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/stats.rb
index 917ea93bb1..eb72964fcc 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cluster/stats.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cluster/stats.rb
@@ -25,11 +25,11 @@ module Actions
         # Returns high-level overview of cluster statistics.
         #
         # @option arguments [List] :node_id A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes
-        # @option arguments [Boolean] :flat_settings Return settings in flat format (default: false)
+        # @option arguments [Boolean] :include_remotes Include remote cluster data into the response (default: false)
         # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-stats.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cluster-stats.html
         #
         def stats(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'cluster.stats' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/check_in.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/check_in.rb
index e2c46f6ffd..d9d0746041 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/check_in.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/check_in.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [String] :connector_id The unique identifier of the connector to be updated.
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/check-in-connector-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/check-in-connector-api.html
         #
         def check_in(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.check_in' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/delete.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/delete.rb
index 4e73882b30..a0cbb5371b 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/delete.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/delete.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Boolean] :delete_sync_jobs Determines whether associated sync jobs are also deleted.
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-connector-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/delete-connector-api.html
         #
         def delete(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.delete' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/get.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/get.rb
index d71a01db6c..c738b15ad0 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/get.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/get.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [String] :connector_id The unique identifier of the connector to be returned.
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/get-connector-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-connector-api.html
         #
         def get(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.get' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/last_sync.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/last_sync.rb
index 1a342f408f..f23caf68d0 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/last_sync.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/last_sync.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Object with stats related to the last connector sync run. (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/update-connector-last-sync-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/update-connector-last-sync-api.html
         #
         def last_sync(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.last_sync' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/list.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/list.rb
index 115f7745ab..75160bd6b2 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/list.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/list.rb
@@ -36,7 +36,7 @@ module Actions
         # @option arguments [String] :query A search string for querying connectors, filtering results by matching against connector names, descriptions, and index names
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/list-connector-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/list-connector-api.html
         #
         def list(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.list' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/post.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/post.rb
index 6e2c055541..54daa640ba 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/post.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/post.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The connector configuration.
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/create-connector-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/create-connector-api.html
         #
         def post(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.post' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/put.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/put.rb
index 038f37ab3c..79891f0edb 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/put.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/put.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The connector configuration.
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/create-connector-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/create-connector-api.html
         #
         def put(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.put' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_cancel.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_cancel.rb
index 3a6bcebf48..97afe5a511 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_cancel.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_cancel.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [String] :connector_sync_job_id The unique identifier of the connector sync job to be canceled
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cancel-connector-sync-job-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cancel-connector-sync-job-api.html
         #
         def sync_job_cancel(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.sync_job_cancel' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_check_in.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_check_in.rb
index 90e935c527..8bbbdbd26c 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_check_in.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_check_in.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [String] :connector_sync_job_id The unique identifier of the connector sync job to be checked in
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/check-in-connector-sync-job-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/check-in-connector-sync-job-api.html
         #
         def sync_job_check_in(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.sync_job_check_in' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_claim.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_claim.rb
index f524141fc3..b5b17920dd 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_claim.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_claim.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Data to claim a sync job. (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/claim-connector-sync-job-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/claim-connector-sync-job-api.html
         #
         def sync_job_claim(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.sync_job_claim' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_delete.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_delete.rb
index 3a7ed141ca..80b5b85c82 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_delete.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_delete.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [String] :connector_sync_job_id The unique identifier of the connector sync job to be deleted.
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-connector-sync-job-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/delete-connector-sync-job-api.html
         #
         def sync_job_delete(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.sync_job_delete' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_error.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_error.rb
index 73ed91cbd3..8c403b0182 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_error.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_error.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The error to set in the connector sync job. (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/set-connector-sync-job-error-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/set-connector-sync-job-error-api.html
         #
         def sync_job_error(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.sync_job_error' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_get.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_get.rb
index 22e7554776..5cf708e92b 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_get.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_get.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [String] :connector_sync_job_id The unique identifier of the connector sync job to be returned.
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/get-connector-sync-job-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-connector-sync-job-api.html
         #
         def sync_job_get(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.sync_job_get' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_list.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_list.rb
index 222314a516..a40643bd05 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_list.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_list.rb
@@ -35,7 +35,7 @@ module Actions
         # @option arguments [List] :job_type A comma-separated list of job types
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/list-connector-sync-jobs-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/list-connector-sync-jobs-api.html
         #
         def sync_job_list(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.sync_job_list' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_post.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_post.rb
index a455a80281..9bb92b501a 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_post.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_post.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The connector sync job data. (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/create-connector-sync-job-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/create-connector-sync-job-api.html
         #
         def sync_job_post(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.sync_job_post' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_update_stats.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_update_stats.rb
index 772a28cf31..b963c79f6f 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_update_stats.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/sync_job_update_stats.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The stats to update for the connector sync job. (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/set-connector-sync-job-stats-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/set-connector-sync-job-stats-api.html
         #
         def sync_job_update_stats(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.sync_job_update_stats' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_active_filtering.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_active_filtering.rb
index 975c7aa3d7..61e8dd9f6f 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_active_filtering.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_active_filtering.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [String] :connector_id The unique identifier of the connector to be updated.
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/update-connector-filtering-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/update-connector-filtering-api.html
         #
         def update_active_filtering(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.update_active_filtering' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_api_key_id.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_api_key_id.rb
index a44130824e..57db412248 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_api_key_id.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_api_key_id.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body An object containing the connector's API key id and/or Connector Secret document id for that API key. (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/update-connector-api-key-id-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/update-connector-api-key-id-api.html
         #
         def update_api_key_id(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.update_api_key_id' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_configuration.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_configuration.rb
index fc51bd4315..6b9a970d26 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_configuration.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_configuration.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Mapping between field names to configuration. (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/update-connector-configuration-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/update-connector-configuration-api.html
         #
         def update_configuration(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.update_configuration' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_error.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_error.rb
index eec511fc21..684b1c164a 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_error.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_error.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body An object containing the connector's error. (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/update-connector-error-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/update-connector-error-api.html
         #
         def update_error(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.update_error' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_features.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_features.rb
index 531a7c2ad1..5e42390ef1 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_features.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_features.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body An object containing the connector's features definition. (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/update-connector-features-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/update-connector-features-api.html
         #
         def update_features(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.update_features' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_filtering.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_filtering.rb
index 314a30e6d7..dd7fbfc7d1 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_filtering.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_filtering.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body A list of connector filtering configurations. (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/update-connector-filtering-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/update-connector-filtering-api.html
         #
         def update_filtering(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.update_filtering' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_filtering_validation.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_filtering_validation.rb
index b42a75b4db..facf9963cb 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_filtering_validation.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_filtering_validation.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Validation info for the draft filtering rules (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/update-connector-filtering-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/update-connector-filtering-api.html
         #
         def update_filtering_validation(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.update_filtering_validation' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_index_name.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_index_name.rb
index ce76d01503..aeb9a84c04 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_index_name.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_index_name.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body An object containing the connector's index name. (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/update-connector-index-name-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/update-connector-index-name-api.html
         #
         def update_index_name(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.update_index_name' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_name.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_name.rb
index ecdac5b2a7..e13698d121 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_name.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_name.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body An object containing the connector's name and/or description. (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/update-connector-name-description-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/update-connector-name-description-api.html
         #
         def update_name(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.update_name' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_native.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_native.rb
index 81779e6e38..29d5003a7b 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_native.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_native.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body An object containing the connector's is_native flag (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/connector-apis.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/connector-apis.html
         #
         def update_native(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.update_native' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_pipeline.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_pipeline.rb
index e5f7f6ee23..fd0dda1c51 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_pipeline.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_pipeline.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body An object with connector ingest pipeline configuration. (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/update-connector-pipeline-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/update-connector-pipeline-api.html
         #
         def update_pipeline(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.update_pipeline' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_scheduling.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_scheduling.rb
index 2c87061c26..c9d75f0e51 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_scheduling.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_scheduling.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body An object containing the connector's scheduling configuration. (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/update-connector-scheduling-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/update-connector-scheduling-api.html
         #
         def update_scheduling(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.update_scheduling' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_service_type.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_service_type.rb
index 757b43c8ec..85c9280e5a 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_service_type.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_service_type.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body An object containing the connector's service type. (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/update-connector-service-type-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/update-connector-service-type-api.html
         #
         def update_service_type(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.update_service_type' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_status.rb b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_status.rb
index 8b1ef81f37..42d48ff94d 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_status.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/connector/update_status.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body An object containing the connector's status. (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/update-connector-status-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/update-connector-status-api.html
         #
         def update_status(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'connector.update_status' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/count.rb b/elasticsearch-api/lib/elasticsearch/api/actions/count.rb
index 393bbb7fda..a11bd59ca1 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/count.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/count.rb
@@ -41,7 +41,7 @@ module Actions
       # @option arguments [Hash] :headers Custom HTTP headers
       # @option arguments [Hash] :body A query to restrict the results specified with the Query DSL (optional)
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-count.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/search-count.html
       #
       def count(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'count' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/create.rb b/elasticsearch-api/lib/elasticsearch/api/actions/create.rb
index b17cc55635..e8bd851c8f 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/create.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/create.rb
@@ -34,10 +34,13 @@ module Actions
       # @option arguments [Number] :version Explicit version number for concurrency control
       # @option arguments [String] :version_type Specific version type (options: internal, external, external_gte)
       # @option arguments [String] :pipeline The pipeline id to preprocess incoming documents with
+      # @option arguments [Boolean] :include_source_on_error True or false if to include the document source in the error message in case of parsing errors. Defaults to true.
+      # @option arguments [Boolean] :require_alias When true, requires destination to be an alias. Default is false
+      # @option arguments [Boolean] :require_data_stream When true, requires destination to be a data stream (existing or to be created). Default is false
       # @option arguments [Hash] :headers Custom HTTP headers
       # @option arguments [Hash] :body The document (*Required*)
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-index_.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/docs-index_.html
       #
       def create(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'create' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/delete_auto_follow_pattern.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/delete_auto_follow_pattern.rb
index b3537c7ad1..4fbba88ca7 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/delete_auto_follow_pattern.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/delete_auto_follow_pattern.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-delete-auto-follow-pattern.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ccr-delete-auto-follow-pattern.html
         #
         def delete_auto_follow_pattern(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ccr.delete_auto_follow_pattern' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/follow.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/follow.rb
index c1fffadc12..8523b22a33 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/follow.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/follow.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The name of the leader index and other optional ccr related parameters (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-put-follow.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ccr-put-follow.html
         #
         def follow(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ccr.follow' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/follow_info.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/follow_info.rb
index 7ba6a422b0..1fced370e1 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/follow_info.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/follow_info.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-get-follow-info.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ccr-get-follow-info.html
         #
         def follow_info(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ccr.follow_info' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/follow_stats.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/follow_stats.rb
index 85e45f1259..382dc681af 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/follow_stats.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/follow_stats.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-get-follow-stats.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ccr-get-follow-stats.html
         #
         def follow_stats(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ccr.follow_stats' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/forget_follower.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/forget_follower.rb
index aa3726b0b6..161467508c 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/forget_follower.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/forget_follower.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body the name and UUID of the follower index, the name of the cluster containing the follower index, and the alias from the perspective of that cluster for the remote cluster containing the leader index (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-post-forget-follower.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ccr-post-forget-follower.html
         #
         def forget_follower(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ccr.forget_follower' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/get_auto_follow_pattern.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/get_auto_follow_pattern.rb
index ea4f844ef9..fa787787e5 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/get_auto_follow_pattern.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/get_auto_follow_pattern.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-get-auto-follow-pattern.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ccr-get-auto-follow-pattern.html
         #
         def get_auto_follow_pattern(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ccr.get_auto_follow_pattern' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/pause_auto_follow_pattern.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/pause_auto_follow_pattern.rb
index 573bd73ad4..c235ac86f2 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/pause_auto_follow_pattern.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/pause_auto_follow_pattern.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-pause-auto-follow-pattern.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ccr-pause-auto-follow-pattern.html
         #
         def pause_auto_follow_pattern(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ccr.pause_auto_follow_pattern' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/pause_follow.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/pause_follow.rb
index 275bd1675e..ab4aef6707 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/pause_follow.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/pause_follow.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-post-pause-follow.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ccr-post-pause-follow.html
         #
         def pause_follow(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ccr.pause_follow' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/put_auto_follow_pattern.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/put_auto_follow_pattern.rb
index 4ea1a7a754..8ccf79f138 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/put_auto_follow_pattern.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/put_auto_follow_pattern.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The specification of the auto follow pattern (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-put-auto-follow-pattern.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ccr-put-auto-follow-pattern.html
         #
         def put_auto_follow_pattern(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ccr.put_auto_follow_pattern' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/resume_auto_follow_pattern.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/resume_auto_follow_pattern.rb
index 2a979f9add..f9d3471561 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/resume_auto_follow_pattern.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/resume_auto_follow_pattern.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-resume-auto-follow-pattern.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ccr-resume-auto-follow-pattern.html
         #
         def resume_auto_follow_pattern(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ccr.resume_auto_follow_pattern' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/resume_follow.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/resume_follow.rb
index f172d59a88..800828a0e8 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/resume_follow.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/resume_follow.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The name of the leader index and other optional ccr related parameters
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-post-resume-follow.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ccr-post-resume-follow.html
         #
         def resume_follow(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ccr.resume_follow' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/stats.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/stats.rb
index 276ce44b34..338982de68 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/stats.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/stats.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-get-stats.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ccr-get-stats.html
         #
         def stats(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ccr.stats' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/unfollow.rb b/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/unfollow.rb
index 9719fd23a4..fd1cbd4947 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/unfollow.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/cross_cluster_replication/unfollow.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-post-unfollow.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ccr-post-unfollow.html
         #
         def unfollow(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ccr.unfollow' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/dangling_indices/delete_dangling_index.rb b/elasticsearch-api/lib/elasticsearch/api/actions/dangling_indices/delete_dangling_index.rb
index 82810e3a02..181467ec9c 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/dangling_indices/delete_dangling_index.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/dangling_indices/delete_dangling_index.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Time] :master_timeout Specify timeout for connection to master
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-gateway-dangling-indices.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/modules-gateway-dangling-indices.html
         #
         def delete_dangling_index(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'dangling_indices.delete_dangling_index' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/dangling_indices/import_dangling_index.rb b/elasticsearch-api/lib/elasticsearch/api/actions/dangling_indices/import_dangling_index.rb
index 3806639cb2..8ea37e5b58 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/dangling_indices/import_dangling_index.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/dangling_indices/import_dangling_index.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Time] :master_timeout Specify timeout for connection to master
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-gateway-dangling-indices.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/modules-gateway-dangling-indices.html
         #
         def import_dangling_index(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'dangling_indices.import_dangling_index' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/dangling_indices/list_dangling_indices.rb b/elasticsearch-api/lib/elasticsearch/api/actions/dangling_indices/list_dangling_indices.rb
index a46ca9851c..81f26e520c 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/dangling_indices/list_dangling_indices.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/dangling_indices/list_dangling_indices.rb
@@ -26,7 +26,7 @@ module Actions
         #
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-gateway-dangling-indices.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/modules-gateway-dangling-indices.html
         #
         def list_dangling_indices(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'dangling_indices.list_dangling_indices' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/delete.rb b/elasticsearch-api/lib/elasticsearch/api/actions/delete.rb
index 3d0505817f..b27acfb46d 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/delete.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/delete.rb
@@ -35,7 +35,7 @@ module Actions
       # @option arguments [String] :version_type Specific version type (options: internal, external, external_gte)
       # @option arguments [Hash] :headers Custom HTTP headers
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/docs-delete.html
       #
       def delete(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'delete' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/delete_by_query.rb b/elasticsearch-api/lib/elasticsearch/api/actions/delete_by_query.rb
index 395cd50618..6561479823 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/delete_by_query.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/delete_by_query.rb
@@ -56,7 +56,7 @@ module Actions
       # @option arguments [Hash] :headers Custom HTTP headers
       # @option arguments [Hash] :body The search definition using the Query DSL (*Required*)
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/docs-delete-by-query.html
       #
       def delete_by_query(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'delete_by_query' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/delete_by_query_rethrottle.rb b/elasticsearch-api/lib/elasticsearch/api/actions/delete_by_query_rethrottle.rb
index 081b6efc86..7f7d642fb2 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/delete_by_query_rethrottle.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/delete_by_query_rethrottle.rb
@@ -27,7 +27,7 @@ module Actions
       # @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*)
       # @option arguments [Hash] :headers Custom HTTP headers
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/docs-delete-by-query.html
       #
       def delete_by_query_rethrottle(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'delete_by_query_rethrottle' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/delete_script.rb b/elasticsearch-api/lib/elasticsearch/api/actions/delete_script.rb
index 9f1d8be915..cbeed876bd 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/delete_script.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/delete_script.rb
@@ -28,7 +28,7 @@ module Actions
       # @option arguments [Time] :master_timeout Specify timeout for connection to master
       # @option arguments [Hash] :headers Custom HTTP headers
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/modules-scripting.html
       #
       def delete_script(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'delete_script' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/enrich/delete_policy.rb b/elasticsearch-api/lib/elasticsearch/api/actions/enrich/delete_policy.rb
index de116ae993..1bf71d5da0 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/enrich/delete_policy.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/enrich/delete_policy.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Time] :master_timeout Timeout for processing on master node
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-enrich-policy-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/delete-enrich-policy-api.html
         #
         def delete_policy(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'enrich.delete_policy' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/enrich/execute_policy.rb b/elasticsearch-api/lib/elasticsearch/api/actions/enrich/execute_policy.rb
index f30444fefe..bae677dfd0 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/enrich/execute_policy.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/enrich/execute_policy.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Time] :master_timeout Timeout for processing on master node
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/execute-enrich-policy-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/execute-enrich-policy-api.html
         #
         def execute_policy(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'enrich.execute_policy' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/enrich/get_policy.rb b/elasticsearch-api/lib/elasticsearch/api/actions/enrich/get_policy.rb
index 802e5d1027..b8b8a7eacf 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/enrich/get_policy.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/enrich/get_policy.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Time] :master_timeout Timeout for processing on master node
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/get-enrich-policy-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-enrich-policy-api.html
         #
         def get_policy(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'enrich.get_policy' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/enrich/put_policy.rb b/elasticsearch-api/lib/elasticsearch/api/actions/enrich/put_policy.rb
index b93de33b2c..6993977c24 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/enrich/put_policy.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/enrich/put_policy.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The enrich policy to register (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/put-enrich-policy-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/put-enrich-policy-api.html
         #
         def put_policy(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'enrich.put_policy' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/enrich/stats.rb b/elasticsearch-api/lib/elasticsearch/api/actions/enrich/stats.rb
index 8a71c336d4..b9e8d12835 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/enrich/stats.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/enrich/stats.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Time] :master_timeout Timeout for processing on master node
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/enrich-stats-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/enrich-stats-api.html
         #
         def stats(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'enrich.stats' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/eql/delete.rb b/elasticsearch-api/lib/elasticsearch/api/actions/eql/delete.rb
index d0a794a594..b32d9fa505 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/eql/delete.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/eql/delete.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [String] :id The async search ID
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/eql-search-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/eql-search-api.html
         #
         def delete(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'eql.delete' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/eql/get.rb b/elasticsearch-api/lib/elasticsearch/api/actions/eql/get.rb
index 87341090a1..59dfdb4202 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/eql/get.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/eql/get.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Time] :keep_alive Update the time interval in which the results (partial or final) for this search will be available
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/eql-search-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/eql-search-api.html
         #
         def get(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'eql.get' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/eql/get_status.rb b/elasticsearch-api/lib/elasticsearch/api/actions/eql/get_status.rb
index 06e4d98460..d4dd918e39 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/eql/get_status.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/eql/get_status.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [String] :id The async search ID
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/eql-search-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/eql-search-api.html
         #
         def get_status(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'eql.get_status' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/eql/search.rb b/elasticsearch-api/lib/elasticsearch/api/actions/eql/search.rb
index 097aa24509..e4d70379c0 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/eql/search.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/eql/search.rb
@@ -28,10 +28,16 @@ module Actions
         # @option arguments [Time] :wait_for_completion_timeout Specify the time that the request should block waiting for the final response
         # @option arguments [Boolean] :keep_on_completion Control whether the response should be stored in the cluster if it completed within the provided [wait_for_completion] time (default: false)
         # @option arguments [Time] :keep_alive Update the time interval in which the results (partial or final) for this search will be available
+        # @option arguments [Boolean] :allow_partial_search_results Control whether the query should keep running in case of shard failures, and return partial results
+        # @option arguments [Boolean] :allow_partial_sequence_results Control whether a sequence query should return partial results or no results at all in case of shard failures. This option has effect only if [allow_partial_search_results] is true.
+        # @option arguments [Boolean] :ccs_minimize_roundtrips Indicates whether network round-trips should be minimized as part of cross-cluster search requests execution
+        # @option arguments [Boolean] :ignore_unavailable Whether specified concrete indices should be ignored when unavailable (missing or closed)
+        # @option arguments [Boolean] :allow_no_indices Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
+        # @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)
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Eql request body. Use the `query` to limit the query scope. (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/eql-search-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/eql-search-api.html
         #
         def search(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'eql.search' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/esql/async_query.rb b/elasticsearch-api/lib/elasticsearch/api/actions/esql/async_query.rb
index fadffc40ef..51e6f17abc 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/esql/async_query.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/esql/async_query.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Use the `query` element to start a query. Use `columnar` to format the answer. (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/esql-async-query-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/esql-async-query-api.html
         #
         def async_query(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'esql.async_query' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/esql/async_query_delete.rb b/elasticsearch-api/lib/elasticsearch/api/actions/esql/async_query_delete.rb
new file mode 100644
index 0000000000..7df686b9ba
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/esql/async_query_delete.rb
@@ -0,0 +1,60 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Esql
+      module Actions
+        # Delete an async query request given its ID.
+        #
+        # @option arguments [String] :id The async query ID
+        # @option arguments [Hash] :headers Custom HTTP headers
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/esql-async-query-delete-api.html
+        #
+        def async_query_delete(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'esql.async_query_delete' }
+
+          defined_params = [:id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'id' missing" unless arguments[:id]
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = nil
+
+          _id = arguments.delete(:id)
+
+          method = Elasticsearch::API::HTTP_DELETE
+          path   = "_query/async/#{Utils.__listify(_id)}"
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/esql/async_query_get.rb b/elasticsearch-api/lib/elasticsearch/api/actions/esql/async_query_get.rb
index 4d59504018..06e03e12e4 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/esql/async_query_get.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/esql/async_query_get.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Boolean] :drop_null_columns Should entirely null columns be removed from the results? Their name and type will be returning in a new `all_columns` section.
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/esql-async-query-get-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/esql-async-query-get-api.html
         #
         def async_query_get(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'esql.async_query_get' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/esql/async_query_stop.rb b/elasticsearch-api/lib/elasticsearch/api/actions/esql/async_query_stop.rb
new file mode 100644
index 0000000000..fbcd4e27ca
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/esql/async_query_stop.rb
@@ -0,0 +1,60 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Esql
+      module Actions
+        # Stops a previously submitted async query request given its ID and collects the results.
+        #
+        # @option arguments [String] :id The async query ID
+        # @option arguments [Hash] :headers Custom HTTP headers
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/esql-async-query-stop-api.html
+        #
+        def async_query_stop(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'esql.async_query_stop' }
+
+          defined_params = [:id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'id' missing" unless arguments[:id]
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = nil
+
+          _id = arguments.delete(:id)
+
+          method = Elasticsearch::API::HTTP_POST
+          path   = "_query/async/#{Utils.__listify(_id)}/stop"
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/esql/query.rb b/elasticsearch-api/lib/elasticsearch/api/actions/esql/query.rb
index 0d722a7f72..dd91bdb3ed 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/esql/query.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/esql/query.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Use the `query` element to start a query. Use `columnar` to format the answer. (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/esql-query-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/esql-query-api.html
         #
         def query(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'esql.query' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/exists.rb b/elasticsearch-api/lib/elasticsearch/api/actions/exists.rb
index aaf756abe1..b780498e66 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/exists.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/exists.rb
@@ -37,7 +37,7 @@ module Actions
       # @option arguments [String] :version_type Specific version type (options: internal, external, external_gte)
       # @option arguments [Hash] :headers Custom HTTP headers
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-get.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/docs-get.html
       #
       def exists(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'exists' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/exists_source.rb b/elasticsearch-api/lib/elasticsearch/api/actions/exists_source.rb
index ce01cb5e22..021a8457c5 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/exists_source.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/exists_source.rb
@@ -36,7 +36,7 @@ module Actions
       # @option arguments [String] :version_type Specific version type (options: internal, external, external_gte)
       # @option arguments [Hash] :headers Custom HTTP headers
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-get.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/docs-get.html
       #
       def exists_source(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'exists_source' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/explain.rb b/elasticsearch-api/lib/elasticsearch/api/actions/explain.rb
index b78f9160a5..e0ec1bedb3 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/explain.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/explain.rb
@@ -40,7 +40,7 @@ module Actions
       # @option arguments [Hash] :headers Custom HTTP headers
       # @option arguments [Hash] :body The query definition using the Query DSL
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-explain.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/search-explain.html
       #
       def explain(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'explain' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/features/get_features.rb b/elasticsearch-api/lib/elasticsearch/api/actions/features/get_features.rb
index 65c71bc792..f92d973cf6 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/features/get_features.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/features/get_features.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/get-features-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-features-api.html
         #
         def get_features(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'features.get_features' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/features/reset_features.rb b/elasticsearch-api/lib/elasticsearch/api/actions/features/reset_features.rb
index 63ea0c5e85..7aed518c0b 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/features/reset_features.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/features/reset_features.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/modules-snapshots.html
         #
         def reset_features(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'features.reset_features' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/field_caps.rb b/elasticsearch-api/lib/elasticsearch/api/actions/field_caps.rb
index 0ad6237bb3..f2bbcad1b1 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/field_caps.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/field_caps.rb
@@ -35,7 +35,7 @@ module Actions
       # @option arguments [Hash] :headers Custom HTTP headers
       # @option arguments [Hash] :body An index filter specified with the Query DSL
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-field-caps.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/search-field-caps.html
       #
       def field_caps(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'field_caps' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/fleet/global_checkpoints.rb b/elasticsearch-api/lib/elasticsearch/api/actions/fleet/global_checkpoints.rb
index 7768f2c53d..961c371659 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/fleet/global_checkpoints.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/fleet/global_checkpoints.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [Time] :timeout Timeout to wait for global checkpoint to advance
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/get-global-checkpoints.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-global-checkpoints.html
         #
         def global_checkpoints(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'fleet.global_checkpoints' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/get.rb b/elasticsearch-api/lib/elasticsearch/api/actions/get.rb
index 3b956abf07..3f0ce38e46 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/get.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/get.rb
@@ -38,7 +38,7 @@ module Actions
       # @option arguments [String] :version_type Specific version type (options: internal, external, external_gte)
       # @option arguments [Hash] :headers Custom HTTP headers
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-get.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/docs-get.html
       #
       def get(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'get' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/get_script.rb b/elasticsearch-api/lib/elasticsearch/api/actions/get_script.rb
index d1a4baf476..e70e38de2f 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/get_script.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/get_script.rb
@@ -27,7 +27,7 @@ module Actions
       # @option arguments [Time] :master_timeout Specify timeout for connection to master
       # @option arguments [Hash] :headers Custom HTTP headers
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/modules-scripting.html
       #
       def get_script(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'get_script' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/get_script_context.rb b/elasticsearch-api/lib/elasticsearch/api/actions/get_script_context.rb
index 845762ab86..3064cbe415 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/get_script_context.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/get_script_context.rb
@@ -25,7 +25,7 @@ module Actions
       #
       # @option arguments [Hash] :headers Custom HTTP headers
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/painless/current/painless-contexts.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/painless/8.18/painless-contexts.html
       #
       def get_script_context(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'get_script_context' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/get_script_languages.rb b/elasticsearch-api/lib/elasticsearch/api/actions/get_script_languages.rb
index d8f9d8d77b..63a6c055f5 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/get_script_languages.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/get_script_languages.rb
@@ -25,7 +25,7 @@ module Actions
       #
       # @option arguments [Hash] :headers Custom HTTP headers
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/modules-scripting.html
       #
       def get_script_languages(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'get_script_languages' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/get_source.rb b/elasticsearch-api/lib/elasticsearch/api/actions/get_source.rb
index e66b8c5e6c..94e037c2e9 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/get_source.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/get_source.rb
@@ -36,7 +36,7 @@ module Actions
       # @option arguments [String] :version_type Specific version type (options: internal, external, external_gte)
       # @option arguments [Hash] :headers Custom HTTP headers
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-get.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/docs-get.html
       #
       def get_source(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'get_source' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/graph/explore.rb b/elasticsearch-api/lib/elasticsearch/api/actions/graph/explore.rb
index 64306ce433..357587ac57 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/graph/explore.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/graph/explore.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Graph Query DSL
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/graph-explore-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/graph-explore-api.html
         #
         def explore(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'graph.explore' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/health_report.rb b/elasticsearch-api/lib/elasticsearch/api/actions/health_report.rb
index 7849b26638..cbd7d8ca56 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/health_report.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/health_report.rb
@@ -29,7 +29,7 @@ module Actions
       # @option arguments [Integer] :size Limit the number of affected resources the health API returns
       # @option arguments [Hash] :headers Custom HTTP headers
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/health-api.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/health-api.html
       #
       def health_report(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'health_report' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/index.rb b/elasticsearch-api/lib/elasticsearch/api/actions/index.rb
index d691aa13d9..40ab6eae4e 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/index.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/index.rb
@@ -37,10 +37,11 @@ module Actions
       # @option arguments [String] :pipeline The pipeline id to preprocess incoming documents with
       # @option arguments [Boolean] :require_alias When true, requires destination to be an alias. Default is false
       # @option arguments [Boolean] :require_data_stream When true, requires the destination to be a data stream (existing or to-be-created). Default is false
+      # @option arguments [Boolean] :include_source_on_error True or false if to include the document source in the error message in case of parsing errors. Defaults to true.
       # @option arguments [Hash] :headers Custom HTTP headers
       # @option arguments [Hash] :body The document (*Required*)
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-index_.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/docs-index_.html
       #
       def index(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'index' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/delete_lifecycle.rb b/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/delete_lifecycle.rb
index 824ecf28ed..93e8677f5a 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/delete_lifecycle.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/delete_lifecycle.rb
@@ -25,9 +25,11 @@ module Actions
         # Deletes the specified lifecycle policy definition. A currently used policy cannot be deleted.
         #
         # @option arguments [String] :policy The name of the index lifecycle policy
+        # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
+        # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ilm-delete-lifecycle.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ilm-delete-lifecycle.html
         #
         def delete_lifecycle(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ilm.delete_lifecycle' }
@@ -48,7 +50,7 @@ def delete_lifecycle(arguments = {})
 
           method = Elasticsearch::API::HTTP_DELETE
           path   = "_ilm/policy/#{Utils.__listify(_policy)}"
-          params = {}
+          params = Utils.process_params(arguments)
 
           Elasticsearch::API::Response.new(
             perform_request(method, path, params, body, headers, request_opts)
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/explain_lifecycle.rb b/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/explain_lifecycle.rb
index 5480ccb531..bbc0da52f4 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/explain_lifecycle.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/explain_lifecycle.rb
@@ -27,9 +27,10 @@ module Actions
         # @option arguments [String] :index The name of the index to explain
         # @option arguments [Boolean] :only_managed filters the indices included in the response to ones managed by ILM
         # @option arguments [Boolean] :only_errors filters the indices included in the response to ones in an ILM error state, implies only_managed
+        # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ilm-explain-lifecycle.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ilm-explain-lifecycle.html
         #
         def explain_lifecycle(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ilm.explain_lifecycle' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/get_lifecycle.rb b/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/get_lifecycle.rb
index dc898b2659..385b0eb08d 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/get_lifecycle.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/get_lifecycle.rb
@@ -25,9 +25,11 @@ module Actions
         # Returns the specified policy definition. Includes the policy version and last modified date.
         #
         # @option arguments [String] :policy The name of the index lifecycle policy
+        # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
+        # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ilm-get-lifecycle.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ilm-get-lifecycle.html
         #
         def get_lifecycle(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ilm.get_lifecycle' }
@@ -50,7 +52,7 @@ def get_lifecycle(arguments = {})
                    else
                      '_ilm/policy'
                    end
-          params = {}
+          params = Utils.process_params(arguments)
 
           Elasticsearch::API::Response.new(
             perform_request(method, path, params, body, headers, request_opts)
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/get_status.rb b/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/get_status.rb
index 0cf68bc5c1..b061c9ae02 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/get_status.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/get_status.rb
@@ -26,7 +26,7 @@ module Actions
         #
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ilm-get-status.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ilm-get-status.html
         #
         def get_status(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ilm.get_status' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/migrate_to_data_tiers.rb b/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/migrate_to_data_tiers.rb
index c75e5a8bb0..634661bb70 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/migrate_to_data_tiers.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/migrate_to_data_tiers.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Optionally specify a legacy index template name to delete and optionally specify a node attribute name used for index shard routing (defaults to "data")
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ilm-migrate-to-data-tiers.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ilm-migrate-to-data-tiers.html
         #
         def migrate_to_data_tiers(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ilm.migrate_to_data_tiers' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/move_to_step.rb b/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/move_to_step.rb
index 212cb8efc6..51da420fc7 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/move_to_step.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/move_to_step.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The new lifecycle step to move to
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ilm-move-to-step.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ilm-move-to-step.html
         #
         def move_to_step(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ilm.move_to_step' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/put_lifecycle.rb b/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/put_lifecycle.rb
index da5fcecdfc..f54c7a3de0 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/put_lifecycle.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/put_lifecycle.rb
@@ -25,10 +25,12 @@ module Actions
         # Creates a lifecycle policy
         #
         # @option arguments [String] :policy The name of the index lifecycle policy
+        # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
+        # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The lifecycle policy definition to register
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ilm-put-lifecycle.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ilm-put-lifecycle.html
         #
         def put_lifecycle(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ilm.put_lifecycle' }
@@ -49,7 +51,7 @@ def put_lifecycle(arguments = {})
 
           method = Elasticsearch::API::HTTP_PUT
           path   = "_ilm/policy/#{Utils.__listify(_policy)}"
-          params = {}
+          params = Utils.process_params(arguments)
 
           Elasticsearch::API::Response.new(
             perform_request(method, path, params, body, headers, request_opts)
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/remove_policy.rb b/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/remove_policy.rb
index 96eaed6977..f1df27cf42 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/remove_policy.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/remove_policy.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [String] :index The name of the index to remove policy on
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ilm-remove-policy.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ilm-remove-policy.html
         #
         def remove_policy(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ilm.remove_policy' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/retry.rb b/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/retry.rb
index 61fbb1b173..805ee14969 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/retry.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/retry.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [String] :index The name of the indices (comma-separated) whose failed lifecycle step is to be retry
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ilm-retry-policy.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ilm-retry-policy.html
         #
         def retry(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ilm.retry' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/start.rb b/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/start.rb
index 0f30639b52..908ff8751c 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/start.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/start.rb
@@ -24,9 +24,11 @@ module IndexLifecycleManagement
       module Actions
         # Start the index lifecycle management (ILM) plugin.
         #
+        # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
+        # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ilm-start.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ilm-start.html
         #
         def start(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ilm.start' }
@@ -38,7 +40,7 @@ def start(arguments = {})
 
           method = Elasticsearch::API::HTTP_POST
           path   = '_ilm/start'
-          params = {}
+          params = Utils.process_params(arguments)
 
           Elasticsearch::API::Response.new(
             perform_request(method, path, params, body, headers, request_opts)
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/stop.rb b/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/stop.rb
index 23e0761b67..1bfae4b2cc 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/stop.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/index_lifecycle_management/stop.rb
@@ -24,9 +24,11 @@ module IndexLifecycleManagement
       module Actions
         # Halts all lifecycle management operations and stops the index lifecycle management (ILM) plugin
         #
+        # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
+        # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ilm-stop.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ilm-stop.html
         #
         def stop(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ilm.stop' }
@@ -38,7 +40,7 @@ def stop(arguments = {})
 
           method = Elasticsearch::API::HTTP_POST
           path   = '_ilm/stop'
-          params = {}
+          params = Utils.process_params(arguments)
 
           Elasticsearch::API::Response.new(
             perform_request(method, path, params, body, headers, request_opts)
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/add_block.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/add_block.rb
index b04cfd2b68..0fbf848b62 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/add_block.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/add_block.rb
@@ -33,7 +33,7 @@ module Actions
         # @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)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules-blocks.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/index-modules-blocks.html
         #
         def add_block(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.add_block' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/analyze.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/analyze.rb
index 00e736136e..8e2fc8ab52 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/analyze.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/analyze.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Define analyzer/tokenizer parameters and the text on which the analysis should be performed
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-analyze.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-analyze.html
         #
         def analyze(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.analyze' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/clear_cache.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/clear_cache.rb
index 0e214b6e48..f64d230b0e 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/clear_cache.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/clear_cache.rb
@@ -34,7 +34,7 @@ module Actions
         # @option arguments [Boolean] :request Clear request cache
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-clearcache.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-clearcache.html
         #
         def clear_cache(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.clear_cache' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/clone.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/clone.rb
index fd336f75ee..7763673787 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/clone.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/clone.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The configuration for the target index (`settings` and `aliases`)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-clone-index.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-clone-index.html
         #
         def clone(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.clone' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/close.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/close.rb
index e3533f1a27..3d4f5ad78c 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/close.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/close.rb
@@ -33,7 +33,7 @@ module Actions
         # @option arguments [String] :wait_for_active_shards Sets the number of active shards to wait for before the operation returns.
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-open-close.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-open-close.html
         #
         def close(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.close' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/create.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/create.rb
index 0135beabd9..4ca357e787 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/create.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/create.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The configuration for the index (`settings` and `mappings`)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-create-index.html
         #
         def create(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.create' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/create_data_stream.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/create_data_stream.rb
index 66da1e830c..fb41ed7662 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/create_data_stream.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/create_data_stream.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Time] :master_timeout Specify timeout for connection to master
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/data-streams.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/data-streams.html
         #
         def create_data_stream(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.create_data_stream' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/data_streams_stats.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/data_streams_stats.rb
index 4d7087632d..ad5b84611f 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/data_streams_stats.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/data_streams_stats.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [List] :name A comma-separated list of data stream names; use `_all` or empty string to perform the operation on all data streams
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/data-streams.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/data-streams.html
         #
         def data_streams_stats(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.data_streams_stats' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/delete.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/delete.rb
index bb53aaa0cc..275516ede1 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/delete.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/delete.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [String] :expand_wildcards Whether wildcard expressions should get expanded to open, closed, or hidden indices (options: open, closed, hidden, none, all)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-delete-index.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-delete-index.html
         #
         def delete(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.delete' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/delete_alias.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/delete_alias.rb
index abfd6ebed6..8968176281 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/delete_alias.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/delete_alias.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Time] :master_timeout Specify timeout for connection to master
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-aliases.html
         #
         def delete_alias(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.delete_alias' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/delete_data_lifecycle.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/delete_data_lifecycle.rb
index f8b248bb2a..4cf326305e 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/delete_data_lifecycle.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/delete_data_lifecycle.rb
@@ -23,10 +23,6 @@ module API
     module Indices
       module Actions
         # Deletes the data stream lifecycle of the selected data streams.
-        # This functionality is Experimental and may be changed or removed
-        # completely in a future release. Elastic will take a best effort approach
-        # to fix any issues, but experimental features are not subject to the
-        # support SLA of official GA features.
         #
         # @option arguments [List] :name A comma-separated list of data streams of which the data stream lifecycle will be deleted; use `*` to get all data streams
         # @option arguments [String] :expand_wildcards Whether wildcard expressions should get expanded to open or closed indices (default: open) (options: open, closed, hidden, none, all)
@@ -34,7 +30,7 @@ module Actions
         # @option arguments [Time] :master_timeout Specify timeout for connection to master
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/data-streams-delete-lifecycle.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/data-streams-delete-lifecycle.html
         #
         def delete_data_lifecycle(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.delete_data_lifecycle' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/delete_data_stream.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/delete_data_stream.rb
index c773bbc37a..a571904e31 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/delete_data_stream.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/delete_data_stream.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Time] :master_timeout Specify timeout for connection to master
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/data-streams.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/data-streams.html
         #
         def delete_data_stream(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.delete_data_stream' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/delete_index_template.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/delete_index_template.rb
index e4e20fad6b..ed3ff11ed2 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/delete_index_template.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/delete_index_template.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Time] :master_timeout Specify timeout for connection to master
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-delete-template.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-delete-template.html
         #
         def delete_index_template(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.delete_index_template' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/delete_template.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/delete_template.rb
index ec10ca44aa..0473b5f36c 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/delete_template.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/delete_template.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Time] :master_timeout Specify timeout for connection to master
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-delete-template-v1.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-delete-template-v1.html
         #
         def delete_template(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.delete_template' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/disk_usage.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/disk_usage.rb
index cd3308a1b5..d7912d4da8 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/disk_usage.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/disk_usage.rb
@@ -36,7 +36,7 @@ module Actions
         # @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)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-disk-usage.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-disk-usage.html
         #
         def disk_usage(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.disk_usage' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/downsample.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/downsample.rb
index b08ac1ecee..fbf06aece2 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/downsample.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/downsample.rb
@@ -33,7 +33,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The downsampling configuration (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/xpack-rollup.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/xpack-rollup.html
         #
         def downsample(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.downsample' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/exists.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/exists.rb
index 34e9b34a54..981b64322b 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/exists.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/exists.rb
@@ -33,7 +33,7 @@ module Actions
         # @option arguments [Boolean] :include_defaults Whether to return all default setting for each of the indices.
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-exists.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-exists.html
         #
         def exists(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.exists' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/exists_alias.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/exists_alias.rb
index 597a9e010d..bb8b25a8c0 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/exists_alias.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/exists_alias.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Boolean] :local Return local information, do not retrieve the state from master node (default: false)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-aliases.html
         #
         def exists_alias(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.exists_alias' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/exists_index_template.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/exists_index_template.rb
index b7c2fbb12a..4ba9c8e07d 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/exists_index_template.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/exists_index_template.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Boolean] :local Return local information, do not retrieve the state from master node (default: false)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/index-templates.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/index-templates.html
         #
         def exists_index_template(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.exists_index_template' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/exists_template.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/exists_template.rb
index 3d1defc508..794f118ecc 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/exists_template.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/exists_template.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Boolean] :local Return local information, do not retrieve the state from master node (default: false)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-template-exists-v1.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-template-exists-v1.html
         #
         def exists_template(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.exists_template' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/explain_data_lifecycle.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/explain_data_lifecycle.rb
index c155af80e9..34e6f91075 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/explain_data_lifecycle.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/explain_data_lifecycle.rb
@@ -23,17 +23,13 @@ module API
     module Indices
       module Actions
         # Retrieves information about the index's current data stream lifecycle, such as any potential encountered error, time since creation etc.
-        # This functionality is Experimental and may be changed or removed
-        # completely in a future release. Elastic will take a best effort approach
-        # to fix any issues, but experimental features are not subject to the
-        # support SLA of official GA features.
         #
         # @option arguments [String] :index The name of the index to explain
         # @option arguments [Boolean] :include_defaults indicates if the API should return the default values the system uses for the index's lifecycle
         # @option arguments [Time] :master_timeout Specify timeout for connection to master
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/data-streams-explain-lifecycle.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/data-streams-explain-lifecycle.html
         #
         def explain_data_lifecycle(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.explain_data_lifecycle' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/field_usage_stats.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/field_usage_stats.rb
index aaac263510..efb788a55e 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/field_usage_stats.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/field_usage_stats.rb
@@ -35,7 +35,7 @@ module Actions
         # @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)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/field-usage-stats.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/field-usage-stats.html
         #
         def field_usage_stats(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.field_usage_stats' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/flush.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/flush.rb
index 0e92583735..e9eb8b8f6f 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/flush.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/flush.rb
@@ -32,7 +32,7 @@ module Actions
         # @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)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-flush.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-flush.html
         #
         def flush(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.flush' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/forcemerge.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/forcemerge.rb
index 6ea744edc3..e0561154e1 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/forcemerge.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/forcemerge.rb
@@ -34,7 +34,7 @@ module Actions
         # @option arguments [Boolean] :wait_for_completion Should the request wait until the force merge is completed.
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-forcemerge.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-forcemerge.html
         #
         def forcemerge(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.forcemerge' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/get.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/get.rb
index 33836e4e6c..ca7b5e5b73 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/get.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/get.rb
@@ -35,7 +35,7 @@ module Actions
         # @option arguments [Time] :master_timeout Specify timeout for connection to master
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-index.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-get-index.html
         #
         def get(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.get' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_alias.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_alias.rb
index 4e598e33a8..b7b80776b8 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_alias.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_alias.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Boolean] :local Return local information, do not retrieve the state from master node (default: false)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-aliases.html
         #
         def get_alias(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.get_alias' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_data_lifecycle.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_data_lifecycle.rb
index 3661340ee5..bd878829ae 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_data_lifecycle.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_data_lifecycle.rb
@@ -23,10 +23,6 @@ module API
     module Indices
       module Actions
         # Returns the data stream lifecycle of the selected data streams.
-        # This functionality is Experimental and may be changed or removed
-        # completely in a future release. Elastic will take a best effort approach
-        # to fix any issues, but experimental features are not subject to the
-        # support SLA of official GA features.
         #
         # @option arguments [List] :name A comma-separated list of data streams to get; use `*` to get all data streams
         # @option arguments [String] :expand_wildcards Whether wildcard expressions should get expanded to open or closed indices (default: open) (options: open, closed, hidden, none, all)
@@ -34,7 +30,7 @@ module Actions
         # @option arguments [Time] :master_timeout Specify timeout for connection to master
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/data-streams-get-lifecycle.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/data-streams-get-lifecycle.html
         #
         def get_data_lifecycle(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.get_data_lifecycle' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_data_lifecycle_stats.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_data_lifecycle_stats.rb
new file mode 100644
index 0000000000..ed89c7d739
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_data_lifecycle_stats.rb
@@ -0,0 +1,50 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Indices
+      module Actions
+        # Get data stream lifecycle statistics.
+        #
+        # @option arguments [Hash] :headers Custom HTTP headers
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/data-streams-get-lifecycle-stats.html
+        #
+        def get_data_lifecycle_stats(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'indices.get_data_lifecycle_stats' }
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body   = nil
+
+          method = Elasticsearch::API::HTTP_GET
+          path   = '_lifecycle/stats'
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_data_stream.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_data_stream.rb
index 5e1ff6ff08..e0f233dbdd 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_data_stream.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_data_stream.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [Boolean] :verbose Whether the maximum timestamp for each data stream should be calculated and returned (default: false)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/data-streams.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/data-streams.html
         #
         def get_data_stream(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.get_data_stream' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_field_mapping.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_field_mapping.rb
index f4aad0249d..3846ad5ca1 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_field_mapping.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_field_mapping.rb
@@ -33,7 +33,7 @@ module Actions
         # @option arguments [Boolean] :local Return local information, do not retrieve the state from master node (default: false)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-field-mapping.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-get-field-mapping.html
         #
         def get_field_mapping(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.get_field_mapping' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_index_template.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_index_template.rb
index 620537f86c..eb8261d702 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_index_template.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_index_template.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [Boolean] :include_defaults Return all relevant default configurations for the index template (default: false)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-template.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-get-template.html
         #
         def get_index_template(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.get_index_template' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_mapping.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_mapping.rb
index 8160fd20b3..27707fd74c 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_mapping.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_mapping.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Boolean] :local Return local information, do not retrieve the state from master node (default: false) *Deprecated*
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-mapping.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-get-mapping.html
         #
         def get_mapping(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.get_mapping' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_settings.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_settings.rb
index a388991927..94f0639c70 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_settings.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_settings.rb
@@ -35,7 +35,7 @@ module Actions
         # @option arguments [Boolean] :include_defaults Whether to return all default setting for each of the indices.
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-settings.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-get-settings.html
         #
         def get_settings(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.get_settings' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_template.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_template.rb
index 2a19f7f48b..99b22fc456 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_template.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/get_template.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Boolean] :local Return local information, do not retrieve the state from master node (default: false)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-template-v1.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-get-template-v1.html
         #
         def get_template(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.get_template' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/migrate_to_data_stream.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/migrate_to_data_stream.rb
index 7b70036ced..042b095e0a 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/migrate_to_data_stream.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/migrate_to_data_stream.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Time] :master_timeout Specify timeout for connection to master
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/data-streams.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/data-streams.html
         #
         def migrate_to_data_stream(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.migrate_to_data_stream' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/modify_data_stream.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/modify_data_stream.rb
index eb8dedc08e..9a95faac36 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/modify_data_stream.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/modify_data_stream.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The data stream modifications (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/data-streams.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/data-streams.html
         #
         def modify_data_stream(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.modify_data_stream' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/open.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/open.rb
index b1b6844cc0..a75f12e76e 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/open.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/open.rb
@@ -33,7 +33,7 @@ module Actions
         # @option arguments [String] :wait_for_active_shards Sets the number of active shards to wait for before the operation returns.
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-open-close.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-open-close.html
         #
         def open(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.open' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/promote_data_stream.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/promote_data_stream.rb
index 1a55479ee6..20e1010bf3 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/promote_data_stream.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/promote_data_stream.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Time] :master_timeout Specify timeout for connection to master
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/data-streams.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/data-streams.html
         #
         def promote_data_stream(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.promote_data_stream' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/put_alias.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/put_alias.rb
index d18dce3386..0472818395 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/put_alias.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/put_alias.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The settings for the alias, such as `routing` or `filter`
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-aliases.html
         #
         def put_alias(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.put_alias' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/put_data_lifecycle.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/put_data_lifecycle.rb
index f64a67418b..a3f0bc4543 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/put_data_lifecycle.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/put_data_lifecycle.rb
@@ -23,10 +23,6 @@ module API
     module Indices
       module Actions
         # Updates the data stream lifecycle of the selected data streams.
-        # This functionality is Experimental and may be changed or removed
-        # completely in a future release. Elastic will take a best effort approach
-        # to fix any issues, but experimental features are not subject to the
-        # support SLA of official GA features.
         #
         # @option arguments [List] :name A comma-separated list of data streams whose lifecycle will be updated; use `*` to set the lifecycle to all data streams
         # @option arguments [String] :expand_wildcards Whether wildcard expressions should get expanded to open or closed indices (default: open) (options: open, closed, hidden, none, all)
@@ -35,7 +31,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The data stream lifecycle configuration that consist of the data retention
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/data-streams-put-lifecycle.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/data-streams-put-lifecycle.html
         #
         def put_data_lifecycle(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.put_data_lifecycle' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/put_index_template.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/put_index_template.rb
index 061f55edbc..a5030e4aad 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/put_index_template.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/put_index_template.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The template definition (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-template.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-put-template.html
         #
         def put_index_template(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.put_index_template' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/put_mapping.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/put_mapping.rb
index c0c85affa7..7a0b025cb6 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/put_mapping.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/put_mapping.rb
@@ -34,7 +34,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The mapping definition (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-put-mapping.html
         #
         def put_mapping(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.put_mapping' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/put_settings.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/put_settings.rb
index 887c817ab4..aa9c6f2404 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/put_settings.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/put_settings.rb
@@ -36,7 +36,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The index settings to be updated (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-update-settings.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-update-settings.html
         #
         def put_settings(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.put_settings' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/put_template.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/put_template.rb
index 93888e5236..907d50d55c 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/put_template.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/put_template.rb
@@ -27,11 +27,12 @@ module Actions
         # @option arguments [String] :name The name of the template
         # @option arguments [Number] :order The order for this template when merging multiple matching ones (higher numbers are merged later, overriding the lower numbers)
         # @option arguments [Boolean] :create Whether the index template should only be added if new or can also replace an existing one
+        # @option arguments [String] :cause User defined reason for creating/updating the index template
         # @option arguments [Time] :master_timeout Specify timeout for connection to master
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The template definition (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates-v1.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-templates-v1.html
         #
         def put_template(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.put_template' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/recovery.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/recovery.rb
index c599681e96..1d308586b6 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/recovery.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/recovery.rb
@@ -27,9 +27,12 @@ module Actions
         # @option arguments [List] :index A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
         # @option arguments [Boolean] :detailed Whether to display detailed information about shard recovery
         # @option arguments [Boolean] :active_only Display only those recoveries that are currently on-going
+        # @option arguments [Boolean] :ignore_unavailable Whether specified concrete indices should be ignored when unavailable (missing or closed)
+        # @option arguments [Boolean] :allow_no_indices Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
+        # @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)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-recovery.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-recovery.html
         #
         def recovery(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.recovery' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/refresh.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/refresh.rb
index 732d10d415..ed85a68ffd 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/refresh.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/refresh.rb
@@ -30,7 +30,7 @@ module Actions
         # @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)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-refresh.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-refresh.html
         #
         def refresh(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.refresh' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/reload_search_analyzers.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/reload_search_analyzers.rb
index 3fb1dcf414..d8d3bf30b6 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/reload_search_analyzers.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/reload_search_analyzers.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [String] :resource changed resource to reload analyzers from if applicable
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-reload-analyzers.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-reload-analyzers.html
         #
         def reload_search_analyzers(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.reload_search_analyzers' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/resolve_cluster.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/resolve_cluster.rb
index 9f399ef567..f48c987ddf 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/resolve_cluster.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/resolve_cluster.rb
@@ -22,16 +22,17 @@ module Elasticsearch
   module API
     module Indices
       module Actions
-        # Resolves the specified index expressions to return information about each cluster, including the local cluster, if included.
+        # Resolves the specified index expressions to return information about each cluster. If no index expression is provided, this endpoint will return information about all the remote clusters that are configured on the local cluster.
         #
         # @option arguments [List] :name A comma-separated list of cluster:index names or wildcard expressions
-        # @option arguments [Boolean] :ignore_unavailable Whether specified concrete indices should be ignored when unavailable (missing or closed)
-        # @option arguments [Boolean] :ignore_throttled Whether specified concrete, expanded or aliased indices should be ignored when throttled
-        # @option arguments [Boolean] :allow_no_indices Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-        # @option arguments [String] :expand_wildcards Whether wildcard expressions should get expanded to open or closed indices (default: open) (options: open, closed, hidden, none, all)
+        # @option arguments [Boolean] :ignore_unavailable Whether specified concrete indices should be ignored when unavailable (missing or closed). Only allowed when providing an index expression.
+        # @option arguments [Boolean] :ignore_throttled Whether specified concrete, expanded or aliased indices should be ignored when throttled. Only allowed when providing an index expression.
+        # @option arguments [Boolean] :allow_no_indices Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified). Only allowed when providing an index expression.
+        # @option arguments [String] :expand_wildcards Whether wildcard expressions should get expanded to open or closed indices (default: open). Only allowed when providing an index expression. (options: open, closed, hidden, none, all)
+        # @option arguments [Time] :timeout The maximum time to wait for remote clusters to respond
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-resolve-cluster-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-resolve-cluster-api.html
         #
         def resolve_cluster(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.resolve_cluster' }
@@ -41,8 +42,6 @@ def resolve_cluster(arguments = {})
           end
           request_opts[:defined_params] = defined_params unless defined_params.empty?
 
-          raise ArgumentError, "Required argument 'name' missing" unless arguments[:name]
-
           arguments = arguments.clone
           headers = arguments.delete(:headers) || {}
 
@@ -51,7 +50,11 @@ def resolve_cluster(arguments = {})
           _name = arguments.delete(:name)
 
           method = Elasticsearch::API::HTTP_GET
-          path   = "_resolve/cluster/#{Utils.__listify(_name)}"
+          path   = if _name
+                     "_resolve/cluster/#{Utils.__listify(_name)}"
+                   else
+                     '_resolve/cluster'
+                   end
           params = Utils.process_params(arguments)
 
           Elasticsearch::API::Response.new(
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/resolve_index.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/resolve_index.rb
index 9c6e38013d..92760ddaac 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/resolve_index.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/resolve_index.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Boolean] :allow_no_indices Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-resolve-index-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-resolve-index-api.html
         #
         def resolve_index(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.resolve_index' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/rollover.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/rollover.rb
index 7ddd3b5df0..c77130b964 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/rollover.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/rollover.rb
@@ -32,11 +32,10 @@ module Actions
         # @option arguments [Time] :master_timeout Specify timeout for connection to master
         # @option arguments [String] :wait_for_active_shards Set the number of active shards to wait for on the newly created rollover index before the operation returns.
         # @option arguments [Boolean] :lazy If set to true, the rollover action will only mark a data stream to signal that it needs to be rolled over at the next write. Only allowed on data streams.
-        # @option arguments [Boolean] :target_failure_store If set to true, the rollover action will be applied on the failure store of the data stream.
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The conditions that needs to be met for executing rollover
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-rollover-index.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-rollover-index.html
         #
         def rollover(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.rollover' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/segments.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/segments.rb
index b29bb72c65..2f73de8a1e 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/segments.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/segments.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [Boolean] :verbose Includes detailed memory usage by Lucene. *Deprecated*
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-segments.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-segments.html
         #
         def segments(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.segments' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/shard_stores.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/shard_stores.rb
index 04000d4f7e..9434df2f27 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/shard_stores.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/shard_stores.rb
@@ -31,7 +31,7 @@ module Actions
         # @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)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-shards-stores.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-shards-stores.html
         #
         def shard_stores(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.shard_stores' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/shrink.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/shrink.rb
index 00a28b5ec1..31d31716c0 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/shrink.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/shrink.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The configuration for the target index (`settings` and `aliases`)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-shrink-index.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-shrink-index.html
         #
         def shrink(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.shrink' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/simulate_index_template.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/simulate_index_template.rb
index 3817f9f5ca..58272cdda4 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/simulate_index_template.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/simulate_index_template.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body New index template definition, which will be included in the simulation, as if it already exists in the system
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-simulate-index.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-simulate-index.html
         #
         def simulate_index_template(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.simulate_index_template' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/simulate_template.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/simulate_template.rb
index afb1e8306f..a6c2fb74f1 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/simulate_template.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/simulate_template.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body New index template definition to be simulated, if no index template name is specified
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-simulate-template.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-simulate-template.html
         #
         def simulate_template(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.simulate_template' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/split.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/split.rb
index 4bd7412a9c..e397141661 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/split.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/split.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The configuration for the target index (`settings` and `aliases`)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-split-index.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-split-index.html
         #
         def split(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.split' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/stats.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/stats.rb
index c054f9434a..ef4d11f854 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/stats.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/stats.rb
@@ -37,7 +37,7 @@ module Actions
         # @option arguments [Boolean] :forbid_closed_indices If set to false stats will also collected from closed indices if explicitly specified or if expand_wildcards expands to closed indices
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-stats.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-stats.html
         #
         def stats(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.stats' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/unfreeze.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/unfreeze.rb
index 6263d97b2b..3bab50252f 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/unfreeze.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/unfreeze.rb
@@ -38,7 +38,7 @@ module Actions
         # Deprecated since version 7.14.0
         #
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/unfreeze-index-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/unfreeze-index-api.html
         #
         def unfreeze(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.unfreeze' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/update_aliases.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/update_aliases.rb
index e7178802bf..b4d27fd581 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/update_aliases.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/update_aliases.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The definition of `actions` to perform (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-aliases.html
         #
         def update_aliases(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.update_aliases' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/indices/validate_query.rb b/elasticsearch-api/lib/elasticsearch/api/actions/indices/validate_query.rb
index 03a22a7bc7..3647fa8204 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/indices/validate_query.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/indices/validate_query.rb
@@ -40,7 +40,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The query definition specified with the Query DSL
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-validate.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/search-validate.html
         #
         def validate_query(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'indices.validate_query' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/inference/chat_completion_unified.rb b/elasticsearch-api/lib/elasticsearch/api/actions/inference/chat_completion_unified.rb
new file mode 100644
index 0000000000..c72c8ec1e6
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/inference/chat_completion_unified.rb
@@ -0,0 +1,61 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Inference
+      module Actions
+        # Perform chat completion inference
+        #
+        # @option arguments [String] :inference_id The inference Id
+        # @option arguments [Hash] :headers Custom HTTP headers
+        # @option arguments [Hash] :body The inference payload
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/chat-completion-inference.html
+        #
+        def chat_completion_unified(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'inference.chat_completion_unified' }
+
+          defined_params = [:inference_id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'inference_id' missing" unless arguments[:inference_id]
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = arguments.delete(:body)
+
+          _inference_id = arguments.delete(:inference_id)
+
+          method = Elasticsearch::API::HTTP_POST
+          path   = "_inference/chat_completion/#{Utils.__listify(_inference_id)}/_stream"
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/inference/completion.rb b/elasticsearch-api/lib/elasticsearch/api/actions/inference/completion.rb
new file mode 100644
index 0000000000..a66d427785
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/inference/completion.rb
@@ -0,0 +1,61 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Inference
+      module Actions
+        # Perform completion inference
+        #
+        # @option arguments [String] :inference_id The inference Id
+        # @option arguments [Hash] :headers Custom HTTP headers
+        # @option arguments [Hash] :body The inference payload
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/post-inference-api.html
+        #
+        def completion(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'inference.completion' }
+
+          defined_params = [:inference_id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'inference_id' missing" unless arguments[:inference_id]
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = arguments.delete(:body)
+
+          _inference_id = arguments.delete(:inference_id)
+
+          method = Elasticsearch::API::HTTP_POST
+          path   = "_inference/completion/#{Utils.__listify(_inference_id)}"
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/inference/delete.rb b/elasticsearch-api/lib/elasticsearch/api/actions/inference/delete.rb
index f9186d3c76..04f9a61ff1 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/inference/delete.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/inference/delete.rb
@@ -23,10 +23,6 @@ module API
     module Inference
       module Actions
         # Delete an inference endpoint
-        # This functionality is Experimental and may be changed or removed
-        # completely in a future release. Elastic will take a best effort approach
-        # to fix any issues, but experimental features are not subject to the
-        # support SLA of official GA features.
         #
         # @option arguments [String] :inference_id The inference Id
         # @option arguments [String] :task_type The task type
@@ -34,7 +30,7 @@ module Actions
         # @option arguments [Boolean] :force If true the endpoint will be forcefully stopped (regardless of whether or not it is referenced by any ingest processors or semantic text fields).
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-inference-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/delete-inference-api.html
         #
         def delete(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'inference.delete' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/inference/get.rb b/elasticsearch-api/lib/elasticsearch/api/actions/inference/get.rb
index cb227aa9b2..1d2f5d9daa 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/inference/get.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/inference/get.rb
@@ -23,16 +23,12 @@ module API
     module Inference
       module Actions
         # Get an inference endpoint
-        # This functionality is Experimental and may be changed or removed
-        # completely in a future release. Elastic will take a best effort approach
-        # to fix any issues, but experimental features are not subject to the
-        # support SLA of official GA features.
         #
         # @option arguments [String] :inference_id The inference Id
         # @option arguments [String] :task_type The task type
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/get-inference-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-inference-api.html
         #
         def get(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'inference.get' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/inference/inference.rb b/elasticsearch-api/lib/elasticsearch/api/actions/inference/inference.rb
index de5e7b797c..94abbc5c08 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/inference/inference.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/inference/inference.rb
@@ -23,17 +23,13 @@ module API
     module Inference
       module Actions
         # Perform inference
-        # This functionality is Experimental and may be changed or removed
-        # completely in a future release. Elastic will take a best effort approach
-        # to fix any issues, but experimental features are not subject to the
-        # support SLA of official GA features.
         #
         # @option arguments [String] :inference_id The inference Id
         # @option arguments [String] :task_type The task type
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The inference payload
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/post-inference-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/post-inference-api.html
         #
         def inference(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'inference.inference' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/inference/put.rb b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put.rb
index 9d485bcd17..8c9e008a1a 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/inference/put.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put.rb
@@ -23,17 +23,13 @@ module API
     module Inference
       module Actions
         # Configure an inference endpoint for use in the Inference API
-        # This functionality is Experimental and may be changed or removed
-        # completely in a future release. Elastic will take a best effort approach
-        # to fix any issues, but experimental features are not subject to the
-        # support SLA of official GA features.
         #
         # @option arguments [String] :inference_id The inference Id
         # @option arguments [String] :task_type The task type
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The inference endpoint's task and service settings
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/put-inference-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/put-inference-api.html
         #
         def put(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'inference.put' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_alibabacloud.rb b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_alibabacloud.rb
new file mode 100644
index 0000000000..d03633b6c7
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_alibabacloud.rb
@@ -0,0 +1,69 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Inference
+      module Actions
+        # Configure an AlibabaCloud AI Search inference endpoint
+        #
+        # @option arguments [String] :task_type The task type
+        # @option arguments [String] :alibabacloud_inference_id The inference Id
+        # @option arguments [Hash] :headers Custom HTTP headers
+        # @option arguments [Hash] :body The inference endpoint's task and service settings
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/infer-service-alibabacloud-ai-search.html
+        #
+        def put_alibabacloud(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'inference.put_alibabacloud' }
+
+          defined_params = %i[task_type alibabacloud_inference_id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'task_type' missing" unless arguments[:task_type]
+
+          unless arguments[:alibabacloud_inference_id]
+            raise ArgumentError,
+                  "Required argument 'alibabacloud_inference_id' missing"
+          end
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = arguments.delete(:body)
+
+          _task_type = arguments.delete(:task_type)
+
+          _alibabacloud_inference_id = arguments.delete(:alibabacloud_inference_id)
+
+          method = Elasticsearch::API::HTTP_PUT
+          path   = "_inference/#{Utils.__listify(_task_type)}/#{Utils.__listify(_alibabacloud_inference_id)}"
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_amazonbedrock.rb b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_amazonbedrock.rb
new file mode 100644
index 0000000000..e4c9d8897f
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_amazonbedrock.rb
@@ -0,0 +1,69 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Inference
+      module Actions
+        # Configure an Amazon Bedrock inference endpoint
+        #
+        # @option arguments [String] :task_type The task type
+        # @option arguments [String] :amazonbedrock_inference_id The inference Id
+        # @option arguments [Hash] :headers Custom HTTP headers
+        # @option arguments [Hash] :body The inference endpoint's task and service settings
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/infer-service-amazon-bedrock.html
+        #
+        def put_amazonbedrock(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'inference.put_amazonbedrock' }
+
+          defined_params = %i[task_type amazonbedrock_inference_id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'task_type' missing" unless arguments[:task_type]
+
+          unless arguments[:amazonbedrock_inference_id]
+            raise ArgumentError,
+                  "Required argument 'amazonbedrock_inference_id' missing"
+          end
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = arguments.delete(:body)
+
+          _task_type = arguments.delete(:task_type)
+
+          _amazonbedrock_inference_id = arguments.delete(:amazonbedrock_inference_id)
+
+          method = Elasticsearch::API::HTTP_PUT
+          path   = "_inference/#{Utils.__listify(_task_type)}/#{Utils.__listify(_amazonbedrock_inference_id)}"
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_anthropic.rb b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_anthropic.rb
new file mode 100644
index 0000000000..d870a003d8
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_anthropic.rb
@@ -0,0 +1,69 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Inference
+      module Actions
+        # Configure an Anthropic inference endpoint
+        #
+        # @option arguments [String] :task_type The task type
+        # @option arguments [String] :anthropic_inference_id The inference Id
+        # @option arguments [Hash] :headers Custom HTTP headers
+        # @option arguments [Hash] :body The inference endpoint's task and service settings
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/infer-service-anthropic.html
+        #
+        def put_anthropic(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'inference.put_anthropic' }
+
+          defined_params = %i[task_type anthropic_inference_id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'task_type' missing" unless arguments[:task_type]
+
+          unless arguments[:anthropic_inference_id]
+            raise ArgumentError,
+                  "Required argument 'anthropic_inference_id' missing"
+          end
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = arguments.delete(:body)
+
+          _task_type = arguments.delete(:task_type)
+
+          _anthropic_inference_id = arguments.delete(:anthropic_inference_id)
+
+          method = Elasticsearch::API::HTTP_PUT
+          path   = "_inference/#{Utils.__listify(_task_type)}/#{Utils.__listify(_anthropic_inference_id)}"
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_azureaistudio.rb b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_azureaistudio.rb
new file mode 100644
index 0000000000..40d44af29a
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_azureaistudio.rb
@@ -0,0 +1,69 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Inference
+      module Actions
+        # Configure an Azure AI Studio inference endpoint
+        #
+        # @option arguments [String] :task_type The task type
+        # @option arguments [String] :azureaistudio_inference_id The inference Id
+        # @option arguments [Hash] :headers Custom HTTP headers
+        # @option arguments [Hash] :body The inference endpoint's task and service settings
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/infer-service-azure-ai-studio.html
+        #
+        def put_azureaistudio(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'inference.put_azureaistudio' }
+
+          defined_params = %i[task_type azureaistudio_inference_id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'task_type' missing" unless arguments[:task_type]
+
+          unless arguments[:azureaistudio_inference_id]
+            raise ArgumentError,
+                  "Required argument 'azureaistudio_inference_id' missing"
+          end
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = arguments.delete(:body)
+
+          _task_type = arguments.delete(:task_type)
+
+          _azureaistudio_inference_id = arguments.delete(:azureaistudio_inference_id)
+
+          method = Elasticsearch::API::HTTP_PUT
+          path   = "_inference/#{Utils.__listify(_task_type)}/#{Utils.__listify(_azureaistudio_inference_id)}"
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_azureopenai.rb b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_azureopenai.rb
new file mode 100644
index 0000000000..121b304aed
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_azureopenai.rb
@@ -0,0 +1,69 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Inference
+      module Actions
+        # Configure an Azure OpenAI inference endpoint
+        #
+        # @option arguments [String] :task_type The task type
+        # @option arguments [String] :azureopenai_inference_id The inference Id
+        # @option arguments [Hash] :headers Custom HTTP headers
+        # @option arguments [Hash] :body The inference endpoint's task and service settings
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/infer-service-azure-openai.html
+        #
+        def put_azureopenai(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'inference.put_azureopenai' }
+
+          defined_params = %i[task_type azureopenai_inference_id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'task_type' missing" unless arguments[:task_type]
+
+          unless arguments[:azureopenai_inference_id]
+            raise ArgumentError,
+                  "Required argument 'azureopenai_inference_id' missing"
+          end
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = arguments.delete(:body)
+
+          _task_type = arguments.delete(:task_type)
+
+          _azureopenai_inference_id = arguments.delete(:azureopenai_inference_id)
+
+          method = Elasticsearch::API::HTTP_PUT
+          path   = "_inference/#{Utils.__listify(_task_type)}/#{Utils.__listify(_azureopenai_inference_id)}"
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_cohere.rb b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_cohere.rb
new file mode 100644
index 0000000000..798741ea29
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_cohere.rb
@@ -0,0 +1,65 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Inference
+      module Actions
+        # Configure a Cohere inference endpoint
+        #
+        # @option arguments [String] :task_type The task type
+        # @option arguments [String] :cohere_inference_id The inference Id
+        # @option arguments [Hash] :headers Custom HTTP headers
+        # @option arguments [Hash] :body The inference endpoint's task and service settings
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/infer-service-cohere.html
+        #
+        def put_cohere(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'inference.put_cohere' }
+
+          defined_params = %i[task_type cohere_inference_id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'task_type' missing" unless arguments[:task_type]
+          raise ArgumentError, "Required argument 'cohere_inference_id' missing" unless arguments[:cohere_inference_id]
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = arguments.delete(:body)
+
+          _task_type = arguments.delete(:task_type)
+
+          _cohere_inference_id = arguments.delete(:cohere_inference_id)
+
+          method = Elasticsearch::API::HTTP_PUT
+          path   = "_inference/#{Utils.__listify(_task_type)}/#{Utils.__listify(_cohere_inference_id)}"
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_elasticsearch.rb b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_elasticsearch.rb
new file mode 100644
index 0000000000..05edfa2b9c
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_elasticsearch.rb
@@ -0,0 +1,69 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Inference
+      module Actions
+        # Configure an Elasticsearch inference endpoint
+        #
+        # @option arguments [String] :task_type The task type
+        # @option arguments [String] :elasticsearch_inference_id The inference Id
+        # @option arguments [Hash] :headers Custom HTTP headers
+        # @option arguments [Hash] :body The inference endpoint's task and service settings
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/infer-service-elasticsearch.html
+        #
+        def put_elasticsearch(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'inference.put_elasticsearch' }
+
+          defined_params = %i[task_type elasticsearch_inference_id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'task_type' missing" unless arguments[:task_type]
+
+          unless arguments[:elasticsearch_inference_id]
+            raise ArgumentError,
+                  "Required argument 'elasticsearch_inference_id' missing"
+          end
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = arguments.delete(:body)
+
+          _task_type = arguments.delete(:task_type)
+
+          _elasticsearch_inference_id = arguments.delete(:elasticsearch_inference_id)
+
+          method = Elasticsearch::API::HTTP_PUT
+          path   = "_inference/#{Utils.__listify(_task_type)}/#{Utils.__listify(_elasticsearch_inference_id)}"
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_elser.rb b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_elser.rb
new file mode 100644
index 0000000000..c157c2ce9a
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_elser.rb
@@ -0,0 +1,65 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Inference
+      module Actions
+        # Configure an ELSER inference endpoint
+        #
+        # @option arguments [String] :task_type The task type
+        # @option arguments [String] :elser_inference_id The inference Id
+        # @option arguments [Hash] :headers Custom HTTP headers
+        # @option arguments [Hash] :body The inference endpoint's task and service settings
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/infer-service-elser.html
+        #
+        def put_elser(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'inference.put_elser' }
+
+          defined_params = %i[task_type elser_inference_id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'task_type' missing" unless arguments[:task_type]
+          raise ArgumentError, "Required argument 'elser_inference_id' missing" unless arguments[:elser_inference_id]
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = arguments.delete(:body)
+
+          _task_type = arguments.delete(:task_type)
+
+          _elser_inference_id = arguments.delete(:elser_inference_id)
+
+          method = Elasticsearch::API::HTTP_PUT
+          path   = "_inference/#{Utils.__listify(_task_type)}/#{Utils.__listify(_elser_inference_id)}"
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_googleaistudio.rb b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_googleaistudio.rb
new file mode 100644
index 0000000000..e8a26c874b
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_googleaistudio.rb
@@ -0,0 +1,69 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Inference
+      module Actions
+        # Configure a Google AI Studio inference endpoint
+        #
+        # @option arguments [String] :task_type The task type
+        # @option arguments [String] :googleaistudio_inference_id The inference Id
+        # @option arguments [Hash] :headers Custom HTTP headers
+        # @option arguments [Hash] :body The inference endpoint's task and service settings
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/infer-service-google-ai-studio.html
+        #
+        def put_googleaistudio(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'inference.put_googleaistudio' }
+
+          defined_params = %i[task_type googleaistudio_inference_id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'task_type' missing" unless arguments[:task_type]
+
+          unless arguments[:googleaistudio_inference_id]
+            raise ArgumentError,
+                  "Required argument 'googleaistudio_inference_id' missing"
+          end
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = arguments.delete(:body)
+
+          _task_type = arguments.delete(:task_type)
+
+          _googleaistudio_inference_id = arguments.delete(:googleaistudio_inference_id)
+
+          method = Elasticsearch::API::HTTP_PUT
+          path   = "_inference/#{Utils.__listify(_task_type)}/#{Utils.__listify(_googleaistudio_inference_id)}"
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_googlevertexai.rb b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_googlevertexai.rb
new file mode 100644
index 0000000000..1806e61679
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_googlevertexai.rb
@@ -0,0 +1,69 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Inference
+      module Actions
+        # Configure a Google Vertex AI inference endpoint
+        #
+        # @option arguments [String] :task_type The task type
+        # @option arguments [String] :googlevertexai_inference_id The inference Id
+        # @option arguments [Hash] :headers Custom HTTP headers
+        # @option arguments [Hash] :body The inference endpoint's task and service settings
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/infer-service-google-vertex-ai.html
+        #
+        def put_googlevertexai(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'inference.put_googlevertexai' }
+
+          defined_params = %i[task_type googlevertexai_inference_id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'task_type' missing" unless arguments[:task_type]
+
+          unless arguments[:googlevertexai_inference_id]
+            raise ArgumentError,
+                  "Required argument 'googlevertexai_inference_id' missing"
+          end
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = arguments.delete(:body)
+
+          _task_type = arguments.delete(:task_type)
+
+          _googlevertexai_inference_id = arguments.delete(:googlevertexai_inference_id)
+
+          method = Elasticsearch::API::HTTP_PUT
+          path   = "_inference/#{Utils.__listify(_task_type)}/#{Utils.__listify(_googlevertexai_inference_id)}"
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_hugging_face.rb b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_hugging_face.rb
new file mode 100644
index 0000000000..4fad98f233
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_hugging_face.rb
@@ -0,0 +1,69 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Inference
+      module Actions
+        # Configure a HuggingFace inference endpoint
+        #
+        # @option arguments [String] :task_type The task type
+        # @option arguments [String] :huggingface_inference_id The inference Id
+        # @option arguments [Hash] :headers Custom HTTP headers
+        # @option arguments [Hash] :body The inference endpoint's task and service settings
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/infer-service-hugging-face.html
+        #
+        def put_hugging_face(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'inference.put_hugging_face' }
+
+          defined_params = %i[task_type huggingface_inference_id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'task_type' missing" unless arguments[:task_type]
+
+          unless arguments[:huggingface_inference_id]
+            raise ArgumentError,
+                  "Required argument 'huggingface_inference_id' missing"
+          end
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = arguments.delete(:body)
+
+          _task_type = arguments.delete(:task_type)
+
+          _huggingface_inference_id = arguments.delete(:huggingface_inference_id)
+
+          method = Elasticsearch::API::HTTP_PUT
+          path   = "_inference/#{Utils.__listify(_task_type)}/#{Utils.__listify(_huggingface_inference_id)}"
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_jinaai.rb b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_jinaai.rb
new file mode 100644
index 0000000000..2d409d751a
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_jinaai.rb
@@ -0,0 +1,65 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Inference
+      module Actions
+        # Configure a JinaAI inference endpoint
+        #
+        # @option arguments [String] :task_type The task type
+        # @option arguments [String] :jinaai_inference_id The inference Id
+        # @option arguments [Hash] :headers Custom HTTP headers
+        # @option arguments [Hash] :body The inference endpoint's task and service settings
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/infer-service-jinaai.html
+        #
+        def put_jinaai(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'inference.put_jinaai' }
+
+          defined_params = %i[task_type jinaai_inference_id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'task_type' missing" unless arguments[:task_type]
+          raise ArgumentError, "Required argument 'jinaai_inference_id' missing" unless arguments[:jinaai_inference_id]
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = arguments.delete(:body)
+
+          _task_type = arguments.delete(:task_type)
+
+          _jinaai_inference_id = arguments.delete(:jinaai_inference_id)
+
+          method = Elasticsearch::API::HTTP_PUT
+          path   = "_inference/#{Utils.__listify(_task_type)}/#{Utils.__listify(_jinaai_inference_id)}"
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_mistral.rb b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_mistral.rb
new file mode 100644
index 0000000000..5f97b85233
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_mistral.rb
@@ -0,0 +1,69 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Inference
+      module Actions
+        # Configure a Mistral inference endpoint
+        #
+        # @option arguments [String] :task_type The task type
+        # @option arguments [String] :mistral_inference_id The inference Id
+        # @option arguments [Hash] :headers Custom HTTP headers
+        # @option arguments [Hash] :body The inference endpoint's task and service settings
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/infer-service-mistral.html
+        #
+        def put_mistral(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'inference.put_mistral' }
+
+          defined_params = %i[task_type mistral_inference_id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'task_type' missing" unless arguments[:task_type]
+
+          unless arguments[:mistral_inference_id]
+            raise ArgumentError,
+                  "Required argument 'mistral_inference_id' missing"
+          end
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = arguments.delete(:body)
+
+          _task_type = arguments.delete(:task_type)
+
+          _mistral_inference_id = arguments.delete(:mistral_inference_id)
+
+          method = Elasticsearch::API::HTTP_PUT
+          path   = "_inference/#{Utils.__listify(_task_type)}/#{Utils.__listify(_mistral_inference_id)}"
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_openai.rb b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_openai.rb
new file mode 100644
index 0000000000..46aab587a1
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_openai.rb
@@ -0,0 +1,65 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Inference
+      module Actions
+        # Configure an OpenAI inference endpoint
+        #
+        # @option arguments [String] :task_type The task type
+        # @option arguments [String] :openai_inference_id The inference ID
+        # @option arguments [Hash] :headers Custom HTTP headers
+        # @option arguments [Hash] :body The inference endpoint's task and service settings
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/infer-service-openai.html
+        #
+        def put_openai(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'inference.put_openai' }
+
+          defined_params = %i[task_type openai_inference_id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'task_type' missing" unless arguments[:task_type]
+          raise ArgumentError, "Required argument 'openai_inference_id' missing" unless arguments[:openai_inference_id]
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = arguments.delete(:body)
+
+          _task_type = arguments.delete(:task_type)
+
+          _openai_inference_id = arguments.delete(:openai_inference_id)
+
+          method = Elasticsearch::API::HTTP_PUT
+          path   = "_inference/#{Utils.__listify(_task_type)}/#{Utils.__listify(_openai_inference_id)}"
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_voyageai.rb b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_voyageai.rb
new file mode 100644
index 0000000000..31f11c88e6
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_voyageai.rb
@@ -0,0 +1,69 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Inference
+      module Actions
+        # Configure a VoyageAI inference endpoint
+        #
+        # @option arguments [String] :task_type The task type
+        # @option arguments [String] :voyageai_inference_id The inference ID
+        # @option arguments [Hash] :headers Custom HTTP headers
+        # @option arguments [Hash] :body The inference endpoint's task and service settings
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/inference-apis.html
+        #
+        def put_voyageai(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'inference.put_voyageai' }
+
+          defined_params = %i[task_type voyageai_inference_id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'task_type' missing" unless arguments[:task_type]
+
+          unless arguments[:voyageai_inference_id]
+            raise ArgumentError,
+                  "Required argument 'voyageai_inference_id' missing"
+          end
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = arguments.delete(:body)
+
+          _task_type = arguments.delete(:task_type)
+
+          _voyageai_inference_id = arguments.delete(:voyageai_inference_id)
+
+          method = Elasticsearch::API::HTTP_PUT
+          path   = "_inference/#{Utils.__listify(_task_type)}/#{Utils.__listify(_voyageai_inference_id)}"
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_watsonx.rb b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_watsonx.rb
new file mode 100644
index 0000000000..2b8cf06b98
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/inference/put_watsonx.rb
@@ -0,0 +1,69 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Inference
+      module Actions
+        # Configure a Watsonx inference endpoint
+        #
+        # @option arguments [String] :task_type The task type
+        # @option arguments [String] :watsonx_inference_id The inference Id
+        # @option arguments [Hash] :headers Custom HTTP headers
+        # @option arguments [Hash] :body The inference endpoint's task and service settings
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/infer-service-watsonx-ai.html
+        #
+        def put_watsonx(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'inference.put_watsonx' }
+
+          defined_params = %i[task_type watsonx_inference_id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'task_type' missing" unless arguments[:task_type]
+
+          unless arguments[:watsonx_inference_id]
+            raise ArgumentError,
+                  "Required argument 'watsonx_inference_id' missing"
+          end
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = arguments.delete(:body)
+
+          _task_type = arguments.delete(:task_type)
+
+          _watsonx_inference_id = arguments.delete(:watsonx_inference_id)
+
+          method = Elasticsearch::API::HTTP_PUT
+          path   = "_inference/#{Utils.__listify(_task_type)}/#{Utils.__listify(_watsonx_inference_id)}"
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/inference/rerank.rb b/elasticsearch-api/lib/elasticsearch/api/actions/inference/rerank.rb
new file mode 100644
index 0000000000..fc508958b0
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/inference/rerank.rb
@@ -0,0 +1,61 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Inference
+      module Actions
+        # Perform reranking inference
+        #
+        # @option arguments [String] :inference_id The inference Id
+        # @option arguments [Hash] :headers Custom HTTP headers
+        # @option arguments [Hash] :body The inference payload
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/post-inference-api.html
+        #
+        def rerank(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'inference.rerank' }
+
+          defined_params = [:inference_id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'inference_id' missing" unless arguments[:inference_id]
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = arguments.delete(:body)
+
+          _inference_id = arguments.delete(:inference_id)
+
+          method = Elasticsearch::API::HTTP_POST
+          path   = "_inference/rerank/#{Utils.__listify(_inference_id)}"
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/inference/sparse_embedding.rb b/elasticsearch-api/lib/elasticsearch/api/actions/inference/sparse_embedding.rb
new file mode 100644
index 0000000000..90e6ae7d39
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/inference/sparse_embedding.rb
@@ -0,0 +1,61 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Inference
+      module Actions
+        # Perform sparse embedding inference
+        #
+        # @option arguments [String] :inference_id The inference Id
+        # @option arguments [Hash] :headers Custom HTTP headers
+        # @option arguments [Hash] :body The inference payload
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/post-inference-api.html
+        #
+        def sparse_embedding(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'inference.sparse_embedding' }
+
+          defined_params = [:inference_id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'inference_id' missing" unless arguments[:inference_id]
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = arguments.delete(:body)
+
+          _inference_id = arguments.delete(:inference_id)
+
+          method = Elasticsearch::API::HTTP_POST
+          path   = "_inference/sparse_embedding/#{Utils.__listify(_inference_id)}"
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/inference/stream_completion.rb b/elasticsearch-api/lib/elasticsearch/api/actions/inference/stream_completion.rb
new file mode 100644
index 0000000000..a48670eac3
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/inference/stream_completion.rb
@@ -0,0 +1,61 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Inference
+      module Actions
+        # Perform streaming completion inference
+        #
+        # @option arguments [String] :inference_id The inference Id
+        # @option arguments [Hash] :headers Custom HTTP headers
+        # @option arguments [Hash] :body The inference payload
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/post-stream-inference-api.html
+        #
+        def stream_completion(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'inference.stream_completion' }
+
+          defined_params = [:inference_id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'inference_id' missing" unless arguments[:inference_id]
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = arguments.delete(:body)
+
+          _inference_id = arguments.delete(:inference_id)
+
+          method = Elasticsearch::API::HTTP_POST
+          path   = "_inference/completion/#{Utils.__listify(_inference_id)}/_stream"
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/inference/text_embedding.rb b/elasticsearch-api/lib/elasticsearch/api/actions/inference/text_embedding.rb
new file mode 100644
index 0000000000..6b1386d65a
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/inference/text_embedding.rb
@@ -0,0 +1,61 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Inference
+      module Actions
+        # Perform text embedding inference
+        #
+        # @option arguments [String] :inference_id The inference Id
+        # @option arguments [Hash] :headers Custom HTTP headers
+        # @option arguments [Hash] :body The inference payload
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/post-inference-api.html
+        #
+        def text_embedding(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'inference.text_embedding' }
+
+          defined_params = [:inference_id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'inference_id' missing" unless arguments[:inference_id]
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = arguments.delete(:body)
+
+          _inference_id = arguments.delete(:inference_id)
+
+          method = Elasticsearch::API::HTTP_POST
+          path   = "_inference/text_embedding/#{Utils.__listify(_inference_id)}"
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/inference/update.rb b/elasticsearch-api/lib/elasticsearch/api/actions/inference/update.rb
new file mode 100644
index 0000000000..cf1c8f2e10
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/inference/update.rb
@@ -0,0 +1,68 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Inference
+      module Actions
+        # Update inference
+        #
+        # @option arguments [String] :inference_id The inference Id
+        # @option arguments [String] :task_type The task type
+        # @option arguments [Hash] :headers Custom HTTP headers
+        # @option arguments [Hash] :body The inference endpoint's task and service settings
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/update-inference-api.html
+        #
+        def update(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'inference.update' }
+
+          defined_params = %i[inference_id task_type].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'inference_id' missing" unless arguments[:inference_id]
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = arguments.delete(:body)
+
+          _inference_id = arguments.delete(:inference_id)
+
+          _task_type = arguments.delete(:task_type)
+
+          method = Elasticsearch::API::HTTP_PUT
+          path   = if _task_type && _inference_id
+                     "_inference/#{Utils.__listify(_task_type)}/#{Utils.__listify(_inference_id)}/_update"
+                   else
+                     "_inference/#{Utils.__listify(_inference_id)}/_update"
+                   end
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/info.rb b/elasticsearch-api/lib/elasticsearch/api/actions/info.rb
index ca00f362a8..e85e5d014d 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/info.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/info.rb
@@ -25,7 +25,7 @@ module Actions
       #
       # @option arguments [Hash] :headers Custom HTTP headers
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/index.html
       #
       def info(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'info' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/ingest/delete_geoip_database.rb b/elasticsearch-api/lib/elasticsearch/api/actions/ingest/delete_geoip_database.rb
index 9a75e8c8ec..4da80202ef 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/ingest/delete_geoip_database.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/ingest/delete_geoip_database.rb
@@ -25,9 +25,11 @@ module Actions
         # Deletes a geoip database configuration
         #
         # @option arguments [List] :id A comma-separated list of geoip database configurations to delete
+        # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
+        # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/TODO.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/delete-geoip-database-api.html
         #
         def delete_geoip_database(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ingest.delete_geoip_database' }
@@ -48,7 +50,7 @@ def delete_geoip_database(arguments = {})
 
           method = Elasticsearch::API::HTTP_DELETE
           path   = "_ingest/geoip/database/#{Utils.__listify(_id)}"
-          params = {}
+          params = Utils.process_params(arguments)
 
           Elasticsearch::API::Response.new(
             perform_request(method, path, params, body, headers, request_opts)
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/ingest/delete_ip_location_database.rb b/elasticsearch-api/lib/elasticsearch/api/actions/ingest/delete_ip_location_database.rb
new file mode 100644
index 0000000000..3798079ebc
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/ingest/delete_ip_location_database.rb
@@ -0,0 +1,62 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Ingest
+      module Actions
+        # Deletes an ip location database configuration
+        #
+        # @option arguments [List] :id A comma-separated list of ip location database configurations to delete
+        # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
+        # @option arguments [Time] :timeout Explicit operation timeout
+        # @option arguments [Hash] :headers Custom HTTP headers
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/delete-ip-location-database-api.html
+        #
+        def delete_ip_location_database(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'ingest.delete_ip_location_database' }
+
+          defined_params = [:id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'id' missing" unless arguments[:id]
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = nil
+
+          _id = arguments.delete(:id)
+
+          method = Elasticsearch::API::HTTP_DELETE
+          path   = "_ingest/ip_location/database/#{Utils.__listify(_id)}"
+          params = Utils.process_params(arguments)
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/ingest/delete_pipeline.rb b/elasticsearch-api/lib/elasticsearch/api/actions/ingest/delete_pipeline.rb
index d06a96d72f..b55bfc114f 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/ingest/delete_pipeline.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/ingest/delete_pipeline.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-pipeline-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/delete-pipeline-api.html
         #
         def delete_pipeline(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ingest.delete_pipeline' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/ingest/geo_ip_stats.rb b/elasticsearch-api/lib/elasticsearch/api/actions/ingest/geo_ip_stats.rb
index 6764c9cd68..d34fd417cb 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/ingest/geo_ip_stats.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/ingest/geo_ip_stats.rb
@@ -26,7 +26,7 @@ module Actions
         #
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/geoip-stats-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/geoip-stats-api.html
         #
         def geo_ip_stats(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ingest.geo_ip_stats' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/ingest/get_geoip_database.rb b/elasticsearch-api/lib/elasticsearch/api/actions/ingest/get_geoip_database.rb
index c6d73252d5..41286035a2 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/ingest/get_geoip_database.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/ingest/get_geoip_database.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [List] :id A comma-separated list of geoip database configurations to get; use `*` to get all geoip database configurations
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/TODO.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-geoip-database-api.html
         #
         def get_geoip_database(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ingest.get_geoip_database' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/ingest/get_ip_location_database.rb b/elasticsearch-api/lib/elasticsearch/api/actions/ingest/get_ip_location_database.rb
new file mode 100644
index 0000000000..fa8da61d2d
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/ingest/get_ip_location_database.rb
@@ -0,0 +1,62 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Ingest
+      module Actions
+        # Returns the specified ip location database configuration
+        #
+        # @option arguments [List] :id A comma-separated list of ip location database configurations to get; use `*` to get all ip location database configurations
+        # @option arguments [Hash] :headers Custom HTTP headers
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-ip-location-database-api.html
+        #
+        def get_ip_location_database(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'ingest.get_ip_location_database' }
+
+          defined_params = [:id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = nil
+
+          _id = arguments.delete(:id)
+
+          method = Elasticsearch::API::HTTP_GET
+          path   = if _id
+                     "_ingest/ip_location/database/#{Utils.__listify(_id)}"
+                   else
+                     '_ingest/ip_location/database'
+                   end
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/ingest/get_pipeline.rb b/elasticsearch-api/lib/elasticsearch/api/actions/ingest/get_pipeline.rb
index 250ff6d312..3cf8b30c1a 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/ingest/get_pipeline.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/ingest/get_pipeline.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/get-pipeline-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-pipeline-api.html
         #
         def get_pipeline(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ingest.get_pipeline' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/ingest/processor_grok.rb b/elasticsearch-api/lib/elasticsearch/api/actions/ingest/processor_grok.rb
index 6dbfa81bbc..18138a40a9 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/ingest/processor_grok.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/ingest/processor_grok.rb
@@ -26,7 +26,7 @@ module Actions
         #
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/grok-processor.html#grok-processor-rest-get
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/grok-processor.html#grok-processor-rest-get
         #
         def processor_grok(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ingest.processor_grok' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/ingest/put_geoip_database.rb b/elasticsearch-api/lib/elasticsearch/api/actions/ingest/put_geoip_database.rb
index e0db4adf5a..b28d4e63b6 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/ingest/put_geoip_database.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/ingest/put_geoip_database.rb
@@ -25,10 +25,12 @@ module Actions
         # Puts the configuration for a geoip database to be downloaded
         #
         # @option arguments [String] :id The id of the database configuration
+        # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
+        # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The database configuration definition (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/TODO.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/put-geoip-database-api.html
         #
         def put_geoip_database(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ingest.put_geoip_database' }
@@ -50,7 +52,7 @@ def put_geoip_database(arguments = {})
 
           method = Elasticsearch::API::HTTP_PUT
           path   = "_ingest/geoip/database/#{Utils.__listify(_id)}"
-          params = {}
+          params = Utils.process_params(arguments)
 
           Elasticsearch::API::Response.new(
             perform_request(method, path, params, body, headers, request_opts)
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/ingest/put_ip_location_database.rb b/elasticsearch-api/lib/elasticsearch/api/actions/ingest/put_ip_location_database.rb
new file mode 100644
index 0000000000..f47c6e42e7
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/ingest/put_ip_location_database.rb
@@ -0,0 +1,64 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Ingest
+      module Actions
+        # Puts the configuration for a ip location database to be downloaded
+        #
+        # @option arguments [String] :id The id of the database configuration
+        # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
+        # @option arguments [Time] :timeout Explicit operation timeout
+        # @option arguments [Hash] :headers Custom HTTP headers
+        # @option arguments [Hash] :body The database configuration definition (*Required*)
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/put-ip-location-database-api.html
+        #
+        def put_ip_location_database(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'ingest.put_ip_location_database' }
+
+          defined_params = [:id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]
+          raise ArgumentError, "Required argument 'id' missing" unless arguments[:id]
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = arguments.delete(:body)
+
+          _id = arguments.delete(:id)
+
+          method = Elasticsearch::API::HTTP_PUT
+          path   = "_ingest/ip_location/database/#{Utils.__listify(_id)}"
+          params = Utils.process_params(arguments)
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/ingest/put_pipeline.rb b/elasticsearch-api/lib/elasticsearch/api/actions/ingest/put_pipeline.rb
index 0c626836e2..c193ac0154 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/ingest/put_pipeline.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/ingest/put_pipeline.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The ingest definition (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/put-pipeline-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/put-pipeline-api.html
         #
         def put_pipeline(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ingest.put_pipeline' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/ingest/simulate.rb b/elasticsearch-api/lib/elasticsearch/api/actions/ingest/simulate.rb
index 8ea6e3c717..130031ff12 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/ingest/simulate.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/ingest/simulate.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The simulate definition (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/simulate-pipeline-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/simulate-pipeline-api.html
         #
         def simulate(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ingest.simulate' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/knn_search.rb b/elasticsearch-api/lib/elasticsearch/api/actions/knn_search.rb
index 8a94ed0529..eabdefbc3d 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/knn_search.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/knn_search.rb
@@ -32,7 +32,7 @@ module Actions
       # @option arguments [Hash] :headers Custom HTTP headers
       # @option arguments [Hash] :body The search definition
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-search.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/search-search.html
       #
       def knn_search(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'knn_search' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/license/delete.rb b/elasticsearch-api/lib/elasticsearch/api/actions/license/delete.rb
index b4a2a5fd9d..c4cb6b54e2 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/license/delete.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/license/delete.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Time] :timeout Timeout for acknowledgement of update from all nodes in cluster
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-license.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/delete-license.html
         #
         def delete(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'license.delete' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/license/get.rb b/elasticsearch-api/lib/elasticsearch/api/actions/license/get.rb
index ee9dc42840..90485753cb 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/license/get.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/license/get.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Boolean] :accept_enterprise Supported for backwards compatibility with 7.x. If this param is used it must be set to true *Deprecated*
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/get-license.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-license.html
         #
         def get(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'license.get' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/license/get_basic_status.rb b/elasticsearch-api/lib/elasticsearch/api/actions/license/get_basic_status.rb
index 351df544dc..42f292d8fc 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/license/get_basic_status.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/license/get_basic_status.rb
@@ -26,7 +26,7 @@ module Actions
         #
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/get-basic-status.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-basic-status.html
         #
         def get_basic_status(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'license.get_basic_status' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/license/get_trial_status.rb b/elasticsearch-api/lib/elasticsearch/api/actions/license/get_trial_status.rb
index e611a4570c..e208aeadc6 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/license/get_trial_status.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/license/get_trial_status.rb
@@ -26,7 +26,7 @@ module Actions
         #
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/get-trial-status.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-trial-status.html
         #
         def get_trial_status(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'license.get_trial_status' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/license/post.rb b/elasticsearch-api/lib/elasticsearch/api/actions/license/post.rb
index 54a72d52e3..1184e37072 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/license/post.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/license/post.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body licenses to be installed
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/update-license.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/update-license.html
         #
         def post(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'license.post' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/license/post_start_basic.rb b/elasticsearch-api/lib/elasticsearch/api/actions/license/post_start_basic.rb
index b95eb10bf9..06275fc7c2 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/license/post_start_basic.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/license/post_start_basic.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Time] :timeout Timeout for acknowledgement of update from all nodes in cluster
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/start-basic.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/start-basic.html
         #
         def post_start_basic(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'license.post_start_basic' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/license/post_start_trial.rb b/elasticsearch-api/lib/elasticsearch/api/actions/license/post_start_trial.rb
index 4a3a20ae6c..eb9048a1fe 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/license/post_start_trial.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/license/post_start_trial.rb
@@ -27,10 +27,9 @@ module Actions
         # @option arguments [String] :type The type of trial license to generate (default: "trial")
         # @option arguments [Boolean] :acknowledge whether the user has acknowledged acknowledge messages (default: false)
         # @option arguments [Time] :master_timeout Timeout for processing on master node
-        # @option arguments [Time] :timeout Timeout for acknowledgement of update from all nodes in cluster
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/start-trial.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/start-trial.html
         #
         def post_start_trial(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'license.post_start_trial' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/logstash/delete_pipeline.rb b/elasticsearch-api/lib/elasticsearch/api/actions/logstash/delete_pipeline.rb
index 3b8a16c6d9..64e388b3cc 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/logstash/delete_pipeline.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/logstash/delete_pipeline.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [String] :id The ID of the Pipeline
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/logstash-api-delete-pipeline.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/logstash-api-delete-pipeline.html
         #
         def delete_pipeline(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'logstash.delete_pipeline' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/logstash/get_pipeline.rb b/elasticsearch-api/lib/elasticsearch/api/actions/logstash/get_pipeline.rb
index eaed065ef7..bdabbca252 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/logstash/get_pipeline.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/logstash/get_pipeline.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [String] :id A comma-separated list of Pipeline IDs
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/logstash-api-get-pipeline.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/logstash-api-get-pipeline.html
         #
         def get_pipeline(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'logstash.get_pipeline' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/logstash/put_pipeline.rb b/elasticsearch-api/lib/elasticsearch/api/actions/logstash/put_pipeline.rb
index 4e51cb3b13..b9dcfcfa8c 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/logstash/put_pipeline.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/logstash/put_pipeline.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The Pipeline to add or update (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/logstash-api-put-pipeline.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/logstash-api-put-pipeline.html
         #
         def put_pipeline(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'logstash.put_pipeline' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/clear_trained_model_deployment_cache.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/clear_trained_model_deployment_cache.rb
index 24d3aa5fc1..4903c811e0 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/clear_trained_model_deployment_cache.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/clear_trained_model_deployment_cache.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [String] :model_id The unique identifier of the trained model. (*Required*)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/clear-trained-model-deployment-cache.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/clear-trained-model-deployment-cache.html
         #
         def clear_trained_model_deployment_cache(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.clear_trained_model_deployment_cache' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/close_job.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/close_job.rb
index 5683ec5644..166894867f 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/close_job.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/close_job.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The URL params optionally sent in the body
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-close-job.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-close-job.html
         #
         def close_job(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.close_job' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_calendar.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_calendar.rb
index 196d6e25b1..06f06e3f5b 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_calendar.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_calendar.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [String] :calendar_id The ID of the calendar to delete
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-calendar.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-delete-calendar.html
         #
         def delete_calendar(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.delete_calendar' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_calendar_event.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_calendar_event.rb
index 2e9d83e657..5f8c8605bd 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_calendar_event.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_calendar_event.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [String] :event_id The ID of the event to remove from the calendar
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-calendar-event.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-delete-calendar-event.html
         #
         def delete_calendar_event(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.delete_calendar_event' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_calendar_job.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_calendar_job.rb
index f13bc4a282..716678e695 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_calendar_job.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_calendar_job.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [String] :job_id The ID of the job to remove from the calendar
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-calendar-job.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-delete-calendar-job.html
         #
         def delete_calendar_job(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.delete_calendar_job' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_data_frame_analytics.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_data_frame_analytics.rb
index 3bb2df5542..6cd7a65b90 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_data_frame_analytics.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_data_frame_analytics.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Time] :timeout Controls the time to wait until a job is deleted. Defaults to 1 minute
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-dfanalytics.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/delete-dfanalytics.html
         #
         def delete_data_frame_analytics(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.delete_data_frame_analytics' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_datafeed.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_datafeed.rb
index d8778a21b3..497102854d 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_datafeed.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_datafeed.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Boolean] :force True if the datafeed should be forcefully deleted
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-datafeed.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-delete-datafeed.html
         #
         def delete_datafeed(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.delete_datafeed' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_expired_data.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_expired_data.rb
index 5d9f381d1d..a23bc10fb8 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_expired_data.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_expired_data.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body deleting expired data parameters
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-expired-data.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-delete-expired-data.html
         #
         def delete_expired_data(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.delete_expired_data' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_filter.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_filter.rb
index 1079e0b75d..4af3c20ac3 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_filter.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_filter.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [String] :filter_id The ID of the filter to delete
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-filter.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-delete-filter.html
         #
         def delete_filter(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.delete_filter' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_forecast.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_forecast.rb
index 0a0d52aab3..43aadf3fee 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_forecast.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_forecast.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Time] :timeout Controls the time to wait until the forecast(s) are deleted. Default to 30 seconds
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-forecast.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-delete-forecast.html
         #
         def delete_forecast(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.delete_forecast' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_job.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_job.rb
index 7ae7b88f3f..401003ab62 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_job.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_job.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Boolean] :delete_user_annotations Should annotations added by the user be deleted
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-job.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-delete-job.html
         #
         def delete_job(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.delete_job' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_model_snapshot.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_model_snapshot.rb
index 85cb5b61f7..197a69042e 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_model_snapshot.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_model_snapshot.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [String] :snapshot_id The ID of the snapshot to delete
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-snapshot.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-delete-snapshot.html
         #
         def delete_model_snapshot(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.delete_model_snapshot' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_trained_model.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_trained_model.rb
index 56ea524b30..0831ee0f0f 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_trained_model.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_trained_model.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Boolean] :force True if the model should be forcefully deleted
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-trained-models.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/delete-trained-models.html
         #
         def delete_trained_model(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.delete_trained_model' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_trained_model_alias.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_trained_model_alias.rb
index cc56b05856..16fa4c33ee 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_trained_model_alias.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/delete_trained_model_alias.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [String] :model_id The trained model where the model alias is assigned
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-trained-models-aliases.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/delete-trained-models-aliases.html
         #
         def delete_trained_model_alias(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.delete_trained_model_alias' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/estimate_model_memory.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/estimate_model_memory.rb
index dc40e34a56..bcad4ff684 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/estimate_model_memory.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/estimate_model_memory.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The analysis config, plus cardinality estimates for fields it references (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-apis.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-apis.html
         #
         def estimate_model_memory(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.estimate_model_memory' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/evaluate_data_frame.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/evaluate_data_frame.rb
index 957f203433..92e502a995 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/evaluate_data_frame.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/evaluate_data_frame.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The evaluation definition (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/evaluate-dfanalytics.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/evaluate-dfanalytics.html
         #
         def evaluate_data_frame(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.evaluate_data_frame' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/explain_data_frame_analytics.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/explain_data_frame_analytics.rb
index 8aef4b83b4..c89585a4d9 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/explain_data_frame_analytics.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/explain_data_frame_analytics.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The data frame analytics config to explain
         #
-        # @see http://www.elastic.co/guide/en/elasticsearch/reference/current/explain-dfanalytics.html
+        # @see http://www.elastic.co/guide/en/elasticsearch/reference/8.18/explain-dfanalytics.html
         #
         def explain_data_frame_analytics(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.explain_data_frame_analytics' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/flush_job.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/flush_job.rb
index 48b8334e30..94a5c75d9a 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/flush_job.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/flush_job.rb
@@ -33,7 +33,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Flush parameters
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-flush-job.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-flush-job.html
         #
         def flush_job(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.flush_job' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/forecast.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/forecast.rb
index fefe7dbdb5..c410abe879 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/forecast.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/forecast.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Query parameters can be specified in the body
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-forecast.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-forecast.html
         #
         def forecast(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.forecast' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_buckets.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_buckets.rb
index a68322b96a..33d142ae2a 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_buckets.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_buckets.rb
@@ -38,7 +38,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Bucket selection details if not provided in URI
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-bucket.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-get-bucket.html
         #
         def get_buckets(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.get_buckets' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_calendar_events.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_calendar_events.rb
index d207e8872b..c53ef3b239 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_calendar_events.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_calendar_events.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Integer] :size Specifies a max number of events to get
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-calendar-event.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-get-calendar-event.html
         #
         def get_calendar_events(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.get_calendar_events' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_calendars.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_calendars.rb
index b068075dbe..1477a758f8 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_calendars.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_calendars.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The from and size parameters optionally sent in the body
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-calendar.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-get-calendar.html
         #
         def get_calendars(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.get_calendars' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_categories.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_categories.rb
index 4bac8ea0e6..2da03fa701 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_categories.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_categories.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Category selection details if not provided in URI
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-category.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-get-category.html
         #
         def get_categories(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.get_categories' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_data_frame_analytics.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_data_frame_analytics.rb
index a6a097d654..8b25e54ac8 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_data_frame_analytics.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_data_frame_analytics.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [Boolean] :exclude_generated Omits fields that are illegal to set on data frame analytics PUT
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/get-dfanalytics.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-dfanalytics.html
         #
         def get_data_frame_analytics(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.get_data_frame_analytics' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_data_frame_analytics_stats.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_data_frame_analytics_stats.rb
index 5a12263db7..155aff5395 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_data_frame_analytics_stats.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_data_frame_analytics_stats.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [Boolean] :verbose whether the stats response should be verbose
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/get-dfanalytics-stats.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-dfanalytics-stats.html
         #
         def get_data_frame_analytics_stats(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.get_data_frame_analytics_stats' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_datafeed_stats.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_datafeed_stats.rb
index 9a527cf537..348dec6ac5 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_datafeed_stats.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_datafeed_stats.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Boolean] :allow_no_match Whether to ignore if a wildcard expression matches no datafeeds. (This includes `_all` string or when no datafeeds have been specified)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-datafeed-stats.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-get-datafeed-stats.html
         #
         def get_datafeed_stats(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.get_datafeed_stats' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_datafeeds.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_datafeeds.rb
index f7c0d75e1a..15ad7a4e80 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_datafeeds.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_datafeeds.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Boolean] :exclude_generated Omits fields that are illegal to set on datafeed PUT
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-datafeed.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-get-datafeed.html
         #
         def get_datafeeds(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.get_datafeeds' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_filters.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_filters.rb
index 740d6087d1..aede50ab22 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_filters.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_filters.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Integer] :size specifies a max number of filters to get
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-filter.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-get-filter.html
         #
         def get_filters(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.get_filters' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_influencers.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_influencers.rb
index c26cfe0ee3..1de377cd0e 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_influencers.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_influencers.rb
@@ -36,7 +36,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Influencer selection criteria
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-influencer.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-get-influencer.html
         #
         def get_influencers(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.get_influencers' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_job_stats.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_job_stats.rb
index a775aa6822..347b430874 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_job_stats.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_job_stats.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Boolean] :allow_no_match Whether to ignore if a wildcard expression matches no jobs. (This includes `_all` string or when no jobs have been specified)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-job-stats.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-get-job-stats.html
         #
         def get_job_stats(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.get_job_stats' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_jobs.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_jobs.rb
index ed56801065..deac53da74 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_jobs.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_jobs.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Boolean] :exclude_generated Omits fields that are illegal to set on job PUT
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-job.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-get-job.html
         #
         def get_jobs(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.get_jobs' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_memory_stats.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_memory_stats.rb
index 001adaa2d5..31c9b58ba5 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_memory_stats.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_memory_stats.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/get-ml-memory.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-ml-memory.html
         #
         def get_memory_stats(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.get_memory_stats' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_model_snapshot_upgrade_stats.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_model_snapshot_upgrade_stats.rb
index 561bd95bad..8e0e15d93f 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_model_snapshot_upgrade_stats.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_model_snapshot_upgrade_stats.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Boolean] :allow_no_match Whether to ignore if a wildcard expression matches no jobs or no snapshots. (This includes the `_all` string.)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-job-model-snapshot-upgrade-stats.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-get-job-model-snapshot-upgrade-stats.html
         #
         def get_model_snapshot_upgrade_stats(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.get_model_snapshot_upgrade_stats' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_model_snapshots.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_model_snapshots.rb
index df56a11e88..e5d96b4a32 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_model_snapshots.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_model_snapshots.rb
@@ -35,7 +35,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Model snapshot selection criteria
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-snapshot.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-get-snapshot.html
         #
         def get_model_snapshots(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.get_model_snapshots' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_overall_buckets.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_overall_buckets.rb
index fa40a14238..3cc37d432e 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_overall_buckets.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_overall_buckets.rb
@@ -35,7 +35,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Overall bucket selection details if not provided in URI
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-overall-buckets.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-get-overall-buckets.html
         #
         def get_overall_buckets(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.get_overall_buckets' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_records.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_records.rb
index 66b4f6b7df..d94a5b53ca 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_records.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_records.rb
@@ -36,7 +36,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Record selection criteria
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-record.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-get-record.html
         #
         def get_records(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.get_records' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_trained_models.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_trained_models.rb
index 09b7813943..53b132da8d 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_trained_models.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_trained_models.rb
@@ -35,7 +35,7 @@ module Actions
         # @option arguments [Boolean] :exclude_generated Omits fields that are illegal to set on model PUT
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/get-trained-models.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-trained-models.html
         #
         def get_trained_models(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.get_trained_models' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_trained_models_stats.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_trained_models_stats.rb
index 0d56ddb20a..aca9abad2a 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_trained_models_stats.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/get_trained_models_stats.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Integer] :size specifies a max number of trained models to get
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/get-trained-models-stats.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-trained-models-stats.html
         #
         def get_trained_models_stats(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.get_trained_models_stats' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/infer_trained_model.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/infer_trained_model.rb
index 59dbc17156..d0fd7dba3a 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/infer_trained_model.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/infer_trained_model.rb
@@ -34,7 +34,7 @@ module Actions
         # Deprecated since version 8.3.0
         #
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/infer-trained-model.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/infer-trained-model.html
         #
         def infer_trained_model(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.infer_trained_model' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/info.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/info.rb
index c1f3d46670..15ad99be18 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/info.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/info.rb
@@ -26,7 +26,7 @@ module Actions
         #
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/get-ml-info.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-ml-info.html
         #
         def info(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.info' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/open_job.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/open_job.rb
index 69ab6ad44e..efbdf94b91 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/open_job.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/open_job.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Query parameters can be specified in the body
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-open-job.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-open-job.html
         #
         def open_job(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.open_job' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/post_calendar_events.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/post_calendar_events.rb
index c80bc49eab..feba279516 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/post_calendar_events.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/post_calendar_events.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body A list of events (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-post-calendar-event.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-post-calendar-event.html
         #
         def post_calendar_events(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.post_calendar_events' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/post_data.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/post_data.rb
index f19f58530b..1f95ddafbb 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/post_data.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/post_data.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The data to process (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-post-data.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-post-data.html
         #
         def post_data(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.post_data' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/preview_data_frame_analytics.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/preview_data_frame_analytics.rb
index 33e7ca9675..ec9982f555 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/preview_data_frame_analytics.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/preview_data_frame_analytics.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The data frame analytics config to preview
         #
-        # @see http://www.elastic.co/guide/en/elasticsearch/reference/current/preview-dfanalytics.html
+        # @see http://www.elastic.co/guide/en/elasticsearch/reference/8.18/preview-dfanalytics.html
         #
         def preview_data_frame_analytics(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.preview_data_frame_analytics' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/preview_datafeed.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/preview_datafeed.rb
index 78f421329b..0916818116 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/preview_datafeed.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/preview_datafeed.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The datafeed config and job config with which to execute the preview
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-preview-datafeed.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-preview-datafeed.html
         #
         def preview_datafeed(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.preview_datafeed' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_calendar.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_calendar.rb
index 6bac27c8cc..928f23e534 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_calendar.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_calendar.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The calendar details
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-calendar.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-put-calendar.html
         #
         def put_calendar(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.put_calendar' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_calendar_job.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_calendar_job.rb
index 5c7b779e81..144ef54a05 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_calendar_job.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_calendar_job.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [String] :job_id The ID of the job to add to the calendar
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-calendar-job.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-put-calendar-job.html
         #
         def put_calendar_job(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.put_calendar_job' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_data_frame_analytics.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_data_frame_analytics.rb
index 737b51a739..f07f554aef 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_data_frame_analytics.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_data_frame_analytics.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The data frame analytics configuration (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/put-dfanalytics.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/put-dfanalytics.html
         #
         def put_data_frame_analytics(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.put_data_frame_analytics' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_datafeed.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_datafeed.rb
index 55ac679569..c99583d3dc 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_datafeed.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_datafeed.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The datafeed config (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-datafeed.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-put-datafeed.html
         #
         def put_datafeed(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.put_datafeed' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_filter.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_filter.rb
index b08ad3dc1c..8762caf33c 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_filter.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_filter.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The filter details (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-filter.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-put-filter.html
         #
         def put_filter(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.put_filter' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_job.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_job.rb
index d5cebda595..2077badd22 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_job.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_job.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The job (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-job.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-put-job.html
         #
         def put_job(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.put_job' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_trained_model.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_trained_model.rb
index 5107273c56..2358e79fec 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_trained_model.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_trained_model.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The trained model configuration (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/put-trained-models.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/put-trained-models.html
         #
         def put_trained_model(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.put_trained_model' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_trained_model_alias.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_trained_model_alias.rb
index 9da28749f1..2177bb7839 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_trained_model_alias.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_trained_model_alias.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Boolean] :reassign If the model_alias already exists and points to a separate model_id, this parameter must be true. Defaults to false.
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/put-trained-models-aliases.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/put-trained-models-aliases.html
         #
         def put_trained_model_alias(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.put_trained_model_alias' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_trained_model_definition_part.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_trained_model_definition_part.rb
index 5fb6155e59..9a65ffe117 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_trained_model_definition_part.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_trained_model_definition_part.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The trained model definition part (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/put-trained-model-definition-part.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/put-trained-model-definition-part.html
         #
         def put_trained_model_definition_part(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.put_trained_model_definition_part' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_trained_model_vocabulary.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_trained_model_vocabulary.rb
index f080f5f763..6eabc95b9e 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_trained_model_vocabulary.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/put_trained_model_vocabulary.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The trained model vocabulary (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/put-trained-model-vocabulary.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/put-trained-model-vocabulary.html
         #
         def put_trained_model_vocabulary(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.put_trained_model_vocabulary' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/reset_job.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/reset_job.rb
index a5ce0e1b20..487e25c065 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/reset_job.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/reset_job.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Boolean] :delete_user_annotations Should annotations added by the user be deleted
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-reset-job.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-reset-job.html
         #
         def reset_job(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.reset_job' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/revert_model_snapshot.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/revert_model_snapshot.rb
index 80f70b212a..e4cab8d231 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/revert_model_snapshot.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/revert_model_snapshot.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Reversion options
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-revert-snapshot.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-revert-snapshot.html
         #
         def revert_model_snapshot(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.revert_model_snapshot' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/set_upgrade_mode.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/set_upgrade_mode.rb
index 08bba48120..94c9714256 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/set_upgrade_mode.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/set_upgrade_mode.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Time] :timeout Controls the time to wait before action times out. Defaults to 30 seconds
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-set-upgrade-mode.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-set-upgrade-mode.html
         #
         def set_upgrade_mode(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.set_upgrade_mode' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/start_data_frame_analytics.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/start_data_frame_analytics.rb
index f54893de3d..4ce626182a 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/start_data_frame_analytics.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/start_data_frame_analytics.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The start data frame analytics parameters
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/start-dfanalytics.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/start-dfanalytics.html
         #
         def start_data_frame_analytics(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.start_data_frame_analytics' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/start_datafeed.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/start_datafeed.rb
index ec6b3957df..075a6b5fcf 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/start_datafeed.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/start_datafeed.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The start datafeed parameters
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-start-datafeed.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-start-datafeed.html
         #
         def start_datafeed(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.start_datafeed' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/start_trained_model_deployment.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/start_trained_model_deployment.rb
index 9a63f004ab..a5a2e93a0c 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/start_trained_model_deployment.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/start_trained_model_deployment.rb
@@ -34,8 +34,9 @@ module Actions
         # @option arguments [Time] :timeout Controls the amount of time to wait for the model to deploy.
         # @option arguments [String] :wait_for The allocation status for which to wait (options: starting, started, fully_allocated)
         # @option arguments [Hash] :headers Custom HTTP headers
+        # @option arguments [Hash] :body The settings for the trained model deployment
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/start-trained-model-deployment.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/start-trained-model-deployment.html
         #
         def start_trained_model_deployment(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.start_trained_model_deployment' }
@@ -50,7 +51,7 @@ def start_trained_model_deployment(arguments = {})
           arguments = arguments.clone
           headers = arguments.delete(:headers) || {}
 
-          body = nil
+          body = arguments.delete(:body)
 
           _model_id = arguments.delete(:model_id)
 
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/stop_data_frame_analytics.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/stop_data_frame_analytics.rb
index 142085941a..49c50e069a 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/stop_data_frame_analytics.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/stop_data_frame_analytics.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The stop data frame analytics parameters
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/stop-dfanalytics.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/stop-dfanalytics.html
         #
         def stop_data_frame_analytics(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.stop_data_frame_analytics' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/stop_datafeed.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/stop_datafeed.rb
index dd7e8f0ad3..db8b6e7e19 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/stop_datafeed.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/stop_datafeed.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The URL params optionally sent in the body
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-stop-datafeed.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-stop-datafeed.html
         #
         def stop_datafeed(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.stop_datafeed' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/stop_trained_model_deployment.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/stop_trained_model_deployment.rb
index df59c9fb7a..14b69db615 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/stop_trained_model_deployment.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/stop_trained_model_deployment.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The stop deployment parameters
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/stop-trained-model-deployment.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/stop-trained-model-deployment.html
         #
         def stop_trained_model_deployment(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.stop_trained_model_deployment' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/update_data_frame_analytics.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/update_data_frame_analytics.rb
index fe5c713b46..1e7760e788 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/update_data_frame_analytics.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/update_data_frame_analytics.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The data frame analytics settings to update (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/update-dfanalytics.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/update-dfanalytics.html
         #
         def update_data_frame_analytics(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.update_data_frame_analytics' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/update_datafeed.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/update_datafeed.rb
index 34dc4dc9e3..8df6510b0f 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/update_datafeed.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/update_datafeed.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The datafeed update settings (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-update-datafeed.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-update-datafeed.html
         #
         def update_datafeed(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.update_datafeed' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/update_filter.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/update_filter.rb
index a540151478..cd2b57ccc1 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/update_filter.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/update_filter.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The filter update (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-update-filter.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-update-filter.html
         #
         def update_filter(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.update_filter' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/update_job.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/update_job.rb
index 6ed25d906e..4b0c9779ab 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/update_job.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/update_job.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The job update settings (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-update-job.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-update-job.html
         #
         def update_job(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.update_job' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/update_model_snapshot.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/update_model_snapshot.rb
index 06c73a0dcc..6a02372e52 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/update_model_snapshot.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/update_model_snapshot.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The model snapshot properties to update (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-update-snapshot.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-update-snapshot.html
         #
         def update_model_snapshot(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.update_model_snapshot' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/update_trained_model_deployment.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/update_trained_model_deployment.rb
index 64c623c328..8592ec8b6c 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/update_trained_model_deployment.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/update_trained_model_deployment.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The updated trained model deployment settings
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/update-trained-model-deployment.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/update-trained-model-deployment.html
         #
         def update_trained_model_deployment(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.update_trained_model_deployment' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/upgrade_job_snapshot.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/upgrade_job_snapshot.rb
index 7d21a2afd3..d6884653de 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/upgrade_job_snapshot.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/upgrade_job_snapshot.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Boolean] :wait_for_completion Should the request wait until the task is complete before responding to the caller. Default is false.
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-upgrade-job-model-snapshot.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/ml-upgrade-job-model-snapshot.html
         #
         def upgrade_job_snapshot(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.upgrade_job_snapshot' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/validate.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/validate.rb
index 66a4a8a394..565417e359 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/validate.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/validate.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The job config (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/machine-learning/current/ml-jobs.html
+        # @see https://www.elastic.co/guide/en/machine-learning/8.18/ml-jobs.html
         #
         def validate(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.validate' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/validate_detector.rb b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/validate_detector.rb
index 77f97b9c46..23bc792deb 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/validate_detector.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/machine_learning/validate_detector.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The detector (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/machine-learning/current/ml-jobs.html
+        # @see https://www.elastic.co/guide/en/machine-learning/8.18/ml-jobs.html
         #
         def validate_detector(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ml.validate_detector' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/mget.rb b/elasticsearch-api/lib/elasticsearch/api/actions/mget.rb
index ada183568f..e01026775a 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/mget.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/mget.rb
@@ -36,7 +36,7 @@ module Actions
       # @option arguments [Hash] :headers Custom HTTP headers
       # @option arguments [Hash] :body Document identifiers; can be either `docs` (containing full document information) or `ids` (when index is provided in the URL. (*Required*)
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-multi-get.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/docs-multi-get.html
       #
       def mget(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'mget' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/migration/deprecations.rb b/elasticsearch-api/lib/elasticsearch/api/actions/migration/deprecations.rb
index 561bfa4c0d..ef6243a4c9 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/migration/deprecations.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/migration/deprecations.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [String] :index Index pattern
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/migration-api-deprecation.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/migration-api-deprecation.html
         #
         def deprecations(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'migration.deprecations' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/migration/get_feature_upgrade_status.rb b/elasticsearch-api/lib/elasticsearch/api/actions/migration/get_feature_upgrade_status.rb
index b5263b949f..67c133eefe 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/migration/get_feature_upgrade_status.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/migration/get_feature_upgrade_status.rb
@@ -26,7 +26,7 @@ module Actions
         #
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/migration-api-feature-upgrade.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/migration-api-feature-upgrade.html
         #
         def get_feature_upgrade_status(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'migration.get_feature_upgrade_status' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/migration/post_feature_upgrade.rb b/elasticsearch-api/lib/elasticsearch/api/actions/migration/post_feature_upgrade.rb
index 64f31d63d6..ebc94c29b9 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/migration/post_feature_upgrade.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/migration/post_feature_upgrade.rb
@@ -26,7 +26,7 @@ module Actions
         #
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/migration-api-feature-upgrade.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/migration-api-feature-upgrade.html
         #
         def post_feature_upgrade(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'migration.post_feature_upgrade' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/monitoring/bulk.rb b/elasticsearch-api/lib/elasticsearch/api/actions/monitoring/bulk.rb
index fe2526af71..65812972d4 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/monitoring/bulk.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/monitoring/bulk.rb
@@ -37,7 +37,7 @@ module Actions
         # Deprecated since version 7.0.0
         #
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/monitor-elasticsearch-cluster.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/monitor-elasticsearch-cluster.html
         #
         def bulk(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'monitoring.bulk' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/msearch.rb b/elasticsearch-api/lib/elasticsearch/api/actions/msearch.rb
index 4b326a03fc..673ee8968b 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/msearch.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/msearch.rb
@@ -31,10 +31,16 @@ module Actions
       # @option arguments [Number] :max_concurrent_shard_requests The number of concurrent shard requests each sub search executes concurrently per node. 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
       # @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
       # @option arguments [Boolean] :ccs_minimize_roundtrips Indicates whether network round-trips should be minimized as part of cross-cluster search requests execution
+      # @option arguments [Boolean] :ignore_unavailable Whether specified concrete indices should be ignored when unavailable (missing or closed)
+      # @option arguments [Boolean] :ignore_throttled Whether specified concrete, expanded or aliased indices should be ignored when throttled *Deprecated*
+      # @option arguments [Boolean] :allow_no_indices Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
+      # @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)
+      # @option arguments [List] :routing A comma-separated list of specific routing values
+      # @option arguments [Boolean] :include_named_queries_score Indicates whether hit.matched_queries should be rendered as a map that includes the name of the matched query associated with its score (true) or as an array containing the name of the matched queries (false)
       # @option arguments [Hash] :headers Custom HTTP headers
       # @option arguments [Hash] :body The request definitions (metadata-search request definition pairs), separated by newlines (*Required*)
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/search-multi-search.html
       #
       def msearch(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'msearch' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/msearch_template.rb b/elasticsearch-api/lib/elasticsearch/api/actions/msearch_template.rb
index 9f8c741f39..d4f3bc7612 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/msearch_template.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/msearch_template.rb
@@ -32,7 +32,7 @@ module Actions
       # @option arguments [Hash] :headers Custom HTTP headers
       # @option arguments [Hash] :body The request definitions (metadata-search request definition pairs), separated by newlines (*Required*)
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/search-multi-search.html
       #
       def msearch_template(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'msearch_template' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/mtermvectors.rb b/elasticsearch-api/lib/elasticsearch/api/actions/mtermvectors.rb
index 2621ff9d51..3f109dcdf2 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/mtermvectors.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/mtermvectors.rb
@@ -39,7 +39,7 @@ module Actions
       # @option arguments [Hash] :headers Custom HTTP headers
       # @option arguments [Hash] :body Define ids, documents, parameters or a list of parameters per document here. You must at least provide a list of document ids. See documentation.
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-multi-termvectors.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/docs-multi-termvectors.html
       #
       def mtermvectors(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'mtermvectors' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/nodes/clear_repositories_metering_archive.rb b/elasticsearch-api/lib/elasticsearch/api/actions/nodes/clear_repositories_metering_archive.rb
index 9d26816ac4..c695324481 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/nodes/clear_repositories_metering_archive.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/nodes/clear_repositories_metering_archive.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Long] :max_archive_version Specifies the maximum archive_version to be cleared from the archive.
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/clear-repositories-metering-archive-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/clear-repositories-metering-archive-api.html
         #
         def clear_repositories_metering_archive(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'nodes.clear_repositories_metering_archive' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/nodes/get_repositories_metering_info.rb b/elasticsearch-api/lib/elasticsearch/api/actions/nodes/get_repositories_metering_info.rb
index 9afe42fab4..44cf9272df 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/nodes/get_repositories_metering_info.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/nodes/get_repositories_metering_info.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [List] :node_id A comma-separated list of node IDs or names to limit the returned information.
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/get-repositories-metering-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-repositories-metering-api.html
         #
         def get_repositories_metering_info(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'nodes.get_repositories_metering_info' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/nodes/hot_threads.rb b/elasticsearch-api/lib/elasticsearch/api/actions/nodes/hot_threads.rb
index 20465247db..6f5b3a9975 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/nodes/hot_threads.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/nodes/hot_threads.rb
@@ -34,7 +34,7 @@ module Actions
         # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-hot-threads.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cluster-nodes-hot-threads.html
         #
         def hot_threads(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'nodes.hot_threads' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/nodes/info.rb b/elasticsearch-api/lib/elasticsearch/api/actions/nodes/info.rb
index 0fb3986309..a8caef77fb 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/nodes/info.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/nodes/info.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-info.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cluster-nodes-info.html
         #
         def info(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'nodes.info' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/nodes/reload_secure_settings.rb b/elasticsearch-api/lib/elasticsearch/api/actions/nodes/reload_secure_settings.rb
index 8c7ed792db..eff29af232 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/nodes/reload_secure_settings.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/nodes/reload_secure_settings.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body An object containing the password for the elasticsearch keystore
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/secure-settings.html#reloadable-secure-settings
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/secure-settings.html#reloadable-secure-settings
         #
         def reload_secure_settings(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'nodes.reload_secure_settings' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/nodes/stats.rb b/elasticsearch-api/lib/elasticsearch/api/actions/nodes/stats.rb
index 318d8c217c..4d226ef718 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/nodes/stats.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/nodes/stats.rb
@@ -38,7 +38,7 @@ module Actions
         # @option arguments [Boolean] :include_unloaded_segments If set to true segment stats will include stats for segments that are not currently loaded into memory
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-stats.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cluster-nodes-stats.html
         #
         def stats(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'nodes.stats' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/nodes/usage.rb b/elasticsearch-api/lib/elasticsearch/api/actions/nodes/usage.rb
index 9d5150ab6c..446fb66c9b 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/nodes/usage.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/nodes/usage.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-usage.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/cluster-nodes-usage.html
         #
         def usage(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'nodes.usage' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/open_point_in_time.rb b/elasticsearch-api/lib/elasticsearch/api/actions/open_point_in_time.rb
index 3324db458f..71eede1453 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/open_point_in_time.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/open_point_in_time.rb
@@ -29,10 +29,12 @@ module Actions
       # @option arguments [Boolean] :ignore_unavailable Whether specified concrete indices should be ignored when unavailable (missing or closed)
       # @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)
       # @option arguments [String] :keep_alive Specific the time to live for the point in time (*Required*)
+      # @option arguments [Boolean] :allow_partial_search_results Specify whether to tolerate shards missing when creating the point-in-time, or otherwise throw an exception. (default: false)
+      # @option arguments [Number] :max_concurrent_shard_requests The number of concurrent shard requests per node executed concurrently when opening this point-in-time. This value should be used to limit the impact of opening the point-in-time on the cluster
       # @option arguments [Hash] :headers Custom HTTP headers
       # @option arguments [Hash] :body An index_filter specified with the Query DSL
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/point-in-time-api.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/point-in-time-api.html
       #
       def open_point_in_time(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'open_point_in_time' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/ping.rb b/elasticsearch-api/lib/elasticsearch/api/actions/ping.rb
index 7f8dd0bbf8..f15beff9bb 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/ping.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/ping.rb
@@ -25,7 +25,7 @@ module Actions
       #
       # @option arguments [Hash] :headers Custom HTTP headers
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/index.html
       #
       def ping(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'ping' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/profiling/flamegraph.rb b/elasticsearch-api/lib/elasticsearch/api/actions/profiling/flamegraph.rb
index a809de4a9e..fdc85d8067 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/profiling/flamegraph.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/profiling/flamegraph.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The filter conditions for the flamegraph (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/observability/current/universal-profiling.html
+        # @see https://www.elastic.co/guide/en/observability/8.18/universal-profiling.html
         #
         def flamegraph(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'profiling.flamegraph' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/profiling/stacktraces.rb b/elasticsearch-api/lib/elasticsearch/api/actions/profiling/stacktraces.rb
index 5d2e78c2e3..bbb1b0efe6 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/profiling/stacktraces.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/profiling/stacktraces.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The filter conditions for stacktraces (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/observability/current/universal-profiling.html
+        # @see https://www.elastic.co/guide/en/observability/8.18/universal-profiling.html
         #
         def stacktraces(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'profiling.stacktraces' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/profiling/status.rb b/elasticsearch-api/lib/elasticsearch/api/actions/profiling/status.rb
index 78c74a494a..6f95c51f32 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/profiling/status.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/profiling/status.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Boolean] :wait_for_resources_created Whether to return immediately or wait until resources have been created
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/observability/current/universal-profiling.html
+        # @see https://www.elastic.co/guide/en/observability/8.18/universal-profiling.html
         #
         def status(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'profiling.status' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/profiling/topn_functions.rb b/elasticsearch-api/lib/elasticsearch/api/actions/profiling/topn_functions.rb
index 856f84542b..31d9a75662 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/profiling/topn_functions.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/profiling/topn_functions.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The filter conditions for stacktraces (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/observability/current/universal-profiling.html
+        # @see https://www.elastic.co/guide/en/observability/8.18/universal-profiling.html
         #
         def topn_functions(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'profiling.topn_functions' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/put_script.rb b/elasticsearch-api/lib/elasticsearch/api/actions/put_script.rb
index b720d74044..37243b115b 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/put_script.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/put_script.rb
@@ -30,7 +30,7 @@ module Actions
       # @option arguments [Hash] :headers Custom HTTP headers
       # @option arguments [Hash] :body The document (*Required*)
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/modules-scripting.html
       #
       def put_script(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'put_script' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/delete_rule.rb b/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/delete_rule.rb
index a7f69d8916..e1a36ed2ef 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/delete_rule.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/delete_rule.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [String] :rule_id The unique identifier of the rule to delete.
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-query-rule.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/delete-query-rule.html
         #
         def delete_rule(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'query_rules.delete_rule' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/delete_ruleset.rb b/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/delete_ruleset.rb
index 057962e12a..7cd0c7e6b1 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/delete_ruleset.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/delete_ruleset.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [String] :ruleset_id The unique identifier of the query ruleset to delete
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-query-ruleset.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/delete-query-ruleset.html
         #
         def delete_ruleset(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'query_rules.delete_ruleset' }
@@ -48,11 +48,19 @@ def delete_ruleset(arguments = {})
 
           method = Elasticsearch::API::HTTP_DELETE
           path   = "_query_rules/#{Utils.__listify(_ruleset_id)}"
-          params = {}
+          params = Utils.process_params(arguments)
 
-          Elasticsearch::API::Response.new(
-            perform_request(method, path, params, body, headers, request_opts)
-          )
+          if Array(arguments[:ignore]).include?(404)
+            Utils.__rescue_from_not_found do
+              Elasticsearch::API::Response.new(
+                perform_request(method, path, params, body, headers, request_opts)
+              )
+            end
+          else
+            Elasticsearch::API::Response.new(
+              perform_request(method, path, params, body, headers, request_opts)
+            )
+          end
         end
       end
     end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/get_rule.rb b/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/get_rule.rb
index 579d2a9627..1984b7b8d4 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/get_rule.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/get_rule.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [String] :rule_id The unique identifier of the rule to be retrieved.
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/get-query-rule.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-query-rule.html
         #
         def get_rule(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'query_rules.get_rule' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/get_ruleset.rb b/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/get_ruleset.rb
index 3eb2931d90..3884e73260 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/get_ruleset.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/get_ruleset.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [String] :ruleset_id The unique identifier of the query ruleset
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/get-query-ruleset.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-query-ruleset.html
         #
         def get_ruleset(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'query_rules.get_ruleset' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/list_rulesets.rb b/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/list_rulesets.rb
index 46cb469e2a..b7744a1696 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/list_rulesets.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/list_rulesets.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Integer] :size specifies a max number of results to get (default: 100)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/list-query-rulesets.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/list-query-rulesets.html
         #
         def list_rulesets(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'query_rules.list_rulesets' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/put_rule.rb b/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/put_rule.rb
index 659f785d6c..d1cba55923 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/put_rule.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/put_rule.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The query rule configuration, including the type of rule, the criteria to match the rule, and the action that should be taken if the rule matches. (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/put-query-rule.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/put-query-rule.html
         #
         def put_rule(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'query_rules.put_rule' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/put_ruleset.rb b/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/put_ruleset.rb
index ed042f3960..d23ad6bf43 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/put_ruleset.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/put_ruleset.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The query ruleset configuration, including `rules` (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/put-query-ruleset.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/put-query-ruleset.html
         #
         def put_ruleset(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'query_rules.put_ruleset' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/test.rb b/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/test.rb
new file mode 100644
index 0000000000..b685cd7abf
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/query_rules/test.rb
@@ -0,0 +1,66 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module QueryRules
+      module Actions
+        # Tests a query ruleset to identify the rules that would match input criteria
+        # This functionality is Experimental and may be changed or removed
+        # completely in a future release. Elastic will take a best effort approach
+        # to fix any issues, but experimental features are not subject to the
+        # support SLA of official GA features.
+        #
+        # @option arguments [String] :ruleset_id The unique identifier of the ruleset to test.
+        # @option arguments [Hash] :headers Custom HTTP headers
+        # @option arguments [Hash] :body The match criteria to test against the ruleset (*Required*)
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/test-query-ruleset.html
+        #
+        def test(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'query_rules.test' }
+
+          defined_params = [:ruleset_id].each_with_object({}) do |variable, set_variables|
+            set_variables[variable] = arguments[variable] if arguments.key?(variable)
+          end
+          request_opts[:defined_params] = defined_params unless defined_params.empty?
+
+          raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]
+          raise ArgumentError, "Required argument 'ruleset_id' missing" unless arguments[:ruleset_id]
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body = arguments.delete(:body)
+
+          _ruleset_id = arguments.delete(:ruleset_id)
+
+          method = Elasticsearch::API::HTTP_POST
+          path   = "_query_rules/#{Utils.__listify(_ruleset_id)}/_test"
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/rank_eval.rb b/elasticsearch-api/lib/elasticsearch/api/actions/rank_eval.rb
index f9477705e7..d87f01ed69 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/rank_eval.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/rank_eval.rb
@@ -31,7 +31,7 @@ module Actions
       # @option arguments [Hash] :headers Custom HTTP headers
       # @option arguments [Hash] :body The ranking evaluation search definition, including search requests, document ratings and ranking metric definition. (*Required*)
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-rank-eval.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/search-rank-eval.html
       #
       def rank_eval(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'rank_eval' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/reindex.rb b/elasticsearch-api/lib/elasticsearch/api/actions/reindex.rb
index 1447568931..52184cfc11 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/reindex.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/reindex.rb
@@ -33,10 +33,11 @@ module Actions
       # @option arguments [Time] :scroll Control how long to keep the search context alive
       # @option arguments [Number|string] :slices The number of slices this task should be divided into. Defaults to 1, meaning the task isn't sliced into subtasks. Can be set to `auto`.
       # @option arguments [Number] :max_docs Maximum number of documents to process (default: all documents)
+      # @option arguments [Boolean] :require_alias When true, requires destination to be an alias.
       # @option arguments [Hash] :headers Custom HTTP headers
       # @option arguments [Hash] :body The search definition using the Query DSL and the prototype for the index request. (*Required*)
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-reindex.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/docs-reindex.html
       #
       def reindex(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'reindex' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/reindex_rethrottle.rb b/elasticsearch-api/lib/elasticsearch/api/actions/reindex_rethrottle.rb
index e528d3b6ed..5178396ea8 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/reindex_rethrottle.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/reindex_rethrottle.rb
@@ -27,7 +27,7 @@ module Actions
       # @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*)
       # @option arguments [Hash] :headers Custom HTTP headers
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-reindex.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/docs-reindex.html
       #
       def reindex_rethrottle(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'reindex_rethrottle' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/render_search_template.rb b/elasticsearch-api/lib/elasticsearch/api/actions/render_search_template.rb
index 90de6aaea6..eea6338f30 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/render_search_template.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/render_search_template.rb
@@ -27,7 +27,7 @@ module Actions
       # @option arguments [Hash] :headers Custom HTTP headers
       # @option arguments [Hash] :body The search definition template and its params
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/render-search-template-api.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/render-search-template-api.html
       #
       def render_search_template(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'render_search_template' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/rollup/delete_job.rb b/elasticsearch-api/lib/elasticsearch/api/actions/rollup/delete_job.rb
index fe87cfa556..85e711196d 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/rollup/delete_job.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/rollup/delete_job.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [String] :id The ID of the job to delete
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/rollup-delete-job.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/rollup-delete-job.html
         #
         def delete_job(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'rollup.delete_job' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/rollup/get_jobs.rb b/elasticsearch-api/lib/elasticsearch/api/actions/rollup/get_jobs.rb
index 4344386526..9e07eef727 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/rollup/get_jobs.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/rollup/get_jobs.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [String] :id The ID of the job(s) to fetch. Accepts glob patterns, or left blank for all jobs
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/rollup-get-job.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/rollup-get-job.html
         #
         def get_jobs(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'rollup.get_jobs' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/rollup/get_rollup_caps.rb b/elasticsearch-api/lib/elasticsearch/api/actions/rollup/get_rollup_caps.rb
index 93ac86cec1..5df316b0c0 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/rollup/get_rollup_caps.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/rollup/get_rollup_caps.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [String] :id The ID of the index to check rollup capabilities on, or left blank for all jobs
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/rollup-get-rollup-caps.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/rollup-get-rollup-caps.html
         #
         def get_rollup_caps(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'rollup.get_rollup_caps' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/rollup/get_rollup_index_caps.rb b/elasticsearch-api/lib/elasticsearch/api/actions/rollup/get_rollup_index_caps.rb
index d530edc59f..0fc6b6b938 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/rollup/get_rollup_index_caps.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/rollup/get_rollup_index_caps.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [String] :index The rollup index or index pattern to obtain rollup capabilities from.
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/rollup-get-rollup-index-caps.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/rollup-get-rollup-index-caps.html
         #
         def get_rollup_index_caps(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'rollup.get_rollup_index_caps' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/rollup/put_job.rb b/elasticsearch-api/lib/elasticsearch/api/actions/rollup/put_job.rb
index 1286e65c2b..742524e79f 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/rollup/put_job.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/rollup/put_job.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The job configuration (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/rollup-put-job.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/rollup-put-job.html
         #
         def put_job(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'rollup.put_job' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/rollup/rollup_search.rb b/elasticsearch-api/lib/elasticsearch/api/actions/rollup/rollup_search.rb
index 597524c347..673d613353 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/rollup/rollup_search.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/rollup/rollup_search.rb
@@ -34,7 +34,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The search request body (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/rollup-search.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/rollup-search.html
         #
         def rollup_search(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'rollup.rollup_search' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/rollup/start_job.rb b/elasticsearch-api/lib/elasticsearch/api/actions/rollup/start_job.rb
index d1108d1ba3..499a2856be 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/rollup/start_job.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/rollup/start_job.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [String] :id The ID of the job to start
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/rollup-start-job.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/rollup-start-job.html
         #
         def start_job(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'rollup.start_job' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/rollup/stop_job.rb b/elasticsearch-api/lib/elasticsearch/api/actions/rollup/stop_job.rb
index f33070a4db..2863a05d23 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/rollup/stop_job.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/rollup/stop_job.rb
@@ -33,7 +33,7 @@ module Actions
         # @option arguments [Time] :timeout Block for (at maximum) the specified duration while waiting for the job to stop.  Defaults to 30s.
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/rollup-stop-job.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/rollup-stop-job.html
         #
         def stop_job(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'rollup.stop_job' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/scripts_painless_execute.rb b/elasticsearch-api/lib/elasticsearch/api/actions/scripts_painless_execute.rb
index e9cc67da66..49b75d071c 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/scripts_painless_execute.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/scripts_painless_execute.rb
@@ -30,7 +30,7 @@ module Actions
       # @option arguments [Hash] :headers Custom HTTP headers
       # @option arguments [Hash] :body The script to execute
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/painless/current/painless-execute-api.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/painless/8.18/painless-execute-api.html
       #
       def scripts_painless_execute(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'scripts_painless_execute' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/scroll.rb b/elasticsearch-api/lib/elasticsearch/api/actions/scroll.rb
index 2885c09a83..36245c62fb 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/scroll.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/scroll.rb
@@ -34,7 +34,7 @@ module Actions
       # Deprecated since version 7.0.0
       #
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-body.html#request-body-search-scroll
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/search-request-body.html#request-body-search-scroll
       #
       def scroll(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'scroll' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/search.rb b/elasticsearch-api/lib/elasticsearch/api/actions/search.rb
index af314d82db..95248ac68a 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/search.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/search.rb
@@ -72,7 +72,7 @@ module Actions
       # @option arguments [Hash] :headers Custom HTTP headers
       # @option arguments [Hash] :body The search definition using the Query DSL
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-search.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/search-search.html
       #
       def search(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'search' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/search_application/delete.rb b/elasticsearch-api/lib/elasticsearch/api/actions/search_application/delete.rb
index 165e1093dd..c1560cf973 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/search_application/delete.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/search_application/delete.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [String] :name The name of the search application
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-search-application.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/delete-search-application.html
         #
         def delete(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'search_application.delete' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/search_application/delete_behavioral_analytics.rb b/elasticsearch-api/lib/elasticsearch/api/actions/search_application/delete_behavioral_analytics.rb
index 38ab030e26..a6bf570ee3 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/search_application/delete_behavioral_analytics.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/search_application/delete_behavioral_analytics.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [String] :name The name of the analytics collection to be deleted
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-analytics-collection.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/delete-analytics-collection.html
         #
         def delete_behavioral_analytics(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'search_application.delete_behavioral_analytics' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/search_application/get.rb b/elasticsearch-api/lib/elasticsearch/api/actions/search_application/get.rb
index a860983d7f..b1c8406f98 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/search_application/get.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/search_application/get.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [String] :name The name of the search application
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/get-search-application.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-search-application.html
         #
         def get(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'search_application.get' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/search_application/get_behavioral_analytics.rb b/elasticsearch-api/lib/elasticsearch/api/actions/search_application/get_behavioral_analytics.rb
index 03162964b8..05fad06d07 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/search_application/get_behavioral_analytics.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/search_application/get_behavioral_analytics.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [List] :name A comma-separated list of analytics collections to limit the returned information
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/list-analytics-collection.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/list-analytics-collection.html
         #
         def get_behavioral_analytics(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'search_application.get_behavioral_analytics' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/search_application/list.rb b/elasticsearch-api/lib/elasticsearch/api/actions/search_application/list.rb
index e16653f8d0..44174e68dc 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/search_application/list.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/search_application/list.rb
@@ -33,7 +33,7 @@ module Actions
         # @option arguments [Integer] :size specifies a max number of results to get
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/list-search-applications.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/list-search-applications.html
         #
         def list(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'search_application.list' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/search_application/put.rb b/elasticsearch-api/lib/elasticsearch/api/actions/search_application/put.rb
index 4b71715586..eca8b39b9e 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/search_application/put.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/search_application/put.rb
@@ -33,7 +33,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The search application configuration, including `indices` (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/put-search-application.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/put-search-application.html
         #
         def put(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'search_application.put' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/search_application/put_behavioral_analytics.rb b/elasticsearch-api/lib/elasticsearch/api/actions/search_application/put_behavioral_analytics.rb
index b04054239f..fca1f6732a 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/search_application/put_behavioral_analytics.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/search_application/put_behavioral_analytics.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [String] :name The name of the analytics collection to be created or updated
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/put-analytics-collection.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/put-analytics-collection.html
         #
         def put_behavioral_analytics(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'search_application.put_behavioral_analytics' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/search_application/render_query.rb b/elasticsearch-api/lib/elasticsearch/api/actions/search_application/render_query.rb
index b6d21c350a..66d55e6061 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/search_application/render_query.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/search_application/render_query.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Search parameters, which will override any default search parameters defined in the search application template
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-application-render-query.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/search-application-render-query.html
         #
         def render_query(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'search_application.render_query' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/search_application/search.rb b/elasticsearch-api/lib/elasticsearch/api/actions/search_application/search.rb
index f3a7797355..66e47471c0 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/search_application/search.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/search_application/search.rb
@@ -33,7 +33,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Search parameters, including template parameters that override defaults
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-application-search.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/search-application-search.html
         #
         def search(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'search_application.search' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/search_mvt.rb b/elasticsearch-api/lib/elasticsearch/api/actions/search_mvt.rb
index 80bde3ce4f..2d12739082 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/search_mvt.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/search_mvt.rb
@@ -36,13 +36,14 @@ module Actions
       # @option arguments [Integer] :extent Size, in pixels, of a side of the vector tile.
       # @option arguments [Integer] :grid_precision Additional zoom levels available through the aggs layer. Accepts 0-8.
       # @option arguments [String] :grid_type Determines the geometry type for features in the aggs layer. (options: grid, point, centroid)
+      # @option arguments [String] :grid_agg Aggregation used to create a grid for `field`. (options: geotile, geohex)
       # @option arguments [Integer] :size Maximum number of features to return in the hits layer. Accepts 0-10000.
       # @option arguments [Boolean|long] :track_total_hits Indicate if the number of documents that match the query should be tracked. A number can also be specified, to accurately track the total hit count up to the number.
       # @option arguments [Boolean] :with_labels If true, the hits and aggs layers will contain additional point features with suggested label positions for the original features.
       # @option arguments [Hash] :headers Custom HTTP headers
       # @option arguments [Hash] :body Search request body.
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-vector-tile-api.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/search-vector-tile-api.html
       #
       def search_mvt(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'search_mvt' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/search_shards.rb b/elasticsearch-api/lib/elasticsearch/api/actions/search_shards.rb
index 70189da643..4708c832e0 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/search_shards.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/search_shards.rb
@@ -33,7 +33,7 @@ module Actions
       # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
       # @option arguments [Hash] :headers Custom HTTP headers
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-shards.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/search-shards.html
       #
       def search_shards(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'search_shards' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/search_template.rb b/elasticsearch-api/lib/elasticsearch/api/actions/search_template.rb
index 5b67dfb582..b0fbb3a4c7 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/search_template.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/search_template.rb
@@ -40,7 +40,7 @@ module Actions
       # @option arguments [Hash] :headers Custom HTTP headers
       # @option arguments [Hash] :body The search definition template and its params (*Required*)
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/search-template.html
       #
       def search_template(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'search_template' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/searchable_snapshots/cache_stats.rb b/elasticsearch-api/lib/elasticsearch/api/actions/searchable_snapshots/cache_stats.rb
index 89b16a6c14..bf84fa4262 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/searchable_snapshots/cache_stats.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/searchable_snapshots/cache_stats.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [List] :node_id A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/searchable-snapshots-apis.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/searchable-snapshots-apis.html
         #
         def cache_stats(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'searchable_snapshots.cache_stats' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/searchable_snapshots/clear_cache.rb b/elasticsearch-api/lib/elasticsearch/api/actions/searchable_snapshots/clear_cache.rb
index a7d0b6a246..529d0d5ce2 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/searchable_snapshots/clear_cache.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/searchable_snapshots/clear_cache.rb
@@ -34,7 +34,7 @@ module Actions
         # @option arguments [String] :expand_wildcards Whether to expand wildcard expression to concrete indices that are open, closed or both. (options: open, closed, none, all)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/searchable-snapshots-apis.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/searchable-snapshots-apis.html
         #
         def clear_cache(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'searchable_snapshots.clear_cache' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/searchable_snapshots/mount.rb b/elasticsearch-api/lib/elasticsearch/api/actions/searchable_snapshots/mount.rb
index e8238c98b7..db5e23eb1f 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/searchable_snapshots/mount.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/searchable_snapshots/mount.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The restore configuration for mounting the snapshot as searchable (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/searchable-snapshots-api-mount-snapshot.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/searchable-snapshots-api-mount-snapshot.html
         #
         def mount(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'searchable_snapshots.mount' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/searchable_snapshots/stats.rb b/elasticsearch-api/lib/elasticsearch/api/actions/searchable_snapshots/stats.rb
index eafb705ad0..f9871bb5a5 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/searchable_snapshots/stats.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/searchable_snapshots/stats.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [String] :level Return stats aggregated at cluster, index or shard level (options: cluster, indices, shards)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/searchable-snapshots-apis.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/searchable-snapshots-apis.html
         #
         def stats(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'searchable_snapshots.stats' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/activate_user_profile.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/activate_user_profile.rb
index 776e2a88b7..deef868881 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/activate_user_profile.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/activate_user_profile.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The grant type and user's credential (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-activate-user-profile.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-activate-user-profile.html
         #
         def activate_user_profile(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.activate_user_profile' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/authenticate.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/authenticate.rb
index 03f02c57ea..94cab9929a 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/authenticate.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/authenticate.rb
@@ -26,7 +26,7 @@ module Actions
         #
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-authenticate.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-authenticate.html
         #
         def authenticate(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.authenticate' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/bulk_delete_role.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/bulk_delete_role.rb
index ae3d6bbfd1..642dc78aff 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/bulk_delete_role.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/bulk_delete_role.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The roles to delete (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-bulk-delete-role.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-bulk-delete-role.html
         #
         def bulk_delete_role(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.bulk_delete_role' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/bulk_put_role.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/bulk_put_role.rb
index 5ec4578391..1a66a71ab2 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/bulk_put_role.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/bulk_put_role.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The roles to add (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-bulk-put-role.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-bulk-put-role.html
         #
         def bulk_put_role(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.bulk_put_role' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/bulk_update_api_keys.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/bulk_update_api_keys.rb
index bf311c01f4..5f16234cdc 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/bulk_update_api_keys.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/bulk_update_api_keys.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The API key request to update the attributes of multiple API keys. (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-bulk-update-api-keys.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-bulk-update-api-keys.html
         #
         def bulk_update_api_keys(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.bulk_update_api_keys' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/change_password.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/change_password.rb
index 186861cdb7..ae21ee32ae 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/change_password.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/change_password.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body the new password for the user (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-change-password.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-change-password.html
         #
         def change_password(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.change_password' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/clear_api_key_cache.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/clear_api_key_cache.rb
index 8eb36221f1..7e4fa36668 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/clear_api_key_cache.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/clear_api_key_cache.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [List] :ids A comma-separated list of IDs of API keys to clear from the cache
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-clear-api-key-cache.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-clear-api-key-cache.html
         #
         def clear_api_key_cache(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.clear_api_key_cache' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/clear_cached_privileges.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/clear_cached_privileges.rb
index 2b6ff2d79e..a082f3d562 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/clear_cached_privileges.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/clear_cached_privileges.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [List] :application A comma-separated list of application names
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-clear-privilege-cache.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-clear-privilege-cache.html
         #
         def clear_cached_privileges(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.clear_cached_privileges' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/clear_cached_realms.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/clear_cached_realms.rb
index 9f427c62e3..98cff3900b 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/clear_cached_realms.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/clear_cached_realms.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [List] :usernames Comma-separated list of usernames to clear from the cache
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-clear-cache.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-clear-cache.html
         #
         def clear_cached_realms(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.clear_cached_realms' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/clear_cached_roles.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/clear_cached_roles.rb
index 8e253de2d5..3a61fa54aa 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/clear_cached_roles.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/clear_cached_roles.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [List] :name Role name
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-clear-role-cache.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-clear-role-cache.html
         #
         def clear_cached_roles(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.clear_cached_roles' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/clear_cached_service_tokens.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/clear_cached_service_tokens.rb
index e2d0d96d0b..1358f5bd15 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/clear_cached_service_tokens.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/clear_cached_service_tokens.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [List] :name A comma-separated list of service token names
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-clear-service-token-caches.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-clear-service-token-caches.html
         #
         def clear_cached_service_tokens(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.clear_cached_service_tokens' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/create_api_key.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/create_api_key.rb
index eb05c11c87..7c609c5b0e 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/create_api_key.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/create_api_key.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The api key request to create an API key (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-create-api-key.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-create-api-key.html
         #
         def create_api_key(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.create_api_key' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/create_cross_cluster_api_key.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/create_cross_cluster_api_key.rb
index 4933f9fbb8..3bfe846902 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/create_cross_cluster_api_key.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/create_cross_cluster_api_key.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The request to create a cross-cluster API key (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-create-cross-cluster-api-key.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-create-cross-cluster-api-key.html
         #
         def create_cross_cluster_api_key(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.create_cross_cluster_api_key' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/create_service_token.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/create_service_token.rb
index 9ebfacea38..befe6823ea 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/create_service_token.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/create_service_token.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [String] :refresh If `true` then refresh the affected shards to make this operation visible to search, if `wait_for` (the default) then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes. (options: true, false, wait_for)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-create-service-token.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-create-service-token.html
         #
         def create_service_token(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.create_service_token' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/delegate_pki.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/delegate_pki.rb
new file mode 100644
index 0000000000..c3b74ee63d
--- /dev/null
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/delegate_pki.rb
@@ -0,0 +1,53 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Auto generated from build hash f284cc16f4d4b4289bc679aa1529bb504190fe80
+# @see https://github.com/elastic/elasticsearch/tree/main/rest-api-spec
+#
+module Elasticsearch
+  module API
+    module Security
+      module Actions
+        # Delegate PKI authentication.
+        #
+        # @option arguments [Hash] :headers Custom HTTP headers
+        # @option arguments [Hash] :body The X509Certificate chain. (*Required*)
+        #
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-delegate-pki-authentication.html
+        #
+        def delegate_pki(arguments = {})
+          request_opts = { endpoint: arguments[:endpoint] || 'security.delegate_pki' }
+
+          raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]
+
+          arguments = arguments.clone
+          headers = arguments.delete(:headers) || {}
+
+          body   = arguments.delete(:body)
+
+          method = Elasticsearch::API::HTTP_POST
+          path   = '_security/delegate_pki'
+          params = {}
+
+          Elasticsearch::API::Response.new(
+            perform_request(method, path, params, body, headers, request_opts)
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/delete_privileges.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/delete_privileges.rb
index fa4260b296..df4f836ea9 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/delete_privileges.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/delete_privileges.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [String] :refresh If `true` (the default) then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes. (options: true, false, wait_for)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-delete-privilege.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-delete-privilege.html
         #
         def delete_privileges(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.delete_privileges' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/delete_role.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/delete_role.rb
index 81a755ea5a..c851790653 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/delete_role.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/delete_role.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [String] :refresh If `true` (the default) then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes. (options: true, false, wait_for)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-delete-role.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-delete-role.html
         #
         def delete_role(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.delete_role' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/delete_role_mapping.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/delete_role_mapping.rb
index 57cc5f4258..ae200d0c65 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/delete_role_mapping.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/delete_role_mapping.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [String] :refresh If `true` (the default) then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes. (options: true, false, wait_for)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-delete-role-mapping.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-delete-role-mapping.html
         #
         def delete_role_mapping(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.delete_role_mapping' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/delete_service_token.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/delete_service_token.rb
index e1e956f288..11b2eb5e70 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/delete_service_token.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/delete_service_token.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [String] :refresh If `true` then refresh the affected shards to make this operation visible to search, if `wait_for` (the default) then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes. (options: true, false, wait_for)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-delete-service-token.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-delete-service-token.html
         #
         def delete_service_token(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.delete_service_token' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/delete_user.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/delete_user.rb
index 6c60f97ffc..5206b5e49a 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/delete_user.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/delete_user.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [String] :refresh If `true` (the default) then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes. (options: true, false, wait_for)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-delete-user.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-delete-user.html
         #
         def delete_user(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.delete_user' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/disable_user.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/disable_user.rb
index cd15f71593..ab12b2731a 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/disable_user.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/disable_user.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [String] :refresh If `true` (the default) then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes. (options: true, false, wait_for)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-disable-user.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-disable-user.html
         #
         def disable_user(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.disable_user' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/disable_user_profile.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/disable_user_profile.rb
index 890f6959c9..6732d8306b 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/disable_user_profile.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/disable_user_profile.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [String] :refresh If `true` then refresh the affected shards to make this operation visible to search, if `wait_for` (the default) then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes. (options: true, false, wait_for)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-disable-user-profile.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-disable-user-profile.html
         #
         def disable_user_profile(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.disable_user_profile' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/enable_user.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/enable_user.rb
index e6dadc479f..5b998e7c16 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/enable_user.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/enable_user.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [String] :refresh If `true` (the default) then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes. (options: true, false, wait_for)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-enable-user.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-enable-user.html
         #
         def enable_user(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.enable_user' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/enable_user_profile.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/enable_user_profile.rb
index c494854720..975fe3529b 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/enable_user_profile.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/enable_user_profile.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [String] :refresh If `true` then refresh the affected shards to make this operation visible to search, if `wait_for` (the default) then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes. (options: true, false, wait_for)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-enable-user-profile.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-enable-user-profile.html
         #
         def enable_user_profile(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.enable_user_profile' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/enroll_kibana.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/enroll_kibana.rb
index 9c16f925ef..517c8d03ae 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/enroll_kibana.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/enroll_kibana.rb
@@ -26,7 +26,7 @@ module Actions
         #
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-kibana-enrollment.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-kibana-enrollment.html
         #
         def enroll_kibana(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.enroll_kibana' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/enroll_node.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/enroll_node.rb
index 2a9dc5c0af..46082f8102 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/enroll_node.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/enroll_node.rb
@@ -26,7 +26,7 @@ module Actions
         #
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-node-enrollment.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-node-enrollment.html
         #
         def enroll_node(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.enroll_node' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/get_api_key.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/get_api_key.rb
index b023edb480..be9d92e0e0 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/get_api_key.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/get_api_key.rb
@@ -34,7 +34,7 @@ module Actions
         # @option arguments [Boolean] :active_only flag to limit response to only active (not invalidated or expired) API keys
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-api-key.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-get-api-key.html
         #
         def get_api_key(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.get_api_key' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/get_builtin_privileges.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/get_builtin_privileges.rb
index aac95e8a75..4a2514c865 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/get_builtin_privileges.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/get_builtin_privileges.rb
@@ -26,7 +26,7 @@ module Actions
         #
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-builtin-privileges.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-get-builtin-privileges.html
         #
         def get_builtin_privileges(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.get_builtin_privileges' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/get_privileges.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/get_privileges.rb
index 08b6a96c22..d4f0be4ac2 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/get_privileges.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/get_privileges.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [String] :name Privilege name
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-privileges.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-get-privileges.html
         #
         def get_privileges(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.get_privileges' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/get_role.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/get_role.rb
index 9b8f533987..fda788d7e6 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/get_role.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/get_role.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [List] :name A comma-separated list of role names
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-role.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-get-role.html
         #
         def get_role(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.get_role' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/get_role_mapping.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/get_role_mapping.rb
index 2c6a79f930..470dc79de6 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/get_role_mapping.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/get_role_mapping.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [List] :name A comma-separated list of role-mapping names
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-role-mapping.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-get-role-mapping.html
         #
         def get_role_mapping(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.get_role_mapping' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/get_service_accounts.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/get_service_accounts.rb
index 4bf5a17cf6..97883526c3 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/get_service_accounts.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/get_service_accounts.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [String] :service An identifier for the service name
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-service-accounts.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-get-service-accounts.html
         #
         def get_service_accounts(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.get_service_accounts' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/get_service_credentials.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/get_service_credentials.rb
index b66a44c054..cb41559c7c 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/get_service_credentials.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/get_service_credentials.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [String] :service An identifier for the service name
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-service-credentials.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-get-service-credentials.html
         #
         def get_service_credentials(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.get_service_credentials' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/get_settings.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/get_settings.rb
index ce1a6ba852..9c4e836a34 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/get_settings.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/get_settings.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Time] :master_timeout Timeout for connection to master
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-settings.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-get-settings.html
         #
         def get_settings(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.get_settings' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/get_token.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/get_token.rb
index bbe77102bb..e624d4588b 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/get_token.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/get_token.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The token request to get (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-token.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-get-token.html
         #
         def get_token(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.get_token' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/get_user.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/get_user.rb
index 94efebad8b..0df946e4bf 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/get_user.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/get_user.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Boolean] :with_profile_uid flag to retrieve profile uid (if exists) associated to the user
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-user.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-get-user.html
         #
         def get_user(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.get_user' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/get_user_privileges.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/get_user_privileges.rb
index 926460dc99..7dea9a6ed2 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/get_user_privileges.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/get_user_privileges.rb
@@ -26,7 +26,7 @@ module Actions
         #
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-user-privileges.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-get-user-privileges.html
         #
         def get_user_privileges(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.get_user_privileges' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/get_user_profile.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/get_user_profile.rb
index 85033b4a4d..c9973afd59 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/get_user_profile.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/get_user_profile.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [List] :data A comma-separated list of keys for which the corresponding application data are retrieved.
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-user-profile.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-get-user-profile.html
         #
         def get_user_profile(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.get_user_profile' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/grant_api_key.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/grant_api_key.rb
index 19567099a6..dbf6f842dc 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/grant_api_key.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/grant_api_key.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The api key request to create an API key (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-grant-api-key.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-grant-api-key.html
         #
         def grant_api_key(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.grant_api_key' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/has_privileges.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/has_privileges.rb
index db564b4390..ef1e696d64 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/has_privileges.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/has_privileges.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The privileges to test (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-has-privileges.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-has-privileges.html
         #
         def has_privileges(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.has_privileges' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/has_privileges_user_profile.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/has_privileges_user_profile.rb
index f65160e35c..7909a843f7 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/has_privileges_user_profile.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/has_privileges_user_profile.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The privileges to check and the list of profile IDs (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-has-privileges-user-profile.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-has-privileges-user-profile.html
         #
         def has_privileges_user_profile(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.has_privileges_user_profile' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/invalidate_api_key.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/invalidate_api_key.rb
index 4bc0e103fa..15a5b0e903 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/invalidate_api_key.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/invalidate_api_key.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The api key request to invalidate API key(s) (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-invalidate-api-key.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-invalidate-api-key.html
         #
         def invalidate_api_key(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.invalidate_api_key' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/invalidate_token.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/invalidate_token.rb
index dcae33c44c..0e1ff976e5 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/invalidate_token.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/invalidate_token.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The token to invalidate (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-invalidate-token.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-invalidate-token.html
         #
         def invalidate_token(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.invalidate_token' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/oidc_authenticate.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/oidc_authenticate.rb
index e100fc59b2..22a23cd3ba 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/oidc_authenticate.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/oidc_authenticate.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The OpenID Connect response to authenticate (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-oidc-authenticate.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-oidc-authenticate.html
         #
         def oidc_authenticate(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.oidc_authenticate' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/oidc_logout.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/oidc_logout.rb
index e39f9d4b34..a0784fb9a2 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/oidc_logout.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/oidc_logout.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Access token and refresh token to invalidate (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-oidc-logout.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-oidc-logout.html
         #
         def oidc_logout(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.oidc_logout' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/oidc_prepare_authentication.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/oidc_prepare_authentication.rb
index 2d9247ecd4..8b87401b4d 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/oidc_prepare_authentication.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/oidc_prepare_authentication.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The OpenID Connect authentication realm configuration (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-oidc-prepare-authentication.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-oidc-prepare-authentication.html
         #
         def oidc_prepare_authentication(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.oidc_prepare_authentication' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/put_privileges.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/put_privileges.rb
index 0e4b52836e..cd0dd95d5c 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/put_privileges.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/put_privileges.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The privilege(s) to add (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-put-privileges.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-put-privileges.html
         #
         def put_privileges(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.put_privileges' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/put_role.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/put_role.rb
index a0e102ee73..064f82db97 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/put_role.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/put_role.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The role to add (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-put-role.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-put-role.html
         #
         def put_role(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.put_role' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/put_role_mapping.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/put_role_mapping.rb
index 4e238c2d0b..a185f28b8c 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/put_role_mapping.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/put_role_mapping.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The role mapping to add (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-put-role-mapping.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-put-role-mapping.html
         #
         def put_role_mapping(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.put_role_mapping' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/put_user.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/put_user.rb
index 453d00ef59..7634573c3e 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/put_user.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/put_user.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The user to add (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-put-user.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-put-user.html
         #
         def put_user(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.put_user' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/query_api_keys.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/query_api_keys.rb
index 02cf165e18..54004e4339 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/query_api_keys.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/query_api_keys.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body From, size, query, sort and search_after
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-query-api-key.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-query-api-key.html
         #
         def query_api_keys(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.query_api_keys' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/query_role.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/query_role.rb
index c5d84ec159..82136e45e0 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/query_role.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/query_role.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body From, size, query, sort and search_after
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-query-role.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-query-role.html
         #
         def query_role(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.query_role' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/query_user.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/query_user.rb
index a4df6bb7ee..1f37e53eb8 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/query_user.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/query_user.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body From, size, query, sort and search_after
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-query-user.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-query-user.html
         #
         def query_user(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.query_user' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/saml_authenticate.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/saml_authenticate.rb
index 7d0486ca5c..6fd08c6f6b 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/saml_authenticate.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/saml_authenticate.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The SAML response to authenticate (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-saml-authenticate.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-saml-authenticate.html
         #
         def saml_authenticate(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.saml_authenticate' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/saml_complete_logout.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/saml_complete_logout.rb
index 7d0db5fec3..80c5ccce36 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/saml_complete_logout.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/saml_complete_logout.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The logout response to verify (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-saml-complete-logout.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-saml-complete-logout.html
         #
         def saml_complete_logout(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.saml_complete_logout' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/saml_invalidate.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/saml_invalidate.rb
index 28951664e4..d942245141 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/saml_invalidate.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/saml_invalidate.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The LogoutRequest message (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-saml-invalidate.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-saml-invalidate.html
         #
         def saml_invalidate(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.saml_invalidate' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/saml_logout.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/saml_logout.rb
index 17bccc2ddd..f82370a53f 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/saml_logout.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/saml_logout.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The tokens to invalidate (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-saml-logout.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-saml-logout.html
         #
         def saml_logout(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.saml_logout' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/saml_prepare_authentication.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/saml_prepare_authentication.rb
index 81bec3685d..8f5a28f4dc 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/saml_prepare_authentication.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/saml_prepare_authentication.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The realm for which to create the authentication request, identified by either its name or the ACS URL (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-saml-prepare-authentication.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-saml-prepare-authentication.html
         #
         def saml_prepare_authentication(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.saml_prepare_authentication' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/saml_service_provider_metadata.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/saml_service_provider_metadata.rb
index cecd339eee..718ca65c1d 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/saml_service_provider_metadata.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/saml_service_provider_metadata.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [String] :realm_name The name of the SAML realm to get the metadata for
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-saml-sp-metadata.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-saml-sp-metadata.html
         #
         def saml_service_provider_metadata(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.saml_service_provider_metadata' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/suggest_user_profiles.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/suggest_user_profiles.rb
index 566b2c9d3a..a82e7fa65f 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/suggest_user_profiles.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/suggest_user_profiles.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The suggestion definition for user profiles
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-suggest-user-profile.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-suggest-user-profile.html
         #
         def suggest_user_profiles(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.suggest_user_profiles' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/update_api_key.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/update_api_key.rb
index dad4b51305..0a10881950 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/update_api_key.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/update_api_key.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The API key request to update attributes of an API key.
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-update-api-key.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-update-api-key.html
         #
         def update_api_key(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.update_api_key' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/update_cross_cluster_api_key.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/update_cross_cluster_api_key.rb
index 141a5cd3af..1479bebdc4 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/update_cross_cluster_api_key.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/update_cross_cluster_api_key.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The request to update attributes of a cross-cluster API key. (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-update-cross-cluster-api-key.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-update-cross-cluster-api-key.html
         #
         def update_cross_cluster_api_key(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.update_cross_cluster_api_key' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/update_settings.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/update_settings.rb
index bd86ffcbca..d1196ee082 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/update_settings.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/update_settings.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body An object with the new settings for each index, if any (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-update-settings.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-update-settings.html
         #
         def update_settings(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.update_settings' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/security/update_user_profile_data.rb b/elasticsearch-api/lib/elasticsearch/api/actions/security/update_user_profile_data.rb
index 271f147120..9ef01fcc74 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/security/update_user_profile_data.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/security/update_user_profile_data.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The application data to update (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-update-user-profile-data.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-update-user-profile-data.html
         #
         def update_user_profile_data(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'security.update_user_profile_data' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/shutdown/delete_node.rb b/elasticsearch-api/lib/elasticsearch/api/actions/shutdown/delete_node.rb
index f56dad05b3..ea9374cfa4 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/shutdown/delete_node.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/shutdown/delete_node.rb
@@ -25,6 +25,8 @@ module Actions
         # Removes a node from the shutdown list. Designed for indirect use by ECE/ESS and ECK. Direct use is not supported.
         #
         # @option arguments [String] :node_id The node id of node to be removed from the shutdown state
+        # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
+        # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         #
         # @see https://www.elastic.co/guide/en/elasticsearch/reference/current
@@ -48,7 +50,7 @@ def delete_node(arguments = {})
 
           method = Elasticsearch::API::HTTP_DELETE
           path   = "_nodes/#{Utils.__listify(_node_id)}/shutdown"
-          params = {}
+          params = Utils.process_params(arguments)
 
           Elasticsearch::API::Response.new(
             perform_request(method, path, params, body, headers, request_opts)
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/shutdown/put_node.rb b/elasticsearch-api/lib/elasticsearch/api/actions/shutdown/put_node.rb
index a8f49a550a..a2f098cc29 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/shutdown/put_node.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/shutdown/put_node.rb
@@ -25,6 +25,8 @@ module Actions
         # Adds a node to be shut down. Designed for indirect use by ECE/ESS and ECK. Direct use is not supported.
         #
         # @option arguments [String] :node_id The node id of node to be shut down
+        # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
+        # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The shutdown type definition to register (*Required*)
         #
@@ -50,7 +52,7 @@ def put_node(arguments = {})
 
           method = Elasticsearch::API::HTTP_PUT
           path   = "_nodes/#{Utils.__listify(_node_id)}/shutdown"
-          params = {}
+          params = Utils.process_params(arguments)
 
           Elasticsearch::API::Response.new(
             perform_request(method, path, params, body, headers, request_opts)
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/simulate/ingest.rb b/elasticsearch-api/lib/elasticsearch/api/actions/simulate/ingest.rb
index 19ee6beeed..02417c9109 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/simulate/ingest.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/simulate/ingest.rb
@@ -33,7 +33,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The simulate definition (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/simulate-ingest-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/simulate-ingest-api.html
         #
         def ingest(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'simulate.ingest' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/cleanup_repository.rb b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/cleanup_repository.rb
index dfc7b63c8c..4490418357 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/cleanup_repository.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/cleanup_repository.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/clean-up-snapshot-repo-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/clean-up-snapshot-repo-api.html
         #
         def cleanup_repository(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'snapshot.cleanup_repository' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/clone.rb b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/clone.rb
index 4771ebf213..7b5f5f3b6f 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/clone.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/clone.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The snapshot clone definition (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/modules-snapshots.html
         #
         def clone(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'snapshot.clone' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/create.rb b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/create.rb
index 7b6e01d725..48249fe3e5 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/create.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/create.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The snapshot definition
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/modules-snapshots.html
         #
         def create(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'snapshot.create' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/create_repository.rb b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/create_repository.rb
index aa94f85ffe..a90f75c537 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/create_repository.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/create_repository.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The repository definition (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/modules-snapshots.html
         #
         def create_repository(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'snapshot.create_repository' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/delete.rb b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/delete.rb
index 3489aad395..4684528e0f 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/delete.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/delete.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Boolean] :wait_for_completion Should this request wait until the operation has completed before returning
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/modules-snapshots.html
         #
         def delete(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'snapshot.delete' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/delete_repository.rb b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/delete_repository.rb
index c6168a3ff7..75a150a9dd 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/delete_repository.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/delete_repository.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/modules-snapshots.html
         #
         def delete_repository(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'snapshot.delete_repository' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/get.rb b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/get.rb
index fcb5af696b..744fb6b5ff 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/get.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/get.rb
@@ -41,7 +41,7 @@ module Actions
         # @option arguments [Boolean] :verbose Whether to show verbose snapshot info or only show the basic info found in the repository index blob
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/modules-snapshots.html
         #
         def get(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'snapshot.get' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/get_repository.rb b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/get_repository.rb
index 83f3983f5d..2e372d04f0 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/get_repository.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/get_repository.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Boolean] :local Return local information, do not retrieve the state from master node (default: false)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/modules-snapshots.html
         #
         def get_repository(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'snapshot.get_repository' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/repository_analyze.rb b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/repository_analyze.rb
index 575313a411..d81c97d274 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/repository_analyze.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/repository_analyze.rb
@@ -27,6 +27,7 @@ module Actions
         # @option arguments [String] :repository A repository name
         # @option arguments [Number] :blob_count Number of blobs to create during the test. Defaults to 100.
         # @option arguments [Number] :concurrency Number of operations to run concurrently during the test. Defaults to 10.
+        # @option arguments [Number] :register_operation_count The minimum number of linearizable register operations to perform in total. Defaults to 10.
         # @option arguments [Number] :read_node_count Number of nodes on which to read a blob after writing. Defaults to 10.
         # @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.
         # @option arguments [Number] :seed Seed for the random number generator used to create the test workload. Defaults to a random value.
@@ -38,7 +39,7 @@ module Actions
         # @option arguments [Boolean] :rarely_abort_writes Whether to rarely abort writes before they complete. Defaults to 'true'.
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/modules-snapshots.html
         #
         def repository_analyze(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'snapshot.repository_analyze' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/restore.rb b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/restore.rb
index 02e05a2114..96aad54f8d 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/restore.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/restore.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Details of what to restore
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/modules-snapshots.html
         #
         def restore(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'snapshot.restore' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/status.rb b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/status.rb
index d6fa97d5ea..d6299bb61e 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/status.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/status.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Boolean] :ignore_unavailable Whether to ignore unavailable snapshots, defaults to false which means a SnapshotMissingException is thrown
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/modules-snapshots.html
         #
         def status(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'snapshot.status' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/verify_repository.rb b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/verify_repository.rb
index 335d962d3c..24cb3d69a5 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/verify_repository.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot/verify_repository.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/modules-snapshots.html
         #
         def verify_repository(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'snapshot.verify_repository' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/delete_lifecycle.rb b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/delete_lifecycle.rb
index 5a9f45b135..b36e3b820c 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/delete_lifecycle.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/delete_lifecycle.rb
@@ -25,9 +25,11 @@ module Actions
         # Deletes an existing snapshot lifecycle policy.
         #
         # @option arguments [String] :policy_id The id of the snapshot lifecycle policy to remove
+        # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
+        # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-delete-policy.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/slm-api-delete-policy.html
         #
         def delete_lifecycle(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'slm.delete_lifecycle' }
@@ -48,7 +50,7 @@ def delete_lifecycle(arguments = {})
 
           method = Elasticsearch::API::HTTP_DELETE
           path   = "_slm/policy/#{Utils.__listify(_policy_id)}"
-          params = {}
+          params = Utils.process_params(arguments)
 
           Elasticsearch::API::Response.new(
             perform_request(method, path, params, body, headers, request_opts)
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/execute_lifecycle.rb b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/execute_lifecycle.rb
index 910f03a94c..09abd57c17 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/execute_lifecycle.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/execute_lifecycle.rb
@@ -25,9 +25,11 @@ module Actions
         # Immediately creates a snapshot according to the lifecycle policy, without waiting for the scheduled time.
         #
         # @option arguments [String] :policy_id The id of the snapshot lifecycle policy to be executed
+        # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
+        # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-execute-lifecycle.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/slm-api-execute-lifecycle.html
         #
         def execute_lifecycle(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'slm.execute_lifecycle' }
@@ -48,7 +50,7 @@ def execute_lifecycle(arguments = {})
 
           method = Elasticsearch::API::HTTP_PUT
           path   = "_slm/policy/#{Utils.__listify(_policy_id)}/_execute"
-          params = {}
+          params = Utils.process_params(arguments)
 
           Elasticsearch::API::Response.new(
             perform_request(method, path, params, body, headers, request_opts)
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/execute_retention.rb b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/execute_retention.rb
index e7ee4d4e3c..1a5c51dfff 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/execute_retention.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/execute_retention.rb
@@ -24,9 +24,11 @@ module SnapshotLifecycleManagement
       module Actions
         # Deletes any snapshots that are expired according to the policy's retention rules.
         #
+        # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
+        # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-execute-retention.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/slm-api-execute-retention.html
         #
         def execute_retention(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'slm.execute_retention' }
@@ -38,7 +40,7 @@ def execute_retention(arguments = {})
 
           method = Elasticsearch::API::HTTP_POST
           path   = '_slm/_execute_retention'
-          params = {}
+          params = Utils.process_params(arguments)
 
           Elasticsearch::API::Response.new(
             perform_request(method, path, params, body, headers, request_opts)
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/get_lifecycle.rb b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/get_lifecycle.rb
index 56a4c31795..86b4d2ce23 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/get_lifecycle.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/get_lifecycle.rb
@@ -25,9 +25,11 @@ module Actions
         # Retrieves one or more snapshot lifecycle policy definitions and information about the latest snapshot attempts.
         #
         # @option arguments [List] :policy_id Comma-separated list of snapshot lifecycle policies to retrieve
+        # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
+        # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-get-policy.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/slm-api-get-policy.html
         #
         def get_lifecycle(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'slm.get_lifecycle' }
@@ -50,7 +52,7 @@ def get_lifecycle(arguments = {})
                    else
                      '_slm/policy'
                    end
-          params = {}
+          params = Utils.process_params(arguments)
 
           Elasticsearch::API::Response.new(
             perform_request(method, path, params, body, headers, request_opts)
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/get_stats.rb b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/get_stats.rb
index 9f86cb46c5..46bb2e2732 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/get_stats.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/get_stats.rb
@@ -24,9 +24,11 @@ module SnapshotLifecycleManagement
       module Actions
         # Returns global and policy-level statistics about actions taken by snapshot lifecycle management.
         #
+        # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
+        # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-get-stats.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/slm-api-get-stats.html
         #
         def get_stats(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'slm.get_stats' }
@@ -38,7 +40,7 @@ def get_stats(arguments = {})
 
           method = Elasticsearch::API::HTTP_GET
           path   = '_slm/stats'
-          params = {}
+          params = Utils.process_params(arguments)
 
           Elasticsearch::API::Response.new(
             perform_request(method, path, params, body, headers, request_opts)
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/get_status.rb b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/get_status.rb
index c0fc5de920..4df85d3de2 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/get_status.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/get_status.rb
@@ -24,9 +24,11 @@ module SnapshotLifecycleManagement
       module Actions
         # Retrieves the status of snapshot lifecycle management (SLM).
         #
+        # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
+        # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-get-status.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/slm-api-get-status.html
         #
         def get_status(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'slm.get_status' }
@@ -38,7 +40,7 @@ def get_status(arguments = {})
 
           method = Elasticsearch::API::HTTP_GET
           path   = '_slm/status'
-          params = {}
+          params = Utils.process_params(arguments)
 
           Elasticsearch::API::Response.new(
             perform_request(method, path, params, body, headers, request_opts)
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/put_lifecycle.rb b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/put_lifecycle.rb
index 0107fe34f6..5ee7f12125 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/put_lifecycle.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/put_lifecycle.rb
@@ -25,10 +25,12 @@ module Actions
         # Creates or updates a snapshot lifecycle policy.
         #
         # @option arguments [String] :policy_id The id of the snapshot lifecycle policy
+        # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
+        # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The snapshot lifecycle policy definition to register
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-put-policy.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/slm-api-put-policy.html
         #
         def put_lifecycle(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'slm.put_lifecycle' }
@@ -49,7 +51,7 @@ def put_lifecycle(arguments = {})
 
           method = Elasticsearch::API::HTTP_PUT
           path   = "_slm/policy/#{Utils.__listify(_policy_id)}"
-          params = {}
+          params = Utils.process_params(arguments)
 
           Elasticsearch::API::Response.new(
             perform_request(method, path, params, body, headers, request_opts)
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/start.rb b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/start.rb
index 7e5a1d73bf..f4fe2339e6 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/start.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/start.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Time] :timeout Timeout for acknowledgement of update from all nodes in cluster
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-start.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/slm-api-start.html
         #
         def start(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'slm.start' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/stop.rb b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/stop.rb
index d5dbab1d1e..33e61642ec 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/stop.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/snapshot_lifecycle_management/stop.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Time] :timeout Timeout for acknowledgement of update from all nodes in cluster
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-stop.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/slm-api-stop.html
         #
         def stop(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'slm.stop' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/sql/clear_cursor.rb b/elasticsearch-api/lib/elasticsearch/api/actions/sql/clear_cursor.rb
index c9ff2560fe..510f7ea1d3 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/sql/clear_cursor.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/sql/clear_cursor.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Specify the cursor value in the `cursor` element to clean the cursor. (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/clear-sql-cursor-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/clear-sql-cursor-api.html
         #
         def clear_cursor(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'sql.clear_cursor' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/sql/delete_async.rb b/elasticsearch-api/lib/elasticsearch/api/actions/sql/delete_async.rb
index 06b0b77f9d..a7a22efe4a 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/sql/delete_async.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/sql/delete_async.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [String] :id The async search ID
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-async-sql-search-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/delete-async-sql-search-api.html
         #
         def delete_async(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'sql.delete_async' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/sql/get_async.rb b/elasticsearch-api/lib/elasticsearch/api/actions/sql/get_async.rb
index c1eb5685ea..5e6d591a9f 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/sql/get_async.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/sql/get_async.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [Time] :wait_for_completion_timeout Duration to wait for complete results
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/get-async-sql-search-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-async-sql-search-api.html
         #
         def get_async(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'sql.get_async' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/sql/get_async_status.rb b/elasticsearch-api/lib/elasticsearch/api/actions/sql/get_async_status.rb
index a217d9fdae..b902ed1e35 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/sql/get_async_status.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/sql/get_async_status.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [String] :id The async search ID
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/get-async-sql-search-status-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-async-sql-search-status-api.html
         #
         def get_async_status(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'sql.get_async_status' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/sql/query.rb b/elasticsearch-api/lib/elasticsearch/api/actions/sql/query.rb
index 7a187a5107..348535f52e 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/sql/query.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/sql/query.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Use the `query` element to start a query. Use the `cursor` element to continue a query. (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/sql-search-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/sql-search-api.html
         #
         def query(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'sql.query' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/sql/translate.rb b/elasticsearch-api/lib/elasticsearch/api/actions/sql/translate.rb
index 1f872caf67..1a40278bc9 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/sql/translate.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/sql/translate.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Specify the query in the `query` element. (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/sql-translate-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/sql-translate-api.html
         #
         def translate(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'sql.translate' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/ssl/certificates.rb b/elasticsearch-api/lib/elasticsearch/api/actions/ssl/certificates.rb
index 004f33c185..43219943c7 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/ssl/certificates.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/ssl/certificates.rb
@@ -26,7 +26,7 @@ module Actions
         #
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-ssl.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-ssl.html
         #
         def certificates(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'ssl.certificates' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/delete_synonym.rb b/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/delete_synonym.rb
index 9d91211e7a..7fd36f9bc5 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/delete_synonym.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/delete_synonym.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [String] :id The id of the synonyms set to be deleted
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-synonyms-set.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/delete-synonyms-set.html
         #
         def delete_synonym(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'synonyms.delete_synonym' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/delete_synonym_rule.rb b/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/delete_synonym_rule.rb
index 26183609b4..1f8c1c795f 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/delete_synonym_rule.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/delete_synonym_rule.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [String] :rule_id The id of the synonym rule to be deleted
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-synonym-rule.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/delete-synonym-rule.html
         #
         def delete_synonym_rule(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'synonyms.delete_synonym_rule' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/get_synonym.rb b/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/get_synonym.rb
index c09fddeac4..4d7f95e971 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/get_synonym.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/get_synonym.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Integer] :size specifies a max number of results to get
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/get-synonyms-set.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-synonyms-set.html
         #
         def get_synonym(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'synonyms.get_synonym' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/get_synonym_rule.rb b/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/get_synonym_rule.rb
index 59769ec746..fdc0e5449a 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/get_synonym_rule.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/get_synonym_rule.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [String] :rule_id The id of the synonym rule to retrieve
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/get-synonym-rule.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-synonym-rule.html
         #
         def get_synonym_rule(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'synonyms.get_synonym_rule' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/get_synonyms_sets.rb b/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/get_synonyms_sets.rb
index 3580303fb4..7436ac9c09 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/get_synonyms_sets.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/get_synonyms_sets.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Integer] :size specifies a max number of results to get
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/list-synonyms-sets.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/list-synonyms-sets.html
         #
         def get_synonyms_sets(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'synonyms.get_synonyms_sets' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/put_synonym.rb b/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/put_synonym.rb
index 99a76d6515..c4766910d6 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/put_synonym.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/put_synonym.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Synonyms set rules (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/put-synonyms-set.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/put-synonyms-set.html
         #
         def put_synonym(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'synonyms.put_synonym' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/put_synonym_rule.rb b/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/put_synonym_rule.rb
index cc7804380e..2e7c73a917 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/put_synonym_rule.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/synonyms/put_synonym_rule.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Synonym rule (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/put-synonym-rule.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/put-synonym-rule.html
         #
         def put_synonym_rule(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'synonyms.put_synonym_rule' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/tasks/cancel.rb b/elasticsearch-api/lib/elasticsearch/api/actions/tasks/cancel.rb
index 9ce81d2afc..022f80ae95 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/tasks/cancel.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/tasks/cancel.rb
@@ -35,7 +35,7 @@ module Actions
         # @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
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/tasks.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/tasks.html
         #
         def cancel(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'tasks.cancel' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/tasks/get.rb b/elasticsearch-api/lib/elasticsearch/api/actions/tasks/get.rb
index 49f700537a..65e3d6e4f1 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/tasks/get.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/tasks/get.rb
@@ -33,7 +33,7 @@ module Actions
         # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/tasks.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/tasks.html
         #
         def get(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'tasks.get' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/tasks/list.rb b/elasticsearch-api/lib/elasticsearch/api/actions/tasks/list.rb
index 52c522cbea..cf054b2487 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/tasks/list.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/tasks/list.rb
@@ -37,7 +37,7 @@ module Actions
         # @option arguments [Time] :timeout Explicit operation timeout
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/tasks.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/tasks.html
         #
         def list(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'tasks.list' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/terms_enum.rb b/elasticsearch-api/lib/elasticsearch/api/actions/terms_enum.rb
index 93cbc80f7e..80ccc8f63e 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/terms_enum.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/terms_enum.rb
@@ -27,7 +27,7 @@ module Actions
       # @option arguments [Hash] :headers Custom HTTP headers
       # @option arguments [Hash] :body field name, string which is the prefix expected in matching terms, timeout and size for max number of results
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-terms-enum.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/search-terms-enum.html
       #
       def terms_enum(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'terms_enum' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/termvectors.rb b/elasticsearch-api/lib/elasticsearch/api/actions/termvectors.rb
index 8b834d9ab6..8c3abf0868 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/termvectors.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/termvectors.rb
@@ -39,7 +39,7 @@ module Actions
       # @option arguments [Hash] :headers Custom HTTP headers
       # @option arguments [Hash] :body Define parameters and or supply a document to get termvectors for. See documentation.
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-termvectors.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/docs-termvectors.html
       #
       def termvectors(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'termvectors' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/text_structure/find_field_structure.rb b/elasticsearch-api/lib/elasticsearch/api/actions/text_structure/find_field_structure.rb
index 8464acff62..97df92546d 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/text_structure/find_field_structure.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/text_structure/find_field_structure.rb
@@ -40,7 +40,7 @@ module Actions
         # @option arguments [Boolean] :explain Whether to include a commentary on how the structure was derived
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/find-field-structure.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/find-field-structure.html
         #
         def find_field_structure(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'text_structure.find_field_structure' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/text_structure/find_message_structure.rb b/elasticsearch-api/lib/elasticsearch/api/actions/text_structure/find_message_structure.rb
index fcd7456472..b9d783cd31 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/text_structure/find_message_structure.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/text_structure/find_message_structure.rb
@@ -38,7 +38,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body JSON object with one field [messages], containing an array of messages to be analyzed (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/find-message-structure.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/find-message-structure.html
         #
         def find_message_structure(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'text_structure.find_message_structure' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/text_structure/find_structure.rb b/elasticsearch-api/lib/elasticsearch/api/actions/text_structure/find_structure.rb
index 099d91ebc5..e74c7e3aa4 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/text_structure/find_structure.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/text_structure/find_structure.rb
@@ -42,7 +42,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The contents of the file to be analyzed (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/find-structure.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/find-structure.html
         #
         def find_structure(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'text_structure.find_structure' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/text_structure/test_grok_pattern.rb b/elasticsearch-api/lib/elasticsearch/api/actions/text_structure/test_grok_pattern.rb
index 49fad35ecd..ba583814c4 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/text_structure/test_grok_pattern.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/text_structure/test_grok_pattern.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The Grok pattern and text. (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/test-grok-pattern.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/test-grok-pattern.html
         #
         def test_grok_pattern(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'text_structure.test_grok_pattern' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/transform/delete_transform.rb b/elasticsearch-api/lib/elasticsearch/api/actions/transform/delete_transform.rb
index 9bf20808c6..839b2a51ee 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/transform/delete_transform.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/transform/delete_transform.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Time] :timeout Controls the time to wait for the transform deletion
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-transform.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/delete-transform.html
         #
         def delete_transform(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'transform.delete_transform' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/transform/get_node_stats.rb b/elasticsearch-api/lib/elasticsearch/api/actions/transform/get_node_stats.rb
index 69d76d7474..dbefe93d4d 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/transform/get_node_stats.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/transform/get_node_stats.rb
@@ -26,7 +26,7 @@ module Actions
         #
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/get-transform-node-stats.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-transform-node-stats.html
         #
         def get_node_stats(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'transform.get_node_stats' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/transform/get_transform.rb b/elasticsearch-api/lib/elasticsearch/api/actions/transform/get_transform.rb
index 5065124f1e..698bb22cb4 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/transform/get_transform.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/transform/get_transform.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [Boolean] :exclude_generated Omits fields that are illegal to set on transform PUT
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/get-transform.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-transform.html
         #
         def get_transform(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'transform.get_transform' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/transform/get_transform_stats.rb b/elasticsearch-api/lib/elasticsearch/api/actions/transform/get_transform_stats.rb
index abdf7014d8..cd3cc9509b 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/transform/get_transform_stats.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/transform/get_transform_stats.rb
@@ -31,7 +31,7 @@ module Actions
         # @option arguments [Boolean] :allow_no_match Whether to ignore if a wildcard expression matches no transforms. (This includes `_all` string or when no transforms have been specified)
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/get-transform-stats.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/get-transform-stats.html
         #
         def get_transform_stats(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'transform.get_transform_stats' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/transform/preview_transform.rb b/elasticsearch-api/lib/elasticsearch/api/actions/transform/preview_transform.rb
index 8ab4f59a7c..d332d4b1ea 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/transform/preview_transform.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/transform/preview_transform.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The definition for the transform to preview
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/preview-transform.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/preview-transform.html
         #
         def preview_transform(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'transform.preview_transform' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/transform/put_transform.rb b/elasticsearch-api/lib/elasticsearch/api/actions/transform/put_transform.rb
index 222912fe22..1318a1df82 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/transform/put_transform.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/transform/put_transform.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The transform definition (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/put-transform.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/put-transform.html
         #
         def put_transform(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'transform.put_transform' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/transform/reset_transform.rb b/elasticsearch-api/lib/elasticsearch/api/actions/transform/reset_transform.rb
index dab3b5e94e..6fde085b81 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/transform/reset_transform.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/transform/reset_transform.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Time] :timeout Controls the time to wait for the transform to reset
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/reset-transform.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/reset-transform.html
         #
         def reset_transform(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'transform.reset_transform' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/transform/schedule_now_transform.rb b/elasticsearch-api/lib/elasticsearch/api/actions/transform/schedule_now_transform.rb
index 74716246b6..ec7ee278ef 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/transform/schedule_now_transform.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/transform/schedule_now_transform.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Time] :timeout Controls the time to wait for the scheduling to take place
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/schedule-now-transform.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/schedule-now-transform.html
         #
         def schedule_now_transform(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'transform.schedule_now_transform' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/transform/start_transform.rb b/elasticsearch-api/lib/elasticsearch/api/actions/transform/start_transform.rb
index 4f18b6a0b7..40619f28a5 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/transform/start_transform.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/transform/start_transform.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Time] :timeout Controls the time to wait for the transform to start
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/start-transform.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/start-transform.html
         #
         def start_transform(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'transform.start_transform' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/transform/stop_transform.rb b/elasticsearch-api/lib/elasticsearch/api/actions/transform/stop_transform.rb
index 00a4c41355..cc9a62e355 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/transform/stop_transform.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/transform/stop_transform.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Boolean] :wait_for_checkpoint Whether to wait for the transform to reach a checkpoint before stopping. Default to false
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/stop-transform.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/stop-transform.html
         #
         def stop_transform(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'transform.stop_transform' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/transform/update_transform.rb b/elasticsearch-api/lib/elasticsearch/api/actions/transform/update_transform.rb
index 44e04a7ee1..9427f8843c 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/transform/update_transform.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/transform/update_transform.rb
@@ -30,7 +30,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The update transform definition (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/update-transform.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/update-transform.html
         #
         def update_transform(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'transform.update_transform' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/transform/upgrade_transforms.rb b/elasticsearch-api/lib/elasticsearch/api/actions/transform/upgrade_transforms.rb
index b2d1a84cd6..6453e9dd9e 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/transform/upgrade_transforms.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/transform/upgrade_transforms.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Time] :timeout Controls the time to wait for the upgrade
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/upgrade-transforms.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/upgrade-transforms.html
         #
         def upgrade_transforms(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'transform.upgrade_transforms' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/update.rb b/elasticsearch-api/lib/elasticsearch/api/actions/update.rb
index 8039f1a25b..ddbd86175b 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/update.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/update.rb
@@ -37,10 +37,11 @@ module Actions
       # @option arguments [Number] :if_seq_no only perform the update operation if the last operation that has changed the document has the specified sequence number
       # @option arguments [Number] :if_primary_term only perform the update operation if the last operation that has changed the document has the specified primary term
       # @option arguments [Boolean] :require_alias When true, requires destination is an alias. Default is false
+      # @option arguments [Boolean] :include_source_on_error True or false if to include the document source in the error message in case of parsing errors. Defaults to true.
       # @option arguments [Hash] :headers Custom HTTP headers
       # @option arguments [Hash] :body The request definition requires either `script` or partial `doc` (*Required*)
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-update.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/docs-update.html
       #
       def update(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'update' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/update_by_query.rb b/elasticsearch-api/lib/elasticsearch/api/actions/update_by_query.rb
index fb65ca3564..f183ba84fe 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/update_by_query.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/update_by_query.rb
@@ -59,7 +59,7 @@ module Actions
       # @option arguments [Hash] :headers Custom HTTP headers
       # @option arguments [Hash] :body The search definition using the Query DSL
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-update-by-query.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/docs-update-by-query.html
       #
       def update_by_query(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'update_by_query' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/update_by_query_rethrottle.rb b/elasticsearch-api/lib/elasticsearch/api/actions/update_by_query_rethrottle.rb
index 801ed1bcd4..48d7d6de63 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/update_by_query_rethrottle.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/update_by_query_rethrottle.rb
@@ -27,7 +27,7 @@ module Actions
       # @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*)
       # @option arguments [Hash] :headers Custom HTTP headers
       #
-      # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-update-by-query.html
+      # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/docs-update-by-query.html
       #
       def update_by_query_rethrottle(arguments = {})
         request_opts = { endpoint: arguments[:endpoint] || 'update_by_query_rethrottle' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/watcher/ack_watch.rb b/elasticsearch-api/lib/elasticsearch/api/actions/watcher/ack_watch.rb
index 6539662686..fe74cf93b5 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/watcher/ack_watch.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/watcher/ack_watch.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [List] :action_id A comma-separated list of the action ids to be acked
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-ack-watch.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/watcher-api-ack-watch.html
         #
         def ack_watch(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'watcher.ack_watch' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/watcher/activate_watch.rb b/elasticsearch-api/lib/elasticsearch/api/actions/watcher/activate_watch.rb
index 739a1d774d..599d8f2bb6 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/watcher/activate_watch.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/watcher/activate_watch.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [String] :watch_id Watch ID
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-activate-watch.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/watcher-api-activate-watch.html
         #
         def activate_watch(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'watcher.activate_watch' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/watcher/deactivate_watch.rb b/elasticsearch-api/lib/elasticsearch/api/actions/watcher/deactivate_watch.rb
index 645558f549..efd1f8e97b 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/watcher/deactivate_watch.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/watcher/deactivate_watch.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [String] :watch_id Watch ID
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-deactivate-watch.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/watcher-api-deactivate-watch.html
         #
         def deactivate_watch(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'watcher.deactivate_watch' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/watcher/delete_watch.rb b/elasticsearch-api/lib/elasticsearch/api/actions/watcher/delete_watch.rb
index 8a6ae856d7..3c6f0f85c5 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/watcher/delete_watch.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/watcher/delete_watch.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [String] :id Watch ID
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-delete-watch.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/watcher-api-delete-watch.html
         #
         def delete_watch(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'watcher.delete_watch' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/watcher/execute_watch.rb b/elasticsearch-api/lib/elasticsearch/api/actions/watcher/execute_watch.rb
index 72d49ad08b..c524e8c7a6 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/watcher/execute_watch.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/watcher/execute_watch.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body Execution control
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-execute-watch.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/watcher-api-execute-watch.html
         #
         def execute_watch(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'watcher.execute_watch' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/watcher/get_settings.rb b/elasticsearch-api/lib/elasticsearch/api/actions/watcher/get_settings.rb
index 00eb7f13f6..edd905b650 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/watcher/get_settings.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/watcher/get_settings.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Time] :master_timeout Specify timeout for connection to master
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-get-settings.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/watcher-api-get-settings.html
         #
         def get_settings(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'watcher.get_settings' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/watcher/get_watch.rb b/elasticsearch-api/lib/elasticsearch/api/actions/watcher/get_watch.rb
index bb2f184baa..db902da374 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/watcher/get_watch.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/watcher/get_watch.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [String] :id Watch ID
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-get-watch.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/watcher-api-get-watch.html
         #
         def get_watch(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'watcher.get_watch' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/watcher/put_watch.rb b/elasticsearch-api/lib/elasticsearch/api/actions/watcher/put_watch.rb
index 111294f4e5..4c3018e426 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/watcher/put_watch.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/watcher/put_watch.rb
@@ -32,7 +32,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body The watch
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-put-watch.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/watcher-api-put-watch.html
         #
         def put_watch(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'watcher.put_watch' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/watcher/query_watches.rb b/elasticsearch-api/lib/elasticsearch/api/actions/watcher/query_watches.rb
index 83d9bc0570..47dd443c9d 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/watcher/query_watches.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/watcher/query_watches.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body From, size, query, sort and search_after
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-query-watches.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/watcher-api-query-watches.html
         #
         def query_watches(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'watcher.query_watches' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/watcher/start.rb b/elasticsearch-api/lib/elasticsearch/api/actions/watcher/start.rb
index ef2b8ea8e3..392d6d15b7 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/watcher/start.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/watcher/start.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Time] :master_timeout Specify timeout for connection to master
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-start.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/watcher-api-start.html
         #
         def start(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'watcher.start' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/watcher/stats.rb b/elasticsearch-api/lib/elasticsearch/api/actions/watcher/stats.rb
index 4ef01863df..753a9d65f1 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/watcher/stats.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/watcher/stats.rb
@@ -28,7 +28,7 @@ module Actions
         # @option arguments [Boolean] :emit_stacktraces Emits stack traces of currently running watches
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-stats.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/watcher-api-stats.html
         #
         def stats(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'watcher.stats' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/watcher/stop.rb b/elasticsearch-api/lib/elasticsearch/api/actions/watcher/stop.rb
index 2f112aedd6..88a026bd92 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/watcher/stop.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/watcher/stop.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Time] :master_timeout Specify timeout for connection to master
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-stop.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/watcher-api-stop.html
         #
         def stop(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'watcher.stop' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/watcher/update_settings.rb b/elasticsearch-api/lib/elasticsearch/api/actions/watcher/update_settings.rb
index b316761c9e..b40bdcad92 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/watcher/update_settings.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/watcher/update_settings.rb
@@ -29,7 +29,7 @@ module Actions
         # @option arguments [Hash] :headers Custom HTTP headers
         # @option arguments [Hash] :body An object with the new index settings (*Required*)
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-update-settings.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/watcher-api-update-settings.html
         #
         def update_settings(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'watcher.update_settings' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/xpack/info.rb b/elasticsearch-api/lib/elasticsearch/api/actions/xpack/info.rb
index 6074bf9ac0..10282bb608 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/xpack/info.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/xpack/info.rb
@@ -24,11 +24,12 @@ module XPack
       module Actions
         # Retrieves information about the installed X-Pack features.
         #
+        # @option arguments [Boolean] :human Defines whether additional human-readable information is included in the response. In particular, it adds descriptions and a tag line. The default value is true.
         # @option arguments [List] :categories Comma-separated list of info categories. Can be any of: build, license, features
         # @option arguments [Boolean] :accept_enterprise If this param is used it must be set to true *Deprecated*
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/info-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/info-api.html
         #
         def info(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'xpack.info' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/actions/xpack/usage.rb b/elasticsearch-api/lib/elasticsearch/api/actions/xpack/usage.rb
index 2317ef931e..a46284261d 100644
--- a/elasticsearch-api/lib/elasticsearch/api/actions/xpack/usage.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/actions/xpack/usage.rb
@@ -27,7 +27,7 @@ module Actions
         # @option arguments [Time] :master_timeout Specify timeout for watch write operation
         # @option arguments [Hash] :headers Custom HTTP headers
         #
-        # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/usage-api.html
+        # @see https://www.elastic.co/guide/en/elasticsearch/reference/8.18/usage-api.html
         #
         def usage(arguments = {})
           request_opts = { endpoint: arguments[:endpoint] || 'xpack.usage' }
diff --git a/elasticsearch-api/lib/elasticsearch/api/version.rb b/elasticsearch-api/lib/elasticsearch/api/version.rb
index e43ee587d7..adfd7a85aa 100644
--- a/elasticsearch-api/lib/elasticsearch/api/version.rb
+++ b/elasticsearch-api/lib/elasticsearch/api/version.rb
@@ -17,6 +17,6 @@
 
 module Elasticsearch
   module API
-    VERSION = '8.14.0'.freeze
+    VERSION = '8.18.0'.freeze
   end
 end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/esql/async_query_delete_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/esql/async_query_delete_spec.rb
new file mode 100644
index 0000000000..2eb85ef6eb
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/esql/async_query_delete_spec.rb
@@ -0,0 +1,35 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client.esql#async_query_delete' do
+  let(:expected_args) do
+    [
+      'DELETE',
+      '_query/async/foo',
+      {},
+      nil,
+      {},
+      { defined_params: {id: 'foo' }, endpoint: 'esql.async_query_delete' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.esql.async_query_delete(id: 'foo')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/esql/async_query_stop_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/esql/async_query_stop_spec.rb
new file mode 100644
index 0000000000..48f61e409f
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/esql/async_query_stop_spec.rb
@@ -0,0 +1,35 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client.esql#async_query_stop' do
+  let(:expected_args) do
+    [
+      'POST',
+      '_query/async/foo/stop',
+      {},
+      nil,
+      {},
+      { endpoint: 'esql.async_query_stop', defined_params: { id: 'foo' } }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.esql.async_query_stop(id: 'foo')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/indices/get_data_lifecycle_stats_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/indices/get_data_lifecycle_stats_spec.rb
new file mode 100644
index 0000000000..8938b5a156
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/indices/get_data_lifecycle_stats_spec.rb
@@ -0,0 +1,35 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client.indices#get_data_lifecycle_stats' do
+  let(:expected_args) do
+    [
+      'GET',
+      '_lifecycle/stats',
+      {},
+      nil,
+      {},
+      { endpoint: 'indices.get_data_lifecycle_stats' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.indices.get_data_lifecycle_stats).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/indices/resolve_cluster_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/indices/resolve_cluster_spec.rb
index 3da0771413..a4389d26b8 100644
--- a/elasticsearch-api/spec/elasticsearch/api/actions/indices/resolve_cluster_spec.rb
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/indices/resolve_cluster_spec.rb
@@ -17,16 +17,15 @@
 
 require 'spec_helper'
 
-describe 'client.indices#delete_alias' do
-
+describe 'client.indices#resolve_cluster' do
   let(:expected_args) do
     [
       'GET',
-      '_resolve/cluster/foo',
+      path,
       {},
       nil,
       {},
-      { defined_params: { name: 'foo'}, endpoint: 'indices.resolve_cluster' }
+      otel
     ]
   end
 
@@ -34,16 +33,22 @@
     let(:client) do
       Class.new { include Elasticsearch::API }.new
     end
+    let(:path) { '_resolve/cluster' }
+    let(:otel) do
+      { endpoint: 'indices.resolve_cluster' }
+    end
 
-    it 'raises an exception' do
-      expect {
-        client.indices.resolve_cluster
-      }.to raise_exception(ArgumentError)
+    it 'performs the request' do
+      expect(client_double.indices.resolve_cluster).to be_a Elasticsearch::API::Response
     end
   end
 
-
   context 'when name is specified' do
+    let(:path) { '_resolve/cluster/foo' }
+    let(:otel) do
+      { defined_params: { name: 'foo' }, endpoint: 'indices.resolve_cluster' }
+    end
+
     it 'performs the request' do
       expect(client_double.indices.resolve_cluster(name: 'foo')).to be_a Elasticsearch::API::Response
     end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/inference/chat_completion_unified_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/inference/chat_completion_unified_spec.rb
new file mode 100644
index 0000000000..6abc29076e
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/inference/chat_completion_unified_spec.rb
@@ -0,0 +1,36 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client#inference.chat_completion_unified' do
+  let(:expected_args) do
+    [
+      'POST',
+      '_inference/chat_completion/bar/_stream',
+      {},
+      nil,
+      {},
+      { defined_params: { inference_id: 'bar' },
+        endpoint: 'inference.chat_completion_unified' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.inference.chat_completion_unified(inference_id: 'bar')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/inference/completion_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/inference/completion_spec.rb
new file mode 100644
index 0000000000..8817e72a32
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/inference/completion_spec.rb
@@ -0,0 +1,36 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client#inference.completion' do
+  let(:expected_args) do
+    [
+      'POST',
+      '_inference/completion/bar',
+      {},
+      nil,
+      {},
+      { defined_params: { inference_id: 'bar' },
+        endpoint: 'inference.completion' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.inference.completion(inference_id: 'bar')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_alibabacloud_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_alibabacloud_spec.rb
new file mode 100644
index 0000000000..0ac550822f
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_alibabacloud_spec.rb
@@ -0,0 +1,36 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client#inference.put_alibabacloud' do
+  let(:expected_args) do
+    [
+      'PUT',
+      '_inference/foo/bar',
+      {},
+      nil,
+      {},
+      { defined_params: { alibabacloud_inference_id: 'bar', task_type: 'foo' },
+        endpoint: 'inference.put_alibabacloud' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.inference.put_alibabacloud(task_type: 'foo', alibabacloud_inference_id: 'bar')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_amazonbedrock_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_amazonbedrock_spec.rb
new file mode 100644
index 0000000000..23d5b57c39
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_amazonbedrock_spec.rb
@@ -0,0 +1,36 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client#inference.put_amazonbedrock' do
+  let(:expected_args) do
+    [
+      'PUT',
+      '_inference/foo/bar',
+      {},
+      nil,
+      {},
+      { defined_params: { amazonbedrock_inference_id: 'bar', task_type: 'foo' },
+        endpoint: 'inference.put_amazonbedrock' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.inference.put_amazonbedrock(task_type: 'foo', amazonbedrock_inference_id: 'bar')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_anthropic_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_anthropic_spec.rb
new file mode 100644
index 0000000000..3f4c22cbba
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_anthropic_spec.rb
@@ -0,0 +1,36 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client#inference.put_anthropic' do
+  let(:expected_args) do
+    [
+      'PUT',
+      '_inference/foo/bar',
+      {},
+      nil,
+      {},
+      { defined_params: { anthropic_inference_id: 'bar', task_type: 'foo' },
+        endpoint: 'inference.put_anthropic' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.inference.put_anthropic(task_type: 'foo', anthropic_inference_id: 'bar')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_azureaistudio_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_azureaistudio_spec.rb
new file mode 100644
index 0000000000..add3ed7eec
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_azureaistudio_spec.rb
@@ -0,0 +1,36 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client#inference.put_azureaistudio' do
+  let(:expected_args) do
+    [
+      'PUT',
+      '_inference/foo/bar',
+      {},
+      nil,
+      {},
+      { defined_params: { azureaistudio_inference_id: 'bar', task_type: 'foo' },
+        endpoint: 'inference.put_azureaistudio' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.inference.put_azureaistudio(task_type: 'foo', azureaistudio_inference_id: 'bar')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_azureopenai_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_azureopenai_spec.rb
new file mode 100644
index 0000000000..ca0ade65b7
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_azureopenai_spec.rb
@@ -0,0 +1,36 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client#inference.put_azureopenai' do
+  let(:expected_args) do
+    [
+      'PUT',
+      '_inference/foo/bar',
+      {},
+      nil,
+      {},
+      { defined_params: { azureopenai_inference_id: 'bar', task_type: 'foo' },
+        endpoint: 'inference.put_azureopenai' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.inference.put_azureopenai(task_type: 'foo', azureopenai_inference_id: 'bar')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_cohere_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_cohere_spec.rb
new file mode 100644
index 0000000000..7eb82de752
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_cohere_spec.rb
@@ -0,0 +1,36 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client#inference.put_cohere' do
+  let(:expected_args) do
+    [
+      'PUT',
+      '_inference/foo/bar',
+      {},
+      nil,
+      {},
+      { defined_params: { cohere_inference_id: 'bar', task_type: 'foo' },
+        endpoint: 'inference.put_cohere' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.inference.put_cohere(task_type: 'foo', cohere_inference_id: 'bar')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_elasticsearch_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_elasticsearch_spec.rb
new file mode 100644
index 0000000000..e91a89c850
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_elasticsearch_spec.rb
@@ -0,0 +1,36 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client#inference.put_elasticsearch' do
+  let(:expected_args) do
+    [
+      'PUT',
+      '_inference/foo/bar',
+      {},
+      nil,
+      {},
+      { defined_params: { elasticsearch_inference_id: 'bar', task_type: 'foo' },
+        endpoint: 'inference.put_elasticsearch' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.inference.put_elasticsearch(task_type: 'foo', elasticsearch_inference_id: 'bar')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_elser_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_elser_spec.rb
new file mode 100644
index 0000000000..1862e22721
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_elser_spec.rb
@@ -0,0 +1,36 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client#inference.put_elser' do
+  let(:expected_args) do
+    [
+      'PUT',
+      '_inference/foo/bar',
+      {},
+      nil,
+      {},
+      { defined_params: { elser_inference_id: 'bar', task_type: 'foo' },
+        endpoint: 'inference.put_elser' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.inference.put_elser(task_type: 'foo', elser_inference_id: 'bar')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_googleaistudio_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_googleaistudio_spec.rb
new file mode 100644
index 0000000000..22c5284990
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_googleaistudio_spec.rb
@@ -0,0 +1,36 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client#inference.put_googleaistudio' do
+  let(:expected_args) do
+    [
+      'PUT',
+      '_inference/foo/bar',
+      {},
+      nil,
+      {},
+      { defined_params: { googleaistudio_inference_id: 'bar', task_type: 'foo' },
+        endpoint: 'inference.put_googleaistudio' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.inference.put_googleaistudio(task_type: 'foo', googleaistudio_inference_id: 'bar')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_googlevertexai_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_googlevertexai_spec.rb
new file mode 100644
index 0000000000..ccf6c883bf
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_googlevertexai_spec.rb
@@ -0,0 +1,36 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client#inference.put_googlevertexai' do
+  let(:expected_args) do
+    [
+      'PUT',
+      '_inference/foo/bar',
+      {},
+      nil,
+      {},
+      { defined_params: { googlevertexai_inference_id: 'bar', task_type: 'foo' },
+        endpoint: 'inference.put_googlevertexai' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.inference.put_googlevertexai(task_type: 'foo', googlevertexai_inference_id: 'bar')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_huggingface_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_huggingface_spec.rb
new file mode 100644
index 0000000000..8feb11c28e
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_huggingface_spec.rb
@@ -0,0 +1,36 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client#inference.put_hugging_face' do
+  let(:expected_args) do
+    [
+      'PUT',
+      '_inference/foo/bar',
+      {},
+      nil,
+      {},
+      { defined_params: { huggingface_inference_id: 'bar', task_type: 'foo' },
+        endpoint: 'inference.put_hugging_face' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.inference.put_hugging_face(task_type: 'foo', huggingface_inference_id: 'bar')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_jinaai_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_jinaai_spec.rb
new file mode 100644
index 0000000000..bcbf0e0f00
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_jinaai_spec.rb
@@ -0,0 +1,36 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client#inference.put_jinaai' do
+  let(:expected_args) do
+    [
+      'PUT',
+      '_inference/foo/bar',
+      {},
+      nil,
+      {},
+      { defined_params: { jinaai_inference_id: 'bar', task_type: 'foo' },
+        endpoint: 'inference.put_jinaai' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.inference.put_jinaai(task_type: 'foo', jinaai_inference_id: 'bar')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_mistral_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_mistral_spec.rb
new file mode 100644
index 0000000000..2d8d8dbd3f
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_mistral_spec.rb
@@ -0,0 +1,36 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client#inference.put_mistral' do
+  let(:expected_args) do
+    [
+      'PUT',
+      '_inference/foo/bar',
+      {},
+      nil,
+      {},
+      { defined_params: { mistral_inference_id: 'bar', task_type: 'foo' },
+        endpoint: 'inference.put_mistral' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.inference.put_mistral(task_type: 'foo', mistral_inference_id: 'bar')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_openai_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_openai_spec.rb
new file mode 100644
index 0000000000..b58dd6e568
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_openai_spec.rb
@@ -0,0 +1,36 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client#inference.put_openai' do
+  let(:expected_args) do
+    [
+      'PUT',
+      '_inference/foo/bar',
+      {},
+      nil,
+      {},
+      { defined_params: { openai_inference_id: 'bar', task_type: 'foo' },
+        endpoint: 'inference.put_openai' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.inference.put_openai(task_type: 'foo', openai_inference_id: 'bar')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_voyageai_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_voyageai_spec.rb
new file mode 100644
index 0000000000..8bac99b82d
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_voyageai_spec.rb
@@ -0,0 +1,36 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client#inference.put_voyageai' do
+  let(:expected_args) do
+    [
+      'PUT',
+      '_inference/foo/bar',
+      {},
+      nil,
+      {},
+      { defined_params: { voyageai_inference_id: 'bar', task_type: 'foo' },
+        endpoint: 'inference.put_voyageai' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.inference.put_voyageai(task_type: 'foo', voyageai_inference_id: 'bar')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_watsonx_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_watsonx_spec.rb
new file mode 100644
index 0000000000..44245b8b02
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/inference/put_watsonx_spec.rb
@@ -0,0 +1,36 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client#inference.put_watsonx' do
+  let(:expected_args) do
+    [
+      'PUT',
+      '_inference/foo/bar',
+      {},
+      nil,
+      {},
+      { defined_params: { watsonx_inference_id: 'bar', task_type: 'foo' },
+        endpoint: 'inference.put_watsonx' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.inference.put_watsonx(task_type: 'foo', watsonx_inference_id: 'bar')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/inference/rerank_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/inference/rerank_spec.rb
new file mode 100644
index 0000000000..7417cd74fa
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/inference/rerank_spec.rb
@@ -0,0 +1,35 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client#inference.rerank' do
+  let(:expected_args) do
+    [
+      'POST',
+      '_inference/rerank/foo',
+      {},
+      nil,
+      {},
+      { defined_params: { inference_id: 'foo' }, endpoint: 'inference.rerank' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.inference.rerank(inference_id: 'foo')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/inference/sparse_embedding_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/inference/sparse_embedding_spec.rb
new file mode 100644
index 0000000000..856dface5a
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/inference/sparse_embedding_spec.rb
@@ -0,0 +1,35 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client#inference.sparse_embedding' do
+  let(:expected_args) do
+    [
+      'POST',
+      '_inference/sparse_embedding/foo',
+      {},
+      nil,
+      {},
+      { defined_params: { inference_id: 'foo' }, endpoint: 'inference.sparse_embedding' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.inference.sparse_embedding(inference_id: 'foo')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/inference/stream_completion_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/inference/stream_completion_spec.rb
new file mode 100644
index 0000000000..542b1d9941
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/inference/stream_completion_spec.rb
@@ -0,0 +1,35 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client#inference.stream_completion' do
+  let(:expected_args) do
+    [
+      'POST',
+      '_inference/completion/foo/_stream',
+      {},
+      nil,
+      {},
+      { defined_params: { inference_id: 'foo' }, endpoint: 'inference.stream_completion' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.inference.stream_completion(inference_id: 'foo')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/inference/text_embedding_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/inference/text_embedding_spec.rb
new file mode 100644
index 0000000000..e97fda5865
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/inference/text_embedding_spec.rb
@@ -0,0 +1,35 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client#inference.text_embedding' do
+  let(:expected_args) do
+    [
+      'POST',
+      '_inference/text_embedding/foo',
+      {},
+      nil,
+      {},
+      { defined_params: { inference_id: 'foo' }, endpoint: 'inference.text_embedding' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.inference.text_embedding(inference_id: 'foo')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/inference/update_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/inference/update_spec.rb
new file mode 100644
index 0000000000..6f29cd0b58
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/inference/update_spec.rb
@@ -0,0 +1,36 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client#inference.update' do
+  let(:expected_args) do
+    [
+      'PUT',
+      '_inference/foo/bar/_update',
+      {},
+      nil,
+      {},
+      { defined_params: { inference_id: 'bar', task_type: 'foo' },
+        endpoint: 'inference.update' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.inference.update(task_type: 'foo', inference_id: 'bar')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/ingest/delete_geoip_database_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/ingest/delete_geoip_database_spec.rb
index 4a3e4e9b6e..a7a3622777 100644
--- a/elasticsearch-api/spec/elasticsearch/api/actions/ingest/delete_geoip_database_spec.rb
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/ingest/delete_geoip_database_spec.rb
@@ -34,6 +34,6 @@
   end
 
   it 'performs the request' do
-    expect(client_double.ingest.delete_geoip_database(id: 'foo', body: {})).to be_a Elasticsearch::API::Response
+    expect(client_double.ingest.delete_geoip_database(id: 'foo')).to be_a Elasticsearch::API::Response
   end
 end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/ingest/delete_ip_location_database_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/ingest/delete_ip_location_database_spec.rb
new file mode 100644
index 0000000000..429faebe9c
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/ingest/delete_ip_location_database_spec.rb
@@ -0,0 +1,39 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client.ingest#delete_ip_location_database' do
+  let(:expected_args) do
+    [
+      'DELETE',
+      '_ingest/ip_location/database/foo',
+      {},
+      nil,
+      {},
+      { defined_params: { id: 'foo' }, endpoint: 'ingest.delete_ip_location_database' }
+    ]
+  end
+
+  let(:client) do
+    Class.new { include Elasticsearch::API }.new
+  end
+
+  it 'performs the request' do
+    expect(client_double.ingest.delete_ip_location_database(id: 'foo')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/ingest/get_ip_location_database_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/ingest/get_ip_location_database_spec.rb
new file mode 100644
index 0000000000..41c356c3d3
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/ingest/get_ip_location_database_spec.rb
@@ -0,0 +1,39 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client.ingest#get_ip_location_database' do
+  let(:expected_args) do
+    [
+      'GET',
+      '_ingest/ip_location/database/foo',
+      {},
+      nil,
+      {},
+      { defined_params: { id: 'foo' }, endpoint: 'ingest.get_ip_location_database' }
+    ]
+  end
+
+  let(:client) do
+    Class.new { include Elasticsearch::API }.new
+  end
+
+  it 'performs the request' do
+    expect(client_double.ingest.get_ip_location_database(id: 'foo', body: {})).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/ingest/put_ip_location_database_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/ingest/put_ip_location_database_spec.rb
new file mode 100644
index 0000000000..6e3ea29c77
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/ingest/put_ip_location_database_spec.rb
@@ -0,0 +1,45 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client.ingest#put_ip_location_database' do
+  let(:expected_args) do
+    [
+      'PUT',
+      '_ingest/ip_location/database/foo',
+      {},
+      {},
+      {},
+      { defined_params: { id: 'foo' }, endpoint: 'ingest.put_ip_location_database' }
+    ]
+  end
+
+  let(:client) do
+    Class.new { include Elasticsearch::API }.new
+  end
+
+  it 'requires the :id argument' do
+    expect {
+      client.ingest.put_ip_location_database
+    }.to raise_exception(ArgumentError)
+  end
+
+  it 'performs the request' do
+    expect(client_double.ingest.put_ip_location_database(id: 'foo', body: {})).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/query_rules/test_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/query_rules/test_spec.rb
new file mode 100644
index 0000000000..294013680f
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/query_rules/test_spec.rb
@@ -0,0 +1,35 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client.query_rules#test' do
+  let(:expected_args) do
+    [
+      'POST',
+      '_query_rules/foo/_test',
+      {},
+      {},
+      {},
+      { defined_params: { ruleset_id: 'foo' }, endpoint: 'query_rules.test' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.query_rules.test(ruleset_id: 'foo', body: {})).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/actions/security/delegate_pki_spec.rb b/elasticsearch-api/spec/elasticsearch/api/actions/security/delegate_pki_spec.rb
new file mode 100644
index 0000000000..d21418f212
--- /dev/null
+++ b/elasticsearch-api/spec/elasticsearch/api/actions/security/delegate_pki_spec.rb
@@ -0,0 +1,39 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'client#security#delegate_pki' do
+  let(:expected_args) do
+    [
+      'POST',
+      '_security/delegate_pki',
+      params,
+      {},
+      {},
+      { endpoint: 'security.delegate_pki' }
+    ]
+  end
+
+  let(:params) do
+    {}
+  end
+
+  it 'performs the request' do
+    expect(client_double.security.delegate_pki(body: {})).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/elasticsearch/api/perform_request_spec.rb b/elasticsearch-api/spec/elasticsearch/api/perform_request_spec.rb
index a075ce257d..44b3fa288e 100644
--- a/elasticsearch-api/spec/elasticsearch/api/perform_request_spec.rb
+++ b/elasticsearch-api/spec/elasticsearch/api/perform_request_spec.rb
@@ -23,7 +23,7 @@
 describe 'Perform request args' do
   Elasticsearch::API::FilesHelper.files.each do |filepath|
     spec = Elasticsearch::API::EndpointSpec.new(filepath)
-    next if spec.module_namespace.flatten.first == '_internal'
+    next if spec.module_namespace.flatten.first == '_internal' || spec.visibility != 'public'
 
     # These are the path parts defined by the user in the method argument
     defined_path_parts = spec.path_params.inject({}) do |params, part|
diff --git a/elasticsearch-api/spec/rest_api/rest_api_yaml_spec.rb b/elasticsearch-api/spec/rest_api/rest_api_yaml_spec.rb
index 98e48c7f8e..9200dae676 100644
--- a/elasticsearch-api/spec/rest_api/rest_api_yaml_spec.rb
+++ b/elasticsearch-api/spec/rest_api/rest_api_yaml_spec.rb
@@ -82,6 +82,9 @@ def skip_test?(test)
             # ./run_task_groups.rb
             run_rspec_matchers_on_task_group(task_group, test)
           end
+        rescue StandardError => e
+          LOGGER.error e
+          raise e
         end
       end
     end
diff --git a/elasticsearch-api/spec/rest_api/skipped_tests_free.yml b/elasticsearch-api/spec/rest_api/skipped_tests_free.yml
index dfd8e2563c..5bd67e1d2a 100644
--- a/elasticsearch-api/spec/rest_api/skipped_tests_free.yml
+++ b/elasticsearch-api/spec/rest_api/skipped_tests_free.yml
@@ -150,3 +150,105 @@
 -
   :file: 'simulate.ingest/10_basic.yml'
   :description: 'Test mapping validation from templates'
+-
+  :file: 'indices.split/40_routing_partition_size.yml'
+  :description: '*'
+-
+  :file: 'ingest_geoip/40_geoip_databases.yml'
+  :description: 'Test adding, getting, and removing geoip databases'
+-
+  :file: 'ingest_geoip/50_ip_lookup_processor.yml'
+  :description: '*'
+-
+  :file: 'ingest_geoip/60_ip_location_databases.yml'
+  :description: '*'
+-
+  :file: 'index/91_metrics_no_subobjects.yml'
+  :description: 'Metrics object indexing with synthetic source'
+-
+  :file: 'indices.create/20_synthetic_source.yml'
+  :description: '*'
+-
+  :file: 'indices.create/21_synthetic_source_stored.yml'
+  :description: '*'
+-
+  :file: 'indices.put_mapping/10_basic.yml'
+  :description: 'disabling synthetic source fails'
+-
+  :file: 'logsdb/20_source_mapping.yml'
+  :description: 'synthetic _source is default'
+-
+  :file: 'index/92_metrics_auto_subobjects.yml'
+  :description: 'Metrics object indexing with synthetic source'
+-
+  :file: 'tsdb/20_mapping.yml'
+  :description: 'Synthetic source'
+-
+  :file: 'search.highlight/50_synthetic_source.yml'
+  :description: 'text multi fvh source order'
+-
+  :file: 'search.highlight/50_synthetic_source.yml'
+  :description: 'text multi fvh score order'
+-
+  :file: 'update/100_synthetic_source.yml'
+  :description: 'stored text'
+-
+  :file: 'get/100_synthetic_source.yml'
+  :description: 'fetch without refresh also produces synthetic source'
+-
+  :file: 'update/100_synthetic_source.yml'
+  :description: 'stored text'
+-
+  :file: 'update/100_synthetic_source.yml'
+  :description: 'keyword'
+-
+  :file: 'update/100_synthetic_source.yml'
+  :description: 'fetch without refresh also produces synthetic source'
+-
+  :file: 'get/100_synthetic_source.yml'
+  :description: 'flattened field'
+-
+  :file: 'get/100_synthetic_source.yml'
+  :description: 'flattened field with ignore_above and arrays'
+-
+  :file: 'range/20_synthetic_source.yml'
+  :description: '*'
+-
+  :file: 'logsdb/20_source_mapping.yml'
+  :description: 'disabled _source is not supported'
+-
+  :file: 'logsdb/20_source_mapping.yml'
+  :description: 'include/exclude is not supported with synthetic _source'
+-
+  :file: 'tsdb/20_mapping.yml'
+  :description: 'disabled source is not supported'
+-
+  :file: 'tsdb/20_mapping.yml'
+  :description: 'source include/exclude'
+-
+  :file: 'cluster.stats/40_source_modes.yml'
+  :description: 'test source modes'
+-
+  :file: 'search/520_fetch_fields.yml'
+  :description: 'fetch _seq_no via fields'
+-
+  :file: 'indices.recovery/20_synthetic_source.yml'
+  :description: 'test recovery empty index with use_synthetic_source'
+-
+  :file: 'indices.create/10_basic.yml'
+  :description: 'Create lookup index'
+-
+  :file: 'indices.create/10_basic.yml'
+  :description: 'Create lookup index with one shard'
+-
+  :file: 'nodes.stats/11_indices_metrics.yml'
+  :description: 'indices mappings exact count test for indices level'
+-
+  :file: 'data_stream/10_basic.yml'
+  :description: '*'
+-
+  :file: 'data_stream/150_tsdb.yml'
+  :description: '*'
+-
+  :file: 'data_stream/190_failure_store_redirection.yml'
+  :description: '*'
diff --git a/elasticsearch-api/spec/rest_api/skipped_tests_platinum.yml b/elasticsearch-api/spec/rest_api/skipped_tests_platinum.yml
index 1a4c3ca323..7094638148 100644
--- a/elasticsearch-api/spec/rest_api/skipped_tests_platinum.yml
+++ b/elasticsearch-api/spec/rest_api/skipped_tests_platinum.yml
@@ -49,7 +49,9 @@
 -
   :file: 'snapshot/10_basic.yml'
   :description: 'Create a source only snapshot and then restore it'
-
+-
+  :file: 'snapshot/10_basic.yml'
+  :description: 'Failed to snapshot indices with synthetic source'
 -
   :file: 'token/10_basic.yml'
   :description: "Test invalidate user's tokens"
@@ -212,3 +214,112 @@
 -
   :file: 'esql/180_match_operator.yml'
   :description: '*'
+-
+  :file: 'esql/60_usage.yml'
+  :description: 'Basic ESQL usage output (telemetry) non-snapshot version'
+-
+  :file: 'wildcard/30_ignore_above_synthetic_source.yml'
+  :description: 'wildcard field type ignore_above'
+-
+  :file: 'wildcard/20_ignore_above_stored_source.yml'
+  :description: 'wildcard field type ignore_above'
+-
+  :file: 'esql/150_lookup.yml'
+  :description: '*'
+# TODO: once migrate is available in spec
+-
+  :file: 'migrate/10_reindex.yml'
+  :description: '*'
+-
+  :file: 'migrate/20_reindex_status.yml'
+  :description: '*'
+-
+  :file: 'migrate/30_create_from.yml'
+  :description: '*'
+-
+  :file: 'esql/60_usage.yml'
+  :description: 'Basic ESQL usage output (telemetry) snapshot version'
+
+# TODO: 8.19 - 30 June 2025
+-
+  :file: 'inference/10_semantic_text_field_mapping.yml'
+  :description: '*'
+-
+  :file: 'inference/10_semantic_text_field_mapping_bwc.yml'
+  :description: '*'
+-
+  :file: 'inference/25_semantic_text_field_mapping_chunking.yml'
+  :description: '*'
+-
+  :file: 'inference/25_semantic_text_field_mapping_chunking_bwc.yml'
+  :description: '*'
+-
+  :file: 'inference/30_semantic_text_inference.yml'
+  :description: '*'
+-
+  :file: 'inference/30_semantic_text_inference_bwc.yml'
+  :description: '*'
+-
+  :file: 'inference/40_semantic_text_query.yml'
+  :description: '*'
+-
+  :file: 'inference/45_semantic_text_match.yml'
+  :description: '*'
+-
+  :file: 'inference/46_semantic_text_sparse_vector.yml'
+  :description: '*'
+-
+  :file: 'inference/47_semantic_text_knn.yml'
+  :description: '*'
+-
+  :file: 'inference/50_semantic_text_query_inference_endpoint_changes.yml'
+  :description: '*'
+-
+  :file: 'inference/60_semantic_text_inference_update.yml'
+  :description: '*'
+-
+  :file: 'inference/60_semantic_text_inference_update_bwc.yml'
+  :description: '*'
+-
+  :file: 'inference/70_semantic_text_exists_query.yml'
+  :description: '*'
+-
+  :file: 'inference/70_text_similarity_rank_retriever.yml'
+  :description: '*'
+-
+  :file: 'inference/80_random_rerank_retriever.yml'
+  :description: '*'
+-
+  :file: 'inference/90_semantic_text_highlighter.yml'
+  :description: '*'
+-
+  :file: 'inference/90_semantic_text_highlighter_bwc.yml'
+  :description: '*'
+# ENDS TODO: 8.19 - 30 June 2025
+-
+  :file: 'mustache/10_webhook.yml'
+  :description: '*'
+-
+  :file: 'mustache/50_webhook_url_escaping.yml'
+  :description: '*'
+-
+  :file: 'watcher/execute_watch/10_basic.yml'
+  :description: '*'
+-
+  :file: 'watcher/execute_watch/60_http_input.yml'
+  :description: '*'
+-
+  :file: 'watcher/settings_endpoints/10_watcher_settings.yml'
+  :description: '*'
+-
+  :file: 'watcher/execute_watch/30_throttled.yml'
+  :description: '*'
+-
+  :file: 'watcher/execute_watch/40_ignore_condition.yml'
+  :description: '*'
+-
+  :file: 'watcher/execute_watch/50_action_mode.yml'
+  :description: '*'
+-
+  :file: 'watcher/put_watch/90_auto_create_index.yml'
+  :description: '*'
diff --git a/elasticsearch-api/spec/spec_helper.rb b/elasticsearch-api/spec/spec_helper.rb
index e2ad892f05..fe0099ed41 100644
--- a/elasticsearch-api/spec/spec_helper.rb
+++ b/elasticsearch-api/spec/spec_helper.rb
@@ -59,6 +59,7 @@ def self.included(context)
 RSpec.configure do |config|
   config.include(HelperModule)
   config.add_formatter('documentation')
+  config.filter_run_excluding skip: true
   if defined?(JRUBY_VERSION)
     config.add_formatter('RSpec::Core::Formatters::HtmlFormatter', "tmp/elasticsearch-#{ENV['TEST_SUITE']}-jruby-#{JRUBY_VERSION}.html")
   else
diff --git a/elasticsearch-api/spec/unit/actions/async_search/delete_spec.rb b/elasticsearch-api/spec/unit/actions/async_search/delete_spec.rb
new file mode 100644
index 0000000000..8db2fb3297
--- /dev/null
+++ b/elasticsearch-api/spec/unit/actions/async_search/delete_spec.rb
@@ -0,0 +1,35 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'async_search.delete' do
+  let(:expected_args) do
+    [
+      'DELETE',
+      '_async_search/foo',
+      {},
+      nil,
+      {},
+      { endpoint: 'count' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.async_search.delete(id: 'foo')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/unit/actions/async_search/get_spec.rb b/elasticsearch-api/spec/unit/actions/async_search/get_spec.rb
new file mode 100644
index 0000000000..80d9b84e91
--- /dev/null
+++ b/elasticsearch-api/spec/unit/actions/async_search/get_spec.rb
@@ -0,0 +1,35 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require 'spec_helper'
+
+describe 'async_search.delete' do
+  let(:expected_args) do
+    [
+      'GET',
+      '_async_search/foo',
+      {},
+      nil,
+      {},
+      { endpoint: 'count' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.async_search.get(id: 'foo')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/unit/actions/async_search/status_spec.rb b/elasticsearch-api/spec/unit/actions/async_search/status_spec.rb
new file mode 100644
index 0000000000..66191b44ae
--- /dev/null
+++ b/elasticsearch-api/spec/unit/actions/async_search/status_spec.rb
@@ -0,0 +1,34 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+require 'spec_helper'
+
+describe 'async_search.delete' do
+  let(:expected_args) do
+    [
+      'GET',
+      '_async_search/status/foo',
+      {},
+      nil,
+      {},
+      { endpoint: 'async_search.status' }
+    ]
+  end
+
+  it 'performs the request' do
+    expect(client_double.async_search.status(id: 'foo')).to be_a Elasticsearch::API::Response
+  end
+end
diff --git a/elasticsearch-api/spec/unit/actions/async_search/submit_spec.rb b/elasticsearch-api/spec/unit/actions/async_search/submit_spec.rb
new file mode 100644
index 0000000000..5c2068e080
--- /dev/null
+++ b/elasticsearch-api/spec/unit/actions/async_search/submit_spec.rb
@@ -0,0 +1,87 @@
+# Licensed to Elasticsearch B.V. under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Elasticsearch B.V. licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+require 'spec_helper'
+
+describe 'async_search.submit' do
+  context 'with no parameters' do
+    let(:expected_args) do
+      [
+        'POST',
+        '_async_search',
+        {},
+        nil,
+        {},
+        { endpoint: 'async_search.submit' }
+      ]
+    end
+
+    it 'performs the request' do
+      expect(client_double.async_search.submit).to be_a Elasticsearch::API::Response
+    end
+  end
+
+  context 'with index' do
+    let(:expected_args) do
+      [
+        'DELETE',
+        '_async_search/foo',
+        {},
+        nil,
+        {},
+        { endpoint: 'count' }
+      ]
+    end
+
+    it 'performs the request' do
+      expect(client_double.async_search.submit).to be_a Elasticsearch::API::Response
+    end
+  end
+end
+
+require 'test_helper'
+
+module Elasticsearch
+  module Test
+    class XPackAsyncSearchSubmit < Minitest::Test
+      subject { FakeClient.new }
+
+      context 'XPack: Async Search Submit' do
+        should 'perform correct request' do
+          subject.expects(:perform_request).with do |method, url, params, body|
+            assert_equal('POST', method)
+            assert_equal('_async_search', url)
+            assert_equal({}, params)
+            assert_nil(body)
+          end.returns(FakeResponse.new)
+
+          subject.async_search.submit
+        end
+
+        should 'perform correct request with index' do
+          subject.expects(:perform_request).with do |method, url, params, body|
+            assert_equal('POST', method)
+            assert_equal('foo/_async_search', url)
+            assert_equal({}, params)
+            assert_nil(body)
+          end.returns(FakeResponse.new)
+
+          subject.async_search.submit(index: 'foo')
+        end
+      end
+    end
+  end
+end
diff --git a/elasticsearch-api/spec/yaml-test-runner/run.rb b/elasticsearch-api/spec/yaml-test-runner/run.rb
index c25c3a71c3..f477f3d56a 100644
--- a/elasticsearch-api/spec/yaml-test-runner/run.rb
+++ b/elasticsearch-api/spec/yaml-test-runner/run.rb
@@ -64,4 +64,7 @@
 current_branch = `git rev-parse --abbrev-ref HEAD`.strip
 branch = current_branch.match(/[0-9]\.[0-9]+/)&.[](0) || ENV['ES_YAML_TESTS_BRANCH'] || nil
 Elasticsearch::Tests::Downloader::run(tests_path, branch)
-Elasticsearch::Tests::TestRunner.new(CLIENT, tests_path, logger).run
+
+runner = Elasticsearch::Tests::TestRunner.new(CLIENT, tests_path, logger)
+runner.add_tests_to_skip('inference/10_basic.yml') # TODO: Extract into file
+runner.run
diff --git a/elasticsearch-api/utils/Gemfile b/elasticsearch-api/utils/Gemfile
index 6f6f061b67..d7a0fe4d5a 100644
--- a/elasticsearch-api/utils/Gemfile
+++ b/elasticsearch-api/utils/Gemfile
@@ -24,5 +24,5 @@ gem 'multi_json'
 gem 'pry'
 gem 'thor'
 
-gem 'rubocop', '>= 1.51' unless defined?(JRUBY_VERSION) && Gem::Version.new(JRUBY_VERSION) <= Gem::Version.new('9.4')
+gem 'rubocop', '>= 1.51' unless defined?(JRUBY_VERSION)
 gem 'debug' unless defined?(JRUBY_VERSION)
diff --git a/elasticsearch-api/utils/thor/endpoint_spec.rb b/elasticsearch-api/utils/thor/endpoint_spec.rb
index 30a06a5562..a309cbb9e2 100644
--- a/elasticsearch-api/utils/thor/endpoint_spec.rb
+++ b/elasticsearch-api/utils/thor/endpoint_spec.rb
@@ -24,6 +24,23 @@ module API
     class EndpointSpec
       include EndpointSpecifics
 
+      # These APIs are private, but were added in 8.x since the generator didn't consider
+      # visibility. They will be removed in 9.x since we're using a different generator that
+      # considers visibility. But new private APIs code won't be generated for the client.
+      EXCLUDED_8X = [
+        'autoscaling.delete_autoscaling_policy', 'autoscaling.get_autoscaling_capacity',
+        'autoscaling.get_autoscaling_policy', 'autoscaling.put_autoscaling_policy', 'capabilities',
+        'connector.secret_delete', 'connector.secret_get', 'connector.secret_post',
+        'connector.secret_put', 'fleet.delete_secret', 'fleet.get_secret', 'fleet.post_secret',
+        'ml.validate', 'ml.validate_detector', 'monitoring.bulk', 'profiling.flamegraph',
+        'profiling.stacktraces', 'profiling.status', 'profiling.topn_functions',
+        'security.activate_user_profile', 'security.disable_user_profile',
+        'security.enable_user_profile', 'security.get_user_profile',
+        'security.has_privileges_user_profile', 'security.suggest_user_profiles',
+        'security.update_user_profile_data', 'shutdown.delete_node', 'shutdown.get_node',
+        'shutdown.put_node'
+      ].freeze
+
       def initialize(filepath)
         @path = Pathname(filepath)
         json = MultiJson.load(File.read(@path))
@@ -31,14 +48,14 @@ def initialize(filepath)
         @endpoint_name = json.keys.first
 
         full_namespace = parse_full_namespace
-        @namespace_depth = full_namespace.size > 0 ? full_namespace.size - 1 : 0
+        @namespace_depth = full_namespace.size.positive? ? full_namespace.size - 1 : 0
         @module_namespace = full_namespace[0, @namespace_depth]
         @method_name = full_namespace.last
 
         @path_parts = parse_endpoint_parts(@spec)
         @params = @spec['params'] || {}
         @paths = @spec['url']['paths'].map { |b| b['path'] } if @spec['url']
-        @path_params   = path_variables.flatten.uniq.collect(&:to_sym)
+        @path_params = path_variables.flatten.uniq.collect(&:to_sym)
         @http_method = parse_http_method(@spec)
         @deprecation_note = @spec['url']['paths'].last&.[]('deprecated')
         @http_path        = parse_http_path(@paths)
@@ -71,6 +88,16 @@ def stability
         @spec['stability']
       end
 
+      def visibility
+        @spec['visibility']
+      end
+
+      def skippable?
+        return true if module_namespace.flatten.first == '_internal'
+
+        visibility != 'public' && !EXCLUDED_8X.include?(endpoint_name)
+      end
+
       # Function that adds the listified h param code
       def specific_params
         super(@module_namespace.first, @method_name)
diff --git a/elasticsearch-api/utils/thor/endpoint_specifics.rb b/elasticsearch-api/utils/thor/endpoint_specifics.rb
index 5dc4d6fa65..eea5f46cdd 100644
--- a/elasticsearch-api/utils/thor/endpoint_specifics.rb
+++ b/elasticsearch-api/utils/thor/endpoint_specifics.rb
@@ -39,6 +39,7 @@ module EndpointSpecifics
         indices.delete
         indices.delete_template
         indices.flush_synced
+        query_rules.delete_ruleset
         security.get_role
         security.get_user
         snapshot.delete
diff --git a/elasticsearch-api/utils/thor/generate_source.rb b/elasticsearch-api/utils/thor/generate_source.rb
index df60b0004c..acdf8bb41d 100644
--- a/elasticsearch-api/utils/thor/generate_source.rb
+++ b/elasticsearch-api/utils/thor/generate_source.rb
@@ -68,7 +68,7 @@ def generate_source
           @spec = EndpointSpec.new(filepath)
           say_status 'json', @spec.path, :yellow
           # Don't generate code for internal APIs:
-          next if @spec.module_namespace.flatten.first == '_internal'
+          next if @spec.skippable?
 
           path_to_file = output.join(@spec.module_namespace.join('/')).join("#{@spec.method_name}.rb")
           dir = output.join(@spec.module_namespace.join('/'))
diff --git a/elasticsearch/elasticsearch.gemspec b/elasticsearch/elasticsearch.gemspec
index d7dbdc900f..dd16a0e5f4 100644
--- a/elasticsearch/elasticsearch.gemspec
+++ b/elasticsearch/elasticsearch.gemspec
@@ -46,7 +46,7 @@ Gem::Specification.new do |s|
   s.required_ruby_version = '>= 2.5'
 
   s.add_dependency 'elastic-transport', '~> 8.3'
-  s.add_dependency 'elasticsearch-api', '8.14.0'
+  s.add_dependency 'elasticsearch-api', '8.18.0'
 
   s.add_development_dependency 'base64'
   s.add_development_dependency 'bundler'
diff --git a/elasticsearch/lib/elasticsearch.rb b/elasticsearch/lib/elasticsearch.rb
index 6b1639f383..5fb6750931 100644
--- a/elasticsearch/lib/elasticsearch.rb
+++ b/elasticsearch/lib/elasticsearch.rb
@@ -160,6 +160,7 @@ def elasticsearch_validation_request
 
     def sent_user_agent?(arguments)
       return unless (headers = arguments&.[](:transport_options)&.[](:headers))
+
       !!headers.keys.detect { |h| h =~ /user-?_?agent/ }
     end
 
diff --git a/elasticsearch/lib/elasticsearch/helpers/scroll_helper.rb b/elasticsearch/lib/elasticsearch/helpers/scroll_helper.rb
index 747750cfa6..ead41314ac 100644
--- a/elasticsearch/lib/elasticsearch/helpers/scroll_helper.rb
+++ b/elasticsearch/lib/elasticsearch/helpers/scroll_helper.rb
@@ -43,12 +43,8 @@ def initialize(client, index, body, scroll = '1m')
       # @yieldparam document [Hash] yields a document found in the search hits.
       #
       def each(&block)
-        @docs = []
-        @scroll_id = nil
-        refresh_docs
-        for doc in @docs do
-          refresh_docs
-          yield doc
+        until (docs = results).empty?
+          docs.each(&block)
         end
         clear
       end
@@ -70,17 +66,11 @@ def results
       #
       def clear
         @client.clear_scroll(body: { scroll_id: @scroll_id }) if @scroll_id
-        @docs = []
+        @scroll_id = nil
       end
 
       private
 
-      def refresh_docs
-        @docs ||= []
-        @docs << results
-        @docs.flatten!
-      end
-
       def initial_search
         response = @client.search(index: @index, scroll: @scroll, body: @body)
         @scroll_id = response['_scroll_id']
@@ -88,7 +78,7 @@ def initial_search
       end
 
       def scroll_request
-        @client.scroll(body: {scroll: @scroll, scroll_id: @scroll_id})['hits']['hits']
+        @client.scroll(body: { scroll: @scroll, scroll_id: @scroll_id })['hits']['hits']
       end
     end
   end
diff --git a/elasticsearch/lib/elasticsearch/version.rb b/elasticsearch/lib/elasticsearch/version.rb
index 099a40a401..8d7e5e7064 100644
--- a/elasticsearch/lib/elasticsearch/version.rb
+++ b/elasticsearch/lib/elasticsearch/version.rb
@@ -16,5 +16,5 @@
 # under the License.
 
 module Elasticsearch
-  VERSION = '8.14.0'.freeze
+  VERSION = '8.18.0'.freeze
 end
diff --git a/elasticsearch/spec/integration/helpers/scroll_helper_spec.rb b/elasticsearch/spec/integration/helpers/scroll_helper_spec.rb
index 8cd63f9869..ec59731b54 100644
--- a/elasticsearch/spec/integration/helpers/scroll_helper_spec.rb
+++ b/elasticsearch/spec/integration/helpers/scroll_helper_spec.rb
@@ -18,64 +18,66 @@
 require 'elasticsearch/helpers/scroll_helper'
 
 context 'Elasticsearch client helpers' do
-  let(:index) { 'books' }
-  let(:body) { { size: 12, query: { match_all: {} } } }
-  let(:scroll_helper) { Elasticsearch::Helpers::ScrollHelper.new(client, index, body) }
+  context 'ScrollHelper' do
+    let(:index) { 'books' }
+    let(:body) { { size: 12, query: { match_all: {} } } }
+    let(:scroll_helper) { Elasticsearch::Helpers::ScrollHelper.new(client, index, body) }
 
-  before do
-    documents = [
-      { index: { _index: index, data: {name: "Leviathan Wakes", "author": "James S.A. Corey", "release_date": "2011-06-02", "page_count": 561} } },
-      { index: { _index: index, data: {name: "Hyperion", "author": "Dan Simmons", "release_date": "1989-05-26", "page_count": 482} } },
-      { index: { _index: index, data: {name: "Dune", "author": "Frank Herbert", "release_date": "1965-06-01", "page_count": 604} } },
-      { index: { _index: index, data: {name: "Dune Messiah", "author": "Frank Herbert", "release_date": "1969-10-15", "page_count": 331} } },
-      { index: { _index: index, data: {name: "Children of Dune", "author": "Frank Herbert", "release_date": "1976-04-21", "page_count": 408} } },
-      { index: { _index: index, data: {name: "God Emperor of Dune", "author": "Frank Herbert", "release_date": "1981-05-28", "page_count": 454} } },
-      { index: { _index: index, data: {name: "Consider Phlebas", "author": "Iain M. Banks", "release_date": "1987-04-23", "page_count": 471} } },
-      { index: { _index: index, data: {name: "Pandora's Star", "author": "Peter F. Hamilton", "release_date": "2004-03-02", "page_count": 768} } },
-      { index: { _index: index, data: {name: "Revelation Space", "author": "Alastair Reynolds", "release_date": "2000-03-15", "page_count": 585} } },
-      { index: { _index: index, data: {name: "A Fire Upon the Deep", "author": "Vernor Vinge", "release_date": "1992-06-01", "page_count": 613} } },
-      { index: { _index: index, data: {name: "Ender's Game", "author": "Orson Scott Card", "release_date": "1985-06-01", "page_count": 324} } },
-      { index: { _index: index, data: {name: "1984", "author": "George Orwell", "release_date": "1985-06-01", "page_count": 328} } },
-      { index: { _index: index, data: {name: "Fahrenheit 451", "author": "Ray Bradbury", "release_date": "1953-10-15", "page_count": 227} } },
-      { index: { _index: index, data: {name: "Brave New World", "author": "Aldous Huxley", "release_date": "1932-06-01", "page_count": 268} } },
-      { index: { _index: index, data: {name: "Foundation", "author": "Isaac Asimov", "release_date": "1951-06-01", "page_count": 224} } },
-      { index: { _index: index, data: {name: "The Giver", "author": "Lois Lowry", "release_date": "1993-04-26", "page_count": 208} } },
-      { index: { _index: index, data: {name: "Slaughterhouse-Five", "author": "Kurt Vonnegut", "release_date": "1969-06-01", "page_count": 275} } },
-      { index: { _index: index, data: {name: "The Hitchhiker's Guide to the Galaxy", "author": "Douglas Adams", "release_date": "1979-10-12", "page_count": 180} } },
-      { index: { _index: index, data: {name: "Snow Crash", "author": "Neal Stephenson", "release_date": "1992-06-01", "page_count": 470} } },
-      { index: { _index: index, data: {name: "Neuromancer", "author": "William Gibson", "release_date": "1984-07-01", "page_count": 271} } },
-      { index: { _index: index, data: {name: "The Handmaid's Tale", "author": "Margaret Atwood", "release_date": "1985-06-01", "page_count": 311} } },
-      { index: { _index: index, data: {name: "Starship Troopers", "author": "Robert A. Heinlein", "release_date": "1959-12-01", "page_count": 335} } },
-      { index: { _index: index, data: {name: "The Left Hand of Darkness", "author": "Ursula K. Le Guin", "release_date": "1969-06-01", "page_count": 304} } },
-      { index: { _index: index, data: {name: "The Moon is a Harsh Mistress", "author": "Robert A. Heinlein", "release_date": "1966-04-01", "page_count": 288 } } }
-    ]
-    client.bulk(body: documents, refresh: 'wait_for')
-  end
-
-  after do
-    client.indices.delete(index: index)
-  end
+    before do
+      documents = [
+        { index: { _index: index, data: {name: "Leviathan Wakes", "author": "James S.A. Corey", "release_date": "2011-06-02", "page_count": 561} } },
+        { index: { _index: index, data: {name: "Hyperion", "author": "Dan Simmons", "release_date": "1989-05-26", "page_count": 482} } },
+        { index: { _index: index, data: {name: "Dune", "author": "Frank Herbert", "release_date": "1965-06-01", "page_count": 604} } },
+        { index: { _index: index, data: {name: "Dune Messiah", "author": "Frank Herbert", "release_date": "1969-10-15", "page_count": 331} } },
+        { index: { _index: index, data: {name: "Children of Dune", "author": "Frank Herbert", "release_date": "1976-04-21", "page_count": 408} } },
+        { index: { _index: index, data: {name: "God Emperor of Dune", "author": "Frank Herbert", "release_date": "1981-05-28", "page_count": 454} } },
+        { index: { _index: index, data: {name: "Consider Phlebas", "author": "Iain M. Banks", "release_date": "1987-04-23", "page_count": 471} } },
+        { index: { _index: index, data: {name: "Pandora's Star", "author": "Peter F. Hamilton", "release_date": "2004-03-02", "page_count": 768} } },
+        { index: { _index: index, data: {name: "Revelation Space", "author": "Alastair Reynolds", "release_date": "2000-03-15", "page_count": 585} } },
+        { index: { _index: index, data: {name: "A Fire Upon the Deep", "author": "Vernor Vinge", "release_date": "1992-06-01", "page_count": 613} } },
+        { index: { _index: index, data: {name: "Ender's Game", "author": "Orson Scott Card", "release_date": "1985-06-01", "page_count": 324} } },
+        { index: { _index: index, data: {name: "1984", "author": "George Orwell", "release_date": "1985-06-01", "page_count": 328} } },
+        { index: { _index: index, data: {name: "Fahrenheit 451", "author": "Ray Bradbury", "release_date": "1953-10-15", "page_count": 227} } },
+        { index: { _index: index, data: {name: "Brave New World", "author": "Aldous Huxley", "release_date": "1932-06-01", "page_count": 268} } },
+        { index: { _index: index, data: {name: "Foundation", "author": "Isaac Asimov", "release_date": "1951-06-01", "page_count": 224} } },
+        { index: { _index: index, data: {name: "The Giver", "author": "Lois Lowry", "release_date": "1993-04-26", "page_count": 208} } },
+        { index: { _index: index, data: {name: "Slaughterhouse-Five", "author": "Kurt Vonnegut", "release_date": "1969-06-01", "page_count": 275} } },
+        { index: { _index: index, data: {name: "The Hitchhiker's Guide to the Galaxy", "author": "Douglas Adams", "release_date": "1979-10-12", "page_count": 180} } },
+        { index: { _index: index, data: {name: "Snow Crash", "author": "Neal Stephenson", "release_date": "1992-06-01", "page_count": 470} } },
+        { index: { _index: index, data: {name: "Neuromancer", "author": "William Gibson", "release_date": "1984-07-01", "page_count": 271} } },
+        { index: { _index: index, data: {name: "The Handmaid's Tale", "author": "Margaret Atwood", "release_date": "1985-06-01", "page_count": 311} } },
+        { index: { _index: index, data: {name: "Starship Troopers", "author": "Robert A. Heinlein", "release_date": "1959-12-01", "page_count": 335} } },
+        { index: { _index: index, data: {name: "The Left Hand of Darkness", "author": "Ursula K. Le Guin", "release_date": "1969-06-01", "page_count": 304} } },
+        { index: { _index: index, data: {name: "The Moon is a Harsh Mistress", "author": "Robert A. Heinlein", "release_date": "1966-04-01", "page_count": 288 } } }
+      ]
+      client.bulk(body: documents, refresh: 'wait_for')
+    end
 
-  it 'instantiates a scroll helper' do
-    expect(scroll_helper).to be_an_instance_of Elasticsearch::Helpers::ScrollHelper
-  end
+    after do
+      client.indices.delete(index: index)
+    end
 
-  it 'searches an index' do
-    my_documents = []
-    while !(documents = scroll_helper.results).empty?
-      my_documents << documents
+    it 'instantiates a scroll helper' do
+      expect(scroll_helper).to be_an_instance_of Elasticsearch::Helpers::ScrollHelper
     end
 
-    expect(my_documents.flatten.size).to eq 24
-  end
+    it 'searches an index' do
+      my_documents = []
+      while !(documents = scroll_helper.results).empty?
+        my_documents << documents
+      end
 
-  it 'uses enumerable' do
-    count = 0
-    scroll_helper.each { |a| count += 1 }
-    expect(count).to eq 24
-    expect(scroll_helper).to respond_to(:count)
-    expect(scroll_helper).to respond_to(:reject)
-    expect(scroll_helper).to respond_to(:uniq)
-    expect(scroll_helper.map { |a| a['_id'] }.uniq.count).to eq 24
+      expect(my_documents.flatten.size).to eq 24
+    end
+
+    it 'uses enumerable' do
+      count = 0
+      scroll_helper.each { count += 1 }
+      expect(count).to eq 24
+      expect(scroll_helper).to respond_to(:count)
+      expect(scroll_helper).to respond_to(:reject)
+      expect(scroll_helper).to respond_to(:uniq)
+      expect(scroll_helper.map { |a| a['_id'] }.uniq.count).to eq 24
+    end
   end
 end
diff --git a/rake_tasks/automation.rake b/rake_tasks/automation.rake
index 6edce27267..751804e492 100644
--- a/rake_tasks/automation.rake
+++ b/rake_tasks/automation.rake
@@ -98,7 +98,6 @@ namespace :automation do
   task :bumpmatrix, :version do |_, args|
     abort('[!] Required argument [version] missing') unless (version = args[:version])
     gh_actions = Dir.glob(File.expand_path('../.github/workflows/*.yml', __dir__))
-
     files = gh_actions + ['.buildkite/pipeline.yml']
     regexp = Regexp.new(/([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2}?+(-SNAPSHOT)?)/)
     files.each do |file|
@@ -108,10 +107,10 @@ namespace :automation do
         yaml = YAML.safe_load(content)
         branch = version.match(/([0-9]+\.[0-9]+)\.[0-9]+.*/)[1]
         yaml_tests_branch = yaml['steps'][1]['env']['ES_YAML_TESTS_BRANCH']
-        next if yaml_tests_branch == 'main'
-
-        content.gsub!(yaml_tests_branch, branch)
-        puts "[#{yaml_tests_branch}] -> [#{branch}] in #{file.gsub('./', '')}"
+        unless ['main', '8.x'].include? yaml_tests_branch
+          content.gsub!(yaml_tests_branch, branch)
+          puts "[#{yaml_tests_branch}] -> [#{branch}] in #{file.gsub('./', '')}"
+        end
       end
       match = content.match(regexp)
       next if match.nil?
