[[java-rest-high-snapshot-get-snapshots]] === Get Snapshots API Use the Get Snapshot API to get snapshots. [[java-rest-high-snapshot-get-snapshots-request]] ==== Get Snapshots Request A `GetSnapshotsRequest`: ["source","java",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{doc-tests}/SnapshotClientDocumentationIT.java[get-snapshots-request] -------------------------------------------------- ==== Required Arguments The following arguments are mandatory: ["source","java",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{doc-tests}/SnapshotClientDocumentationIT.java[get-snapshots-request-repositoryName] -------------------------------------------------- <1> The name of the repository. ==== Optional Arguments The following arguments are optional: ["source","java",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{doc-tests}/SnapshotClientDocumentationIT.java[get-snapshots-request-snapshots] -------------------------------------------------- <1> An array of snapshots to get. Otherwise it will return all snapshots for a repository. ["source","java",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{doc-tests}/SnapshotClientDocumentationIT.java[get-snapshots-request-masterTimeout] -------------------------------------------------- <1> Timeout to connect to the master node as a `TimeValue`. <2> Timeout to connect to the master node as a `String`. ["source","java",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{doc-tests}/SnapshotClientDocumentationIT.java[get-snapshots-request-verbose] -------------------------------------------------- <1> `Boolean` indicating if the response should be verbose. ["source","java",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{doc-tests}/SnapshotClientDocumentationIT.java[get-snapshots-request-ignore-unavailable] -------------------------------------------------- <1> `Boolean` indicating if unavailable snapshots should be ignored. Otherwise the request will fail if any of the snapshots are unavailable. [[java-rest-high-snapshot-get-snapshots-sync]] ==== Synchronous Execution ["source","java",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{doc-tests}/SnapshotClientDocumentationIT.java[get-snapshots-execute] -------------------------------------------------- [[java-rest-high-snapshot-get-snapshots-async]] ==== Asynchronous Execution The asynchronous execution of a get snapshots request requires both the `GetSnapshotsRequest` instance and an `ActionListener` instance to be passed as arguments to the asynchronous method: ["source","java",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{doc-tests}/SnapshotClientDocumentationIT.java[get-snapshots-execute-async] -------------------------------------------------- <1> The `GetSnapshotsRequest` 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 with the `onResponse` method if the execution is successful or the `onFailure` method if the execution failed. A typical listener for `GetSnapshotsResponse` looks like: ["source","java",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{doc-tests}/SnapshotClientDocumentationIT.java[get-snapshots-execute-listener -------------------------------------------------- <1> Called when the execution is successfully completed. The response is provided as an argument. <2> Called in case of a failure. The raised exception is provided as an argument. [[java-rest-high-snapshot-get-snapshots-response]] ==== Get Snapshots Response Use the `GetSnapshotsResponse` to retrieve information about the evaluated request: ["source","java",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{doc-tests}/SnapshotClientDocumentationIT.java[get-snapshots-response] -------------------------------------------------- <1> Indicates the node has started the request.