/* * Licensed to Elasticsearch under one or more contributor * license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright * ownership. Elasticsearch 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 org.elasticsearch.client; import org.elasticsearch.action.ActionFuture; import org.elasticsearch.action.ActionListener; import org.elasticsearch.action.admin.cluster.allocation.ClusterAllocationExplainRequest; import org.elasticsearch.action.admin.cluster.allocation.ClusterAllocationExplainRequestBuilder; import org.elasticsearch.action.admin.cluster.allocation.ClusterAllocationExplainResponse; import org.elasticsearch.action.admin.cluster.health.ClusterHealthRequest; import org.elasticsearch.action.admin.cluster.health.ClusterHealthRequestBuilder; import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse; import org.elasticsearch.action.admin.cluster.node.hotthreads.NodesHotThreadsRequest; import org.elasticsearch.action.admin.cluster.node.hotthreads.NodesHotThreadsRequestBuilder; import org.elasticsearch.action.admin.cluster.node.hotthreads.NodesHotThreadsResponse; import org.elasticsearch.action.admin.cluster.node.info.NodesInfoRequest; import org.elasticsearch.action.admin.cluster.node.info.NodesInfoRequestBuilder; import org.elasticsearch.action.admin.cluster.node.info.NodesInfoResponse; import org.elasticsearch.action.admin.cluster.node.stats.NodesStatsRequest; import org.elasticsearch.action.admin.cluster.node.stats.NodesStatsRequestBuilder; import org.elasticsearch.action.admin.cluster.node.stats.NodesStatsResponse; import org.elasticsearch.action.admin.cluster.node.tasks.cancel.CancelTasksRequest; import org.elasticsearch.action.admin.cluster.node.tasks.cancel.CancelTasksRequestBuilder; import org.elasticsearch.action.admin.cluster.node.tasks.cancel.CancelTasksResponse; import org.elasticsearch.action.admin.cluster.node.tasks.get.GetTaskRequest; import org.elasticsearch.action.admin.cluster.node.tasks.get.GetTaskRequestBuilder; import org.elasticsearch.action.admin.cluster.node.tasks.get.GetTaskResponse; import org.elasticsearch.action.admin.cluster.node.tasks.list.ListTasksRequest; import org.elasticsearch.action.admin.cluster.node.tasks.list.ListTasksRequestBuilder; import org.elasticsearch.action.admin.cluster.node.tasks.list.ListTasksResponse; import org.elasticsearch.action.admin.cluster.repositories.delete.DeleteRepositoryRequest; import org.elasticsearch.action.admin.cluster.repositories.delete.DeleteRepositoryRequestBuilder; import org.elasticsearch.action.admin.cluster.repositories.delete.DeleteRepositoryResponse; import org.elasticsearch.action.admin.cluster.repositories.get.GetRepositoriesRequest; import org.elasticsearch.action.admin.cluster.repositories.get.GetRepositoriesRequestBuilder; import org.elasticsearch.action.admin.cluster.repositories.get.GetRepositoriesResponse; import org.elasticsearch.action.admin.cluster.repositories.put.PutRepositoryRequest; import org.elasticsearch.action.admin.cluster.repositories.put.PutRepositoryRequestBuilder; import org.elasticsearch.action.admin.cluster.repositories.put.PutRepositoryResponse; import org.elasticsearch.action.admin.cluster.repositories.verify.VerifyRepositoryRequest; import org.elasticsearch.action.admin.cluster.repositories.verify.VerifyRepositoryRequestBuilder; import org.elasticsearch.action.admin.cluster.repositories.verify.VerifyRepositoryResponse; import org.elasticsearch.action.admin.cluster.reroute.ClusterRerouteRequest; import org.elasticsearch.action.admin.cluster.reroute.ClusterRerouteRequestBuilder; import org.elasticsearch.action.admin.cluster.reroute.ClusterRerouteResponse; import org.elasticsearch.action.admin.cluster.settings.ClusterUpdateSettingsRequest; import org.elasticsearch.action.admin.cluster.settings.ClusterUpdateSettingsRequestBuilder; import org.elasticsearch.action.admin.cluster.settings.ClusterUpdateSettingsResponse; import org.elasticsearch.action.admin.cluster.shards.ClusterSearchShardsRequest; import org.elasticsearch.action.admin.cluster.shards.ClusterSearchShardsRequestBuilder; import org.elasticsearch.action.admin.cluster.shards.ClusterSearchShardsResponse; import org.elasticsearch.action.admin.cluster.snapshots.create.CreateSnapshotRequest; import org.elasticsearch.action.admin.cluster.snapshots.create.CreateSnapshotRequestBuilder; import org.elasticsearch.action.admin.cluster.snapshots.create.CreateSnapshotResponse; import org.elasticsearch.action.admin.cluster.snapshots.delete.DeleteSnapshotRequest; import org.elasticsearch.action.admin.cluster.snapshots.delete.DeleteSnapshotRequestBuilder; import org.elasticsearch.action.admin.cluster.snapshots.delete.DeleteSnapshotResponse; import org.elasticsearch.action.admin.cluster.snapshots.get.GetSnapshotsRequest; import org.elasticsearch.action.admin.cluster.snapshots.get.GetSnapshotsRequestBuilder; import org.elasticsearch.action.admin.cluster.snapshots.get.GetSnapshotsResponse; import org.elasticsearch.action.admin.cluster.snapshots.restore.RestoreSnapshotRequest; import org.elasticsearch.action.admin.cluster.snapshots.restore.RestoreSnapshotRequestBuilder; import org.elasticsearch.action.admin.cluster.snapshots.restore.RestoreSnapshotResponse; import org.elasticsearch.action.admin.cluster.snapshots.status.SnapshotsStatusRequest; import org.elasticsearch.action.admin.cluster.snapshots.status.SnapshotsStatusRequestBuilder; import org.elasticsearch.action.admin.cluster.snapshots.status.SnapshotsStatusResponse; import org.elasticsearch.action.admin.cluster.state.ClusterStateRequest; import org.elasticsearch.action.admin.cluster.state.ClusterStateRequestBuilder; import org.elasticsearch.action.admin.cluster.state.ClusterStateResponse; import org.elasticsearch.action.admin.cluster.stats.ClusterStatsRequest; import org.elasticsearch.action.admin.cluster.stats.ClusterStatsRequestBuilder; import org.elasticsearch.action.admin.cluster.stats.ClusterStatsResponse; import org.elasticsearch.action.admin.cluster.storedscripts.DeleteStoredScriptRequest; import org.elasticsearch.action.admin.cluster.storedscripts.DeleteStoredScriptRequestBuilder; import org.elasticsearch.action.admin.cluster.storedscripts.DeleteStoredScriptResponse; import org.elasticsearch.action.admin.cluster.storedscripts.GetStoredScriptRequest; import org.elasticsearch.action.admin.cluster.storedscripts.GetStoredScriptRequestBuilder; import org.elasticsearch.action.admin.cluster.storedscripts.GetStoredScriptResponse; import org.elasticsearch.action.admin.cluster.storedscripts.PutStoredScriptRequest; import org.elasticsearch.action.admin.cluster.storedscripts.PutStoredScriptRequestBuilder; import org.elasticsearch.action.admin.cluster.storedscripts.PutStoredScriptResponse; import org.elasticsearch.action.admin.cluster.tasks.PendingClusterTasksRequest; import org.elasticsearch.action.admin.cluster.tasks.PendingClusterTasksRequestBuilder; import org.elasticsearch.action.admin.cluster.tasks.PendingClusterTasksResponse; import org.elasticsearch.action.ingest.DeletePipelineRequest; import org.elasticsearch.action.ingest.DeletePipelineRequestBuilder; import org.elasticsearch.action.ingest.GetPipelineRequest; import org.elasticsearch.action.ingest.GetPipelineRequestBuilder; import org.elasticsearch.action.ingest.GetPipelineResponse; import org.elasticsearch.action.ingest.PutPipelineRequest; import org.elasticsearch.action.ingest.PutPipelineRequestBuilder; import org.elasticsearch.action.ingest.SimulatePipelineRequest; import org.elasticsearch.action.ingest.SimulatePipelineRequestBuilder; import org.elasticsearch.action.ingest.SimulatePipelineResponse; import org.elasticsearch.action.ingest.WritePipelineResponse; import org.elasticsearch.common.Nullable; import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.tasks.TaskId; /** * Administrative actions/operations against indices. * * @see AdminClient#cluster() */ public interface ClusterAdminClient extends ElasticsearchClient { /** * The health of the cluster. * * @param request The cluster state request * @return The result future * @see Requests#clusterHealthRequest(String...) */ ActionFuture<ClusterHealthResponse> health(ClusterHealthRequest request); /** * The health of the cluster. * * @param request The cluster state request * @param listener A listener to be notified with a result * @see Requests#clusterHealthRequest(String...) */ void health(ClusterHealthRequest request, ActionListener<ClusterHealthResponse> listener); /** * The health of the cluster. */ ClusterHealthRequestBuilder prepareHealth(String... indices); /** * The state of the cluster. * * @param request The cluster state request. * @return The result future * @see Requests#clusterStateRequest() */ ActionFuture<ClusterStateResponse> state(ClusterStateRequest request); /** * The state of the cluster. * * @param request The cluster state request. * @param listener A listener to be notified with a result * @see Requests#clusterStateRequest() */ void state(ClusterStateRequest request, ActionListener<ClusterStateResponse> listener); /** * The state of the cluster. */ ClusterStateRequestBuilder prepareState(); /** * Updates settings in the cluster. */ ActionFuture<ClusterUpdateSettingsResponse> updateSettings(ClusterUpdateSettingsRequest request); /** * Update settings in the cluster. */ void updateSettings(ClusterUpdateSettingsRequest request, ActionListener<ClusterUpdateSettingsResponse> listener); /** * Update settings in the cluster. */ ClusterUpdateSettingsRequestBuilder prepareUpdateSettings(); /** * Reroutes allocation of shards. Advance API. */ ActionFuture<ClusterRerouteResponse> reroute(ClusterRerouteRequest request); /** * Reroutes allocation of shards. Advance API. */ void reroute(ClusterRerouteRequest request, ActionListener<ClusterRerouteResponse> listener); /** * Update settings in the cluster. */ ClusterRerouteRequestBuilder prepareReroute(); /** * Nodes info of the cluster. * * @param request The nodes info request * @return The result future * @see org.elasticsearch.client.Requests#nodesInfoRequest(String...) */ ActionFuture<NodesInfoResponse> nodesInfo(NodesInfoRequest request); /** * Nodes info of the cluster. * * @param request The nodes info request * @param listener A listener to be notified with a result * @see org.elasticsearch.client.Requests#nodesInfoRequest(String...) */ void nodesInfo(NodesInfoRequest request, ActionListener<NodesInfoResponse> listener); /** * Nodes info of the cluster. */ NodesInfoRequestBuilder prepareNodesInfo(String... nodesIds); /** * Cluster wide aggregated stats. * * @param request The cluster stats request * @return The result future * @see org.elasticsearch.client.Requests#clusterStatsRequest */ ActionFuture<ClusterStatsResponse> clusterStats(ClusterStatsRequest request); /** * Cluster wide aggregated stats * * @param request The cluster stats request * @param listener A listener to be notified with a result * @see org.elasticsearch.client.Requests#clusterStatsRequest() */ void clusterStats(ClusterStatsRequest request, ActionListener<ClusterStatsResponse> listener); ClusterStatsRequestBuilder prepareClusterStats(); /** * Nodes stats of the cluster. * * @param request The nodes stats request * @return The result future * @see org.elasticsearch.client.Requests#nodesStatsRequest(String...) */ ActionFuture<NodesStatsResponse> nodesStats(NodesStatsRequest request); /** * Nodes stats of the cluster. * * @param request The nodes info request * @param listener A listener to be notified with a result * @see org.elasticsearch.client.Requests#nodesStatsRequest(String...) */ void nodesStats(NodesStatsRequest request, ActionListener<NodesStatsResponse> listener); /** * Nodes stats of the cluster. */ NodesStatsRequestBuilder prepareNodesStats(String... nodesIds); /** * Returns top N hot-threads samples per node. The hot-threads are only sampled * for the node ids specified in the request. */ ActionFuture<NodesHotThreadsResponse> nodesHotThreads(NodesHotThreadsRequest request); /** * Returns top N hot-threads samples per node. The hot-threads are only sampled * for the node ids specified in the request. */ void nodesHotThreads(NodesHotThreadsRequest request, ActionListener<NodesHotThreadsResponse> listener); /** * Returns a request builder to fetch top N hot-threads samples per node. The hot-threads are only sampled * for the node ids provided. Note: Use <tt>*</tt> to fetch samples for all nodes */ NodesHotThreadsRequestBuilder prepareNodesHotThreads(String... nodesIds); /** * List tasks * * @param request The nodes tasks request * @return The result future * @see org.elasticsearch.client.Requests#listTasksRequest() */ ActionFuture<ListTasksResponse> listTasks(ListTasksRequest request); /** * List active tasks * * @param request The nodes tasks request * @param listener A listener to be notified with a result * @see org.elasticsearch.client.Requests#listTasksRequest() */ void listTasks(ListTasksRequest request, ActionListener<ListTasksResponse> listener); /** * List active tasks */ ListTasksRequestBuilder prepareListTasks(String... nodesIds); /** * Get a task. * * @param request the request * @return the result future * @see org.elasticsearch.client.Requests#getTaskRequest() */ ActionFuture<GetTaskResponse> getTask(GetTaskRequest request); /** * Get a task. * * @param request the request * @param listener A listener to be notified with the result * @see org.elasticsearch.client.Requests#getTaskRequest() */ void getTask(GetTaskRequest request, ActionListener<GetTaskResponse> listener); /** * Fetch a task by id. */ GetTaskRequestBuilder prepareGetTask(String taskId); /** * Fetch a task by id. */ GetTaskRequestBuilder prepareGetTask(TaskId taskId); /** * Cancel tasks * * @param request The nodes tasks request * @return The result future * @see org.elasticsearch.client.Requests#cancelTasksRequest() */ ActionFuture<CancelTasksResponse> cancelTasks(CancelTasksRequest request); /** * Cancel active tasks * * @param request The nodes tasks request * @param listener A listener to be notified with a result * @see org.elasticsearch.client.Requests#cancelTasksRequest() */ void cancelTasks(CancelTasksRequest request, ActionListener<CancelTasksResponse> listener); /** * Cancel active tasks */ CancelTasksRequestBuilder prepareCancelTasks(String... nodesIds); /** * Returns list of shards the given search would be executed on. */ ActionFuture<ClusterSearchShardsResponse> searchShards(ClusterSearchShardsRequest request); /** * Returns list of shards the given search would be executed on. */ void searchShards(ClusterSearchShardsRequest request, ActionListener<ClusterSearchShardsResponse> listener); /** * Returns list of shards the given search would be executed on. */ ClusterSearchShardsRequestBuilder prepareSearchShards(); /** * Returns list of shards the given search would be executed on. */ ClusterSearchShardsRequestBuilder prepareSearchShards(String... indices); /** * Registers a snapshot repository. */ ActionFuture<PutRepositoryResponse> putRepository(PutRepositoryRequest request); /** * Registers a snapshot repository. */ void putRepository(PutRepositoryRequest request, ActionListener<PutRepositoryResponse> listener); /** * Registers a snapshot repository. */ PutRepositoryRequestBuilder preparePutRepository(String name); /** * Unregisters a repository. */ ActionFuture<DeleteRepositoryResponse> deleteRepository(DeleteRepositoryRequest request); /** * Unregisters a repository. */ void deleteRepository(DeleteRepositoryRequest request, ActionListener<DeleteRepositoryResponse> listener); /** * Unregisters a repository. */ DeleteRepositoryRequestBuilder prepareDeleteRepository(String name); /** * Gets repositories. */ ActionFuture<GetRepositoriesResponse> getRepositories(GetRepositoriesRequest request); /** * Gets repositories. */ void getRepositories(GetRepositoriesRequest request, ActionListener<GetRepositoriesResponse> listener); /** * Gets repositories. */ GetRepositoriesRequestBuilder prepareGetRepositories(String... name); /** * Verifies a repository. */ ActionFuture<VerifyRepositoryResponse> verifyRepository(VerifyRepositoryRequest request); /** * Verifies a repository. */ void verifyRepository(VerifyRepositoryRequest request, ActionListener<VerifyRepositoryResponse> listener); /** * Verifies a repository. */ VerifyRepositoryRequestBuilder prepareVerifyRepository(String name); /** * Creates a new snapshot. */ ActionFuture<CreateSnapshotResponse> createSnapshot(CreateSnapshotRequest request); /** * Creates a new snapshot. */ void createSnapshot(CreateSnapshotRequest request, ActionListener<CreateSnapshotResponse> listener); /** * Creates a new snapshot. */ CreateSnapshotRequestBuilder prepareCreateSnapshot(String repository, String name); /** * Get snapshot. */ ActionFuture<GetSnapshotsResponse> getSnapshots(GetSnapshotsRequest request); /** * Get snapshot. */ void getSnapshots(GetSnapshotsRequest request, ActionListener<GetSnapshotsResponse> listener); /** * Get snapshot. */ GetSnapshotsRequestBuilder prepareGetSnapshots(String repository); /** * Delete snapshot. */ ActionFuture<DeleteSnapshotResponse> deleteSnapshot(DeleteSnapshotRequest request); /** * Delete snapshot. */ void deleteSnapshot(DeleteSnapshotRequest request, ActionListener<DeleteSnapshotResponse> listener); /** * Delete snapshot. */ DeleteSnapshotRequestBuilder prepareDeleteSnapshot(String repository, String snapshot); /** * Restores a snapshot. */ ActionFuture<RestoreSnapshotResponse> restoreSnapshot(RestoreSnapshotRequest request); /** * Restores a snapshot. */ void restoreSnapshot(RestoreSnapshotRequest request, ActionListener<RestoreSnapshotResponse> listener); /** * Restores a snapshot. */ RestoreSnapshotRequestBuilder prepareRestoreSnapshot(String repository, String snapshot); /** * Returns a list of the pending cluster tasks, that are scheduled to be executed. This includes operations * that update the cluster state (for example, a create index operation) */ void pendingClusterTasks(PendingClusterTasksRequest request, ActionListener<PendingClusterTasksResponse> listener); /** * Returns a list of the pending cluster tasks, that are scheduled to be executed. This includes operations * that update the cluster state (for example, a create index operation) */ ActionFuture<PendingClusterTasksResponse> pendingClusterTasks(PendingClusterTasksRequest request); /** * Returns a list of the pending cluster tasks, that are scheduled to be executed. This includes operations * that update the cluster state (for example, a create index operation) */ PendingClusterTasksRequestBuilder preparePendingClusterTasks(); /** * Get snapshot status. */ ActionFuture<SnapshotsStatusResponse> snapshotsStatus(SnapshotsStatusRequest request); /** * Get snapshot status. */ void snapshotsStatus(SnapshotsStatusRequest request, ActionListener<SnapshotsStatusResponse> listener); /** * Get snapshot status. */ SnapshotsStatusRequestBuilder prepareSnapshotStatus(String repository); /** * Get snapshot status. */ SnapshotsStatusRequestBuilder prepareSnapshotStatus(); /** * Stores an ingest pipeline */ void putPipeline(PutPipelineRequest request, ActionListener<WritePipelineResponse> listener); /** * Stores an ingest pipeline */ ActionFuture<WritePipelineResponse> putPipeline(PutPipelineRequest request); /** * Stores an ingest pipeline * @deprecated use {@link #preparePutPipeline(String, BytesReference, XContentType)} */ @Deprecated PutPipelineRequestBuilder preparePutPipeline(String id, BytesReference source); /** * Stores an ingest pipeline */ PutPipelineRequestBuilder preparePutPipeline(String id, BytesReference source, XContentType xContentType); /** * Deletes a stored ingest pipeline */ void deletePipeline(DeletePipelineRequest request, ActionListener<WritePipelineResponse> listener); /** * Deletes a stored ingest pipeline */ ActionFuture<WritePipelineResponse> deletePipeline(DeletePipelineRequest request); /** * Deletes a stored ingest pipeline */ DeletePipelineRequestBuilder prepareDeletePipeline(); /** * Deletes a stored ingest pipeline */ DeletePipelineRequestBuilder prepareDeletePipeline(String id); /** * Returns a stored ingest pipeline */ void getPipeline(GetPipelineRequest request, ActionListener<GetPipelineResponse> listener); /** * Returns a stored ingest pipeline */ ActionFuture<GetPipelineResponse> getPipeline(GetPipelineRequest request); /** * Returns a stored ingest pipeline */ GetPipelineRequestBuilder prepareGetPipeline(String... ids); /** * Simulates an ingest pipeline */ void simulatePipeline(SimulatePipelineRequest request, ActionListener<SimulatePipelineResponse> listener); /** * Simulates an ingest pipeline */ ActionFuture<SimulatePipelineResponse> simulatePipeline(SimulatePipelineRequest request); /** * Simulates an ingest pipeline */ @Deprecated SimulatePipelineRequestBuilder prepareSimulatePipeline(BytesReference source); /** * Simulates an ingest pipeline */ SimulatePipelineRequestBuilder prepareSimulatePipeline(BytesReference source, XContentType xContentType); /** * Explain the allocation of a shard */ void allocationExplain(ClusterAllocationExplainRequest request, ActionListener<ClusterAllocationExplainResponse> listener); /** * Explain the allocation of a shard */ ActionFuture<ClusterAllocationExplainResponse> allocationExplain(ClusterAllocationExplainRequest request); /** * Explain the allocation of a shard */ ClusterAllocationExplainRequestBuilder prepareAllocationExplain(); /** * Store a script in the cluster state */ PutStoredScriptRequestBuilder preparePutStoredScript(); /** * Delete a script from the cluster state */ void deleteStoredScript(DeleteStoredScriptRequest request, ActionListener<DeleteStoredScriptResponse> listener); /** * Delete a script from the cluster state */ ActionFuture<DeleteStoredScriptResponse> deleteStoredScript(DeleteStoredScriptRequest request); /** * Delete a script from the cluster state */ DeleteStoredScriptRequestBuilder prepareDeleteStoredScript(); /** * Delete a script from the cluster state */ DeleteStoredScriptRequestBuilder prepareDeleteStoredScript(String scriptLang, String id); /** * Store a script in the cluster state */ void putStoredScript(PutStoredScriptRequest request, ActionListener<PutStoredScriptResponse> listener); /** * Store a script in the cluster state */ ActionFuture<PutStoredScriptResponse> putStoredScript(PutStoredScriptRequest request); /** * Get a script from the cluster state */ GetStoredScriptRequestBuilder prepareGetStoredScript(); /** * Get a script from the cluster state */ GetStoredScriptRequestBuilder prepareGetStoredScript(@Nullable String scriptLang, String id); /** * Get a script from the cluster state */ void getStoredScript(GetStoredScriptRequest request, ActionListener<GetStoredScriptResponse> listener); /** * Get a script from the cluster state */ ActionFuture<GetStoredScriptResponse> getStoredScript(GetStoredScriptRequest request); }