| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | [[java-rest-high-x-pack-usage]]=== X-Pack Usage API[[java-rest-high-x-pack-usage-execution]]==== ExecutionDetailed information about the usage of features from {xpack} can beretrieved using the `usage()` method:["source","java",subs="attributes,callouts,macros"]--------------------------------------------------include-tagged::{doc-tests}/MiscellaneousDocumentationIT.java[x-pack-usage-execute]--------------------------------------------------[[java-rest-high-x-pack-usage-response]]==== ResponseThe returned `XPackUsageResponse` contains a `Map` keyed by feature name.Every feature map has an `available` key, indicating whether thatfeature is available given the current license, and an `enabled` key,indicating whether that feature is currently enabled. Other keysare specific to each feature.["source","java",subs="attributes,callouts,macros"]--------------------------------------------------include-tagged::{doc-tests}/MiscellaneousDocumentationIT.java[x-pack-usage-response]--------------------------------------------------[[java-rest-high-x-pack-usage-async]]==== Asynchronous ExecutionThis request can be executed asynchronously:["source","java",subs="attributes,callouts,macros"]--------------------------------------------------include-tagged::{doc-tests}/MiscellaneousDocumentationIT.java[x-pack-usage-execute-async]--------------------------------------------------<1> The call to execute the usage api and the `ActionListener` to use whenthe execution completesThe 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 `XPackUsageResponse` looks like:["source","java",subs="attributes,callouts,macros"]--------------------------------------------------include-tagged::{doc-tests}/MiscellaneousDocumentationIT.java[x-pack-usage-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
 |