Move security api from plugins to clients (#442)

* fix(security): move security api from plugins to clients

Signed-off-by: florian <[email protected]>

* chore(CHANGELOG): update CHANGELOG for the PR#442

Signed-off-by: florian <[email protected]>

---------

Signed-off-by: florian <[email protected]>
This commit is contained in:
florianvazelle
2023-07-21 13:07:20 -04:00
committed by GitHub
parent 4dba35deea
commit 5dc51d4b7f
17 changed files with 17 additions and 15 deletions
+2
View File
@@ -40,6 +40,7 @@ from .ingest import IngestClient
from .nodes import NodesClient
from .plugins import PluginsClient
from .remote import RemoteClient
from .security import SecurityClient
from .snapshot import SnapshotClient
from .tasks import TasksClient
from .utils import SKIP_IN_PATH, _bulk_body, _make_path, _normalize_hosts, query_params
@@ -197,6 +198,7 @@ class OpenSearch(object):
self.ingest = IngestClient(self)
self.nodes = NodesClient(self)
self.remote = RemoteClient(self)
self.security = SecurityClient(self)
self.snapshot = SnapshotClient(self)
self.tasks = TasksClient(self)
+2
View File
@@ -39,6 +39,7 @@ from .indices import IndicesClient
from .ingest import IngestClient
from .nodes import NodesClient
from .remote import RemoteClient
from .security import SecurityClient
from .snapshot import SnapshotClient
from .tasks import TasksClient
@@ -54,6 +55,7 @@ class OpenSearch(object):
ingest: IngestClient
nodes: NodesClient
remote: RemoteClient
security: SecurityClient
snapshot: SnapshotClient
tasks: TasksClient
def __init__(
-3
View File
@@ -12,7 +12,6 @@ import warnings
from ..plugins.alerting import AlertingClient
from ..plugins.index_management import IndexManagementClient
from ..plugins.security import SecurityClient
from .utils import NamespacedClient
@@ -26,7 +25,6 @@ class PluginsClient(NamespacedClient):
# self.anomaly_detection = AnomalyDetectionClient(client)
# self.trace_analytics = TraceAnalyticsClient(client)
self.index_management = IndexManagementClient(client)
self.security = SecurityClient(client)
self._dynamic_lookup(client)
@@ -41,7 +39,6 @@ class PluginsClient(NamespacedClient):
# "anomaly_detection",
# "trace_analytics",
"index_management",
"security",
]
for plugin in plugins:
if not hasattr(client, plugin):
-1
View File
@@ -15,5 +15,4 @@ from .utils import NamespacedClient as NamespacedClient
class PluginsClient(NamespacedClient):
alerting: Any
index_management: Any
security: Any
def __init__(self, client: OpenSearch) -> None: ...
+668
View File
@@ -0,0 +1,668 @@
# SPDX-License-Identifier: Apache-2.0
#
# The OpenSearch Contributors require contributions made to
# this file be licensed under the Apache-2.0 license or a
# compatible open source license.
#
# Modifications Copyright OpenSearch Contributors. See
# GitHub history for details.
from ..client.utils import SKIP_IN_PATH, NamespacedClient, _make_path, query_params
class SecurityClient(NamespacedClient):
@query_params()
def get_account_details(self, params=None, headers=None):
"""
Returns account details for the current user.
"""
return self.transport.perform_request(
"GET",
_make_path("_plugins", "_security", "api", "account"),
params=params,
headers=headers,
)
@query_params()
def change_password(self, current_password, password, params=None, headers=None):
"""
Changes the password for the current user.
"""
return self.transport.perform_request(
"PUT",
_make_path("_plugins", "_security", "api", "account"),
params=params,
headers=headers,
body={
"current_password": current_password,
"password": password,
},
)
@query_params()
def get_action_group(self, action_group, params=None, headers=None):
"""
Retrieves one action group.
"""
if action_group in SKIP_IN_PATH:
raise ValueError(
"Empty value passed for a required argument 'action-group'."
)
return self.transport.perform_request(
"GET",
_make_path("_plugins", "_security", "api", "actiongroups", action_group),
params=params,
headers=headers,
)
@query_params()
def get_action_groups(self, params=None, headers=None):
"""
Retrieves all action groups.
"""
return self.transport.perform_request(
"GET",
_make_path("_plugins", "_security", "api", "actiongroups"),
params=params,
headers=headers,
)
@query_params()
def delete_action_group(self, action_group, params=None, headers=None):
"""
Deletes the specified action group.
"""
if action_group in SKIP_IN_PATH:
raise ValueError(
"Empty value passed for a required argument 'action-group'."
)
return self.transport.perform_request(
"DELETE",
_make_path("_plugins", "_security", "api", "actiongroups", action_group),
params=params,
headers=headers,
)
@query_params()
def put_action_group(self, action_group, body, params=None, headers=None):
"""
Creates or replaces the specified action group.
"""
if action_group in SKIP_IN_PATH:
raise ValueError(
"Empty value passed for a required argument 'action-group'."
)
return self.transport.perform_request(
"PUT",
_make_path("_plugins", "_security", "api", "actiongroups", action_group),
params=params,
headers=headers,
body=body,
)
@query_params()
def patch_action_group(self, action_group, body, params=None, headers=None):
"""
Updates individual attributes of an action group.
"""
if action_group in SKIP_IN_PATH:
raise ValueError(
"Empty value passed for a required argument 'action-group'."
)
return self.transport.perform_request(
"PATCH",
_make_path("_plugins", "_security", "api", "actiongroups", action_group),
params=params,
headers=headers,
body=body,
)
@query_params()
def patch_action_groups(self, body, params=None, headers=None):
"""
Creates, updates, or deletes multiple action groups in a single call.
"""
return self.transport.perform_request(
"PATCH",
_make_path("_plugins", "_security", "api", "actiongroups"),
params=params,
headers=headers,
body=body,
)
@query_params()
def get_user(self, username, params=None, headers=None):
"""
Retrieves one user.
"""
if username in SKIP_IN_PATH:
raise ValueError("Empty value passed for a required argument 'username'.")
return self.transport.perform_request(
"GET",
_make_path("_plugins", "_security", "api", "internalusers", username),
params=params,
headers=headers,
)
@query_params()
def get_users(self, params=None, headers=None):
"""
Retrieves all users.
"""
return self.transport.perform_request(
"GET",
_make_path("_plugins", "_security", "api", "internalusers"),
params=params,
headers=headers,
)
@query_params()
def delete_user(self, username, params=None, headers=None):
"""
Deletes the specified user.
"""
if username in SKIP_IN_PATH:
raise ValueError("Empty value passed for a required argument 'username'.")
return self.transport.perform_request(
"DELETE",
_make_path("_plugins", "_security", "api", "internalusers", username),
params=params,
headers=headers,
)
@query_params()
def put_user(self, username, body, params=None, headers=None):
"""
Creates or replaces the specified user.
"""
if username in SKIP_IN_PATH:
raise ValueError("Empty value passed for a required argument 'username'.")
return self.transport.perform_request(
"PUT",
_make_path("_plugins", "_security", "api", "internalusers", username),
params=params,
headers=headers,
body=body,
)
@query_params()
def patch_user(self, username, body, params=None, headers=None):
"""
Updates individual attributes of an internal user.
"""
if username in SKIP_IN_PATH:
raise ValueError("Empty value passed for a required argument 'username'.")
return self.transport.perform_request(
"PATCH",
_make_path("_plugins", "_security", "api", "internalusers", username),
params=params,
headers=headers,
body=body,
)
@query_params()
def patch_users(self, body, params=None, headers=None):
"""
Creates, updates, or deletes multiple internal users in a single call.
"""
return self.transport.perform_request(
"PATCH",
_make_path("_plugins", "_security", "api", "internalusers"),
params=params,
headers=headers,
body=body,
)
@query_params()
def get_role(self, role, params=None, headers=None):
"""
Retrieves one role.
"""
if role in SKIP_IN_PATH:
raise ValueError("Empty value passed for a required argument 'role'.")
return self.transport.perform_request(
"GET",
_make_path("_plugins", "_security", "api", "roles", role),
params=params,
headers=headers,
)
@query_params()
def get_roles(self, params=None, headers=None):
"""
Retrieves all roles.
"""
return self.transport.perform_request(
"GET",
_make_path("_plugins", "_security", "api", "roles"),
params=params,
headers=headers,
)
@query_params()
def delete_role(self, role, params=None, headers=None):
"""
Deletes the specified role.
"""
if role in SKIP_IN_PATH:
raise ValueError("Empty value passed for a required argument 'role'.")
return self.transport.perform_request(
"DELETE",
_make_path("_plugins", "_security", "api", "roles", role),
params=params,
headers=headers,
)
@query_params()
def put_role(self, role, body, params=None, headers=None):
"""
Creates or replaces the specified role.
"""
if role in SKIP_IN_PATH:
raise ValueError("Empty value passed for a required argument 'role'.")
return self.transport.perform_request(
"PUT",
_make_path("_plugins", "_security", "api", "roles", role),
params=params,
headers=headers,
body=body,
)
@query_params()
def patch_role(self, role, body, params=None, headers=None):
"""
Updates individual attributes of a role.
"""
if role in SKIP_IN_PATH:
raise ValueError("Empty value passed for a required argument 'role'.")
return self.transport.perform_request(
"PATCH",
_make_path("_plugins", "_security", "api", "roles", role),
params=params,
headers=headers,
body=body,
)
@query_params()
def patch_roles(self, body, params=None, headers=None):
"""
Creates, updates, or deletes multiple roles in a single call.
"""
return self.transport.perform_request(
"PATCH",
_make_path("_plugins", "_security", "api", "roles"),
params=params,
headers=headers,
body=body,
)
@query_params()
def get_role_mapping(self, role, params=None, headers=None):
"""
Retrieves one role mapping.
"""
if role in SKIP_IN_PATH:
raise ValueError("Empty value passed for a required argument 'role'.")
return self.transport.perform_request(
"GET",
_make_path("_plugins", "_security", "api", "rolesmapping", role),
params=params,
headers=headers,
)
@query_params()
def get_role_mappings(self, params=None, headers=None):
"""
Retrieves all role mappings.
"""
return self.transport.perform_request(
"GET",
_make_path("_plugins", "_security", "api", "rolesmapping"),
params=params,
headers=headers,
)
@query_params()
def delete_role_mappings(self, role, params=None, headers=None):
"""
Deletes the specified role mapping.
"""
if role in SKIP_IN_PATH:
raise ValueError("Empty value passed for a required argument 'role'.")
return self.transport.perform_request(
"DELETE",
_make_path("_plugins", "_security", "api", "rolesmapping", role),
params=params,
headers=headers,
)
@query_params()
def put_role_mappings(self, role, body, params=None, headers=None):
"""
Creates or replaces the specified role mapping.
"""
if role in SKIP_IN_PATH:
raise ValueError("Empty value passed for a required argument 'role'.")
return self.transport.perform_request(
"PUT",
_make_path("_plugins", "_security", "api", "rolesmapping", role),
params=params,
headers=headers,
body=body,
)
@query_params()
def patch_role_mapping(self, role, body, params=None, headers=None):
"""
Updates individual attributes of a role mapping.
"""
if role in SKIP_IN_PATH:
raise ValueError("Empty value passed for a required argument 'role'.")
return self.transport.perform_request(
"PATCH",
_make_path("_plugins", "_security", "api", "rolesmapping", role),
params=params,
headers=headers,
body=body,
)
@query_params()
def patch_role_mappings(self, body, params=None, headers=None):
"""
Creates or updates multiple role mappings in a single call.
"""
return self.transport.perform_request(
"PATCH",
_make_path("_plugins", "_security", "api", "rolesmapping"),
params=params,
headers=headers,
body=body,
)
@query_params()
def get_tenant(self, tenant, params=None, headers=None):
"""
Retrieves one tenant.
"""
if tenant in SKIP_IN_PATH:
raise ValueError("Empty value passed for a required argument 'tenant'.")
return self.transport.perform_request(
"GET",
_make_path("_plugins", "_security", "api", "tenants", tenant),
params=params,
headers=headers,
)
@query_params()
def get_tenants(self, params=None, headers=None):
"""
Retrieves all tenants.
"""
return self.transport.perform_request(
"GET",
_make_path("_plugins", "_security", "api", "tenants"),
params=params,
headers=headers,
)
@query_params()
def delete_tenant(self, tenant, params=None, headers=None):
"""
Deletes the specified tenant.
"""
if tenant in SKIP_IN_PATH:
raise ValueError("Empty value passed for a required argument 'tenant'.")
return self.transport.perform_request(
"DELETE",
_make_path("_plugins", "_security", "api", "tenants", tenant),
params=params,
headers=headers,
)
@query_params()
def put_tenant(self, tenant, body, params=None, headers=None):
"""
Creates or replaces the specified tenant.
"""
if tenant in SKIP_IN_PATH:
raise ValueError("Empty value passed for a required argument 'tenant'.")
return self.transport.perform_request(
"PUT",
_make_path("_plugins", "_security", "api", "tenants", tenant),
params=params,
headers=headers,
body=body,
)
@query_params()
def patch_tenant(self, tenant, body, params=None, headers=None):
"""
Add, delete, or modify a single tenant.
"""
if tenant in SKIP_IN_PATH:
raise ValueError("Empty value passed for a required argument 'tenant'.")
return self.transport.perform_request(
"PATCH",
_make_path("_plugins", "_security", "api", "tenants", tenant),
params=params,
headers=headers,
body=body,
)
@query_params()
def patch_tenants(self, body, params=None, headers=None):
"""
Add, delete, or modify multiple tenants in a single call.
"""
return self.transport.perform_request(
"PATCH",
_make_path("_plugins", "_security", "api", "tenants"),
params=params,
headers=headers,
body=body,
)
@query_params()
def get_configuration(self, params=None, headers=None):
"""
Retrieves the current Security plugin configuration in JSON format.
"""
return self.transport.perform_request(
"GET",
_make_path("_plugins", "_security", "api", "securityconfig"),
params=params,
headers=headers,
)
@query_params()
def put_configuration(self, body, params=None, headers=None):
"""
Retrieves the current Security plugin configuration in JSON format.
"""
return self.transport.perform_request(
"PUT",
_make_path("_plugins", "_security", "api", "securityconfig", "config"),
params=params,
headers=headers,
body=body,
)
@query_params()
def patch_configuration(self, body, params=None, headers=None):
"""
Updates the existing configuration using the REST API.
"""
return self.transport.perform_request(
"PATCH",
_make_path("_plugins", "_security", "api", "securityconfig"),
params=params,
headers=headers,
body=body,
)
@query_params()
def get_distinguished_names(self, cluster_name=None, params=None, headers=None):
"""
Retrieves all distinguished names in the allow list.
"""
return self.transport.perform_request(
"GET",
_make_path("_plugins", "_security", "api", "nodesdn", cluster_name),
params=params,
headers=headers,
)
@query_params()
def put_distinguished_names(self, cluster_name, body, params=None, headers=None):
"""
Adds or updates the specified distinguished names in the cluster's or node's allow list.
"""
if cluster_name in SKIP_IN_PATH:
raise ValueError(
"Empty value passed for a required argument 'cluster-name'."
)
return self.transport.perform_request(
"PUT",
_make_path("_plugins", "_security", "api", "nodesdn", cluster_name),
params=params,
headers=headers,
body=body,
)
@query_params()
def delete_distinguished_names(self, cluster_name, params=None, headers=None):
"""
Deletes all distinguished names in the specified cluster's or node's allow list.
"""
if cluster_name in SKIP_IN_PATH:
raise ValueError(
"Empty value passed for a required argument 'cluster-name'."
)
return self.transport.perform_request(
"DELETE",
_make_path("_plugins", "_security", "api", "nodesdn", cluster_name),
params=params,
headers=headers,
)
@query_params()
def get_certificates(self, params=None, headers=None):
"""
Retrieves the cluster's security certificates.
"""
return self.transport.perform_request(
"GET",
_make_path("_plugins", "_security", "api", "ssl", "certs"),
params=params,
headers=headers,
)
@query_params()
def reload_transport_certificates(self, params=None, headers=None):
"""
Reloads SSL certificates that are about to expire without restarting the OpenSearch node.
"""
return self.transport.perform_request(
"PUT",
_make_path(
"_opendistro", "_security", "api", "ssl", "transport", "reloadcerts"
),
params=params,
headers=headers,
)
@query_params()
def reload_http_certificates(self, params=None, headers=None):
"""
Reloads SSL certificates that are about to expire without restarting the OpenSearch node.
"""
return self.transport.perform_request(
"PUT",
_make_path("_opendistro", "_security", "api", "ssl", "http", "reloadcerts"),
params=params,
headers=headers,
)
@query_params()
def flush_cache(self, params=None, headers=None):
"""
Flushes the Security plugin user, authentication, and authorization cache.
"""
return self.transport.perform_request(
"DELETE",
_make_path("_plugins", "_security", "api", "cache"),
params=params,
headers=headers,
)
@query_params()
def health_check(self, params=None, headers=None):
"""
Checks to see if the Security plugin is up and running.
"""
return self.transport.perform_request(
"GET",
_make_path("_plugins", "_security", "health"),
params=params,
headers=headers,
)
@query_params()
def get_audit_configuration(self, params=None, headers=None):
"""
A GET call retrieves the audit configuration.
"""
return self.transport.perform_request(
"GET",
_make_path("_opendistro", "_security", "api", "audit"),
params=params,
headers=headers,
)
@query_params()
def put_audit_configuration(self, body, params=None, headers=None):
"""
A PUT call updates the audit configuration.
"""
return self.transport.perform_request(
"PUT",
_make_path("_opendistro", "_security", "api", "audit", "config"),
params=params,
headers=headers,
body=body,
)
@query_params()
def patch_audit_configuration(self, body, params=None, headers=None):
"""
A PATCH call is used to update specified fields in the audit configuration.
"""
return self.transport.perform_request(
"PATCH",
_make_path("_opendistro", "_security", "api", "audit"),
params=params,
headers=headers,
body=body,
)
+207
View File
@@ -0,0 +1,207 @@
# SPDX-License-Identifier: Apache-2.0
#
# The OpenSearch Contributors require contributions made to
# this file be licensed under the Apache-2.0 license or a
# compatible open source license.
#
# Modifications Copyright OpenSearch Contributors. See
# GitHub history for details.
from typing import Any, Union
from ..client.utils import NamespacedClient as NamespacedClient
class SecurityClient(NamespacedClient):
def get_account_details(
self, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def change_password(
self,
current_password: Any,
current_papasswordssword: Any,
params: Union[Any, None] = ...,
headers: Union[Any, None] = ...,
) -> Union[bool, Any]: ...
def get_action_group(
self,
action_group: Any,
params: Union[Any, None] = ...,
headers: Union[Any, None] = ...,
) -> Union[bool, Any]: ...
def get_action_groups(
self, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def delete_action_group(
self,
action_group: Any,
params: Union[Any, None] = ...,
headers: Union[Any, None] = ...,
) -> Union[bool, Any]: ...
def put_action_group(
self,
action_group: Any,
body: Any,
params: Union[Any, None] = ...,
headers: Union[Any, None] = ...,
) -> Union[bool, Any]: ...
def patch_action_group(
self,
action_group: Any,
body: Any,
params: Union[Any, None] = ...,
headers: Union[Any, None] = ...,
) -> Union[bool, Any]: ...
def patch_action_groups(
self, body: Any, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def get_user(
self,
username: Any,
params: Union[Any, None] = ...,
headers: Union[Any, None] = ...,
) -> Union[bool, Any]: ...
def get_users(
self, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def delete_user(
self,
username: Any,
params: Union[Any, None] = ...,
headers: Union[Any, None] = ...,
) -> Union[bool, Any]: ...
def put_user(
self,
username: Any,
body: Any,
params: Union[Any, None] = ...,
headers: Union[Any, None] = ...,
) -> Union[bool, Any]: ...
def patch_user(
self,
username: Any,
body: Any,
params: Union[Any, None] = ...,
headers: Union[Any, None] = ...,
) -> Union[bool, Any]: ...
def patch_users(
self, body: Any, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def get_role(
self, role: Any, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def get_roles(
self, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def delete_role(
self, role: Any, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def put_role(
self, role: Any, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def patch_role(
self, role: Any, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def patch_roles(
self, body: Any, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def get_role_mapping(
self, role: Any, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def get_role_mappings(
self, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def delete_role_mappings(
self, role: Any, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def put_role_mappings(
self, role: Any, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def patch_role_mapping(
self, role: Any, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def patch_role_mappings(
self, body: Any, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def get_tenant(
self,
tenant: Any,
params: Union[Any, None] = ...,
headers: Union[Any, None] = ...,
) -> Union[bool, Any]: ...
def get_tenants(
self, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def delete_tenant(
self,
tenant: Any,
params: Union[Any, None] = ...,
headers: Union[Any, None] = ...,
) -> Union[bool, Any]: ...
def put_tenant(
self,
tenant: Any,
body: Any,
params: Union[Any, None] = ...,
headers: Union[Any, None] = ...,
) -> Union[bool, Any]: ...
def patch_tenant(
self,
tenant: Any,
body: Any,
params: Union[Any, None] = ...,
headers: Union[Any, None] = ...,
) -> Union[bool, Any]: ...
def patch_tenants(
self, body: Any, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def get_configuration(
self, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def put_configuration(
self, body: Any, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def patch_configuration(
self, body: Any, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def get_distinguished_names(
self,
cluster_name: Union[Any, None] = ...,
params: Union[Any, None] = ...,
headers: Union[Any, None] = ...,
) -> Union[bool, Any]: ...
def put_distinguished_names(
self,
cluster_name: Any,
body: Any,
params: Union[Any, None] = ...,
headers: Union[Any, None] = ...,
) -> Union[bool, Any]: ...
def delete_distinguished_names(
self,
cluster_name: Any,
params: Union[Any, None] = ...,
headers: Union[Any, None] = ...,
) -> Union[bool, Any]: ...
def get_certificates(
self, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def reload_transport_certificates(
self, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def reload_http_certificates(
self, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def flush_cache(
self, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def health_check(
self, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def get_audit_configuration(
self, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def put_audit_configuration(
self, body: Any, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...
def patch_audit_configuration(
self, body: Any, params: Union[Any, None] = ..., headers: Union[Any, None] = ...
) -> Union[bool, Any]: ...