from ..utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH class WatcherClient(NamespacedClient): @query_params() def ack_watch(self, watch_id, action_id=None, params=None): """ ``_ :arg watch_id: Watch ID :arg action_id: A comma-separated list of the action ids to be acked """ if watch_id in SKIP_IN_PATH: raise ValueError("Empty value passed for a required argument 'watch_id'.") return self.transport.perform_request( "PUT", _make_path("_watcher", "watch", watch_id, "_ack", action_id), params=params, ) @query_params() def activate_watch(self, watch_id, params=None): """ ``_ :arg watch_id: Watch ID """ if watch_id in SKIP_IN_PATH: raise ValueError("Empty value passed for a required argument 'watch_id'.") return self.transport.perform_request( "PUT", _make_path("_watcher", "watch", watch_id, "_activate"), params=params ) @query_params() def deactivate_watch(self, watch_id, params=None): """ ``_ :arg watch_id: Watch ID """ if watch_id in SKIP_IN_PATH: raise ValueError("Empty value passed for a required argument 'watch_id'.") return self.transport.perform_request( "PUT", _make_path("_watcher", "watch", watch_id, "_deactivate"), params=params, ) @query_params() def delete_watch(self, id, params=None): """ ``_ :arg id: Watch ID """ if id in SKIP_IN_PATH: raise ValueError("Empty value passed for a required argument 'id'.") return self.transport.perform_request( "DELETE", _make_path("_watcher", "watch", id), params=params ) @query_params("debug") def execute_watch(self, id=None, body=None, params=None): """ ``_ :arg id: Watch ID :arg body: Execution control :arg debug: indicates whether the watch should execute in debug mode """ return self.transport.perform_request( "PUT", _make_path("_watcher", "watch", id, "_execute"), params=params, body=body, ) @query_params() def get_watch(self, id, params=None): """ ``_ :arg id: Watch ID """ if id in SKIP_IN_PATH: raise ValueError("Empty value passed for a required argument 'id'.") return self.transport.perform_request( "GET", _make_path("_watcher", "watch", id), params=params ) @query_params("active", "if_primary_term", "if_seq_no", "version") def put_watch(self, id, body=None, params=None): """ ``_ :arg id: Watch ID :arg body: The watch :arg active: Specify whether the watch is in/active by default :arg if_primary_term: only update the watch if the last operation that has changed the watch has the specified primary term :arg if_seq_no: only update the watch if the last operation that has changed the watch has the specified sequence number :arg version: Explicit version number for concurrency control """ if id in SKIP_IN_PATH: raise ValueError("Empty value passed for a required argument 'id'.") return self.transport.perform_request( "PUT", _make_path("_watcher", "watch", id), params=params, body=body ) @query_params() def start(self, params=None): """ ``_ """ return self.transport.perform_request("POST", "/_watcher/_start", params=params) @query_params("emit_stacktraces") def stats(self, metric=None, params=None): """ ``_ :arg metric: Controls what additional stat metrics should be include in the response :arg emit_stacktraces: Emits stack traces of currently running watches """ return self.transport.perform_request( "GET", _make_path("_watcher", "stats", metric), params=params ) @query_params() def stop(self, params=None): """ ``_ """ return self.transport.perform_request("POST", "/_watcher/_stop", params=params)