co.elastic.clients.elasticsearch.cluster.ElasticsearchClusterClient Maven / Gradle / Ivy
/*
* Licensed to Elasticsearch B.V. under one or more contributor
* license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright
* ownership. Elasticsearch B.V. licenses this file to you under
* the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package co.elastic.clients.elasticsearch.cluster;
import co.elastic.clients.ApiClient;
import co.elastic.clients.elasticsearch._types.ElasticsearchException;
import co.elastic.clients.elasticsearch._types.ErrorResponse;
import co.elastic.clients.transport.ElasticsearchTransport;
import co.elastic.clients.transport.Endpoint;
import co.elastic.clients.transport.JsonEndpoint;
import co.elastic.clients.transport.Transport;
import co.elastic.clients.transport.TransportOptions;
import co.elastic.clients.transport.endpoints.BooleanResponse;
import co.elastic.clients.util.ObjectBuilder;
import java.io.IOException;
import java.util.function.Function;
import javax.annotation.Nullable;
//----------------------------------------------------------------
// THIS CODE IS GENERATED. MANUAL EDITS WILL BE LOST.
//----------------------------------------------------------------
//
// This code is generated from the Elasticsearch API specification
// at https://github.com/elastic/elasticsearch-specification
//
// Manual updates to this file will be lost when the code is
// re-generated.
//
// If you find a property that is missing or wrongly typed, please
// open an issue or a PR on the API specification repository.
//
//----------------------------------------------------------------
/**
* Client for the cluster namespace.
*/
public class ElasticsearchClusterClient extends ApiClient {
public ElasticsearchClusterClient(ElasticsearchTransport transport) {
super(transport, null);
}
public ElasticsearchClusterClient(ElasticsearchTransport transport, @Nullable TransportOptions transportOptions) {
super(transport, transportOptions);
}
@Override
public ElasticsearchClusterClient withTransportOptions(@Nullable TransportOptions transportOptions) {
return new ElasticsearchClusterClient(this.transport, transportOptions);
}
// ----- Endpoint: cluster.allocation_explain
/**
* Provides explanations for shard allocations in the cluster.
*
* @see Documentation
* on elastic.co
*/
public AllocationExplainResponse allocationExplain(AllocationExplainRequest request)
throws IOException, ElasticsearchException {
@SuppressWarnings("unchecked")
JsonEndpoint endpoint = (JsonEndpoint) AllocationExplainRequest._ENDPOINT;
return this.transport.performRequest(request, endpoint, this.transportOptions);
}
/**
* Provides explanations for shard allocations in the cluster.
*
* @param fn
* a function that initializes a builder to create the
* {@link AllocationExplainRequest}
* @see Documentation
* on elastic.co
*/
public final AllocationExplainResponse allocationExplain(
Function> fn)
throws IOException, ElasticsearchException {
return allocationExplain(fn.apply(new AllocationExplainRequest.Builder()).build());
}
/**
* Provides explanations for shard allocations in the cluster.
*
* @see Documentation
* on elastic.co
*/
public AllocationExplainResponse allocationExplain() throws IOException, ElasticsearchException {
return this.transport.performRequest(new AllocationExplainRequest.Builder().build(),
AllocationExplainRequest._ENDPOINT, this.transportOptions);
}
// ----- Endpoint: cluster.delete_component_template
/**
* Deletes component templates. Component templates are building blocks for
* constructing index templates that specify index mappings, settings, and
* aliases.
*
* @see Documentation
* on elastic.co
*/
public DeleteComponentTemplateResponse deleteComponentTemplate(DeleteComponentTemplateRequest request)
throws IOException, ElasticsearchException {
@SuppressWarnings("unchecked")
JsonEndpoint endpoint = (JsonEndpoint) DeleteComponentTemplateRequest._ENDPOINT;
return this.transport.performRequest(request, endpoint, this.transportOptions);
}
/**
* Deletes component templates. Component templates are building blocks for
* constructing index templates that specify index mappings, settings, and
* aliases.
*
* @param fn
* a function that initializes a builder to create the
* {@link DeleteComponentTemplateRequest}
* @see Documentation
* on elastic.co
*/
public final DeleteComponentTemplateResponse deleteComponentTemplate(
Function> fn)
throws IOException, ElasticsearchException {
return deleteComponentTemplate(fn.apply(new DeleteComponentTemplateRequest.Builder()).build());
}
// ----- Endpoint: cluster.delete_voting_config_exclusions
/**
* Clears cluster voting config exclusions.
*
* @see Documentation
* on elastic.co
*/
public BooleanResponse deleteVotingConfigExclusions(DeleteVotingConfigExclusionsRequest request)
throws IOException, ElasticsearchException {
@SuppressWarnings("unchecked")
Endpoint endpoint = (Endpoint) DeleteVotingConfigExclusionsRequest._ENDPOINT;
return this.transport.performRequest(request, endpoint, this.transportOptions);
}
/**
* Clears cluster voting config exclusions.
*
* @param fn
* a function that initializes a builder to create the
* {@link DeleteVotingConfigExclusionsRequest}
* @see Documentation
* on elastic.co
*/
public final BooleanResponse deleteVotingConfigExclusions(
Function> fn)
throws IOException, ElasticsearchException {
return deleteVotingConfigExclusions(fn.apply(new DeleteVotingConfigExclusionsRequest.Builder()).build());
}
/**
* Clears cluster voting config exclusions.
*
* @see Documentation
* on elastic.co
*/
public BooleanResponse deleteVotingConfigExclusions() throws IOException, ElasticsearchException {
return this.transport.performRequest(new DeleteVotingConfigExclusionsRequest.Builder().build(),
DeleteVotingConfigExclusionsRequest._ENDPOINT, this.transportOptions);
}
// ----- Endpoint: cluster.exists_component_template
/**
* Returns information about whether a particular component template exist
*
* @see Documentation
* on elastic.co
*/
public BooleanResponse existsComponentTemplate(ExistsComponentTemplateRequest request)
throws IOException, ElasticsearchException {
@SuppressWarnings("unchecked")
Endpoint endpoint = (Endpoint) ExistsComponentTemplateRequest._ENDPOINT;
return this.transport.performRequest(request, endpoint, this.transportOptions);
}
/**
* Returns information about whether a particular component template exist
*
* @param fn
* a function that initializes a builder to create the
* {@link ExistsComponentTemplateRequest}
* @see Documentation
* on elastic.co
*/
public final BooleanResponse existsComponentTemplate(
Function> fn)
throws IOException, ElasticsearchException {
return existsComponentTemplate(fn.apply(new ExistsComponentTemplateRequest.Builder()).build());
}
// ----- Endpoint: cluster.get_component_template
/**
* Retrieves information about component templates.
*
* @see Documentation
* on elastic.co
*/
public GetComponentTemplateResponse getComponentTemplate(GetComponentTemplateRequest request)
throws IOException, ElasticsearchException {
@SuppressWarnings("unchecked")
JsonEndpoint endpoint = (JsonEndpoint) GetComponentTemplateRequest._ENDPOINT;
return this.transport.performRequest(request, endpoint, this.transportOptions);
}
/**
* Retrieves information about component templates.
*
* @param fn
* a function that initializes a builder to create the
* {@link GetComponentTemplateRequest}
* @see Documentation
* on elastic.co
*/
public final GetComponentTemplateResponse getComponentTemplate(
Function> fn)
throws IOException, ElasticsearchException {
return getComponentTemplate(fn.apply(new GetComponentTemplateRequest.Builder()).build());
}
/**
* Retrieves information about component templates.
*
* @see Documentation
* on elastic.co
*/
public GetComponentTemplateResponse getComponentTemplate() throws IOException, ElasticsearchException {
return this.transport.performRequest(new GetComponentTemplateRequest.Builder().build(),
GetComponentTemplateRequest._ENDPOINT, this.transportOptions);
}
// ----- Endpoint: cluster.get_settings
/**
* Returns cluster-wide settings. By default, it returns only settings that have
* been explicitly defined.
*
* @see Documentation
* on elastic.co
*/
public GetClusterSettingsResponse getSettings(GetClusterSettingsRequest request)
throws IOException, ElasticsearchException {
@SuppressWarnings("unchecked")
JsonEndpoint endpoint = (JsonEndpoint) GetClusterSettingsRequest._ENDPOINT;
return this.transport.performRequest(request, endpoint, this.transportOptions);
}
/**
* Returns cluster-wide settings. By default, it returns only settings that have
* been explicitly defined.
*
* @param fn
* a function that initializes a builder to create the
* {@link GetClusterSettingsRequest}
* @see Documentation
* on elastic.co
*/
public final GetClusterSettingsResponse getSettings(
Function> fn)
throws IOException, ElasticsearchException {
return getSettings(fn.apply(new GetClusterSettingsRequest.Builder()).build());
}
/**
* Returns cluster-wide settings. By default, it returns only settings that have
* been explicitly defined.
*
* @see Documentation
* on elastic.co
*/
public GetClusterSettingsResponse getSettings() throws IOException, ElasticsearchException {
return this.transport.performRequest(new GetClusterSettingsRequest.Builder().build(),
GetClusterSettingsRequest._ENDPOINT, this.transportOptions);
}
// ----- Endpoint: cluster.health
/**
* The cluster health API returns a simple status on the health of the cluster.
* You can also use the API to get the health status of only specified data
* streams and indices. For data streams, the API retrieves the health status of
* the stream’s backing indices. The cluster health status is: green, yellow or
* red. On the shard level, a red status indicates that the specific shard is
* not allocated in the cluster, yellow means that the primary shard is
* allocated but replicas are not, and green means that all shards are
* allocated. The index level status is controlled by the worst shard status.
* The cluster status is controlled by the worst index status.
*
* @see Documentation
* on elastic.co
*/
public HealthResponse health(HealthRequest request) throws IOException, ElasticsearchException {
@SuppressWarnings("unchecked")
JsonEndpoint endpoint = (JsonEndpoint) HealthRequest._ENDPOINT;
return this.transport.performRequest(request, endpoint, this.transportOptions);
}
/**
* The cluster health API returns a simple status on the health of the cluster.
* You can also use the API to get the health status of only specified data
* streams and indices. For data streams, the API retrieves the health status of
* the stream’s backing indices. The cluster health status is: green, yellow or
* red. On the shard level, a red status indicates that the specific shard is
* not allocated in the cluster, yellow means that the primary shard is
* allocated but replicas are not, and green means that all shards are
* allocated. The index level status is controlled by the worst shard status.
* The cluster status is controlled by the worst index status.
*
* @param fn
* a function that initializes a builder to create the
* {@link HealthRequest}
* @see Documentation
* on elastic.co
*/
public final HealthResponse health(Function> fn)
throws IOException, ElasticsearchException {
return health(fn.apply(new HealthRequest.Builder()).build());
}
/**
* The cluster health API returns a simple status on the health of the cluster.
* You can also use the API to get the health status of only specified data
* streams and indices. For data streams, the API retrieves the health status of
* the stream’s backing indices. The cluster health status is: green, yellow or
* red. On the shard level, a red status indicates that the specific shard is
* not allocated in the cluster, yellow means that the primary shard is
* allocated but replicas are not, and green means that all shards are
* allocated. The index level status is controlled by the worst shard status.
* The cluster status is controlled by the worst index status.
*
* @see Documentation
* on elastic.co
*/
public HealthResponse health() throws IOException, ElasticsearchException {
return this.transport.performRequest(new HealthRequest.Builder().build(), HealthRequest._ENDPOINT,
this.transportOptions);
}
// ----- Endpoint: cluster.info
/**
* Returns different information about the cluster.
*
* @see Documentation
* on elastic.co
*/
public ClusterInfoResponse info(ClusterInfoRequest request) throws IOException, ElasticsearchException {
@SuppressWarnings("unchecked")
JsonEndpoint endpoint = (JsonEndpoint) ClusterInfoRequest._ENDPOINT;
return this.transport.performRequest(request, endpoint, this.transportOptions);
}
/**
* Returns different information about the cluster.
*
* @param fn
* a function that initializes a builder to create the
* {@link ClusterInfoRequest}
* @see Documentation
* on elastic.co
*/
public final ClusterInfoResponse info(Function> fn)
throws IOException, ElasticsearchException {
return info(fn.apply(new ClusterInfoRequest.Builder()).build());
}
// ----- Endpoint: cluster.pending_tasks
/**
* Returns cluster-level changes (such as create index, update mapping, allocate
* or fail shard) that have not yet been executed. NOTE: This API returns a list
* of any pending updates to the cluster state. These are distinct from the
* tasks reported by the Task Management API which include periodic tasks and
* tasks initiated by the user, such as node stats, search queries, or create
* index requests. However, if a user-initiated task such as a create index
* command causes a cluster state update, the activity of this task might be
* reported by both task api and pending cluster tasks API.
*
* @see Documentation
* on elastic.co
*/
public PendingTasksResponse pendingTasks(PendingTasksRequest request) throws IOException, ElasticsearchException {
@SuppressWarnings("unchecked")
JsonEndpoint endpoint = (JsonEndpoint) PendingTasksRequest._ENDPOINT;
return this.transport.performRequest(request, endpoint, this.transportOptions);
}
/**
* Returns cluster-level changes (such as create index, update mapping, allocate
* or fail shard) that have not yet been executed. NOTE: This API returns a list
* of any pending updates to the cluster state. These are distinct from the
* tasks reported by the Task Management API which include periodic tasks and
* tasks initiated by the user, such as node stats, search queries, or create
* index requests. However, if a user-initiated task such as a create index
* command causes a cluster state update, the activity of this task might be
* reported by both task api and pending cluster tasks API.
*
* @param fn
* a function that initializes a builder to create the
* {@link PendingTasksRequest}
* @see Documentation
* on elastic.co
*/
public final PendingTasksResponse pendingTasks(
Function> fn)
throws IOException, ElasticsearchException {
return pendingTasks(fn.apply(new PendingTasksRequest.Builder()).build());
}
/**
* Returns cluster-level changes (such as create index, update mapping, allocate
* or fail shard) that have not yet been executed. NOTE: This API returns a list
* of any pending updates to the cluster state. These are distinct from the
* tasks reported by the Task Management API which include periodic tasks and
* tasks initiated by the user, such as node stats, search queries, or create
* index requests. However, if a user-initiated task such as a create index
* command causes a cluster state update, the activity of this task might be
* reported by both task api and pending cluster tasks API.
*
* @see Documentation
* on elastic.co
*/
public PendingTasksResponse pendingTasks() throws IOException, ElasticsearchException {
return this.transport.performRequest(new PendingTasksRequest.Builder().build(), PendingTasksRequest._ENDPOINT,
this.transportOptions);
}
// ----- Endpoint: cluster.post_voting_config_exclusions
/**
* Updates the cluster voting config exclusions by node ids or node names.
*
* @see Documentation
* on elastic.co
*/
public BooleanResponse postVotingConfigExclusions(PostVotingConfigExclusionsRequest request)
throws IOException, ElasticsearchException {
@SuppressWarnings("unchecked")
Endpoint endpoint = (Endpoint) PostVotingConfigExclusionsRequest._ENDPOINT;
return this.transport.performRequest(request, endpoint, this.transportOptions);
}
/**
* Updates the cluster voting config exclusions by node ids or node names.
*
* @param fn
* a function that initializes a builder to create the
* {@link PostVotingConfigExclusionsRequest}
* @see Documentation
* on elastic.co
*/
public final BooleanResponse postVotingConfigExclusions(
Function> fn)
throws IOException, ElasticsearchException {
return postVotingConfigExclusions(fn.apply(new PostVotingConfigExclusionsRequest.Builder()).build());
}
/**
* Updates the cluster voting config exclusions by node ids or node names.
*
* @see Documentation
* on elastic.co
*/
public BooleanResponse postVotingConfigExclusions() throws IOException, ElasticsearchException {
return this.transport.performRequest(new PostVotingConfigExclusionsRequest.Builder().build(),
PostVotingConfigExclusionsRequest._ENDPOINT, this.transportOptions);
}
// ----- Endpoint: cluster.put_component_template
/**
* Creates or updates a component template. Component templates are building
* blocks for constructing index templates that specify index mappings,
* settings, and aliases.
*
* An index template can be composed of multiple component templates. To use a
* component template, specify it in an index template’s
* composed_of
list. Component templates are only applied to new
* data streams and indices as part of a matching index template.
*
* Settings and mappings specified directly in the index template or the create
* index request override any settings or mappings specified in a component
* template.
*
* Component templates are only used during index creation. For data streams,
* this includes data stream creation and the creation of a stream’s backing
* indices. Changes to component templates do not affect existing indices,
* including a stream’s backing indices.
*
* You can use C-style /* *\/
block comments in component
* templates. You can include comments anywhere in the request body except
* before the opening curly bracket.
*
* @see Documentation
* on elastic.co
*/
public PutComponentTemplateResponse putComponentTemplate(PutComponentTemplateRequest request)
throws IOException, ElasticsearchException {
@SuppressWarnings("unchecked")
JsonEndpoint endpoint = (JsonEndpoint) PutComponentTemplateRequest._ENDPOINT;
return this.transport.performRequest(request, endpoint, this.transportOptions);
}
/**
* Creates or updates a component template. Component templates are building
* blocks for constructing index templates that specify index mappings,
* settings, and aliases.
*
* An index template can be composed of multiple component templates. To use a
* component template, specify it in an index template’s
* composed_of
list. Component templates are only applied to new
* data streams and indices as part of a matching index template.
*
* Settings and mappings specified directly in the index template or the create
* index request override any settings or mappings specified in a component
* template.
*
* Component templates are only used during index creation. For data streams,
* this includes data stream creation and the creation of a stream’s backing
* indices. Changes to component templates do not affect existing indices,
* including a stream’s backing indices.
*
* You can use C-style /* *\/
block comments in component
* templates. You can include comments anywhere in the request body except
* before the opening curly bracket.
*
* @param fn
* a function that initializes a builder to create the
* {@link PutComponentTemplateRequest}
* @see Documentation
* on elastic.co
*/
public final PutComponentTemplateResponse putComponentTemplate(
Function> fn)
throws IOException, ElasticsearchException {
return putComponentTemplate(fn.apply(new PutComponentTemplateRequest.Builder()).build());
}
// ----- Endpoint: cluster.put_settings
/**
* Updates the cluster settings.
*
* @see Documentation
* on elastic.co
*/
public PutClusterSettingsResponse putSettings(PutClusterSettingsRequest request)
throws IOException, ElasticsearchException {
@SuppressWarnings("unchecked")
JsonEndpoint endpoint = (JsonEndpoint) PutClusterSettingsRequest._ENDPOINT;
return this.transport.performRequest(request, endpoint, this.transportOptions);
}
/**
* Updates the cluster settings.
*
* @param fn
* a function that initializes a builder to create the
* {@link PutClusterSettingsRequest}
* @see Documentation
* on elastic.co
*/
public final PutClusterSettingsResponse putSettings(
Function> fn)
throws IOException, ElasticsearchException {
return putSettings(fn.apply(new PutClusterSettingsRequest.Builder()).build());
}
/**
* Updates the cluster settings.
*
* @see Documentation
* on elastic.co
*/
public PutClusterSettingsResponse putSettings() throws IOException, ElasticsearchException {
return this.transport.performRequest(new PutClusterSettingsRequest.Builder().build(),
PutClusterSettingsRequest._ENDPOINT, this.transportOptions);
}
// ----- Endpoint: cluster.remote_info
/**
* The cluster remote info API allows you to retrieve all of the configured
* remote cluster information. It returns connection and endpoint information
* keyed by the configured remote cluster alias.
*
* @see Documentation
* on elastic.co
*/
public RemoteInfoResponse remoteInfo() throws IOException, ElasticsearchException {
return this.transport.performRequest(RemoteInfoRequest._INSTANCE, RemoteInfoRequest._ENDPOINT,
this.transportOptions);
}
// ----- Endpoint: cluster.reroute
/**
* Allows to manually change the allocation of individual shards in the cluster.
*
* @see Documentation
* on elastic.co
*/
public RerouteResponse reroute(RerouteRequest request) throws IOException, ElasticsearchException {
@SuppressWarnings("unchecked")
JsonEndpoint endpoint = (JsonEndpoint) RerouteRequest._ENDPOINT;
return this.transport.performRequest(request, endpoint, this.transportOptions);
}
/**
* Allows to manually change the allocation of individual shards in the cluster.
*
* @param fn
* a function that initializes a builder to create the
* {@link RerouteRequest}
* @see Documentation
* on elastic.co
*/
public final RerouteResponse reroute(Function> fn)
throws IOException, ElasticsearchException {
return reroute(fn.apply(new RerouteRequest.Builder()).build());
}
/**
* Allows to manually change the allocation of individual shards in the cluster.
*
* @see Documentation
* on elastic.co
*/
public RerouteResponse reroute() throws IOException, ElasticsearchException {
return this.transport.performRequest(new RerouteRequest.Builder().build(), RerouteRequest._ENDPOINT,
this.transportOptions);
}
// ----- Endpoint: cluster.state
/**
* Returns a comprehensive information about the state of the cluster.
*
* @see Documentation
* on elastic.co
*/
public StateResponse state(StateRequest request) throws IOException, ElasticsearchException {
@SuppressWarnings("unchecked")
JsonEndpoint endpoint = (JsonEndpoint) StateRequest._ENDPOINT;
return this.transport.performRequest(request, endpoint, this.transportOptions);
}
/**
* Returns a comprehensive information about the state of the cluster.
*
* @param fn
* a function that initializes a builder to create the
* {@link StateRequest}
* @see Documentation
* on elastic.co
*/
public final StateResponse state(Function> fn)
throws IOException, ElasticsearchException {
return state(fn.apply(new StateRequest.Builder()).build());
}
/**
* Returns a comprehensive information about the state of the cluster.
*
* @see Documentation
* on elastic.co
*/
public StateResponse state() throws IOException, ElasticsearchException {
return this.transport.performRequest(new StateRequest.Builder().build(), StateRequest._ENDPOINT,
this.transportOptions);
}
// ----- Endpoint: cluster.stats
/**
* Returns cluster statistics. It returns basic index metrics (shard numbers,
* store size, memory usage) and information about the current nodes that form
* the cluster (number, roles, os, jvm versions, memory usage, cpu and installed
* plugins).
*
* @see Documentation
* on elastic.co
*/
public ClusterStatsResponse stats(ClusterStatsRequest request) throws IOException, ElasticsearchException {
@SuppressWarnings("unchecked")
JsonEndpoint endpoint = (JsonEndpoint) ClusterStatsRequest._ENDPOINT;
return this.transport.performRequest(request, endpoint, this.transportOptions);
}
/**
* Returns cluster statistics. It returns basic index metrics (shard numbers,
* store size, memory usage) and information about the current nodes that form
* the cluster (number, roles, os, jvm versions, memory usage, cpu and installed
* plugins).
*
* @param fn
* a function that initializes a builder to create the
* {@link ClusterStatsRequest}
* @see Documentation
* on elastic.co
*/
public final ClusterStatsResponse stats(
Function> fn)
throws IOException, ElasticsearchException {
return stats(fn.apply(new ClusterStatsRequest.Builder()).build());
}
/**
* Returns cluster statistics. It returns basic index metrics (shard numbers,
* store size, memory usage) and information about the current nodes that form
* the cluster (number, roles, os, jvm versions, memory usage, cpu and installed
* plugins).
*
* @see Documentation
* on elastic.co
*/
public ClusterStatsResponse stats() throws IOException, ElasticsearchException {
return this.transport.performRequest(new ClusterStatsRequest.Builder().build(), ClusterStatsRequest._ENDPOINT,
this.transportOptions);
}
}