Repository: opensearch-project/opensearch-py
Pull request #206 (2022-09-28 17:47:49)

Incrementing version to 2.0.1
Signed-off-by: Harsha Vamsi Kalluri <harshavamsi096@gmail.com>

### Description
_Describe what this change achieves._

### Issues Resolved
_List any issues this PR will resolve, e.g. Closes [...]._ 

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check [here](https://github.com/opensearch-project/OpenSearch/blob/main/CONTRIBUTING.md#developer-certificate-of-origin).



Patch:
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index d38f5604..51ace031 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -39,13 +39,21 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        python-version: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9]
+        python-version: ['3.7', '3.8', '3.9', '3.10']
+        os: [ubuntu-latest]
         experimental: [false]
         include:
-          - python-version: 3.10.0-beta.2
-            experimental: true
+          - python-version: '2.7'
+            os: ubuntu-20.04
+            experimental: false
+          - python-version: '3.5'
+            os: ubuntu-20.04
+            experimental: false
+          - python-version: '3.6'
+            os: ubuntu-20.04
+            experimental: false
 
-    runs-on: ubuntu-latest
+    runs-on: ${{ matrix.os }}
     name: test-${{ matrix.python-version }}
     continue-on-error: ${{ matrix.experimental }}
     steps:
diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml
new file mode 100644
index 00000000..84c4d0d9
--- /dev/null
+++ b/.github/workflows/release-drafter.yml
@@ -0,0 +1,31 @@
+name: Release drafter
+
+on:
+  push:
+    tags:
+      - "*"
+
+jobs:
+  draft-a-release:
+    runs-on: ubuntu-latest
+    steps:
+      - name: Checkout Repository
+        uses: actions/checkout@v3
+      - name: Set up Python 3
+        uses: actions/setup-python@v3
+        with:
+          python-version: '3.x'
+      - name: Install build tools
+        run: |
+          python -m pip install --upgrade build
+      - name: Build project for distribution
+        run: |
+          python -m build
+          tar -zvcf artifacts.tar.gz dist
+      - name: Release
+        uses: softprops/action-gh-release@v1
+        with:
+          draft: true
+          generate_release_notes: true
+          files: |
+            artifacts.tar.gz
diff --git a/.github/workflows/unified-release.yml b/.github/workflows/unified-release.yml
index 85081416..de6fab39 100644
--- a/.github/workflows/unified-release.yml
+++ b/.github/workflows/unified-release.yml
@@ -9,7 +9,7 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        stack_version: ['2.0.0']
+        stack_version: ['2.0.1']
 
     steps:
       - name: Checkout
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7c12dddb..7d76c4c7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,8 +5,12 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 ### Added
 - Added Point in time API rest API([#191](https://github.com/opensearch-project/opensearch-py/pull/191))
 - Github workflow for changelog verification ([#218](https://github.com/opensearch-project/opensearch-py/pull/218))
+- Added overload decorators to helpers-actions.pyi-"bulk" ([#239](https://github.com/opensearch-project/opensearch-py/pull/239))
+- Add release workflows ([#240](https://github.com/opensearch-project/opensearch-py/pull/240))
 ### Changed
-
+- Updated getting started to user guide ([#233](https://github.com/opensearch-project/opensearch-py/pull/233))
+- Updated CA certificate handling to check OpenSSL environment variables before defaulting to certifi ([#196](https://github.com/opensearch-project/opensearch-py/pull/196))
+- Updates `master` to `cluster_manager` to be inclusive ([#242](https://github.com/opensearch-project/opensearch-py/pull/242))
 ### Deprecated
 
 ### Removed
diff --git a/README.md b/README.md
index 3fd2432c..316c0e54 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,7 @@
 OpenSearch Python Client
 
 - [Welcome!](https://github.com/opensearch-project/opensearch-py#welcome)
-- [User guide](https://github.com/opensearch-project/opensearch-py#user-guide)
+- [User Guide](https://github.com/opensearch-project/opensearch-py#user-guide)
 - [API Doc](https://opensearch-project.github.io/opensearch-py/)
 - [Compatibility with OpenSearch](https://github.com/opensearch-project/opensearch-py#compatibility-with-opensearch)
 - [Project Resources](https://github.com/opensearch-project/opensearch-py#project-resources)
@@ -26,9 +26,9 @@ For more information, see [opensearch.org](https://opensearch.org/) and the [API
 
 This is the low-level client. A high-level Python client is in the works, and will be available soon.
 
-## Getting Started
+## User Guide
 
-To get started with the OpenSearch Python Client, see [Getting Started](https://github.com/opensearch-project/opensearch-py/blob/main/GETTING_STARTED.md).
+To get started with the OpenSearch Python Client, see [User Guide](https://github.com/opensearch-project/opensearch-py/blob/main/USER_GUIDE.md).
 
 ## Compatibility with OpenSearch
 
diff --git a/RELEASING.md b/RELEASING.md
index 87d51e43..324c3d55 100644
--- a/RELEASING.md
+++ b/RELEASING.md
@@ -31,4 +31,10 @@ Repositories create consistent release labels, such as `v1.0.0`, `v1.1.0` and `v
 
 ## Releasing
 
-The release process is standard across repositories in this org and is run by a release manager volunteering from amongst [MAINTAINERS](MAINTAINERS.md).
\ No newline at end of file
+The release process is standard across repositories in this org and is run by a release manager volunteering from amongst [maintainers](MAINTAINERS.md).
+
+1. Create a tag, e.g. v2.1.0, and push it to the GitHub repo.
+1. The [release-drafter.yml](.github/workflows/release-drafter.yml) will be automatically kicked off and a draft release will be created.
+1. This draft release triggers the [jenkins release workflow](https://build.ci.opensearch.org/job/opensearch-py-release/) as a result of which opensearch-py client is released on [PyPi](https://pypi.org/project/opensearch-py/).
+1. Once the above release workflow is successful, the drafted release on GitHub is published automatically.
+1. Increment "version" in [_version.py](./opensearchpy/_version.py) to the next patch release, e.g. v2.1.1. See [example](https://github.com/opensearch-project/opensearch-py/pull/167).
\ No newline at end of file
diff --git a/USER_GUIDE.md b/USER_GUIDE.md
index 1b4a7df7..3d3a777f 100644
--- a/USER_GUIDE.md
+++ b/USER_GUIDE.md
@@ -53,7 +53,14 @@ from opensearchpy import OpenSearch
 host = 'localhost'
 port = 9200
 auth = ('admin', 'admin') # For testing only. Don't store credentials in code.
-ca_certs_path = '/full/path/to/root-ca.pem' # Provide a CA bundle if you use intermediate CAs with your root CA.
+
+# Provide a CA bundle if you use intermediate CAs with your root CA.
+# If this is not given, the CA bundle is is discovered from the first available
+# following options:
+# - OpenSSL environment variables SSL_CERT_FILE and SSL_CERT_DIR
+# - certifi bundle (https://pypi.org/project/certifi/)
+# - default behavior of the connection backend (most likely system certs)
+ca_certs_path = '/full/path/to/root-ca.pem'
 
 # Optional client certificates if you don't want to use HTTP basic authentication.
 # client_cert_path = '/full/path/to/client.pem'
diff --git a/jenkins/release.JenkinsFile b/jenkins/release.JenkinsFile
new file mode 100644
index 00000000..3c285719
--- /dev/null
+++ b/jenkins/release.JenkinsFile
@@ -0,0 +1,12 @@
+lib = library(identifier: 'jenkins@1.3.1', retriever: modernSCM([
+    $class: 'GitSCMSource',
+    remote: 'https://github.com/opensearch-project/opensearch-build-libraries.git',
+]))
+
+standardReleasePipelineWithGenericTrigger(
+    tokenIdCredential: 'jenkins-opensearch-py-generic-webhook-token',
+    causeString: 'A tag was cut on opensearch-project/opensearch-py repository causing this workflow to run',
+    downloadReleaseAsset: true,
+    publishRelease: true) {
+        publishToPyPi(credentialId: 'jenkins-opensearch-py-pypi-credentials')
+    }
diff --git a/opensearchpy/_async/client/__init__.py b/opensearchpy/_async/client/__init__.py
index a8b0db45..2334ba57 100644
--- a/opensearchpy/_async/client/__init__.py
+++ b/opensearchpy/_async/client/__init__.py
@@ -690,14 +690,15 @@ class AsyncOpenSearch(object):
             headers=headers,
         )
 
-    @query_params("master_timeout", "timeout")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout")
     async def delete_script(self, id, params=None, headers=None):
         """
         Deletes a script.
 
 
         :arg id: Script ID
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         """
         if id in SKIP_IN_PATH:
@@ -938,14 +939,15 @@ class AsyncOpenSearch(object):
             "GET", _make_path(index, doc_type, id), params=params, headers=headers
         )
 
-    @query_params("master_timeout")
+    @query_params("master_timeout", "cluster_manager_timeout")
     async def get_script(self, id, params=None, headers=None):
         """
         Returns a script.
 
 
         :arg id: Script ID
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         """
         if id in SKIP_IN_PATH:
             raise ValueError("Empty value passed for a required argument 'id'.")
@@ -1199,7 +1201,7 @@ class AsyncOpenSearch(object):
             "POST", path, params=params, headers=headers, body=body
         )
 
-    @query_params("master_timeout", "timeout")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout")
     async def put_script(self, id, body, context=None, params=None, headers=None):
         """
         Creates or updates a script.
@@ -1208,7 +1210,8 @@ class AsyncOpenSearch(object):
         :arg id: Script ID
         :arg body: The document
         :arg context: Context name to compile script against
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         """
         for param in (id, body):
@@ -1578,7 +1581,7 @@ class AsyncOpenSearch(object):
         :arg ignore_unavailable: Whether specified concrete indices
             should be ignored when unavailable (missing or closed)
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
+            from cluster_manager node (default: false)
         :arg preference: Specify the node or shard the operation should
             be performed on (default: random)
         :arg routing: Specific routing value
diff --git a/opensearchpy/_async/client/__init__.pyi b/opensearchpy/_async/client/__init__.pyi
index 41ed2ba9..0b7aec97 100644
--- a/opensearchpy/_async/client/__init__.pyi
+++ b/opensearchpy/_async/client/__init__.pyi
@@ -60,7 +60,7 @@ class AsyncOpenSearch(object):
         self,
         hosts: Any = ...,
         transport_class: Type[AsyncTransport] = ...,
-        **kwargs: Any
+        **kwargs: Any,
     ) -> None: ...
     def __repr__(self) -> str: ...
     async def __aenter__(self) -> "AsyncOpenSearch": ...
@@ -332,6 +332,7 @@ class AsyncOpenSearch(object):
         id: Any,
         *,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -488,6 +489,7 @@ class AsyncOpenSearch(object):
         id: Any,
         *,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -639,6 +641,7 @@ class AsyncOpenSearch(object):
         body: Any,
         context: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
diff --git a/opensearchpy/_async/client/cat.py b/opensearchpy/_async/client/cat.py
index 2499f3bf..f7268308 100644
--- a/opensearchpy/_async/client/cat.py
+++ b/opensearchpy/_async/client/cat.py
@@ -45,7 +45,7 @@ class CatClient(NamespacedClient):
         :arg h: Comma-separated list of column names to display
         :arg help: Return help information
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
+            from cluster_manager node (default: false)
         :arg s: Comma-separated list of column names or column aliases
             to sort by
         :arg v: Verbose mode. Display column headers
@@ -54,7 +54,17 @@ class CatClient(NamespacedClient):
             "GET", _make_path("_cat", "aliases", name), params=params, headers=headers
         )
 
-    @query_params("bytes", "format", "h", "help", "local", "master_timeout", "s", "v")
+    @query_params(
+        "bytes",
+        "format",
+        "h",
+        "help",
+        "local",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "s",
+        "v",
+    )
     async def allocation(self, node_id=None, params=None, headers=None):
         """
         Provides a snapshot of how many shards are allocated to each data node and how
@@ -70,9 +80,13 @@ class CatClient(NamespacedClient):
         :arg h: Comma-separated list of column names to display
         :arg help: Return help information
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg s: Comma-separated list of column names or column aliases
             to sort by
         :arg v: Verbose mode. Display column headers
@@ -150,6 +164,7 @@ class CatClient(NamespacedClient):
         "include_unloaded_segments",
         "local",
         "master_timeout",
+        "cluster_manager_timeout",
         "pri",
         "s",
         "time",
@@ -179,9 +194,11 @@ class CatClient(NamespacedClient):
             will include stats for segments that are not currently loaded into
             memory
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg pri: Set to true to return stats only for primary shards
         :arg s: Comma-separated list of column names or column aliases
             to sort by
@@ -193,7 +210,16 @@ class CatClient(NamespacedClient):
             "GET", _make_path("_cat", "indices", index), params=params, headers=headers
         )
 
-    @query_params("format", "h", "help", "local", "master_timeout", "s", "v")
+    @query_params(
+        "format",
+        "h",
+        "help",
+        "local",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "s",
+        "v",
+    )
     async def master(self, params=None, headers=None):
         """
         Returns information about the master node.
@@ -204,17 +230,44 @@ class CatClient(NamespacedClient):
         :arg h: Comma-separated list of column names to display
         :arg help: Return help information
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg s: Comma-separated list of column names or column aliases
             to sort by
         :arg v: Verbose mode. Display column headers
         """
+        from warnings import warn
+
+        warn("Deprecated: use `cluster_manager` instead")
         return await self.transport.perform_request(
             "GET", "/_cat/master", params=params, headers=headers
         )
 
+    @query_params("format", "h", "help", "local", "cluster_manager", "s", "v")
+    async def cluster_manager(self, params=None, headers=None):
+        """
+        Returns information about the cluster_manager node.
+
+
+        :arg format: a short version of the Accept header, e.g. json,
+            yaml
+        :arg h: Comma-separated list of column names to display
+        :arg help: Return help information
+        :arg local: Return local information, do not retrieve the state
+            from cluster_manager node (default: false)
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
+        :arg s: Comma-separated list of column names or column aliases
+            to sort by
+        :arg v: Verbose mode. Display column headers
+        """
+        return await self.transport.perform_request(
+            "GET", "/_cat/cluster_manager", params=params, headers=headers
+        )
+
     @query_params(
         "bytes",
         "format",
@@ -224,6 +277,7 @@ class CatClient(NamespacedClient):
         "include_unloaded_segments",
         "local",
         "master_timeout",
+        "cluster_manager_timeout",
         "s",
         "time",
         "v",
@@ -246,8 +300,10 @@ class CatClient(NamespacedClient):
             memory
         :arg local: Calculate the selected nodes using the local cluster
             state rather than the state from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg s: Comma-separated list of column names or column aliases
             to sort by
         :arg time: The unit in which to display time values  Valid
@@ -289,7 +345,16 @@ class CatClient(NamespacedClient):
         )
 
     @query_params(
-        "bytes", "format", "h", "help", "local", "master_timeout", "s", "time", "v"
+        "bytes",
+        "format",
+        "h",
+        "help",
+        "local",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "s",
+        "time",
+        "v",
     )
     async def shards(self, index=None, params=None, headers=None):
         """
@@ -305,9 +370,11 @@ class CatClient(NamespacedClient):
         :arg h: Comma-separated list of column names to display
         :arg help: Return help information
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg s: Comma-separated list of column names or column aliases
             to sort by
         :arg time: The unit in which to display time values  Valid
@@ -340,7 +407,17 @@ class CatClient(NamespacedClient):
             "GET", _make_path("_cat", "segments", index), params=params, headers=headers
         )
 
-    @query_params("format", "h", "help", "local", "master_timeout", "s", "time", "v")
+    @query_params(
+        "format",
+        "h",
+        "help",
+        "local",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "s",
+        "time",
+        "v",
+    )
     async def pending_tasks(self, params=None, headers=None):
         """
         Returns a concise representation of the cluster pending tasks.
@@ -351,9 +428,11 @@ class CatClient(NamespacedClient):
         :arg h: Comma-separated list of column names to display
         :arg help: Return help information
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg s: Comma-separated list of column names or column aliases
             to sort by
         :arg time: The unit in which to display time values  Valid
@@ -364,7 +443,17 @@ class CatClient(NamespacedClient):
             "GET", "/_cat/pending_tasks", params=params, headers=headers
         )
 
-    @query_params("format", "h", "help", "local", "master_timeout", "s", "size", "v")
+    @query_params(
+        "format",
+        "h",
+        "help",
+        "local",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "s",
+        "size",
+        "v",
+    )
     async def thread_pool(self, thread_pool_patterns=None, params=None, headers=None):
         """
         Returns cluster-wide thread pool statistics per node. By default the active,
@@ -378,9 +467,11 @@ class CatClient(NamespacedClient):
         :arg h: Comma-separated list of column names to display
         :arg help: Return help information
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg s: Comma-separated list of column names or column aliases
             to sort by
         :arg size: The multiplier in which to display values  Valid
@@ -421,7 +512,15 @@ class CatClient(NamespacedClient):
         )
 
     @query_params(
-        "format", "h", "help", "include_bootstrap", "local", "master_timeout", "s", "v"
+        "format",
+        "h",
+        "help",
+        "include_bootstrap",
+        "local",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "s",
+        "v",
     )
     async def plugins(self, params=None, headers=None):
         """
@@ -435,9 +534,11 @@ class CatClient(NamespacedClient):
         :arg include_bootstrap: Include bootstrap plugins in the
             response
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg s: Comma-separated list of column names or column aliases
             to sort by
         :arg v: Verbose mode. Display column headers
@@ -446,7 +547,16 @@ class CatClient(NamespacedClient):
             "GET", "/_cat/plugins", params=params, headers=headers
         )
 
-    @query_params("format", "h", "help", "local", "master_timeout", "s", "v")
+    @query_params(
+        "format",
+        "h",
+        "help",
+        "local",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "s",
+        "v",
+    )
     async def nodeattrs(self, params=None, headers=None):
         """
         Returns information about custom node attributes.
@@ -457,9 +567,11 @@ class CatClient(NamespacedClient):
         :arg h: Comma-separated list of column names to display
         :arg help: Return help information
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg s: Comma-separated list of column names or column aliases
             to sort by
         :arg v: Verbose mode. Display column headers
@@ -468,7 +580,16 @@ class CatClient(NamespacedClient):
             "GET", "/_cat/nodeattrs", params=params, headers=headers
         )
 
-    @query_params("format", "h", "help", "local", "master_timeout", "s", "v")
+    @query_params(
+        "format",
+        "h",
+        "help",
+        "local",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "s",
+        "v",
+    )
     async def repositories(self, params=None, headers=None):
         """
         Returns information about snapshot repositories registered in the cluster.
@@ -480,8 +601,10 @@ class CatClient(NamespacedClient):
         :arg help: Return help information
         :arg local: Return local information, do not retrieve the state
             from master node
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg s: Comma-separated list of column names or column aliases
             to sort by
         :arg v: Verbose mode. Display column headers
@@ -491,7 +614,15 @@ class CatClient(NamespacedClient):
         )
 
     @query_params(
-        "format", "h", "help", "ignore_unavailable", "master_timeout", "s", "time", "v"
+        "format",
+        "h",
+        "help",
+        "ignore_unavailable",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "s",
+        "time",
+        "v",
     )
     async def snapshots(self, repository=None, params=None, headers=None):
         """
@@ -506,8 +637,10 @@ class CatClient(NamespacedClient):
         :arg help: Return help information
         :arg ignore_unavailable: Set to true to ignore unavailable
             snapshots
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg s: Comma-separated list of column names or column aliases
             to sort by
         :arg time: The unit in which to display time values  Valid
@@ -561,7 +694,16 @@ class CatClient(NamespacedClient):
             "GET", "/_cat/tasks", params=params, headers=headers
         )
 
-    @query_params("format", "h", "help", "local", "master_timeout", "s", "v")
+    @query_params(
+        "format",
+        "h",
+        "help",
+        "local",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "s",
+        "v",
+    )
     async def templates(self, name=None, params=None, headers=None):
         """
         Returns information about existing templates.
@@ -573,9 +715,11 @@ class CatClient(NamespacedClient):
         :arg h: Comma-separated list of column names to display
         :arg help: Return help information
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg s: Comma-separated list of column names or column aliases
             to sort by
         :arg v: Verbose mode. Display column headers
diff --git a/opensearchpy/_async/client/cat.pyi b/opensearchpy/_async/client/cat.pyi
index 7fb946cb..c53d43bc 100644
--- a/opensearchpy/_async/client/cat.pyi
+++ b/opensearchpy/_async/client/cat.pyi
@@ -62,6 +62,7 @@ class CatClient(NamespacedClient):
         help: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         s: Optional[Any] = ...,
         v: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -150,6 +151,7 @@ class CatClient(NamespacedClient):
         include_unloaded_segments: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pri: Optional[Any] = ...,
         s: Optional[Any] = ...,
         time: Optional[Any] = ...,
@@ -174,6 +176,29 @@ class CatClient(NamespacedClient):
         help: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
+        s: Optional[Any] = ...,
+        v: Optional[Any] = ...,
+        pretty: Optional[bool] = ...,
+        human: Optional[bool] = ...,
+        error_trace: Optional[bool] = ...,
+        filter_path: Optional[Union[str, Collection[str]]] = ...,
+        request_timeout: Optional[Union[int, float]] = ...,
+        ignore: Optional[Union[int, Collection[int]]] = ...,
+        opaque_id: Optional[str] = ...,
+        http_auth: Optional[Union[str, Tuple[str, str]]] = ...,
+        api_key: Optional[Union[str, Tuple[str, str]]] = ...,
+        params: Optional[MutableMapping[str, Any]] = ...,
+        headers: Optional[MutableMapping[str, str]] = ...,
+    ) -> Any: ...
+    async def cluster_manager(
+        self,
+        *,
+        format: Optional[Any] = ...,
+        h: Optional[Any] = ...,
+        help: Optional[Any] = ...,
+        local: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         s: Optional[Any] = ...,
         v: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -199,6 +224,7 @@ class CatClient(NamespacedClient):
         include_unloaded_segments: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         s: Optional[Any] = ...,
         time: Optional[Any] = ...,
         v: Optional[Any] = ...,
@@ -249,6 +275,7 @@ class CatClient(NamespacedClient):
         help: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         s: Optional[Any] = ...,
         time: Optional[Any] = ...,
         v: Optional[Any] = ...,
@@ -294,6 +321,7 @@ class CatClient(NamespacedClient):
         help: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         s: Optional[Any] = ...,
         time: Optional[Any] = ...,
         v: Optional[Any] = ...,
@@ -318,6 +346,7 @@ class CatClient(NamespacedClient):
         help: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         s: Optional[Any] = ...,
         size: Optional[Any] = ...,
         v: Optional[Any] = ...,
@@ -364,6 +393,7 @@ class CatClient(NamespacedClient):
         include_bootstrap: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         s: Optional[Any] = ...,
         v: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -386,6 +416,7 @@ class CatClient(NamespacedClient):
         help: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         s: Optional[Any] = ...,
         v: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -408,6 +439,7 @@ class CatClient(NamespacedClient):
         help: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         s: Optional[Any] = ...,
         v: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -431,6 +463,7 @@ class CatClient(NamespacedClient):
         help: Optional[Any] = ...,
         ignore_unavailable: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         s: Optional[Any] = ...,
         time: Optional[Any] = ...,
         v: Optional[Any] = ...,
@@ -480,6 +513,7 @@ class CatClient(NamespacedClient):
         help: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         s: Optional[Any] = ...,
         v: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
diff --git a/opensearchpy/_async/client/cluster.py b/opensearchpy/_async/client/cluster.py
index 084c8b75..174245cb 100644
--- a/opensearchpy/_async/client/cluster.py
+++ b/opensearchpy/_async/client/cluster.py
@@ -34,6 +34,7 @@ class ClusterClient(NamespacedClient):
         "level",
         "local",
         "master_timeout",
+        "cluster_manager_timeout",
         "timeout",
         "wait_for_active_shards",
         "wait_for_events",
@@ -54,9 +55,11 @@ class ClusterClient(NamespacedClient):
         :arg level: Specify the level of detail for returned information
             Valid choices: cluster, indices, shards  Default: cluster
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg timeout: Explicit operation timeout
         :arg wait_for_active_shards: Wait until the specified number of
             shards is active
@@ -79,7 +82,7 @@ class ClusterClient(NamespacedClient):
             headers=headers,
         )
 
-    @query_params("local", "master_timeout")
+    @query_params("local", "master_timeout", "cluster_manager_timeout")
     async def pending_tasks(self, params=None, headers=None):
         """
         Returns a list of any cluster-level changes (e.g. create index, update mapping,
@@ -87,8 +90,9 @@ class ClusterClient(NamespacedClient):
 
 
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Specify timeout for connection to master
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         """
         return await self.transport.perform_request(
             "GET", "/_cluster/pending_tasks", params=params, headers=headers
@@ -101,6 +105,7 @@ class ClusterClient(NamespacedClient):
         "ignore_unavailable",
         "local",
         "master_timeout",
+        "cluster_manager_timeout",
         "wait_for_metadata_version",
         "wait_for_timeout",
     )
@@ -125,8 +130,9 @@ class ClusterClient(NamespacedClient):
         :arg ignore_unavailable: Whether specified concrete indices
             should be ignored when unavailable (missing or closed)
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Specify timeout for connection to master
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg wait_for_metadata_version: Wait for the metadata version to
             be equal or greater than the specified metadata version
         :arg wait_for_timeout: The maximum time to wait for
@@ -166,7 +172,13 @@ class ClusterClient(NamespacedClient):
         )
 
     @query_params(
-        "dry_run", "explain", "master_timeout", "metric", "retry_failed", "timeout"
+        "dry_run",
+        "explain",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "metric",
+        "retry_failed",
+        "timeout",
     )
     async def reroute(self, body=None, params=None, headers=None):
         """
@@ -179,8 +191,10 @@ class ClusterClient(NamespacedClient):
             resulting state
         :arg explain: Return an explanation of why the commands can or
             cannot be executed
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg metric: Limit the information returned to the specified
             metrics. Defaults to all but metadata  Valid choices: _all, blocks,
             metadata, nodes, routing_table, master_node, version
@@ -192,7 +206,13 @@ class ClusterClient(NamespacedClient):
             "POST", "/_cluster/reroute", params=params, headers=headers, body=body
         )
 
-    @query_params("flat_settings", "include_defaults", "master_timeout", "timeout")
+    @query_params(
+        "flat_settings",
+        "include_defaults",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "timeout",
+    )
     async def get_settings(self, params=None, headers=None):
         """
         Returns cluster settings.
@@ -202,15 +222,19 @@ class ClusterClient(NamespacedClient):
             false)
         :arg include_defaults: Whether to return all default clusters
             setting.
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg timeout: Explicit operation timeout
         """
         return await self.transport.perform_request(
             "GET", "/_cluster/settings", params=params, headers=headers
         )
 
-    @query_params("flat_settings", "master_timeout", "timeout")
+    @query_params(
+        "flat_settings", "master_timeout", "cluster_manager_timeout", "timeout"
+    )
     async def put_settings(self, body, params=None, headers=None):
         """
         Updates the cluster settings.
@@ -220,8 +244,10 @@ class ClusterClient(NamespacedClient):
             or `persistent` (survives cluster restart).
         :arg flat_settings: Return settings in flat format (default:
             false)
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg timeout: Explicit operation timeout
         """
         if body in SKIP_IN_PATH:
@@ -262,14 +288,15 @@ class ClusterClient(NamespacedClient):
             body=body,
         )
 
-    @query_params("master_timeout", "timeout")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout")
     async def delete_component_template(self, name, params=None, headers=None):
         """
         Deletes a component template
 
 
         :arg name: The name of the template
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         """
         if name in SKIP_IN_PATH:
@@ -282,7 +309,7 @@ class ClusterClient(NamespacedClient):
             headers=headers,
         )
 
-    @query_params("local", "master_timeout")
+    @query_params("local", "master_timeout", "cluster_manager_timeout")
     async def get_component_template(self, name=None, params=None, headers=None):
         """
         Returns one or more component templates
@@ -290,9 +317,11 @@ class ClusterClient(NamespacedClient):
 
         :arg name: The comma separated names of the component templates
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         """
         return await self.transport.perform_request(
             "GET",
@@ -301,7 +330,7 @@ class ClusterClient(NamespacedClient):
             headers=headers,
         )
 
-    @query_params("create", "master_timeout", "timeout")
+    @query_params("create", "master_timeout", "cluster_manager_timeout", "timeout")
     async def put_component_template(self, name, body, params=None, headers=None):
         """
         Creates or updates a component template
@@ -311,7 +340,8 @@ class ClusterClient(NamespacedClient):
         :arg body: The template definition
         :arg create: Whether the index template should only be added if
             new or can also replace an existing one
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         """
         for param in (name, body):
@@ -326,7 +356,7 @@ class ClusterClient(NamespacedClient):
             body=body,
         )
 
-    @query_params("local", "master_timeout")
+    @query_params("local", "master_timeout", "cluster_manager_timeout")
     async def exists_component_template(self, name, params=None, headers=None):
         """
         Returns information about whether a particular component template exist
@@ -334,9 +364,11 @@ class ClusterClient(NamespacedClient):
 
         :arg name: The name of the template
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         """
         if name in SKIP_IN_PATH:
             raise ValueError("Empty value passed for a required argument 'name'.")
diff --git a/opensearchpy/_async/client/cluster.pyi b/opensearchpy/_async/client/cluster.pyi
index ad1aee19..f2cd948c 100644
--- a/opensearchpy/_async/client/cluster.pyi
+++ b/opensearchpy/_async/client/cluster.pyi
@@ -37,6 +37,7 @@ class ClusterClient(NamespacedClient):
         level: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         wait_for_active_shards: Optional[Any] = ...,
         wait_for_events: Optional[Any] = ...,
@@ -62,6 +63,7 @@ class ClusterClient(NamespacedClient):
         *,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -86,6 +88,7 @@ class ClusterClient(NamespacedClient):
         ignore_unavailable: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         wait_for_metadata_version: Optional[Any] = ...,
         wait_for_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -127,6 +130,7 @@ class ClusterClient(NamespacedClient):
         dry_run: Optional[Any] = ...,
         explain: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         metric: Optional[Any] = ...,
         retry_failed: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
@@ -149,6 +153,7 @@ class ClusterClient(NamespacedClient):
         flat_settings: Optional[Any] = ...,
         include_defaults: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -169,6 +174,7 @@ class ClusterClient(NamespacedClient):
         body: Any,
         flat_settings: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -223,6 +229,7 @@ class ClusterClient(NamespacedClient):
         name: Any,
         *,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -243,6 +250,7 @@ class ClusterClient(NamespacedClient):
         name: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -263,6 +271,7 @@ class ClusterClient(NamespacedClient):
         body: Any,
         create: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -283,6 +292,7 @@ class ClusterClient(NamespacedClient):
         *,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
diff --git a/opensearchpy/_async/client/dangling_indices.py b/opensearchpy/_async/client/dangling_indices.py
index b3df7cb4..ff9e533f 100644
--- a/opensearchpy/_async/client/dangling_indices.py
+++ b/opensearchpy/_async/client/dangling_indices.py
@@ -29,7 +29,9 @@ from .utils import SKIP_IN_PATH, NamespacedClient, _make_path, query_params
 
 
 class DanglingIndicesClient(NamespacedClient):
-    @query_params("accept_data_loss", "master_timeout", "timeout")
+    @query_params(
+        "accept_data_loss", "master_timeout", "cluster_manager_timeout", "timeout"
+    )
     async def delete_dangling_index(self, index_uuid, params=None, headers=None):
         """
         Deletes the specified dangling index
@@ -38,7 +40,8 @@ class DanglingIndicesClient(NamespacedClient):
         :arg index_uuid: The UUID of the dangling index
         :arg accept_data_loss: Must be set to true in order to delete
             the dangling index
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         """
         if index_uuid in SKIP_IN_PATH:
@@ -51,7 +54,9 @@ class DanglingIndicesClient(NamespacedClient):
             headers=headers,
         )
 
-    @query_params("accept_data_loss", "master_timeout", "timeout")
+    @query_params(
+        "accept_data_loss", "master_timeout", "cluster_manager_timeout", "timeout"
+    )
     async def import_dangling_index(self, index_uuid, params=None, headers=None):
         """
         Imports the specified dangling index
@@ -60,7 +65,8 @@ class DanglingIndicesClient(NamespacedClient):
         :arg index_uuid: The UUID of the dangling index
         :arg accept_data_loss: Must be set to true in order to import
             the dangling index
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         """
         if index_uuid in SKIP_IN_PATH:
diff --git a/opensearchpy/_async/client/dangling_indices.pyi b/opensearchpy/_async/client/dangling_indices.pyi
index e8867f80..c9bb9ec1 100644
--- a/opensearchpy/_async/client/dangling_indices.pyi
+++ b/opensearchpy/_async/client/dangling_indices.pyi
@@ -35,6 +35,7 @@ class DanglingIndicesClient(NamespacedClient):
         *,
         accept_data_loss: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -55,6 +56,7 @@ class DanglingIndicesClient(NamespacedClient):
         *,
         accept_data_loss: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
diff --git a/opensearchpy/_async/client/features.py b/opensearchpy/_async/client/features.py
index 54eb38e6..7922f955 100644
--- a/opensearchpy/_async/client/features.py
+++ b/opensearchpy/_async/client/features.py
@@ -29,15 +29,17 @@ from .utils import NamespacedClient, query_params
 
 
 class FeaturesClient(NamespacedClient):
-    @query_params("master_timeout")
+    @query_params("master_timeout", "cluster_manager_timeout")
     async def get_features(self, params=None, headers=None):
         """
         Gets a list of features which can be included in snapshots using the
         feature_states field when creating a snapshot
 
 
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         """
         return await self.transport.perform_request(
             "GET", "/_features", params=params, headers=headers
diff --git a/opensearchpy/_async/client/features.pyi b/opensearchpy/_async/client/features.pyi
index 642407f3..96acb588 100644
--- a/opensearchpy/_async/client/features.pyi
+++ b/opensearchpy/_async/client/features.pyi
@@ -33,6 +33,7 @@ class FeaturesClient(NamespacedClient):
         self,
         *,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
diff --git a/opensearchpy/_async/client/indices.py b/opensearchpy/_async/client/indices.py
index 7464b286..d58a3fb5 100644
--- a/opensearchpy/_async/client/indices.py
+++ b/opensearchpy/_async/client/indices.py
@@ -105,7 +105,9 @@ class IndicesClient(NamespacedClient):
             "POST", _make_path(index, "_flush"), params=params, headers=headers
         )
 
-    @query_params("master_timeout", "timeout", "wait_for_active_shards")
+    @query_params(
+        "master_timeout", "cluster_manager_timeout", "timeout", "wait_for_active_shards"
+    )
     async def create(self, index, body=None, params=None, headers=None):
         """
         Creates an index with optional settings and mappings.
@@ -114,7 +116,8 @@ class IndicesClient(NamespacedClient):
         :arg index: The name of the index
         :arg body: The configuration for the index (`settings` and
             `mappings`)
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         :arg wait_for_active_shards: Set the number of active shards to
             wait for before the operation returns.
@@ -126,7 +129,9 @@ class IndicesClient(NamespacedClient):
             "PUT", _make_path(index), params=params, headers=headers, body=body
         )
 
-    @query_params("master_timeout", "timeout", "wait_for_active_shards")
+    @query_params(
+        "master_timeout", "cluster_manager_timeout", "timeout", "wait_for_active_shards"
+    )
     async def clone(self, index, target, body=None, params=None, headers=None):
         """
         Clones an index
@@ -136,7 +141,8 @@ class IndicesClient(NamespacedClient):
         :arg target: The name of the target index to clone into
         :arg body: The configuration for the target index (`settings`
             and `aliases`)
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         :arg wait_for_active_shards: Set the number of active shards to
             wait for on the cloned index before the operation returns.
@@ -161,6 +167,7 @@ class IndicesClient(NamespacedClient):
         "include_defaults",
         "local",
         "master_timeout",
+        "cluster_manager_timeout",
     )
     async def get(self, index, params=None, headers=None):
         """
@@ -180,8 +187,9 @@ class IndicesClient(NamespacedClient):
         :arg include_defaults: Whether to return all default setting for
             each of the indices.
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Specify timeout for connection to master
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         """
         if index in SKIP_IN_PATH:
             raise ValueError("Empty value passed for a required argument 'index'.")
@@ -195,6 +203,7 @@ class IndicesClient(NamespacedClient):
         "expand_wildcards",
         "ignore_unavailable",
         "master_timeout",
+        "cluster_manager_timeout",
         "timeout",
         "wait_for_active_shards",
     )
@@ -212,7 +221,8 @@ class IndicesClient(NamespacedClient):
             closed, hidden, none, all  Default: closed
         :arg ignore_unavailable: Whether specified concrete indices
             should be ignored when unavailable (missing or closed)
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         :arg wait_for_active_shards: Sets the number of active shards to
             wait for before the operation returns.
@@ -229,6 +239,7 @@ class IndicesClient(NamespacedClient):
         "expand_wildcards",
         "ignore_unavailable",
         "master_timeout",
+        "cluster_manager_timeout",
         "timeout",
         "wait_for_active_shards",
     )
@@ -246,7 +257,8 @@ class IndicesClient(NamespacedClient):
             closed, hidden, none, all  Default: open
         :arg ignore_unavailable: Whether specified concrete indices
             should be ignored when unavailable (missing or closed)
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         :arg wait_for_active_shards: Sets the number of active shards to
             wait for before the operation returns. Set to `index-setting` to wait
@@ -265,6 +277,7 @@ class IndicesClient(NamespacedClient):
         "expand_wildcards",
         "ignore_unavailable",
         "master_timeout",
+        "cluster_manager_timeout",
         "timeout",
     )
     async def delete(self, index, params=None, headers=None):
@@ -281,7 +294,8 @@ class IndicesClient(NamespacedClient):
             closed, hidden, none, all  Default: open
         :arg ignore_unavailable: Ignore unavailable indexes (default:
             false)
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         """
         if index in SKIP_IN_PATH:
@@ -317,7 +331,7 @@ class IndicesClient(NamespacedClient):
         :arg include_defaults: Whether to return all default setting for
             each of the indices.
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
+            from cluster_manager node (default: false)
         """
         if index in SKIP_IN_PATH:
             raise ValueError("Empty value passed for a required argument 'index'.")
@@ -331,6 +345,7 @@ class IndicesClient(NamespacedClient):
         "expand_wildcards",
         "ignore_unavailable",
         "master_timeout",
+        "cluster_manager_timeout",
         "timeout",
         "write_index_only",
     )
@@ -351,7 +366,8 @@ class IndicesClient(NamespacedClient):
             closed, hidden, none, all  Default: open
         :arg ignore_unavailable: Whether specified concrete indices
             should be ignored when unavailable (missing or closed)
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         :arg write_index_only: When true, applies mappings only to the
             write index of an alias or data stream
@@ -373,6 +389,7 @@ class IndicesClient(NamespacedClient):
         "ignore_unavailable",
         "local",
         "master_timeout",
+        "cluster_manager_timeout",
     )
     async def get_mapping(self, index=None, params=None, headers=None):
         """
@@ -389,8 +406,9 @@ class IndicesClient(NamespacedClient):
         :arg ignore_unavailable: Whether specified concrete indices
             should be ignored when unavailable (missing or closed)
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Specify timeout for connection to master
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         """
         return await self.transport.perform_request(
             "GET",
@@ -424,7 +442,7 @@ class IndicesClient(NamespacedClient):
         :arg include_defaults: Whether the default mapping values should
             be returned as well
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
+            from cluster_manager node (default: false)
         """
         if fields in SKIP_IN_PATH:
             raise ValueError("Empty value passed for a required argument 'fields'.")
@@ -436,7 +454,7 @@ class IndicesClient(NamespacedClient):
             headers=headers,
         )
 
-    @query_params("master_timeout", "timeout")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout")
     async def put_alias(self, index, name, body=None, params=None, headers=None):
         """
         Creates or updates an alias.
@@ -448,7 +466,8 @@ class IndicesClient(NamespacedClient):
         :arg name: The name of the alias to be created or updated
         :arg body: The settings for the alias, such as `routing` or
             `filter`
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit timestamp for the document
         """
         for param in (index, name):
@@ -481,7 +500,7 @@ class IndicesClient(NamespacedClient):
         :arg ignore_unavailable: Whether specified concrete indices
             should be ignored when unavailable (missing or closed)
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
+            from cluster_manager node (default: false)
         """
         if name in SKIP_IN_PATH:
             raise ValueError("Empty value passed for a required argument 'name'.")
@@ -508,20 +527,21 @@ class IndicesClient(NamespacedClient):
         :arg ignore_unavailable: Whether specified concrete indices
             should be ignored when unavailable (missing or closed)
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
+            from cluster_manager node (default: false)
         """
         return await self.transport.perform_request(
             "GET", _make_path(index, "_alias", name), params=params, headers=headers
         )
 
-    @query_params("master_timeout", "timeout")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout")
     async def update_aliases(self, body, params=None, headers=None):
         """
         Updates index aliases.
 
 
         :arg body: The definition of `actions` to perform
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Request timeout
         """
         if body in SKIP_IN_PATH:
@@ -531,7 +551,7 @@ class IndicesClient(NamespacedClient):
             "POST", "/_aliases", params=params, headers=headers, body=body
         )
 
-    @query_params("master_timeout", "timeout")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout")
     async def delete_alias(self, index, name, params=None, headers=None):
         """
         Deletes an alias.
@@ -541,7 +561,8 @@ class IndicesClient(NamespacedClient):
             wildcards); use `_all` for all indices
         :arg name: A comma-separated list of aliases to delete (supports
             wildcards); use `_all` to delete all aliases for the specified indices.
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit timestamp for the document
         """
         for param in (index, name):
@@ -552,7 +573,7 @@ class IndicesClient(NamespacedClient):
             "DELETE", _make_path(index, "_alias", name), params=params, headers=headers
         )
 
-    @query_params("create", "master_timeout", "order")
+    @query_params("create", "master_timeout", "cluster_manager_timeout", "order")
     async def put_template(self, name, body, params=None, headers=None):
         """
         Creates or updates an index template.
@@ -562,7 +583,8 @@ class IndicesClient(NamespacedClient):
         :arg body: The template definition
         :arg create: Whether the index template should only be added if
             new or can also replace an existing one
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg order: The order for this template when merging multiple
             matching ones (higher numbers are merged later, overriding the lower
             numbers)
@@ -579,7 +601,7 @@ class IndicesClient(NamespacedClient):
             body=body,
         )
 
-    @query_params("flat_settings", "local", "master_timeout")
+    @query_params("flat_settings", "local", "master_timeout", "cluster_manager_timeout")
     async def exists_template(self, name, params=None, headers=None):
         """
         Returns information about whether a particular index template exists.
@@ -589,9 +611,11 @@ class IndicesClient(NamespacedClient):
         :arg flat_settings: Return settings in flat format (default:
             false)
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         """
         if name in SKIP_IN_PATH:
             raise ValueError("Empty value passed for a required argument 'name'.")
@@ -600,7 +624,7 @@ class IndicesClient(NamespacedClient):
             "HEAD", _make_path("_template", name), params=params, headers=headers
         )
 
-    @query_params("flat_settings", "local", "master_timeout")
+    @query_params("flat_settings", "local", "master_timeout", "cluster_manager_timeout")
     async def get_template(self, name=None, params=None, headers=None):
         """
         Returns an index template.
@@ -610,22 +634,25 @@ class IndicesClient(NamespacedClient):
         :arg flat_settings: Return settings in flat format (default:
             false)
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         """
         return await self.transport.perform_request(
             "GET", _make_path("_template", name), params=params, headers=headers
         )
 
-    @query_params("master_timeout", "timeout")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout")
     async def delete_template(self, name, params=None, headers=None):
         """
         Deletes an index template.
 
 
         :arg name: The name of the template
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         """
         if name in SKIP_IN_PATH:
@@ -643,6 +670,7 @@ class IndicesClient(NamespacedClient):
         "include_defaults",
         "local",
         "master_timeout",
+        "cluster_manager_timeout",
     )
     async def get_settings(self, index=None, name=None, params=None, headers=None):
         """
@@ -665,8 +693,9 @@ class IndicesClient(NamespacedClient):
         :arg include_defaults: Whether to return all default setting for
             each of the indices.
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Specify timeout for connection to master
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         """
         return await self.transport.perform_request(
             "GET", _make_path(index, "_settings", name), params=params, headers=headers
@@ -678,6 +707,7 @@ class IndicesClient(NamespacedClient):
         "flat_settings",
         "ignore_unavailable",
         "master_timeout",
+        "cluster_manager_timeout",
         "preserve_existing",
         "timeout",
     )
@@ -699,7 +729,8 @@ class IndicesClient(NamespacedClient):
             false)
         :arg ignore_unavailable: Whether specified concrete indices
             should be ignored when unavailable (missing or closed)
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg preserve_existing: Whether to update existing settings. If
             set to `true` existing settings on an index remain unchanged, the
             default is `false`
@@ -1011,7 +1042,11 @@ class IndicesClient(NamespacedClient):
         )
 
     @query_params(
-        "copy_settings", "master_timeout", "timeout", "wait_for_active_shards"
+        "copy_settings",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "timeout",
+        "wait_for_active_shards",
     )
     async def shrink(self, index, target, body=None, params=None, headers=None):
         """
@@ -1024,7 +1059,8 @@ class IndicesClient(NamespacedClient):
             and `aliases`)
         :arg copy_settings: whether or not to copy settings from the
             source index (defaults to false)
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         :arg wait_for_active_shards: Set the number of active shards to
             wait for on the shrunken index before the operation returns.
@@ -1042,7 +1078,11 @@ class IndicesClient(NamespacedClient):
         )
 
     @query_params(
-        "copy_settings", "master_timeout", "timeout", "wait_for_active_shards"
+        "copy_settings",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "timeout",
+        "wait_for_active_shards",
     )
     async def split(self, index, target, body=None, params=None, headers=None):
         """
@@ -1056,7 +1096,8 @@ class IndicesClient(NamespacedClient):
             and `aliases`)
         :arg copy_settings: whether or not to copy settings from the
             source index (defaults to false)
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         :arg wait_for_active_shards: Set the number of active shards to
             wait for on the shrunken index before the operation returns.
@@ -1076,6 +1117,7 @@ class IndicesClient(NamespacedClient):
     @query_params(
         "dry_run",
         "master_timeout",
+        "cluster_manager_timeout",
         "timeout",
         "wait_for_active_shards",
     )
@@ -1094,7 +1136,8 @@ class IndicesClient(NamespacedClient):
         :arg dry_run: If set to true the rollover action will only be
             validated but not actually performed even if a condition matches. The
             default is false
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         :arg wait_for_active_shards: Set the number of active shards to
             wait for on the newly created rollover index before the operation
@@ -1116,6 +1159,7 @@ class IndicesClient(NamespacedClient):
         "expand_wildcards",
         "ignore_unavailable",
         "master_timeout",
+        "cluster_manager_timeout",
         "timeout",
         "wait_for_active_shards",
     )
@@ -1134,7 +1178,8 @@ class IndicesClient(NamespacedClient):
             closed, hidden, none, all  Default: closed
         :arg ignore_unavailable: Whether specified concrete indices
             should be ignored when unavailable (missing or closed)
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         :arg wait_for_active_shards: Sets the number of active shards to
             wait for before the operation returns.
@@ -1151,6 +1196,7 @@ class IndicesClient(NamespacedClient):
         "expand_wildcards",
         "ignore_unavailable",
         "master_timeout",
+        "cluster_manager_timeout",
         "timeout",
         "wait_for_active_shards",
     )
@@ -1169,7 +1215,8 @@ class IndicesClient(NamespacedClient):
             closed, hidden, none, all  Default: closed
         :arg ignore_unavailable: Whether specified concrete indices
             should be ignored when unavailable (missing or closed)
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         :arg wait_for_active_shards: Sets the number of active shards to
             wait for before the operation returns.
@@ -1242,14 +1289,15 @@ class IndicesClient(NamespacedClient):
             "DELETE", _make_path("_data_stream", name), params=params, headers=headers
         )
 
-    @query_params("master_timeout", "timeout")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout")
     async def delete_index_template(self, name, params=None, headers=None):
         """
         Deletes an index template.
 
 
         :arg name: The name of the template
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         """
         if name in SKIP_IN_PATH:
@@ -1262,7 +1310,7 @@ class IndicesClient(NamespacedClient):
             headers=headers,
         )
 
-    @query_params("flat_settings", "local", "master_timeout")
+    @query_params("flat_settings", "local", "master_timeout", "cluster_manager_timeout")
     async def exists_index_template(self, name, params=None, headers=None):
         """
         Returns information about whether a particular index template exists.
@@ -1272,9 +1320,11 @@ class IndicesClient(NamespacedClient):
         :arg flat_settings: Return settings in flat format (default:
             false)
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         """
         if name in SKIP_IN_PATH:
             raise ValueError("Empty value passed for a required argument 'name'.")
@@ -1283,7 +1333,7 @@ class IndicesClient(NamespacedClient):
             "HEAD", _make_path("_index_template", name), params=params, headers=headers
         )
 
-    @query_params("flat_settings", "local", "master_timeout")
+    @query_params("flat_settings", "local", "master_timeout", "cluster_manager_timeout")
     async def get_index_template(self, name=None, params=None, headers=None):
         """
         Returns an index template.
@@ -1293,15 +1343,17 @@ class IndicesClient(NamespacedClient):
         :arg flat_settings: Return settings in flat format (default:
             false)
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         """
         return await self.transport.perform_request(
             "GET", _make_path("_index_template", name), params=params, headers=headers
         )
 
-    @query_params("cause", "create", "master_timeout")
+    @query_params("cause", "create", "master_timeout", "cluster_manager_timeout")
     async def put_index_template(self, name, body, params=None, headers=None):
         """
         Creates or updates an index template.
@@ -1313,7 +1365,8 @@ class IndicesClient(NamespacedClient):
             template
         :arg create: Whether the index template should only be added if
             new or can also replace an existing one
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         """
         for param in (name, body):
             if param in SKIP_IN_PATH:
@@ -1327,7 +1380,7 @@ class IndicesClient(NamespacedClient):
             body=body,
         )
 
-    @query_params("cause", "create", "master_timeout")
+    @query_params("cause", "create", "master_timeout", "cluster_manager_timeout")
     async def simulate_index_template(self, name, body=None, params=None, headers=None):
         """
         Simulate matching the given index name against the index templates in the
@@ -1343,7 +1396,8 @@ class IndicesClient(NamespacedClient):
         :arg create: Whether the index template we optionally defined in
             the body should only be dry-run added if new or can also replace an
             existing one
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         """
         if name in SKIP_IN_PATH:
             raise ValueError("Empty value passed for a required argument 'name'.")
@@ -1372,7 +1426,7 @@ class IndicesClient(NamespacedClient):
             "GET", _make_path("_data_stream", name), params=params, headers=headers
         )
 
-    @query_params("cause", "create", "master_timeout")
+    @query_params("cause", "create", "master_timeout", "cluster_manager_timeout")
     async def simulate_template(self, body=None, name=None, params=None, headers=None):
         """
         Simulate resolving the given template name or body
@@ -1386,7 +1440,8 @@ class IndicesClient(NamespacedClient):
         :arg create: Whether the index template we optionally defined in
             the body should only be dry-run added if new or can also replace an
             existing one
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         """
         return await self.transport.perform_request(
             "POST",
@@ -1425,6 +1480,7 @@ class IndicesClient(NamespacedClient):
         "expand_wildcards",
         "ignore_unavailable",
         "master_timeout",
+        "cluster_manager_timeout",
         "timeout",
     )
     async def add_block(self, index, block, params=None, headers=None):
@@ -1443,7 +1499,8 @@ class IndicesClient(NamespacedClient):
             closed, hidden, none, all  Default: open
         :arg ignore_unavailable: Whether specified concrete indices
             should be ignored when unavailable (missing or closed)
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         """
         for param in (index, block):
diff --git a/opensearchpy/_async/client/indices.pyi b/opensearchpy/_async/client/indices.pyi
index bfd0d7b9..53f6d87f 100644
--- a/opensearchpy/_async/client/indices.pyi
+++ b/opensearchpy/_async/client/indices.pyi
@@ -95,6 +95,7 @@ class IndicesClient(NamespacedClient):
         *,
         body: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         wait_for_active_shards: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -117,6 +118,7 @@ class IndicesClient(NamespacedClient):
         *,
         body: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         wait_for_active_shards: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -143,6 +145,7 @@ class IndicesClient(NamespacedClient):
         include_defaults: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -164,6 +167,7 @@ class IndicesClient(NamespacedClient):
         expand_wildcards: Optional[Any] = ...,
         ignore_unavailable: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         wait_for_active_shards: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -187,6 +191,7 @@ class IndicesClient(NamespacedClient):
         expand_wildcards: Optional[Any] = ...,
         ignore_unavailable: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         wait_for_active_shards: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -210,6 +215,7 @@ class IndicesClient(NamespacedClient):
         expand_wildcards: Optional[Any] = ...,
         ignore_unavailable: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -256,6 +262,7 @@ class IndicesClient(NamespacedClient):
         expand_wildcards: Optional[Any] = ...,
         ignore_unavailable: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         write_index_only: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -280,6 +287,7 @@ class IndicesClient(NamespacedClient):
         ignore_unavailable: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -323,6 +331,7 @@ class IndicesClient(NamespacedClient):
         *,
         body: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -386,6 +395,7 @@ class IndicesClient(NamespacedClient):
         *,
         body: Any,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -406,6 +416,7 @@ class IndicesClient(NamespacedClient):
         name: Any,
         *,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -427,6 +438,7 @@ class IndicesClient(NamespacedClient):
         body: Any,
         create: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         order: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -448,6 +460,7 @@ class IndicesClient(NamespacedClient):
         flat_settings: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -468,6 +481,7 @@ class IndicesClient(NamespacedClient):
         flat_settings: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -486,6 +500,7 @@ class IndicesClient(NamespacedClient):
         name: Any,
         *,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -512,6 +527,7 @@ class IndicesClient(NamespacedClient):
         include_defaults: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -535,6 +551,7 @@ class IndicesClient(NamespacedClient):
         flat_settings: Optional[Any] = ...,
         ignore_unavailable: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         preserve_existing: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -786,6 +803,7 @@ class IndicesClient(NamespacedClient):
         body: Optional[Any] = ...,
         copy_settings: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         wait_for_active_shards: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -809,6 +827,7 @@ class IndicesClient(NamespacedClient):
         body: Optional[Any] = ...,
         copy_settings: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         wait_for_active_shards: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -832,6 +851,7 @@ class IndicesClient(NamespacedClient):
         new_index: Optional[Any] = ...,
         dry_run: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         wait_for_active_shards: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -855,6 +875,7 @@ class IndicesClient(NamespacedClient):
         expand_wildcards: Optional[Any] = ...,
         ignore_unavailable: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         wait_for_active_shards: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -878,6 +899,7 @@ class IndicesClient(NamespacedClient):
         expand_wildcards: Optional[Any] = ...,
         ignore_unavailable: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         wait_for_active_shards: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -953,6 +975,7 @@ class IndicesClient(NamespacedClient):
         name: Any,
         *,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -974,6 +997,7 @@ class IndicesClient(NamespacedClient):
         flat_settings: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -994,6 +1018,7 @@ class IndicesClient(NamespacedClient):
         flat_settings: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -1015,6 +1040,7 @@ class IndicesClient(NamespacedClient):
         cause: Optional[Any] = ...,
         create: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -1036,6 +1062,7 @@ class IndicesClient(NamespacedClient):
         cause: Optional[Any] = ...,
         create: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -1075,6 +1102,7 @@ class IndicesClient(NamespacedClient):
         cause: Optional[Any] = ...,
         create: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -1115,6 +1143,7 @@ class IndicesClient(NamespacedClient):
         expand_wildcards: Optional[Any] = ...,
         ignore_unavailable: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
diff --git a/opensearchpy/_async/client/ingest.py b/opensearchpy/_async/client/ingest.py
index 2d35fc97..dfc8eb1c 100644
--- a/opensearchpy/_async/client/ingest.py
+++ b/opensearchpy/_async/client/ingest.py
@@ -29,7 +29,7 @@ from .utils import SKIP_IN_PATH, NamespacedClient, _make_path, query_params
 
 
 class IngestClient(NamespacedClient):
-    @query_params("master_timeout", "summary")
+    @query_params("master_timeout", "cluster_manager_timeout", "summary")
     async def get_pipeline(self, id=None, params=None, headers=None):
         """
         Returns a pipeline.
@@ -37,8 +37,10 @@ class IngestClient(NamespacedClient):
 
         :arg id: Comma separated list of pipeline ids. Wildcards
             supported
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg summary: Return pipelines without their definitions
             (default: false)
         """
@@ -46,7 +48,7 @@ class IngestClient(NamespacedClient):
             "GET", _make_path("_ingest", "pipeline", id), params=params, headers=headers
         )
 
-    @query_params("master_timeout", "timeout")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout")
     async def put_pipeline(self, id, body, params=None, headers=None):
         """
         Creates or updates a pipeline.
@@ -54,8 +56,10 @@ class IngestClient(NamespacedClient):
 
         :arg id: Pipeline ID
         :arg body: The ingest definition
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg timeout: Explicit operation timeout
         """
         for param in (id, body):
@@ -70,15 +74,17 @@ class IngestClient(NamespacedClient):
             body=body,
         )
 
-    @query_params("master_timeout", "timeout")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout")
     async def delete_pipeline(self, id, params=None, headers=None):
         """
         Deletes a pipeline.
 
 
         :arg id: Pipeline ID
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg timeout: Explicit operation timeout
         """
         if id in SKIP_IN_PATH:
diff --git a/opensearchpy/_async/client/ingest.pyi b/opensearchpy/_async/client/ingest.pyi
index cc48e3bc..7e498b6c 100644
--- a/opensearchpy/_async/client/ingest.pyi
+++ b/opensearchpy/_async/client/ingest.pyi
@@ -34,6 +34,7 @@ class IngestClient(NamespacedClient):
         *,
         id: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         summary: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -54,6 +55,7 @@ class IngestClient(NamespacedClient):
         *,
         body: Any,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -73,6 +75,7 @@ class IngestClient(NamespacedClient):
         id: Any,
         *,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
diff --git a/opensearchpy/_async/client/snapshot.py b/opensearchpy/_async/client/snapshot.py
index a8015e67..4f2acd6a 100644
--- a/opensearchpy/_async/client/snapshot.py
+++ b/opensearchpy/_async/client/snapshot.py
@@ -29,7 +29,7 @@ from .utils import SKIP_IN_PATH, NamespacedClient, _make_path, query_params
 
 
 class SnapshotClient(NamespacedClient):
-    @query_params("master_timeout", "wait_for_completion")
+    @query_params("master_timeout", "cluster_manager_timeout", "wait_for_completion")
     async def create(self, repository, snapshot, body=None, params=None, headers=None):
         """
         Creates a snapshot in a repository.
@@ -38,8 +38,10 @@ class SnapshotClient(NamespacedClient):
         :arg repository: A repository name
         :arg snapshot: A snapshot name
         :arg body: The snapshot definition
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg wait_for_completion: Should this request wait until the
             operation has completed before returning
         """
@@ -55,7 +57,7 @@ class SnapshotClient(NamespacedClient):
             body=body,
         )
 
-    @query_params("master_timeout")
+    @query_params("master_timeout", "cluster_manager_timeout")
     async def delete(self, repository, snapshot, params=None, headers=None):
         """
         Deletes a snapshot.
@@ -63,8 +65,10 @@ class SnapshotClient(NamespacedClient):
 
         :arg repository: A repository name
         :arg snapshot: A snapshot name
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         """
         for param in (repository, snapshot):
             if param in SKIP_IN_PATH:
@@ -82,6 +86,7 @@ class SnapshotClient(NamespacedClient):
         "include_repository",
         "index_details",
         "master_timeout",
+        "cluster_manager_timeout",
         "verbose",
     )
     async def get(self, repository, snapshot, params=None, headers=None):
@@ -98,8 +103,10 @@ class SnapshotClient(NamespacedClient):
             in the snapshot info. Defaults to true.
         :arg index_details: Whether to include details of each index in
             the snapshot, if those details are available. Defaults to false.
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg verbose: Whether to show verbose snapshot info or only show
             the basic info found in the repository index blob
         """
@@ -114,7 +121,7 @@ class SnapshotClient(NamespacedClient):
             headers=headers,
         )
 
-    @query_params("master_timeout", "timeout")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout")
     async def delete_repository(self, repository, params=None, headers=None):
         """
         Deletes a repository.
@@ -122,8 +129,10 @@ class SnapshotClient(NamespacedClient):
 
         :arg repository: Name of the snapshot repository to unregister.
             Wildcard (`*`) patterns are supported.
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg timeout: Explicit operation timeout
         """
         if repository in SKIP_IN_PATH:
@@ -136,7 +145,7 @@ class SnapshotClient(NamespacedClient):
             headers=headers,
         )
 
-    @query_params("local", "master_timeout")
+    @query_params("local", "master_timeout", "cluster_manager_timeout")
     async def get_repository(self, repository=None, params=None, headers=None):
         """
         Returns information about a repository.
@@ -144,15 +153,17 @@ class SnapshotClient(NamespacedClient):
 
         :arg repository: A comma-separated list of repository names
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         """
         return await self.transport.perform_request(
             "GET", _make_path("_snapshot", repository), params=params, headers=headers
         )
 
-    @query_params("master_timeout", "timeout", "verify")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout", "verify")
     async def create_repository(self, repository, body, params=None, headers=None):
         """
         Creates a repository.
@@ -160,8 +171,10 @@ class SnapshotClient(NamespacedClient):
 
         :arg repository: A repository name
         :arg body: The repository definition
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg timeout: Explicit operation timeout
         :arg verify: Whether to verify the repository after creation
         """
@@ -177,7 +190,7 @@ class SnapshotClient(NamespacedClient):
             body=body,
         )
 
-    @query_params("master_timeout", "wait_for_completion")
+    @query_params("master_timeout", "cluster_manager_timeout", "wait_for_completion")
     async def restore(self, repository, snapshot, body=None, params=None, headers=None):
         """
         Restores a snapshot.
@@ -186,8 +199,10 @@ class SnapshotClient(NamespacedClient):
         :arg repository: A repository name
         :arg snapshot: A snapshot name
         :arg body: Details of what to restore
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg wait_for_completion: Should this request wait until the
             operation has completed before returning
         """
@@ -203,7 +218,7 @@ class SnapshotClient(NamespacedClient):
             body=body,
         )
 
-    @query_params("ignore_unavailable", "master_timeout")
+    @query_params("ignore_unavailable", "master_timeout", "cluster_manager_timeout")
     async def status(self, repository=None, snapshot=None, params=None, headers=None):
         """
         Returns information about the status of a snapshot.
@@ -214,8 +229,10 @@ class SnapshotClient(NamespacedClient):
         :arg ignore_unavailable: Whether to ignore unavailable
             snapshots, defaults to false which means a SnapshotMissingException is
             thrown
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         """
         return await self.transport.perform_request(
             "GET",
@@ -224,15 +241,17 @@ class SnapshotClient(NamespacedClient):
             headers=headers,
         )
 
-    @query_params("master_timeout", "timeout")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout")
     async def verify_repository(self, repository, params=None, headers=None):
         """
         Verifies a repository.
 
 
         :arg repository: A repository name
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg timeout: Explicit operation timeout
         """
         if repository in SKIP_IN_PATH:
@@ -245,15 +264,17 @@ class SnapshotClient(NamespacedClient):
             headers=headers,
         )
 
-    @query_params("master_timeout", "timeout")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout")
     async def cleanup_repository(self, repository, params=None, headers=None):
         """
         Removes stale data from repository.
 
 
         :arg repository: A repository name
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg timeout: Explicit operation timeout
         """
         if repository in SKIP_IN_PATH:
@@ -266,7 +287,7 @@ class SnapshotClient(NamespacedClient):
             headers=headers,
         )
 
-    @query_params("master_timeout")
+    @query_params("master_timeout", "cluster_manager_timeout")
     async def clone(
         self, repository, snapshot, target_snapshot, body, params=None, headers=None
     ):
@@ -278,8 +299,10 @@ class SnapshotClient(NamespacedClient):
         :arg snapshot: The name of the snapshot to clone from
         :arg target_snapshot: The name of the cloned snapshot to create
         :arg body: The snapshot clone definition
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         """
         for param in (repository, snapshot, target_snapshot, body):
             if param in SKIP_IN_PATH:
diff --git a/opensearchpy/_async/client/snapshot.pyi b/opensearchpy/_async/client/snapshot.pyi
index 0c2d7da4..2167c97f 100644
--- a/opensearchpy/_async/client/snapshot.pyi
+++ b/opensearchpy/_async/client/snapshot.pyi
@@ -36,6 +36,7 @@ class SnapshotClient(NamespacedClient):
         *,
         body: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         wait_for_completion: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -56,6 +57,7 @@ class SnapshotClient(NamespacedClient):
         snapshot: Any,
         *,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -78,6 +80,7 @@ class SnapshotClient(NamespacedClient):
         include_repository: Optional[Any] = ...,
         index_details: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         verbose: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -97,6 +100,7 @@ class SnapshotClient(NamespacedClient):
         repository: Any,
         *,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -117,6 +121,7 @@ class SnapshotClient(NamespacedClient):
         repository: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -136,6 +141,7 @@ class SnapshotClient(NamespacedClient):
         *,
         body: Any,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         verify: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -158,6 +164,7 @@ class SnapshotClient(NamespacedClient):
         *,
         body: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         wait_for_completion: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -179,6 +186,7 @@ class SnapshotClient(NamespacedClient):
         snapshot: Optional[Any] = ...,
         ignore_unavailable: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -197,6 +205,7 @@ class SnapshotClient(NamespacedClient):
         repository: Any,
         *,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -216,6 +225,7 @@ class SnapshotClient(NamespacedClient):
         repository: Any,
         *,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -238,6 +248,7 @@ class SnapshotClient(NamespacedClient):
         *,
         body: Any,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
diff --git a/opensearchpy/_async/http_aiohttp.py b/opensearchpy/_async/http_aiohttp.py
index c5353067..20e89ea0 100644
--- a/opensearchpy/_async/http_aiohttp.py
+++ b/opensearchpy/_async/http_aiohttp.py
@@ -49,15 +49,6 @@ from .compat import get_running_loop
 VERIFY_CERTS_DEFAULT = object()
 SSL_SHOW_WARN_DEFAULT = object()
 
-CA_CERTS = None
-
-try:
-    import certifi
-
-    CA_CERTS = certifi.where()
-except ImportError:
-    pass
-
 
 class AsyncConnection(Connection):
     """Base class for Async HTTP connection implementations"""
@@ -185,7 +176,7 @@ class AIOHttpConnection(AsyncConnection):
                 ssl_context.check_hostname = False
                 ssl_context.verify_mode = ssl.CERT_NONE
 
-            ca_certs = CA_CERTS if ca_certs is None else ca_certs
+            ca_certs = self.default_ca_certs() if ca_certs is None else ca_certs
             if verify_certs:
                 if not ca_certs:
                     raise ImproperlyConfigured(
@@ -193,6 +184,12 @@ class AIOHttpConnection(AsyncConnection):
                         "validation. Either pass them in using the ca_certs parameter or "
                         "install certifi to use it automatically."
                     )
+                if os.path.isfile(ca_certs):
+                    ssl_context.load_verify_locations(cafile=ca_certs)
+                elif os.path.isdir(ca_certs):
+                    ssl_context.load_verify_locations(capath=ca_certs)
+                else:
+                    raise ImproperlyConfigured("ca_certs parameter is not a path")
             else:
                 if ssl_show_warn:
                     warnings.warn(
@@ -200,13 +197,6 @@ class AIOHttpConnection(AsyncConnection):
                         % self.host
                     )
 
-            if os.path.isfile(ca_certs):
-                ssl_context.load_verify_locations(cafile=ca_certs)
-            elif os.path.isdir(ca_certs):
-                ssl_context.load_verify_locations(capath=ca_certs)
-            else:
-                raise ImproperlyConfigured("ca_certs parameter is not a path")
-
             # Use client_cert and client_key variables for SSL certificate configuration.
             if client_cert and not os.path.isfile(client_cert):
                 raise ImproperlyConfigured("client_cert is not a path to a file")
diff --git a/opensearchpy/_version.py b/opensearchpy/_version.py
index 9573bb65..dbca2ec8 100644
--- a/opensearchpy/_version.py
+++ b/opensearchpy/_version.py
@@ -24,5 +24,4 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
-
-__versionstr__ = "2.0.0"
+__versionstr__ = "2.0.1"
diff --git a/opensearchpy/client/__init__.py b/opensearchpy/client/__init__.py
index 36e2bc63..6d46bf94 100644
--- a/opensearchpy/client/__init__.py
+++ b/opensearchpy/client/__init__.py
@@ -692,14 +692,15 @@ class OpenSearch(object):
             headers=headers,
         )
 
-    @query_params("master_timeout", "timeout")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout")
     def delete_script(self, id, params=None, headers=None):
         """
         Deletes a script.
 
 
         :arg id: Script ID
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         """
         if id in SKIP_IN_PATH:
@@ -940,14 +941,15 @@ class OpenSearch(object):
             "GET", _make_path(index, doc_type, id), params=params, headers=headers
         )
 
-    @query_params("master_timeout")
+    @query_params("master_timeout", "cluster_manager_timeout")
     def get_script(self, id, params=None, headers=None):
         """
         Returns a script.
 
 
         :arg id: Script ID
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         """
         if id in SKIP_IN_PATH:
             raise ValueError("Empty value passed for a required argument 'id'.")
@@ -1201,7 +1203,7 @@ class OpenSearch(object):
             "POST", path, params=params, headers=headers, body=body
         )
 
-    @query_params("master_timeout", "timeout")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout")
     def put_script(self, id, body, context=None, params=None, headers=None):
         """
         Creates or updates a script.
@@ -1210,7 +1212,8 @@ class OpenSearch(object):
         :arg id: Script ID
         :arg body: The document
         :arg context: Context name to compile script against
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         """
         for param in (id, body):
@@ -1578,7 +1581,7 @@ class OpenSearch(object):
         :arg ignore_unavailable: Whether specified concrete indices
             should be ignored when unavailable (missing or closed)
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
+            from cluster_manager node (default: false)
         :arg preference: Specify the node or shard the operation should
             be performed on (default: random)
         :arg routing: Specific routing value
diff --git a/opensearchpy/client/__init__.pyi b/opensearchpy/client/__init__.pyi
index 893738a2..4cf27eb9 100644
--- a/opensearchpy/client/__init__.pyi
+++ b/opensearchpy/client/__init__.pyi
@@ -329,6 +329,7 @@ class OpenSearch(object):
         id: Any,
         *,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -485,6 +486,7 @@ class OpenSearch(object):
         id: Any,
         *,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -636,6 +638,7 @@ class OpenSearch(object):
         body: Any,
         context: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
diff --git a/opensearchpy/client/cat.py b/opensearchpy/client/cat.py
index b8c4ad5e..cc1106d5 100644
--- a/opensearchpy/client/cat.py
+++ b/opensearchpy/client/cat.py
@@ -45,7 +45,7 @@ class CatClient(NamespacedClient):
         :arg h: Comma-separated list of column names to display
         :arg help: Return help information
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
+            from cluster_manager node (default: false)
         :arg s: Comma-separated list of column names or column aliases
             to sort by
         :arg v: Verbose mode. Display column headers
@@ -54,7 +54,17 @@ class CatClient(NamespacedClient):
             "GET", _make_path("_cat", "aliases", name), params=params, headers=headers
         )
 
-    @query_params("bytes", "format", "h", "help", "local", "master_timeout", "s", "v")
+    @query_params(
+        "bytes",
+        "format",
+        "h",
+        "help",
+        "local",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "s",
+        "v",
+    )
     def allocation(self, node_id=None, params=None, headers=None):
         """
         Provides a snapshot of how many shards are allocated to each data node and how
@@ -70,9 +80,11 @@ class CatClient(NamespacedClient):
         :arg h: Comma-separated list of column names to display
         :arg help: Return help information
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg s: Comma-separated list of column names or column aliases
             to sort by
         :arg v: Verbose mode. Display column headers
@@ -150,6 +162,7 @@ class CatClient(NamespacedClient):
         "include_unloaded_segments",
         "local",
         "master_timeout",
+        "cluster_manager_timeout",
         "pri",
         "s",
         "time",
@@ -179,9 +192,11 @@ class CatClient(NamespacedClient):
             will include stats for segments that are not currently loaded into
             memory
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg pri: Set to true to return stats only for primary shards
         :arg s: Comma-separated list of column names or column aliases
             to sort by
@@ -193,7 +208,16 @@ class CatClient(NamespacedClient):
             "GET", _make_path("_cat", "indices", index), params=params, headers=headers
         )
 
-    @query_params("format", "h", "help", "local", "master_timeout", "s", "v")
+    @query_params(
+        "format",
+        "h",
+        "help",
+        "local",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "s",
+        "v",
+    )
     def master(self, params=None, headers=None):
         """
         Returns information about the master node.
@@ -204,17 +228,44 @@ class CatClient(NamespacedClient):
         :arg h: Comma-separated list of column names to display
         :arg help: Return help information
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg s: Comma-separated list of column names or column aliases
             to sort by
         :arg v: Verbose mode. Display column headers
         """
+        from warnings import warn
+
+        warn("Deprecated: use `cluster_manager` instead")
         return self.transport.perform_request(
             "GET", "/_cat/master", params=params, headers=headers
         )
 
+    @query_params("format", "h", "help", "local", "cluster_manager_timeout", "s", "v")
+    def cluster_manager(self, params=None, headers=None):
+        """
+        Returns information about the cluster_manager node.
+
+
+        :arg format: a short version of the Accept header, e.g. json,
+            yaml
+        :arg h: Comma-separated list of column names to display
+        :arg help: Return help information
+        :arg local: Return local information, do not retrieve the state
+            from cluster_manager node (default: false)
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
+        :arg s: Comma-separated list of column names or column aliases
+            to sort by
+        :arg v: Verbose mode. Display column headers
+        """
+        return self.transport.perform_request(
+            "GET", "/_cat/cluster_manager", params=params, headers=headers
+        )
+
     @query_params(
         "bytes",
         "format",
@@ -224,6 +275,7 @@ class CatClient(NamespacedClient):
         "include_unloaded_segments",
         "local",
         "master_timeout",
+        "cluster_manager_timeout",
         "s",
         "time",
         "v",
@@ -246,8 +298,10 @@ class CatClient(NamespacedClient):
             memory
         :arg local: Calculate the selected nodes using the local cluster
             state rather than the state from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg s: Comma-separated list of column names or column aliases
             to sort by
         :arg time: The unit in which to display time values  Valid
@@ -289,7 +343,16 @@ class CatClient(NamespacedClient):
         )
 
     @query_params(
-        "bytes", "format", "h", "help", "local", "master_timeout", "s", "time", "v"
+        "bytes",
+        "format",
+        "h",
+        "help",
+        "local",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "s",
+        "time",
+        "v",
     )
     def shards(self, index=None, params=None, headers=None):
         """
@@ -305,9 +368,11 @@ class CatClient(NamespacedClient):
         :arg h: Comma-separated list of column names to display
         :arg help: Return help information
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg s: Comma-separated list of column names or column aliases
             to sort by
         :arg time: The unit in which to display time values  Valid
@@ -340,7 +405,17 @@ class CatClient(NamespacedClient):
             "GET", _make_path("_cat", "segments", index), params=params, headers=headers
         )
 
-    @query_params("format", "h", "help", "local", "master_timeout", "s", "time", "v")
+    @query_params(
+        "format",
+        "h",
+        "help",
+        "local",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "s",
+        "time",
+        "v",
+    )
     def pending_tasks(self, params=None, headers=None):
         """
         Returns a concise representation of the cluster pending tasks.
@@ -351,9 +426,11 @@ class CatClient(NamespacedClient):
         :arg h: Comma-separated list of column names to display
         :arg help: Return help information
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg s: Comma-separated list of column names or column aliases
             to sort by
         :arg time: The unit in which to display time values  Valid
@@ -364,7 +441,17 @@ class CatClient(NamespacedClient):
             "GET", "/_cat/pending_tasks", params=params, headers=headers
         )
 
-    @query_params("format", "h", "help", "local", "master_timeout", "s", "size", "v")
+    @query_params(
+        "format",
+        "h",
+        "help",
+        "local",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "s",
+        "size",
+        "v",
+    )
     def thread_pool(self, thread_pool_patterns=None, params=None, headers=None):
         """
         Returns cluster-wide thread pool statistics per node. By default the active,
@@ -378,9 +465,11 @@ class CatClient(NamespacedClient):
         :arg h: Comma-separated list of column names to display
         :arg help: Return help information
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg s: Comma-separated list of column names or column aliases
             to sort by
         :arg size: The multiplier in which to display values  Valid
@@ -421,7 +510,15 @@ class CatClient(NamespacedClient):
         )
 
     @query_params(
-        "format", "h", "help", "include_bootstrap", "local", "master_timeout", "s", "v"
+        "format",
+        "h",
+        "help",
+        "include_bootstrap",
+        "local",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "s",
+        "v",
     )
     def plugins(self, params=None, headers=None):
         """
@@ -435,9 +532,11 @@ class CatClient(NamespacedClient):
         :arg include_bootstrap: Include bootstrap plugins in the
             response
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg s: Comma-separated list of column names or column aliases
             to sort by
         :arg v: Verbose mode. Display column headers
@@ -446,7 +545,16 @@ class CatClient(NamespacedClient):
             "GET", "/_cat/plugins", params=params, headers=headers
         )
 
-    @query_params("format", "h", "help", "local", "master_timeout", "s", "v")
+    @query_params(
+        "format",
+        "h",
+        "help",
+        "local",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "s",
+        "v",
+    )
     def nodeattrs(self, params=None, headers=None):
         """
         Returns information about custom node attributes.
@@ -457,9 +565,11 @@ class CatClient(NamespacedClient):
         :arg h: Comma-separated list of column names to display
         :arg help: Return help information
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg s: Comma-separated list of column names or column aliases
             to sort by
         :arg v: Verbose mode. Display column headers
@@ -468,7 +578,16 @@ class CatClient(NamespacedClient):
             "GET", "/_cat/nodeattrs", params=params, headers=headers
         )
 
-    @query_params("format", "h", "help", "local", "master_timeout", "s", "v")
+    @query_params(
+        "format",
+        "h",
+        "help",
+        "local",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "s",
+        "v",
+    )
     def repositories(self, params=None, headers=None):
         """
         Returns information about snapshot repositories registered in the cluster.
@@ -480,8 +599,10 @@ class CatClient(NamespacedClient):
         :arg help: Return help information
         :arg local: Return local information, do not retrieve the state
             from master node
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg s: Comma-separated list of column names or column aliases
             to sort by
         :arg v: Verbose mode. Display column headers
@@ -491,7 +612,15 @@ class CatClient(NamespacedClient):
         )
 
     @query_params(
-        "format", "h", "help", "ignore_unavailable", "master_timeout", "s", "time", "v"
+        "format",
+        "h",
+        "help",
+        "ignore_unavailable",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "s",
+        "time",
+        "v",
     )
     def snapshots(self, repository=None, params=None, headers=None):
         """
@@ -506,8 +635,10 @@ class CatClient(NamespacedClient):
         :arg help: Return help information
         :arg ignore_unavailable: Set to true to ignore unavailable
             snapshots
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg s: Comma-separated list of column names or column aliases
             to sort by
         :arg time: The unit in which to display time values  Valid
@@ -561,7 +692,16 @@ class CatClient(NamespacedClient):
             "GET", "/_cat/tasks", params=params, headers=headers
         )
 
-    @query_params("format", "h", "help", "local", "master_timeout", "s", "v")
+    @query_params(
+        "format",
+        "h",
+        "help",
+        "local",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "s",
+        "v",
+    )
     def templates(self, name=None, params=None, headers=None):
         """
         Returns information about existing templates.
@@ -573,9 +713,11 @@ class CatClient(NamespacedClient):
         :arg h: Comma-separated list of column names to display
         :arg help: Return help information
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg s: Comma-separated list of column names or column aliases
             to sort by
         :arg v: Verbose mode. Display column headers
diff --git a/opensearchpy/client/cat.pyi b/opensearchpy/client/cat.pyi
index 513174c7..e29e9253 100644
--- a/opensearchpy/client/cat.pyi
+++ b/opensearchpy/client/cat.pyi
@@ -62,6 +62,7 @@ class CatClient(NamespacedClient):
         help: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         s: Optional[Any] = ...,
         v: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -150,6 +151,7 @@ class CatClient(NamespacedClient):
         include_unloaded_segments: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pri: Optional[Any] = ...,
         s: Optional[Any] = ...,
         time: Optional[Any] = ...,
@@ -174,6 +176,29 @@ class CatClient(NamespacedClient):
         help: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
+        s: Optional[Any] = ...,
+        v: Optional[Any] = ...,
+        pretty: Optional[bool] = ...,
+        human: Optional[bool] = ...,
+        error_trace: Optional[bool] = ...,
+        filter_path: Optional[Union[str, Collection[str]]] = ...,
+        request_timeout: Optional[Union[int, float]] = ...,
+        ignore: Optional[Union[int, Collection[int]]] = ...,
+        opaque_id: Optional[str] = ...,
+        http_auth: Optional[Union[str, Tuple[str, str]]] = ...,
+        api_key: Optional[Union[str, Tuple[str, str]]] = ...,
+        params: Optional[MutableMapping[str, Any]] = ...,
+        headers: Optional[MutableMapping[str, str]] = ...,
+    ) -> Any: ...
+    def cluster_manager(
+        self,
+        *,
+        format: Optional[Any] = ...,
+        h: Optional[Any] = ...,
+        help: Optional[Any] = ...,
+        local: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         s: Optional[Any] = ...,
         v: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -199,6 +224,7 @@ class CatClient(NamespacedClient):
         include_unloaded_segments: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         s: Optional[Any] = ...,
         time: Optional[Any] = ...,
         v: Optional[Any] = ...,
@@ -249,6 +275,7 @@ class CatClient(NamespacedClient):
         help: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         s: Optional[Any] = ...,
         time: Optional[Any] = ...,
         v: Optional[Any] = ...,
@@ -294,6 +321,7 @@ class CatClient(NamespacedClient):
         help: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         s: Optional[Any] = ...,
         time: Optional[Any] = ...,
         v: Optional[Any] = ...,
@@ -318,6 +346,7 @@ class CatClient(NamespacedClient):
         help: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         s: Optional[Any] = ...,
         size: Optional[Any] = ...,
         v: Optional[Any] = ...,
@@ -364,6 +393,7 @@ class CatClient(NamespacedClient):
         include_bootstrap: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         s: Optional[Any] = ...,
         v: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -386,6 +416,7 @@ class CatClient(NamespacedClient):
         help: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         s: Optional[Any] = ...,
         v: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -408,6 +439,7 @@ class CatClient(NamespacedClient):
         help: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         s: Optional[Any] = ...,
         v: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -431,6 +463,7 @@ class CatClient(NamespacedClient):
         help: Optional[Any] = ...,
         ignore_unavailable: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         s: Optional[Any] = ...,
         time: Optional[Any] = ...,
         v: Optional[Any] = ...,
@@ -480,6 +513,7 @@ class CatClient(NamespacedClient):
         help: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         s: Optional[Any] = ...,
         v: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
diff --git a/opensearchpy/client/cluster.py b/opensearchpy/client/cluster.py
index 7200608f..fd749cbc 100644
--- a/opensearchpy/client/cluster.py
+++ b/opensearchpy/client/cluster.py
@@ -34,6 +34,7 @@ class ClusterClient(NamespacedClient):
         "level",
         "local",
         "master_timeout",
+        "cluster_manager_timeout",
         "timeout",
         "wait_for_active_shards",
         "wait_for_events",
@@ -54,9 +55,11 @@ class ClusterClient(NamespacedClient):
         :arg level: Specify the level of detail for returned information
             Valid choices: cluster, indices, shards  Default: cluster
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg timeout: Explicit operation timeout
         :arg wait_for_active_shards: Wait until the specified number of
             shards is active
@@ -79,7 +82,7 @@ class ClusterClient(NamespacedClient):
             headers=headers,
         )
 
-    @query_params("local", "master_timeout")
+    @query_params("local", "master_timeout", "cluster_manager_timeout")
     def pending_tasks(self, params=None, headers=None):
         """
         Returns a list of any cluster-level changes (e.g. create index, update mapping,
@@ -87,8 +90,9 @@ class ClusterClient(NamespacedClient):
 
 
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Specify timeout for connection to master
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         """
         return self.transport.perform_request(
             "GET", "/_cluster/pending_tasks", params=params, headers=headers
@@ -101,6 +105,7 @@ class ClusterClient(NamespacedClient):
         "ignore_unavailable",
         "local",
         "master_timeout",
+        "cluster_manager_timeout",
         "wait_for_metadata_version",
         "wait_for_timeout",
     )
@@ -125,8 +130,9 @@ class ClusterClient(NamespacedClient):
         :arg ignore_unavailable: Whether specified concrete indices
             should be ignored when unavailable (missing or closed)
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Specify timeout for connection to master
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg wait_for_metadata_version: Wait for the metadata version to
             be equal or greater than the specified metadata version
         :arg wait_for_timeout: The maximum time to wait for
@@ -166,7 +172,13 @@ class ClusterClient(NamespacedClient):
         )
 
     @query_params(
-        "dry_run", "explain", "master_timeout", "metric", "retry_failed", "timeout"
+        "dry_run",
+        "explain",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "metric",
+        "retry_failed",
+        "timeout",
     )
     def reroute(self, body=None, params=None, headers=None):
         """
@@ -179,8 +191,10 @@ class ClusterClient(NamespacedClient):
             resulting state
         :arg explain: Return an explanation of why the commands can or
             cannot be executed
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg metric: Limit the information returned to the specified
             metrics. Defaults to all but metadata  Valid choices: _all, blocks,
             metadata, nodes, routing_table, master_node, version
@@ -192,7 +206,13 @@ class ClusterClient(NamespacedClient):
             "POST", "/_cluster/reroute", params=params, headers=headers, body=body
         )
 
-    @query_params("flat_settings", "include_defaults", "master_timeout", "timeout")
+    @query_params(
+        "flat_settings",
+        "include_defaults",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "timeout",
+    )
     def get_settings(self, params=None, headers=None):
         """
         Returns cluster settings.
@@ -202,15 +222,19 @@ class ClusterClient(NamespacedClient):
             false)
         :arg include_defaults: Whether to return all default clusters
             setting.
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg timeout: Explicit operation timeout
         """
         return self.transport.perform_request(
             "GET", "/_cluster/settings", params=params, headers=headers
         )
 
-    @query_params("flat_settings", "master_timeout", "timeout")
+    @query_params(
+        "flat_settings", "master_timeout", "cluster_manager_timeout", "timeout"
+    )
     def put_settings(self, body, params=None, headers=None):
         """
         Updates the cluster settings.
@@ -220,8 +244,10 @@ class ClusterClient(NamespacedClient):
             or `persistent` (survives cluster restart).
         :arg flat_settings: Return settings in flat format (default:
             false)
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg timeout: Explicit operation timeout
         """
         if body in SKIP_IN_PATH:
@@ -262,14 +288,15 @@ class ClusterClient(NamespacedClient):
             body=body,
         )
 
-    @query_params("master_timeout", "timeout")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout")
     def delete_component_template(self, name, params=None, headers=None):
         """
         Deletes a component template
 
 
         :arg name: The name of the template
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         """
         if name in SKIP_IN_PATH:
@@ -282,7 +309,7 @@ class ClusterClient(NamespacedClient):
             headers=headers,
         )
 
-    @query_params("local", "master_timeout")
+    @query_params("local", "master_timeout", "cluster_manager_timeout")
     def get_component_template(self, name=None, params=None, headers=None):
         """
         Returns one or more component templates
@@ -290,9 +317,11 @@ class ClusterClient(NamespacedClient):
 
         :arg name: The comma separated names of the component templates
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         """
         return self.transport.perform_request(
             "GET",
@@ -301,7 +330,7 @@ class ClusterClient(NamespacedClient):
             headers=headers,
         )
 
-    @query_params("create", "master_timeout", "timeout")
+    @query_params("create", "master_timeout", "cluster_manager_timeout", "timeout")
     def put_component_template(self, name, body, params=None, headers=None):
         """
         Creates or updates a component template
@@ -311,7 +340,8 @@ class ClusterClient(NamespacedClient):
         :arg body: The template definition
         :arg create: Whether the index template should only be added if
             new or can also replace an existing one
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         """
         for param in (name, body):
@@ -326,7 +356,7 @@ class ClusterClient(NamespacedClient):
             body=body,
         )
 
-    @query_params("local", "master_timeout")
+    @query_params("local", "master_timeout", "cluster_manager_timeout")
     def exists_component_template(self, name, params=None, headers=None):
         """
         Returns information about whether a particular component template exist
@@ -334,9 +364,11 @@ class ClusterClient(NamespacedClient):
 
         :arg name: The name of the template
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         """
         if name in SKIP_IN_PATH:
             raise ValueError("Empty value passed for a required argument 'name'.")
diff --git a/opensearchpy/client/cluster.pyi b/opensearchpy/client/cluster.pyi
index 3fe9ee9e..49b27c54 100644
--- a/opensearchpy/client/cluster.pyi
+++ b/opensearchpy/client/cluster.pyi
@@ -37,6 +37,7 @@ class ClusterClient(NamespacedClient):
         level: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         wait_for_active_shards: Optional[Any] = ...,
         wait_for_events: Optional[Any] = ...,
@@ -62,6 +63,7 @@ class ClusterClient(NamespacedClient):
         *,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -86,6 +88,7 @@ class ClusterClient(NamespacedClient):
         ignore_unavailable: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         wait_for_metadata_version: Optional[Any] = ...,
         wait_for_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -127,6 +130,7 @@ class ClusterClient(NamespacedClient):
         dry_run: Optional[Any] = ...,
         explain: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         metric: Optional[Any] = ...,
         retry_failed: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
@@ -149,6 +153,7 @@ class ClusterClient(NamespacedClient):
         flat_settings: Optional[Any] = ...,
         include_defaults: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -169,6 +174,7 @@ class ClusterClient(NamespacedClient):
         body: Any,
         flat_settings: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -223,6 +229,7 @@ class ClusterClient(NamespacedClient):
         name: Any,
         *,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -243,6 +250,7 @@ class ClusterClient(NamespacedClient):
         name: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -263,6 +271,7 @@ class ClusterClient(NamespacedClient):
         body: Any,
         create: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -283,6 +292,7 @@ class ClusterClient(NamespacedClient):
         *,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
diff --git a/opensearchpy/client/dangling_indices.py b/opensearchpy/client/dangling_indices.py
index cf779a28..4d1b5a36 100644
--- a/opensearchpy/client/dangling_indices.py
+++ b/opensearchpy/client/dangling_indices.py
@@ -29,7 +29,9 @@ from .utils import SKIP_IN_PATH, NamespacedClient, _make_path, query_params
 
 
 class DanglingIndicesClient(NamespacedClient):
-    @query_params("accept_data_loss", "master_timeout", "timeout")
+    @query_params(
+        "accept_data_loss", "master_timeout", "cluster_manager_timeout", "timeout"
+    )
     def delete_dangling_index(self, index_uuid, params=None, headers=None):
         """
         Deletes the specified dangling index
@@ -38,7 +40,8 @@ class DanglingIndicesClient(NamespacedClient):
         :arg index_uuid: The UUID of the dangling index
         :arg accept_data_loss: Must be set to true in order to delete
             the dangling index
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         """
         if index_uuid in SKIP_IN_PATH:
@@ -51,7 +54,9 @@ class DanglingIndicesClient(NamespacedClient):
             headers=headers,
         )
 
-    @query_params("accept_data_loss", "master_timeout", "timeout")
+    @query_params(
+        "accept_data_loss", "master_timeout", "cluster_manager_timeout", "timeout"
+    )
     def import_dangling_index(self, index_uuid, params=None, headers=None):
         """
         Imports the specified dangling index
@@ -60,7 +65,8 @@ class DanglingIndicesClient(NamespacedClient):
         :arg index_uuid: The UUID of the dangling index
         :arg accept_data_loss: Must be set to true in order to import
             the dangling index
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         """
         if index_uuid in SKIP_IN_PATH:
diff --git a/opensearchpy/client/dangling_indices.pyi b/opensearchpy/client/dangling_indices.pyi
index c4dae3bf..56e4a72f 100644
--- a/opensearchpy/client/dangling_indices.pyi
+++ b/opensearchpy/client/dangling_indices.pyi
@@ -35,6 +35,7 @@ class DanglingIndicesClient(NamespacedClient):
         *,
         accept_data_loss: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -55,6 +56,7 @@ class DanglingIndicesClient(NamespacedClient):
         *,
         accept_data_loss: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
diff --git a/opensearchpy/client/features.py b/opensearchpy/client/features.py
index ef29113b..a9e6ab95 100644
--- a/opensearchpy/client/features.py
+++ b/opensearchpy/client/features.py
@@ -29,15 +29,17 @@ from .utils import NamespacedClient, query_params
 
 
 class FeaturesClient(NamespacedClient):
-    @query_params("master_timeout")
+    @query_params("master_timeout", "cluster_manager_timeout")
     def get_features(self, params=None, headers=None):
         """
         Gets a list of features which can be included in snapshots using the
         feature_states field when creating a snapshot
 
 
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         """
         return self.transport.perform_request(
             "GET", "/_features", params=params, headers=headers
diff --git a/opensearchpy/client/features.pyi b/opensearchpy/client/features.pyi
index 487f824a..8da34e42 100644
--- a/opensearchpy/client/features.pyi
+++ b/opensearchpy/client/features.pyi
@@ -33,6 +33,7 @@ class FeaturesClient(NamespacedClient):
         self,
         *,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
diff --git a/opensearchpy/client/indices.py b/opensearchpy/client/indices.py
index d78fc06b..138692e1 100644
--- a/opensearchpy/client/indices.py
+++ b/opensearchpy/client/indices.py
@@ -105,7 +105,9 @@ class IndicesClient(NamespacedClient):
             "POST", _make_path(index, "_flush"), params=params, headers=headers
         )
 
-    @query_params("master_timeout", "timeout", "wait_for_active_shards")
+    @query_params(
+        "master_timeout", "cluster_manager_timeout", "timeout", "wait_for_active_shards"
+    )
     def create(self, index, body=None, params=None, headers=None):
         """
         Creates an index with optional settings and mappings.
@@ -114,7 +116,8 @@ class IndicesClient(NamespacedClient):
         :arg index: The name of the index
         :arg body: The configuration for the index (`settings` and
             `mappings`)
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         :arg wait_for_active_shards: Set the number of active shards to
             wait for before the operation returns.
@@ -126,7 +129,9 @@ class IndicesClient(NamespacedClient):
             "PUT", _make_path(index), params=params, headers=headers, body=body
         )
 
-    @query_params("master_timeout", "timeout", "wait_for_active_shards")
+    @query_params(
+        "master_timeout", "cluster_manager_timeout", "timeout", "wait_for_active_shards"
+    )
     def clone(self, index, target, body=None, params=None, headers=None):
         """
         Clones an index
@@ -136,7 +141,8 @@ class IndicesClient(NamespacedClient):
         :arg target: The name of the target index to clone into
         :arg body: The configuration for the target index (`settings`
             and `aliases`)
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         :arg wait_for_active_shards: Set the number of active shards to
             wait for on the cloned index before the operation returns.
@@ -161,6 +167,7 @@ class IndicesClient(NamespacedClient):
         "include_defaults",
         "local",
         "master_timeout",
+        "cluster_manager_timeout",
     )
     def get(self, index, params=None, headers=None):
         """
@@ -180,8 +187,9 @@ class IndicesClient(NamespacedClient):
         :arg include_defaults: Whether to return all default setting for
             each of the indices.
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Specify timeout for connection to master
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         """
         if index in SKIP_IN_PATH:
             raise ValueError("Empty value passed for a required argument 'index'.")
@@ -195,6 +203,7 @@ class IndicesClient(NamespacedClient):
         "expand_wildcards",
         "ignore_unavailable",
         "master_timeout",
+        "cluster_manager_timeout",
         "timeout",
         "wait_for_active_shards",
     )
@@ -212,7 +221,8 @@ class IndicesClient(NamespacedClient):
             closed, hidden, none, all  Default: closed
         :arg ignore_unavailable: Whether specified concrete indices
             should be ignored when unavailable (missing or closed)
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         :arg wait_for_active_shards: Sets the number of active shards to
             wait for before the operation returns.
@@ -229,6 +239,7 @@ class IndicesClient(NamespacedClient):
         "expand_wildcards",
         "ignore_unavailable",
         "master_timeout",
+        "cluster_manager_timeout",
         "timeout",
         "wait_for_active_shards",
     )
@@ -246,7 +257,8 @@ class IndicesClient(NamespacedClient):
             closed, hidden, none, all  Default: open
         :arg ignore_unavailable: Whether specified concrete indices
             should be ignored when unavailable (missing or closed)
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         :arg wait_for_active_shards: Sets the number of active shards to
             wait for before the operation returns. Set to `index-setting` to wait
@@ -265,6 +277,7 @@ class IndicesClient(NamespacedClient):
         "expand_wildcards",
         "ignore_unavailable",
         "master_timeout",
+        "cluster_manager_timeout",
         "timeout",
     )
     def delete(self, index, params=None, headers=None):
@@ -281,7 +294,8 @@ class IndicesClient(NamespacedClient):
             closed, hidden, none, all  Default: open
         :arg ignore_unavailable: Ignore unavailable indexes (default:
             false)
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         """
         if index in SKIP_IN_PATH:
@@ -317,7 +331,7 @@ class IndicesClient(NamespacedClient):
         :arg include_defaults: Whether to return all default setting for
             each of the indices.
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
+            from cluster_manager node (default: false)
         """
         if index in SKIP_IN_PATH:
             raise ValueError("Empty value passed for a required argument 'index'.")
@@ -331,6 +345,7 @@ class IndicesClient(NamespacedClient):
         "expand_wildcards",
         "ignore_unavailable",
         "master_timeout",
+        "cluster_manager_timeout",
         "timeout",
         "write_index_only",
     )
@@ -351,7 +366,8 @@ class IndicesClient(NamespacedClient):
             closed, hidden, none, all  Default: open
         :arg ignore_unavailable: Whether specified concrete indices
             should be ignored when unavailable (missing or closed)
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         :arg write_index_only: When true, applies mappings only to the
             write index of an alias or data stream
@@ -376,6 +392,7 @@ class IndicesClient(NamespacedClient):
         "ignore_unavailable",
         "local",
         "master_timeout",
+        "cluster_manager_timeout",
     )
     def get_mapping(self, index=None, params=None, headers=None):
         """
@@ -392,8 +409,9 @@ class IndicesClient(NamespacedClient):
         :arg ignore_unavailable: Whether specified concrete indices
             should be ignored when unavailable (missing or closed)
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Specify timeout for connection to master
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         """
         return self.transport.perform_request(
             "GET",
@@ -427,7 +445,7 @@ class IndicesClient(NamespacedClient):
         :arg include_defaults: Whether the default mapping values should
             be returned as well
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
+            from cluster_manager node (default: false)
         """
         if fields in SKIP_IN_PATH:
             raise ValueError("Empty value passed for a required argument 'fields'.")
@@ -439,7 +457,7 @@ class IndicesClient(NamespacedClient):
             headers=headers,
         )
 
-    @query_params("master_timeout", "timeout")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout")
     def put_alias(self, index, name, body=None, params=None, headers=None):
         """
         Creates or updates an alias.
@@ -451,7 +469,8 @@ class IndicesClient(NamespacedClient):
         :arg name: The name of the alias to be created or updated
         :arg body: The settings for the alias, such as `routing` or
             `filter`
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit timestamp for the document
         """
         for param in (index, name):
@@ -484,7 +503,7 @@ class IndicesClient(NamespacedClient):
         :arg ignore_unavailable: Whether specified concrete indices
             should be ignored when unavailable (missing or closed)
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
+            from cluster_manager node (default: false)
         """
         if name in SKIP_IN_PATH:
             raise ValueError("Empty value passed for a required argument 'name'.")
@@ -511,20 +530,21 @@ class IndicesClient(NamespacedClient):
         :arg ignore_unavailable: Whether specified concrete indices
             should be ignored when unavailable (missing or closed)
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
+            from cluster_manager node (default: false)
         """
         return self.transport.perform_request(
             "GET", _make_path(index, "_alias", name), params=params, headers=headers
         )
 
-    @query_params("master_timeout", "timeout")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout")
     def update_aliases(self, body, params=None, headers=None):
         """
         Updates index aliases.
 
 
         :arg body: The definition of `actions` to perform
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Request timeout
         """
         if body in SKIP_IN_PATH:
@@ -534,7 +554,7 @@ class IndicesClient(NamespacedClient):
             "POST", "/_aliases", params=params, headers=headers, body=body
         )
 
-    @query_params("master_timeout", "timeout")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout")
     def delete_alias(self, index, name, params=None, headers=None):
         """
         Deletes an alias.
@@ -544,7 +564,8 @@ class IndicesClient(NamespacedClient):
             wildcards); use `_all` for all indices
         :arg name: A comma-separated list of aliases to delete (supports
             wildcards); use `_all` to delete all aliases for the specified indices.
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit timestamp for the document
         """
         for param in (index, name):
@@ -555,7 +576,7 @@ class IndicesClient(NamespacedClient):
             "DELETE", _make_path(index, "_alias", name), params=params, headers=headers
         )
 
-    @query_params("create", "master_timeout", "order")
+    @query_params("create", "master_timeout", "cluster_manager_timeout", "order")
     def put_template(self, name, body, params=None, headers=None):
         """
         Creates or updates an index template.
@@ -565,7 +586,8 @@ class IndicesClient(NamespacedClient):
         :arg body: The template definition
         :arg create: Whether the index template should only be added if
             new or can also replace an existing one
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg order: The order for this template when merging multiple
             matching ones (higher numbers are merged later, overriding the lower
             numbers)
@@ -582,7 +604,7 @@ class IndicesClient(NamespacedClient):
             body=body,
         )
 
-    @query_params("flat_settings", "local", "master_timeout")
+    @query_params("flat_settings", "local", "master_timeout", "cluster_manager_timeout")
     def exists_template(self, name, params=None, headers=None):
         """
         Returns information about whether a particular index template exists.
@@ -592,9 +614,11 @@ class IndicesClient(NamespacedClient):
         :arg flat_settings: Return settings in flat format (default:
             false)
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         """
         if name in SKIP_IN_PATH:
             raise ValueError("Empty value passed for a required argument 'name'.")
@@ -603,7 +627,7 @@ class IndicesClient(NamespacedClient):
             "HEAD", _make_path("_template", name), params=params, headers=headers
         )
 
-    @query_params("flat_settings", "local", "master_timeout")
+    @query_params("flat_settings", "local", "master_timeout", "cluster_manager_timeout")
     def get_template(self, name=None, params=None, headers=None):
         """
         Returns an index template.
@@ -613,22 +637,25 @@ class IndicesClient(NamespacedClient):
         :arg flat_settings: Return settings in flat format (default:
             false)
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         """
         return self.transport.perform_request(
             "GET", _make_path("_template", name), params=params, headers=headers
         )
 
-    @query_params("master_timeout", "timeout")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout")
     def delete_template(self, name, params=None, headers=None):
         """
         Deletes an index template.
 
 
         :arg name: The name of the template
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         """
         if name in SKIP_IN_PATH:
@@ -646,6 +673,7 @@ class IndicesClient(NamespacedClient):
         "include_defaults",
         "local",
         "master_timeout",
+        "cluster_manager_timeout",
     )
     def get_settings(self, index=None, name=None, params=None, headers=None):
         """
@@ -668,8 +696,9 @@ class IndicesClient(NamespacedClient):
         :arg include_defaults: Whether to return all default setting for
             each of the indices.
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Specify timeout for connection to master
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         """
         return self.transport.perform_request(
             "GET", _make_path(index, "_settings", name), params=params, headers=headers
@@ -681,6 +710,7 @@ class IndicesClient(NamespacedClient):
         "flat_settings",
         "ignore_unavailable",
         "master_timeout",
+        "cluster_manager_timeout",
         "preserve_existing",
         "timeout",
     )
@@ -702,7 +732,8 @@ class IndicesClient(NamespacedClient):
             false)
         :arg ignore_unavailable: Whether specified concrete indices
             should be ignored when unavailable (missing or closed)
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg preserve_existing: Whether to update existing settings. If
             set to `true` existing settings on an index remain unchanged, the
             default is `false`
@@ -1041,7 +1072,11 @@ class IndicesClient(NamespacedClient):
         )
 
     @query_params(
-        "copy_settings", "master_timeout", "timeout", "wait_for_active_shards"
+        "copy_settings",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "timeout",
+        "wait_for_active_shards",
     )
     def shrink(self, index, target, body=None, params=None, headers=None):
         """
@@ -1054,7 +1089,8 @@ class IndicesClient(NamespacedClient):
             and `aliases`)
         :arg copy_settings: whether or not to copy settings from the
             source index (defaults to false)
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         :arg wait_for_active_shards: Set the number of active shards to
             wait for on the shrunken index before the operation returns.
@@ -1072,7 +1108,11 @@ class IndicesClient(NamespacedClient):
         )
 
     @query_params(
-        "copy_settings", "master_timeout", "timeout", "wait_for_active_shards"
+        "copy_settings",
+        "master_timeout",
+        "cluster_manager_timeout",
+        "timeout",
+        "wait_for_active_shards",
     )
     def split(self, index, target, body=None, params=None, headers=None):
         """
@@ -1086,7 +1126,8 @@ class IndicesClient(NamespacedClient):
             and `aliases`)
         :arg copy_settings: whether or not to copy settings from the
             source index (defaults to false)
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         :arg wait_for_active_shards: Set the number of active shards to
             wait for on the shrunken index before the operation returns.
@@ -1106,6 +1147,7 @@ class IndicesClient(NamespacedClient):
     @query_params(
         "dry_run",
         "master_timeout",
+        "cluster_manager_timeout",
         "timeout",
         "wait_for_active_shards",
     )
@@ -1122,7 +1164,8 @@ class IndicesClient(NamespacedClient):
         :arg dry_run: If set to true the rollover action will only be
             validated but not actually performed even if a condition matches. The
             default is false
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         :arg wait_for_active_shards: Set the number of active shards to
             wait for on the newly created rollover index before the operation
@@ -1144,6 +1187,7 @@ class IndicesClient(NamespacedClient):
         "expand_wildcards",
         "ignore_unavailable",
         "master_timeout",
+        "cluster_manager_timeout",
         "timeout",
         "wait_for_active_shards",
     )
@@ -1162,7 +1206,8 @@ class IndicesClient(NamespacedClient):
             closed, hidden, none, all  Default: closed
         :arg ignore_unavailable: Whether specified concrete indices
             should be ignored when unavailable (missing or closed)
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         :arg wait_for_active_shards: Sets the number of active shards to
             wait for before the operation returns.
@@ -1179,6 +1224,7 @@ class IndicesClient(NamespacedClient):
         "expand_wildcards",
         "ignore_unavailable",
         "master_timeout",
+        "cluster_manager_timeout",
         "timeout",
         "wait_for_active_shards",
     )
@@ -1197,7 +1243,8 @@ class IndicesClient(NamespacedClient):
             closed, hidden, none, all  Default: closed
         :arg ignore_unavailable: Whether specified concrete indices
             should be ignored when unavailable (missing or closed)
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         :arg wait_for_active_shards: Sets the number of active shards to
             wait for before the operation returns.
@@ -1270,14 +1317,15 @@ class IndicesClient(NamespacedClient):
             "DELETE", _make_path("_data_stream", name), params=params, headers=headers
         )
 
-    @query_params("master_timeout", "timeout")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout")
     def delete_index_template(self, name, params=None, headers=None):
         """
         Deletes an index template.
 
 
         :arg name: The name of the template
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         """
         if name in SKIP_IN_PATH:
@@ -1290,7 +1338,7 @@ class IndicesClient(NamespacedClient):
             headers=headers,
         )
 
-    @query_params("flat_settings", "local", "master_timeout")
+    @query_params("flat_settings", "local", "master_timeout", "cluster_manager_timeout")
     def exists_index_template(self, name, params=None, headers=None):
         """
         Returns information about whether a particular index template exists.
@@ -1300,9 +1348,11 @@ class IndicesClient(NamespacedClient):
         :arg flat_settings: Return settings in flat format (default:
             false)
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         """
         if name in SKIP_IN_PATH:
             raise ValueError("Empty value passed for a required argument 'name'.")
@@ -1311,7 +1361,7 @@ class IndicesClient(NamespacedClient):
             "HEAD", _make_path("_index_template", name), params=params, headers=headers
         )
 
-    @query_params("flat_settings", "local", "master_timeout")
+    @query_params("flat_settings", "local", "master_timeout", "cluster_manager_timeout")
     def get_index_template(self, name=None, params=None, headers=None):
         """
         Returns an index template.
@@ -1321,15 +1371,17 @@ class IndicesClient(NamespacedClient):
         :arg flat_settings: Return settings in flat format (default:
             false)
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         """
         return self.transport.perform_request(
             "GET", _make_path("_index_template", name), params=params, headers=headers
         )
 
-    @query_params("cause", "create", "master_timeout")
+    @query_params("cause", "create", "master_timeout", "cluster_manager_timeout")
     def put_index_template(self, name, body, params=None, headers=None):
         """
         Creates or updates an index template.
@@ -1341,7 +1393,8 @@ class IndicesClient(NamespacedClient):
             template
         :arg create: Whether the index template should only be added if
             new or can also replace an existing one
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         """
         for param in (name, body):
             if param in SKIP_IN_PATH:
@@ -1355,7 +1408,7 @@ class IndicesClient(NamespacedClient):
             body=body,
         )
 
-    @query_params("cause", "create", "master_timeout")
+    @query_params("cause", "create", "master_timeout", "cluster_manager_timeout")
     def simulate_index_template(self, name, body=None, params=None, headers=None):
         """
         Simulate matching the given index name against the index templates in the
@@ -1371,7 +1424,8 @@ class IndicesClient(NamespacedClient):
         :arg create: Whether the index template we optionally defined in
             the body should only be dry-run added if new or can also replace an
             existing one
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         """
         if name in SKIP_IN_PATH:
             raise ValueError("Empty value passed for a required argument 'name'.")
@@ -1400,7 +1454,7 @@ class IndicesClient(NamespacedClient):
             "GET", _make_path("_data_stream", name), params=params, headers=headers
         )
 
-    @query_params("cause", "create", "master_timeout")
+    @query_params("cause", "create", "master_timeout", "cluster_manager_timeout")
     def simulate_template(self, body=None, name=None, params=None, headers=None):
         """
         Simulate resolving the given template name or body
@@ -1414,7 +1468,8 @@ class IndicesClient(NamespacedClient):
         :arg create: Whether the index template we optionally defined in
             the body should only be dry-run added if new or can also replace an
             existing one
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         """
         return self.transport.perform_request(
             "POST",
@@ -1453,6 +1508,7 @@ class IndicesClient(NamespacedClient):
         "expand_wildcards",
         "ignore_unavailable",
         "master_timeout",
+        "cluster_manager_timeout",
         "timeout",
     )
     def add_block(self, index, block, params=None, headers=None):
@@ -1471,7 +1527,8 @@ class IndicesClient(NamespacedClient):
             closed, hidden, none, all  Default: open
         :arg ignore_unavailable: Whether specified concrete indices
             should be ignored when unavailable (missing or closed)
-        :arg master_timeout: Specify timeout for connection to master
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Specify timeout for connection to master
+        :arg cluster_manager_timeout: Specify timeout for connection to cluster_manager
         :arg timeout: Explicit operation timeout
         """
         for param in (index, block):
diff --git a/opensearchpy/client/indices.pyi b/opensearchpy/client/indices.pyi
index a5ef8f94..2393537a 100644
--- a/opensearchpy/client/indices.pyi
+++ b/opensearchpy/client/indices.pyi
@@ -95,6 +95,7 @@ class IndicesClient(NamespacedClient):
         *,
         body: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         wait_for_active_shards: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -117,6 +118,7 @@ class IndicesClient(NamespacedClient):
         *,
         body: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         wait_for_active_shards: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -143,6 +145,7 @@ class IndicesClient(NamespacedClient):
         include_defaults: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -164,6 +167,7 @@ class IndicesClient(NamespacedClient):
         expand_wildcards: Optional[Any] = ...,
         ignore_unavailable: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         wait_for_active_shards: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -187,6 +191,7 @@ class IndicesClient(NamespacedClient):
         expand_wildcards: Optional[Any] = ...,
         ignore_unavailable: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         wait_for_active_shards: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -210,6 +215,7 @@ class IndicesClient(NamespacedClient):
         expand_wildcards: Optional[Any] = ...,
         ignore_unavailable: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -256,6 +262,7 @@ class IndicesClient(NamespacedClient):
         expand_wildcards: Optional[Any] = ...,
         ignore_unavailable: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         write_index_only: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -280,6 +287,7 @@ class IndicesClient(NamespacedClient):
         ignore_unavailable: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -323,6 +331,7 @@ class IndicesClient(NamespacedClient):
         *,
         body: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -386,6 +395,7 @@ class IndicesClient(NamespacedClient):
         *,
         body: Any,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -406,6 +416,7 @@ class IndicesClient(NamespacedClient):
         name: Any,
         *,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -427,6 +438,7 @@ class IndicesClient(NamespacedClient):
         body: Any,
         create: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         order: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -448,6 +460,7 @@ class IndicesClient(NamespacedClient):
         flat_settings: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -468,6 +481,7 @@ class IndicesClient(NamespacedClient):
         flat_settings: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -486,6 +500,7 @@ class IndicesClient(NamespacedClient):
         name: Any,
         *,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -512,6 +527,7 @@ class IndicesClient(NamespacedClient):
         include_defaults: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -535,6 +551,7 @@ class IndicesClient(NamespacedClient):
         flat_settings: Optional[Any] = ...,
         ignore_unavailable: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         preserve_existing: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -786,6 +803,7 @@ class IndicesClient(NamespacedClient):
         body: Optional[Any] = ...,
         copy_settings: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         wait_for_active_shards: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -809,6 +827,7 @@ class IndicesClient(NamespacedClient):
         body: Optional[Any] = ...,
         copy_settings: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         wait_for_active_shards: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -832,6 +851,7 @@ class IndicesClient(NamespacedClient):
         new_index: Optional[Any] = ...,
         dry_run: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         wait_for_active_shards: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -855,6 +875,7 @@ class IndicesClient(NamespacedClient):
         expand_wildcards: Optional[Any] = ...,
         ignore_unavailable: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         wait_for_active_shards: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -878,6 +899,7 @@ class IndicesClient(NamespacedClient):
         expand_wildcards: Optional[Any] = ...,
         ignore_unavailable: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         wait_for_active_shards: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -953,6 +975,7 @@ class IndicesClient(NamespacedClient):
         name: Any,
         *,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -974,6 +997,7 @@ class IndicesClient(NamespacedClient):
         flat_settings: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -994,6 +1018,7 @@ class IndicesClient(NamespacedClient):
         flat_settings: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -1015,6 +1040,7 @@ class IndicesClient(NamespacedClient):
         cause: Optional[Any] = ...,
         create: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -1036,6 +1062,7 @@ class IndicesClient(NamespacedClient):
         cause: Optional[Any] = ...,
         create: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -1075,6 +1102,7 @@ class IndicesClient(NamespacedClient):
         cause: Optional[Any] = ...,
         create: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -1115,6 +1143,7 @@ class IndicesClient(NamespacedClient):
         expand_wildcards: Optional[Any] = ...,
         ignore_unavailable: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
diff --git a/opensearchpy/client/ingest.py b/opensearchpy/client/ingest.py
index 46131a5e..e40f1a3d 100644
--- a/opensearchpy/client/ingest.py
+++ b/opensearchpy/client/ingest.py
@@ -29,7 +29,7 @@ from .utils import SKIP_IN_PATH, NamespacedClient, _make_path, query_params
 
 
 class IngestClient(NamespacedClient):
-    @query_params("master_timeout", "summary")
+    @query_params("master_timeout", "cluster_manager_timeout", "summary")
     def get_pipeline(self, id=None, params=None, headers=None):
         """
         Returns a pipeline.
@@ -37,8 +37,10 @@ class IngestClient(NamespacedClient):
 
         :arg id: Comma separated list of pipeline ids. Wildcards
             supported
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg summary: Return pipelines without their definitions
             (default: false)
         """
@@ -46,7 +48,7 @@ class IngestClient(NamespacedClient):
             "GET", _make_path("_ingest", "pipeline", id), params=params, headers=headers
         )
 
-    @query_params("master_timeout", "timeout")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout")
     def put_pipeline(self, id, body, params=None, headers=None):
         """
         Creates or updates a pipeline.
@@ -54,8 +56,10 @@ class IngestClient(NamespacedClient):
 
         :arg id: Pipeline ID
         :arg body: The ingest definition
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg timeout: Explicit operation timeout
         """
         for param in (id, body):
@@ -70,15 +74,17 @@ class IngestClient(NamespacedClient):
             body=body,
         )
 
-    @query_params("master_timeout", "timeout")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout")
     def delete_pipeline(self, id, params=None, headers=None):
         """
         Deletes a pipeline.
 
 
         :arg id: Pipeline ID
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg timeout: Explicit operation timeout
         """
         if id in SKIP_IN_PATH:
diff --git a/opensearchpy/client/ingest.pyi b/opensearchpy/client/ingest.pyi
index 6a179cb7..bbc5aba2 100644
--- a/opensearchpy/client/ingest.pyi
+++ b/opensearchpy/client/ingest.pyi
@@ -34,6 +34,7 @@ class IngestClient(NamespacedClient):
         *,
         id: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         summary: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -54,6 +55,7 @@ class IngestClient(NamespacedClient):
         *,
         body: Any,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -73,6 +75,7 @@ class IngestClient(NamespacedClient):
         id: Any,
         *,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
diff --git a/opensearchpy/client/snapshot.py b/opensearchpy/client/snapshot.py
index 96adb5eb..200fff96 100644
--- a/opensearchpy/client/snapshot.py
+++ b/opensearchpy/client/snapshot.py
@@ -29,7 +29,7 @@ from .utils import SKIP_IN_PATH, NamespacedClient, _make_path, query_params
 
 
 class SnapshotClient(NamespacedClient):
-    @query_params("master_timeout", "wait_for_completion")
+    @query_params("master_timeout", "cluster_manager_timeout", "wait_for_completion")
     def create(self, repository, snapshot, body=None, params=None, headers=None):
         """
         Creates a snapshot in a repository.
@@ -38,8 +38,10 @@ class SnapshotClient(NamespacedClient):
         :arg repository: A repository name
         :arg snapshot: A snapshot name
         :arg body: The snapshot definition
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg wait_for_completion: Should this request wait until the
             operation has completed before returning
         """
@@ -55,7 +57,7 @@ class SnapshotClient(NamespacedClient):
             body=body,
         )
 
-    @query_params("master_timeout")
+    @query_params("master_timeout", "cluster_manager_timeout")
     def delete(self, repository, snapshot, params=None, headers=None):
         """
         Deletes a snapshot.
@@ -63,8 +65,10 @@ class SnapshotClient(NamespacedClient):
 
         :arg repository: A repository name
         :arg snapshot: A snapshot name
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         """
         for param in (repository, snapshot):
             if param in SKIP_IN_PATH:
@@ -82,6 +86,7 @@ class SnapshotClient(NamespacedClient):
         "include_repository",
         "index_details",
         "master_timeout",
+        "cluster_manager_timeout",
         "verbose",
     )
     def get(self, repository, snapshot, params=None, headers=None):
@@ -98,8 +103,10 @@ class SnapshotClient(NamespacedClient):
             in the snapshot info. Defaults to true.
         :arg index_details: Whether to include details of each index in
             the snapshot, if those details are available. Defaults to false.
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg verbose: Whether to show verbose snapshot info or only show
             the basic info found in the repository index blob
         """
@@ -114,7 +121,7 @@ class SnapshotClient(NamespacedClient):
             headers=headers,
         )
 
-    @query_params("master_timeout", "timeout")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout")
     def delete_repository(self, repository, params=None, headers=None):
         """
         Deletes a repository.
@@ -122,8 +129,10 @@ class SnapshotClient(NamespacedClient):
 
         :arg repository: Name of the snapshot repository to unregister.
             Wildcard (`*`) patterns are supported.
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg timeout: Explicit operation timeout
         """
         if repository in SKIP_IN_PATH:
@@ -136,7 +145,7 @@ class SnapshotClient(NamespacedClient):
             headers=headers,
         )
 
-    @query_params("local", "master_timeout")
+    @query_params("local", "master_timeout", "cluster_manager_timeout")
     def get_repository(self, repository=None, params=None, headers=None):
         """
         Returns information about a repository.
@@ -144,15 +153,17 @@ class SnapshotClient(NamespacedClient):
 
         :arg repository: A comma-separated list of repository names
         :arg local: Return local information, do not retrieve the state
-            from master node (default: false)
-        :arg master_timeout: Explicit operation timeout for connection
+            from cluster_manager node (default: false)
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         """
         return self.transport.perform_request(
             "GET", _make_path("_snapshot", repository), params=params, headers=headers
         )
 
-    @query_params("master_timeout", "timeout", "verify")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout", "verify")
     def create_repository(self, repository, body, params=None, headers=None):
         """
         Creates a repository.
@@ -160,8 +171,10 @@ class SnapshotClient(NamespacedClient):
 
         :arg repository: A repository name
         :arg body: The repository definition
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg timeout: Explicit operation timeout
         :arg verify: Whether to verify the repository after creation
         """
@@ -177,7 +190,7 @@ class SnapshotClient(NamespacedClient):
             body=body,
         )
 
-    @query_params("master_timeout", "wait_for_completion")
+    @query_params("master_timeout", "cluster_manager_timeout", "wait_for_completion")
     def restore(self, repository, snapshot, body=None, params=None, headers=None):
         """
         Restores a snapshot.
@@ -186,8 +199,10 @@ class SnapshotClient(NamespacedClient):
         :arg repository: A repository name
         :arg snapshot: A snapshot name
         :arg body: Details of what to restore
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg wait_for_completion: Should this request wait until the
             operation has completed before returning
         """
@@ -203,7 +218,7 @@ class SnapshotClient(NamespacedClient):
             body=body,
         )
 
-    @query_params("ignore_unavailable", "master_timeout")
+    @query_params("ignore_unavailable", "master_timeout", "cluster_manager_timeout")
     def status(self, repository=None, snapshot=None, params=None, headers=None):
         """
         Returns information about the status of a snapshot.
@@ -214,8 +229,10 @@ class SnapshotClient(NamespacedClient):
         :arg ignore_unavailable: Whether to ignore unavailable
             snapshots, defaults to false which means a SnapshotMissingException is
             thrown
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         """
         return self.transport.perform_request(
             "GET",
@@ -224,15 +241,17 @@ class SnapshotClient(NamespacedClient):
             headers=headers,
         )
 
-    @query_params("master_timeout", "timeout")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout")
     def verify_repository(self, repository, params=None, headers=None):
         """
         Verifies a repository.
 
 
         :arg repository: A repository name
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg timeout: Explicit operation timeout
         """
         if repository in SKIP_IN_PATH:
@@ -245,15 +264,17 @@ class SnapshotClient(NamespacedClient):
             headers=headers,
         )
 
-    @query_params("master_timeout", "timeout")
+    @query_params("master_timeout", "cluster_manager_timeout", "timeout")
     def cleanup_repository(self, repository, params=None, headers=None):
         """
         Removes stale data from repository.
 
 
         :arg repository: A repository name
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         :arg timeout: Explicit operation timeout
         """
         if repository in SKIP_IN_PATH:
@@ -266,7 +287,7 @@ class SnapshotClient(NamespacedClient):
             headers=headers,
         )
 
-    @query_params("master_timeout")
+    @query_params("master_timeout", "cluster_manager_timeout")
     def clone(
         self, repository, snapshot, target_snapshot, body, params=None, headers=None
     ):
@@ -278,8 +299,10 @@ class SnapshotClient(NamespacedClient):
         :arg snapshot: The name of the snapshot to clone from
         :arg target_snapshot: The name of the cloned snapshot to create
         :arg body: The snapshot clone definition
-        :arg master_timeout: Explicit operation timeout for connection
+        :arg master_timeout (Deprecated: use cluster_manager_timeout): Explicit operation timeout for connection
             to master node
+        :arg cluster_manager_timeout: Explicit operation timeout for connection
+            to cluster_manager node
         """
         for param in (repository, snapshot, target_snapshot, body):
             if param in SKIP_IN_PATH:
diff --git a/opensearchpy/client/snapshot.pyi b/opensearchpy/client/snapshot.pyi
index 71d14ea5..b1db95c0 100644
--- a/opensearchpy/client/snapshot.pyi
+++ b/opensearchpy/client/snapshot.pyi
@@ -36,6 +36,7 @@ class SnapshotClient(NamespacedClient):
         *,
         body: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         wait_for_completion: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -56,6 +57,7 @@ class SnapshotClient(NamespacedClient):
         snapshot: Any,
         *,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -78,6 +80,7 @@ class SnapshotClient(NamespacedClient):
         include_repository: Optional[Any] = ...,
         index_details: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         verbose: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -97,6 +100,7 @@ class SnapshotClient(NamespacedClient):
         repository: Any,
         *,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -117,6 +121,7 @@ class SnapshotClient(NamespacedClient):
         repository: Optional[Any] = ...,
         local: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -136,6 +141,7 @@ class SnapshotClient(NamespacedClient):
         *,
         body: Any,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         verify: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
@@ -158,6 +164,7 @@ class SnapshotClient(NamespacedClient):
         *,
         body: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         wait_for_completion: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -179,6 +186,7 @@ class SnapshotClient(NamespacedClient):
         snapshot: Optional[Any] = ...,
         ignore_unavailable: Optional[Any] = ...,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
@@ -197,6 +205,7 @@ class SnapshotClient(NamespacedClient):
         repository: Any,
         *,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -216,6 +225,7 @@ class SnapshotClient(NamespacedClient):
         repository: Any,
         *,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
@@ -238,6 +248,7 @@ class SnapshotClient(NamespacedClient):
         *,
         body: Any,
         master_timeout: Optional[Any] = ...,
+        cluster_manager_timeout: Optional[Any] = ...,
         pretty: Optional[bool] = ...,
         human: Optional[bool] = ...,
         error_trace: Optional[bool] = ...,
diff --git a/opensearchpy/connection/base.py b/opensearchpy/connection/base.py
index b2f2ef23..435996b9 100644
--- a/opensearchpy/connection/base.py
+++ b/opensearchpy/connection/base.py
@@ -304,3 +304,22 @@ class Connection(object):
 
     def _get_default_user_agent(self):
         return "opensearch-py/%s (Python %s)" % (__versionstr__, python_version())
+
+    @staticmethod
+    def default_ca_certs():
+        """
+        Get the default CA certificate bundle, preferring those configured in
+        the standard OpenSSL environment variables before those provided by
+        certifi (if available)
+        """
+        ca_certs = os.environ.get("SSL_CERT_FILE") or os.environ.get("SSL_CERT_DIR")
+
+        if ca_certs:
+            return ca_certs
+
+        try:
+            import certifi
+        except ImportError:
+            pass
+        else:
+            return certifi.where()
diff --git a/opensearchpy/connection/base.pyi b/opensearchpy/connection/base.pyi
index 8ade2530..7e51d20c 100644
--- a/opensearchpy/connection/base.pyi
+++ b/opensearchpy/connection/base.pyi
@@ -114,3 +114,5 @@ class Connection(object):
         self, status_code: int, raw_data: str, content_type: Optional[str]
     ) -> NoReturn: ...
     def _get_default_user_agent(self) -> str: ...
+    @staticmethod
+    def default_ca_certs() -> Optional[str]: ...
diff --git a/opensearchpy/connection/http_requests.py b/opensearchpy/connection/http_requests.py
index e4e5cb38..a918a635 100644
--- a/opensearchpy/connection/http_requests.py
+++ b/opensearchpy/connection/http_requests.py
@@ -54,8 +54,10 @@ class RequestsHttpConnection(Connection):
     :arg use_ssl: use ssl for the connection if `True`
     :arg verify_certs: whether to verify SSL certificates
     :arg ssl_show_warn: show warning when verify certs is disabled
-    :arg ca_certs: optional path to CA bundle. By default standard requests'
-        bundle will be used.
+    :arg ca_certs: optional path to CA bundle. Defaults to configured OpenSSL
+        bundles from environment variables and then certifi before falling
+        back to the standard requests bundle to improve consistency with
+        other Connection implementations
     :arg client_cert: path to the file containing the private key and the
         certificate, or cert only if using client_key
     :arg client_key: path to the file containing the private key if using
@@ -129,6 +131,10 @@ class RequestsHttpConnection(Connection):
                     "You cannot pass CA certificates when verify SSL is off."
                 )
             self.session.verify = ca_certs
+        elif verify_certs:
+            ca_certs = self.default_ca_certs()
+            if ca_certs:
+                self.session.verify = ca_certs
 
         if not ssl_show_warn:
             requests.packages.urllib3.disable_warnings()
diff --git a/opensearchpy/connection/http_urllib3.py b/opensearchpy/connection/http_urllib3.py
index c57a6190..51a4f2d9 100644
--- a/opensearchpy/connection/http_urllib3.py
+++ b/opensearchpy/connection/http_urllib3.py
@@ -24,7 +24,6 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
-
 import ssl
 import time
 import warnings
@@ -49,15 +48,6 @@ from .base import Connection
 VERIFY_CERTS_DEFAULT = object()
 SSL_SHOW_WARN_DEFAULT = object()
 
-CA_CERTS = None
-
-try:
-    import certifi
-
-    CA_CERTS = certifi.where()
-except ImportError:
-    pass
-
 
 def create_ssl_context(**kwargs):
     """
@@ -186,7 +176,7 @@ class Urllib3HttpConnection(Connection):
             if ssl_show_warn is SSL_SHOW_WARN_DEFAULT:
                 ssl_show_warn = True
 
-            ca_certs = CA_CERTS if ca_certs is None else ca_certs
+            ca_certs = self.default_ca_certs() if ca_certs is None else ca_certs
             if verify_certs:
                 if not ca_certs:
                     raise ImproperlyConfigured(
diff --git a/opensearchpy/helpers/actions.pyi b/opensearchpy/helpers/actions.pyi
index ecc9447b..4fee4bd1 100644
--- a/opensearchpy/helpers/actions.pyi
+++ b/opensearchpy/helpers/actions.pyi
@@ -25,6 +25,7 @@
 #  under the License.
 
 import logging
+import sys
 from typing import (
     Any,
     AsyncIterable,
@@ -38,8 +39,14 @@ from typing import (
     Optional,
     Tuple,
     Union,
+    overload,
 )
 
+if sys.version_info >= (3, 8):
+    from typing import Literal
+else:
+    from typing_extensions import Literal
+
 from ..client import OpenSearch
 from ..serializer import Serializer
 
@@ -74,14 +81,24 @@ def streaming_bulk(
     *args: Any,
     **kwargs: Any
 ) -> Generator[Tuple[bool, Any], None, None]: ...
+@overload
 def bulk(
     client: OpenSearch,
     actions: Iterable[Any],
-    stats_only: bool = ...,
+    stats_only: Literal[True] = ...,
     ignore_status: Optional[Union[int, Collection[int]]] = ...,
     *args: Any,
     **kwargs: Any
-) -> Tuple[int, Union[int, List[Any]]]: ...
+) -> Tuple[int, int]: ...
+@overload
+def bulk(
+    client: OpenSearch,
+    actions: Iterable[Any],
+    stats_only: Literal[False],
+    ignore_status: Optional[Union[int, Collection[int]]] = ...,
+    *args: Any,
+    **kwargs: Any
+) -> Tuple[int, List[Any]]: ...
 def parallel_bulk(
     client: OpenSearch,
     actions: Iterable[Any],
diff --git a/opensearchpy/transport.py b/opensearchpy/transport.py
index 3ffd097c..78c559d8 100644
--- a/opensearchpy/transport.py
+++ b/opensearchpy/transport.py
@@ -47,14 +47,14 @@ def get_host_info(node_info, host):
 
     Useful for filtering nodes (by proximity for example) or if additional
     information needs to be provided for the :class:`~opensearchpy.Connection`
-    class. By default master only nodes are filtered out since they shouldn't
+    class. By default cluster_manager only nodes are filtered out since they shouldn't
     typically be used for API operations.
 
     :arg node_info: node information from `/_cluster/nodes`
     :arg host: connection information (host, port) extracted from the node info
     """
-    # ignore master only nodes
-    if node_info.get("roles", []) == ["master"]:
+    # ignore cluster_manager only nodes
+    if node_info.get("roles", []) == ["cluster_manager"]:
         return None
     return host
 


Test patch:
diff --git a/opensearchpy/helpers/test.pyi b/opensearchpy/helpers/test.pyi
index 06721f8e..1363f821 100644
--- a/opensearchpy/helpers/test.pyi
+++ b/opensearchpy/helpers/test.pyi
@@ -30,7 +30,6 @@ from unittest import TestCase
 from ..client import OpenSearch
 
 OPENSEARCH_URL: str
-CA_CERTS: str
 
 def get_test_client(nowait: bool = ..., **kwargs: Any) -> OpenSearch: ...
 def _get_version(version_string: str) -> Tuple[int, ...]: ...
diff --git a/test_opensearchpy/test_async/test_connection.py b/test_opensearchpy/test_async/test_connection.py
index fb8ca660..14f3a3a2 100644
--- a/test_opensearchpy/test_async/test_connection.py
+++ b/test_opensearchpy/test_async/test_connection.py
@@ -40,6 +40,7 @@ from multidict import CIMultiDict
 
 from opensearchpy import AIOHttpConnection, __versionstr__
 from opensearchpy.compat import reraise_exceptions
+from opensearchpy.connection import Connection
 from opensearchpy.exceptions import ConnectionError
 
 pytestmark = pytest.mark.asyncio
@@ -246,6 +247,25 @@ class TestAIOHttpConnection:
                     == str(w[0].message)
                 )
 
+    @patch("ssl.SSLContext.load_verify_locations")
+    def test_uses_given_ca_certs(self, load_verify_locations, tmp_path):
+        path = tmp_path / "ca_certs.pem"
+        path.touch()
+        AIOHttpConnection(use_ssl=True, ca_certs=str(path))
+        load_verify_locations.assert_called_once_with(cafile=str(path))
+
+    @patch("ssl.SSLContext.load_verify_locations")
+    def test_uses_default_ca_certs(self, load_verify_locations):
+        AIOHttpConnection(use_ssl=True)
+        load_verify_locations.assert_called_once_with(
+            cafile=Connection.default_ca_certs()
+        )
+
+    @patch("ssl.SSLContext.load_verify_locations")
+    def test_uses_no_ca_certs(self, load_verify_locations):
+        AIOHttpConnection(use_ssl=True, verify_certs=False)
+        load_verify_locations.assert_not_called()
+
     @patch("opensearchpy.connection.base.logger")
     async def test_uncompressed_body_logged(self, logger):
         con = await self._get_mock_connection(connection_params={"http_compress": True})
diff --git a/test_opensearchpy/test_async/test_transport.py b/test_opensearchpy/test_async/test_transport.py
index b5634a8d..85360d41 100644
--- a/test_opensearchpy/test_async/test_transport.py
+++ b/test_opensearchpy/test_async/test_transport.py
@@ -83,7 +83,7 @@ CLUSTER_NODES = """{
       "ip" : "127.0.0.1",
       "version" : "5.0.0",
       "build_hash" : "253032b",
-      "roles" : [ "master", "data", "ingest" ],
+      "roles" : [ "cluster_manager", "data", "ingest" ],
       "http" : {
         "bound_address" : [ "[fe80::1]:9200", "[::1]:9200", "127.0.0.1:9200" ],
         "publish_address" : "1.1.1.1:123",
@@ -108,7 +108,7 @@ CLUSTER_NODES_7x_PUBLISH_HOST = """{
       "ip" : "127.0.0.1",
       "version" : "5.0.0",
       "build_hash" : "253032b",
-      "roles" : [ "master", "data", "ingest" ],
+      "roles" : [ "cluster_manager", "data", "ingest" ],
       "http" : {
         "bound_address" : [ "[fe80::1]:9200", "[::1]:9200", "127.0.0.1:9200" ],
         "publish_address" : "somehost.tld/1.1.1.1:123",
diff --git a/test_opensearchpy/test_connection.py b/test_opensearchpy/test_connection.py
index 31b8f756..f5523ee2 100644
--- a/test_opensearchpy/test_connection.py
+++ b/test_opensearchpy/test_connection.py
@@ -62,6 +62,11 @@ from opensearchpy.exceptions import (
 
 from .test_cases import SkipTest, TestCase
 
+try:
+    from pytest import MonkeyPatch
+except ImportError:  # Old version of pytest for 2.7 and 3.5
+    from _pytest.monkeypatch import MonkeyPatch
+
 
 def gzip_decompress(data):
     buf = gzip.GzipFile(fileobj=io.BytesIO(data), mode="rb")
@@ -155,6 +160,28 @@ class TestBaseConnection(TestCase):
         finally:
             os.environ.pop("ELASTIC_CLIENT_APIVERSIONING")
 
+    def test_ca_certs_ssl_cert_file(self):
+        cert = "/path/to/clientcert.pem"
+        with MonkeyPatch().context() as monkeypatch:
+            monkeypatch.setenv("SSL_CERT_FILE", cert)
+            assert Connection.default_ca_certs() == cert
+
+    def test_ca_certs_ssl_cert_dir(self):
+        cert = "/path/to/clientcert/dir"
+        with MonkeyPatch().context() as monkeypatch:
+            monkeypatch.setenv("SSL_CERT_DIR", cert)
+            assert Connection.default_ca_certs() == cert
+
+    def test_ca_certs_certifi(self):
+        import certifi
+
+        assert Connection.default_ca_certs() == certifi.where()
+
+    def test_no_ca_certs(self):
+        with MonkeyPatch().context() as monkeypatch:
+            monkeypatch.setitem(sys.modules, "certifi", None)
+            assert Connection.default_ca_certs() is None
+
 
 class TestUrllib3Connection(TestCase):
     def _get_mock_connection(self, connection_params={}, response_body=b"{}"):
@@ -394,6 +421,19 @@ class TestUrllib3Connection(TestCase):
                     str(w[0].message),
                 )
 
+    def test_uses_given_ca_certs(self):
+        path = "/path/to/my/ca_certs.pem"
+        c = Urllib3HttpConnection(use_ssl=True, ca_certs=path)
+        self.assertEqual(path, c.pool.ca_certs)
+
+    def test_uses_default_ca_certs(self):
+        c = Urllib3HttpConnection(use_ssl=True)
+        self.assertEqual(Connection.default_ca_certs(), c.pool.ca_certs)
+
+    def test_uses_no_ca_certs(self):
+        c = Urllib3HttpConnection(use_ssl=True, verify_certs=False)
+        self.assertIsNone(c.pool.ca_certs)
+
     @patch("opensearchpy.connection.base.logger")
     def test_uncompressed_body_logged(self, logger):
         con = self._get_mock_connection(connection_params={"http_compress": True})
@@ -526,6 +566,19 @@ class TestRequestsConnection(TestCase):
         self.assertEqual("GET", request.method)
         self.assertEqual(None, request.body)
 
+    def test_uses_given_ca_certs(self):
+        path = "/path/to/my/ca_certs.pem"
+        c = RequestsHttpConnection(ca_certs=path)
+        self.assertEqual(path, c.session.verify)
+
+    def test_uses_default_ca_certs(self):
+        c = RequestsHttpConnection()
+        self.assertEqual(Connection.default_ca_certs(), c.session.verify)
+
+    def test_uses_no_ca_certs(self):
+        c = RequestsHttpConnection(verify_certs=False)
+        self.assertFalse(c.session.verify)
+
     def test_nowarn_when_uses_https_if_verify_certs_is_off(self):
         with warnings.catch_warnings(record=True) as w:
             con = self._get_mock_connection(
diff --git a/test_opensearchpy/test_transport.py b/test_opensearchpy/test_transport.py
index 067b5d09..2c0892cf 100644
--- a/test_opensearchpy/test_transport.py
+++ b/test_opensearchpy/test_transport.py
@@ -71,7 +71,7 @@ CLUSTER_NODES = """{
       "ip" : "127.0.0.1",
       "version" : "5.0.0",
       "build_hash" : "253032b",
-      "roles" : [ "master", "data", "ingest" ],
+      "roles" : [ "cluster_manager", "data", "ingest" ],
       "http" : {
         "bound_address" : [ "[fe80::1]:9200", "[::1]:9200", "127.0.0.1:9200" ],
         "publish_address" : "1.1.1.1:123",
@@ -96,7 +96,7 @@ CLUSTER_NODES_7x_PUBLISH_HOST = """{
       "ip" : "127.0.0.1",
       "version" : "5.0.0",
       "build_hash" : "253032b",
-      "roles" : [ "master", "data", "ingest" ],
+      "roles" : [ "cluster_manager", "data", "ingest" ],
       "http" : {
         "bound_address" : [ "[fe80::1]:9200", "[::1]:9200", "127.0.0.1:9200" ],
         "publish_address" : "somehost.tld/1.1.1.1:123",
@@ -108,10 +108,10 @@ CLUSTER_NODES_7x_PUBLISH_HOST = """{
 
 
 class TestHostsInfoCallback(TestCase):
-    def test_master_only_nodes_are_ignored(self):
+    def test_cluster_manager_only_nodes_are_ignored(self):
         nodes = [
-            {"roles": ["master"]},
-            {"roles": ["master", "data", "ingest"]},
+            {"roles": ["cluster_manager"]},
+            {"roles": ["cluster_manager", "data", "ingest"]},
             {"roles": ["data", "ingest"]},
             {"roles": []},
             {},