All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.awssdk.services.cloudsearch.DefaultCloudSearchAsyncClient Maven / Gradle / Ivy

/*
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
 * the License. A copy of the License is located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file 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 software.amazon.awssdk.services.cloudsearch;

import java.util.Collections;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.annotations.SdkInternalApi;
import software.amazon.awssdk.awscore.client.handler.AwsAsyncClientHandler;
import software.amazon.awssdk.awscore.exception.AwsServiceException;
import software.amazon.awssdk.awscore.internal.AwsProtocolMetadata;
import software.amazon.awssdk.awscore.internal.AwsServiceProtocol;
import software.amazon.awssdk.core.RequestOverrideConfiguration;
import software.amazon.awssdk.core.SdkPlugin;
import software.amazon.awssdk.core.SdkRequest;
import software.amazon.awssdk.core.client.config.SdkClientConfiguration;
import software.amazon.awssdk.core.client.config.SdkClientOption;
import software.amazon.awssdk.core.client.handler.AsyncClientHandler;
import software.amazon.awssdk.core.client.handler.ClientExecutionParams;
import software.amazon.awssdk.core.http.HttpResponseHandler;
import software.amazon.awssdk.core.metrics.CoreMetric;
import software.amazon.awssdk.metrics.MetricCollector;
import software.amazon.awssdk.metrics.MetricPublisher;
import software.amazon.awssdk.metrics.NoOpMetricCollector;
import software.amazon.awssdk.protocols.core.ExceptionMetadata;
import software.amazon.awssdk.protocols.query.AwsQueryProtocolFactory;
import software.amazon.awssdk.services.cloudsearch.internal.CloudSearchServiceClientConfigurationBuilder;
import software.amazon.awssdk.services.cloudsearch.model.BaseException;
import software.amazon.awssdk.services.cloudsearch.model.BuildSuggestersRequest;
import software.amazon.awssdk.services.cloudsearch.model.BuildSuggestersResponse;
import software.amazon.awssdk.services.cloudsearch.model.CloudSearchException;
import software.amazon.awssdk.services.cloudsearch.model.CreateDomainRequest;
import software.amazon.awssdk.services.cloudsearch.model.CreateDomainResponse;
import software.amazon.awssdk.services.cloudsearch.model.DefineAnalysisSchemeRequest;
import software.amazon.awssdk.services.cloudsearch.model.DefineAnalysisSchemeResponse;
import software.amazon.awssdk.services.cloudsearch.model.DefineExpressionRequest;
import software.amazon.awssdk.services.cloudsearch.model.DefineExpressionResponse;
import software.amazon.awssdk.services.cloudsearch.model.DefineIndexFieldRequest;
import software.amazon.awssdk.services.cloudsearch.model.DefineIndexFieldResponse;
import software.amazon.awssdk.services.cloudsearch.model.DefineSuggesterRequest;
import software.amazon.awssdk.services.cloudsearch.model.DefineSuggesterResponse;
import software.amazon.awssdk.services.cloudsearch.model.DeleteAnalysisSchemeRequest;
import software.amazon.awssdk.services.cloudsearch.model.DeleteAnalysisSchemeResponse;
import software.amazon.awssdk.services.cloudsearch.model.DeleteDomainRequest;
import software.amazon.awssdk.services.cloudsearch.model.DeleteDomainResponse;
import software.amazon.awssdk.services.cloudsearch.model.DeleteExpressionRequest;
import software.amazon.awssdk.services.cloudsearch.model.DeleteExpressionResponse;
import software.amazon.awssdk.services.cloudsearch.model.DeleteIndexFieldRequest;
import software.amazon.awssdk.services.cloudsearch.model.DeleteIndexFieldResponse;
import software.amazon.awssdk.services.cloudsearch.model.DeleteSuggesterRequest;
import software.amazon.awssdk.services.cloudsearch.model.DeleteSuggesterResponse;
import software.amazon.awssdk.services.cloudsearch.model.DescribeAnalysisSchemesRequest;
import software.amazon.awssdk.services.cloudsearch.model.DescribeAnalysisSchemesResponse;
import software.amazon.awssdk.services.cloudsearch.model.DescribeAvailabilityOptionsRequest;
import software.amazon.awssdk.services.cloudsearch.model.DescribeAvailabilityOptionsResponse;
import software.amazon.awssdk.services.cloudsearch.model.DescribeDomainEndpointOptionsRequest;
import software.amazon.awssdk.services.cloudsearch.model.DescribeDomainEndpointOptionsResponse;
import software.amazon.awssdk.services.cloudsearch.model.DescribeDomainsRequest;
import software.amazon.awssdk.services.cloudsearch.model.DescribeDomainsResponse;
import software.amazon.awssdk.services.cloudsearch.model.DescribeExpressionsRequest;
import software.amazon.awssdk.services.cloudsearch.model.DescribeExpressionsResponse;
import software.amazon.awssdk.services.cloudsearch.model.DescribeIndexFieldsRequest;
import software.amazon.awssdk.services.cloudsearch.model.DescribeIndexFieldsResponse;
import software.amazon.awssdk.services.cloudsearch.model.DescribeScalingParametersRequest;
import software.amazon.awssdk.services.cloudsearch.model.DescribeScalingParametersResponse;
import software.amazon.awssdk.services.cloudsearch.model.DescribeServiceAccessPoliciesRequest;
import software.amazon.awssdk.services.cloudsearch.model.DescribeServiceAccessPoliciesResponse;
import software.amazon.awssdk.services.cloudsearch.model.DescribeSuggestersRequest;
import software.amazon.awssdk.services.cloudsearch.model.DescribeSuggestersResponse;
import software.amazon.awssdk.services.cloudsearch.model.DisabledOperationException;
import software.amazon.awssdk.services.cloudsearch.model.IndexDocumentsRequest;
import software.amazon.awssdk.services.cloudsearch.model.IndexDocumentsResponse;
import software.amazon.awssdk.services.cloudsearch.model.InternalException;
import software.amazon.awssdk.services.cloudsearch.model.InvalidTypeException;
import software.amazon.awssdk.services.cloudsearch.model.LimitExceededException;
import software.amazon.awssdk.services.cloudsearch.model.ListDomainNamesRequest;
import software.amazon.awssdk.services.cloudsearch.model.ListDomainNamesResponse;
import software.amazon.awssdk.services.cloudsearch.model.ResourceAlreadyExistsException;
import software.amazon.awssdk.services.cloudsearch.model.ResourceNotFoundException;
import software.amazon.awssdk.services.cloudsearch.model.UpdateAvailabilityOptionsRequest;
import software.amazon.awssdk.services.cloudsearch.model.UpdateAvailabilityOptionsResponse;
import software.amazon.awssdk.services.cloudsearch.model.UpdateDomainEndpointOptionsRequest;
import software.amazon.awssdk.services.cloudsearch.model.UpdateDomainEndpointOptionsResponse;
import software.amazon.awssdk.services.cloudsearch.model.UpdateScalingParametersRequest;
import software.amazon.awssdk.services.cloudsearch.model.UpdateScalingParametersResponse;
import software.amazon.awssdk.services.cloudsearch.model.UpdateServiceAccessPoliciesRequest;
import software.amazon.awssdk.services.cloudsearch.model.UpdateServiceAccessPoliciesResponse;
import software.amazon.awssdk.services.cloudsearch.model.ValidationException;
import software.amazon.awssdk.services.cloudsearch.transform.BuildSuggestersRequestMarshaller;
import software.amazon.awssdk.services.cloudsearch.transform.CreateDomainRequestMarshaller;
import software.amazon.awssdk.services.cloudsearch.transform.DefineAnalysisSchemeRequestMarshaller;
import software.amazon.awssdk.services.cloudsearch.transform.DefineExpressionRequestMarshaller;
import software.amazon.awssdk.services.cloudsearch.transform.DefineIndexFieldRequestMarshaller;
import software.amazon.awssdk.services.cloudsearch.transform.DefineSuggesterRequestMarshaller;
import software.amazon.awssdk.services.cloudsearch.transform.DeleteAnalysisSchemeRequestMarshaller;
import software.amazon.awssdk.services.cloudsearch.transform.DeleteDomainRequestMarshaller;
import software.amazon.awssdk.services.cloudsearch.transform.DeleteExpressionRequestMarshaller;
import software.amazon.awssdk.services.cloudsearch.transform.DeleteIndexFieldRequestMarshaller;
import software.amazon.awssdk.services.cloudsearch.transform.DeleteSuggesterRequestMarshaller;
import software.amazon.awssdk.services.cloudsearch.transform.DescribeAnalysisSchemesRequestMarshaller;
import software.amazon.awssdk.services.cloudsearch.transform.DescribeAvailabilityOptionsRequestMarshaller;
import software.amazon.awssdk.services.cloudsearch.transform.DescribeDomainEndpointOptionsRequestMarshaller;
import software.amazon.awssdk.services.cloudsearch.transform.DescribeDomainsRequestMarshaller;
import software.amazon.awssdk.services.cloudsearch.transform.DescribeExpressionsRequestMarshaller;
import software.amazon.awssdk.services.cloudsearch.transform.DescribeIndexFieldsRequestMarshaller;
import software.amazon.awssdk.services.cloudsearch.transform.DescribeScalingParametersRequestMarshaller;
import software.amazon.awssdk.services.cloudsearch.transform.DescribeServiceAccessPoliciesRequestMarshaller;
import software.amazon.awssdk.services.cloudsearch.transform.DescribeSuggestersRequestMarshaller;
import software.amazon.awssdk.services.cloudsearch.transform.IndexDocumentsRequestMarshaller;
import software.amazon.awssdk.services.cloudsearch.transform.ListDomainNamesRequestMarshaller;
import software.amazon.awssdk.services.cloudsearch.transform.UpdateAvailabilityOptionsRequestMarshaller;
import software.amazon.awssdk.services.cloudsearch.transform.UpdateDomainEndpointOptionsRequestMarshaller;
import software.amazon.awssdk.services.cloudsearch.transform.UpdateScalingParametersRequestMarshaller;
import software.amazon.awssdk.services.cloudsearch.transform.UpdateServiceAccessPoliciesRequestMarshaller;
import software.amazon.awssdk.utils.CompletableFutureUtils;

/**
 * Internal implementation of {@link CloudSearchAsyncClient}.
 *
 * @see CloudSearchAsyncClient#builder()
 */
@Generated("software.amazon.awssdk:codegen")
@SdkInternalApi
final class DefaultCloudSearchAsyncClient implements CloudSearchAsyncClient {
    private static final Logger log = LoggerFactory.getLogger(DefaultCloudSearchAsyncClient.class);

    private static final AwsProtocolMetadata protocolMetadata = AwsProtocolMetadata.builder()
            .serviceProtocol(AwsServiceProtocol.QUERY).build();

    private final AsyncClientHandler clientHandler;

    private final AwsQueryProtocolFactory protocolFactory;

    private final SdkClientConfiguration clientConfiguration;

    protected DefaultCloudSearchAsyncClient(SdkClientConfiguration clientConfiguration) {
        this.clientHandler = new AwsAsyncClientHandler(clientConfiguration);
        this.clientConfiguration = clientConfiguration;
        this.protocolFactory = init();
    }

    /**
     * 

* Indexes the search suggestions. For more information, see Configuring Suggesters in the Amazon CloudSearch Developer Guide. *

* * @param buildSuggestersRequest * Container for the parameters to the BuildSuggester operation. Specifies the name of * the domain you want to update. * @return A Java Future containing the result of the BuildSuggesters operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • BaseException An error occurred while processing the request.
  • *
  • InternalException An internal error occurred while processing the request. If this problem persists, * report an issue from the Service Health * Dashboard.
  • *
  • ResourceNotFoundException The request was rejected because it attempted to reference a resource that * does not exist.
  • *
  • ValidationException The request was rejected because it has invalid parameters.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudSearchException Base class for all service exceptions. Unknown exceptions will be thrown as an * instance of this type.
  • *
* @sample CloudSearchAsyncClient.BuildSuggesters */ @Override public CompletableFuture buildSuggesters(BuildSuggestersRequest buildSuggestersRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(buildSuggestersRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, buildSuggestersRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudSearch"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "BuildSuggesters"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(BuildSuggestersResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("BuildSuggesters").withProtocolMetadata(protocolMetadata) .withMarshaller(new BuildSuggestersRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(buildSuggestersRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Creates a new search domain. For more information, see Creating a Search Domain in the Amazon CloudSearch Developer Guide. *

* * @param createDomainRequest * Container for the parameters to the CreateDomain operation. Specifies a name for the * new search domain. * @return A Java Future containing the result of the CreateDomain operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • BaseException An error occurred while processing the request.
  • *
  • InternalException An internal error occurred while processing the request. If this problem persists, * report an issue from the Service Health * Dashboard.
  • *
  • LimitExceededException The request was rejected because a resource limit has already been met.
  • *
  • ResourceAlreadyExistsException The request was rejected because it attempted to create a resource * that already exists.
  • *
  • ValidationException The request was rejected because it has invalid parameters.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudSearchException Base class for all service exceptions. Unknown exceptions will be thrown as an * instance of this type.
  • *
* @sample CloudSearchAsyncClient.CreateDomain */ @Override public CompletableFuture createDomain(CreateDomainRequest createDomainRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createDomainRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, createDomainRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudSearch"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateDomain"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(CreateDomainResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("CreateDomain").withProtocolMetadata(protocolMetadata) .withMarshaller(new CreateDomainRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(createDomainRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Configures an analysis scheme that can be applied to a text or text-array field to * define language-specific text processing options. For more information, see Configuring Analysis Schemes in the Amazon CloudSearch Developer Guide. *

* * @param defineAnalysisSchemeRequest * Container for the parameters to the DefineAnalysisScheme operation. Specifies the name * of the domain you want to update and the analysis scheme configuration. * @return A Java Future containing the result of the DefineAnalysisScheme operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • BaseException An error occurred while processing the request.
  • *
  • InternalException An internal error occurred while processing the request. If this problem persists, * report an issue from the Service Health * Dashboard.
  • *
  • LimitExceededException The request was rejected because a resource limit has already been met.
  • *
  • InvalidTypeException The request was rejected because it specified an invalid type definition.
  • *
  • ResourceNotFoundException The request was rejected because it attempted to reference a resource that * does not exist.
  • *
  • ValidationException The request was rejected because it has invalid parameters.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudSearchException Base class for all service exceptions. Unknown exceptions will be thrown as an * instance of this type.
  • *
* @sample CloudSearchAsyncClient.DefineAnalysisScheme */ @Override public CompletableFuture defineAnalysisScheme( DefineAnalysisSchemeRequest defineAnalysisSchemeRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(defineAnalysisSchemeRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, defineAnalysisSchemeRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudSearch"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DefineAnalysisScheme"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DefineAnalysisSchemeResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DefineAnalysisScheme").withProtocolMetadata(protocolMetadata) .withMarshaller(new DefineAnalysisSchemeRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(defineAnalysisSchemeRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Configures an Expression for the search domain. Used to create new expressions and modify * existing ones. If the expression exists, the new configuration replaces the old one. For more information, see Configuring Expressions in the Amazon CloudSearch Developer Guide. *

* * @param defineExpressionRequest * Container for the parameters to the DefineExpression operation. Specifies the name of * the domain you want to update and the expression you want to configure. * @return A Java Future containing the result of the DefineExpression operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • BaseException An error occurred while processing the request.
  • *
  • InternalException An internal error occurred while processing the request. If this problem persists, * report an issue from the Service Health * Dashboard.
  • *
  • LimitExceededException The request was rejected because a resource limit has already been met.
  • *
  • InvalidTypeException The request was rejected because it specified an invalid type definition.
  • *
  • ResourceNotFoundException The request was rejected because it attempted to reference a resource that * does not exist.
  • *
  • ValidationException The request was rejected because it has invalid parameters.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudSearchException Base class for all service exceptions. Unknown exceptions will be thrown as an * instance of this type.
  • *
* @sample CloudSearchAsyncClient.DefineExpression */ @Override public CompletableFuture defineExpression(DefineExpressionRequest defineExpressionRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(defineExpressionRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, defineExpressionRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudSearch"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DefineExpression"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DefineExpressionResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DefineExpression").withProtocolMetadata(protocolMetadata) .withMarshaller(new DefineExpressionRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(defineExpressionRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Configures an IndexField for the search domain. Used to create new fields and modify existing * ones. You must specify the name of the domain you are configuring and an index field configuration. The index * field configuration specifies a unique name, the index field type, and the options you want to configure for the * field. The options you can specify depend on the IndexFieldType. If the field exists, the new * configuration replaces the old one. For more information, see Configuring Index Fields in the Amazon CloudSearch Developer Guide. *

* * @param defineIndexFieldRequest * Container for the parameters to the DefineIndexField operation. Specifies the name of * the domain you want to update and the index field configuration. * @return A Java Future containing the result of the DefineIndexField operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • BaseException An error occurred while processing the request.
  • *
  • InternalException An internal error occurred while processing the request. If this problem persists, * report an issue from the Service Health * Dashboard.
  • *
  • LimitExceededException The request was rejected because a resource limit has already been met.
  • *
  • InvalidTypeException The request was rejected because it specified an invalid type definition.
  • *
  • ResourceNotFoundException The request was rejected because it attempted to reference a resource that * does not exist.
  • *
  • ValidationException The request was rejected because it has invalid parameters.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudSearchException Base class for all service exceptions. Unknown exceptions will be thrown as an * instance of this type.
  • *
* @sample CloudSearchAsyncClient.DefineIndexField */ @Override public CompletableFuture defineIndexField(DefineIndexFieldRequest defineIndexFieldRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(defineIndexFieldRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, defineIndexFieldRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudSearch"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DefineIndexField"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DefineIndexFieldResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DefineIndexField").withProtocolMetadata(protocolMetadata) .withMarshaller(new DefineIndexFieldRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(defineIndexFieldRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Configures a suggester for a domain. A suggester enables you to display possible matches before users finish * typing their queries. When you configure a suggester, you must specify the name of the text field you want to * search for possible matches and a unique name for the suggester. For more information, see Getting Search Suggestions in the Amazon CloudSearch Developer Guide. *

* * @param defineSuggesterRequest * Container for the parameters to the DefineSuggester operation. Specifies the name of * the domain you want to update and the suggester configuration. * @return A Java Future containing the result of the DefineSuggester operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • BaseException An error occurred while processing the request.
  • *
  • InternalException An internal error occurred while processing the request. If this problem persists, * report an issue from the Service Health * Dashboard.
  • *
  • LimitExceededException The request was rejected because a resource limit has already been met.
  • *
  • InvalidTypeException The request was rejected because it specified an invalid type definition.
  • *
  • ResourceNotFoundException The request was rejected because it attempted to reference a resource that * does not exist.
  • *
  • ValidationException The request was rejected because it has invalid parameters.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudSearchException Base class for all service exceptions. Unknown exceptions will be thrown as an * instance of this type.
  • *
* @sample CloudSearchAsyncClient.DefineSuggester */ @Override public CompletableFuture defineSuggester(DefineSuggesterRequest defineSuggesterRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(defineSuggesterRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, defineSuggesterRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudSearch"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DefineSuggester"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DefineSuggesterResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DefineSuggester").withProtocolMetadata(protocolMetadata) .withMarshaller(new DefineSuggesterRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(defineSuggesterRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Deletes an analysis scheme. For more information, see Configuring Analysis Schemes in the Amazon CloudSearch Developer Guide. *

* * @param deleteAnalysisSchemeRequest * Container for the parameters to the DeleteAnalysisScheme operation. Specifies the name * of the domain you want to update and the analysis scheme you want to delete. * @return A Java Future containing the result of the DeleteAnalysisScheme operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • BaseException An error occurred while processing the request.
  • *
  • InternalException An internal error occurred while processing the request. If this problem persists, * report an issue from the Service Health * Dashboard.
  • *
  • InvalidTypeException The request was rejected because it specified an invalid type definition.
  • *
  • ResourceNotFoundException The request was rejected because it attempted to reference a resource that * does not exist.
  • *
  • ValidationException The request was rejected because it has invalid parameters.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudSearchException Base class for all service exceptions. Unknown exceptions will be thrown as an * instance of this type.
  • *
* @sample CloudSearchAsyncClient.DeleteAnalysisScheme */ @Override public CompletableFuture deleteAnalysisScheme( DeleteAnalysisSchemeRequest deleteAnalysisSchemeRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteAnalysisSchemeRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteAnalysisSchemeRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudSearch"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteAnalysisScheme"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DeleteAnalysisSchemeResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DeleteAnalysisScheme").withProtocolMetadata(protocolMetadata) .withMarshaller(new DeleteAnalysisSchemeRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(deleteAnalysisSchemeRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Permanently deletes a search domain and all of its data. Once a domain has been deleted, it cannot be recovered. * For more information, see Deleting a Search Domain in the Amazon CloudSearch Developer Guide. *

* * @param deleteDomainRequest * Container for the parameters to the DeleteDomain operation. Specifies the name of the * domain you want to delete. * @return A Java Future containing the result of the DeleteDomain operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • BaseException An error occurred while processing the request.
  • *
  • InternalException An internal error occurred while processing the request. If this problem persists, * report an issue from the Service Health * Dashboard.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudSearchException Base class for all service exceptions. Unknown exceptions will be thrown as an * instance of this type.
  • *
* @sample CloudSearchAsyncClient.DeleteDomain */ @Override public CompletableFuture deleteDomain(DeleteDomainRequest deleteDomainRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteDomainRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteDomainRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudSearch"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteDomain"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DeleteDomainResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DeleteDomain").withProtocolMetadata(protocolMetadata) .withMarshaller(new DeleteDomainRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(deleteDomainRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Removes an Expression from the search domain. For more information, see Configuring Expressions in the Amazon CloudSearch Developer Guide. *

* * @param deleteExpressionRequest * Container for the parameters to the DeleteExpression operation. Specifies the name of * the domain you want to update and the name of the expression you want to delete. * @return A Java Future containing the result of the DeleteExpression operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • BaseException An error occurred while processing the request.
  • *
  • InternalException An internal error occurred while processing the request. If this problem persists, * report an issue from the Service Health * Dashboard.
  • *
  • InvalidTypeException The request was rejected because it specified an invalid type definition.
  • *
  • ResourceNotFoundException The request was rejected because it attempted to reference a resource that * does not exist.
  • *
  • ValidationException The request was rejected because it has invalid parameters.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudSearchException Base class for all service exceptions. Unknown exceptions will be thrown as an * instance of this type.
  • *
* @sample CloudSearchAsyncClient.DeleteExpression */ @Override public CompletableFuture deleteExpression(DeleteExpressionRequest deleteExpressionRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteExpressionRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteExpressionRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudSearch"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteExpression"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DeleteExpressionResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DeleteExpression").withProtocolMetadata(protocolMetadata) .withMarshaller(new DeleteExpressionRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(deleteExpressionRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Removes an IndexField from the search domain. For more information, see Configuring Index Fields in the Amazon CloudSearch Developer Guide. *

* * @param deleteIndexFieldRequest * Container for the parameters to the DeleteIndexField operation. Specifies the name of * the domain you want to update and the name of the index field you want to delete. * @return A Java Future containing the result of the DeleteIndexField operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • BaseException An error occurred while processing the request.
  • *
  • InternalException An internal error occurred while processing the request. If this problem persists, * report an issue from the Service Health * Dashboard.
  • *
  • InvalidTypeException The request was rejected because it specified an invalid type definition.
  • *
  • ResourceNotFoundException The request was rejected because it attempted to reference a resource that * does not exist.
  • *
  • ValidationException The request was rejected because it has invalid parameters.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudSearchException Base class for all service exceptions. Unknown exceptions will be thrown as an * instance of this type.
  • *
* @sample CloudSearchAsyncClient.DeleteIndexField */ @Override public CompletableFuture deleteIndexField(DeleteIndexFieldRequest deleteIndexFieldRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteIndexFieldRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteIndexFieldRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudSearch"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteIndexField"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DeleteIndexFieldResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DeleteIndexField").withProtocolMetadata(protocolMetadata) .withMarshaller(new DeleteIndexFieldRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(deleteIndexFieldRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Deletes a suggester. For more information, see Getting Search Suggestions in the Amazon CloudSearch Developer Guide. *

* * @param deleteSuggesterRequest * Container for the parameters to the DeleteSuggester operation. Specifies the name of * the domain you want to update and name of the suggester you want to delete. * @return A Java Future containing the result of the DeleteSuggester operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • BaseException An error occurred while processing the request.
  • *
  • InternalException An internal error occurred while processing the request. If this problem persists, * report an issue from the Service Health * Dashboard.
  • *
  • InvalidTypeException The request was rejected because it specified an invalid type definition.
  • *
  • ResourceNotFoundException The request was rejected because it attempted to reference a resource that * does not exist.
  • *
  • ValidationException The request was rejected because it has invalid parameters.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudSearchException Base class for all service exceptions. Unknown exceptions will be thrown as an * instance of this type.
  • *
* @sample CloudSearchAsyncClient.DeleteSuggester */ @Override public CompletableFuture deleteSuggester(DeleteSuggesterRequest deleteSuggesterRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteSuggesterRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteSuggesterRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudSearch"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteSuggester"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DeleteSuggesterResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DeleteSuggester").withProtocolMetadata(protocolMetadata) .withMarshaller(new DeleteSuggesterRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(deleteSuggesterRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Gets the analysis schemes configured for a domain. An analysis scheme defines language-specific text processing * options for a text field. Can be limited to specific analysis schemes by name. By default, shows all * analysis schemes and includes any pending changes to the configuration. Set the Deployed option to * true to show the active configuration and exclude pending changes. For more information, see Configuring Analysis Schemes in the Amazon CloudSearch Developer Guide. *

* * @param describeAnalysisSchemesRequest * Container for the parameters to the DescribeAnalysisSchemes operation. Specifies the * name of the domain you want to describe. To limit the response to particular analysis schemes, specify the * names of the analysis schemes you want to describe. To show the active configuration and exclude any * pending changes, set the Deployed option to true. * @return A Java Future containing the result of the DescribeAnalysisSchemes operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • BaseException An error occurred while processing the request.
  • *
  • InternalException An internal error occurred while processing the request. If this problem persists, * report an issue from the Service Health * Dashboard.
  • *
  • ResourceNotFoundException The request was rejected because it attempted to reference a resource that * does not exist.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudSearchException Base class for all service exceptions. Unknown exceptions will be thrown as an * instance of this type.
  • *
* @sample CloudSearchAsyncClient.DescribeAnalysisSchemes */ @Override public CompletableFuture describeAnalysisSchemes( DescribeAnalysisSchemesRequest describeAnalysisSchemesRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeAnalysisSchemesRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeAnalysisSchemesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudSearch"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeAnalysisSchemes"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeAnalysisSchemesResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeAnalysisSchemes").withProtocolMetadata(protocolMetadata) .withMarshaller(new DescribeAnalysisSchemesRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(describeAnalysisSchemesRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Gets the availability options configured for a domain. By default, shows the configuration with any pending * changes. Set the Deployed option to true to show the active configuration and exclude * pending changes. For more information, see Configuring Availability Options in the Amazon CloudSearch Developer Guide. *

* * @param describeAvailabilityOptionsRequest * Container for the parameters to the DescribeAvailabilityOptions operation. Specifies * the name of the domain you want to describe. To show the active configuration and exclude any pending * changes, set the Deployed option to true. * @return A Java Future containing the result of the DescribeAvailabilityOptions operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • BaseException An error occurred while processing the request.
  • *
  • InternalException An internal error occurred while processing the request. If this problem persists, * report an issue from the Service Health * Dashboard.
  • *
  • InvalidTypeException The request was rejected because it specified an invalid type definition.
  • *
  • LimitExceededException The request was rejected because a resource limit has already been met.
  • *
  • ResourceNotFoundException The request was rejected because it attempted to reference a resource that * does not exist.
  • *
  • DisabledOperationException The request was rejected because it attempted an operation which is not * enabled.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudSearchException Base class for all service exceptions. Unknown exceptions will be thrown as an * instance of this type.
  • *
* @sample CloudSearchAsyncClient.DescribeAvailabilityOptions */ @Override public CompletableFuture describeAvailabilityOptions( DescribeAvailabilityOptionsRequest describeAvailabilityOptionsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeAvailabilityOptionsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeAvailabilityOptionsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudSearch"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeAvailabilityOptions"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeAvailabilityOptionsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeAvailabilityOptions").withProtocolMetadata(protocolMetadata) .withMarshaller(new DescribeAvailabilityOptionsRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(describeAvailabilityOptionsRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Returns the domain's endpoint options, specifically whether all requests to the domain must arrive over HTTPS. * For more information, see Configuring Domain Endpoint Options in the Amazon CloudSearch Developer Guide. *

* * @param describeDomainEndpointOptionsRequest * Container for the parameters to the DescribeDomainEndpointOptions operation. Specify * the name of the domain you want to describe. To show the active configuration and exclude any pending * changes, set the Deployed option to true. * @return A Java Future containing the result of the DescribeDomainEndpointOptions operation returned by the * service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • BaseException An error occurred while processing the request.
  • *
  • InternalException An internal error occurred while processing the request. If this problem persists, * report an issue from the Service Health * Dashboard.
  • *
  • LimitExceededException The request was rejected because a resource limit has already been met.
  • *
  • ResourceNotFoundException The request was rejected because it attempted to reference a resource that * does not exist.
  • *
  • DisabledOperationException The request was rejected because it attempted an operation which is not * enabled.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudSearchException Base class for all service exceptions. Unknown exceptions will be thrown as an * instance of this type.
  • *
* @sample CloudSearchAsyncClient.DescribeDomainEndpointOptions */ @Override public CompletableFuture describeDomainEndpointOptions( DescribeDomainEndpointOptionsRequest describeDomainEndpointOptionsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeDomainEndpointOptionsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeDomainEndpointOptionsRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudSearch"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeDomainEndpointOptions"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeDomainEndpointOptionsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeDomainEndpointOptions").withProtocolMetadata(protocolMetadata) .withMarshaller(new DescribeDomainEndpointOptionsRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(describeDomainEndpointOptionsRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Gets information about the search domains owned by this account. Can be limited to specific domains. Shows all * domains by default. To get the number of searchable documents in a domain, use the console or submit a * matchall request to your domain's search endpoint: * q=matchall&q.parser=structured&size=0. For more information, see Getting Information about a Search Domain in the Amazon CloudSearch Developer Guide. *

* * @param describeDomainsRequest * Container for the parameters to the DescribeDomains operation. By default shows the * status of all domains. To restrict the response to particular domains, specify the names of the domains * you want to describe. * @return A Java Future containing the result of the DescribeDomains operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • BaseException An error occurred while processing the request.
  • *
  • InternalException An internal error occurred while processing the request. If this problem persists, * report an issue from the Service Health * Dashboard.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudSearchException Base class for all service exceptions. Unknown exceptions will be thrown as an * instance of this type.
  • *
* @sample CloudSearchAsyncClient.DescribeDomains */ @Override public CompletableFuture describeDomains(DescribeDomainsRequest describeDomainsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeDomainsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeDomainsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudSearch"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeDomains"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeDomainsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeDomains").withProtocolMetadata(protocolMetadata) .withMarshaller(new DescribeDomainsRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(describeDomainsRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Gets the expressions configured for the search domain. Can be limited to specific expressions by name. By * default, shows all expressions and includes any pending changes to the configuration. Set the * Deployed option to true to show the active configuration and exclude pending changes. * For more information, see Configuring Expressions in the Amazon CloudSearch Developer Guide. *

* * @param describeExpressionsRequest * Container for the parameters to the DescribeDomains operation. Specifies the name of * the domain you want to describe. To restrict the response to particular expressions, specify the names of * the expressions you want to describe. To show the active configuration and exclude any pending changes, * set the Deployed option to true. * @return A Java Future containing the result of the DescribeExpressions operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • BaseException An error occurred while processing the request.
  • *
  • InternalException An internal error occurred while processing the request. If this problem persists, * report an issue from the Service Health * Dashboard.
  • *
  • ResourceNotFoundException The request was rejected because it attempted to reference a resource that * does not exist.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudSearchException Base class for all service exceptions. Unknown exceptions will be thrown as an * instance of this type.
  • *
* @sample CloudSearchAsyncClient.DescribeExpressions */ @Override public CompletableFuture describeExpressions( DescribeExpressionsRequest describeExpressionsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeExpressionsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeExpressionsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudSearch"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeExpressions"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeExpressionsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeExpressions").withProtocolMetadata(protocolMetadata) .withMarshaller(new DescribeExpressionsRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(describeExpressionsRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Gets information about the index fields configured for the search domain. Can be limited to specific fields by * name. By default, shows all fields and includes any pending changes to the configuration. Set the * Deployed option to true to show the active configuration and exclude pending changes. * For more information, see Getting Domain Information in the Amazon CloudSearch Developer Guide. *

* * @param describeIndexFieldsRequest * Container for the parameters to the DescribeIndexFields operation. Specifies the name * of the domain you want to describe. To restrict the response to particular index fields, specify the names * of the index fields you want to describe. To show the active configuration and exclude any pending * changes, set the Deployed option to true. * @return A Java Future containing the result of the DescribeIndexFields operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • BaseException An error occurred while processing the request.
  • *
  • InternalException An internal error occurred while processing the request. If this problem persists, * report an issue from the Service Health * Dashboard.
  • *
  • ResourceNotFoundException The request was rejected because it attempted to reference a resource that * does not exist.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudSearchException Base class for all service exceptions. Unknown exceptions will be thrown as an * instance of this type.
  • *
* @sample CloudSearchAsyncClient.DescribeIndexFields */ @Override public CompletableFuture describeIndexFields( DescribeIndexFieldsRequest describeIndexFieldsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeIndexFieldsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeIndexFieldsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudSearch"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeIndexFields"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeIndexFieldsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeIndexFields").withProtocolMetadata(protocolMetadata) .withMarshaller(new DescribeIndexFieldsRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(describeIndexFieldsRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Gets the scaling parameters configured for a domain. A domain's scaling parameters specify the desired search * instance type and replication count. For more information, see Configuring Scaling Options in the Amazon CloudSearch Developer Guide. *

* * @param describeScalingParametersRequest * Container for the parameters to the DescribeScalingParameters operation. Specifies the * name of the domain you want to describe. * @return A Java Future containing the result of the DescribeScalingParameters operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • BaseException An error occurred while processing the request.
  • *
  • InternalException An internal error occurred while processing the request. If this problem persists, * report an issue from the Service Health * Dashboard.
  • *
  • ResourceNotFoundException The request was rejected because it attempted to reference a resource that * does not exist.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudSearchException Base class for all service exceptions. Unknown exceptions will be thrown as an * instance of this type.
  • *
* @sample CloudSearchAsyncClient.DescribeScalingParameters */ @Override public CompletableFuture describeScalingParameters( DescribeScalingParametersRequest describeScalingParametersRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeScalingParametersRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeScalingParametersRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudSearch"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeScalingParameters"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeScalingParametersResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeScalingParameters").withProtocolMetadata(protocolMetadata) .withMarshaller(new DescribeScalingParametersRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(describeScalingParametersRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Gets information about the access policies that control access to the domain's document and search endpoints. By * default, shows the configuration with any pending changes. Set the Deployed option to * true to show the active configuration and exclude pending changes. For more information, see Configuring Access for a Search Domain in the Amazon CloudSearch Developer Guide. *

* * @param describeServiceAccessPoliciesRequest * Container for the parameters to the DescribeServiceAccessPolicies operation. Specifies * the name of the domain you want to describe. To show the active configuration and exclude any pending * changes, set the Deployed option to true. * @return A Java Future containing the result of the DescribeServiceAccessPolicies operation returned by the * service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • BaseException An error occurred while processing the request.
  • *
  • InternalException An internal error occurred while processing the request. If this problem persists, * report an issue from the Service Health * Dashboard.
  • *
  • ResourceNotFoundException The request was rejected because it attempted to reference a resource that * does not exist.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudSearchException Base class for all service exceptions. Unknown exceptions will be thrown as an * instance of this type.
  • *
* @sample CloudSearchAsyncClient.DescribeServiceAccessPolicies */ @Override public CompletableFuture describeServiceAccessPolicies( DescribeServiceAccessPoliciesRequest describeServiceAccessPoliciesRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeServiceAccessPoliciesRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeServiceAccessPoliciesRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudSearch"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeServiceAccessPolicies"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeServiceAccessPoliciesResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeServiceAccessPolicies").withProtocolMetadata(protocolMetadata) .withMarshaller(new DescribeServiceAccessPoliciesRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(describeServiceAccessPoliciesRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Gets the suggesters configured for a domain. A suggester enables you to display possible matches before users * finish typing their queries. Can be limited to specific suggesters by name. By default, shows all suggesters and * includes any pending changes to the configuration. Set the Deployed option to true to * show the active configuration and exclude pending changes. For more information, see Getting Search Suggestions in the Amazon CloudSearch Developer Guide. *

* * @param describeSuggestersRequest * Container for the parameters to the DescribeSuggester operation. Specifies the name of * the domain you want to describe. To restrict the response to particular suggesters, specify the names of * the suggesters you want to describe. To show the active configuration and exclude any pending changes, set * the Deployed option to true. * @return A Java Future containing the result of the DescribeSuggesters operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • BaseException An error occurred while processing the request.
  • *
  • InternalException An internal error occurred while processing the request. If this problem persists, * report an issue from the Service Health * Dashboard.
  • *
  • ResourceNotFoundException The request was rejected because it attempted to reference a resource that * does not exist.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudSearchException Base class for all service exceptions. Unknown exceptions will be thrown as an * instance of this type.
  • *
* @sample CloudSearchAsyncClient.DescribeSuggesters */ @Override public CompletableFuture describeSuggesters(DescribeSuggestersRequest describeSuggestersRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeSuggestersRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeSuggestersRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudSearch"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeSuggesters"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(DescribeSuggestersResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeSuggesters").withProtocolMetadata(protocolMetadata) .withMarshaller(new DescribeSuggestersRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(describeSuggestersRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Tells the search domain to start indexing its documents using the latest indexing options. This operation must be * invoked to activate options whose OptionStatus is RequiresIndexDocuments. *

* * @param indexDocumentsRequest * Container for the parameters to the IndexDocuments operation. Specifies the name of * the domain you want to re-index. * @return A Java Future containing the result of the IndexDocuments operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • BaseException An error occurred while processing the request.
  • *
  • InternalException An internal error occurred while processing the request. If this problem persists, * report an issue from the Service Health * Dashboard.
  • *
  • ResourceNotFoundException The request was rejected because it attempted to reference a resource that * does not exist.
  • *
  • ValidationException The request was rejected because it has invalid parameters.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudSearchException Base class for all service exceptions. Unknown exceptions will be thrown as an * instance of this type.
  • *
* @sample CloudSearchAsyncClient.IndexDocuments */ @Override public CompletableFuture indexDocuments(IndexDocumentsRequest indexDocumentsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(indexDocumentsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, indexDocumentsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudSearch"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "IndexDocuments"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(IndexDocumentsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("IndexDocuments").withProtocolMetadata(protocolMetadata) .withMarshaller(new IndexDocumentsRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(indexDocumentsRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Lists all search domains owned by an account. *

* * @param listDomainNamesRequest * @return A Java Future containing the result of the ListDomainNames operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • BaseException An error occurred while processing the request.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudSearchException Base class for all service exceptions. Unknown exceptions will be thrown as an * instance of this type.
  • *
* @sample CloudSearchAsyncClient.ListDomainNames */ @Override public CompletableFuture listDomainNames(ListDomainNamesRequest listDomainNamesRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listDomainNamesRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listDomainNamesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudSearch"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListDomainNames"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(ListDomainNamesResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("ListDomainNames").withProtocolMetadata(protocolMetadata) .withMarshaller(new ListDomainNamesRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(listDomainNamesRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Configures the availability options for a domain. Enabling the Multi-AZ option expands an Amazon CloudSearch * domain to an additional Availability Zone in the same Region to increase fault tolerance in the event of a * service disruption. Changes to the Multi-AZ option can take about half an hour to become active. For more * information, see Configuring Availability Options in the Amazon CloudSearch Developer Guide. *

* * @param updateAvailabilityOptionsRequest * Container for the parameters to the UpdateAvailabilityOptions operation. Specifies the * name of the domain you want to update and the Multi-AZ availability option. * @return A Java Future containing the result of the UpdateAvailabilityOptions operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • BaseException An error occurred while processing the request.
  • *
  • InternalException An internal error occurred while processing the request. If this problem persists, * report an issue from the Service Health * Dashboard.
  • *
  • InvalidTypeException The request was rejected because it specified an invalid type definition.
  • *
  • LimitExceededException The request was rejected because a resource limit has already been met.
  • *
  • ResourceNotFoundException The request was rejected because it attempted to reference a resource that * does not exist.
  • *
  • DisabledOperationException The request was rejected because it attempted an operation which is not * enabled.
  • *
  • ValidationException The request was rejected because it has invalid parameters.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudSearchException Base class for all service exceptions. Unknown exceptions will be thrown as an * instance of this type.
  • *
* @sample CloudSearchAsyncClient.UpdateAvailabilityOptions */ @Override public CompletableFuture updateAvailabilityOptions( UpdateAvailabilityOptionsRequest updateAvailabilityOptionsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(updateAvailabilityOptionsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateAvailabilityOptionsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudSearch"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateAvailabilityOptions"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(UpdateAvailabilityOptionsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateAvailabilityOptions").withProtocolMetadata(protocolMetadata) .withMarshaller(new UpdateAvailabilityOptionsRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(updateAvailabilityOptionsRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Updates the domain's endpoint options, specifically whether all requests to the domain must arrive over HTTPS. * For more information, see Configuring Domain Endpoint Options in the Amazon CloudSearch Developer Guide. *

* * @param updateDomainEndpointOptionsRequest * Container for the parameters to the UpdateDomainEndpointOptions operation. Specifies * the name of the domain you want to update and the domain endpoint options. * @return A Java Future containing the result of the UpdateDomainEndpointOptions operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • BaseException An error occurred while processing the request.
  • *
  • InternalException An internal error occurred while processing the request. If this problem persists, * report an issue from the Service Health * Dashboard.
  • *
  • InvalidTypeException The request was rejected because it specified an invalid type definition.
  • *
  • LimitExceededException The request was rejected because a resource limit has already been met.
  • *
  • ResourceNotFoundException The request was rejected because it attempted to reference a resource that * does not exist.
  • *
  • DisabledOperationException The request was rejected because it attempted an operation which is not * enabled.
  • *
  • ValidationException The request was rejected because it has invalid parameters.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudSearchException Base class for all service exceptions. Unknown exceptions will be thrown as an * instance of this type.
  • *
* @sample CloudSearchAsyncClient.UpdateDomainEndpointOptions */ @Override public CompletableFuture updateDomainEndpointOptions( UpdateDomainEndpointOptionsRequest updateDomainEndpointOptionsRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(updateDomainEndpointOptionsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateDomainEndpointOptionsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudSearch"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateDomainEndpointOptions"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(UpdateDomainEndpointOptionsResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateDomainEndpointOptions").withProtocolMetadata(protocolMetadata) .withMarshaller(new UpdateDomainEndpointOptionsRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(updateDomainEndpointOptionsRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Configures scaling parameters for a domain. A domain's scaling parameters specify the desired search instance * type and replication count. Amazon CloudSearch will still automatically scale your domain based on the volume of * data and traffic, but not below the desired instance type and replication count. If the Multi-AZ option is * enabled, these values control the resources used per Availability Zone. For more information, see Configuring Scaling Options in the Amazon CloudSearch Developer Guide. *

* * @param updateScalingParametersRequest * Container for the parameters to the UpdateScalingParameters operation. Specifies the * name of the domain you want to update and the scaling parameters you want to configure. * @return A Java Future containing the result of the UpdateScalingParameters operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • BaseException An error occurred while processing the request.
  • *
  • InternalException An internal error occurred while processing the request. If this problem persists, * report an issue from the Service Health * Dashboard.
  • *
  • LimitExceededException The request was rejected because a resource limit has already been met.
  • *
  • ResourceNotFoundException The request was rejected because it attempted to reference a resource that * does not exist.
  • *
  • InvalidTypeException The request was rejected because it specified an invalid type definition.
  • *
  • ValidationException The request was rejected because it has invalid parameters.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudSearchException Base class for all service exceptions. Unknown exceptions will be thrown as an * instance of this type.
  • *
* @sample CloudSearchAsyncClient.UpdateScalingParameters */ @Override public CompletableFuture updateScalingParameters( UpdateScalingParametersRequest updateScalingParametersRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(updateScalingParametersRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateScalingParametersRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudSearch"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateScalingParameters"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(UpdateScalingParametersResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateScalingParameters").withProtocolMetadata(protocolMetadata) .withMarshaller(new UpdateScalingParametersRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(updateScalingParametersRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } /** *

* Configures the access rules that control access to the domain's document and search endpoints. For more * information, see Configuring Access for an Amazon CloudSearch Domain. *

* * @param updateServiceAccessPoliciesRequest * Container for the parameters to the UpdateServiceAccessPolicies operation. Specifies * the name of the domain you want to update and the access rules you want to configure. * @return A Java Future containing the result of the UpdateServiceAccessPolicies operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • BaseException An error occurred while processing the request.
  • *
  • InternalException An internal error occurred while processing the request. If this problem persists, * report an issue from the Service Health * Dashboard.
  • *
  • LimitExceededException The request was rejected because a resource limit has already been met.
  • *
  • ResourceNotFoundException The request was rejected because it attempted to reference a resource that * does not exist.
  • *
  • InvalidTypeException The request was rejected because it specified an invalid type definition.
  • *
  • ValidationException The request was rejected because it has invalid parameters.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • CloudSearchException Base class for all service exceptions. Unknown exceptions will be thrown as an * instance of this type.
  • *
* @sample CloudSearchAsyncClient.UpdateServiceAccessPolicies */ @Override public CompletableFuture updateServiceAccessPolicies( UpdateServiceAccessPoliciesRequest updateServiceAccessPoliciesRequest) { SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(updateServiceAccessPoliciesRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateServiceAccessPoliciesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "CloudSearch"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateServiceAccessPolicies"); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(UpdateServiceAccessPoliciesResponse::builder); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateServiceAccessPolicies").withProtocolMetadata(protocolMetadata) .withMarshaller(new UpdateServiceAccessPoliciesRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector) .withInput(updateServiceAccessPoliciesRequest)); CompletableFuture whenCompleteFuture = null; whenCompleteFuture = executeFuture.whenComplete((r, e) -> { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); }); return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture); } catch (Throwable t) { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); return CompletableFutureUtils.failedFuture(t); } } @Override public final CloudSearchServiceClientConfiguration serviceClientConfiguration() { return new CloudSearchServiceClientConfigurationBuilder(this.clientConfiguration.toBuilder()).build(); } @Override public final String serviceName() { return SERVICE_NAME; } private AwsQueryProtocolFactory init() { return AwsQueryProtocolFactory .builder() .registerModeledException( ExceptionMetadata.builder().errorCode("DisabledAction") .exceptionBuilderSupplier(DisabledOperationException::builder).httpStatusCode(409).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("LimitExceeded") .exceptionBuilderSupplier(LimitExceededException::builder).httpStatusCode(409).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InvalidType") .exceptionBuilderSupplier(InvalidTypeException::builder).httpStatusCode(409).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("ResourceNotFound") .exceptionBuilderSupplier(ResourceNotFoundException::builder).httpStatusCode(409).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("ValidationException") .exceptionBuilderSupplier(ValidationException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("BaseException").exceptionBuilderSupplier(BaseException::builder) .build()) .registerModeledException( ExceptionMetadata.builder().errorCode("ResourceAlreadyExists") .exceptionBuilderSupplier(ResourceAlreadyExistsException::builder).httpStatusCode(409).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InternalException") .exceptionBuilderSupplier(InternalException::builder).httpStatusCode(500).build()) .clientConfiguration(clientConfiguration).defaultServiceExceptionSupplier(CloudSearchException::builder).build(); } private static List resolveMetricPublishers(SdkClientConfiguration clientConfiguration, RequestOverrideConfiguration requestOverrideConfiguration) { List publishers = null; if (requestOverrideConfiguration != null) { publishers = requestOverrideConfiguration.metricPublishers(); } if (publishers == null || publishers.isEmpty()) { publishers = clientConfiguration.option(SdkClientOption.METRIC_PUBLISHERS); } if (publishers == null) { publishers = Collections.emptyList(); } return publishers; } private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, SdkClientConfiguration clientConfiguration) { List plugins = request.overrideConfiguration().map(c -> c.plugins()).orElse(Collections.emptyList()); SdkClientConfiguration.Builder configuration = clientConfiguration.toBuilder(); if (plugins.isEmpty()) { return configuration.build(); } CloudSearchServiceClientConfigurationBuilder serviceConfigBuilder = new CloudSearchServiceClientConfigurationBuilder( configuration); for (SdkPlugin plugin : plugins) { plugin.configureClient(serviceConfigBuilder); } return configuration.build(); } @Override public void close() { clientHandler.close(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy