/*
* Licensed to Luca Cavanna (the "Author") under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. Elastic Search 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.shell.client;
import org.elasticsearch.shell.client.builders.indices.*;
import org.elasticsearch.shell.json.JsonToString;
import org.elasticsearch.shell.json.StringToJson;
/**
* @author Luca Cavanna
*
* Client that exposes all the indices Apis
*/
@SuppressWarnings("unused")
public class IndicesApiClient<EsClient extends org.elasticsearch.client.support.AbstractClient, JsonInput, JsonOutput> {
private final AbstractClient<EsClient, JsonInput, JsonOutput> client;
private final JsonToString<JsonInput> jsonToString;
private final StringToJson<JsonOutput> stringToJson;
IndicesApiClient(AbstractClient<EsClient, JsonInput, JsonOutput> client, JsonToString<JsonInput> jsonToString, StringToJson<JsonOutput> stringToJson) {
this.client = client;
this.jsonToString = jsonToString;
this.stringToJson = stringToJson;
}
public GetAliasesIndicesRequestBuilder<JsonInput, JsonOutput> aliasesGetBuilder() {
return new GetAliasesIndicesRequestBuilder<JsonInput, JsonOutput>(client.client(), jsonToString, stringToJson);
}
public JsonOutput aliasesGet() {
return aliasesGetBuilder().execute();
}
public UpdateIndicesAliasesRequestBuilder<JsonInput, JsonOutput> aliasesUpdateBuilder() {
return new UpdateIndicesAliasesRequestBuilder<JsonInput, JsonOutput>(client.client(), jsonToString, stringToJson);
}
public AnalyzeRequestBuilder<JsonInput, JsonOutput> analyzeBuilder() {
return new AnalyzeRequestBuilder<JsonInput, JsonOutput>(client.client(), jsonToString, stringToJson);
}
public JsonOutput analyze(String text, String index, String field) {
return analyzeBuilder().index(index).field(field).text(text).execute();
}
public JsonOutput analyze(String text, String analyzer) {
return analyzeBuilder().analyzer(analyzer).text(text).execute();
}
public ClearCacheRequestBuilder<JsonInput, JsonOutput> clearCacheBuilder() {
return new ClearCacheRequestBuilder<JsonInput, JsonOutput>(client.client(), jsonToString, stringToJson);
}
public JsonOutput clearCache() {
return clearCacheBuilder().execute();
}
public CloseIndexRequestBuilder<JsonInput, JsonOutput> closeIndexBuilder() {
return new CloseIndexRequestBuilder<JsonInput, JsonOutput>(client.client(), jsonToString, stringToJson);
}
public JsonOutput closeIndex(String index) {
return closeIndexBuilder().index(index).execute();
}
public CreateIndexRequestBuilder<JsonInput, JsonOutput> createIndexBuilder() {
return new CreateIndexRequestBuilder<JsonInput, JsonOutput>(client.client(), jsonToString, stringToJson);
}
public JsonOutput createIndex(String index) {
return createIndexBuilder().index(index).execute();
}
public DeleteIndexRequestBuilder<JsonInput, JsonOutput> deleteIndexBuilder() {
return new DeleteIndexRequestBuilder<JsonInput, JsonOutput>(client.client(), jsonToString, stringToJson);
}
public JsonOutput deleteIndex() {
return deleteIndexBuilder().execute();
}
public FlushRequestBuilder<JsonInput, JsonOutput> flushBuilder() {
return new FlushRequestBuilder<JsonInput, JsonOutput>(client.client(), jsonToString, stringToJson);
}
public JsonOutput flush() {
return flushBuilder().execute();
}
protected IndicesExistsRequestBuilder<JsonInput, JsonOutput> indicesExistsBuilder() {
return new IndicesExistsRequestBuilder<JsonInput, JsonOutput>(client.client(), jsonToString, stringToJson);
}
public JsonOutput indicesExists(String... indices) {
return indicesExistsBuilder().indices(indices).execute();
}
public GetMappingRequestBuilder<JsonInput, JsonOutput> mappingGetBuilder() {
return new GetMappingRequestBuilder<JsonInput, JsonOutput>(client.client(), jsonToString, stringToJson);
}
public JsonOutput mappingGet(String... indices) {
return mappingGetBuilder().indices(indices).execute();
}
public DeleteMappingRequestBuilder<JsonInput, JsonOutput> mappingDeleteBuilder() {
return new DeleteMappingRequestBuilder<JsonInput, JsonOutput>(client.client(), jsonToString, stringToJson);
}
public JsonOutput mappingDelete(String index, String type) {
return mappingDeleteBuilder().indices(index).type(type).execute();
}
public PutMappingRequestBuilder<JsonInput, JsonOutput> mappingPutBuilder() {
return new PutMappingRequestBuilder<JsonInput, JsonOutput>(client.client(), jsonToString, stringToJson);
}
public JsonOutput mappingPut(String index, String type, JsonInput source) {
return mappingPutBuilder().indices(index).type(type).source(source).execute();
}
public OpenIndexRequestBuilder<JsonInput, JsonOutput> openIndexBuilder() {
return new OpenIndexRequestBuilder<JsonInput, JsonOutput>(client.client(), jsonToString, stringToJson);
}
public JsonOutput openIndex(String index) {
return openIndexBuilder().index(index).execute();
}
public OptimizeRequestBuilder<JsonInput, JsonOutput> optimizeBuilder() {
return new OptimizeRequestBuilder<JsonInput, JsonOutput>(client.client(), jsonToString, stringToJson);
}
public JsonOutput optimize(String... indices) {
return optimizeBuilder().indices(indices).execute();
}
public RefreshRequestBuilder<JsonInput, JsonOutput> refreshBuilder() {
return new RefreshRequestBuilder<JsonInput, JsonOutput>(client.client(), jsonToString, stringToJson);
}
public JsonOutput refresh(String... indices) {
return refreshBuilder().indices(indices).execute();
}
protected SegmentsRequestBuilder<JsonInput, JsonOutput> segmentsBuilder() {
return new SegmentsRequestBuilder<JsonInput, JsonOutput>(client.client(), jsonToString, stringToJson);
}
public JsonOutput segments(String... indices) {
return segmentsBuilder().indices(indices).execute();
}
protected GetSettingsRequestBuilder<JsonInput, JsonOutput> settingsGetBuilder() {
return new GetSettingsRequestBuilder<JsonInput, JsonOutput>(client.client(), jsonToString, stringToJson);
}
public JsonOutput settingsGet(String... indices) {
return settingsGetBuilder().indices(indices).execute();
}
public UpdateSettingsRequestBuilder<JsonInput, JsonOutput> settingsUpdateBuilder() {
return new UpdateSettingsRequestBuilder<JsonInput, JsonOutput>(client.client(), jsonToString, stringToJson);
}
public JsonOutput settingsUpdate(String index, JsonInput source) {
return settingsUpdateBuilder().indices(index).settings(source).execute();
}
public StatsRequestBuilder<JsonInput, JsonOutput> statsBuilder() {
return new StatsRequestBuilder<JsonInput, JsonOutput>(client.client(), jsonToString, stringToJson);
}
public JsonOutput stats(String... indices) {
return statsBuilder().indices(indices).execute();
}
public StatusRequestBuilder<JsonInput, JsonOutput> statusBuilder() {
return new StatusRequestBuilder<JsonInput, JsonOutput>(client.client(), jsonToString, stringToJson);
}
public JsonOutput status(String... indices) {
return statusBuilder().indices(indices).execute();
}
protected GetIndexTemplateRequestBuilder<JsonInput, JsonOutput> templateGetBuilder() {
return new GetIndexTemplateRequestBuilder<JsonInput, JsonOutput>(client.client(), jsonToString, stringToJson);
}
public JsonOutput templateGet(String... names) {
return templateGetBuilder().names(names).execute();
}
protected DeleteIndexTemplateRequestBuilder<JsonInput, JsonOutput> templateDeleteBuilder(String name) {
return new DeleteIndexTemplateRequestBuilder<JsonInput, JsonOutput>(client.client(), jsonToString, stringToJson, name);
}
public JsonOutput templateDelete(String name) {
return templateDeleteBuilder(name).execute();
}
public PutIndexTemplateRequestBuilder<JsonInput, JsonOutput> templatePutBuilder() {
return new PutIndexTemplateRequestBuilder<JsonInput, JsonOutput>(client.client(), jsonToString, stringToJson);
}
public JsonOutput templatePut(String name, JsonInput source) {
return templatePutBuilder().name(name).source(source).execute();
}
protected TypesExistsRequestBuilder<JsonInput, JsonOutput> typesExistsBuilder() {
return new TypesExistsRequestBuilder<JsonInput, JsonOutput>(client.client(), jsonToString, stringToJson);
}
public JsonOutput typesExists(String index, String type) {
return typesExistsBuilder().indices(index).types(type).execute();
}
public GetWarmerRequestBuilder<JsonInput, JsonOutput> warmerGetBuilder() {
return new GetWarmerRequestBuilder<JsonInput, JsonOutput>(client.client(), jsonToString, stringToJson);
}
public JsonOutput warmerGet(String... indices) {
return warmerGetBuilder().indices(indices).execute();
}
public PutWarmerRequestBuilder<JsonInput, JsonOutput> warmerPutBuilder() {
return new PutWarmerRequestBuilder<JsonInput, JsonOutput>(client.client(), jsonToString, stringToJson);
}
public JsonOutput warmerPut(String name, JsonInput source) {
return warmerPutBuilder().name(name).source(source).execute();
}
public DeleteWarmerRequestBuilder<JsonInput, JsonOutput> warmerDeleteBuilder() {
return new DeleteWarmerRequestBuilder<JsonInput, JsonOutput>(client.client(), jsonToString, stringToJson);
}
public JsonOutput warmerDelete(String name) {
return warmerDeleteBuilder().name(name).execute();
}
public JsonOutput warmerDelete() {
return warmerDeleteBuilder().execute();
}
@Override
public String toString() {
return client.toString();
}
}