/* * Licensed to ElasticSearch and Shay Banon 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.*; import org.elasticsearch.action.admin.indices.IndicesAction; import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest; import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequestBuilder; import org.elasticsearch.action.admin.indices.alias.IndicesAliasesResponse; import org.elasticsearch.action.admin.indices.analyze.AnalyzeRequest; import org.elasticsearch.action.admin.indices.analyze.AnalyzeRequestBuilder; import org.elasticsearch.action.admin.indices.analyze.AnalyzeResponse; import org.elasticsearch.action.admin.indices.cache.clear.ClearIndicesCacheRequest; import org.elasticsearch.action.admin.indices.cache.clear.ClearIndicesCacheRequestBuilder; import org.elasticsearch.action.admin.indices.cache.clear.ClearIndicesCacheResponse; import org.elasticsearch.action.admin.indices.close.CloseIndexRequest; import org.elasticsearch.action.admin.indices.close.CloseIndexRequestBuilder; import org.elasticsearch.action.admin.indices.close.CloseIndexResponse; import org.elasticsearch.action.admin.indices.create.CreateIndexRequest; import org.elasticsearch.action.admin.indices.create.CreateIndexRequestBuilder; import org.elasticsearch.action.admin.indices.create.CreateIndexResponse; import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest; import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequestBuilder; import org.elasticsearch.action.admin.indices.delete.DeleteIndexResponse; import org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsRequest; import org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsRequestBuilder; import org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsResponse; import org.elasticsearch.action.admin.indices.exists.types.TypesExistsRequest; import org.elasticsearch.action.admin.indices.exists.types.TypesExistsRequestBuilder; import org.elasticsearch.action.admin.indices.exists.types.TypesExistsResponse; import org.elasticsearch.action.admin.indices.flush.FlushRequest; import org.elasticsearch.action.admin.indices.flush.FlushRequestBuilder; import org.elasticsearch.action.admin.indices.flush.FlushResponse; import org.elasticsearch.action.admin.indices.gateway.snapshot.GatewaySnapshotRequest; import org.elasticsearch.action.admin.indices.gateway.snapshot.GatewaySnapshotRequestBuilder; import org.elasticsearch.action.admin.indices.gateway.snapshot.GatewaySnapshotResponse; import org.elasticsearch.action.admin.indices.mapping.delete.DeleteMappingRequest; import org.elasticsearch.action.admin.indices.mapping.delete.DeleteMappingRequestBuilder; import org.elasticsearch.action.admin.indices.mapping.delete.DeleteMappingResponse; import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest; import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequestBuilder; import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse; import org.elasticsearch.action.admin.indices.open.OpenIndexRequest; import org.elasticsearch.action.admin.indices.open.OpenIndexRequestBuilder; import org.elasticsearch.action.admin.indices.open.OpenIndexResponse; import org.elasticsearch.action.admin.indices.optimize.OptimizeRequest; import org.elasticsearch.action.admin.indices.optimize.OptimizeRequestBuilder; import org.elasticsearch.action.admin.indices.optimize.OptimizeResponse; import org.elasticsearch.action.admin.indices.refresh.RefreshRequest; import org.elasticsearch.action.admin.indices.refresh.RefreshRequestBuilder; import org.elasticsearch.action.admin.indices.refresh.RefreshResponse; import org.elasticsearch.action.admin.indices.segments.IndicesSegmentResponse; import org.elasticsearch.action.admin.indices.segments.IndicesSegmentsRequest; import org.elasticsearch.action.admin.indices.segments.IndicesSegmentsRequestBuilder; import org.elasticsearch.action.admin.indices.settings.UpdateSettingsRequest; import org.elasticsearch.action.admin.indices.settings.UpdateSettingsRequestBuilder; import org.elasticsearch.action.admin.indices.settings.UpdateSettingsResponse; import org.elasticsearch.action.admin.indices.stats.IndicesStats; import org.elasticsearch.action.admin.indices.stats.IndicesStatsRequest; import org.elasticsearch.action.admin.indices.stats.IndicesStatsRequestBuilder; import org.elasticsearch.action.admin.indices.status.IndicesStatusRequest; import org.elasticsearch.action.admin.indices.status.IndicesStatusRequestBuilder; import org.elasticsearch.action.admin.indices.status.IndicesStatusResponse; import org.elasticsearch.action.admin.indices.template.delete.DeleteIndexTemplateRequest; import org.elasticsearch.action.admin.indices.template.delete.DeleteIndexTemplateRequestBuilder; import org.elasticsearch.action.admin.indices.template.delete.DeleteIndexTemplateResponse; import org.elasticsearch.action.admin.indices.template.put.PutIndexTemplateRequest; import org.elasticsearch.action.admin.indices.template.put.PutIndexTemplateRequestBuilder; import org.elasticsearch.action.admin.indices.template.put.PutIndexTemplateResponse; import org.elasticsearch.action.admin.indices.validate.query.ValidateQueryRequest; import org.elasticsearch.action.admin.indices.validate.query.ValidateQueryRequestBuilder; import org.elasticsearch.action.admin.indices.validate.query.ValidateQueryResponse; import org.elasticsearch.action.admin.indices.warmer.delete.DeleteWarmerRequest; import org.elasticsearch.action.admin.indices.warmer.delete.DeleteWarmerRequestBuilder; import org.elasticsearch.action.admin.indices.warmer.delete.DeleteWarmerResponse; import org.elasticsearch.action.admin.indices.warmer.put.PutWarmerRequest; import org.elasticsearch.action.admin.indices.warmer.put.PutWarmerRequestBuilder; import org.elasticsearch.action.admin.indices.warmer.put.PutWarmerResponse; import org.elasticsearch.client.internal.InternalIndicesAdminClient; import org.elasticsearch.common.Nullable; /** * Administrative actions/operations against indices. * * @see AdminClient#indices() */ public interface ServerIndicesAdminClient extends InternalIndicesAdminClient { <Request extends ActionRequest, Response extends ActionResponse, RequestBuilder extends ActionRequestBuilder<Request, Response, RequestBuilder>> ActionFuture<Response> execute(final IndicesAction<Request, Response, RequestBuilder> action, final Request request); <Request extends ActionRequest, Response extends ActionResponse, RequestBuilder extends ActionRequestBuilder<Request, Response, RequestBuilder>> void execute(final IndicesAction<Request, Response, RequestBuilder> action, final Request request, ActionListener<Response> listener); <Request extends ActionRequest, Response extends ActionResponse, RequestBuilder extends ActionRequestBuilder<Request, Response, RequestBuilder>> RequestBuilder prepareExecute(final IndicesAction<Request, Response, RequestBuilder> action); /** * Indices Exists. * * @param request The indices exists request * @return The result future * @see Requests#indicesExistsRequest(String...) */ ActionFuture<IndicesExistsResponse> exists(IndicesExistsRequest request); /** * The status of one or more indices. * * @param request The indices status request * @param listener A listener to be notified with a result * @see Requests#indicesExistsRequest(String...) */ void exists(IndicesExistsRequest request, ActionListener<IndicesExistsResponse> listener); /** * Indices exists. */ IndicesExistsRequestBuilder prepareExists(String... indices); /** * Types Exists. * * @param request The types exists request * @return The result future */ ActionFuture<TypesExistsResponse> typesExists(TypesExistsRequest request); /** * Types exists * * @param request The types exists * @param listener A listener to be notified with a result */ void typesExists(TypesExistsRequest request, ActionListener<TypesExistsResponse> listener); /** * Indices exists. */ TypesExistsRequestBuilder prepareTypesExists(String... index); /** * Indices stats. */ ActionFuture<IndicesStats> stats(IndicesStatsRequest request); /** * Indices stats. */ void stats(IndicesStatsRequest request, ActionListener<IndicesStats> listener); /** * Indices stats. */ IndicesStatsRequestBuilder prepareStats(String... indices); /** * The status of one or more indices. * * @param request The indices status request * @return The result future * @see Requests#indicesStatusRequest(String...) */ ActionFuture<IndicesStatusResponse> status(IndicesStatusRequest request); /** * The status of one or more indices. * * @param request The indices status request * @param listener A listener to be notified with a result * @see Requests#indicesStatusRequest(String...) */ void status(IndicesStatusRequest request, ActionListener<IndicesStatusResponse> listener); /** * The status of one or more indices. */ IndicesStatusRequestBuilder prepareStatus(String... indices); /** * The segments of one or more indices. * * @param request The indices segments request * @return The result future * @see Requests#indicesSegmentsRequest(String...) */ ActionFuture<IndicesSegmentResponse> segments(IndicesSegmentsRequest request); /** * The segments of one or more indices. * * @param request The indices segments request * @param listener A listener to be notified with a result * @see Requests#indicesSegmentsRequest(String...) */ void segments(IndicesSegmentsRequest request, ActionListener<IndicesSegmentResponse> listener); /** * The segments of one or more indices. */ IndicesSegmentsRequestBuilder prepareSegments(String... indices); /** * Creates an index using an explicit request allowing to specify the settings of the index. * * @param request The create index request * @return The result future * @see org.elasticsearch.client.Requests#createIndexRequest(String) */ ActionFuture<CreateIndexResponse> create(CreateIndexRequest request); /** * Creates an index using an explicit request allowing to specify the settings of the index. * * @param request The create index request * @param listener A listener to be notified with a result * @see org.elasticsearch.client.Requests#createIndexRequest(String) */ void create(CreateIndexRequest request, ActionListener<CreateIndexResponse> listener); /** * Creates an index using an explicit request allowing to specify the settings of the index. * * @param index The index name to create */ CreateIndexRequestBuilder prepareCreate(String index); /** * Deletes an index based on the index name. * * @param request The delete index request * @return The result future * @see org.elasticsearch.client.Requests#deleteIndexRequest(String) */ ActionFuture<DeleteIndexResponse> delete(DeleteIndexRequest request); /** * Deletes an index based on the index name. * * @param request The delete index request * @param listener A listener to be notified with a result * @see org.elasticsearch.client.Requests#deleteIndexRequest(String) */ void delete(DeleteIndexRequest request, ActionListener<DeleteIndexResponse> listener); /** * Deletes an index based on the index name. * * @param indices The indices to delete. Empty array to delete all indices. */ DeleteIndexRequestBuilder prepareDelete(String... indices); /** * Closes an index based on the index name. * * @param request The close index request * @return The result future * @see org.elasticsearch.client.Requests#closeIndexRequest(String) */ ActionFuture<CloseIndexResponse> close(CloseIndexRequest request); /** * Closes an index based on the index name. * * @param request The close index request * @param listener A listener to be notified with a result * @see org.elasticsearch.client.Requests#closeIndexRequest(String) */ void close(CloseIndexRequest request, ActionListener<CloseIndexResponse> listener); /** * Closes an index based on the index name. * * @param index The index name to close */ CloseIndexRequestBuilder prepareClose(String index); /** * OPen an index based on the index name. * * @param request The close index request * @return The result future * @see org.elasticsearch.client.Requests#openIndexRequest(String) */ ActionFuture<OpenIndexResponse> open(OpenIndexRequest request); /** * Open an index based on the index name. * * @param request The close index request * @param listener A listener to be notified with a result * @see org.elasticsearch.client.Requests#openIndexRequest(String) */ void open(OpenIndexRequest request, ActionListener<OpenIndexResponse> listener); /** * Opens an index based on the index name. * * @param index The index name to close */ OpenIndexRequestBuilder prepareOpen(String index); /** * Explicitly refresh one or more indices (making the content indexed since the last refresh searchable). * * @param request The refresh request * @return The result future * @see org.elasticsearch.client.Requests#refreshRequest(String...) */ ActionFuture<RefreshResponse> refresh(RefreshRequest request); /** * Explicitly refresh one or more indices (making the content indexed since the last refresh searchable). * * @param request The refresh request * @param listener A listener to be notified with a result * @see org.elasticsearch.client.Requests#refreshRequest(String...) */ void refresh(RefreshRequest request, ActionListener<RefreshResponse> listener); /** * Explicitly refresh one or more indices (making the content indexed since the last refresh searchable). */ RefreshRequestBuilder prepareRefresh(String... indices); /** * Explicitly flush one or more indices (releasing memory from the node). * * @param request The flush request * @return A result future * @see org.elasticsearch.client.Requests#flushRequest(String...) */ ActionFuture<FlushResponse> flush(FlushRequest request); /** * Explicitly flush one or more indices (releasing memory from the node). * * @param request The flush request * @param listener A listener to be notified with a result * @see org.elasticsearch.client.Requests#flushRequest(String...) */ void flush(FlushRequest request, ActionListener<FlushResponse> listener); /** * Explicitly flush one or more indices (releasing memory from the node). */ FlushRequestBuilder prepareFlush(String... indices); /** * Explicitly optimize one or more indices into a the number of segments. * * @param request The optimize request * @return A result future * @see org.elasticsearch.client.Requests#optimizeRequest(String...) */ ActionFuture<OptimizeResponse> optimize(OptimizeRequest request); /** * Explicitly optimize one or more indices into a the number of segments. * * @param request The optimize request * @param listener A listener to be notified with a result * @see org.elasticsearch.client.Requests#optimizeRequest(String...) */ void optimize(OptimizeRequest request, ActionListener<OptimizeResponse> listener); /** * Explicitly optimize one or more indices into a the number of segments. */ OptimizeRequestBuilder prepareOptimize(String... indices); /** * Add mapping definition for a type into one or more indices. * * @param request The create mapping request * @return A result future * @see org.elasticsearch.client.Requests#putMappingRequest(String...) */ ActionFuture<PutMappingResponse> putMapping(PutMappingRequest request); /** * Add mapping definition for a type into one or more indices. * * @param request The create mapping request * @param listener A listener to be notified with a result * @see org.elasticsearch.client.Requests#putMappingRequest(String...) */ void putMapping(PutMappingRequest request, ActionListener<PutMappingResponse> listener); /** * Add mapping definition for a type into one or more indices. */ PutMappingRequestBuilder preparePutMapping(String... indices); /** * Deletes mapping (and all its data) from one or more indices. * * @param request The delete mapping request * @return A result future * @see org.elasticsearch.client.Requests#deleteMappingRequest(String...) */ ActionFuture<DeleteMappingResponse> deleteMapping(DeleteMappingRequest request); /** * Deletes mapping definition for a type into one or more indices. * * @param request The delete mapping request * @param listener A listener to be notified with a result * @see org.elasticsearch.client.Requests#deleteMappingRequest(String...) */ void deleteMapping(DeleteMappingRequest request, ActionListener<DeleteMappingResponse> listener); /** * Deletes mapping definition for a type into one or more indices. */ DeleteMappingRequestBuilder prepareDeleteMapping(String... indices); /** * Explicitly perform gateway snapshot for one or more indices. * * @param request The gateway snapshot request * @return The result future * @see org.elasticsearch.client.Requests#gatewaySnapshotRequest(String...) */ ActionFuture<GatewaySnapshotResponse> gatewaySnapshot(GatewaySnapshotRequest request); /** * Explicitly perform gateway snapshot for one or more indices. * * @param request The gateway snapshot request * @param listener A listener to be notified with a result * @see org.elasticsearch.client.Requests#gatewaySnapshotRequest(String...) */ void gatewaySnapshot(GatewaySnapshotRequest request, ActionListener<GatewaySnapshotResponse> listener); /** * Explicitly perform gateway snapshot for one or more indices. */ GatewaySnapshotRequestBuilder prepareGatewaySnapshot(String... indices); /** * Allows to add/remove aliases from indices. * * @param request The index aliases request * @return The result future * @see Requests#indexAliasesRequest() */ ActionFuture<IndicesAliasesResponse> aliases(IndicesAliasesRequest request); /** * Allows to add/remove aliases from indices. * * @param request The index aliases request * @param listener A listener to be notified with a result * @see Requests#indexAliasesRequest() */ void aliases(IndicesAliasesRequest request, ActionListener<IndicesAliasesResponse> listener); /** * Allows to add/remove aliases from indices. */ IndicesAliasesRequestBuilder prepareAliases(); /** * Clear indices cache. * * @param request The clear indices cache request * @return The result future * @see Requests#clearIndicesCacheRequest(String...) */ ActionFuture<ClearIndicesCacheResponse> clearCache(ClearIndicesCacheRequest request); /** * Clear indices cache. * * @param request The clear indices cache request * @param listener A listener to be notified with a result * @see Requests#clearIndicesCacheRequest(String...) */ void clearCache(ClearIndicesCacheRequest request, ActionListener<ClearIndicesCacheResponse> listener); /** * Clear indices cache. */ ClearIndicesCacheRequestBuilder prepareClearCache(String... indices); /** * Updates settings of one or more indices. * * @param request the update settings request * @return The result future */ ActionFuture<UpdateSettingsResponse> updateSettings(UpdateSettingsRequest request); /** * Updates settings of one or more indices. * * @param request the update settings request * @param listener A listener to be notified with the response */ void updateSettings(UpdateSettingsRequest request, ActionListener<UpdateSettingsResponse> listener); /** * Update indices settings. */ UpdateSettingsRequestBuilder prepareUpdateSettings(String... indices); /** * Analyze text under the provided index. */ ActionFuture<AnalyzeResponse> analyze(AnalyzeRequest request); /** * Analyze text under the provided index. */ void analyze(AnalyzeRequest request, ActionListener<AnalyzeResponse> listener); /** * Analyze text under the provided index. * * @param index The index name * @param text The text to analyze */ AnalyzeRequestBuilder prepareAnalyze(@Nullable String index, String text); /** * Analyze text. * * @param text The text to analyze */ AnalyzeRequestBuilder prepareAnalyze(String text); /** * Puts an index template. */ ActionFuture<PutIndexTemplateResponse> putTemplate(PutIndexTemplateRequest request); /** * Puts an index template. */ void putTemplate(PutIndexTemplateRequest request, ActionListener<PutIndexTemplateResponse> listener); /** * Puts an index template. * * @param name The name of the template. */ PutIndexTemplateRequestBuilder preparePutTemplate(String name); /** * Deletes index template. */ ActionFuture<DeleteIndexTemplateResponse> deleteTemplate(DeleteIndexTemplateRequest request); /** * Deletes an index template. */ void deleteTemplate(DeleteIndexTemplateRequest request, ActionListener<DeleteIndexTemplateResponse> listener); /** * Deletes an index template. * * @param name The name of the template. */ DeleteIndexTemplateRequestBuilder prepareDeleteTemplate(String name); /** * Validate a query for correctness. * * @param request The count request * @return The result future * @see Requests#countRequest(String...) */ ActionFuture<ValidateQueryResponse> validateQuery(ValidateQueryRequest request); /** * Validate a query for correctness. * * @param request The count request * @param listener A listener to be notified of the result * @see Requests#countRequest(String...) */ void validateQuery(ValidateQueryRequest request, ActionListener<ValidateQueryResponse> listener); /** * Validate a query for correctness. */ ValidateQueryRequestBuilder prepareValidateQuery(String... indices); /** * Puts an index search warmer to be applies when applicable. */ ActionFuture<PutWarmerResponse> putWarmer(PutWarmerRequest request); /** * Puts an index search warmer to be applies when applicable. */ void putWarmer(PutWarmerRequest request, ActionListener<PutWarmerResponse> listener); /** * Puts an index search warmer to be applies when applicable. */ PutWarmerRequestBuilder preparePutWarmer(String name); /** * Deletes an index warmer. */ ActionFuture<DeleteWarmerResponse> deleteWarmer(DeleteWarmerRequest request); /** * Deletes an index warmer. */ void deleteWarmer(DeleteWarmerRequest request, ActionListener<DeleteWarmerResponse> listener); /** * Deletes an index warmer. */ DeleteWarmerRequestBuilder prepareDeleteWarmer(); }