WARNING: Deprecated in 7.15.0.
The Java REST Client is deprecated in favor of the Java API Client.
Query API Key information API
editQuery API Key information API
editAPI Key(s) information can be queried and retrieved in a paginated fashion using this API.
Query API Key Request
editThe QueryApiKeyRequest
supports query and retrieving API key information using
Elasticsearch’s Query DSL with
pagination.
It supports only a subset of available query types, including:
Query for all API keys
editIn its most basic form, the request selects all API keys that the user has access to.
QueryApiKeyRequest queryApiKeyRequest = new QueryApiKeyRequest();
Query API keys with Query DSL
editThe following query selects API keys owned by the user and also satisfy following criteria:
* The API key name must begin with the word key
* The API key name must not be key-20000
QueryApiKeyRequest queryApiKeyRequest = new QueryApiKeyRequest().queryBuilder( QueryBuilders.boolQuery() .must(QueryBuilders.prefixQuery("metadata.environment", "east-")) .mustNot(QueryBuilders.termQuery("name", "key-20000")));
Retrieve API keys with explicitly configured sort and paging
editThe following request sort the API keys by their names in descending order. It also retrieves the API keys from index 1 (zero-based) and in a page size of 100.
QueryApiKeyRequest queryApiKeyRequest = new QueryApiKeyRequest() .from(1) .size(100) .fieldSortBuilders(org.elasticsearch.core.List.of(new FieldSortBuilder("name").order(SortOrder.DESC)));
Deep pagination can be achieved with search after
editQueryApiKeyRequest queryApiKeyRequest = new QueryApiKeyRequest() .fieldSortBuilders(org.elasticsearch.core.List.of(new FieldSortBuilder("name"))) .searchAfterBuilder(new SearchAfterBuilder().setSortValues(new String[] {"key-10000"}));
Synchronous execution
editWhen executing a QueryApiKeyRequest
in the following manner, the client waits
for the QueryApiKeyResponse
to be returned before continuing with code execution:
QueryApiKeyResponse queryApiKeyResponse = client.security().queryApiKey(queryApiKeyRequest, RequestOptions.DEFAULT);
Synchronous calls may throw an IOException
in case of either failing to
parse the REST response in the high-level REST client, the request times out
or similar cases where there is no response coming back from the server.
In cases where the server returns a 4xx
or 5xx
error code, the high-level
client tries to parse the response body error details instead and then throws
a generic ElasticsearchException
and adds the original ResponseException
as a
suppressed exception to it.
Asynchronous execution
editExecuting a QueryApiKeyRequest
can also be done in an asynchronous fashion so that
the client can return directly. Users need to specify how the response or
potential failures will be handled by passing the request and a listener to the
asynchronous query-api-key method:
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. Failure scenarios and expected exceptions are the same as in the
synchronous execution case.
A typical listener for query-api-key
looks like:
Query API Key information API Response
editThe returned QueryApiKeyResponse
contains the information regarding the API keys that were
requested.