module Elasticsearch::API::Watcher::Actions

Public Instance Methods

ack_watch(arguments = {}) click to toggle source

Acknowledges a watch, manually throttling the execution of the watch’s actions.

@option arguments [String] :watch_id Watch ID @option arguments [List] :action_id A comma-separated list of the action ids to be acked @option arguments [Hash] :headers Custom HTTP headers

@see www.elastic.co/guide/en/elasticsearch/reference/8.16/watcher-api-ack-watch.html

# File lib/elasticsearch/api/actions/watcher/ack_watch.rb, line 33
def ack_watch(arguments = {})
  request_opts = { endpoint: arguments[:endpoint] || 'watcher.ack_watch' }

  defined_params = %i[watch_id action_id].each_with_object({}) do |variable, set_variables|
    set_variables[variable] = arguments[variable] if arguments.key?(variable)
  end
  request_opts[:defined_params] = defined_params unless defined_params.empty?

  raise ArgumentError, "Required argument 'watch_id' missing" unless arguments[:watch_id]

  arguments = arguments.clone
  headers = arguments.delete(:headers) || {}

  body = nil

  _watch_id = arguments.delete(:watch_id)

  _action_id = arguments.delete(:action_id)

  method = Elasticsearch::API::HTTP_PUT
  path   = if _watch_id && _action_id
             "_watcher/watch/#{Utils.__listify(_watch_id)}/_ack/#{Utils.__listify(_action_id)}"
           else
             "_watcher/watch/#{Utils.__listify(_watch_id)}/_ack"
           end
  params = {}

  Elasticsearch::API::Response.new(
    perform_request(method, path, params, body, headers, request_opts)
  )
end
activate_watch(arguments = {}) click to toggle source

Activates a currently inactive watch.

@option arguments [String] :watch_id Watch ID @option arguments [Hash] :headers Custom HTTP headers

@see www.elastic.co/guide/en/elasticsearch/reference/8.16/watcher-api-activate-watch.html

# File lib/elasticsearch/api/actions/watcher/activate_watch.rb, line 32
def activate_watch(arguments = {})
  request_opts = { endpoint: arguments[:endpoint] || 'watcher.activate_watch' }

  defined_params = [:watch_id].each_with_object({}) do |variable, set_variables|
    set_variables[variable] = arguments[variable] if arguments.key?(variable)
  end
  request_opts[:defined_params] = defined_params unless defined_params.empty?

  raise ArgumentError, "Required argument 'watch_id' missing" unless arguments[:watch_id]

  arguments = arguments.clone
  headers = arguments.delete(:headers) || {}

  body = nil

  _watch_id = arguments.delete(:watch_id)

  method = Elasticsearch::API::HTTP_PUT
  path   = "_watcher/watch/#{Utils.__listify(_watch_id)}/_activate"
  params = {}

  Elasticsearch::API::Response.new(
    perform_request(method, path, params, body, headers, request_opts)
  )
end
deactivate_watch(arguments = {}) click to toggle source

Deactivates a currently active watch.

@option arguments [String] :watch_id Watch ID @option arguments [Hash] :headers Custom HTTP headers

@see www.elastic.co/guide/en/elasticsearch/reference/8.16/watcher-api-deactivate-watch.html

# File lib/elasticsearch/api/actions/watcher/deactivate_watch.rb, line 32
def deactivate_watch(arguments = {})
  request_opts = { endpoint: arguments[:endpoint] || 'watcher.deactivate_watch' }

  defined_params = [:watch_id].each_with_object({}) do |variable, set_variables|
    set_variables[variable] = arguments[variable] if arguments.key?(variable)
  end
  request_opts[:defined_params] = defined_params unless defined_params.empty?

  raise ArgumentError, "Required argument 'watch_id' missing" unless arguments[:watch_id]

  arguments = arguments.clone
  headers = arguments.delete(:headers) || {}

  body = nil

  _watch_id = arguments.delete(:watch_id)

  method = Elasticsearch::API::HTTP_PUT
  path   = "_watcher/watch/#{Utils.__listify(_watch_id)}/_deactivate"
  params = {}

  Elasticsearch::API::Response.new(
    perform_request(method, path, params, body, headers, request_opts)
  )
end
delete_watch(arguments = {}) click to toggle source

Removes a watch from Watcher.

@option arguments [String] :id Watch ID @option arguments [Hash] :headers Custom HTTP headers

@see www.elastic.co/guide/en/elasticsearch/reference/8.16/watcher-api-delete-watch.html

# File lib/elasticsearch/api/actions/watcher/delete_watch.rb, line 32
def delete_watch(arguments = {})
  request_opts = { endpoint: arguments[:endpoint] || 'watcher.delete_watch' }

  defined_params = [:id].each_with_object({}) do |variable, set_variables|
    set_variables[variable] = arguments[variable] if arguments.key?(variable)
  end
  request_opts[:defined_params] = defined_params unless defined_params.empty?

  raise ArgumentError, "Required argument 'id' missing" unless arguments[:id]

  arguments = arguments.clone
  headers = arguments.delete(:headers) || {}

  body = nil

  _id = arguments.delete(:id)

  method = Elasticsearch::API::HTTP_DELETE
  path   = "_watcher/watch/#{Utils.__listify(_id)}"
  params = Utils.process_params(arguments)

  if Array(arguments[:ignore]).include?(404)
    Utils.__rescue_from_not_found do
      Elasticsearch::API::Response.new(
        perform_request(method, path, params, body, headers, request_opts)
      )
    end
  else
    Elasticsearch::API::Response.new(
      perform_request(method, path, params, body, headers, request_opts)
    )
  end
end
execute_watch(arguments = {}) click to toggle source

Forces the execution of a stored watch.

@option arguments [String] :id Watch ID @option arguments [Boolean] :debug indicates whether the watch should execute in debug mode @option arguments [Hash] :headers Custom HTTP headers @option arguments [Hash] :body Execution control

@see www.elastic.co/guide/en/elasticsearch/reference/8.16/watcher-api-execute-watch.html

# File lib/elasticsearch/api/actions/watcher/execute_watch.rb, line 34
def execute_watch(arguments = {})
  request_opts = { endpoint: arguments[:endpoint] || 'watcher.execute_watch' }

  defined_params = [:id].each_with_object({}) do |variable, set_variables|
    set_variables[variable] = arguments[variable] if arguments.key?(variable)
  end
  request_opts[:defined_params] = defined_params unless defined_params.empty?

  arguments = arguments.clone
  headers = arguments.delete(:headers) || {}

  body = arguments.delete(:body)

  _id = arguments.delete(:id)

  method = Elasticsearch::API::HTTP_PUT
  path   = if _id
             "_watcher/watch/#{Utils.__listify(_id)}/_execute"
           else
             '_watcher/watch/_execute'
           end
  params = Utils.process_params(arguments)

  Elasticsearch::API::Response.new(
    perform_request(method, path, params, body, headers, request_opts)
  )
end
get_settings(arguments = {}) click to toggle source

Retrieve settings for the watcher system index

@option arguments [Time] :master_timeout Specify timeout for connection to master @option arguments [Hash] :headers Custom HTTP headers

@see www.elastic.co/guide/en/elasticsearch/reference/8.16/watcher-api-get-settings.html

# File lib/elasticsearch/api/actions/watcher/get_settings.rb, line 32
def get_settings(arguments = {})
  request_opts = { endpoint: arguments[:endpoint] || 'watcher.get_settings' }

  arguments = arguments.clone
  headers = arguments.delete(:headers) || {}

  body   = nil

  method = Elasticsearch::API::HTTP_GET
  path   = '_watcher/settings'
  params = Utils.process_params(arguments)

  Elasticsearch::API::Response.new(
    perform_request(method, path, params, body, headers, request_opts)
  )
end
get_watch(arguments = {}) click to toggle source

Retrieves a watch by its ID.

@option arguments [String] :id Watch ID @option arguments [Hash] :headers Custom HTTP headers

@see www.elastic.co/guide/en/elasticsearch/reference/8.16/watcher-api-get-watch.html

# File lib/elasticsearch/api/actions/watcher/get_watch.rb, line 32
def get_watch(arguments = {})
  request_opts = { endpoint: arguments[:endpoint] || 'watcher.get_watch' }

  defined_params = [:id].each_with_object({}) do |variable, set_variables|
    set_variables[variable] = arguments[variable] if arguments.key?(variable)
  end
  request_opts[:defined_params] = defined_params unless defined_params.empty?

  raise ArgumentError, "Required argument 'id' missing" unless arguments[:id]

  arguments = arguments.clone
  headers = arguments.delete(:headers) || {}

  body = nil

  _id = arguments.delete(:id)

  method = Elasticsearch::API::HTTP_GET
  path   = "_watcher/watch/#{Utils.__listify(_id)}"
  params = {}

  Elasticsearch::API::Response.new(
    perform_request(method, path, params, body, headers, request_opts)
  )
end
put_watch(arguments = {}) click to toggle source

Creates a new watch, or updates an existing one.

@option arguments [String] :id Watch ID @option arguments [Boolean] :active Specify whether the watch is in/active by default @option arguments [Number] :version Explicit version number for concurrency control @option arguments [Number] :if_seq_no only update the watch if the last operation that has changed the watch has the specified sequence number @option arguments [Number] :if_primary_term only update the watch if the last operation that has changed the watch has the specified primary term @option arguments [Hash] :headers Custom HTTP headers @option arguments [Hash] :body The watch

@see www.elastic.co/guide/en/elasticsearch/reference/8.16/watcher-api-put-watch.html

# File lib/elasticsearch/api/actions/watcher/put_watch.rb, line 37
def put_watch(arguments = {})
  request_opts = { endpoint: arguments[:endpoint] || 'watcher.put_watch' }

  defined_params = [:id].each_with_object({}) do |variable, set_variables|
    set_variables[variable] = arguments[variable] if arguments.key?(variable)
  end
  request_opts[:defined_params] = defined_params unless defined_params.empty?

  raise ArgumentError, "Required argument 'id' missing" unless arguments[:id]

  arguments = arguments.clone
  headers = arguments.delete(:headers) || {}

  body = arguments.delete(:body)

  _id = arguments.delete(:id)

  method = Elasticsearch::API::HTTP_PUT
  path   = "_watcher/watch/#{Utils.__listify(_id)}"
  params = Utils.process_params(arguments)

  Elasticsearch::API::Response.new(
    perform_request(method, path, params, body, headers, request_opts)
  )
end
query_watches(arguments = {}) click to toggle source

Retrieves stored watches.

@option arguments [Hash] :headers Custom HTTP headers @option arguments [Hash] :body From, size, query, sort and search_after

@see www.elastic.co/guide/en/elasticsearch/reference/8.16/watcher-api-query-watches.html

# File lib/elasticsearch/api/actions/watcher/query_watches.rb, line 32
def query_watches(arguments = {})
  request_opts = { endpoint: arguments[:endpoint] || 'watcher.query_watches' }

  arguments = arguments.clone
  headers = arguments.delete(:headers) || {}

  body   = arguments.delete(:body)

  method = if body
             Elasticsearch::API::HTTP_POST
           else
             Elasticsearch::API::HTTP_GET
           end

  path = '_watcher/_query/watches'
  params = {}

  Elasticsearch::API::Response.new(
    perform_request(method, path, params, body, headers, request_opts)
  )
end
start(arguments = {}) click to toggle source

Starts Watcher if it is not already running.

@option arguments [Time] :master_timeout Specify timeout for connection to master @option arguments [Hash] :headers Custom HTTP headers

@see www.elastic.co/guide/en/elasticsearch/reference/8.16/watcher-api-start.html

# File lib/elasticsearch/api/actions/watcher/start.rb, line 32
def start(arguments = {})
  request_opts = { endpoint: arguments[:endpoint] || 'watcher.start' }

  arguments = arguments.clone
  headers = arguments.delete(:headers) || {}

  body   = nil

  method = Elasticsearch::API::HTTP_POST
  path   = '_watcher/_start'
  params = Utils.process_params(arguments)

  Elasticsearch::API::Response.new(
    perform_request(method, path, params, body, headers, request_opts)
  )
end
stats(arguments = {}) click to toggle source

Retrieves the current Watcher metrics.

@option arguments [List] :metric Controls what additional stat metrics should be include in the response (options: _all, queued_watches, current_watches, pending_watches) @option arguments [Boolean] :emit_stacktraces Emits stack traces of currently running watches @option arguments [Hash] :headers Custom HTTP headers

@see www.elastic.co/guide/en/elasticsearch/reference/8.16/watcher-api-stats.html

# File lib/elasticsearch/api/actions/watcher/stats.rb, line 33
def stats(arguments = {})
  request_opts = { endpoint: arguments[:endpoint] || 'watcher.stats' }

  defined_params = [:metric].each_with_object({}) do |variable, set_variables|
    set_variables[variable] = arguments[variable] if arguments.key?(variable)
  end
  request_opts[:defined_params] = defined_params unless defined_params.empty?

  arguments = arguments.clone
  headers = arguments.delete(:headers) || {}

  body = nil

  _metric = arguments.delete(:metric)

  method = Elasticsearch::API::HTTP_GET
  path   = if _metric
             "_watcher/stats/#{Utils.__listify(_metric)}"
           else
             '_watcher/stats'
           end
  params = Utils.process_params(arguments)

  Elasticsearch::API::Response.new(
    perform_request(method, path, params, body, headers, request_opts)
  )
end
stop(arguments = {}) click to toggle source

Stops Watcher if it is running.

@option arguments [Time] :master_timeout Specify timeout for connection to master @option arguments [Hash] :headers Custom HTTP headers

@see www.elastic.co/guide/en/elasticsearch/reference/8.16/watcher-api-stop.html

# File lib/elasticsearch/api/actions/watcher/stop.rb, line 32
def stop(arguments = {})
  request_opts = { endpoint: arguments[:endpoint] || 'watcher.stop' }

  arguments = arguments.clone
  headers = arguments.delete(:headers) || {}

  body   = nil

  method = Elasticsearch::API::HTTP_POST
  path   = '_watcher/_stop'
  params = Utils.process_params(arguments)

  Elasticsearch::API::Response.new(
    perform_request(method, path, params, body, headers, request_opts)
  )
end
update_settings(arguments = {}) click to toggle source

Update settings for the watcher system index

@option arguments [Time] :timeout Specify timeout for waiting for acknowledgement from all nodes @option arguments [Time] :master_timeout Specify timeout for connection to master @option arguments [Hash] :headers Custom HTTP headers @option arguments [Hash] :body An object with the new index settings (Required)

@see www.elastic.co/guide/en/elasticsearch/reference/8.16/watcher-api-update-settings.html

# File lib/elasticsearch/api/actions/watcher/update_settings.rb, line 34
def update_settings(arguments = {})
  request_opts = { endpoint: arguments[:endpoint] || 'watcher.update_settings' }

  raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]

  arguments = arguments.clone
  headers = arguments.delete(:headers) || {}

  body   = arguments.delete(:body)

  method = Elasticsearch::API::HTTP_PUT
  path   = '_watcher/settings'
  params = Utils.process_params(arguments)

  Elasticsearch::API::Response.new(
    perform_request(method, path, params, body, headers, request_opts)
  )
end