com.algolia.search.SearchIndexSettings Maven / Gradle / Ivy
The newest version!
package com.algolia.search;
import com.algolia.search.exceptions.AlgoliaApiException;
import com.algolia.search.exceptions.AlgoliaRetryException;
import com.algolia.search.exceptions.AlgoliaRuntimeException;
import com.algolia.search.exceptions.LaunderThrowable;
import com.algolia.search.models.HttpMethod;
import com.algolia.search.models.RequestOptions;
import com.algolia.search.models.common.CallType;
import com.algolia.search.models.settings.IndexSettings;
import com.algolia.search.models.settings.SetSettingsResponse;
import java.util.Objects;
import java.util.concurrent.CompletableFuture;
import javax.annotation.Nonnull;
/**
* This interface holds all endpoints for Index Settings.
*
* @param
*/
public interface SearchIndexSettings extends SearchIndexBase {
/**
* Set settings of this index, and do not forward to slaves
*
* @param settings the settings to set
*/
default SetSettingsResponse setSettings(@Nonnull IndexSettings settings) {
return LaunderThrowable.await(setSettingsAsync(settings));
}
/**
* Set settings of this index, and do not forward to replicas
*
* @param settings the settings to set
* @param forwardToReplicas if true forward the settings to the replicas
* @throws AlgoliaRetryException When the retry has failed on all hosts
* @throws AlgoliaApiException When the API sends an http error code
* @throws AlgoliaRuntimeException When an error occurred during the serialization
*/
default SetSettingsResponse setSettings(
@Nonnull IndexSettings settings, @Nonnull Boolean forwardToReplicas) {
return LaunderThrowable.await(setSettingsAsync(settings, forwardToReplicas));
}
/**
* Set settings of this index, and do not forward to replicas
*
* @param settings the settings to set
* @param forwardToReplicas if true forward the settings to the replicas
* @param requestOptions Options to pass to this request
* @throws AlgoliaRetryException When the retry has failed on all hosts
* @throws AlgoliaApiException When the API sends an http error code
* @throws AlgoliaRuntimeException When an error occurred during the serialization
*/
default SetSettingsResponse setSettings(
@Nonnull IndexSettings settings,
@Nonnull Boolean forwardToReplicas,
@Nonnull RequestOptions requestOptions) {
return LaunderThrowable.await(setSettingsAsync(settings, forwardToReplicas, requestOptions));
}
/**
* Set settings of this index, and do not forward to slaves
*
* @param settings the settings to set
* @param requestOptions Options to pass to this request
* @throws AlgoliaRetryException When the retry has failed on all hosts
* @throws AlgoliaApiException When the API sends an http error code
* @throws AlgoliaRuntimeException When an error occurred during the serialization
*/
default SetSettingsResponse setSettings(
@Nonnull IndexSettings settings, RequestOptions requestOptions) {
return LaunderThrowable.await(setSettingsAsync(settings, requestOptions));
}
/**
* Set settings of this index, and do not forward to replicas
*
* @param settings the settings to set
* @throws AlgoliaRetryException When the retry has failed on all hosts
* @throws AlgoliaApiException When the API sends an http error code
* @throws AlgoliaRuntimeException When an error occurred during the serialization
*/
default CompletableFuture setSettingsAsync(@Nonnull IndexSettings settings) {
return setSettingsAsync(settings, new RequestOptions());
}
/**
* Set settings of this index, and do not forward to replicas
*
* @param settings the settings to set
* @param forwardToReplicas if true forward the settings to the replicas
* @throws AlgoliaRetryException When the retry has failed on all hosts
* @throws AlgoliaApiException When the API sends an http error code
* @throws AlgoliaRuntimeException When an error occurred during the serialization
*/
default CompletableFuture setSettingsAsync(
@Nonnull IndexSettings settings, @Nonnull Boolean forwardToReplicas) {
return setSettingsAsync(settings, forwardToReplicas, new RequestOptions());
}
/**
* Set settings of this index, and do not forward to replicas
*
* @param settings the settings to set
* @param forwardToReplicas if true forward the settings to the replicas
* @param requestOptions Options to pass to this request
* @throws AlgoliaRetryException When the retry has failed on all hosts
* @throws AlgoliaApiException When the API sends an http error code
* @throws AlgoliaRuntimeException When an error occurred during the serialization
*/
default CompletableFuture setSettingsAsync(
@Nonnull IndexSettings settings,
@Nonnull Boolean forwardToReplicas,
@Nonnull RequestOptions requestOptions) {
Objects.requireNonNull(requestOptions, "RequestOptions are required.");
Objects.requireNonNull(forwardToReplicas, "ForwardToReplicas is required.");
requestOptions.addExtraQueryParameters("forwardToReplicas", forwardToReplicas.toString());
return setSettingsAsync(settings, requestOptions);
}
/**
* Set settings of this index, and do not forward to slaves
*
* @param settings the settings to set
* @param requestOptions Options to pass to this request
* @throws AlgoliaRetryException When the retry has failed on all hosts
* @throws AlgoliaApiException When the API sends an http error code
* @throws AlgoliaRuntimeException When an error occurred during the serialization
*/
default CompletableFuture setSettingsAsync(
@Nonnull IndexSettings settings, RequestOptions requestOptions) {
Objects.requireNonNull(settings, "Index settings are required.");
return getTransport()
.executeRequestAsync(
HttpMethod.PUT,
"/1/indexes/" + getUrlEncodedIndexName() + "/settings",
CallType.WRITE,
settings,
SetSettingsResponse.class,
requestOptions)
.thenApplyAsync(
resp -> {
resp.setWaitConsumer(this::waitTask);
return resp;
},
getConfig().getExecutor());
}
/**
* Get the settings of an index.
*
* @throws AlgoliaRetryException When the retry has failed on all hosts
* @throws AlgoliaApiException When the API sends an http error code
* @throws AlgoliaRuntimeException When an error occurred during the serialization
*/
default IndexSettings getSettings() {
return LaunderThrowable.await(getSettingsAsync(null));
}
/**
* Get the settings of an index.
*
* @param requestOptions Options to pass to this request
* @throws AlgoliaRetryException When the retry has failed on all hosts
* @throws AlgoliaApiException When the API sends an http error code
* @throws AlgoliaRuntimeException When an error occurred during the serialization
*/
default IndexSettings getSettings(RequestOptions requestOptions) {
return LaunderThrowable.await(getSettingsAsync(requestOptions));
}
/**
* Get the settings of an index.
*
* @throws AlgoliaRetryException When the retry has failed on all hosts
* @throws AlgoliaApiException When the API sends an http error code
* @throws AlgoliaRuntimeException When an error occurred during the serialization
*/
default CompletableFuture getSettingsAsync() {
return getSettingsAsync(null);
}
/**
* Get the settings of an index.
*
* @param requestOptions Options to pass to this request
* @throws AlgoliaRetryException When the retry has failed on all hosts
* @throws AlgoliaApiException When the API sends an http error code
* @throws AlgoliaRuntimeException When an error occurred during the serialization
*/
default CompletableFuture getSettingsAsync(RequestOptions requestOptions) {
if (requestOptions == null) {
requestOptions = new RequestOptions();
}
requestOptions.addExtraQueryParameters("getVersion", "2");
return getTransport()
.executeRequestAsync(
HttpMethod.GET,
"/1/indexes/" + getUrlEncodedIndexName() + "/settings",
CallType.READ,
IndexSettings.class,
requestOptions);
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy