OpenSearch/docs/java-rest/high-level/watcher/execute-watch.asciidoc

89 lines
3.3 KiB
Plaintext

--
:api: execute-watch
:request: ExecuteWatchRequest
:response: ExecuteWatchResponse
--
[role="xpack"]
[id="{upid}-{api}"]
=== Execute watch API
The execute watch API allows clients to immediately execute a watch, either
one that has been previously added via the
{ref}/watcher-api-put-watch.html[Put Watch API] or inline as part of the request.
[id="{upid}-{api}-request-by-id"]
==== Execute by id
Submit the following request to execute a previously added watch:
["source","java",subs="attributes,callouts,macros"]
---------------------------------------------------
include-tagged::{doc-tests-file}[x-pack-execute-watch-by-id]
---------------------------------------------------
<1> Alternative input for the watch to use in json format
<2> Set the mode for action "action1" to SIMULATE
<3> Record this execution in watcher history
<4> Execute the watch regardless of the watch's condition
<5> Set the trigger data for the watch in json format
<6> Enable debug mode
[id="{upid}-{api}-response-by-id"]
==== Execute by id response
The returned `Response` contains details of the execution:
["source","java",subs="attributes,callouts,macros"]
---------------------------------------------------
include-tagged::{doc-tests-file}[x-pack-execute-watch-by-id-response]
---------------------------------------------------
<1> The record ID for this execution
<2> The execution response as a java `Map`
<3> Extract information from the response map using `ObjectPath`
[id="{upid}-{api}-response-by-id-async"]
==== Asynchronous execution by id
This request can be executed asynchronously:
["source","java",subs="attributes,callouts,macros"]
--------------------------------------------------
include-tagged::{doc-tests-file}[x-pack-execute-watch-by-id-execute-async]
--------------------------------------------------
<1> The `ExecuteWatchRequest` to execute and the `ActionListener` to use when
the execution completes
The asynchronous method does not block and returns immediately. Once it is
completed the `ActionListener` is called back using the `onResponse` method
if the execution successfully completed or using the `onFailure` method if
it failed.
A typical listener for `ExecuteWatchResponse` looks like:
["source","java",subs="attributes,callouts,macros"]
--------------------------------------------------
include-tagged::{doc-tests-file}[x-pack-execute-watch-by-id-execute-listener]
--------------------------------------------------
<1> Called when the execution is successfully completed. The response is
provided as an argument
<2> Called in case of failure. The raised exception is provided as an argument
[id="{upid}-{api}-request-inline"]
==== Execute inline
Submit the following request to execute a watch defined as part of the request:
["source","java",subs="attributes,callouts,macros"]
---------------------------------------------------
include-tagged::{doc-tests-file}[x-pack-execute-watch-inline]
---------------------------------------------------
<1> Alternative input for the watch to use in json format
<2> Set the mode for action "action1" to SIMULATE
<3> Execute the watch regardless of the watch's condition
<4> Set the trigger data for the watch in json format
<5> Enable debug mode
Note that inline watches cannot be recorded.
The response format and asynchronous execution methods are the same as for the
Execute Watch by ID API.