OXIESEC PANEL
- Current Dir:
/
/
opt
/
alt
/
python37
/
lib
/
python3.7
/
site-packages
/
elasticsearch
/
_sync
/
client
Server IP: 2a02:4780:11:1084:0:327f:3464:10
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
03/16/2023 12:55:59 PM
rwxr-xr-x
📄
__init__.py
206.77 KB
03/16/2023 12:55:59 PM
rw-r--r--
📁
__pycache__
-
03/16/2023 12:55:59 PM
rwxr-xr-x
📄
_base.py
13.89 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
async_search.py
26.46 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
autoscaling.py
6.58 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
cat.py
116.04 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
ccr.py
31.72 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
cluster.py
40.32 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
dangling_indices.py
6.31 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
enrich.py
8.09 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
eql.py
11.99 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
features.py
3.2 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
fleet.py
29.73 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
graph.py
3.73 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
ilm.py
21.01 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
indices.py
168.2 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
ingest.py
12.8 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
license.py
10.83 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
logstash.py
5.13 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
migration.py
4.71 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
ml.py
205.98 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
monitoring.py
3.33 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
nodes.py
21.02 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
rollup.py
18.11 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
searchable_snapshots.py
10.64 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
security.py
108.8 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
shutdown.py
10.32 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
slm.py
14.28 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
snapshot.py
32.88 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
sql.py
15.11 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
ssl.py
2.08 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
tasks.py
8.61 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
text_structure.py
8.6 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
transform.py
30.6 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
utils.py
15.49 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
watcher.py
22.92 KB
03/16/2023 12:55:59 PM
rw-r--r--
📄
xpack.py
4.17 KB
03/16/2023 12:55:59 PM
rw-r--r--
Editing: snapshot.py
Close
# Licensed to Elasticsearch B.V. under one or more contributor # license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright # ownership. Elasticsearch B.V. licenses this file to you under # the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. import typing as t from elastic_transport import ObjectApiResponse from ._base import NamespacedClient from .utils import SKIP_IN_PATH, _quote, _rewrite_parameters class SnapshotClient(NamespacedClient): @_rewrite_parameters() def cleanup_repository( self, *, name: str, error_trace: t.Optional[bool] = None, filter_path: t.Optional[ t.Union[str, t.Union[t.List[str], t.Tuple[str, ...]]] ] = None, human: t.Optional[bool] = None, master_timeout: t.Optional[ t.Union["t.Literal[-1]", "t.Literal[0]", str] ] = None, pretty: t.Optional[bool] = None, timeout: t.Optional[t.Union["t.Literal[-1]", "t.Literal[0]", str]] = None, ) -> ObjectApiResponse[t.Any]: """ Removes stale data from repository. `<https://www.elastic.co/guide/en/elasticsearch/reference/8.6/clean-up-snapshot-repo-api.html>`_ :param name: Snapshot repository to clean up. :param master_timeout: Period to wait for a connection to the master node. :param timeout: Period to wait for a response. """ if name in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'name'") __path = f"/_snapshot/{_quote(name)}/_cleanup" __query: t.Dict[str, t.Any] = {} if error_trace is not None: __query["error_trace"] = error_trace if filter_path is not None: __query["filter_path"] = filter_path if human is not None: __query["human"] = human if master_timeout is not None: __query["master_timeout"] = master_timeout if pretty is not None: __query["pretty"] = pretty if timeout is not None: __query["timeout"] = timeout __headers = {"accept": "application/json"} return self.perform_request( # type: ignore[return-value] "POST", __path, params=__query, headers=__headers ) @_rewrite_parameters( body_fields=True, ) def clone( self, *, repository: str, snapshot: str, target_snapshot: str, indices: str, error_trace: t.Optional[bool] = None, filter_path: t.Optional[ t.Union[str, t.Union[t.List[str], t.Tuple[str, ...]]] ] = None, human: t.Optional[bool] = None, master_timeout: t.Optional[ t.Union["t.Literal[-1]", "t.Literal[0]", str] ] = None, pretty: t.Optional[bool] = None, timeout: t.Optional[t.Union["t.Literal[-1]", "t.Literal[0]", str]] = None, ) -> ObjectApiResponse[t.Any]: """ Clones indices from one snapshot into another snapshot in the same repository. `<https://www.elastic.co/guide/en/elasticsearch/reference/8.6/modules-snapshots.html>`_ :param repository: A repository name :param snapshot: The name of the snapshot to clone from :param target_snapshot: The name of the cloned snapshot to create :param indices: :param master_timeout: Explicit operation timeout for connection to master node :param timeout: """ if repository in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'repository'") if snapshot in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'snapshot'") if target_snapshot in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'target_snapshot'") if indices is None: raise ValueError("Empty value passed for parameter 'indices'") __path = f"/_snapshot/{_quote(repository)}/{_quote(snapshot)}/_clone/{_quote(target_snapshot)}" __body: t.Dict[str, t.Any] = {} __query: t.Dict[str, t.Any] = {} if indices is not None: __body["indices"] = indices if error_trace is not None: __query["error_trace"] = error_trace if filter_path is not None: __query["filter_path"] = filter_path if human is not None: __query["human"] = human if master_timeout is not None: __query["master_timeout"] = master_timeout if pretty is not None: __query["pretty"] = pretty if timeout is not None: __query["timeout"] = timeout __headers = {"accept": "application/json", "content-type": "application/json"} return self.perform_request( # type: ignore[return-value] "PUT", __path, params=__query, headers=__headers, body=__body ) @_rewrite_parameters( body_fields=True, ) def create( self, *, repository: str, snapshot: str, error_trace: t.Optional[bool] = None, feature_states: t.Optional[t.Union[t.List[str], t.Tuple[str, ...]]] = None, filter_path: t.Optional[ t.Union[str, t.Union[t.List[str], t.Tuple[str, ...]]] ] = None, human: t.Optional[bool] = None, ignore_unavailable: t.Optional[bool] = None, include_global_state: t.Optional[bool] = None, indices: t.Optional[ t.Union[str, t.Union[t.List[str], t.Tuple[str, ...]]] ] = None, master_timeout: t.Optional[ t.Union["t.Literal[-1]", "t.Literal[0]", str] ] = None, metadata: t.Optional[t.Mapping[str, t.Any]] = None, partial: t.Optional[bool] = None, pretty: t.Optional[bool] = None, wait_for_completion: t.Optional[bool] = None, ) -> ObjectApiResponse[t.Any]: """ Creates a snapshot in a repository. `<https://www.elastic.co/guide/en/elasticsearch/reference/8.6/modules-snapshots.html>`_ :param repository: Repository for the snapshot. :param snapshot: Name of the snapshot. Must be unique in the repository. :param feature_states: Feature states to include in the snapshot. Each feature state includes one or more system indices containing related data. You can view a list of eligible features using the get features API. If `include_global_state` is `true`, all current feature states are included by default. If `include_global_state` is `false`, no feature states are included by default. :param ignore_unavailable: If `true`, the request ignores data streams and indices in `indices` that are missing or closed. If `false`, the request returns an error for any data stream or index that is missing or closed. :param include_global_state: If `true`, the current cluster state is included in the snapshot. The cluster state includes persistent cluster settings, composable index templates, legacy index templates, ingest pipelines, and ILM policies. It also includes data stored in system indices, such as Watches and task records (configurable via `feature_states`). :param indices: Data streams and indices to include in the snapshot. Supports multi-target syntax. Includes all data streams and indices by default. :param master_timeout: Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error. :param metadata: Optional metadata for the snapshot. May have any contents. Must be less than 1024 bytes. This map is not automatically generated by Elasticsearch. :param partial: If `true`, allows restoring a partial snapshot of indices with unavailable shards. Only shards that were successfully included in the snapshot will be restored. All missing shards will be recreated as empty. If `false`, the entire restore operation will fail if one or more indices included in the snapshot do not have all primary shards available. :param wait_for_completion: If `true`, the request returns a response when the snapshot is complete. If `false`, the request returns a response when the snapshot initializes. """ if repository in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'repository'") if snapshot in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'snapshot'") __path = f"/_snapshot/{_quote(repository)}/{_quote(snapshot)}" __query: t.Dict[str, t.Any] = {} __body: t.Dict[str, t.Any] = {} if error_trace is not None: __query["error_trace"] = error_trace if feature_states is not None: __body["feature_states"] = feature_states if filter_path is not None: __query["filter_path"] = filter_path if human is not None: __query["human"] = human if ignore_unavailable is not None: __body["ignore_unavailable"] = ignore_unavailable if include_global_state is not None: __body["include_global_state"] = include_global_state if indices is not None: __body["indices"] = indices if master_timeout is not None: __query["master_timeout"] = master_timeout if metadata is not None: __body["metadata"] = metadata if partial is not None: __body["partial"] = partial if pretty is not None: __query["pretty"] = pretty if wait_for_completion is not None: __query["wait_for_completion"] = wait_for_completion if not __body: __body = None # type: ignore[assignment] __headers = {"accept": "application/json"} if __body is not None: __headers["content-type"] = "application/json" return self.perform_request( # type: ignore[return-value] "PUT", __path, params=__query, headers=__headers, body=__body ) @_rewrite_parameters( body_fields=True, ) def create_repository( self, *, name: str, settings: t.Mapping[str, t.Any], type: str, error_trace: t.Optional[bool] = None, filter_path: t.Optional[ t.Union[str, t.Union[t.List[str], t.Tuple[str, ...]]] ] = None, human: t.Optional[bool] = None, master_timeout: t.Optional[ t.Union["t.Literal[-1]", "t.Literal[0]", str] ] = None, pretty: t.Optional[bool] = None, repository: t.Optional[t.Mapping[str, t.Any]] = None, timeout: t.Optional[t.Union["t.Literal[-1]", "t.Literal[0]", str]] = None, verify: t.Optional[bool] = None, ) -> ObjectApiResponse[t.Any]: """ Creates a repository. `<https://www.elastic.co/guide/en/elasticsearch/reference/8.6/modules-snapshots.html>`_ :param name: A repository name :param settings: :param type: :param master_timeout: Explicit operation timeout for connection to master node :param repository: :param timeout: Explicit operation timeout :param verify: Whether to verify the repository after creation """ if name in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'name'") if settings is None: raise ValueError("Empty value passed for parameter 'settings'") if type is None: raise ValueError("Empty value passed for parameter 'type'") __path = f"/_snapshot/{_quote(name)}" __body: t.Dict[str, t.Any] = {} __query: t.Dict[str, t.Any] = {} if settings is not None: __body["settings"] = settings if type is not None: __body["type"] = type if error_trace is not None: __query["error_trace"] = error_trace if filter_path is not None: __query["filter_path"] = filter_path if human is not None: __query["human"] = human if master_timeout is not None: __query["master_timeout"] = master_timeout if pretty is not None: __query["pretty"] = pretty if repository is not None: __body["repository"] = repository if timeout is not None: __query["timeout"] = timeout if verify is not None: __query["verify"] = verify __headers = {"accept": "application/json", "content-type": "application/json"} return self.perform_request( # type: ignore[return-value] "PUT", __path, params=__query, headers=__headers, body=__body ) @_rewrite_parameters() def delete( self, *, repository: str, snapshot: str, error_trace: t.Optional[bool] = None, filter_path: t.Optional[ t.Union[str, t.Union[t.List[str], t.Tuple[str, ...]]] ] = None, human: t.Optional[bool] = None, master_timeout: t.Optional[ t.Union["t.Literal[-1]", "t.Literal[0]", str] ] = None, pretty: t.Optional[bool] = None, ) -> ObjectApiResponse[t.Any]: """ Deletes one or more snapshots. `<https://www.elastic.co/guide/en/elasticsearch/reference/8.6/modules-snapshots.html>`_ :param repository: A repository name :param snapshot: A comma-separated list of snapshot names :param master_timeout: Explicit operation timeout for connection to master node """ if repository in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'repository'") if snapshot in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'snapshot'") __path = f"/_snapshot/{_quote(repository)}/{_quote(snapshot)}" __query: t.Dict[str, t.Any] = {} if error_trace is not None: __query["error_trace"] = error_trace if filter_path is not None: __query["filter_path"] = filter_path if human is not None: __query["human"] = human if master_timeout is not None: __query["master_timeout"] = master_timeout if pretty is not None: __query["pretty"] = pretty __headers = {"accept": "application/json"} return self.perform_request( # type: ignore[return-value] "DELETE", __path, params=__query, headers=__headers ) @_rewrite_parameters() def delete_repository( self, *, name: t.Union[str, t.Union[t.List[str], t.Tuple[str, ...]]], error_trace: t.Optional[bool] = None, filter_path: t.Optional[ t.Union[str, t.Union[t.List[str], t.Tuple[str, ...]]] ] = None, human: t.Optional[bool] = None, master_timeout: t.Optional[ t.Union["t.Literal[-1]", "t.Literal[0]", str] ] = None, pretty: t.Optional[bool] = None, timeout: t.Optional[t.Union["t.Literal[-1]", "t.Literal[0]", str]] = None, ) -> ObjectApiResponse[t.Any]: """ Deletes a repository. `<https://www.elastic.co/guide/en/elasticsearch/reference/8.6/modules-snapshots.html>`_ :param name: Name of the snapshot repository to unregister. Wildcard (`*`) patterns are supported. :param master_timeout: Explicit operation timeout for connection to master node :param timeout: Explicit operation timeout """ if name in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'name'") __path = f"/_snapshot/{_quote(name)}" __query: t.Dict[str, t.Any] = {} if error_trace is not None: __query["error_trace"] = error_trace if filter_path is not None: __query["filter_path"] = filter_path if human is not None: __query["human"] = human if master_timeout is not None: __query["master_timeout"] = master_timeout if pretty is not None: __query["pretty"] = pretty if timeout is not None: __query["timeout"] = timeout __headers = {"accept": "application/json"} return self.perform_request( # type: ignore[return-value] "DELETE", __path, params=__query, headers=__headers ) @_rewrite_parameters() def get( self, *, repository: str, snapshot: t.Union[str, t.Union[t.List[str], t.Tuple[str, ...]]], after: t.Optional[str] = None, error_trace: t.Optional[bool] = None, filter_path: t.Optional[ t.Union[str, t.Union[t.List[str], t.Tuple[str, ...]]] ] = None, from_sort_value: t.Optional[str] = None, human: t.Optional[bool] = None, ignore_unavailable: t.Optional[bool] = None, include_repository: t.Optional[bool] = None, index_details: t.Optional[bool] = None, index_names: t.Optional[bool] = None, master_timeout: t.Optional[ t.Union["t.Literal[-1]", "t.Literal[0]", str] ] = None, offset: t.Optional[int] = None, order: t.Optional[t.Union["t.Literal['asc', 'desc']", str]] = None, pretty: t.Optional[bool] = None, size: t.Optional[int] = None, slm_policy_filter: t.Optional[str] = None, sort: t.Optional[ t.Union[ "t.Literal['duration', 'failed_shard_count', 'index_count', 'name', 'repository', 'shard_count', 'start_time']", str, ] ] = None, verbose: t.Optional[bool] = None, ) -> ObjectApiResponse[t.Any]: """ Returns information about a snapshot. `<https://www.elastic.co/guide/en/elasticsearch/reference/8.6/modules-snapshots.html>`_ :param repository: Comma-separated list of snapshot repository names used to limit the request. Wildcard (*) expressions are supported. :param snapshot: Comma-separated list of snapshot names to retrieve. Also accepts wildcards (*). - To get information about all snapshots in a registered repository, use a wildcard (*) or _all. - To get information about any snapshots that are currently running, use _current. :param after: Offset identifier to start pagination from as returned by the next field in the response body. :param from_sort_value: Value of the current sort column at which to start retrieval. Can either be a string snapshot- or repository name when sorting by snapshot or repository name, a millisecond time value or a number when sorting by index- or shard count. :param ignore_unavailable: If false, the request returns an error for any snapshots that are unavailable. :param include_repository: If true, returns the repository name in each snapshot. :param index_details: If true, returns additional information about each index in the snapshot comprising the number of shards in the index, the total size of the index in bytes, and the maximum number of segments per shard in the index. Defaults to false, meaning that this information is omitted. :param index_names: If true, returns the name of each index in each snapshot. :param master_timeout: Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error. :param offset: Numeric offset to start pagination from based on the snapshots matching this request. Using a non-zero value for this parameter is mutually exclusive with using the after parameter. Defaults to 0. :param order: Sort order. Valid values are asc for ascending and desc for descending order. Defaults to asc, meaning ascending order. :param size: Maximum number of snapshots to return. Defaults to 0 which means return all that match the request without limit. :param slm_policy_filter: Filter snapshots by a comma-separated list of SLM policy names that snapshots belong to. Also accepts wildcards (*) and combinations of wildcards followed by exclude patterns starting with -. To include snapshots not created by an SLM policy you can use the special pattern _none that will match all snapshots without an SLM policy. :param sort: Allows setting a sort order for the result. Defaults to start_time, i.e. sorting by snapshot start time stamp. :param verbose: If true, returns additional information about each snapshot such as the version of Elasticsearch which took the snapshot, the start and end times of the snapshot, and the number of shards snapshotted. """ if repository in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'repository'") if snapshot in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'snapshot'") __path = f"/_snapshot/{_quote(repository)}/{_quote(snapshot)}" __query: t.Dict[str, t.Any] = {} if after is not None: __query["after"] = after if error_trace is not None: __query["error_trace"] = error_trace if filter_path is not None: __query["filter_path"] = filter_path if from_sort_value is not None: __query["from_sort_value"] = from_sort_value if human is not None: __query["human"] = human if ignore_unavailable is not None: __query["ignore_unavailable"] = ignore_unavailable if include_repository is not None: __query["include_repository"] = include_repository if index_details is not None: __query["index_details"] = index_details if index_names is not None: __query["index_names"] = index_names if master_timeout is not None: __query["master_timeout"] = master_timeout if offset is not None: __query["offset"] = offset if order is not None: __query["order"] = order if pretty is not None: __query["pretty"] = pretty if size is not None: __query["size"] = size if slm_policy_filter is not None: __query["slm_policy_filter"] = slm_policy_filter if sort is not None: __query["sort"] = sort if verbose is not None: __query["verbose"] = verbose __headers = {"accept": "application/json"} return self.perform_request( # type: ignore[return-value] "GET", __path, params=__query, headers=__headers ) @_rewrite_parameters() def get_repository( self, *, name: t.Optional[t.Union[str, t.Union[t.List[str], t.Tuple[str, ...]]]] = None, error_trace: t.Optional[bool] = None, filter_path: t.Optional[ t.Union[str, t.Union[t.List[str], t.Tuple[str, ...]]] ] = None, human: t.Optional[bool] = None, local: t.Optional[bool] = None, master_timeout: t.Optional[ t.Union["t.Literal[-1]", "t.Literal[0]", str] ] = None, pretty: t.Optional[bool] = None, ) -> ObjectApiResponse[t.Any]: """ Returns information about a repository. `<https://www.elastic.co/guide/en/elasticsearch/reference/8.6/modules-snapshots.html>`_ :param name: A comma-separated list of repository names :param local: Return local information, do not retrieve the state from master node (default: false) :param master_timeout: Explicit operation timeout for connection to master node """ if name not in SKIP_IN_PATH: __path = f"/_snapshot/{_quote(name)}" else: __path = "/_snapshot" __query: t.Dict[str, t.Any] = {} if error_trace is not None: __query["error_trace"] = error_trace if filter_path is not None: __query["filter_path"] = filter_path if human is not None: __query["human"] = human if local is not None: __query["local"] = local if master_timeout is not None: __query["master_timeout"] = master_timeout if pretty is not None: __query["pretty"] = pretty __headers = {"accept": "application/json"} return self.perform_request( # type: ignore[return-value] "GET", __path, params=__query, headers=__headers ) @_rewrite_parameters( body_fields=True, ) def restore( self, *, repository: str, snapshot: str, error_trace: t.Optional[bool] = None, filter_path: t.Optional[ t.Union[str, t.Union[t.List[str], t.Tuple[str, ...]]] ] = None, human: t.Optional[bool] = None, ignore_index_settings: t.Optional[ t.Union[t.List[str], t.Tuple[str, ...]] ] = None, ignore_unavailable: t.Optional[bool] = None, include_aliases: t.Optional[bool] = None, include_global_state: t.Optional[bool] = None, index_settings: t.Optional[t.Mapping[str, t.Any]] = None, indices: t.Optional[ t.Union[str, t.Union[t.List[str], t.Tuple[str, ...]]] ] = None, master_timeout: t.Optional[ t.Union["t.Literal[-1]", "t.Literal[0]", str] ] = None, partial: t.Optional[bool] = None, pretty: t.Optional[bool] = None, rename_pattern: t.Optional[str] = None, rename_replacement: t.Optional[str] = None, wait_for_completion: t.Optional[bool] = None, ) -> ObjectApiResponse[t.Any]: """ Restores a snapshot. `<https://www.elastic.co/guide/en/elasticsearch/reference/8.6/modules-snapshots.html>`_ :param repository: A repository name :param snapshot: A snapshot name :param ignore_index_settings: :param ignore_unavailable: :param include_aliases: :param include_global_state: :param index_settings: :param indices: :param master_timeout: Explicit operation timeout for connection to master node :param partial: :param rename_pattern: :param rename_replacement: :param wait_for_completion: Should this request wait until the operation has completed before returning """ if repository in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'repository'") if snapshot in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'snapshot'") __path = f"/_snapshot/{_quote(repository)}/{_quote(snapshot)}/_restore" __query: t.Dict[str, t.Any] = {} __body: t.Dict[str, t.Any] = {} if error_trace is not None: __query["error_trace"] = error_trace if filter_path is not None: __query["filter_path"] = filter_path if human is not None: __query["human"] = human if ignore_index_settings is not None: __body["ignore_index_settings"] = ignore_index_settings if ignore_unavailable is not None: __body["ignore_unavailable"] = ignore_unavailable if include_aliases is not None: __body["include_aliases"] = include_aliases if include_global_state is not None: __body["include_global_state"] = include_global_state if index_settings is not None: __body["index_settings"] = index_settings if indices is not None: __body["indices"] = indices if master_timeout is not None: __query["master_timeout"] = master_timeout if partial is not None: __body["partial"] = partial if pretty is not None: __query["pretty"] = pretty if rename_pattern is not None: __body["rename_pattern"] = rename_pattern if rename_replacement is not None: __body["rename_replacement"] = rename_replacement if wait_for_completion is not None: __query["wait_for_completion"] = wait_for_completion if not __body: __body = None # type: ignore[assignment] __headers = {"accept": "application/json"} if __body is not None: __headers["content-type"] = "application/json" return self.perform_request( # type: ignore[return-value] "POST", __path, params=__query, headers=__headers, body=__body ) @_rewrite_parameters() def status( self, *, repository: t.Optional[str] = None, snapshot: t.Optional[ t.Union[str, t.Union[t.List[str], t.Tuple[str, ...]]] ] = None, error_trace: t.Optional[bool] = None, filter_path: t.Optional[ t.Union[str, t.Union[t.List[str], t.Tuple[str, ...]]] ] = None, human: t.Optional[bool] = None, ignore_unavailable: t.Optional[bool] = None, master_timeout: t.Optional[ t.Union["t.Literal[-1]", "t.Literal[0]", str] ] = None, pretty: t.Optional[bool] = None, ) -> ObjectApiResponse[t.Any]: """ Returns information about the status of a snapshot. `<https://www.elastic.co/guide/en/elasticsearch/reference/8.6/modules-snapshots.html>`_ :param repository: A repository name :param snapshot: A comma-separated list of snapshot names :param ignore_unavailable: Whether to ignore unavailable snapshots, defaults to false which means a SnapshotMissingException is thrown :param master_timeout: Explicit operation timeout for connection to master node """ if repository not in SKIP_IN_PATH and snapshot not in SKIP_IN_PATH: __path = f"/_snapshot/{_quote(repository)}/{_quote(snapshot)}/_status" elif repository not in SKIP_IN_PATH: __path = f"/_snapshot/{_quote(repository)}/_status" else: __path = "/_snapshot/_status" __query: t.Dict[str, t.Any] = {} if error_trace is not None: __query["error_trace"] = error_trace if filter_path is not None: __query["filter_path"] = filter_path if human is not None: __query["human"] = human if ignore_unavailable is not None: __query["ignore_unavailable"] = ignore_unavailable if master_timeout is not None: __query["master_timeout"] = master_timeout if pretty is not None: __query["pretty"] = pretty __headers = {"accept": "application/json"} return self.perform_request( # type: ignore[return-value] "GET", __path, params=__query, headers=__headers ) @_rewrite_parameters() def verify_repository( self, *, name: str, error_trace: t.Optional[bool] = None, filter_path: t.Optional[ t.Union[str, t.Union[t.List[str], t.Tuple[str, ...]]] ] = None, human: t.Optional[bool] = None, master_timeout: t.Optional[ t.Union["t.Literal[-1]", "t.Literal[0]", str] ] = None, pretty: t.Optional[bool] = None, timeout: t.Optional[t.Union["t.Literal[-1]", "t.Literal[0]", str]] = None, ) -> ObjectApiResponse[t.Any]: """ Verifies a repository. `<https://www.elastic.co/guide/en/elasticsearch/reference/8.6/modules-snapshots.html>`_ :param name: A repository name :param master_timeout: Explicit operation timeout for connection to master node :param timeout: Explicit operation timeout """ if name in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'name'") __path = f"/_snapshot/{_quote(name)}/_verify" __query: t.Dict[str, t.Any] = {} if error_trace is not None: __query["error_trace"] = error_trace if filter_path is not None: __query["filter_path"] = filter_path if human is not None: __query["human"] = human if master_timeout is not None: __query["master_timeout"] = master_timeout if pretty is not None: __query["pretty"] = pretty if timeout is not None: __query["timeout"] = timeout __headers = {"accept": "application/json"} return self.perform_request( # type: ignore[return-value] "POST", __path, params=__query, headers=__headers )