| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 | [[java-rest-high-put-stored-script]]=== Put Stored Script API[[java-rest-high-put-stored-script-request]]==== Put Stored Script RequestA `PutStoredScriptRequest` requires an `id` and `content`:["source","java",subs="attributes,callouts,macros"]--------------------------------------------------include-tagged::{doc-tests}/StoredScriptsDocumentationIT.java[put-stored-script-request]--------------------------------------------------<1> The id of the script<2> The content of the script[[java-rest-high-put-stored-script-content]]==== ContentThe content of a script can be written in different languages and provided indifferent ways:["source","java",subs="attributes,callouts,macros"]--------------------------------------------------include-tagged::{doc-tests}/StoredScriptsDocumentationIT.java[put-stored-script-content-painless]--------------------------------------------------<1> Specify a painless script and provided as `XContentBuilder` object.Note that the builder needs to be passed as a `BytesReference` object["source","java",subs="attributes,callouts,macros"]--------------------------------------------------include-tagged::{doc-tests}/StoredScriptsDocumentationIT.java[put-stored-script-content-mustache]--------------------------------------------------<1> Specify a mustache script and provided as `XContentBuilder` object.Note that value of source can be directly provided as a JSON string==== Optional argumentsThe following arguments can optionally be provided:["source","java",subs="attributes,callouts,macros"]--------------------------------------------------include-tagged::{doc-tests}/StoredScriptsDocumentationIT.java[put-stored-script-context]--------------------------------------------------<1> The context the script should be executed in.["source","java",subs="attributes,callouts,macros"]--------------------------------------------------include-tagged::{doc-tests}/StoredScriptsDocumentationIT.java[put-stored-script-timeout]--------------------------------------------------<1> Timeout to wait for the all the nodes to acknowledge the script creation as a `TimeValue`<2> Timeout to wait for the all the nodes to acknowledge the script creation as a `String`["source","java",subs="attributes,callouts,macros"]--------------------------------------------------include-tagged::{doc-tests}/StoredScriptsDocumentationIT.java[put-stored-script-masterTimeout]--------------------------------------------------<1> Timeout to connect to the master node as a `TimeValue`<2> Timeout to connect to the master node as a `String`[[java-rest-high-put-stored-script-sync]]==== Synchronous Execution["source","java",subs="attributes,callouts,macros"]--------------------------------------------------include-tagged::{doc-tests}/StoredScriptsDocumentationIT.java[put-stored-script-execute]--------------------------------------------------[[java-rest-high-put-stored-script-async]]==== Asynchronous ExecutionThe asynchronous execution of a put stored script request requires both the `PutStoredScriptRequest`instance and an `ActionListener` instance to be passed to the asynchronous method:["source","java",subs="attributes,callouts,macros"]--------------------------------------------------include-tagged::{doc-tests}/StoredScriptsDocumentationIT.java[put-stored-script-execute-async]--------------------------------------------------<1> The `PutStoredScriptRequest` to execute and the `ActionListener` to use whenthe execution completes[[java-rest-high-put-stored-script-listener]]===== Action ListenerThe asynchronous method does not block and returns immediately. Once it iscompleted the `ActionListener` is called back using the `onResponse` methodif the execution successfully completed or using the `onFailure` method ifit failed.A typical listener for `AcknowledgedResponse` looks like:["source","java",subs="attributes,callouts,macros"]--------------------------------------------------include-tagged::{doc-tests}/StoredScriptsDocumentationIT.java[put-stored-script-execute-listener]--------------------------------------------------<1> Called when the execution is successfully completed. The response isprovided as an argument<2> Called in case of failure. The raised exception is provided as an argument[[java-rest-high-put-stored-script-response]]==== Put Stored Script ResponseThe returned `AcknowledgedResponse` allows to retrieve information about theexecuted operation as follows:["source","java",subs="attributes,callouts,macros"]--------------------------------------------------include-tagged::{doc-tests}/StoredScriptsDocumentationIT.java[put-stored-script-response]--------------------------------------------------<1> Indicates whether all of the nodes have acknowledged the request
 |